zenstack 2.18.0 → 2.19.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 +1 -1
- package/cli/config.d.ts +1 -1
- package/cli/config.js +1 -2
- package/cli/config.js.map +1 -1
- package/documentation-cache.d.ts +48 -0
- package/documentation-cache.js +141 -0
- package/documentation-cache.js.map +1 -0
- package/extension.d.ts +4 -0
- package/extension.js +135 -0
- package/extension.js.map +1 -0
- package/language-server/main.js +49 -0
- package/language-server/main.js.map +1 -1
- package/package.json +68 -13
- package/plugins/enhancer/enhance/index.js +4 -3
- package/plugins/enhancer/enhance/index.js.map +1 -1
- package/plugins/zod/generator.d.ts +1 -0
- package/plugins/zod/generator.js +42 -28
- package/plugins/zod/generator.js.map +1 -1
- package/plugins/zod/transformer.js +14 -3
- package/plugins/zod/transformer.js.map +1 -1
- package/plugins/zod/utils/schema-gen.d.ts +1 -1
- package/plugins/zod/utils/schema-gen.js +15 -11
- package/plugins/zod/utils/schema-gen.js.map +1 -1
- package/release-notes-manager.d.ts +25 -0
- package/release-notes-manager.js +111 -0
- package/release-notes-manager.js.map +1 -0
- package/res/zmodel-preview-release-notes.html +91 -0
- package/zenstack-auth-provider.d.ts +32 -0
- package/zenstack-auth-provider.js +281 -0
- package/zenstack-auth-provider.js.map +1 -0
- package/zmodel-preview.d.ts +44 -0
- package/zmodel-preview.js +289 -0
- package/zmodel-preview.js.map +1 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as vscode from 'vscode';
|
|
2
|
+
import { LanguageClient } from 'vscode-languageclient/node';
|
|
3
|
+
import { DocumentationCache } from './documentation-cache';
|
|
4
|
+
/**
|
|
5
|
+
* ZModelPreview class handles ZModel file preview functionality
|
|
6
|
+
*/
|
|
7
|
+
export declare class ZModelPreview implements vscode.Disposable {
|
|
8
|
+
private documentationCache;
|
|
9
|
+
private languageClient;
|
|
10
|
+
private static DocRequestSchema;
|
|
11
|
+
constructor(context: vscode.ExtensionContext, client: LanguageClient, cache: DocumentationCache);
|
|
12
|
+
/**
|
|
13
|
+
* Initialize and register commands
|
|
14
|
+
*/
|
|
15
|
+
initialize(context: vscode.ExtensionContext): void;
|
|
16
|
+
/**
|
|
17
|
+
* Register ZModel preview commands
|
|
18
|
+
*/
|
|
19
|
+
private registerCommands;
|
|
20
|
+
/**
|
|
21
|
+
* Preview a ZModel file
|
|
22
|
+
*/
|
|
23
|
+
previewZModelFile(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Get all imported ZModel URIs using the language server
|
|
26
|
+
*/
|
|
27
|
+
private getAllImportedZModelURIs;
|
|
28
|
+
/**
|
|
29
|
+
* Generate documentation for ZModel
|
|
30
|
+
*/
|
|
31
|
+
private generateZModelDocumentation;
|
|
32
|
+
/**
|
|
33
|
+
* Open markdown preview
|
|
34
|
+
*/
|
|
35
|
+
private openMarkdownPreview;
|
|
36
|
+
/**
|
|
37
|
+
* Check for Mermaid extensions
|
|
38
|
+
*/
|
|
39
|
+
private checkForMermaidExtensions;
|
|
40
|
+
/**
|
|
41
|
+
* Dispose of resources
|
|
42
|
+
*/
|
|
43
|
+
dispose(): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.ZModelPreview = void 0;
|
|
46
|
+
const vscode = __importStar(require("vscode"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const os = __importStar(require("os"));
|
|
49
|
+
const zod_1 = require("zod");
|
|
50
|
+
const extension_1 = require("./extension");
|
|
51
|
+
const zenstack_auth_provider_1 = require("./zenstack-auth-provider");
|
|
52
|
+
/**
|
|
53
|
+
* ZModelPreview class handles ZModel file preview functionality
|
|
54
|
+
*/
|
|
55
|
+
class ZModelPreview {
|
|
56
|
+
constructor(context, client, cache) {
|
|
57
|
+
this.documentationCache = cache;
|
|
58
|
+
this.languageClient = client;
|
|
59
|
+
this.initialize(context);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Initialize and register commands
|
|
63
|
+
*/
|
|
64
|
+
initialize(context) {
|
|
65
|
+
this.registerCommands(context);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Register ZModel preview commands
|
|
69
|
+
*/
|
|
70
|
+
registerCommands(context) {
|
|
71
|
+
// Register the preview command for zmodel files
|
|
72
|
+
context.subscriptions.push(vscode.commands.registerCommand('zenstack.preview-zmodel', () => __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
yield this.previewZModelFile();
|
|
74
|
+
})));
|
|
75
|
+
// Register cache management commands
|
|
76
|
+
context.subscriptions.push(vscode.commands.registerCommand('zenstack.clear-documentation-cache', () => __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
yield this.documentationCache.clearAllCache();
|
|
78
|
+
vscode.window.showInformationMessage('ZenStack documentation cache cleared');
|
|
79
|
+
})));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Preview a ZModel file
|
|
83
|
+
*/
|
|
84
|
+
previewZModelFile() {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const editor = vscode.window.activeTextEditor;
|
|
87
|
+
if (!editor) {
|
|
88
|
+
vscode.window.showErrorMessage('No active editor found.');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const document = editor.document;
|
|
92
|
+
if (!document.fileName.endsWith('.zmodel')) {
|
|
93
|
+
vscode.window.showErrorMessage('The active file is not a ZModel file.');
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// Check authentication before proceeding
|
|
97
|
+
const session = yield (0, extension_1.requireAuth)();
|
|
98
|
+
if (!session) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
this.checkForMermaidExtensions();
|
|
103
|
+
// Show progress indicator
|
|
104
|
+
yield vscode.window.withProgress({
|
|
105
|
+
location: vscode.ProgressLocation.Notification,
|
|
106
|
+
title: 'Generating ZModel documentation...',
|
|
107
|
+
cancellable: false,
|
|
108
|
+
}, () => __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
const markdownContent = yield this.generateZModelDocumentation(document);
|
|
110
|
+
if (markdownContent) {
|
|
111
|
+
yield this.openMarkdownPreview(markdownContent, document.fileName);
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.error('Error previewing ZModel:', error);
|
|
117
|
+
vscode.window.showErrorMessage(`Failed to preview ZModel: ${error instanceof Error ? error.message : String(error)}`);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get all imported ZModel URIs using the language server
|
|
123
|
+
*/
|
|
124
|
+
getAllImportedZModelURIs(document) {
|
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
if (!this.languageClient) {
|
|
127
|
+
throw new Error('Language client not initialized');
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
// Ensure the language server is ready
|
|
131
|
+
yield this.languageClient.start();
|
|
132
|
+
// Send the custom request to get all imported ZModel URIs
|
|
133
|
+
const result = yield this.languageClient.sendRequest('zenstack/getAllImportedZModelURIs', {
|
|
134
|
+
textDocument: {
|
|
135
|
+
uri: document.uri.toString(),
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
console.error('Error getting AST from language server:', error);
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Generate documentation for ZModel
|
|
148
|
+
*/
|
|
149
|
+
generateZModelDocumentation(document) {
|
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
+
try {
|
|
152
|
+
const astInfo = yield this.getAllImportedZModelURIs(document);
|
|
153
|
+
if ((astInfo === null || astInfo === void 0 ? void 0 : astInfo.hasSyntaxErrors) !== false) {
|
|
154
|
+
vscode.window.showWarningMessage('Please fix the errors in the ZModel first');
|
|
155
|
+
return '';
|
|
156
|
+
}
|
|
157
|
+
const importedURIs = astInfo === null || astInfo === void 0 ? void 0 : astInfo.importedURIs;
|
|
158
|
+
// get vscode document from importedURIs
|
|
159
|
+
const importedModels = yield Promise.all(importedURIs.map((uri) => __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
try {
|
|
161
|
+
const fileUri = vscode.Uri.file(uri.path);
|
|
162
|
+
const fileContent = yield vscode.workspace.fs.readFile(fileUri);
|
|
163
|
+
const filePath = fileUri.path;
|
|
164
|
+
return { content: Buffer.from(fileContent).toString('utf8').trim(), path: filePath };
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
throw new Error(`Failed to read imported ZModel file at ${uri.path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
168
|
+
}
|
|
169
|
+
})));
|
|
170
|
+
const allModels = [{ content: document.getText().trim(), path: document.uri.path }, ...importedModels];
|
|
171
|
+
const session = yield (0, extension_1.requireAuth)();
|
|
172
|
+
if (!session) {
|
|
173
|
+
throw new Error('Authentication required to generate documentation');
|
|
174
|
+
}
|
|
175
|
+
// Prepare request body
|
|
176
|
+
const requestBody = {
|
|
177
|
+
models: allModels,
|
|
178
|
+
environments: {
|
|
179
|
+
vscodeAppName: vscode.env.appName,
|
|
180
|
+
vscodeVersion: vscode.version,
|
|
181
|
+
vscodeAppHost: vscode.env.appHost,
|
|
182
|
+
osRelease: os.release(),
|
|
183
|
+
osType: os.type(),
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
const allModelsContent = allModels.map((m) => m.content);
|
|
187
|
+
// Check cache first
|
|
188
|
+
const cachedResponse = yield this.documentationCache.getCachedResponse(allModelsContent);
|
|
189
|
+
if (cachedResponse) {
|
|
190
|
+
return cachedResponse;
|
|
191
|
+
}
|
|
192
|
+
// record the time spent
|
|
193
|
+
const startTime = Date.now();
|
|
194
|
+
const apiResponse = yield fetch(`${zenstack_auth_provider_1.API_URL}/api/doc`, {
|
|
195
|
+
method: 'POST',
|
|
196
|
+
headers: {
|
|
197
|
+
'Content-Type': 'application/json',
|
|
198
|
+
authorization: session.accessToken,
|
|
199
|
+
},
|
|
200
|
+
body: JSON.stringify(requestBody),
|
|
201
|
+
});
|
|
202
|
+
console.log(`API request completed in ${Date.now() - startTime} ms`);
|
|
203
|
+
if (!apiResponse.ok) {
|
|
204
|
+
throw new Error(`API request failed: ${apiResponse.status} ${apiResponse.statusText}`);
|
|
205
|
+
}
|
|
206
|
+
const responseText = yield apiResponse.text();
|
|
207
|
+
// Cache the response
|
|
208
|
+
yield this.documentationCache.setCachedResponse(allModelsContent, responseText);
|
|
209
|
+
return responseText;
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
console.error('Error generating documentation:', error);
|
|
213
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
214
|
+
throw new Error(`Failed to generate documentation: ${errorMessage}`);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Open markdown preview
|
|
220
|
+
*/
|
|
221
|
+
openMarkdownPreview(markdownContent, originalFileName) {
|
|
222
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
223
|
+
// Create a temporary markdown file with a descriptive name in the system temp folder
|
|
224
|
+
const baseName = path.basename(originalFileName, '.zmodel');
|
|
225
|
+
const tempFileName = `${baseName}-preview.md`;
|
|
226
|
+
const tempFilePath = path.join(os.tmpdir(), tempFileName);
|
|
227
|
+
const tempFile = vscode.Uri.file(tempFilePath);
|
|
228
|
+
try {
|
|
229
|
+
// Write the markdown content to the temp file
|
|
230
|
+
yield vscode.workspace.fs.writeFile(tempFile, new TextEncoder().encode(markdownContent));
|
|
231
|
+
// Open the markdown preview side by side
|
|
232
|
+
yield vscode.commands.executeCommand('markdown.showPreviewToSide', tempFile);
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
console.error('Error creating markdown preview:', error);
|
|
236
|
+
throw new Error(`Failed to create markdown preview: ${error instanceof Error ? error.message : String(error)}`);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Check for Mermaid extensions
|
|
242
|
+
*/
|
|
243
|
+
checkForMermaidExtensions() {
|
|
244
|
+
const setting = vscode.workspace.getConfiguration('zenstack').get('searchForExtensions');
|
|
245
|
+
if (setting !== false) {
|
|
246
|
+
const extensions = vscode.extensions.all.filter((extension) => ['markdown-mermaid', 'vscode-mermaid-chart', 'vscode-mermaid-preview'].some((name) => { var _a; return (_a = extension.packageJSON.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(name.toLowerCase()); }));
|
|
247
|
+
if (extensions.length === 0) {
|
|
248
|
+
const searchAction = 'Search';
|
|
249
|
+
const stopShowing = "Don't show again";
|
|
250
|
+
vscode.window
|
|
251
|
+
.showInformationMessage('Search for extensions to view mermaid chart in ZModel preview doc?', searchAction, stopShowing)
|
|
252
|
+
.then((selectedAction) => {
|
|
253
|
+
if (selectedAction === searchAction) {
|
|
254
|
+
vscode.commands.executeCommand('workbench.extensions.search', 'markdown-mermaid');
|
|
255
|
+
}
|
|
256
|
+
else if (selectedAction === stopShowing) {
|
|
257
|
+
vscode.workspace
|
|
258
|
+
.getConfiguration('zenstack')
|
|
259
|
+
.update('searchForExtensions', false, vscode.ConfigurationTarget.Global);
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Dispose of resources
|
|
267
|
+
*/
|
|
268
|
+
dispose() {
|
|
269
|
+
// Any cleanup if needed
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
exports.ZModelPreview = ZModelPreview;
|
|
273
|
+
// Schema for validating the request body
|
|
274
|
+
ZModelPreview.DocRequestSchema = zod_1.z.object({
|
|
275
|
+
models: zod_1.z.array(zod_1.z.object({
|
|
276
|
+
path: zod_1.z.string().optional(),
|
|
277
|
+
content: zod_1.z.string(),
|
|
278
|
+
})),
|
|
279
|
+
environments: zod_1.z
|
|
280
|
+
.object({
|
|
281
|
+
vscodeAppName: zod_1.z.string(),
|
|
282
|
+
vscodeVersion: zod_1.z.string(),
|
|
283
|
+
vscodeAppHost: zod_1.z.string(),
|
|
284
|
+
osRelease: zod_1.z.string(),
|
|
285
|
+
osType: zod_1.z.string(),
|
|
286
|
+
})
|
|
287
|
+
.optional(),
|
|
288
|
+
});
|
|
289
|
+
//# sourceMappingURL=zmodel-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zmodel-preview.js","sourceRoot":"","sources":["../src/zmodel-preview.ts"],"names":[],"mappings":"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"}
|