zenstack 2.18.1 → 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.
@@ -6,7 +6,7 @@ const sdk_1 = require("@zenstackhq/sdk");
6
6
  const ast_1 = require("@zenstackhq/sdk/ast");
7
7
  const local_helpers_1 = require("@zenstackhq/runtime/local-helpers");
8
8
  const enhancer_utils_1 = require("../../enhancer/enhancer-utils");
9
- function makeFieldSchema(field) {
9
+ function makeFieldSchema(field, addDefaults = true) {
10
10
  var _a, _b;
11
11
  if ((0, ast_1.isDataModel)((_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref)) {
12
12
  if (field.type.array) {
@@ -14,7 +14,9 @@ function makeFieldSchema(field) {
14
14
  return `z.array(z.unknown()).optional()`;
15
15
  }
16
16
  else {
17
- return field.type.optional ? `z.record(z.unknown()).optional()` : `z.record(z.unknown())`;
17
+ return field.type.optional
18
+ ? `z.record(z.string(), z.unknown()).optional()`
19
+ : `z.record(z.string(), z.unknown())`;
18
20
  }
19
21
  }
20
22
  let schema = makeZodSchema(field);
@@ -133,15 +135,17 @@ function makeFieldSchema(field) {
133
135
  }
134
136
  }
135
137
  else {
136
- const schemaDefault = getFieldSchemaDefault(field);
137
- if (schemaDefault !== undefined) {
138
- if (field.type.type === 'BigInt') {
139
- // we can't use the `n` BigInt literal notation, since it needs
140
- // ES2020 or later, which TypeScript doesn't use by default
141
- schema += `.default(BigInt("${schemaDefault}"))`;
142
- }
143
- else {
144
- schema += `.default(${schemaDefault})`;
138
+ if (addDefaults) {
139
+ const schemaDefault = getFieldSchemaDefault(field);
140
+ if (schemaDefault !== undefined) {
141
+ if (field.type.type === 'BigInt') {
142
+ // we can't use the `n` BigInt literal notation, since it needs
143
+ // ES2020 or later, which TypeScript doesn't use by default
144
+ schema += `.default(BigInt("${schemaDefault}"))`;
145
+ }
146
+ else {
147
+ schema += `.default(${schemaDefault})`;
148
+ }
145
149
  }
146
150
  }
147
151
  if (field.type.optional) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema-gen.js","sourceRoot":"","sources":["../../../../src/plugins/zod/utils/schema-gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-gen.js","sourceRoot":"","sources":["../../../../src/plugins/zod/utils/schema-gen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import * as vscode from 'vscode';
2
+ /**
3
+ * ReleaseNotesManager class handles release notes functionality
4
+ */
5
+ export declare class ReleaseNotesManager implements vscode.Disposable {
6
+ private extensionContext;
7
+ private readonly zmodelPreviewReleaseNoteKey;
8
+ constructor(context: vscode.ExtensionContext);
9
+ /**
10
+ * Initialize and register commands, show release notes if first time
11
+ */
12
+ initialize(): void;
13
+ /**
14
+ * Show release notes on first activation of this version
15
+ */
16
+ showReleaseNotesIfFirstTime(): Promise<void>;
17
+ /**
18
+ * Show release notes (can be called manually)
19
+ */
20
+ showReleaseNotes(): Promise<void>;
21
+ /**
22
+ * Dispose of resources
23
+ */
24
+ dispose(): void;
25
+ }
@@ -0,0 +1,111 @@
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.ReleaseNotesManager = void 0;
46
+ const vscode = __importStar(require("vscode"));
47
+ /**
48
+ * ReleaseNotesManager class handles release notes functionality
49
+ */
50
+ class ReleaseNotesManager {
51
+ constructor(context) {
52
+ this.zmodelPreviewReleaseNoteKey = 'zmodel-preview-release-note-shown';
53
+ this.extensionContext = context;
54
+ this.initialize();
55
+ }
56
+ /**
57
+ * Initialize and register commands, show release notes if first time
58
+ */
59
+ initialize() {
60
+ this.showReleaseNotesIfFirstTime();
61
+ }
62
+ /**
63
+ * Show release notes on first activation of this version
64
+ */
65
+ showReleaseNotesIfFirstTime() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ // Show release notes if this is the first time activating this version
68
+ if (!this.extensionContext.globalState.get(this.zmodelPreviewReleaseNoteKey)) {
69
+ yield this.showReleaseNotes();
70
+ // Update the stored version to prevent showing again
71
+ yield this.extensionContext.globalState.update(this.zmodelPreviewReleaseNoteKey, true);
72
+ // Add this key to sync keys for cross-machine synchronization
73
+ this.extensionContext.globalState.setKeysForSync([this.zmodelPreviewReleaseNoteKey]);
74
+ }
75
+ });
76
+ }
77
+ /**
78
+ * Show release notes (can be called manually)
79
+ */
80
+ showReleaseNotes() {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ try {
83
+ // Read the release notes HTML file
84
+ const releaseNotesPath = vscode.Uri.joinPath(this.extensionContext.extensionUri, 'bundle/res/zmodel-preview-release-notes.html');
85
+ const htmlBytes = yield vscode.workspace.fs.readFile(releaseNotesPath);
86
+ const htmlContent = Buffer.from(htmlBytes).toString('utf8');
87
+ // Create and show the release notes webview
88
+ const panel = vscode.window.createWebviewPanel('ZenstackReleaseNotes', 'ZenStack - New Feature Announcement!', vscode.ViewColumn.One, {
89
+ enableScripts: true,
90
+ retainContextWhenHidden: true,
91
+ });
92
+ panel.webview.html = htmlContent;
93
+ // Optional: Close the panel when user clicks outside or after some time
94
+ panel.onDidDispose(() => {
95
+ // Panel disposed
96
+ });
97
+ }
98
+ catch (error) {
99
+ console.error('Error showing release notes:', error);
100
+ }
101
+ });
102
+ }
103
+ /**
104
+ * Dispose of resources
105
+ */
106
+ dispose() {
107
+ // Any cleanup if needed
108
+ }
109
+ }
110
+ exports.ReleaseNotesManager = ReleaseNotesManager;
111
+ //# sourceMappingURL=release-notes-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-notes-manager.js","sourceRoot":"","sources":["../src/release-notes-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAEjC;;GAEG;AACH,MAAa,mBAAmB;IAI5B,YAAY,OAAgC;QAF3B,gCAA2B,GAAG,mCAAmC,CAAC;QAG/E,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,UAAU;QACN,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACG,2BAA2B;;YAC7B,uEAAuE;YACvE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,qDAAqD;gBACrD,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;gBACvF,8DAA8D;gBAC9D,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACG,gBAAgB;;YAClB,IAAI,CAAC;gBACD,mCAAmC;gBACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CACxC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAClC,8CAA8C,CACjD,CAAC;gBAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACvE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC5D,4CAA4C;gBAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAC1C,sBAAsB,EACtB,sCAAsC,EACtC,MAAM,CAAC,UAAU,CAAC,GAAG,EACrB;oBACI,aAAa,EAAE,IAAI;oBACnB,uBAAuB,EAAE,IAAI;iBAChC,CACJ,CAAC;gBAEF,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;gBAEjC,wEAAwE;gBACxE,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE;oBACpB,iBAAiB;gBACrB,CAAC,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACH,OAAO;QACH,wBAAwB;IAC5B,CAAC;CACJ;AAvED,kDAuEC"}
@@ -0,0 +1,91 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <link href="https://cdn.jsdelivr.net/npm/@vscode/codicons@0.0.40/dist/codicon.min.css" rel="stylesheet" />
5
+
6
+ <style>
7
+ body {
8
+ font-family: system-ui, -apple-system, sans-serif;
9
+ padding: 20px;
10
+ max-width: 800px;
11
+ margin: 0 auto;
12
+ background-color: var(--vscode-editor-background);
13
+ color: var(--vscode-editor-foreground);
14
+ }
15
+ .header {
16
+ background-color: var(--vscode-button-background);
17
+ color: var(--vscode-button-foreground);
18
+ padding: 20px;
19
+ border-radius: 8px;
20
+ text-align: center;
21
+ margin-bottom: 20px;
22
+ }
23
+ .feature {
24
+ background-color: var(--vscode-textBlockQuote-background);
25
+ border: 1px solid var(--vscode-textBlockQuote-border);
26
+ padding: 15px;
27
+ border-radius: 6px;
28
+ margin: 15px 0;
29
+ border-left: 4px solid var(--vscode-button-background);
30
+ }
31
+ .steps {
32
+ background-color: var(--vscode-textCodeBlock-background);
33
+ padding: 15px;
34
+ border-radius: 6px;
35
+ margin: 15px 0;
36
+ }
37
+ a {
38
+ color: var(--vscode-textLink-foreground);
39
+ text-decoration: none;
40
+ }
41
+ a:hover {
42
+ text-decoration: underline;
43
+ color: var(--vscode-textLink-activeForeground);
44
+ }
45
+ </style>
46
+ </head>
47
+ <body>
48
+ <div class="header">
49
+ <h1>🎉 Introducing ZModel Documentation Preview</h1>
50
+ <p>Preview documentation directly from your ZModel powered by AI</p>
51
+ </div>
52
+
53
+ <div class="feature">
54
+ <h3>📖 What's New</h3>
55
+ <p>
56
+ You can now preview comprehensive documentation for your ZModel files, just like you would preview a
57
+ markdown file.
58
+ </p>
59
+ </div>
60
+
61
+ <div class="steps">
62
+ <h3>🚀 How to Use</h3>
63
+ <ol>
64
+ <li>Open your <code>.zmodel</code> file</li>
65
+ <li>
66
+ Click (<span class="codicon codicon-preview"></span>) in the editor toolbar, or simply press
67
+ <code>Cmd&nbsp;+&nbsp;Shift&nbsp;+&nbsp;V</code> (Mac) or
68
+ <code>Ctrl&nbsp;+&nbsp;Shift&nbsp;+&nbsp;V</code> (Windows)
69
+ </li>
70
+ <li>Sign in with ZenStack (one-time setup)</li>
71
+ <li>Enjoy your AI-generated documentation</li>
72
+ </ol>
73
+ </div>
74
+
75
+ <div class="steps">
76
+ <h3>💡 Tips</h3>
77
+ <ul>
78
+ <li>Ensure your zmodel is error-free before generating.</li>
79
+ <li>Use your main zmodel file, which will include all imported models, for complete documentation.</li>
80
+ <li>
81
+ Add clear, descriptive comments in your ZModel. The more context you provide, the better the
82
+ results.
83
+ </li>
84
+ </ul>
85
+ </div>
86
+
87
+ <p style="text-align: center; color: var(--vscode-descriptionForeground); margin-top: 30px">
88
+ Happy coding with ZenStack! 🚀<br />
89
+ </p>
90
+ </body>
91
+ </html>
@@ -0,0 +1,32 @@
1
+ import * as vscode from 'vscode';
2
+ export declare const AUTH_PROVIDER_ID = "ZenStack";
3
+ export declare const AUTH_URL = "https://accounts.zenstack.dev";
4
+ export declare const API_URL = "https://api.zenstack.dev";
5
+ export declare class ZenStackAuthenticationProvider implements vscode.AuthenticationProvider, vscode.Disposable {
6
+ private _onDidChangeSessions;
7
+ readonly onDidChangeSessions: vscode.Event<vscode.AuthenticationProviderAuthenticationSessionsChangeEvent>;
8
+ private _sessions;
9
+ private _context;
10
+ private _disposable;
11
+ private pendingAuth?;
12
+ constructor(context: vscode.ExtensionContext);
13
+ getSessions(_scopes?: readonly string[]): Promise<vscode.AuthenticationSession[]>;
14
+ createSession(scopes: readonly string[]): Promise<vscode.AuthenticationSession>;
15
+ removeSession(sessionId: string): Promise<void>;
16
+ /**
17
+ * Log out all sessions
18
+ */
19
+ logoutAllSessions(): Promise<void>;
20
+ private performLogin;
21
+ private generateState;
22
+ handleAuthCallback(callbackUri: vscode.Uri): Promise<void>;
23
+ private createSessionFromAccessToken;
24
+ private parseJWTClaims;
25
+ private getStoredSessions;
26
+ private storeSession;
27
+ private removeStoredSession;
28
+ /**
29
+ * Dispose the registered services
30
+ */
31
+ dispose(): Promise<void>;
32
+ }
@@ -0,0 +1,281 @@
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.ZenStackAuthenticationProvider = exports.API_URL = exports.AUTH_URL = exports.AUTH_PROVIDER_ID = void 0;
46
+ const vscode = __importStar(require("vscode"));
47
+ exports.AUTH_PROVIDER_ID = 'ZenStack';
48
+ exports.AUTH_URL = 'https://accounts.zenstack.dev';
49
+ exports.API_URL = 'https://api.zenstack.dev';
50
+ class ZenStackAuthenticationProvider {
51
+ constructor(context) {
52
+ this._onDidChangeSessions = new vscode.EventEmitter();
53
+ this.onDidChangeSessions = this._onDidChangeSessions.event;
54
+ this._sessions = [];
55
+ this._context = context;
56
+ this._disposable = vscode.Disposable.from(vscode.authentication.registerAuthenticationProvider(exports.AUTH_PROVIDER_ID, 'ZenStack', this), vscode.window.registerUriHandler({
57
+ handleUri: (uri) => __awaiter(this, void 0, void 0, function* () {
58
+ if (uri.path === '/auth-callback') {
59
+ yield this.handleAuthCallback(uri);
60
+ }
61
+ }),
62
+ }),
63
+ // Register logout command
64
+ vscode.commands.registerCommand('zenstack.logout', () => __awaiter(this, void 0, void 0, function* () {
65
+ yield this.logoutAllSessions();
66
+ })));
67
+ }
68
+ getSessions(_scopes) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ // Check if we have stored sessions in VS Code's secret storage
71
+ const storedSessions = yield this.getStoredSessions();
72
+ this._sessions = storedSessions;
73
+ return this._sessions;
74
+ });
75
+ }
76
+ createSession(scopes) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ // Create a login flow
79
+ const session = yield this.performLogin(scopes);
80
+ if (session) {
81
+ this._sessions.push(session);
82
+ yield this.storeSession(session);
83
+ this._onDidChangeSessions.fire({
84
+ added: [session],
85
+ removed: [],
86
+ changed: [],
87
+ });
88
+ }
89
+ return session;
90
+ });
91
+ }
92
+ removeSession(sessionId) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const sessionIndex = this._sessions.findIndex((s) => s.id === sessionId);
95
+ if (sessionIndex > -1) {
96
+ const session = this._sessions[sessionIndex];
97
+ this._sessions.splice(sessionIndex, 1);
98
+ yield this.removeStoredSession(sessionId);
99
+ this._onDidChangeSessions.fire({
100
+ added: [],
101
+ removed: [session],
102
+ changed: [],
103
+ });
104
+ }
105
+ });
106
+ }
107
+ /**
108
+ * Log out all sessions
109
+ */
110
+ logoutAllSessions() {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ if (this._sessions.length === 0) {
113
+ return;
114
+ }
115
+ (yield this.getSessions()).forEach((s) => __awaiter(this, void 0, void 0, function* () { return yield this.removeSession(s.id); }));
116
+ vscode.window.showInformationMessage('Successfully logged out of ZenStack.');
117
+ });
118
+ }
119
+ performLogin(scopes) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ // Create the authentication promise
122
+ return vscode.window.withProgress({
123
+ location: vscode.ProgressLocation.Notification,
124
+ title: 'Signing in to ZenStack',
125
+ cancellable: true,
126
+ }, (progress, token) => __awaiter(this, void 0, void 0, function* () {
127
+ return new Promise((resolve, reject) => {
128
+ // Handle cancellation
129
+ token.onCancellationRequested(() => {
130
+ if (this.pendingAuth) {
131
+ delete this.pendingAuth;
132
+ }
133
+ reject(new Error('User Cancelled'));
134
+ });
135
+ const isCursor = vscode.env.appName == 'Cursor';
136
+ let signInUrl = vscode.Uri.parse(new URL('/sign-in', exports.AUTH_URL).toString());
137
+ if (isCursor) {
138
+ signInUrl = signInUrl.with({
139
+ query: `redirect_url=${exports.API_URL}/oauth/oauth_callback?vscodeapp=cursor`,
140
+ });
141
+ }
142
+ console.log('ZenStack sign-in URL:', signInUrl.toString());
143
+ // Store the state and resolve function for later use
144
+ this.pendingAuth = { resolve, reject, scopes };
145
+ // Open the ZenStack sign-in page in the user's default browser
146
+ vscode.env.openExternal(signInUrl).then(() => {
147
+ console.log('Opened ZenStack sign-in page in browser');
148
+ progress.report({ message: 'Waiting for return from browser...' });
149
+ }, (error) => {
150
+ if (this.pendingAuth) {
151
+ delete this.pendingAuth;
152
+ }
153
+ reject(new Error(`Failed to open sign-in page: ${error}`));
154
+ });
155
+ // 2 minutes timeout
156
+ setTimeout(() => {
157
+ if (this.pendingAuth) {
158
+ delete this.pendingAuth;
159
+ }
160
+ reject(new Error('Timeout'));
161
+ }, 120000);
162
+ });
163
+ }));
164
+ });
165
+ }
166
+ generateState() {
167
+ return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
168
+ }
169
+ // Handle authentication callback from ZenStack
170
+ handleAuthCallback(callbackUri) {
171
+ return __awaiter(this, void 0, void 0, function* () {
172
+ const query = new URLSearchParams(callbackUri.query);
173
+ const accessToken = query.get('access_token');
174
+ if (!this.pendingAuth) {
175
+ console.warn('No pending authentication found');
176
+ return;
177
+ }
178
+ if (!accessToken) {
179
+ this.pendingAuth.reject(new Error('No access token received'));
180
+ delete this.pendingAuth;
181
+ return;
182
+ }
183
+ try {
184
+ // Create session from the access token
185
+ const session = yield this.createSessionFromAccessToken(accessToken);
186
+ this.pendingAuth.resolve(session);
187
+ delete this.pendingAuth;
188
+ }
189
+ catch (error) {
190
+ if (this.pendingAuth) {
191
+ this.pendingAuth.reject(error instanceof Error ? error : new Error(String(error)));
192
+ delete this.pendingAuth;
193
+ }
194
+ }
195
+ });
196
+ }
197
+ createSessionFromAccessToken(accessToken) {
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ try {
200
+ // Decode JWT to get claims
201
+ const claims = this.parseJWTClaims(accessToken);
202
+ return {
203
+ id: claims.jti || Math.random().toString(36),
204
+ accessToken: accessToken,
205
+ account: {
206
+ id: claims.sub || 'unknown',
207
+ label: claims.email || 'unknown@zenstack.dev',
208
+ },
209
+ scopes: [],
210
+ };
211
+ }
212
+ catch (error) {
213
+ throw new Error(`Failed to create session from access token: ${error}`);
214
+ }
215
+ });
216
+ }
217
+ parseJWTClaims(token) {
218
+ try {
219
+ // JWT tokens have 3 parts separated by dots: header.payload.signature
220
+ const parts = token.split('.');
221
+ if (parts.length !== 3) {
222
+ throw new Error('Invalid JWT format');
223
+ }
224
+ // Decode the payload (second part)
225
+ const payload = parts[1];
226
+ // Add padding if needed for base64 decoding
227
+ const paddedPayload = payload + '='.repeat((4 - (payload.length % 4)) % 4);
228
+ const decoded = atob(paddedPayload);
229
+ return JSON.parse(decoded);
230
+ }
231
+ catch (error) {
232
+ throw new Error(`Failed to parse JWT claims: ${error}`);
233
+ }
234
+ }
235
+ getStoredSessions() {
236
+ return __awaiter(this, void 0, void 0, function* () {
237
+ try {
238
+ const stored = yield this._context.secrets.get('zenstack-auth-sessions');
239
+ return stored ? JSON.parse(stored) : [];
240
+ }
241
+ catch (error) {
242
+ console.error('Error retrieving stored sessions:', error);
243
+ return [];
244
+ }
245
+ });
246
+ }
247
+ storeSession(session) {
248
+ return __awaiter(this, void 0, void 0, function* () {
249
+ try {
250
+ const sessions = yield this.getStoredSessions();
251
+ sessions.push(session);
252
+ yield this._context.secrets.store('zenstack-auth-sessions', JSON.stringify(sessions));
253
+ }
254
+ catch (error) {
255
+ console.error('Error storing session:', error);
256
+ }
257
+ });
258
+ }
259
+ removeStoredSession(sessionId) {
260
+ return __awaiter(this, void 0, void 0, function* () {
261
+ try {
262
+ const sessions = yield this.getStoredSessions();
263
+ const filteredSessions = sessions.filter((s) => s.id !== sessionId);
264
+ yield this._context.secrets.store('zenstack-auth-sessions', JSON.stringify(filteredSessions));
265
+ }
266
+ catch (error) {
267
+ console.error('Error removing stored session:', error);
268
+ }
269
+ });
270
+ }
271
+ /**
272
+ * Dispose the registered services
273
+ */
274
+ dispose() {
275
+ return __awaiter(this, void 0, void 0, function* () {
276
+ this._disposable.dispose();
277
+ });
278
+ }
279
+ }
280
+ exports.ZenStackAuthenticationProvider = ZenStackAuthenticationProvider;
281
+ //# sourceMappingURL=zenstack-auth-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zenstack-auth-provider.js","sourceRoot":"","sources":["../src/zenstack-auth-provider.ts"],"names":[],"mappings":"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"}