@adminide-stack/extension-api 12.0.4-alpha.92 → 13.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/lib/connections/jsonrpc2/connection.js +0 -10
  2. package/lib/connections/jsonrpc2/connection.js.map +1 -1
  3. package/lib/connections/jsonrpc2/events.js.map +1 -1
  4. package/lib/connections/jsonrpc2/linkedMap.js.map +1 -1
  5. package/lib/connections/jsonrpc2/messages.js.map +1 -1
  6. package/lib/connections/jsonrpc2/test-helper.js.map +1 -1
  7. package/lib/connections/jsonrpc2/trace.js.map +1 -1
  8. package/lib/connections/jsonrpc2/transport.js.map +1 -1
  9. package/lib/connections/jsonrpc2/transports/webWorker.js.map +1 -1
  10. package/lib/connections/proxy/proxy.js.map +1 -1
  11. package/lib/connections/remote-rpc/browser-remote-rpc.d.ts +3 -1
  12. package/lib/connections/remote-rpc/browser-remote-rpc.js +26 -19
  13. package/lib/connections/remote-rpc/browser-remote-rpc.js.map +1 -1
  14. package/lib/connections/remote-rpc/rxjs-websockets.js.map +1 -1
  15. package/lib/constants/action-types.d.ts +4 -0
  16. package/lib/constants/action-types.js +5 -1
  17. package/lib/constants/action-types.js.map +1 -1
  18. package/lib/constants/types.js.map +1 -1
  19. package/lib/core/expr/evaluator.js.map +1 -1
  20. package/lib/core/expr/lexer.js.map +1 -1
  21. package/lib/core/expr/parser.js.map +1 -1
  22. package/lib/core/types/ext-host-types.js.map +1 -1
  23. package/lib/index.d.ts +1 -0
  24. package/lib/index.js +1 -1
  25. package/lib/interfaces/command.d.ts +5 -1
  26. package/lib/interfaces/contributions/contribution.js.map +1 -1
  27. package/lib/interfaces/ext-services/ai-services.d.ts +2 -11
  28. package/lib/interfaces/ext-services/code-javascript-service.d.ts +9 -0
  29. package/lib/interfaces/ext-services/index.d.ts +1 -0
  30. package/lib/interfaces/model.js.map +1 -1
  31. package/lib/interfaces/platform-context.d.ts +7 -0
  32. package/lib/interfaces/text-document.js.map +1 -1
  33. package/lib/interfaces/webview/webview.js.map +1 -1
  34. package/lib/middlewares/extensionController.js.map +1 -1
  35. package/lib/protocol/client.protocol.d.ts +85 -15
  36. package/lib/protocol/client.protocol.js.map +1 -1
  37. package/lib/protocol/common.protocol.js.map +1 -1
  38. package/lib/protocol/editor-missing-types.js.map +1 -1
  39. package/lib/protocol/proxy-identifier.js.map +1 -1
  40. package/lib/protocol/rpc-logger.js.map +1 -1
  41. package/lib/protocol/rpc-protocol.js +10 -4
  42. package/lib/protocol/rpc-protocol.js.map +1 -1
  43. package/lib/protocol/server.protocol.d.ts +4 -4
  44. package/lib/protocol/server.protocol.js.map +1 -1
  45. package/lib/protocol/shared/editor.js.map +1 -1
  46. package/lib/protocol/temporary-types.js.map +1 -1
  47. package/lib/protocol/utils/lazy-promise.js.map +1 -1
  48. package/lib/react/components/view-component/ViewComponent.js.map +1 -1
  49. package/lib/react/useExtensionController.js +1 -1
  50. package/lib/react/useExtensionController.js.map +1 -1
  51. package/lib/services/code/index.d.ts +1 -0
  52. package/lib/services/code/javascript/autocomplete-demo.d.ts +49 -0
  53. package/lib/services/code/javascript/code-javascript-service.d.ts +100 -0
  54. package/lib/services/code/javascript/code-javascript-service.js +193 -0
  55. package/lib/services/code/javascript/code-javascript-service.js.map +1 -0
  56. package/lib/services/code/javascript/handler/evaluate.d.ts +14 -0
  57. package/lib/services/code/javascript/index.d.ts +9 -0
  58. package/lib/services/code/javascript/jslibrary/autocomplete/definitions/base64-js.json.js +13 -0
  59. package/lib/services/code/javascript/jslibrary/autocomplete/definitions/base64-js.json.js.map +1 -0
  60. package/lib/services/code/javascript/jslibrary/autocomplete/definitions/browser.json.js +441 -0
  61. package/lib/services/code/javascript/jslibrary/autocomplete/definitions/browser.json.js.map +1 -0
  62. package/lib/services/code/javascript/jslibrary/autocomplete/definitions/ecmascript.json.js +1973 -0
  63. package/lib/services/code/javascript/jslibrary/autocomplete/definitions/ecmascript.json.js.map +1 -0
  64. package/lib/services/code/javascript/jslibrary/autocomplete/definitions/lodash.json.js +1546 -0
  65. package/lib/services/code/javascript/jslibrary/autocomplete/definitions/lodash.json.js.map +1 -0
  66. package/lib/services/code/javascript/jslibrary/autocomplete/index.d.ts +45 -0
  67. package/lib/services/code/javascript/jslibrary/autocomplete/index.js +56 -0
  68. package/lib/services/code/javascript/jslibrary/autocomplete/index.js.map +1 -0
  69. package/lib/services/code/javascript/jslibrary/autocomplete-manager.d.ts +94 -0
  70. package/lib/services/code/javascript/jslibrary/autocomplete-manager.js +249 -0
  71. package/lib/services/code/javascript/jslibrary/autocomplete-manager.js.map +1 -0
  72. package/lib/services/code/javascript/jslibrary/definitions.d.ts +465 -0
  73. package/lib/services/code/javascript/jslibrary/index.d.ts +4 -0
  74. package/lib/services/code/javascript/jslibrary/index.js +14 -0
  75. package/lib/services/code/javascript/jslibrary/index.js.map +1 -0
  76. package/lib/services/code/javascript/jslibrary/library-manager.d.ts +53 -0
  77. package/lib/services/code/javascript/jslibrary/library-manager.js +65 -0
  78. package/lib/services/code/javascript/jslibrary/library-manager.js.map +1 -0
  79. package/lib/services/code/javascript/jslibrary/reset.d.ts +2 -0
  80. package/lib/services/code/javascript/jslibrary/reset.js +33 -0
  81. package/lib/services/code/javascript/jslibrary/reset.js.map +1 -0
  82. package/lib/services/code/javascript/utils/dom.d.ts +4 -0
  83. package/lib/services/code/javascript/utils/dom.js +138 -0
  84. package/lib/services/code/javascript/utils/dom.js.map +1 -0
  85. package/lib/services/code/javascript/utils/library-utils.d.ts +12 -0
  86. package/lib/services/code/javascript/utils/library-utils.js +76 -0
  87. package/lib/services/code/javascript/utils/library-utils.js.map +1 -0
  88. package/lib/services/code/javascript/utils/messages.d.ts +21 -0
  89. package/lib/services/code/javascript/utils/messages.js +25 -0
  90. package/lib/services/code/javascript/utils/messages.js.map +1 -0
  91. package/lib/services/code/javascript/utils/tern-definitions.d.ts +4 -0
  92. package/lib/services/code/javascript/utils/tern-definitions.js +75 -0
  93. package/lib/services/code/javascript/utils/tern-definitions.js.map +1 -0
  94. package/lib/services/code/javascript/utils/types.d.ts +26 -0
  95. package/lib/services/code/javascript/utils/types.js +16 -0
  96. package/lib/services/code/javascript/utils/types.js.map +1 -0
  97. package/lib/utils/abortable-rx.js.map +1 -1
  98. package/lib/utils/errors.js.map +1 -1
  99. package/lib/utils/extensions.d.ts +11 -0
  100. package/lib/utils/extensions.js +38 -1
  101. package/lib/utils/extensions.js.map +1 -1
  102. package/lib/utils/helper.test.js.map +1 -1
  103. package/lib/utils/paths-util.js.map +1 -1
  104. package/lib/utils/rxjs/combineLatestOrDefault.js.map +1 -1
  105. package/lib/utils/util.js.map +1 -1
  106. package/package.json +6 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lodash.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Autocomplete definitions for JavaScript code completion
