@microtronics/studio-cli 0.52.0 → 0.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -13
- package/dist/main.js +26 -26
- package/dist/studio-cli.d.ts +4 -1
- package/out/defaultFiles.js +2 -1
- package/out/globals.js +23 -7
- package/out/package/library.js +1 -1
- package/out/package/package.js +21 -2
- package/package.json +1 -1
package/dist/studio-cli.d.ts
CHANGED
|
@@ -1812,6 +1812,7 @@ export declare namespace DefaultFiles {
|
|
|
1812
1812
|
bloPath: string;
|
|
1813
1813
|
reportTemplate: string;
|
|
1814
1814
|
definesTs: string;
|
|
1815
|
+
definesAppTs: string;
|
|
1815
1816
|
};
|
|
1816
1817
|
dlo: {
|
|
1817
1818
|
path: string;
|
|
@@ -2252,6 +2253,8 @@ export declare namespace Globals {
|
|
|
2252
2253
|
definesWithSource: {
|
|
2253
2254
|
[key: string]: DefineEntry;
|
|
2254
2255
|
};
|
|
2256
|
+
/** For library projects: defaults-only config without app.ini overrides */
|
|
2257
|
+
defaultsOnly?: ResolvedConfig;
|
|
2255
2258
|
}
|
|
2256
2259
|
/**
|
|
2257
2260
|
* Read all ini files from the project directory and its dependencies.
|
|
@@ -2275,7 +2278,7 @@ export declare namespace Globals {
|
|
|
2275
2278
|
* @param fs - filesystem abstraction
|
|
2276
2279
|
* @param resolvedConfig - the resolved config from Globals.read()
|
|
2277
2280
|
*/
|
|
2278
|
-
export function exportDefinesTs(cwd: URI, fs: LocalFS, resolvedConfig: ResolvedConfig): Promise<void>;
|
|
2281
|
+
export function exportDefinesTs(cwd: URI, fs: LocalFS, resolvedConfig: ResolvedConfig, outputPath?: string): Promise<void>;
|
|
2279
2282
|
/**
|
|
2280
2283
|
* Replace {{KEY}} template tokens in a string with their resolved values.
|
|
2281
2284
|
*
|
package/out/defaultFiles.js
CHANGED
|
@@ -73,7 +73,8 @@ var DefaultFiles;
|
|
|
73
73
|
dfilesProperties: `${deployDirectoryName}dfiles/properties.json`,
|
|
74
74
|
bloPath: `${deployDirectoryName}blo`,
|
|
75
75
|
reportTemplate: `${deployDirectoryName}/${DefaultFiles.fileNames.reportTemplate}`,
|
|
76
|
-
definesTs: `${deployDirectoryName}defines.ts
|
|
76
|
+
definesTs: `${deployDirectoryName}defines.ts`,
|
|
77
|
+
definesAppTs: `${deployDirectoryName}defines.app.ts`
|
|
77
78
|
},
|
|
78
79
|
dlo: {
|
|
79
80
|
path: dloDirectoryName,
|
package/out/globals.js
CHANGED
|
@@ -92,11 +92,12 @@ var Globals;
|
|
|
92
92
|
const defaultsIni = vscode_uri_1.Utils.joinPath(cwd, defaultFiles_1.DefaultFiles.filePaths.defaultsIni);
|
|
93
93
|
await mergeIniFile(fs, defaultsIni, allDefines, sections, definesWithSource);
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
// Snapshot defaults-only state before app.ini merge (for library dual-defines)
|
|
96
|
+
const defaultsOnly = snapshotDefaultsOnly(manifest, allDefines, sections, definesWithSource);
|
|
97
|
+
// app.ini is always loaded (provides local dev overrides for libraries, main config for apps)
|
|
98
|
+
const appIni = vscode_uri_1.Utils.joinPath(cwd, defaultFiles_1.DefaultFiles.filePaths.appIni);
|
|
99
|
+
await mergeIniFile(fs, appIni, allDefines, sections, definesWithSource);
|
|
100
|
+
return { flat: allDefines, sections, definesWithSource, defaultsOnly };
|
|
100
101
|
}
|
|
101
102
|
Globals.read = read;
|
|
102
103
|
/**
|
|
@@ -107,7 +108,7 @@ var Globals;
|
|
|
107
108
|
* @param fs - filesystem abstraction
|
|
108
109
|
* @param resolvedConfig - the resolved config from Globals.read()
|
|
109
110
|
*/
|
|
110
|
-
async function exportDefinesTs(cwd, fs, resolvedConfig) {
|
|
111
|
+
async function exportDefinesTs(cwd, fs, resolvedConfig, outputPath) {
|
|
111
112
|
const entries = Object.entries(resolvedConfig.flat);
|
|
112
113
|
// Build the StudioDefines interface members
|
|
113
114
|
const interfaceLines = [];
|
|
@@ -150,7 +151,7 @@ var Globals;
|
|
|
150
151
|
lines.push('');
|
|
151
152
|
lines.push('export {};');
|
|
152
153
|
lines.push('');
|
|
153
|
-
const definesPath = vscode_uri_1.Utils.joinPath(cwd, defaultFiles_1.DefaultFiles.filePaths.dist.definesTs);
|
|
154
|
+
const definesPath = vscode_uri_1.Utils.joinPath(cwd, outputPath ?? defaultFiles_1.DefaultFiles.filePaths.dist.definesTs);
|
|
154
155
|
await fs.writeFile(definesPath, lines.join('\n'));
|
|
155
156
|
}
|
|
156
157
|
Globals.exportDefinesTs = exportDefinesTs;
|
|
@@ -175,6 +176,21 @@ var Globals;
|
|
|
175
176
|
}
|
|
176
177
|
Globals.replaceDefineTemplates = replaceDefineTemplates;
|
|
177
178
|
})(Globals || (exports.Globals = Globals = {}));
|
|
179
|
+
/**
|
|
180
|
+
* For library projects, snapshot the current defines state (before app.ini merge)
|
|
181
|
+
* so the published library only contains defaults.ini values.
|
|
182
|
+
* Returns undefined for non-library projects.
|
|
183
|
+
*/
|
|
184
|
+
function snapshotDefaultsOnly(manifest, allDefines, sections, definesWithSource) {
|
|
185
|
+
if (!manifest_1.Manifest.isLibrary(manifest)) {
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
flat: { ...allDefines },
|
|
190
|
+
sections: structuredClone(sections),
|
|
191
|
+
definesWithSource: { ...definesWithSource }
|
|
192
|
+
};
|
|
193
|
+
}
|
|
178
194
|
/**
|
|
179
195
|
* Classify a trimmed ini-file line into one of the known kinds.
|
|
180
196
|
* Moves boolean-operator branching out of the main loop to reduce cognitive complexity.
|
package/out/package/library.js
CHANGED
|
@@ -46,7 +46,7 @@ const defaultIgnore = [
|
|
|
46
46
|
'**/.vscode-test/**',
|
|
47
47
|
'**/.vscode-test-web/**'
|
|
48
48
|
];
|
|
49
|
-
defaultIgnore.push(...['**/.studio/**', '**/node_modules/**', STUDIO_IGNORE_FILE]);
|
|
49
|
+
defaultIgnore.push(...['**/.studio/**', '**/node_modules/**', STUDIO_IGNORE_FILE, 'dist/defines.app.ts']);
|
|
50
50
|
const MINIMATCH_OPTIONS = { dot: true };
|
|
51
51
|
var Library;
|
|
52
52
|
(function (Library) {
|
package/out/package/package.js
CHANGED
|
@@ -46,8 +46,7 @@ var Package;
|
|
|
46
46
|
// Generate dist/defines.ts before POV/BLO builds
|
|
47
47
|
try {
|
|
48
48
|
const resolvedConfig = await globals_1.Globals.read(cwd, fs, logger);
|
|
49
|
-
await
|
|
50
|
-
logger.log('Generated', defaultFiles_1.DefaultFiles.filePaths.dist.definesTs);
|
|
49
|
+
await exportDefinesForProject(cwd, fs, logger, resolvedConfig);
|
|
51
50
|
}
|
|
52
51
|
catch (e) {
|
|
53
52
|
logger.warn('Could not generate defines.ts:', e);
|
|
@@ -367,6 +366,26 @@ async function preBuild(cwd, fs, logger, env, apiToken, selectedParts) {
|
|
|
367
366
|
await dde_1.DDE.fetchPreviousHistoryJson(cwd, fs, logger, env, apiToken);
|
|
368
367
|
}
|
|
369
368
|
}
|
|
369
|
+
/**
|
|
370
|
+
* Export defines.ts file(s) based on project type.
|
|
371
|
+
* Library projects get two files: dist/defines.ts (defaults only) and dist/defines.app.ts (full merged).
|
|
372
|
+
* App/addon/analytics projects get a single dist/defines.ts with all merged values.
|
|
373
|
+
*/
|
|
374
|
+
async function exportDefinesForProject(cwd, fs, logger, resolvedConfig) {
|
|
375
|
+
if (resolvedConfig.defaultsOnly) {
|
|
376
|
+
// Library: dist/defines.ts = defaults only (for publishing)
|
|
377
|
+
await globals_1.Globals.exportDefinesTs(cwd, fs, resolvedConfig.defaultsOnly);
|
|
378
|
+
logger.log('Generated', defaultFiles_1.DefaultFiles.filePaths.dist.definesTs, '(defaults only)');
|
|
379
|
+
// Library: dist/defines.app.ts = full merged (for local dev)
|
|
380
|
+
await globals_1.Globals.exportDefinesTs(cwd, fs, resolvedConfig, defaultFiles_1.DefaultFiles.filePaths.dist.definesAppTs);
|
|
381
|
+
logger.log('Generated', defaultFiles_1.DefaultFiles.filePaths.dist.definesAppTs, '(with app.ini overrides)');
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
// App/addon/analytics: single merged file
|
|
385
|
+
await globals_1.Globals.exportDefinesTs(cwd, fs, resolvedConfig);
|
|
386
|
+
logger.log('Generated', defaultFiles_1.DefaultFiles.filePaths.dist.definesTs);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
370
389
|
/**
|
|
371
390
|
* Generates all needed files out of the dde declaration
|
|
372
391
|
* @param cwd
|