@cedarjs/structure 2.2.2-next.0 → 2.2.2-next.31

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 (126) hide show
  1. package/README.md +8 -24
  2. package/dist/index.d.ts +3 -5
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +8 -23
  5. package/dist/model/RWCell.d.ts +4 -3
  6. package/dist/model/RWCell.d.ts.map +1 -1
  7. package/dist/model/RWCell.js +7 -8
  8. package/dist/model/RWComponent.d.ts +1 -1
  9. package/dist/model/RWComponent.d.ts.map +1 -1
  10. package/dist/model/RWComponent.js +2 -2
  11. package/dist/model/RWEnvHelper.d.ts +3 -7
  12. package/dist/model/RWEnvHelper.d.ts.map +1 -1
  13. package/dist/model/RWEnvHelper.js +33 -114
  14. package/dist/model/RWFunction.d.ts +1 -1
  15. package/dist/model/RWFunction.d.ts.map +1 -1
  16. package/dist/model/RWFunction.js +2 -2
  17. package/dist/model/RWLayout.d.ts +1 -1
  18. package/dist/model/RWLayout.d.ts.map +1 -1
  19. package/dist/model/RWLayout.js +2 -2
  20. package/dist/model/RWPage.d.ts +1 -1
  21. package/dist/model/RWPage.d.ts.map +1 -1
  22. package/dist/model/RWPage.js +2 -2
  23. package/dist/model/RWProject.d.ts +1 -4
  24. package/dist/model/RWProject.d.ts.map +1 -1
  25. package/dist/model/RWProject.js +17 -19
  26. package/dist/model/RWRoute.d.ts +3 -16
  27. package/dist/model/RWRoute.d.ts.map +1 -1
  28. package/dist/model/RWRoute.js +11 -137
  29. package/dist/model/RWRouter.d.ts +2 -6
  30. package/dist/model/RWRouter.d.ts.map +1 -1
  31. package/dist/model/RWRouter.js +10 -62
  32. package/dist/model/RWSDL.d.ts +2 -2
  33. package/dist/model/RWSDL.d.ts.map +1 -1
  34. package/dist/model/RWSDL.js +4 -4
  35. package/dist/model/RWSDLField.d.ts +3 -7
  36. package/dist/model/RWSDLField.d.ts.map +1 -1
  37. package/dist/model/RWSDLField.js +10 -59
  38. package/dist/model/RWService.d.ts +1 -1
  39. package/dist/model/RWService.d.ts.map +1 -1
  40. package/dist/model/RWService.js +2 -2
  41. package/dist/model/RWServiceFunction.d.ts +2 -2
  42. package/dist/model/RWServiceFunction.d.ts.map +1 -1
  43. package/dist/model/RWServiceFunction.js +5 -6
  44. package/dist/model/RWTOML.d.ts +2 -2
  45. package/dist/model/RWTOML.d.ts.map +1 -1
  46. package/dist/model/RWTOML.js +6 -6
  47. package/dist/model/util/process_env.d.ts +9 -18
  48. package/dist/model/util/process_env.d.ts.map +1 -1
  49. package/dist/model/util/process_env.js +25 -34
  50. package/dist/nodes.d.ts +62 -0
  51. package/dist/nodes.d.ts.map +1 -0
  52. package/dist/nodes.js +175 -0
  53. package/dist/x/Location.d.ts +9 -0
  54. package/dist/x/Location.d.ts.map +1 -0
  55. package/dist/x/Location.js +18 -0
  56. package/dist/x/Position.d.ts +12 -0
  57. package/dist/x/Position.d.ts.map +1 -0
  58. package/dist/x/Position.js +35 -0
  59. package/dist/x/Range.d.ts +8 -0
  60. package/dist/x/Range.d.ts.map +1 -0
  61. package/dist/x/Range.js +22 -0
  62. package/dist/x/{vscode-languageserver-types.d.ts → diagnostics.d.ts} +27 -36
  63. package/dist/x/diagnostics.d.ts.map +1 -0
  64. package/dist/x/{vscode-languageserver-types.js → diagnostics.js} +30 -135
  65. package/dist/x/path.d.ts +1 -0
  66. package/dist/x/path.d.ts.map +1 -1
  67. package/dist/x/path.js +25 -17
  68. package/dist/x/prisma.d.ts +2 -3
  69. package/dist/x/prisma.d.ts.map +1 -1
  70. package/dist/x/prisma.js +5 -5
  71. package/package.json +3 -8
  72. package/dist/hosts.d.ts +0 -23
  73. package/dist/hosts.d.ts.map +0 -1
  74. package/dist/hosts.js +0 -44
  75. package/dist/ide.d.ts +0 -122
  76. package/dist/ide.d.ts.map +0 -1
  77. package/dist/ide.js +0 -240
  78. package/dist/interactive_cli/RedwoodCommandString.d.ts +0 -20
  79. package/dist/interactive_cli/RedwoodCommandString.d.ts.map +0 -1
  80. package/dist/interactive_cli/RedwoodCommandString.js +0 -72
  81. package/dist/interactive_cli/command_builder.d.ts +0 -10
  82. package/dist/interactive_cli/command_builder.d.ts.map +0 -1
  83. package/dist/interactive_cli/command_builder.js +0 -196
  84. package/dist/interactive_cli/dry_run.d.ts +0 -28
  85. package/dist/interactive_cli/dry_run.d.ts.map +0 -1
  86. package/dist/interactive_cli/dry_run.js +0 -104
  87. package/dist/interactive_cli/ui.d.ts +0 -32
  88. package/dist/interactive_cli/ui.d.ts.map +0 -1
  89. package/dist/interactive_cli/ui.js +0 -84
  90. package/dist/language_server/RWLanguageServer.d.ts +0 -30
  91. package/dist/language_server/RWLanguageServer.d.ts.map +0 -1
  92. package/dist/language_server/RWLanguageServer.js +0 -201
  93. package/dist/language_server/commands.d.ts +0 -14
  94. package/dist/language_server/commands.d.ts.map +0 -1
  95. package/dist/language_server/commands.js +0 -122
  96. package/dist/language_server/diagnostics.d.ts +0 -10
  97. package/dist/language_server/diagnostics.d.ts.map +0 -1
  98. package/dist/language_server/diagnostics.js +0 -61
  99. package/dist/language_server/outline.d.ts +0 -7
  100. package/dist/language_server/outline.d.ts.map +0 -1
  101. package/dist/language_server/outline.js +0 -37
  102. package/dist/language_server/start.d.ts +0 -2
  103. package/dist/language_server/start.d.ts.map +0 -1
  104. package/dist/language_server/start.js +0 -4
  105. package/dist/language_server/xmethods.d.ts +0 -11
  106. package/dist/language_server/xmethods.d.ts.map +0 -1
  107. package/dist/language_server/xmethods.js +0 -42
  108. package/dist/model/util/advanced_path_parser.d.ts +0 -12
  109. package/dist/model/util/advanced_path_parser.d.ts.map +0 -1
  110. package/dist/model/util/advanced_path_parser.js +0 -38
  111. package/dist/outline/index.d.ts +0 -3
  112. package/dist/outline/index.d.ts.map +0 -1
  113. package/dist/outline/index.js +0 -31
  114. package/dist/outline/outline.d.ts +0 -4
  115. package/dist/outline/outline.d.ts.map +0 -1
  116. package/dist/outline/outline.js +0 -262
  117. package/dist/outline/types.d.ts +0 -87
  118. package/dist/outline/types.d.ts.map +0 -1
  119. package/dist/outline/types.js +0 -72
  120. package/dist/x/vscode-languageserver-types.d.ts.map +0 -1
  121. package/dist/x/vscode-languageserver.d.ts +0 -12
  122. package/dist/x/vscode-languageserver.d.ts.map +0 -1
  123. package/dist/x/vscode-languageserver.js +0 -61
  124. package/dist/x/vscode.d.ts +0 -126
  125. package/dist/x/vscode.d.ts.map +0 -1
  126. package/dist/x/vscode.js +0 -294