3
+ * This module exports Tern definition objects for various libraries and APIs
4
+ */
5
+ import base64jsDefinitions from './definitions/base64-js.json';
6
+ import browserDefinitions from './definitions/browser.json';
7
+ import ecmascriptDefinitions from './definitions/ecmascript.json';
8
+ import lodashDefinitions from './definitions/lodash.json';
9
+ /**
10
+ * Type definition for Tern definition objects
11
+ */
12
+ export interface TernDefinition {
13
+ '!name': string;
14
+ '!define'?: Record<string, unknown>;
15
+ [key: string]: unknown;
16
+ }
17
+ /**
18
+ * Available autocomplete definition sets
19
+ */
20
+ export declare const AUTOCOMPLETE_DEFINITIONS: Record<string, TernDefinition>;
21
+ /**
22
+ * Get a specific definition by name
23
+ */
24
+ export declare function getDefinition(name: string): TernDefinition | undefined;
25
+ /**
26
+ * Get all available definition names
27
+ */
28
+ export declare function getAvailableDefinitions(): string[];
29
+ /**
30
+ * Get multiple definitions by names
31
+ */
32
+ export declare function getDefinitions(names: string[]): TernDefinition[];
33
+ /**
34
+ * Get default definitions that should be included in most contexts
35
+ */
36
+ export declare function getDefaultDefinitions(): TernDefinition[];
37
+ /**
38
+ * Get library-specific definitions (non-core)
39
+ */
40
+ export declare function getLibraryDefinitions(): TernDefinition[];
41
+ /**
42
+ * Create a combined definition object from multiple definitions
43
+ */
44
+ export declare function combineDefinitions(definitions: TernDefinition[]): TernDefinition;
45
+ export { base64jsDefinitions, browserDefinitions, ecmascriptDefinitions, lodashDefinitions };
@@ -0,0 +1,56 @@
1
+ import base64jsDefinitions from'./definitions/base64-js.json.js';import browserDefinitions from'./definitions/browser.json.js';import ecmascriptDefinitions from'./definitions/ecmascript.json.js';import lodashDefinitions from'./definitions/lodash.json.js';/**
2
+ * Autocomplete definitions for JavaScript code completion
3
+ * This module exports Tern definition objects for various libraries and APIs
4
+ */
5
+ /**
6
+ * Available autocomplete definition sets
7
+ */
8
+ const AUTOCOMPLETE_DEFINITIONS = {
9
+ 'base64-js': base64jsDefinitions,
10
+ browser: browserDefinitions,
11
+ ecmascript: ecmascriptDefinitions,
12
+ lodash: lodashDefinitions
13
+ };
14
+ /**
15
+ * Get a specific definition by name
16
+ */
17
+ function getDefinition(name) {
18
+ return AUTOCOMPLETE_DEFINITIONS[name];
19
+ }
20
+ /**
21
+ * Get default definitions that should be included in most contexts
22
+ */
23
+ function getDefaultDefinitions() {
24
+ return [ecmascriptDefinitions, browserDefinitions];
25
+ }
26
+ /**
27
+ * Get library-specific definitions (non-core)
28
+ */
29
+ function getLibraryDefinitions() {
30
+ return [lodashDefinitions, base64jsDefinitions];
31
+ }
32
+ /**
33
+ * Create a combined definition object from multiple definitions
34
+ */
35
+ function combineDefinitions(definitions) {
36
+ const combined = {
37
+ '!name': 'combined',
38
+ '!define': {}
39
+ };
40
+ definitions.forEach(def => {
41
+ // Merge top-level properties (excluding metadata)
42
+ Object.keys(def).forEach(key => {
43
+ if (key.startsWith('!')) {
44
+ if (key === '!define' && combined['!define']) {
45
+ // Merge !define objects
46
+ Object.assign(combined['!define'], def['!define']);
47
+ }
48
+ // Skip other metadata properties to avoid conflicts
49
+ return;
50
+ }
51
+ // Add library properties to the combined definition
52
+ combined[key] = def[key];
53
+ });
54
+ });
55
+ return combined;
56
+ }export{AUTOCOMPLETE_DEFINITIONS,base64jsDefinitions,browserDefinitions,combineDefinitions,ecmascriptDefinitions,getDefaultDefinitions,getDefinition,getLibraryDefinitions,lodashDefinitions};//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/services/code/javascript/jslibrary/autocomplete/index.ts"],"sourcesContent":[null],"names":[],"mappings":"+PAAA;;;AAGG;AAgBH;;AAEG;AACI,MAAM,wBAAwB,GAAmC;AACpE,EAAA,WAAA,EAAW,mBAAE;AACb,EAAA,OAAA,EAAO,kBAAE;AACT,EAAA,UAAA,EAAU,qBAAE;AACZ,EAAA,MAAA,EAAM;;AAGV;;AAEG;AACG,SAAU,aAAa,CAAC,IAAY,EAAA;AACtC,EAAA,OAAA,wBAAO,CAAA,IAAyB,CAAA;AACpC;AAgBA;;AAEG;SACa,qBAAqB,GAAA;AACjC,EAAA,OAAA,CAAA,qBAAQ,EAAuC,kBAAE,CAAA;AACrD;AAEA;;AAEG;SACa,qBAAqB,GAAA;AACjC,EAAA,OAAA,CAAA,iBAAQ,EAAmC,mBAAE,CAAA;AACjD;AAEA;;AAEG;AACG,SAAU,kBAAkB,CAAC,WAA6B,EAAA;AAC5D,EAAA,MAAA,WAAc;AACV,IAAA,OAAA,EAAA,UAAS;AACT,IAAA,SAAA,EAAA;;AAGJ,EAAA,WAAA,CAAA,OAAY,CAAA,GAAS;;UAEjB,CAAA,IAAO,CAAA,GAAI,CAAC,CAAA,OAAK,CAAA,GAAO,IAAE;AACtB,MAAA,IAAA,GAAA,CAAA,UAAQ,CAAA,GAAA,CAAA,EAAW;oBACX,SAAQ,IAAA,QAAa,UAAS,CAAA,EAAA;;AAE9B,UAAA,MAAA,CAAA,MAAA,CAAA,QAAO,CAAM,SAAS,CAAC,EAAA,GAAA,CAAA,SAAe,CAAC,CAAA;;;;;;cAO/C,CAAA,GAAA,CAAA,MAAa,CAAA;AACjB,IAAA,CAAA,CAAA;AACJ,EAAA,CAAA,CAAA;AAEA,EAAA,OAAA;AACJ"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Autocomplete Manager for JavaScript Code Intelligence
3
+ * Integrates Tern definitions with library management for comprehensive autocomplete support
4
+ */
5
+ import type { Def } from 'tern';
6
+ import { type TernDefinition } from './autocomplete';
7
+ /**
8
+ * Configuration for autocomplete behavior
9
+ */
10
+ export interface AutocompleteConfig {
11
+ includeDefaults: boolean;
12
+ includeLibraries: boolean;
13
+ enableDynamicLibraries: boolean;
14
+ customDefinitions: string[];
15
+ }
16
+ /**
17
+ * Manages autocomplete definitions and provides intelligent code completion
18
+ */
19
+ export declare class AutocompleteManager {
20
+ private config;
21
+ private cachedDefinitions;
22
+ private lastUpdateTime;
23
+ private readonly cacheTimeout;
24
+ constructor(config?: Partial<AutocompleteConfig>);
25
+ /**
26
+ * Update configuration
27
+ */
28
+ updateConfig(config: Partial<AutocompleteConfig>): void;
29
+ /**
30
+ * Get current configuration
31
+ */
32
+ getConfig(): AutocompleteConfig;
33
+ /**
34
+ * Invalidate the cached definitions
35
+ */
36
+ invalidateCache(): void;
37
+ /**
38
+ * Get comprehensive autocomplete definitions
39
+ */
40
+ getDefinitions(): TernDefinition;
41
+ /**
42
+ * Get definitions for dynamically loaded libraries
43
+ */
44
+ private getDynamicLibraryDefinitions;
45
+ /**
46
+ * Get Tern-compatible definition object
47
+ */
48
+ getTernDef(): Def;
49
+ /**
50
+ * Get available definition names
51
+ */
52
+ getAvailableDefinitions(): string[];
53
+ /**
54
+ * Check if a definition is available
55
+ */
56
+ hasDefinition(name: string): boolean;
57
+ /**
58
+ * Get completions for a specific context
59
+ */
60
+ getCompletions(context: {
61
+ text: string;
62
+ position: number;
63
+ scope?: string[];
64
+ }): Promise<{
65
+ completions: Array<{
66
+ name: string;
67
+ type?: string;
68
+ doc?: string;
69
+ url?: string;
70
+ }>;
71
+ isIncomplete: boolean;
72
+ }>;
73
+ /**
74
+ * Extract completions from definition object
75
+ */
76
+ private extractCompletions;
77
+ /**
78
+ * Get type information for a symbol
79
+ */
80
+ getTypeInfo(symbol: string, scope?: string[]): {
81
+ type?: string;
82
+ doc?: string;
83
+ url?: string;
84
+ } | null;
85
+ /**
86
+ * Find symbol information in definitions
87
+ */
88
+ private findSymbolInfo;
89
+ /**
90
+ * Refresh definitions (force cache invalidation and reload)
91
+ */
92
+ refresh(): void;
93
+ }
94
+ export declare const autocompleteManager: AutocompleteManager;
@@ -0,0 +1,249 @@
1
+ import {makeTernDefs}from'../utils/tern-definitions.js';import {libraryManager}from'./library-manager.js';import {combineDefinitions,AUTOCOMPLETE_DEFINITIONS,getDefaultDefinitions,getLibraryDefinitions,getDefinition}from'./autocomplete/index.js';/**
2
+ * Autocomplete Manager for JavaScript Code Intelligence
3
+ * Integrates Tern definitions with library management for comprehensive autocomplete support
4
+ */
5
+ /**
6
+ * Default autocomplete configuration
7
+ */
8
+ const DEFAULT_CONFIG = {
9
+ includeDefaults: true,
10
+ includeLibraries: true,
11
+ enableDynamicLibraries: true,
12
+ customDefinitions: []
13
+ };
14
+ /**
15
+ * Manages autocomplete definitions and provides intelligent code completion
16
+ */
17
+ class AutocompleteManager {
18
+ config;
19
+ cachedDefinitions = null;
20
+ lastUpdateTime = 0;
21
+ cacheTimeout = 5000; // 5 seconds
22
+ constructor(config = {}) {
23
+ this.config = {
24
+ ...DEFAULT_CONFIG,
25
+ ...config
26
+ };
27
+ }
28
+ /**
29
+ * Update configuration
30
+ */
31
+ updateConfig(config) {
32
+ this.config = {
33
+ ...this.config,
34
+ ...config
35
+ };
36
+ this.invalidateCache();
37
+ }
38
+ /**
39
+ * Get current configuration
40
+ */
41
+ getConfig() {
42
+ return {
43
+ ...this.config
44
+ };
45
+ }
46
+ /**
47
+ * Invalidate the cached definitions
48
+ */
49
+ invalidateCache() {
50
+ this.cachedDefinitions = null;
51
+ this.lastUpdateTime = 0;
52
+ }
53
+ /**
54
+ * Get comprehensive autocomplete definitions
55
+ */
56
+ getDefinitions() {
57
+ const now = Date.now();
58
+ // Return cached definitions if still valid
59
+ if (this.cachedDefinitions && now - this.lastUpdateTime < this.cacheTimeout) {
60
+ return this.cachedDefinitions;
61
+ }
62
+ const definitions = [];
63
+ // Add default definitions (ECMAScript, Browser APIs)
64
+ if (this.config.includeDefaults) {
65
+ definitions.push(...getDefaultDefinitions());
66
+ }
67
+ // Add library definitions (lodash, base64-js, etc.)
68
+ if (this.config.includeLibraries) {
69
+ definitions.push(...getLibraryDefinitions());
70
+ }
71
+ // Add custom specified definitions
72
+ this.config.customDefinitions.forEach(defName => {
73
+ const definition = getDefinition(defName);
74
+ if (definition) {
75
+ definitions.push(definition);
76
+ }
77
+ });
78
+ // Add dynamic library definitions if enabled
79
+ if (this.config.enableDynamicLibraries) {
80
+ const dynamicDefs = this.getDynamicLibraryDefinitions();
81
+ if (dynamicDefs) {
82
+ definitions.push(dynamicDefs);
83
+ }
84
+ }
85
+ // Combine all definitions
86
+ this.cachedDefinitions = combineDefinitions(definitions);
87
+ this.lastUpdateTime = now;
88
+ return this.cachedDefinitions;
89
+ }
90
+ /**
91
+ * Get definitions for dynamically loaded libraries
92
+ */
93
+ getDynamicLibraryDefinitions() {
94
+ try {
95
+ const installedLibraries = libraryManager.getInstalledLibraries();
96
+ if (installedLibraries.length === 0) {
97
+ return null;
98
+ }
99
+ // Create definitions from installed library objects
100
+ const combinedDefs = {};
101
+ installedLibraries.forEach(libInfo => {
102
+ if (libInfo.global && typeof libInfo.global === 'object') {
103
+ // Generate Tern definitions from the library object
104
+ const ternDef = makeTernDefs(libInfo.global);
105
+ // Add to combined definitions under the library identifier
106
+ combinedDefs[libInfo.identifier] = ternDef;
107
+ }
108
+ });
109
+ if (Object.keys(combinedDefs).length === 0) {
110
+ return null;
111
+ }
112
+ return {
113
+ '!name': 'dynamic-libraries',
114
+ ...combinedDefs
115
+ };
116
+ } catch (error) {
117
+ console.warn('Failed to generate dynamic library definitions:', error);
118
+ return null;
119
+ }
120
+ }
121
+ /**
122
+ * Get Tern-compatible definition object
123
+ */
124
+ getTernDef() {
125
+ const definitions = this.getDefinitions();
126
+ return definitions;
127
+ }
128
+ /**
129
+ * Get available definition names
130
+ */
131
+ getAvailableDefinitions() {
132
+ return Object.keys(AUTOCOMPLETE_DEFINITIONS);
133
+ }
134
+ /**
135
+ * Check if a definition is available
136
+ */
137
+ hasDefinition(name) {
138
+ return name in AUTOCOMPLETE_DEFINITIONS;
139
+ }
140
+ /**
141
+ * Get completions for a specific context
142
+ */
143
+ getCompletions(context) {
144
+ return new Promise(resolve => {
145
+ try {
146
+ const definitions = this.getDefinitions();
147
+ const completions = [];
148
+ // Extract relevant completions from definitions
149
+ this.extractCompletions(definitions, context.scope || [], completions);
150
+ resolve({
151
+ completions: completions.slice(0, 100),
152
+ // Limit results
153
+ isIncomplete: completions.length > 100
154
+ });
155
+ } catch (error) {
156
+ console.error('Failed to get completions:', error);
157
+ resolve({
158
+ completions: [],
159
+ isIncomplete: false
160
+ });
161
+ }
162
+ });
163
+ }
164
+ /**
165
+ * Extract completions from definition object
166
+ */
167
+ extractCompletions(obj, scope, results, visited = new Set()) {
168
+ if (!obj || typeof obj !== 'object' || visited.has(obj)) {
169
+ return;
170
+ }
171
+ visited.add(obj);
172
+ const objRecord = obj;
173
+ Object.keys(objRecord).forEach(key => {
174
+ if (key.startsWith('!')) {
175
+ return; // Skip metadata
176
+ }
177
+ const value = objRecord[key];
178
+ if (typeof value === 'object' && value !== null) {
179
+ const valueRecord = value;
180
+ results.push({
181
+ name: key,
182
+ type: valueRecord['!type'] || 'unknown',
183
+ doc: valueRecord['!doc'],
184
+ url: valueRecord['!url']
185
+ });
186
+ // Recurse for nested properties
187
+ if (scope.length === 0 || scope.includes(key)) {
188
+ this.extractCompletions(value, scope.slice(1), results, visited);
189
+ }
190
+ } else {
191
+ results.push({
192
+ name: key,
193
+ type: typeof value
194
+ });
195
+ }
196
+ });
197
+ visited.delete(obj);
198
+ }
199
+ /**
200
+ * Get type information for a symbol
201
+ */
202
+ getTypeInfo(symbol, scope) {
203
+ try {
204
+ const definitions = this.getDefinitions();
205
+ return this.findSymbolInfo(definitions, symbol, scope || []);
206
+ } catch (error) {
207
+ console.error('Failed to get type info:', error);
208
+ return null;
209
+ }
210
+ }
211
+ /**
212
+ * Find symbol information in definitions
213
+ */
214
+ findSymbolInfo(obj, symbol, scope) {
215
+ if (!obj || typeof obj !== 'object') {
216
+ return null;
217
+ }
218
+ const objRecord = obj;
219
+ // Direct lookup
220
+ if (symbol in objRecord) {
221
+ const value = objRecord[symbol];
222
+ if (typeof value === 'object' && value !== null) {
223
+ const valueRecord = value;
224
+ return {
225
+ type: valueRecord['!type'],
226
+ doc: valueRecord['!doc'],
227
+ url: valueRecord['!url']
228
+ };
229
+ }
230
+ }
231
+ // Scoped lookup
232
+ if (scope.length > 0) {
233
+ const [currentScope, ...remainingScope] = scope;
234
+ if (currentScope in objRecord) {
235
+ return this.findSymbolInfo(objRecord[currentScope], symbol, remainingScope);
236
+ }
237
+ }
238
+ return null;
239
+ }
240
+ /**
241
+ * Refresh definitions (force cache invalidation and reload)
242
+ */
243
+ refresh() {
244
+ this.invalidateCache();
245
+ this.getDefinitions(); // Force reload
246
+ }
247
+ }
248
+ // Export a default instance
249
+ const autocompleteManager = new AutocompleteManager();export{AutocompleteManager,autocompleteManager};//# sourceMappingURL=autocomplete-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-manager.js","sources":["../../../../../src/services/code/javascript/jslibrary/autocomplete-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}