@plumeria/utils 19.2.8 → 19.2.10
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/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/parser.d.ts +3 -2
- package/dist/parser.js +39 -9
- package/dist/transform.js +4 -6
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { CSSObject, StaticTable, KeyframesHashTable, ViewTransitionHashTable, CreateHashTable, CreateFunctionTable, CreateThemeHashTable, CreateStaticHashTable, } from './types';
|
|
2
|
-
export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, resolveOriginError, unwrapExpression, extractOndemandStyles, deepMerge, scanAll, resolveFileError, getFileDependencies, resolveExport, resolveComponentKey, resolveThemeSelector, } from './parser';
|
|
2
|
+
export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, resolveOriginError, unwrapExpression, extractOndemandStyles, appendSheet, deepMerge, scanAll, resolveFileError, getFileDependencies, resolveExport, resolveComponentKey, resolveThemeSelector, } from './parser';
|
|
3
3
|
export type { StyleRecord } from './create';
|
|
4
4
|
export { getStyleRecords } from './create';
|
|
5
5
|
export type { NamedParam, StyleFunction, StyleFunctions, DynamicStyleTables, DynamicStyleResult, } from './dynamicKey';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformSource = exports.assertPropertyPolicy = exports.resolvePropertyPolicy = exports.DEFAULT_STYLE_PROP = exports.timedAsync = exports.timed = exports.tally = exports.measure = exports.mark = exports.profiling = exports.collectReferenceIdentifiers = exports.getLeadingCommentLength = exports.optimizer = exports.resolveImportPath = exports.themeHashOf = exports.getStateWeights = exports.getPseudoElement = exports.getSpecificity = exports.resolveDynamicStyle = exports.applyVarFallback = exports.splitVarByUnit = exports.isUnitlessProp = exports.styleFunctionsOf = exports.getStyleRecords = exports.resolveThemeSelector = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.resolveFileError = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = exports.unwrapExpression = exports.resolveOriginError = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
|
|
3
|
+
exports.transformSource = exports.assertPropertyPolicy = exports.resolvePropertyPolicy = exports.DEFAULT_STYLE_PROP = exports.timedAsync = exports.timed = exports.tally = exports.measure = exports.mark = exports.profiling = exports.collectReferenceIdentifiers = exports.getLeadingCommentLength = exports.optimizer = exports.resolveImportPath = exports.themeHashOf = exports.getStateWeights = exports.getPseudoElement = exports.getSpecificity = exports.resolveDynamicStyle = exports.applyVarFallback = exports.splitVarByUnit = exports.isUnitlessProp = exports.styleFunctionsOf = exports.getStyleRecords = exports.resolveThemeSelector = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.resolveFileError = exports.scanAll = exports.deepMerge = exports.appendSheet = exports.extractOndemandStyles = exports.unwrapExpression = exports.resolveOriginError = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
|
|
4
4
|
var parser_1 = require("./parser");
|
|
5
5
|
Object.defineProperty(exports, "objectExpressionToObject", { enumerable: true, get: function () { return parser_1.objectExpressionToObject; } });
|
|
6
6
|
Object.defineProperty(exports, "collectLocalConsts", { enumerable: true, get: function () { return parser_1.collectLocalConsts; } });
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "getRootIdentifier", { enumerable: true, get: fun
|
|
|
10
10
|
Object.defineProperty(exports, "resolveOriginError", { enumerable: true, get: function () { return parser_1.resolveOriginError; } });
|
|
11
11
|
Object.defineProperty(exports, "unwrapExpression", { enumerable: true, get: function () { return parser_1.unwrapExpression; } });
|
|
12
12
|
Object.defineProperty(exports, "extractOndemandStyles", { enumerable: true, get: function () { return parser_1.extractOndemandStyles; } });
|
|
13
|
+
Object.defineProperty(exports, "appendSheet", { enumerable: true, get: function () { return parser_1.appendSheet; } });
|
|
13
14
|
Object.defineProperty(exports, "deepMerge", { enumerable: true, get: function () { return parser_1.deepMerge; } });
|
|
14
15
|
Object.defineProperty(exports, "scanAll", { enumerable: true, get: function () { return parser_1.scanAll; } });
|
|
15
16
|
Object.defineProperty(exports, "resolveFileError", { enumerable: true, get: function () { return parser_1.resolveFileError; } });
|
package/dist/parser.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CSSObject, Tables, StaticTable, KeyframesHashTable, ViewTransitionHashTable, CreateHashTable, CreateThemeHashTable, CreateThemeObjectTable, CreateStaticHashTable, CreateStaticObjectTable } from './types';
|
|
1
|
+
import type { CSSObject, Tables, StaticTable, KeyframesHashTable, ViewTransitionHashTable, CreateHashTable, CreateThemeHashTable, CreateThemeObjectTable, CreateStaticHashTable, CreateStaticObjectTable, SheetSink } from './types';
|
|
2
2
|
import type { Module, Expression, CallExpression, Identifier, KeyValueProperty, StringLiteral, NumericLiteral, BooleanLiteral, ObjectExpression, MemberExpression, TemplateLiteral, BinaryExpression, UnaryExpression, ParenthesisExpression, VariableDeclaration, VariableDeclarator, ExportDeclaration, ConditionalExpression, JSXExpression, ArrowFunctionExpression, FunctionExpression } from '@swc/core';
|
|
3
3
|
export declare function unwrapExpression(node: any): any;
|
|
4
4
|
export declare const getRootIdentifier: (node: Expression) => string | null;
|
|
@@ -55,5 +55,6 @@ export declare function resolveExport(filePath: string, exportName: string, visi
|
|
|
55
55
|
filePath: string;
|
|
56
56
|
localName: string;
|
|
57
57
|
} | null;
|
|
58
|
-
export declare
|
|
58
|
+
export declare const appendSheet: (sheets: string[]) => SheetSink;
|
|
59
|
+
export declare function extractOndemandStyles(obj: any, addSheet: SheetSink, t: Tables): void;
|
|
59
60
|
export declare function deepMerge(target: Record<string, any>, source: Record<string, any>): Record<string, any>;
|
package/dist/parser.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.t = exports.getRootIdentifier = void 0;
|
|
36
|
+
exports.appendSheet = exports.t = exports.getRootIdentifier = void 0;
|
|
37
37
|
exports.unwrapExpression = unwrapExpression;
|
|
38
38
|
exports.resolveOriginError = resolveOriginError;
|
|
39
39
|
exports.resolveComponentKey = resolveComponentKey;
|
|
@@ -1217,6 +1217,7 @@ function runScan(scanCwd = process.cwd()) {
|
|
|
1217
1217
|
if (!currentFiles.has(fp))
|
|
1218
1218
|
deletedFiles.push(fp);
|
|
1219
1219
|
}
|
|
1220
|
+
const appeared = files.some((fp) => !knownFiles.has(fp));
|
|
1220
1221
|
knownFiles = currentFiles;
|
|
1221
1222
|
const invalidated = new Set();
|
|
1222
1223
|
const queue = [];
|
|
@@ -1258,6 +1259,19 @@ function runScan(scanCwd = process.cwd()) {
|
|
|
1258
1259
|
invalidated.add(fp);
|
|
1259
1260
|
queue.push(fp);
|
|
1260
1261
|
}
|
|
1262
|
+
if (appeared) {
|
|
1263
|
+
for (const [filePath, cached] of Object.entries(fileCache)) {
|
|
1264
|
+
if (invalidated.has(filePath) ||
|
|
1265
|
+
!currentFiles.has(filePath) ||
|
|
1266
|
+
!cached.unresolvedImports?.length)
|
|
1267
|
+
continue;
|
|
1268
|
+
const resolves = cached.unresolvedImports.some((specifier) => (0, resolver_1.resolveImportPath)(specifier, filePath));
|
|
1269
|
+
if (resolves) {
|
|
1270
|
+
invalidated.add(filePath);
|
|
1271
|
+
queue.push(filePath);
|
|
1272
|
+
}
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1261
1275
|
for (let head = 0; head < queue.length; head++) {
|
|
1262
1276
|
const fp = queue[head];
|
|
1263
1277
|
const deps = dependentsMap.get(fp);
|
|
@@ -2125,6 +2139,7 @@ function runScan(scanCwd = process.cwd()) {
|
|
|
2125
2139
|
dependencies: Array.from(localDependencies),
|
|
2126
2140
|
exports: fileCache[filePath]?.exports,
|
|
2127
2141
|
exportsMtimeMs: fileCache[filePath]?.exportsMtimeMs,
|
|
2142
|
+
unresolvedImports: fileCache[filePath]?.unresolvedImports,
|
|
2128
2143
|
staticTable: localStaticTable,
|
|
2129
2144
|
keyframesHashTable: localKeyframesHashTable,
|
|
2130
2145
|
keyframesObjectTable: localKeyframesObjectTable,
|
|
@@ -2192,6 +2207,7 @@ function extractAndCacheExports(filePath, ast, mtimeMs) {
|
|
|
2192
2207
|
const reExports = {};
|
|
2193
2208
|
const starExports = [];
|
|
2194
2209
|
const localDependencies = new Set();
|
|
2210
|
+
const unresolvedImports = [];
|
|
2195
2211
|
const imports = {};
|
|
2196
2212
|
for (const node of ast.body) {
|
|
2197
2213
|
if (node.type === 'ImportDeclaration') {
|
|
@@ -2216,6 +2232,9 @@ function extractAndCacheExports(filePath, ast, mtimeMs) {
|
|
|
2216
2232
|
if (actualPath) {
|
|
2217
2233
|
localDependencies.add(actualPath);
|
|
2218
2234
|
}
|
|
2235
|
+
else if (node.source.value !== '@plumeria/core') {
|
|
2236
|
+
unresolvedImports.push(node.source.value);
|
|
2237
|
+
}
|
|
2219
2238
|
}
|
|
2220
2239
|
else if (node.type === 'ExportDeclaration') {
|
|
2221
2240
|
const decl = node.declaration;
|
|
@@ -2244,6 +2263,9 @@ function extractAndCacheExports(filePath, ast, mtimeMs) {
|
|
|
2244
2263
|
if (actualPath) {
|
|
2245
2264
|
localDependencies.add(actualPath);
|
|
2246
2265
|
}
|
|
2266
|
+
else if (source !== '@plumeria/core') {
|
|
2267
|
+
unresolvedImports.push(source);
|
|
2268
|
+
}
|
|
2247
2269
|
}
|
|
2248
2270
|
node.specifiers.forEach((spec) => {
|
|
2249
2271
|
if (spec.type === 'ExportSpecifier') {
|
|
@@ -2274,6 +2296,9 @@ function extractAndCacheExports(filePath, ast, mtimeMs) {
|
|
|
2274
2296
|
if (actualPath) {
|
|
2275
2297
|
localDependencies.add(actualPath);
|
|
2276
2298
|
}
|
|
2299
|
+
else if (node.source.value !== '@plumeria/core') {
|
|
2300
|
+
unresolvedImports.push(node.source.value);
|
|
2301
|
+
}
|
|
2277
2302
|
}
|
|
2278
2303
|
}
|
|
2279
2304
|
else if (node.type === 'ExportDefaultExpression') {
|
|
@@ -2313,6 +2338,7 @@ function extractAndCacheExports(filePath, ast, mtimeMs) {
|
|
|
2313
2338
|
mtimeMs: mtimeMs,
|
|
2314
2339
|
exports: { localExports, reExports, starExports, imports },
|
|
2315
2340
|
dependencies: newDeps,
|
|
2341
|
+
unresolvedImports,
|
|
2316
2342
|
staticTable: {},
|
|
2317
2343
|
keyframesHashTable: {},
|
|
2318
2344
|
keyframesObjectTable: {},
|
|
@@ -2337,6 +2363,7 @@ function extractAndCacheExports(filePath, ast, mtimeMs) {
|
|
|
2337
2363
|
imports,
|
|
2338
2364
|
};
|
|
2339
2365
|
fileCache[filePath].dependencies = newDeps;
|
|
2366
|
+
fileCache[filePath].unresolvedImports = unresolvedImports;
|
|
2340
2367
|
}
|
|
2341
2368
|
fileCache[filePath].exportsMtimeMs = mtimeMs;
|
|
2342
2369
|
}
|
|
@@ -2394,7 +2421,17 @@ function resolveExport(filePath, exportName, visited = new Set()) {
|
|
|
2394
2421
|
}
|
|
2395
2422
|
const REFERENCE_MARKER = /(kf|vt|cr)-([0-9a-z]+)/g;
|
|
2396
2423
|
const CUSTOM_PROPERTY = /var\(\s*(--[^\s,)]+)/g;
|
|
2397
|
-
|
|
2424
|
+
const appendSheet = (sheets) => {
|
|
2425
|
+
const existingSheets = new Set(sheets);
|
|
2426
|
+
return (sheet) => {
|
|
2427
|
+
if (existingSheets.has(sheet))
|
|
2428
|
+
return;
|
|
2429
|
+
existingSheets.add(sheet);
|
|
2430
|
+
sheets.push(sheet);
|
|
2431
|
+
};
|
|
2432
|
+
};
|
|
2433
|
+
exports.appendSheet = appendSheet;
|
|
2434
|
+
function extractOndemandStyles(obj, addSheet, t) {
|
|
2398
2435
|
if (!obj || typeof obj !== 'object')
|
|
2399
2436
|
return;
|
|
2400
2437
|
const visited = new Set();
|
|
@@ -2441,13 +2478,6 @@ function extractOndemandStyles(obj, extractedSheets, t) {
|
|
|
2441
2478
|
});
|
|
2442
2479
|
}
|
|
2443
2480
|
walk(obj);
|
|
2444
|
-
const existingSheets = new Set(extractedSheets);
|
|
2445
|
-
const addSheet = (sheet) => {
|
|
2446
|
-
if (!existingSheets.has(sheet)) {
|
|
2447
|
-
existingSheets.add(sheet);
|
|
2448
|
-
extractedSheets.push(sheet);
|
|
2449
|
-
}
|
|
2450
|
-
};
|
|
2451
2481
|
if (keyframesHashes.size > 0) {
|
|
2452
2482
|
for (const hash of keyframesHashes) {
|
|
2453
2483
|
const definition = t.keyframesObjectTable[hash];
|
package/dist/transform.js
CHANGED
|
@@ -293,16 +293,14 @@ const transformSource = async (env) => {
|
|
|
293
293
|
appliedStyleProps.add(`${owner}:${name}`);
|
|
294
294
|
}
|
|
295
295
|
};
|
|
296
|
-
const extractedSheets =
|
|
296
|
+
const extractedSheets = new Set();
|
|
297
297
|
const addSheet = (sheet) => {
|
|
298
|
-
|
|
299
|
-
extractedSheets.push(sheet);
|
|
300
|
-
}
|
|
298
|
+
extractedSheets.add(sheet);
|
|
301
299
|
};
|
|
302
300
|
const processStyleRecords = (style, weights) => {
|
|
303
301
|
const records = (0, create_1.getStyleRecords)(style, weights);
|
|
304
302
|
if (collectOndemandSheets) {
|
|
305
|
-
(0, parser_1.extractOndemandStyles)(style,
|
|
303
|
+
(0, parser_1.extractOndemandStyles)(style, addSheet, scannedTables);
|
|
306
304
|
records.forEach((r) => {
|
|
307
305
|
addSheet(r.sheet);
|
|
308
306
|
});
|
|
@@ -2353,6 +2351,6 @@ const transformSource = async (env) => {
|
|
|
2353
2351
|
});
|
|
2354
2352
|
parts.push(buffer.subarray(offset));
|
|
2355
2353
|
const transformedSource = Buffer.concat(parts).toString();
|
|
2356
|
-
return { code: transformedSource, sheets: extractedSheets };
|
|
2354
|
+
return { code: transformedSource, sheets: [...extractedSheets] };
|
|
2357
2355
|
};
|
|
2358
2356
|
exports.transformSource = transformSource;
|
package/dist/types.d.ts
CHANGED