@@ -1,262 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getOutline = getOutline;
9
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/map"));
10
- var _projectConfig = require("@cedarjs/project-config");
11
- var _URL = require("../x/URL");
12
- var _vscode = require("../x/vscode");
13
- function getOutline(project) {
14
- return {
15
- children: async () => [_router(project), _pages(project), _components(project), _layouts(project), _cells(project), _services(project), _functions(project), await _schema(project), {
16
- label: 'redwood.toml',
17
- iconPath: 'x-redwood',
18
- ...resourceUriAndCommandFor((0, _URL.URL_file)(project.pathHelper.base, 'redwood.toml')),
19
- menu: {
20
- kind: 'withDoc',
21
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/app-configuration-redwood-toml')
22
- }
23
- }, {
24
- label: 'open graphql playground',
25
- command: (0, _vscode.Command_open)('http://localhost:8911/graphql'),
26
- iconPath: 'x-graphql',
27
- menu: {
28
- kind: 'withDoc',
29
- doc: (0, _vscode.Command_open)('https://www.apollographql.com/docs/apollo-server/testing/graphql-playground/')
30
- }
31
- }, {
32
- label: 'open storybook',
33
- command: (0, _vscode.Command_cli)('rw storybook --open'),
34
- iconPath: 'x-storybook',
35
- menu: {
36
- kind: 'withDoc',
37
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/how-to/mocking-graphql-in-storybook')
38
- }
39
- }, _rwcli_command_group({
40
- cmd: 'generate ...',
41
- tooltip: 'start interactive Cedar generator'
42
- }, {
43
- cmd: 'dev',
44
- tooltip: 'start development server and open browser'
45
- })]
46
- };
47
- }
48
- function _router(project) {
49
- const {
50
- router
51
- } = project;
52
- return {
53
- label: 'Routes.js',
54
- ...resourceUriAndCommandFor(router.uri),
55
- iconPath: 'globe',
56
- children: () => {
57
- var _context;
58
- return (0, _map.default)(_context = router.routes).call(_context, _router_route);
59
- },
60
- menu: {
61
- kind: 'group',
62
- add: (0, _vscode.Command_cli)('rw generate page ...'),
63
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/router')
64
- }
65
- };
66
- }
67
- function _router_route(route) {
68
- return {
69
- label: route.outlineLabel,
70
- description: route.outlineDescription,
71
- command: (0, _vscode.Command_open)(route.location),
72
- iconPath: route.isPrivate ? 'gist-secret' : 'gist',
73
- menu: {
74
- kind: 'route',
75
- openComponent: route.page ? (0, _vscode.Command_open)(route.page.uri) : undefined,
76
- openRoute: (0, _vscode.Command_open)(route.location),
77
- openInBrowser: (0, _vscode.Command_cli)(`cedar dev --open='${route.path}'`)
78
- }
79
- };
80
- }
81
- function _pages(project) {
82
- return {
83
- label: 'pages',
84
- iconPath: 'globe',
85
- children: () => {
86
- var _context2;
87
- return (0, _map.default)(_context2 = project.pages).call(_context2, _pages_page);
88
- },
89
- menu: {
90
- kind: 'group',
91
- add: (0, _vscode.Command_cli)('rw generate page ...'),
92
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/tutorial/chapter1/first-page')
93
- }
94
- };
95
- }
96
- function _pages_page(page) {
97
- return {
98
- id: page.id,
99
- label: page.basename,
100
- ...resourceUriAndCommandFor(page.uri),
101
- description: page.route?.path,
102
- children: () => [_rwcli_command_group({
103
- cmd: 'rw destroy page ' + page.basenameNoExt,
104
- tooltip: 'Delete page and related files'
105
- })]
106
- };
107
- }
108
- function _components(project) {
109
- return {
110
- label: 'components',
111
- iconPath: 'extensions',
112
- children: () => fromFiles(project.components),
113
- menu: {
114
- kind: 'group',
115
- add: (0, _vscode.Command_cli)('rw generate component ...'),
116
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/cli-commands.html#component')
117
- }
118
- };
119
- }
120
- function _layouts(project) {
121
- return {
122
- label: 'layouts',
123
- iconPath: 'preview',
124
- children: () => fromFiles(project.layouts),
125
- menu: {
126
- kind: 'group',
127
- add: (0, _vscode.Command_cli)('rw generate layout ...'),
128
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/tutorial/chapter1/layouts')
129
- }
130
- };
131
- }
132
- function _cells(project) {
133
- return {
134
- label: 'cells',
135
- iconPath: 'circuit-board',
136
- children: () => fromFiles(project.cells),
137
- menu: {
138
- kind: 'group',
139
- add: (0, _vscode.Command_cli)('rw generate cell ...'),
140
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/tutorial/chapter2/cells')
141
- }
142
- };
143
- }
144
- function _services(project) {
145
- return {
146
- label: 'services',
147
- iconPath: 'server',
148
- children: () => fromFiles(project.services),
149
- menu: {
150
- kind: 'group',
151
- add: (0, _vscode.Command_cli)('rw generate service ...'),
152
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/cli-commands.html#service')
153
- }
154
- };
155
- }
156
- function _functions(project) {
157
- return {
158
- label: 'functions',
159
- iconPath: 'server-process',
160
- // TODO: link to published function
161
- // http://localhost:8911/graphql
162
- children: () => fromFiles(project.functions),
163
- menu: {
164
- kind: 'group',
165
- add: (0, _vscode.Command_cli)('rw generate function ...'),
166
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/serverless-functions')
167
- }
168
- };
169
- }
170
- async function _schema(project) {
171
- const schemaPath = await (0, _projectConfig.getSchemaPath)(project.pathHelper.api.prismaConfig);
172
- return {
173
- label: 'schema.prisma',
174
- iconPath: 'x-prisma',
175
- menu: {
176
- kind: 'withDoc',
177
- doc: (0, _vscode.Command_open)('https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-schema')
178
- },
179
- ...resourceUriAndCommandFor(schemaPath),
180
- async children() {
181
- var _context3;
182
- const dmmf = await project.prismaDMMF();
183
- if (!dmmf) {
184
- return [];
185
- }
186
- const models = (0, _map.default)(_context3 = dmmf.datamodel.models).call(_context3, model => {
187
- return {
188
- label: model.name,
189
- iconPath: 'database',
190
- // TODO: location for models and fields
191
- children() {
192
- var _context4;
193
- const fields = (0, _map.default)(_context4 = model.fields).call(_context4, f => ({
194
- label: f.name,
195
- iconPath: 'symbol-field',
196
- description: `${f.type}`
197
- }));
198
- const commands = _rwcli_command_group({
199
- tooltip: 'create graphql interface to access this model',
200
- cmd: `generate sdl ${model.name}`
201
- }, {
202
- cmd: `generate scaffold ${model.name}`,
203
- tooltip: 'generate pages, SDL, and a services object for this model'
204
- });
205
- return [...fields, commands];
206
- }
207
- };
208
- });
209
- const commands = _rwcli_command_group({
210
- cmd: 'db save',
211
- tooltip: 'save migration file with new changes'
212
- }, {
213
- cmd: 'db up',
214
- tooltip: 'apply migrations'
215
- });
216
- return [...models, commands];
217
- }
218
- };
219
- }
220
- function _rwcli_command_group(...opts) {
221
- return {
222
- label: 'rw cli',
223
- key: 'rw-cli-commands',
224
- tooltip: 'Cedar CLI commands',
225
- iconPath: 'terminal',
226
- children: () => (0, _map.default)(opts).call(opts, _rwcli_command),
227
- menu: {
228
- kind: 'withDoc',
229
- doc: (0, _vscode.Command_open)('https://cedarjs.com/docs/cli-commands')
230
- }
231
- };
232
- }
233
- function _rwcli_command(opts) {
234
- const {
235
- cmd,
236
- tooltip
237
- } = opts;
238
- return {
239
- label: cmd,
240
- tooltip,
241
- menu: {
242
- kind: 'cli',
243
- run: (0, _vscode.Command_cli)(cmd)
244
- }
245
- };
246
- }
247
- function fromFiles(fileNodes) {
248
- return (0, _map.default)(fileNodes).call(fileNodes, fromFile);
249
- }
250
- function fromFile(fileNode) {
251
- return {
252
- label: fileNode.basename,
253
- ...resourceUriAndCommandFor(fileNode.uri)
254
- };
255
- }
256
- function resourceUriAndCommandFor(uri) {
257
- uri = (0, _URL.URL_file)(uri);
258
- return {
259
- resourceUri: uri,
260
- command: (0, _vscode.Command_open)(uri)
261
- };
262
- }
@@ -1,87 +0,0 @@
1
- export declare enum Icon {
2
- redwood = "redwood",
3
- page = "page",
4
- page_private = "page_private",
5
- pages = "pages",
6
- layouts = "layouts",
7
- netlify = "netlify",
8
- prisma = "prisma",
9
- storybook = "storybook",
10
- services = "services",
11
- graphql = "graphql",
12
- play = "play",
13
- components = "components",
14
- rw_cli = "rw_cli",
15
- functions = "functions",
16
- cells = "cells",
17
- model = "model"
18
- }
19
- export interface OutlineItem {
20
- /**
21
- * Label for the outline item.
22
- * This is the main text.
23
- */
24
- label: string;
25
- /**
26
- * If label is not unique amongst siblings, key is used to disambiguate.
27
- * This is similar to ReactNode.key
28
- */
29
- key?: string;
30
- /**
31
- * Secondary text.
32
- */
33
- description?: string;
34
- tooltip?: string;
35
- /**
36
- * - If present, this item will be rendered as a folder (with an expand button).
37
- * - If undefined, this item will be rendered as a leaf
38
- */
39
- children?(): Promise<OutlineItem[]>;
40
- /**
41
- * Whether this outline item should be expanded by default.
42
- * This is only relevant if children() is defined
43
- */
44
- expanded?: boolean;
45
- link?: OutlineLinkString;
46
- /**
47
- * link to documentation (URL, webpage)
48
- */
49
- doc?: OutlineLinkString;
50
- add?: OutlineLinkString;
51
- icon?: Icon;
52
- }
53
- /**
54
- * A link/action to execute when an outline item is clicked.
55
- * It can be:
56
- * - a file URL (with optional position hash)
57
- * - ex: "file:///somefile.ts"
58
- * - ex: "file:///Users/foo/bar/project/myfile.js#3:10"
59
- * - the editor will open and focus on this document when the item is selected
60
- * - note: a "file://" URL can only be associalted to ONE item in the outline
61
- * (so vscode can do a reverse search).
62
- * - an HTTP URL
63
- * - ex: "http://localhost:9999/foo/bar"
64
- * - ex: "http://redwoodjs.com/"
65
- * - the URL will open in the default browser when this item is selected
66
- * - a redwood CLI action
67
- * - ex: "rw generate page"
68
- * - note: the string must start with "rw"
69
- * - the command will be executed when this item is selected
70
- * - an interactive redwood action
71
- * - ex: "rw generate page..."
72
- * - the string must start with end with "..." (this means interactive)
73
- * - the interactive process will start when this item is selected
74
- * - not all redwood commands are supported in interactive mode
75
- * - see: https://github.com/cedarjs/cedar/tree/main/packages/structure/src/interactive_cli
76
- */
77
- type OutlineLinkString = string;
78
- export type OutlineItemJSON = Omit<OutlineItem, 'children'> & {
79
- children?: OutlineItemJSON[];
80
- };
81
- /**
82
- * this will recursively await all children and return a serializable
83
- * representation of the complete outline
84
- */
85
- export declare function outlineToJSON(item: OutlineItem): Promise<OutlineItemJSON>;
86
- export {};
87
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/outline/types.ts"],"names":[],"mappings":"AAAA,oBAAY,IAAI;IACd,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,QAAQ,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAEnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB;;OAEG;IACH,GAAG,CAAC,EAAE,iBAAiB,CAAA;IACvB,GAAG,CAAC,EAAE,iBAAiB,CAAA;IAEvB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,KAAK,iBAAiB,GAAG,MAAM,CAAA;AAE/B,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG;IAC5D,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B,CAAA;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,eAAe,CAAC,CAS1B"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Icon = void 0;
9
- exports.outlineToJSON = outlineToJSON;
10
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/promise"));
11
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/map"));
12
- let Icon = exports.Icon = /*#__PURE__*/function (Icon) {
13
- Icon["redwood"] = "redwood";
14
- Icon["page"] = "page";
15
- Icon["page_private"] = "page_private";
16
- Icon["pages"] = "pages";
17
- Icon["layouts"] = "layouts";
18
- Icon["netlify"] = "netlify";
19
- Icon["prisma"] = "prisma";
20
- Icon["storybook"] = "storybook";
21
- Icon["services"] = "services";
22
- Icon["graphql"] = "graphql";
23
- Icon["play"] = "play";
24
- Icon["components"] = "components";
25
- Icon["rw_cli"] = "rw_cli";
26
- Icon["functions"] = "functions";
27
- Icon["cells"] = "cells";
28
- Icon["model"] = "model";
29
- return Icon;
30
- }({});
31
- /**
32
- * A link/action to execute when an outline item is clicked.
33
- * It can be:
34
- * - a file URL (with optional position hash)
35
- * - ex: "file:///somefile.ts"
36
- * - ex: "file:///Users/foo/bar/project/myfile.js#3:10"
37
- * - the editor will open and focus on this document when the item is selected
38
- * - note: a "file://" URL can only be associalted to ONE item in the outline
39
- * (so vscode can do a reverse search).
40
- * - an HTTP URL
41
- * - ex: "http://localhost:9999/foo/bar"
42
- * - ex: "http://redwoodjs.com/"
43
- * - the URL will open in the default browser when this item is selected
44
- * - a redwood CLI action
45
- * - ex: "rw generate page"
46
- * - note: the string must start with "rw"
47
- * - the command will be executed when this item is selected
48
- * - an interactive redwood action
49
- * - ex: "rw generate page..."
50
- * - the string must start with end with "..." (this means interactive)
51
- * - the interactive process will start when this item is selected
52
- * - not all redwood commands are supported in interactive mode
53
- * - see: https://github.com/cedarjs/cedar/tree/main/packages/structure/src/interactive_cli
54
- */
55
- /**
56
- * this will recursively await all children and return a serializable
57
- * representation of the complete outline
58
- */
59
- async function outlineToJSON(item) {
60
- if (!item.children) {
61
- return {
62
- ...item,
63
- children: undefined
64
- };
65
- }
66
- const children = item.children ? await item.children() : [];
67
- const childrenOutlines = await _promise.default.all((0, _map.default)(children).call(children, outlineToJSON));
68
- return {
69
- ...item,
70
- children: childrenOutlines
71
- };
72
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"vscode-languageserver-types.d.ts","sourceRoot":"","sources":["../../src/x/vscode-languageserver-types.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { Connection } from 'vscode-languageserver';
2
- /**
3
- * will monkey patch the connection object
4
- * so that any errors thrown by subsequently installed handlers are caught and logged
5
- * (ex: connection.onHover(() => throw new Error('oops!')))
6
- * this prevents the LSP client, on the other end, to receive errors
7
- * which can sometimes cause error messages to pop-up uncontrollably
8
- *
9
- * @param conn
10
- */
11
- export declare function Connection_suppressErrors<T extends Connection>(conn: T): void;
12
- //# sourceMappingURL=vscode-languageserver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vscode-languageserver.d.ts","sourceRoot":"","sources":["../../src/x/vscode-languageserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,QA4BtE"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Connection_suppressErrors = Connection_suppressErrors;
9
- var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/object/keys"));
10
- var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/starts-with"));
11
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/map"));
12
- var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/json/stringify"));
13
- /**
14
- * will monkey patch the connection object
15
- * so that any errors thrown by subsequently installed handlers are caught and logged
16
- * (ex: connection.onHover(() => throw new Error('oops!')))
17
- * this prevents the LSP client, on the other end, to receive errors
18
- * which can sometimes cause error messages to pop-up uncontrollably
19
- *
20
- * @param conn
21
- */
22
- function Connection_suppressErrors(conn) {
23
- for (const k of (0, _keys.default)(conn)) {
24
- if (!(0, _startsWith.default)(k).call(k, 'on')) {
25
- continue;
26
- } // only onHover, onCodeLens, etc?
27
- const v = conn[k];
28
- if (typeof v !== 'function') {
29
- continue;
30
- }
31
- conn[k] = (...args) => {
32
- const args2 = (0, _map.default)(args).call(args, arg => typeof arg === 'function' ? with_catch2(arg, (e, fargs) => {
33
- const data = {
34
- handler: k,
35
- handlerInstallParams: args,
36
- handlerExecParams: fargs,
37
- error: e + ''
38
- };
39
- const dd = (0, _stringify.default)(data, null, 2);
40
- conn.console.error(dd);
41
- return null;
42
- }) : arg);
43
- return v.apply(conn, args2);
44
- };
45
- }
46
- }
47
- function with_catch2(f, clause) {
48
- return (...args) => catch2(() => f(...args), e => clause(e, args));
49
- function catch2(f, clause2) {
50
- try {
51
- const res = f();
52
- if (typeof res?.then === 'function') {
53
- // promise
54
- return res.catch?.(clause2);
55
- }
56
- return res;
57
- } catch (e) {
58
- return clause2(e);
59
- }
60
- }
61
- }
@@ -1,126 +0,0 @@
1
- import type * as vscode from 'vscode';
2
- import type { Connection as LSPConnection } from 'vscode-languageserver';
3
- import type { Command } from 'vscode-languageserver-types';
4
- import { Location } from 'vscode-languageserver-types';
5
- export type VSCodeWindowMethods = Pick<typeof vscode.window, 'showInformationMessage' | 'showQuickPick' | 'showInputBox'> & {
6
- createTerminal2(props: {
7
- name: string;
8
- cwd: string;
9
- cmd: string;
10
- }): void;
11
- } & {
12
- withProgress(opts: any, task: () => void): void;
13
- };
14
- export declare function VSCodeWindowMethods_fromConnection(connection: any): VSCodeWindowMethods;
15
- export type SerializableTreeItem = ReplacePropTypes<vscode.TreeItem, {
16
- resourceUri: string;
17
- collapsibleState: TreeItemCollapsibleState2;
18
- iconPath: ThemeIcon2;
19
- command: Command;
20
- }> & {
21
- id: string;
22
- } & {
23
- menu?: TreeItemMenu;
24
- };
25
- /**
26
- * menus types must be known beforehand.
27
- * they are set up by the vscode extension in its package.json
28
- */
29
- type TreeItemMenu = MenuCLI | MenuRoute | MenuGroup | MenuWithDoc;
30
- interface MenuCLI {
31
- kind: 'cli';
32
- doc?: Command;
33
- run: Command;
34
- }
35
- interface MenuRoute {
36
- kind: 'route';
37
- openInBrowser?: Command;
38
- openComponent?: Command;
39
- openRoute?: Command;
40
- }
41
- interface MenuGroup {
42
- kind: 'group';
43
- add?: Command;
44
- doc?: Command;
45
- }
46
- interface MenuWithDoc {
47
- kind: 'withDoc';
48
- doc?: Command;
49
- }
50
- /**
51
- * Based on the actual TreeItem interface provided by VSCode.
52
- * It has a few differences.
53
- */
54
- export type TreeItem2 = Partial<SerializableTreeItem> & {
55
- key?: string;
56
- children?(): vscode.ProviderResult<TreeItem2[]>;
57
- };
58
- export declare class TreeItem2Wrapper {
59
- item: TreeItem2;
60
- parent?: TreeItem2Wrapper | undefined;
61
- indexInParent: number;
62
- constructor(item: TreeItem2, parent?: TreeItem2Wrapper | undefined, indexInParent?: number);
63
- get keys(): string[];
64
- get key(): string;
65
- get id(): string;
66
- get collapsibleState(): TreeItemCollapsibleState2;
67
- children(): Promise<TreeItem2Wrapper[]>;
68
- findChild(key: string): Promise<TreeItem2Wrapper | undefined>;
69
- findChildRec(keys: string[]): Promise<TreeItem2Wrapper | undefined>;
70
- get serializableTreeItem(): SerializableTreeItem;
71
- }
72
- /**
73
- * https://microsoft.github.io/vscode-codicons/dist/codicon.html
74
- * plust a few extra icons provided by decoupled studio:
75
- * - redwood
76
- * - prisma
77
- * - graphql
78
- * - netlify
79
- */
80
- type ThemeIcon2 = string;
81
- /**
82
- * A copy of vscode.TreeItemCollapsibleState
83
- * we don't want to have a runtime dependency on the vscode package
84
- */
85
- export declare enum TreeItemCollapsibleState2 {
86
- /**
87
- * Determines an item can be neither collapsed nor expanded. Implies it has no children.
88
- */
89
- None = 0,
90
- /**
91
- * Determines an item is collapsed
92
- */
93
- Collapsed = 1,
94
- /**
95
- * Determines an item is expanded
96
- */
97
- Expanded = 2
98
- }
99
- /**
100
- * A vscode.TreeDataProvider that uses string IDs as elements
101
- * and returns a SerializableTreeItem.
102
- */
103
- type RemoteTreeDataProvider = ReplacePropTypes<vscode.TreeDataProvider<string>, {
104
- getTreeItem(id: string): Promise<SerializableTreeItem>;
105
- }>;
106
- export declare class RemoteTreeDataProviderImpl implements RemoteTreeDataProvider {
107
- private getRoot;
108
- private refreshInterval;
109
- constructor(getRoot: () => TreeItem2, refreshInterval?: number);
110
- private root;
111
- private refresh;
112
- private lazyInit;
113
- private listeners;
114
- onDidChangeTreeData(listener: (e: string | undefined) => void): any;
115
- getTreeItem(id: string): Promise<SerializableTreeItem>;
116
- getChildren(id?: string): Promise<string[]>;
117
- }
118
- export declare function RemoteTreeDataProvider_publishOverLSPConnection(tdp: RemoteTreeDataProvider, connection: LSPConnection, methodPrefix: string): void;
119
- export declare function ProviderResult_normalize<T>(x: vscode.ProviderResult<T>): Promise<T | undefined>;
120
- export declare function Command_open(uriOrLocation: string | Location): Command;
121
- export declare function Command_cli(cmd: string, title?: string): Command;
122
- type ReplacePropTypes<T extends object, Replacements extends object> = {
123
- [K in keyof T]: K extends keyof Replacements ? Replacements[K] : T[K];
124
- };
125
- export {};
126
- //# sourceMappingURL=vscode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vscode.d.ts","sourceRoot":"","sources":["../../src/x/vscode.ts"],"names":[],"mappings":"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"}