@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.
Files changed (47) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +94 -0
  3. package/dist/CommandInterceptor.d.ts +55 -0
  4. package/dist/CommandInterceptor.d.ts.map +1 -0
  5. package/dist/CommandInterceptor.js +87 -0
  6. package/dist/CommandInterceptor.js.map +1 -0
  7. package/dist/CommandInterceptor.test.d.ts +2 -0
  8. package/dist/CommandInterceptor.test.d.ts.map +1 -0
  9. package/dist/CommandInterceptor.test.js +195 -0
  10. package/dist/CommandInterceptor.test.js.map +1 -0
  11. package/dist/DocumentDBServiceProvider.d.ts +48 -0
  12. package/dist/DocumentDBServiceProvider.d.ts.map +1 -0
  13. package/dist/DocumentDBServiceProvider.js +59 -0
  14. package/dist/DocumentDBServiceProvider.js.map +1 -0
  15. package/dist/DocumentDBShellRuntime.d.ts +144 -0
  16. package/dist/DocumentDBShellRuntime.d.ts.map +1 -0
  17. package/dist/DocumentDBShellRuntime.js +521 -0
  18. package/dist/DocumentDBShellRuntime.js.map +1 -0
  19. package/dist/DocumentDBShellRuntime.test.d.ts +2 -0
  20. package/dist/DocumentDBShellRuntime.test.d.ts.map +1 -0
  21. package/dist/DocumentDBShellRuntime.test.js +200 -0
  22. package/dist/DocumentDBShellRuntime.test.js.map +1 -0
  23. package/dist/HelpProvider.d.ts +45 -0
  24. package/dist/HelpProvider.d.ts.map +1 -0
  25. package/dist/HelpProvider.js +179 -0
  26. package/dist/HelpProvider.js.map +1 -0
  27. package/dist/HelpProvider.test.d.ts +2 -0
  28. package/dist/HelpProvider.test.d.ts.map +1 -0
  29. package/dist/HelpProvider.test.js +133 -0
  30. package/dist/HelpProvider.test.js.map +1 -0
  31. package/dist/ResultTransformer.d.ts +58 -0
  32. package/dist/ResultTransformer.d.ts.map +1 -0
  33. package/dist/ResultTransformer.js +96 -0
  34. package/dist/ResultTransformer.js.map +1 -0
  35. package/dist/ResultTransformer.test.d.ts +2 -0
  36. package/dist/ResultTransformer.test.d.ts.map +1 -0
  37. package/dist/ResultTransformer.test.js +166 -0
  38. package/dist/ResultTransformer.test.js.map +1 -0
  39. package/dist/index.d.ts +7 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +20 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/types.d.ts +65 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +7 -0
  46. package/dist/types.js.map +1 -0
  47. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DocumentDBShellRuntime.test.d.ts.map
@@ -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":";AAAA;;;gGAGgG;;AAGhG,2EAAwE;AACxE,qEAA2F;AAE3F,oEAAoE;AACpE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,2BAA2B,EAAE,EAAE;QAC/B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACjB,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;QAChC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;KAChD,CAAC,CAAC;CACN,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;QAChD,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YACpC,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;SACxB,CAAC;KACL,CAAC,CAAC;CACN,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,yBAAyB,EAAE;QACvB,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YAC3C,eAAe,EAAE,EAAE;YACnB,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;SAC1C,CAAC;KACL;CACJ,CAAC,CAAC,CAAC;AAEJ,MAAM,uBAAuB,GAAG,qDAAyB,CAAC,mBAEzD,CAAC;AAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,IAAI,UAAuB,CAAC;IAE5B,UAAU,CAAC,GAAG,EAAE;QACZ,UAAU,GAAG,EAAiB,CAAC;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;YAEvD,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YACnD,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAEnD,uDAAuD;YACvD,MAAM,CAAC,uBAAuB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAExD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,OAAO,GAAG,IAAI,+CAAsB,CAAC,UAAU,EAAE,SAAS,EAAE;gBAC9D,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YACnD,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YACnD,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAEnD,+DAA+D;YAC/D,MAAM,CAAC,uBAAuB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG,IAAI,+CAAsB,CAAC,UAAU,EAAE,SAAS,EAAE;gBAC9D,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAExD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,GAAG,IAAI,+CAAsB,CAAC,UAAU,EAAE,SAAS,EAAE;gBAC9D,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,uBAAuB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAEzD,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,uCAAuC;YACvC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtE,iCAAiC,CACpC,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,OAAO,GAAG,IAAI,+CAAsB,CAAC,UAAU,CAAC,CAAC;YACvD,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACnD,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,IAAA,gDAAuB,EAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,IAAA,gDAAuB,EAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,IAAA,gDAAuB,EAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,IAAA,gDAAuB,EAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,KAAK,GAAG,0BAA0B,CAAC;YACzC,MAAM,QAAQ,GAAG,8BAA8B,CAAC;YAChD,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACjD,MAAM,KAAK,GAAG,2BAA2B,CAAC;YAC1C,MAAM,QAAQ,GAAG,8BAA8B,CAAC;YAChD,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACjD,MAAM,KAAK,GAAG,4BAA4B,CAAC;YAC3C,MAAM,QAAQ,GAAG,gCAAgC,CAAC;YAClD,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAC9D,4DAA4D;YAC5D,sDAAsD;YACtD,MAAM,KAAK,GAAG,uCAAuC,CAAC;YACtD,MAAM,QAAQ,GAAG,2CAA2C,CAAC;YAC7D,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACrD,6DAA6D;YAC7D,6DAA6D;YAC7D,MAAM,KAAK,GAAG,8CAA8C,CAAC;YAC7D,MAAM,QAAQ,GAAG,kDAAkD,CAAC;YACpE,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACpE,MAAM,KAAK,GAAG,kEAAkE,CAAC;YACjF,MAAM,QAAQ,GAAG,8EAA8E,CAAC;YAChG,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAChE,MAAM,KAAK,GAAG,2CAA2C,CAAC;YAC1D,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,6CAA6C,CAAC;YAC5D,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,6BAA6B,CAAC;YAC5C,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,uCAAuC,CAAC;YACtD,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,gCAAgC,CAAC;YAC/C,MAAM,QAAQ,GAAG,oCAAoC,CAAC;YACtD,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAC9C,MAAM,KAAK,GAAG,0BAA0B,CAAC;YACzC,MAAM,QAAQ,GAAG,8BAA8B,CAAC;YAChD,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK,GAAG,kCAAkC,CAAC;YACjD,MAAM,QAAQ,GAAG,sCAAsC,CAAC;YACxD,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACnD,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,KAAK,GAAG,6BAA6B,CAAC;YAC5C,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,KAAK,GAAG,6BAA6B,CAAC;YAC5C,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,KAAK,GAAG,6BAA6B,CAAC;YAC5C,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC1D,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACvC,MAAM,KAAK,GAAG,2BAA2B,CAAC;YAC1C,MAAM,QAAQ,GAAG,iCAAiC,CAAC;YACnD,MAAM,CAAC,IAAA,gDAAuB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=HelpProvider.test.d.ts.map
@@ -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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"}