intelligent-system-design-language 0.3.13

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 (209) hide show
  1. package/.claude/agents/langium-language-designer.md +38 -0
  2. package/.claude/agents/typescript-vscode-expert.md +29 -0
  3. package/.claude/agents/ui-ux-designer.md +36 -0
  4. package/.claude/settings.local.json +33 -0
  5. package/.idea/inspectionProfiles/Project_Default.xml +7 -0
  6. package/.idea/isdl.iml +14 -0
  7. package/.idea/modules.xml +9 -0
  8. package/.idea/vcs.xml +7 -0
  9. package/.idea/watcherTasks.xml +4 -0
  10. package/.vscodeignore +18 -0
  11. package/LICENSE +674 -0
  12. package/README.md +86 -0
  13. package/bin/cli.js +4 -0
  14. package/bin/lsp.js +8 -0
  15. package/isdl.png +0 -0
  16. package/out/_backgrounds.scss +91 -0
  17. package/out/_handlebars.scss +505 -0
  18. package/out/_isdlStyles.scss +1357 -0
  19. package/out/_vuetifyOverrides.scss +425 -0
  20. package/out/_vuetifyStyles.scss +31957 -0
  21. package/out/cli/cli-util.js +39 -0
  22. package/out/cli/cli-util.js.map +1 -0
  23. package/out/cli/components/_backgrounds.scss +91 -0
  24. package/out/cli/components/_handlebars.scss +505 -0
  25. package/out/cli/components/_isdlStyles.scss +1357 -0
  26. package/out/cli/components/_vuetifyOverrides.scss +425 -0
  27. package/out/cli/components/_vuetifyStyles.scss +31957 -0
  28. package/out/cli/components/active-effect-sheet-generator.js +643 -0
  29. package/out/cli/components/active-effect-sheet-generator.js.map +1 -0
  30. package/out/cli/components/base-actor-sheet-generator.js +125 -0
  31. package/out/cli/components/base-actor-sheet-generator.js.map +1 -0
  32. package/out/cli/components/base-sheet-generator.js +525 -0
  33. package/out/cli/components/base-sheet-generator.js.map +1 -0
  34. package/out/cli/components/chat-card-generator.js +683 -0
  35. package/out/cli/components/chat-card-generator.js.map +1 -0
  36. package/out/cli/components/css-generator.js +58 -0
  37. package/out/cli/components/css-generator.js.map +1 -0
  38. package/out/cli/components/damage-roll-generator.js +173 -0
  39. package/out/cli/components/damage-roll-generator.js.map +1 -0
  40. package/out/cli/components/datamodel-generator.js +672 -0
  41. package/out/cli/components/datamodel-generator.js.map +1 -0
  42. package/out/cli/components/derived-data-generator.js +1340 -0
  43. package/out/cli/components/derived-data-generator.js.map +1 -0
  44. package/out/cli/components/hotbar-drop-hook-generator.js +95 -0
  45. package/out/cli/components/hotbar-drop-hook-generator.js.map +1 -0
  46. package/out/cli/components/init-hook-generator.js +597 -0
  47. package/out/cli/components/init-hook-generator.js.map +1 -0
  48. package/out/cli/components/keywords-generator.js +220 -0
  49. package/out/cli/components/keywords-generator.js.map +1 -0
  50. package/out/cli/components/language-generator.js +110 -0
  51. package/out/cli/components/language-generator.js.map +1 -0
  52. package/out/cli/components/measured-template-preview.js +234 -0
  53. package/out/cli/components/measured-template-preview.js.map +1 -0
  54. package/out/cli/components/method-generator.js +1812 -0
  55. package/out/cli/components/method-generator.js.map +1 -0
  56. package/out/cli/components/ready-hook-generator.js +448 -0
  57. package/out/cli/components/ready-hook-generator.js.map +1 -0
  58. package/out/cli/components/token-generator.js +138 -0
  59. package/out/cli/components/token-generator.js.map +1 -0
  60. package/out/cli/components/utils.js +176 -0
  61. package/out/cli/components/utils.js.map +1 -0
  62. package/out/cli/components/vue/base-components/vue-attribute.js +148 -0
  63. package/out/cli/components/vue/base-components/vue-attribute.js.map +1 -0
  64. package/out/cli/components/vue/base-components/vue-boolean.js +77 -0
  65. package/out/cli/components/vue/base-components/vue-boolean.js.map +1 -0
  66. package/out/cli/components/vue/base-components/vue-calculator.js +106 -0
  67. package/out/cli/components/vue/base-components/vue-calculator.js.map +1 -0
  68. package/out/cli/components/vue/base-components/vue-damage-application.js +369 -0
  69. package/out/cli/components/vue/base-components/vue-damage-application.js.map +1 -0
  70. package/out/cli/components/vue/base-components/vue-damage-bonuses.js +225 -0
  71. package/out/cli/components/vue/base-components/vue-damage-bonuses.js.map +1 -0
  72. package/out/cli/components/vue/base-components/vue-damage-resistances.js +256 -0
  73. package/out/cli/components/vue/base-components/vue-damage-resistances.js.map +1 -0
  74. package/out/cli/components/vue/base-components/vue-damage-track.js +134 -0
  75. package/out/cli/components/vue/base-components/vue-damage-track.js.map +1 -0
  76. package/out/cli/components/vue/base-components/vue-date-time.js +55 -0
  77. package/out/cli/components/vue/base-components/vue-date-time.js.map +1 -0
  78. package/out/cli/components/vue/base-components/vue-dice.js +111 -0
  79. package/out/cli/components/vue/base-components/vue-dice.js.map +1 -0
  80. package/out/cli/components/vue/base-components/vue-die.js +86 -0
  81. package/out/cli/components/vue/base-components/vue-die.js.map +1 -0
  82. package/out/cli/components/vue/base-components/vue-document-choice.js +172 -0
  83. package/out/cli/components/vue/base-components/vue-document-choice.js.map +1 -0
  84. package/out/cli/components/vue/base-components/vue-document-choices.js +203 -0
  85. package/out/cli/components/vue/base-components/vue-document-choices.js.map +1 -0
  86. package/out/cli/components/vue/base-components/vue-document-link.js +73 -0
  87. package/out/cli/components/vue/base-components/vue-document-link.js.map +1 -0
  88. package/out/cli/components/vue/base-components/vue-extended-choice.js +101 -0
  89. package/out/cli/components/vue/base-components/vue-extended-choice.js.map +1 -0
  90. package/out/cli/components/vue/base-components/vue-inventory.js +532 -0
  91. package/out/cli/components/vue/base-components/vue-inventory.js.map +1 -0
  92. package/out/cli/components/vue/base-components/vue-macro-choice.js +150 -0
  93. package/out/cli/components/vue/base-components/vue-macro-choice.js.map +1 -0
  94. package/out/cli/components/vue/base-components/vue-measured-template.js +543 -0
  95. package/out/cli/components/vue/base-components/vue-measured-template.js.map +1 -0
  96. package/out/cli/components/vue/base-components/vue-money.js +496 -0
  97. package/out/cli/components/vue/base-components/vue-money.js.map +1 -0
  98. package/out/cli/components/vue/base-components/vue-number.js +184 -0
  99. package/out/cli/components/vue/base-components/vue-number.js.map +1 -0
  100. package/out/cli/components/vue/base-components/vue-paperdoll.js +56 -0
  101. package/out/cli/components/vue/base-components/vue-paperdoll.js.map +1 -0
  102. package/out/cli/components/vue/base-components/vue-parent-property-reference.js +89 -0
  103. package/out/cli/components/vue/base-components/vue-parent-property-reference.js.map +1 -0
  104. package/out/cli/components/vue/base-components/vue-prosemirror.js +31 -0
  105. package/out/cli/components/vue/base-components/vue-prosemirror.js.map +1 -0
  106. package/out/cli/components/vue/base-components/vue-resource.js +149 -0
  107. package/out/cli/components/vue/base-components/vue-resource.js.map +1 -0
  108. package/out/cli/components/vue/base-components/vue-roll-visualizer.js +121 -0
  109. package/out/cli/components/vue/base-components/vue-roll-visualizer.js.map +1 -0
  110. package/out/cli/components/vue/base-components/vue-self-property-reference.js +75 -0
  111. package/out/cli/components/vue/base-components/vue-self-property-reference.js.map +1 -0
  112. package/out/cli/components/vue/base-components/vue-string-choice.js +111 -0
  113. package/out/cli/components/vue/base-components/vue-string-choice.js.map +1 -0
  114. package/out/cli/components/vue/base-components/vue-string-choices.js +216 -0
  115. package/out/cli/components/vue/base-components/vue-string-choices.js.map +1 -0
  116. package/out/cli/components/vue/base-components/vue-string.js +73 -0
  117. package/out/cli/components/vue/base-components/vue-string.js.map +1 -0
  118. package/out/cli/components/vue/base-components/vue-text-field.js +66 -0
  119. package/out/cli/components/vue/base-components/vue-text-field.js.map +1 -0
  120. package/out/cli/components/vue/base-components/vue-tracker.js +444 -0
  121. package/out/cli/components/vue/base-components/vue-tracker.js.map +1 -0
  122. package/out/cli/components/vue/vue-action-component-generator.js +88 -0
  123. package/out/cli/components/vue/vue-action-component-generator.js.map +1 -0
  124. package/out/cli/components/vue/vue-active-effect-sheet-generator.js +1016 -0
  125. package/out/cli/components/vue/vue-active-effect-sheet-generator.js.map +1 -0
  126. package/out/cli/components/vue/vue-base-components-generator.js +59 -0
  127. package/out/cli/components/vue/vue-base-components-generator.js.map +1 -0
  128. package/out/cli/components/vue/vue-datatable-component-generator.js +307 -0
  129. package/out/cli/components/vue/vue-datatable-component-generator.js.map +1 -0
  130. package/out/cli/components/vue/vue-datatable-sheet-class-generator.js +342 -0
  131. package/out/cli/components/vue/vue-datatable-sheet-class-generator.js.map +1 -0
  132. package/out/cli/components/vue/vue-datatable2-component-generator.js +939 -0
  133. package/out/cli/components/vue/vue-datatable2-component-generator.js.map +1 -0
  134. package/out/cli/components/vue/vue-document-creation-app.js +140 -0
  135. package/out/cli/components/vue/vue-document-creation-app.js.map +1 -0
  136. package/out/cli/components/vue/vue-document-creation-sheet.js +105 -0
  137. package/out/cli/components/vue/vue-document-creation-sheet.js.map +1 -0
  138. package/out/cli/components/vue/vue-generator.js +240 -0
  139. package/out/cli/components/vue/vue-generator.js.map +1 -0
  140. package/out/cli/components/vue/vue-mixin.js +338 -0
  141. package/out/cli/components/vue/vue-mixin.js.map +1 -0
  142. package/out/cli/components/vue/vue-pinned-datatable-component-generator.js +306 -0
  143. package/out/cli/components/vue/vue-pinned-datatable-component-generator.js.map +1 -0
  144. package/out/cli/components/vue/vue-prompt-generator.js +201 -0
  145. package/out/cli/components/vue/vue-prompt-generator.js.map +1 -0
  146. package/out/cli/components/vue/vue-prompt-sheet-class-generator.js +252 -0
  147. package/out/cli/components/vue/vue-prompt-sheet-class-generator.js.map +1 -0
  148. package/out/cli/components/vue/vue-sheet-application-generator.js +2008 -0
  149. package/out/cli/components/vue/vue-sheet-application-generator.js.map +1 -0
  150. package/out/cli/components/vue/vue-sheet-class-generator.js +484 -0
  151. package/out/cli/components/vue/vue-sheet-class-generator.js.map +1 -0
  152. package/out/cli/generator.js +659 -0
  153. package/out/cli/generator.js.map +1 -0
  154. package/out/cli/main.js +43 -0
  155. package/out/cli/main.js.map +1 -0
  156. package/out/datatables.min.css +54 -0
  157. package/out/datatables.min.js +178 -0
  158. package/out/extension/github/githubAuthProvider.js +345 -0
  159. package/out/extension/github/githubAuthProvider.js.map +1 -0
  160. package/out/extension/github/githubConfig.js +132 -0
  161. package/out/extension/github/githubConfig.js.map +1 -0
  162. package/out/extension/github/githubGistActions.js +251 -0
  163. package/out/extension/github/githubGistActions.js.map +1 -0
  164. package/out/extension/github/githubGistManager.js +255 -0
  165. package/out/extension/github/githubGistManager.js.map +1 -0
  166. package/out/extension/github/githubManager.js +1735 -0
  167. package/out/extension/github/githubManager.js.map +1 -0
  168. package/out/extension/github/githubQuickActions.js +659 -0
  169. package/out/extension/github/githubQuickActions.js.map +1 -0
  170. package/out/extension/github/githubTreeProvider.js +181 -0
  171. package/out/extension/github/githubTreeProvider.js.map +1 -0
  172. package/out/extension/github/system-workflow.yml +48 -0
  173. package/out/extension/main.cjs +70315 -0
  174. package/out/extension/main.cjs.map +7 -0
  175. package/out/extension/main.js +237 -0
  176. package/out/extension/main.js.map +1 -0
  177. package/out/extension/package.json +426 -0
  178. package/out/isdl.png +0 -0
  179. package/out/language/generated/ast.js +2992 -0
  180. package/out/language/generated/ast.js.map +1 -0
  181. package/out/language/generated/grammar.js +13970 -0
  182. package/out/language/generated/grammar.js.map +1 -0
  183. package/out/language/generated/module.js +20 -0
  184. package/out/language/generated/module.js.map +1 -0
  185. package/out/language/intelligent-system-design-language-formatter.js +85 -0
  186. package/out/language/intelligent-system-design-language-formatter.js.map +1 -0
  187. package/out/language/intelligent-system-design-language-module.js +69 -0
  188. package/out/language/intelligent-system-design-language-module.js.map +1 -0
  189. package/out/language/intelligent-system-design-language-quickfixes.js +37 -0
  190. package/out/language/intelligent-system-design-language-quickfixes.js.map +1 -0
  191. package/out/language/intelligent-system-design-language-validator.js +515 -0
  192. package/out/language/intelligent-system-design-language-validator.js.map +1 -0
  193. package/out/language/isdl-hover-provider.js +77 -0
  194. package/out/language/isdl-hover-provider.js.map +1 -0
  195. package/out/language/isdl-scope-provider.js +149 -0
  196. package/out/language/isdl-scope-provider.js.map +1 -0
  197. package/out/language/main.cjs +47655 -0
  198. package/out/language/main.cjs.map +7 -0
  199. package/out/language/main.js +11 -0
  200. package/out/language/main.js.map +1 -0
  201. package/out/missing-character.png +0 -0
  202. package/out/package.json +426 -0
  203. package/out/paperdoll_default.png +0 -0
  204. package/out/progressbar.min.js +7 -0
  205. package/out/styles.scss +722 -0
  206. package/out/test/formatting/formatter.test.js +46 -0
  207. package/out/test/formatting/formatter.test.js.map +1 -0
  208. package/out/vuetify.esm.js +30279 -0
  209. package/package.json +426 -0
