@power-maverick/tool-erd-generator 0.0.7 → 0.0.8
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/MIGRATION_COMPLETE.md +181 -0
- package/README.md +118 -359
- package/index.html +18 -1
- package/package.json +12 -27
- package/tsconfig.json +20 -15
- package/{webview/vite.config.ts → vite.config.ts} +1 -1
- package/CONVERSION_SUMMARY.md +0 -288
- package/REFACTORING_COMPLETE.md +0 -352
- package/TYPESCRIPT_NOTES.md +0 -57
- package/dist/src/components/ERDGenerator.d.ts +0 -44
- package/dist/src/components/ERDGenerator.d.ts.map +0 -1
- package/dist/src/components/ERDGenerator.js +0 -232
- package/dist/src/components/ERDGenerator.js.map +0 -1
- package/dist/src/dvdtIntegration/integration.d.ts +0 -47
- package/dist/src/dvdtIntegration/integration.d.ts.map +0 -1
- package/dist/src/dvdtIntegration/integration.js +0 -223
- package/dist/src/dvdtIntegration/integration.js.map +0 -1
- package/dist/src/index.d.ts +0 -6
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -26
- package/dist/src/index.js.map +0 -1
- package/dist/src/models/interfaces.d.ts +0 -84
- package/dist/src/models/interfaces.d.ts.map +0 -1
- package/dist/src/models/interfaces.js +0 -3
- package/dist/src/models/interfaces.js.map +0 -1
- package/dist/src/models/platformApi.d.ts +0 -92
- package/dist/src/models/platformApi.d.ts.map +0 -1
- package/dist/src/models/platformApi.js +0 -213
- package/dist/src/models/platformApi.js.map +0 -1
- package/dist/src/utils/Constants.d.ts +0 -3
- package/dist/src/utils/Constants.d.ts.map +0 -1
- package/dist/src/utils/Constants.js +0 -6
- package/dist/src/utils/Constants.js.map +0 -1
- package/dist/src/utils/DataverseClient.d.ts +0 -53
- package/dist/src/utils/DataverseClient.d.ts.map +0 -1
- package/dist/src/utils/DataverseClient.js +0 -236
- package/dist/src/utils/DataverseClient.js.map +0 -1
- package/dist/webview/index.css +0 -1
- package/dist/webview/index.html +0 -13
- package/dist/webview/index.js +0 -49
- package/tsconfig.webview.json +0 -24
- package/ui/test.html +0 -326
- package/webview/App.tsx +0 -412
- package/webview/index.html +0 -12
- package/webview/main.tsx +0 -10
- package/webview/styles.css +0 -288
- package/webview/tsconfig.json +0 -35
- /package/{webview/tsconfig.node.json → tsconfig.node.json} +0 -0
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.DataverseClient = void 0;
|
|
16
|
-
const axios_1 = __importDefault(require("axios"));
|
|
17
|
-
/**
|
|
18
|
-
* Client for interacting with Dataverse Web API
|
|
19
|
-
*/
|
|
20
|
-
class DataverseClient {
|
|
21
|
-
constructor(config) {
|
|
22
|
-
this.environmentUrl = config.environmentUrl.replace(/\/$/, '');
|
|
23
|
-
this.apiVersion = config.apiVersion || '9.2';
|
|
24
|
-
this.axiosInstance = axios_1.default.create({
|
|
25
|
-
baseURL: `${this.environmentUrl}/api/data/v${this.apiVersion}`,
|
|
26
|
-
headers: {
|
|
27
|
-
'Authorization': `Bearer ${config.accessToken}`,
|
|
28
|
-
'Accept': 'application/json',
|
|
29
|
-
'Content-Type': 'application/json',
|
|
30
|
-
'OData-MaxVersion': '4.0',
|
|
31
|
-
'OData-Version': '4.0',
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Fetch solution metadata from Dataverse
|
|
37
|
-
* @param solutionUniqueName Unique name of the solution
|
|
38
|
-
* @returns Solution with all tables and metadata
|
|
39
|
-
*/
|
|
40
|
-
fetchSolution(solutionUniqueName) {
|
|
41
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
var _a, _b, _c, _d;
|
|
43
|
-
try {
|
|
44
|
-
// Fetch solution details
|
|
45
|
-
const solutionResponse = yield this.axiosInstance.get(`/solutions?$filter=uniquename eq '${solutionUniqueName}'&$select=friendlyname,uniquename,_publisherid_value,version&$expand=publisherid($select=customizationprefix)`);
|
|
46
|
-
if (!solutionResponse.data.value || solutionResponse.data.value.length === 0) {
|
|
47
|
-
throw new Error(`Solution '${solutionUniqueName}' not found`);
|
|
48
|
-
}
|
|
49
|
-
const solutionData = solutionResponse.data.value[0];
|
|
50
|
-
// Publisher Prefix
|
|
51
|
-
const publisherPrefix = (_b = (_a = solutionData.publisherid) === null || _a === void 0 ? void 0 : _a.customizationprefix) !== null && _b !== void 0 ? _b : 'unknown';
|
|
52
|
-
// Fetch solution components (tables)
|
|
53
|
-
const componentsResponse = yield this.axiosInstance.get(`/solutioncomponents?$filter=_solutionid_value eq ${solutionData.solutionid} and componenttype eq 1&$select=objectid`);
|
|
54
|
-
const tableIds = componentsResponse.data.value.map((c) => c.objectid);
|
|
55
|
-
console.log('tableIds', tableIds);
|
|
56
|
-
// Fetch tables in parallel
|
|
57
|
-
const tables = yield this.fetchTables(tableIds);
|
|
58
|
-
console.log('tables', tables);
|
|
59
|
-
return {
|
|
60
|
-
uniqueName: solutionData.uniquename,
|
|
61
|
-
displayName: solutionData.friendlyname,
|
|
62
|
-
version: solutionData.version,
|
|
63
|
-
publisherPrefix: publisherPrefix,
|
|
64
|
-
tables: tables,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
if (error.response) {
|
|
69
|
-
throw new Error(`Dataverse API error: ${error.response.status} - ${((_d = (_c = error.response.data) === null || _c === void 0 ? void 0 : _c.error) === null || _d === void 0 ? void 0 : _d.message) || error.message}`);
|
|
70
|
-
}
|
|
71
|
-
throw error;
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Fetch multiple tables by their IDs
|
|
77
|
-
*/
|
|
78
|
-
fetchTables(tableIds) {
|
|
79
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
const tables = [];
|
|
81
|
-
for (const tableId of tableIds) {
|
|
82
|
-
try {
|
|
83
|
-
const table = yield this.fetchTable(tableId);
|
|
84
|
-
if (table) {
|
|
85
|
-
tables.push(table);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
console.warn(`Failed to fetch table ${tableId}:`, error);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return tables;
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Fetch a single table by ID
|
|
97
|
-
*/
|
|
98
|
-
fetchTable(tableId) {
|
|
99
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
var _a, _b;
|
|
101
|
-
try {
|
|
102
|
-
// Fetch entity metadata
|
|
103
|
-
const entityResponse = yield this.axiosInstance.get(`/EntityDefinitions(${tableId})?$select=LogicalName,DisplayName,SchemaName,PrimaryIdAttribute,PrimaryNameAttribute,TableType,IsIntersect`);
|
|
104
|
-
const entity = entityResponse.data;
|
|
105
|
-
// Fetch attributes
|
|
106
|
-
const attributesResponse = yield this.axiosInstance.get(`/EntityDefinitions(${tableId})/Attributes?$select=LogicalName,DisplayName,AttributeType,IsPrimaryId,IsPrimaryName,RequiredLevel`);
|
|
107
|
-
const attributes = attributesResponse.data.value.map((attr) => {
|
|
108
|
-
var _a, _b, _c, _d;
|
|
109
|
-
return ({
|
|
110
|
-
logicalName: attr.LogicalName,
|
|
111
|
-
displayName: ((_b = (_a = attr.DisplayName) === null || _a === void 0 ? void 0 : _a.UserLocalizedLabel) === null || _b === void 0 ? void 0 : _b.Label) || attr.LogicalName,
|
|
112
|
-
type: this.mapAttributeType(attr.AttributeType),
|
|
113
|
-
isPrimaryId: attr.IsPrimaryId || false,
|
|
114
|
-
isPrimaryName: attr.IsPrimaryName || false,
|
|
115
|
-
isRequired: ((_c = attr.RequiredLevel) === null || _c === void 0 ? void 0 : _c.Value) === 'ApplicationRequired' || ((_d = attr.RequiredLevel) === null || _d === void 0 ? void 0 : _d.Value) === 'SystemRequired',
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
// Fetch relationships
|
|
119
|
-
const relationships = yield this.fetchRelationships(tableId, entity.LogicalName);
|
|
120
|
-
return {
|
|
121
|
-
logicalName: entity.LogicalName,
|
|
122
|
-
displayName: ((_b = (_a = entity.DisplayName) === null || _a === void 0 ? void 0 : _a.UserLocalizedLabel) === null || _b === void 0 ? void 0 : _b.Label) || entity.LogicalName,
|
|
123
|
-
schemaName: entity.SchemaName,
|
|
124
|
-
primaryIdAttribute: entity.PrimaryIdAttribute,
|
|
125
|
-
primaryNameAttribute: entity.PrimaryNameAttribute,
|
|
126
|
-
isIntersect: entity.IsIntersect || false,
|
|
127
|
-
tableType: entity.TableType,
|
|
128
|
-
attributes: attributes,
|
|
129
|
-
relationships: relationships,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
catch (error) {
|
|
133
|
-
console.warn(`Failed to fetch table metadata for ${tableId}:`, error);
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Fetch relationships for a table
|
|
140
|
-
*/
|
|
141
|
-
fetchRelationships(tableId, logicalName) {
|
|
142
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
-
const relationships = [];
|
|
144
|
-
try {
|
|
145
|
-
// Fetch One-to-Many relationships
|
|
146
|
-
const oneToManyResponse = yield this.axiosInstance.get(`/EntityDefinitions(${tableId})/OneToManyRelationships?$select=SchemaName,ReferencedEntity,ReferencingEntity,ReferencingAttribute`);
|
|
147
|
-
for (const rel of oneToManyResponse.data.value) {
|
|
148
|
-
if (rel.ReferencedEntity === logicalName) {
|
|
149
|
-
relationships.push({
|
|
150
|
-
schemaName: rel.SchemaName,
|
|
151
|
-
type: 'OneToMany',
|
|
152
|
-
relatedTable: rel.ReferencingEntity,
|
|
153
|
-
lookupAttribute: rel.ReferencingAttribute,
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
// Fetch Many-to-One relationships
|
|
158
|
-
const manyToOneResponse = yield this.axiosInstance.get(`/EntityDefinitions(${tableId})/ManyToOneRelationships?$select=SchemaName,ReferencedEntity,ReferencingEntity,ReferencingAttribute`);
|
|
159
|
-
for (const rel of manyToOneResponse.data.value) {
|
|
160
|
-
if (rel.ReferencingEntity === logicalName) {
|
|
161
|
-
relationships.push({
|
|
162
|
-
schemaName: rel.SchemaName,
|
|
163
|
-
type: 'ManyToOne',
|
|
164
|
-
relatedTable: rel.ReferencedEntity,
|
|
165
|
-
lookupAttribute: rel.ReferencingAttribute,
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// Fetch Many-to-Many relationships
|
|
170
|
-
const manyToManyResponse = yield this.axiosInstance.get(`/EntityDefinitions(${tableId})/ManyToManyRelationships?$select=SchemaName,Entity1LogicalName,Entity2LogicalName,IntersectEntityName`);
|
|
171
|
-
for (const rel of manyToManyResponse.data.value) {
|
|
172
|
-
const isEntity1 = rel.Entity1LogicalName === logicalName;
|
|
173
|
-
relationships.push({
|
|
174
|
-
schemaName: rel.SchemaName,
|
|
175
|
-
type: 'ManyToMany',
|
|
176
|
-
relatedTable: isEntity1 ? rel.Entity2LogicalName : rel.Entity1LogicalName,
|
|
177
|
-
intersectTable: rel.IntersectEntityName,
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
console.warn(`Failed to fetch relationships for ${logicalName}:`, error);
|
|
183
|
-
}
|
|
184
|
-
return relationships;
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Map Dataverse attribute types to simplified types
|
|
189
|
-
*/
|
|
190
|
-
mapAttributeType(attributeType) {
|
|
191
|
-
const typeMap = {
|
|
192
|
-
'String': 'string',
|
|
193
|
-
'Memo': 'string',
|
|
194
|
-
'Integer': 'int',
|
|
195
|
-
'BigInt': 'int',
|
|
196
|
-
'Decimal': 'decimal',
|
|
197
|
-
'Double': 'decimal',
|
|
198
|
-
'Money': 'money',
|
|
199
|
-
'DateTime': 'datetime',
|
|
200
|
-
'Boolean': 'boolean',
|
|
201
|
-
'Lookup': 'lookup',
|
|
202
|
-
'Customer': 'lookup',
|
|
203
|
-
'Owner': 'lookup',
|
|
204
|
-
'Picklist': 'picklist',
|
|
205
|
-
'State': 'picklist',
|
|
206
|
-
'Status': 'picklist',
|
|
207
|
-
'Uniqueidentifier': 'guid',
|
|
208
|
-
};
|
|
209
|
-
return typeMap[attributeType] || 'string';
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* List all solutions in the environment
|
|
213
|
-
* @returns Array of solution names
|
|
214
|
-
*/
|
|
215
|
-
listSolutions() {
|
|
216
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
217
|
-
var _a, _b;
|
|
218
|
-
try {
|
|
219
|
-
const response = yield this.axiosInstance.get(`/solutions?$select=uniquename,friendlyname,version&$filter=isvisible eq true&$orderby=friendlyname asc`);
|
|
220
|
-
return response.data.value.map((s) => ({
|
|
221
|
-
uniqueName: s.uniquename,
|
|
222
|
-
displayName: s.friendlyname,
|
|
223
|
-
version: s.version,
|
|
224
|
-
}));
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
if (error.response) {
|
|
228
|
-
throw new Error(`Dataverse API error: ${error.response.status} - ${((_b = (_a = error.response.data) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.message) || error.message}`);
|
|
229
|
-
}
|
|
230
|
-
throw error;
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
exports.DataverseClient = DataverseClient;
|
|
236
|
-
//# sourceMappingURL=DataverseClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataverseClient.js","sourceRoot":"","sources":["../../../src/utils/DataverseClient.ts"],"names":[],"mappings":"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"}
|
package/dist/webview/index.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--vscode-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);background:var(--vscode-editor-background, linear-gradient(135deg, #667eea 0%, #764ba2 100%));color:var(--vscode-editor-foreground, #333);padding:20px;min-height:100vh;line-height:1.6}.container{max-width:1400px;margin:0 auto}.header{text-align:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid var(--vscode-panel-border, rgba(255, 255, 255, .2));color:var(--vscode-foreground, white)}.header h1{font-size:2rem;margin-bottom:10px}.header p{font-size:1rem;opacity:.8}.card{background:var(--vscode-editor-background, white);border:1px solid var(--vscode-panel-border, #e5e7eb);border-radius:8px;padding:24px;margin-bottom:20px;box-shadow:0 4px 6px #0000001a}.info-message{background:var(--vscode-inputValidation-infoBackground, #063b49);border:1px solid var(--vscode-inputValidation-infoBorder, #007acc);color:var(--vscode-inputValidation-infoForeground, #ffffff);padding:15px;border-radius:6px;margin-bottom:20px}.error{background:var(--vscode-inputValidation-errorBackground, #5a1d1d);border:1px solid var(--vscode-inputValidation-errorBorder, #be1100);color:var(--vscode-inputValidation-errorForeground, #ffffff);padding:15px;border-radius:6px;margin-bottom:20px}.loading{text-align:center;padding:40px;color:var(--vscode-foreground, white);font-size:1.5rem}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;font-size:14px;color:var(--vscode-foreground, #333)}select{width:100%;padding:10px 35px 10px 12px;background:var(--vscode-input-background, #f3f4f6);color:var(--vscode-input-foreground, #333);border:1px solid var(--vscode-input-border, #d1d5db);border-radius:4px;font-size:14px;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill="%23666" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M4 6l4 4 4-4z"/></svg>');background-repeat:no-repeat;background-position:right 10px center;background-size:12px}select:focus{outline:none;border-color:var(--vscode-focusBorder, #007acc)}select:disabled{opacity:.5;cursor:not-allowed}.generate-section{margin-top:20px}h2{margin-bottom:20px;font-size:1.3rem;color:var(--vscode-foreground, #333)}h3{margin-bottom:15px;font-size:1.1rem;color:var(--vscode-foreground, #333)}.format-selector{display:flex;gap:10px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.format-btn{padding:8px 16px;border:1px solid var(--vscode-panel-border, #d1d5db);background:var(--vscode-button-secondaryBackground, #f3f4f6);color:var(--vscode-button-secondaryForeground, #333);border-radius:4px;cursor:pointer;transition:all .2s;font-size:14px;font-weight:500}.format-btn:hover{background:var(--vscode-button-secondaryHoverBackground, #e5e7eb)}.format-btn.active{border-color:var(--vscode-focusBorder, #007acc);background:var(--vscode-button-background, #0e639c);color:var(--vscode-button-foreground, #ffffff)}.config-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--vscode-panel-border, #e5e7eb)}.config-group{margin-bottom:15px}.config-group label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}.config-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.config-group input[type=number]{width:100px;padding:6px 10px;background:var(--vscode-input-background, #f3f4f6);color:var(--vscode-input-foreground, #333);border:1px solid var(--vscode-input-border, #d1d5db);border-radius:4px;font-size:14px}.config-group input[type=number]:focus{outline:none;border-color:var(--vscode-focusBorder, #007acc)}.config-label-group{display:flex;align-items:center;gap:10px;margin-bottom:8px}.config-label-group label{font-weight:500;min-width:200px}.config-help{font-size:12px;opacity:.7;margin-left:28px;margin-top:-8px;margin-bottom:8px}.btn{padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}.btn-primary{background:var(--vscode-button-background, #667eea);color:var(--vscode-button-foreground, #ffffff);margin-top:20px}.btn-primary:hover{background:var(--vscode-button-hoverBackground, #5568d3)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--vscode-button-secondaryBackground, #f3f4f6);color:var(--vscode-button-secondaryForeground, #333);margin-right:10px}.btn-secondary:hover{background:var(--vscode-button-secondaryHoverBackground, #e5e7eb)}.diagram-controls{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.diagram-container{margin-top:20px;border:1px solid var(--vscode-panel-border, #e5e7eb);border-radius:8px;padding:20px;background:var(--vscode-editor-background, #f9fafb);overflow:auto;max-height:600px}.diagram-text{background:var(--vscode-textCodeBlock-background, #1e1e1e);color:var(--vscode-textCodeBlock-foreground, #d4d4d4);padding:20px;border-radius:6px;overflow-x:auto;font-family:var(--vscode-editor-font-family, "Courier New", monospace);font-size:13px;border:1px solid var(--vscode-panel-border, #3c3c3c)}.mermaid-container{text-align:center;background:var(--vscode-editor-background, #ffffff);padding:1rem;border-radius:4px;overflow-x:auto}
|
package/dist/webview/index.html
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Dataverse ERD Generator</title>
|
|
7
|
-
<script type="module" crossorigin src="/index.js"></script>
|
|
8
|
-
<link rel="stylesheet" crossorigin href="/index.css">
|
|
9
|
-
</head>
|
|
10
|
-
<body>
|
|
11
|
-
<div id="root"></div>
|
|
12
|
-
</body>
|
|
13
|
-
</html>
|