@plumeria/utils 19.1.6 → 19.1.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/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, unwrapExpression, extractOndemandStyles, deepMerge, scanAll, resolveFileError, getFileDependencies, resolveExport, resolveComponentKey, resolveThemeSelector, } from './parser';
2
+ export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, resolveOriginError, unwrapExpression, extractOndemandStyles, 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,12 +1,13 @@
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.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.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; } });
7
7
  Object.defineProperty(exports, "traverse", { enumerable: true, get: function () { return parser_1.traverse; } });
8
8
  Object.defineProperty(exports, "t", { enumerable: true, get: function () { return parser_1.t; } });
9
9
  Object.defineProperty(exports, "getRootIdentifier", { enumerable: true, get: function () { return parser_1.getRootIdentifier; } });
10
+ Object.defineProperty(exports, "resolveOriginError", { enumerable: true, get: function () { return parser_1.resolveOriginError; } });
10
11
  Object.defineProperty(exports, "unwrapExpression", { enumerable: true, get: function () { return parser_1.unwrapExpression; } });
11
12
  Object.defineProperty(exports, "extractOndemandStyles", { enumerable: true, get: function () { return parser_1.extractOndemandStyles; } });
12
13
  Object.defineProperty(exports, "deepMerge", { enumerable: true, get: function () { return parser_1.deepMerge; } });
package/dist/parser.d.ts CHANGED
@@ -2,6 +2,13 @@ import type { CSSObject, Tables, StaticTable, KeyframesHashTable, ViewTransition
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;
5
+ export declare function resolveOriginError(node: Expression, rootName: string | null, localImports: Record<string, {
6
+ actualPath: string;
7
+ importedName: string;
8
+ }>): {
9
+ filePath: string;
10
+ message: string;
11
+ } | undefined;
5
12
  export declare function resolveComponentKey(nameNode: any, filePath: string, localImports: Record<string, {
6
13
  actualPath: string;
7
14
  importedName: string;
package/dist/parser.js CHANGED
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.t = exports.getRootIdentifier = void 0;
37
37
  exports.unwrapExpression = unwrapExpression;
38
+ exports.resolveOriginError = resolveOriginError;
38
39
  exports.resolveComponentKey = resolveComponentKey;
39
40
  exports.traverse = traverse;
40
41
  exports.objectExpressionToObject = objectExpressionToObject;
@@ -98,6 +99,32 @@ const getRootIdentifier = (node) => {
98
99
  return null;
99
100
  };
100
101
  exports.getRootIdentifier = getRootIdentifier;
102
+ const getNamespaceMember = (node, rootName) => {
103
+ node = unwrapExpression(node);
104
+ if (exports.t.isCallExpression(node)) {
105
+ const callee = node.callee;
106
+ if (callee.type === 'Super' || callee.type === 'Import')
107
+ return null;
108
+ return getNamespaceMember(callee, rootName);
109
+ }
110
+ if (exports.t.isMemberExpression(node)) {
111
+ const object = unwrapExpression(node.object);
112
+ if (exports.t.isIdentifier(object) && object.value === rootName) {
113
+ return exports.t.isIdentifier(node.property) ? node.property.value : null;
114
+ }
115
+ return getNamespaceMember(object, rootName);
116
+ }
117
+ return null;
118
+ };
119
+ function resolveOriginError(node, rootName, localImports) {
120
+ const origin = rootName ? localImports[rootName] : undefined;
121
+ if (!origin)
122
+ return undefined;
123
+ const exportName = origin.importedName === '*' && rootName
124
+ ? (getNamespaceMember(node, rootName) ?? '*')
125
+ : origin.importedName;
126
+ return resolveFileError(origin.actualPath, exportName);
127
+ }
101
128
  function resolveComponentKey(nameNode, filePath, localImports) {
102
129
  if (nameNode?.type === 'Identifier') {
103
130
  const name = nameNode.value;
package/dist/transform.js CHANGED
@@ -193,10 +193,7 @@ const transformSource = async (env) => {
193
193
  localCreateStyles[rootId].type !== 'constant') ||
194
194
  mergedCreateTable[rootId] !== undefined);
195
195
  if (!isPlumeriaStyle) {
196
- const origin = rootId ? localImports[rootId] : undefined;
197
- const failure = origin
198
- ? (0, parser_1.resolveFileError)(origin.actualPath, origin.importedName)
199
- : undefined;
196
+ const failure = (0, parser_1.resolveOriginError)(node, rootId, localImports);
200
197
  if (failure) {
201
198
  throwCompilationError(`Plumeria: ${failure.message} (${path.basename(failure.filePath)})`);
202
199
  }
@@ -2013,21 +2010,24 @@ const transformSource = async (env) => {
2013
2010
  if (node.name.type !== 'Identifier')
2014
2011
  return;
2015
2012
  const attrName = node.name.value;
2016
- if (attrName !== styleProp) {
2017
- let compKey = null;
2018
- for (const [, val] of jsxOpeningElementMap) {
2019
- const found = val.attributes
2020
- .filter((a) => a.type === 'JSXAttribute')
2021
- .find((a) => a.span.start === node.span.start);
2022
- if (found) {
2023
- compKey = val.compKey;
2024
- break;
2025
- }
2013
+ let compKey = null;
2014
+ for (const [, val] of jsxOpeningElementMap) {
2015
+ const found = val.attributes
2016
+ .filter((a) => a.type === 'JSXAttribute')
2017
+ .find((a) => a.span.start === node.span.start);
2018
+ if (found) {
2019
+ compKey = val.compKey;
2020
+ break;
2026
2021
  }
2022
+ }
2023
+ const relayed = compKey
2024
+ ? scannedTables.componentPropsTable?.[compKey]?.[attrName]
2025
+ : undefined;
2026
+ if (attrName !== styleProp || relayed) {
2027
2027
  if (compKey) {
2028
2028
  if (node.value?.type === 'JSXExpressionContainer')
2029
2029
  assertNoStyleArraySpread(node.value.expression);
2030
- const list = scannedTables.componentPropsTable?.[compKey]?.[attrName];
2030
+ const list = relayed;
2031
2031
  if (list &&
2032
2032
  node.value &&
2033
2033
  node.value.type === 'JSXExpressionContainer') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/utils",
3
- "version": "19.1.6",
3
+ "version": "19.1.8",
4
4
  "description": "Plumeria Utils",
5
5
  "author": "Refirst 11",
6
6
  "license": "MIT",