@@ -0,0 +1,251 @@
1
+ import * as vscode from 'vscode';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ export class GitHubGistActions {
5
+ constructor(gistManager) {
6
+ this.gistManager = gistManager;
7
+ }
8
+ /**
9
+ * Select a gist from user's existing gists
10
+ */
11
+ async selectGist() {
12
+ const gists = await this.gistManager.listGists();
13
+ if (gists.length === 0) {
14
+ const action = await vscode.window.showInformationMessage('No ISDL gists found in your GitHub account.', 'Create Gist', 'Cancel');
15
+ if (action === 'Create Gist') {
16
+ await this.createGist();
17
+ }
18
+ return;
19
+ }
20
+ // Create quick pick items
21
+ const items = [
22
+ {
23
+ label: '$(gist-new) Create New Gist',
24
+ description: 'Create a new gist for your ISDL file',
25
+ alwaysShow: true
26
+ },
27
+ {
28
+ label: '',
29
+ kind: vscode.QuickPickItemKind.Separator
30
+ }
31
+ ];
32
+ // Add existing gists
33
+ gists.forEach(gist => {
34
+ const isdlFiles = Object.keys(gist.files).filter(name => name.endsWith('.isdl'));
35
+ items.push({
36
+ label: `$(gist) ${gist.description}`,
37
+ description: gist.public ? '$(unlock) Public' : '$(lock) Private',
38
+ detail: `${isdlFiles.join(', ')} • Updated ${new Date(gist.updated_at).toLocaleDateString()}`,
39
+ gist
40
+ });
41
+ });
42
+ const selection = await vscode.window.showQuickPick(items, {
43
+ title: 'Select GitHub Gist',
44
+ placeHolder: 'Choose a gist for your ISDL files',
45
+ matchOnDescription: true,
46
+ matchOnDetail: true,
47
+ ignoreFocusOut: true
48
+ });
49
+ if (!selection)
50
+ return;
51
+ if (selection.label.includes('Create New Gist')) {
52
+ await this.createGist();
53
+ }
54
+ else if (selection.gist) {
55
+ this.gistManager.setCurrentGist(selection.gist);
56
+ vscode.window.showInformationMessage(`Connected to gist: ${selection.gist.description}`);
57
+ }
58
+ }
59
+ /**
60
+ * Create a new gist
61
+ */
62
+ async createGist() {
63
+ // Select ISDL file
64
+ const isdlFile = await this.selectIsdlFile();
65
+ if (!isdlFile)
66
+ return;
67
+ // Get description
68
+ const defaultDescription = `ISDL System: ${path.basename(isdlFile, path.extname(isdlFile))}`;
69
+ const description = await vscode.window.showInputBox({
70
+ title: 'Create Gist - Step 1 of 2',
71
+ prompt: 'Gist description',
72
+ value: defaultDescription,
73
+ placeHolder: 'Describe your ISDL system'
74
+ });
75
+ if (!description)
76
+ return;
77
+ // Get visibility
78
+ const visibility = await vscode.window.showQuickPick([
79
+ {
80
+ label: '$(unlock) Public',
81
+ description: 'Anyone can see this gist',
82
+ detail: 'Good for sharing with the community',
83
+ picked: false
84
+ },
85
+ {
86
+ label: '$(lock) Secret',
87
+ description: 'Only people with the link can see this gist',
88
+ detail: 'Good for private development or sharing with specific people',
89
+ picked: true
90
+ }
91
+ ], {
92
+ title: 'Create Gist - Step 2 of 2',
93
+ placeHolder: 'Choose gist visibility'
94
+ });
95
+ if (!visibility)
96
+ return;
97
+ const isPublic = visibility.label.includes('Public');
98
+ // Create gist with progress
99
+ const gist = await vscode.window.withProgress({
100
+ location: vscode.ProgressLocation.Notification,
101
+ title: 'Creating gist...',
102
+ cancellable: false
103
+ }, async (progress) => {
104
+ progress.report({ message: 'Uploading ISDL file...', increment: 50 });
105
+ const result = await this.gistManager.createGist(description, isPublic, isdlFile);
106
+ progress.report({ message: 'Gist created!', increment: 50 });
107
+ return result;
108
+ });
109
+ if (gist) {
110
+ vscode.window.showInformationMessage(`Gist created successfully: ${gist.description}`, 'Open in GitHub', 'Sync Now').then(action => {
111
+ if (action === 'Open in GitHub') {
112
+ vscode.env.openExternal(vscode.Uri.parse(gist.html_url));
113
+ }
114
+ else if (action === 'Sync Now') {
115
+ this.syncToGist();
116
+ }
117
+ });
118
+ }
119
+ }
120
+ /**
121
+ * Sync current ISDL file to the selected gist
122
+ */
123
+ async syncToGist() {
124
+ const currentGist = this.gistManager.getCurrentGist();
125
+ if (!currentGist) {
126
+ const action = await vscode.window.showInformationMessage('No gist connected. Please select a gist first.', 'Select Gist', 'Create Gist');
127
+ if (action === 'Select Gist') {
128
+ await this.selectGist();
129
+ }
130
+ else if (action === 'Create Gist') {
131
+ await this.createGist();
132
+ }
133
+ return;
134
+ }
135
+ // Select ISDL file to sync
136
+ const isdlFile = await this.selectIsdlFile();
137
+ if (!isdlFile)
138
+ return;
139
+ // Sync with progress
140
+ const success = await vscode.window.withProgress({
141
+ location: vscode.ProgressLocation.Notification,
142
+ title: `Syncing to gist: ${currentGist.description}`,
143
+ cancellable: false
144
+ }, async (progress) => {
145
+ progress.report({ message: 'Uploading file...', increment: 50 });
146
+ const result = await this.gistManager.updateGist(currentGist.id, isdlFile);
147
+ progress.report({ message: 'Sync complete!', increment: 50 });
148
+ return result;
149
+ });
150
+ if (success) {
151
+ vscode.window.showInformationMessage(`ISDL file synced to gist successfully!`, 'Open in GitHub').then(action => {
152
+ if (action === 'Open in GitHub') {
153
+ vscode.env.openExternal(vscode.Uri.parse(currentGist.html_url));
154
+ }
155
+ });
156
+ }
157
+ }
158
+ /**
159
+ * Download ISDL file from the selected gist
160
+ */
161
+ async downloadFromGist() {
162
+ var _a, _b;
163
+ const currentGist = this.gistManager.getCurrentGist();
164
+ if (!currentGist) {
165
+ vscode.window.showWarningMessage('No gist connected. Please select a gist first.');
166
+ return;
167
+ }
168
+ // Download with progress
169
+ const fileData = await vscode.window.withProgress({
170
+ location: vscode.ProgressLocation.Notification,
171
+ title: `Downloading from gist: ${currentGist.description}`,
172
+ cancellable: false
173
+ }, async (progress) => {
174
+ progress.report({ message: 'Downloading file...', increment: 50 });
175
+ const result = await this.gistManager.downloadFromGist(currentGist.id);
176
+ progress.report({ message: 'Download complete!', increment: 50 });
177
+ return result;
178
+ });
179
+ if (!fileData)
180
+ return;
181
+ // Ask where to save
182
+ const saveLocation = await vscode.window.showSaveDialog({
183
+ defaultUri: vscode.Uri.file(path.join(((_b = (_a = vscode.workspace.workspaceFolders) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.uri.fsPath) || '', fileData.filename)),
184
+ filters: {
185
+ 'ISDL Files': ['isdl']
186
+ }
187
+ });
188
+ if (!saveLocation)
189
+ return;
190
+ // Save file
191
+ try {
192
+ fs.writeFileSync(saveLocation.fsPath, fileData.content, 'utf8');
193
+ const action = await vscode.window.showInformationMessage(`ISDL file downloaded: ${path.basename(saveLocation.fsPath)}`, 'Open File');
194
+ if (action === 'Open File') {
195
+ const document = await vscode.workspace.openTextDocument(saveLocation);
196
+ await vscode.window.showTextDocument(document);
197
+ }
198
+ }
199
+ catch (error) {
200
+ vscode.window.showErrorMessage(`Failed to save file: ${error.message}`);
201
+ }
202
+ }
203
+ /**
204
+ * Disconnect from current gist
205
+ */
206
+ async disconnectGist() {
207
+ const currentGist = this.gistManager.getCurrentGist();
208
+ if (!currentGist)
209
+ return;
210
+ const confirm = await vscode.window.showWarningMessage(`Disconnect from gist: ${currentGist.description}?`, { modal: true }, 'Disconnect');
211
+ if (confirm === 'Disconnect') {
212
+ this.gistManager.disconnectGist();
213
+ vscode.window.showInformationMessage('Gist disconnected');
214
+ }
215
+ }
216
+ /**
217
+ * Select an ISDL file from the workspace
218
+ */
219
+ async selectIsdlFile() {
220
+ // Find all ISDL files in the workspace
221
+ const isdlFiles = await vscode.workspace.findFiles('**/*.isdl');
222
+ if (isdlFiles.length === 0) {
223
+ vscode.window.showErrorMessage('No ISDL files found in the workspace.');
224
+ return undefined;
225
+ }
226
+ // If only one file, use it
227
+ if (isdlFiles.length === 1) {
228
+ return isdlFiles[0].fsPath;
229
+ }
230
+ // Multiple files - prompt user to select
231
+ const items = isdlFiles.map(uri => {
232
+ const relativePath = vscode.workspace.asRelativePath(uri);
233
+ return {
234
+ label: path.basename(uri.fsPath),
235
+ description: relativePath,
236
+ detail: uri.fsPath,
237
+ uri: uri
238
+ };
239
+ });
240
+ const selection = await vscode.window.showQuickPick(items, {
241
+ title: 'Select ISDL File',
242
+ placeHolder: 'Choose which ISDL file to sync with the gist',
243
+ ignoreFocusOut: true
244
+ });
245
+ if (!selection) {
246
+ return undefined;
247
+ }
248
+ return selection.uri.fsPath;
249
+ }
250
+ }
251
+ //# sourceMappingURL=githubGistActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubGistActions.js","sourceRoot":"","sources":["../../../src/extension/github/githubGistActions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,255 @@
1
+ import * as vscode from 'vscode';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import { Octokit } from '@octokit/rest';
5
+ export class GitHubGistManager {
6
+ constructor(_authProvider) {
7
+ this._authProvider = _authProvider;
8
+ this.octokit = null;
9
+ this.currentGist = null;
10
+ this._onDidChangeState = new vscode.EventEmitter();
11
+ this.onDidChangeState = this._onDidChangeState.event;
12
+ }
13
+ /**
14
+ * Initialize Octokit with authentication
15
+ */
16
+ async initializeOctokit() {
17
+ if (this.octokit)
18
+ return true;
19
+ try {
20
+ const session = await this._authProvider.getCurrentSession();
21
+ if (!session)
22
+ return false;
23
+ this.octokit = new Octokit({
24
+ auth: session.accessToken,
25
+ userAgent: 'ISDL-VSCode-Extension'
26
+ });
27
+ return true;
28
+ }
29
+ catch (error) {
30
+ console.error('Failed to initialize Octokit for Gists:', error);
31
+ return false;
32
+ }
33
+ }
34
+ /**
35
+ * Check if user is authenticated
36
+ */
37
+ async isAuthenticated() {
38
+ return await this.initializeOctokit();
39
+ }
40
+ /**
41
+ * List user's gists
42
+ */
43
+ async listGists() {
44
+ if (!await this.initializeOctokit())
45
+ return [];
46
+ try {
47
+ const response = await this.octokit.gists.list({
48
+ per_page: 100
49
+ });
50
+ // Filter for gists that contain .isdl files
51
+ const isdlGists = response.data.filter(gist => {
52
+ return Object.keys(gist.files || {}).some(filename => filename.endsWith('.isdl'));
53
+ });
54
+ return isdlGists.map(gist => ({
55
+ id: gist.id,
56
+ description: gist.description || 'No description',
57
+ public: gist.public || false,
58
+ html_url: gist.html_url,
59
+ created_at: gist.created_at,
60
+ updated_at: gist.updated_at,
61
+ files: Object.fromEntries(Object.entries(gist.files || {}).map(([filename, file]) => [
62
+ filename,
63
+ {
64
+ content: file === null || file === void 0 ? void 0 : file.content,
65
+ size: (file === null || file === void 0 ? void 0 : file.size) || 0
66
+ }
67
+ ]))
68
+ }));
69
+ }
70
+ catch (error) {
71
+ console.error('Failed to list gists:', error);
72
+ vscode.window.showErrorMessage('Failed to load gists. Please check your connection.');
73
+ return [];
74
+ }
75
+ }
76
+ /**
77
+ * Create a new gist with ISDL file
78
+ */
79
+ async createGist(description, isPublic, isdlFilePath) {
80
+ if (!await this.initializeOctokit())
81
+ return undefined;
82
+ try {
83
+ const isdlContent = fs.readFileSync(isdlFilePath, 'utf8');
84
+ const filename = path.basename(isdlFilePath);
85
+ const response = await this.octokit.gists.create({
86
+ description,
87
+ public: isPublic,
88
+ files: {
89
+ [filename]: {
90
+ content: isdlContent
91
+ }
92
+ }
93
+ });
94
+ const gist = {
95
+ id: response.data.id,
96
+ description: response.data.description || 'No description',
97
+ public: response.data.public || false,
98
+ html_url: response.data.html_url,
99
+ created_at: response.data.created_at,
100
+ updated_at: response.data.updated_at,
101
+ files: Object.fromEntries(Object.entries(response.data.files || {}).map(([filename, file]) => [
102
+ filename,
103
+ {
104
+ content: file === null || file === void 0 ? void 0 : file.content,
105
+ size: (file === null || file === void 0 ? void 0 : file.size) || 0
106
+ }
107
+ ]))
108
+ };
109
+ this.currentGist = gist;
110
+ this._onDidChangeState.fire();
111
+ return gist;
112
+ }
113
+ catch (error) {
114
+ console.error('Failed to create gist:', error);
115
+ vscode.window.showErrorMessage(`Failed to create gist: ${error.message}`);
116
+ return undefined;
117
+ }
118
+ }
119
+ /**
120
+ * Update an existing gist with new ISDL content
121
+ */
122
+ async updateGist(gistId, isdlFilePath) {
123
+ if (!await this.initializeOctokit())
124
+ return false;
125
+ try {
126
+ const isdlContent = fs.readFileSync(isdlFilePath, 'utf8');
127
+ const filename = path.basename(isdlFilePath);
128
+ // Get current gist to preserve other files
129
+ const currentGist = await this.octokit.gists.get({ gist_id: gistId });
130
+ // Find existing ISDL file or use the new filename
131
+ let targetFilename = filename;
132
+ const existingIsdlFile = Object.keys(currentGist.data.files || {})
133
+ .find(name => name.endsWith('.isdl'));
134
+ if (existingIsdlFile) {
135
+ targetFilename = existingIsdlFile;
136
+ }
137
+ await this.octokit.gists.update({
138
+ gist_id: gistId,
139
+ files: {
140
+ [targetFilename]: {
141
+ content: isdlContent
142
+ }
143
+ }
144
+ });
145
+ console.log(`✅ Gist updated: ${targetFilename}`);
146
+ return true;
147
+ }
148
+ catch (error) {
149
+ console.error('Failed to update gist:', error);
150
+ vscode.window.showErrorMessage(`Failed to update gist: ${error.message}`);
151
+ return false;
152
+ }
153
+ }
154
+ /**
155
+ * Download ISDL content from a gist
156
+ */
157
+ async downloadFromGist(gistId) {
158
+ if (!await this.initializeOctokit())
159
+ return undefined;
160
+ try {
161
+ const response = await this.octokit.gists.get({ gist_id: gistId });
162
+ // Find the ISDL file
163
+ const isdlFile = Object.entries(response.data.files || {})
164
+ .find(([filename]) => filename.endsWith('.isdl'));
165
+ if (!isdlFile) {
166
+ vscode.window.showErrorMessage('No ISDL file found in this gist.');
167
+ return undefined;
168
+ }
169
+ const [filename, fileData] = isdlFile;
170
+ if (!(fileData === null || fileData === void 0 ? void 0 : fileData.content)) {
171
+ vscode.window.showErrorMessage('Could not retrieve file content from gist.');
172
+ return undefined;
173
+ }
174
+ return {
175
+ filename,
176
+ content: fileData.content
177
+ };
178
+ }
179
+ catch (error) {
180
+ console.error('Failed to download from gist:', error);
181
+ vscode.window.showErrorMessage(`Failed to download from gist: ${error.message}`);
182
+ return undefined;
183
+ }
184
+ }
185
+ /**
186
+ * Set the current gist
187
+ */
188
+ setCurrentGist(gist) {
189
+ this.currentGist = gist;
190
+ this._onDidChangeState.fire();
191
+ }
192
+ /**
193
+ * Get current gist
194
+ */
195
+ getCurrentGist() {
196
+ return this.currentGist;
197
+ }
198
+ /**
199
+ * Clear current gist
200
+ */
201
+ disconnectGist() {
202
+ this.currentGist = null;
203
+ this._onDidChangeState.fire();
204
+ }
205
+ /**
206
+ * Delete a gist
207
+ */
208
+ async deleteGist(gistId) {
209
+ var _a;
210
+ if (!await this.initializeOctokit())
211
+ return false;
212
+ try {
213
+ await this.octokit.gists.delete({ gist_id: gistId });
214
+ if (((_a = this.currentGist) === null || _a === void 0 ? void 0 : _a.id) === gistId) {
215
+ this.disconnectGist();
216
+ }
217
+ return true;
218
+ }
219
+ catch (error) {
220
+ console.error('Failed to delete gist:', error);
221
+ vscode.window.showErrorMessage(`Failed to delete gist: ${error.message}`);
222
+ return false;
223
+ }
224
+ }
225
+ /**
226
+ * Get gist details by ID
227
+ */
228
+ async getGist(gistId) {
229
+ if (!await this.initializeOctokit())
230
+ return undefined;
231
+ try {
232
+ const response = await this.octokit.gists.get({ gist_id: gistId });
233
+ return {
234
+ id: response.data.id,
235
+ description: response.data.description || 'No description',
236
+ public: response.data.public || false,
237
+ html_url: response.data.html_url,
238
+ created_at: response.data.created_at,
239
+ updated_at: response.data.updated_at,
240
+ files: Object.fromEntries(Object.entries(response.data.files || {}).map(([filename, file]) => [
241
+ filename,
242
+ {
243
+ content: file === null || file === void 0 ? void 0 : file.content,
244
+ size: (file === null || file === void 0 ? void 0 : file.size) || 0
245
+ }
246
+ ]))
247
+ };
248
+ }
249
+ catch (error) {
250
+ console.error('Failed to get gist:', error);
251
+ return undefined;
252
+ }
253
+ }
254
+ }
255
+ //# sourceMappingURL=githubGistManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubGistManager.js","sourceRoot":"","sources":["../../../src/extension/github/githubGistManager.ts"],"names":[],"mappings":"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"}