@remix-run/assets 0.4.0 → 0.4.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/lib/scripts/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/lib/scripts/compiler.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { resolveModule, resolverExtensionAlias, resolverExtensions, supportedScr
12
12
  import { createModuleStore } from "../module-store.js";
13
13
  import { createTsconfigTransformOptionsResolver, transformModule } from "./transform.js";
14
14
  import { ResolverFactory } from 'oxc-resolver';
15
+ import { isBareImportSpecifier } from "./specifiers.js";
15
16
  const supportedScriptExtensionSet = new Set(supportedScriptExtensions);
16
17
  const preloadConcurrency = Math.max(1, Math.min(8, os.availableParallelism() - 1));
17
18
  export function createScriptCompiler(options) {
@@ -419,15 +420,6 @@ function resolveActualPath(identityPath) {
419
420
  throw error;
420
421
  }
421
422
  }
422
- function isBareImportSpecifier(specifier) {
423
- return (!specifier.startsWith('./') &&
424
- !specifier.startsWith('../') &&
425
- !specifier.startsWith('/') &&
426
- !specifier.startsWith('file:') &&
427
- !specifier.startsWith('data:') &&
428
- !specifier.startsWith('http://') &&
429
- !specifier.startsWith('https://'));
430
- }
431
423
  function isNoEntityError(error) {
432
424
  return (error instanceof Error &&
433
425
  'code' in error &&
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/lib/scripts/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAMnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAM1E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,KAAK,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAElF,eAAO,MAAM,sBAAsB;;;;CAIC,CAAA;AAEpC,eAAO,MAAM,kBAAkB,UAAiD,CAAA;AAChF,eAAO,MAAM,yBAAyB,UAAiD,CAAA;AAGvF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAYD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,cAAc,CAAA;CACzB,GAAG,CACA;IACE,EAAE,EAAE,IAAI,CAAA;IACR,KAAK,EAAE,cAAc,CAAA;CACtB,GACD;IACE,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,2BAA2B,CAAA;CACnC,CACJ,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAA;IACxC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IACzC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAA;IACnE,eAAe,EAAE,eAAe,CAAA;IAChC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAA;AAaD,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,iBAAiB,EAC9B,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC,CA4IxB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/lib/scripts/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAMnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAM1E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAG9C,KAAK,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAElF,eAAO,MAAM,sBAAsB;;;;CAIC,CAAA;AAEpC,eAAO,MAAM,kBAAkB,UAAiD,CAAA;AAChF,eAAO,MAAM,yBAAyB,UAAiD,CAAA;AAGvF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAYD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,cAAc,CAAA;CACzB,GAAG,CACA;IACE,EAAE,EAAE,IAAI,CAAA;IACR,KAAK,EAAE,cAAc,CAAA;CACtB,GACD;IACE,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,2BAA2B,CAAA;CACnC,CACJ,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAA;IACxC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IACzC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAA;IACnE,eAAe,EAAE,eAAe,CAAA;IAChC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAA;AAkBD,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,iBAAiB,EAC9B,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC,CA+IxB"}
@@ -3,6 +3,7 @@ import * as path from 'node:path';
3
3
  import { createAssetServerCompilationError, isAssetServerCompilationError, } from "../compilation-error.js";
4
4
  import { getInjectedPackageNameForSpecifier, getInjectedPackageImporterPath, restoreAuthoredInjectedPackageSpecifier, } from "../injected-packages.js";
5
5
  import { normalizeFilePath } from "../paths.js";
6
+ import { isBareImportSpecifier } from "./specifiers.js";
6
7
  export const resolverExtensionAlias = {
7
8
  '.js': ['.js', '.ts', '.tsx', '.jsx'],
8
9
  '.jsx': ['.jsx', '.tsx'],
@@ -18,7 +19,10 @@ export async function resolveModule(record, transformed, args) {
18
19
  try {
19
20
  resolvedImports =
20
21
  transformed.unresolvedImports.length > 0
21
- ? await batchResolveSpecifiers(getUniqueSpecifiers(transformed.unresolvedImports), transformed.identityPath, args.resolverFactory)
22
+ ? await batchResolveSpecifiers(getUniqueSpecifiers(transformed.unresolvedImports), {
23
+ identityPath: transformed.identityPath,
24
+ resolvedPath: transformed.resolvedPath,
25
+ }, args.resolverFactory)
22
26
  : new Map();
23
27
  }
24
28
  catch (error) {
@@ -180,13 +184,13 @@ function getTrackedRelativeImportResolution(importerDir, specifier, isWatchIgnor
180
184
  function resolveCandidateBasePath(importerDir, specifier) {
181
185
  return normalizeFilePath(path.resolve(importerDir, specifier));
182
186
  }
183
- async function batchResolveSpecifiers(specifiers, importerPath, resolverFactory) {
187
+ async function batchResolveSpecifiers(specifiers, importer, resolverFactory) {
184
188
  let resolvedBySpecifier = new Map();
185
189
  if (specifiers.length === 0)
186
190
  return resolvedBySpecifier;
187
191
  try {
188
192
  for (let specifier of specifiers) {
189
- let normalizedResolution = normalizeSpecifierResolution(specifier, importerPath);
193
+ let normalizedResolution = normalizeSpecifierResolution(specifier, importer);
190
194
  let resolutionResult = await resolverFactory.resolveFileAsync(normalizedResolution.importerPath, normalizedResolution.specifier);
191
195
  if (resolutionResult.error) {
192
196
  throw createAssetServerCompilationError(normalizedResolution.importerPath === getInjectedPackageImporterPath()
@@ -211,7 +215,7 @@ async function batchResolveSpecifiers(specifiers, importerPath, resolverFactory)
211
215
  if (isAssetServerCompilationError(error) && error.code === 'IMPORT_RESOLUTION_FAILED') {
212
216
  throw error;
213
217
  }
214
- throw createAssetServerCompilationError(`Failed to resolve imports in ${importerPath}. ${formatUnknownError(error)}`, {
218
+ throw createAssetServerCompilationError(`Failed to resolve imports in ${importer.identityPath}. ${formatUnknownError(error)}`, {
215
219
  cause: error,
216
220
  code: 'IMPORT_RESOLUTION_FAILED',
217
221
  });
@@ -224,11 +228,11 @@ function getUniqueSpecifiers(unresolvedImports) {
224
228
  function formatUnknownError(error) {
225
229
  return error instanceof Error ? error.message : String(error);
226
230
  }
227
- function normalizeSpecifierResolution(specifier, importerPath) {
231
+ function normalizeSpecifierResolution(specifier, importer) {
228
232
  let authoredInjectedPackageSpecifier = restoreAuthoredInjectedPackageSpecifier(specifier);
229
233
  if (authoredInjectedPackageSpecifier) {
230
234
  return {
231
- importerPath,
235
+ importerPath: getSpecifierImporterPath(authoredInjectedPackageSpecifier, importer),
232
236
  specifier: authoredInjectedPackageSpecifier,
233
237
  };
234
238
  }
@@ -239,10 +243,13 @@ function normalizeSpecifierResolution(specifier, importerPath) {
239
243
  };
240
244
  }
241
245
  return {
242
- importerPath,
246
+ importerPath: getSpecifierImporterPath(specifier, importer),
243
247
  specifier,
244
248
  };
245
249
  }
250
+ function getSpecifierImporterPath(specifier, importer) {
251
+ return isBareImportSpecifier(specifier) ? importer.resolvedPath : importer.identityPath;
252
+ }
246
253
  function getDisplayImportSpecifier(specifier) {
247
254
  return restoreAuthoredInjectedPackageSpecifier(specifier) ?? specifier;
248
255
  }
@@ -0,0 +1,2 @@
1
+ export declare function isBareImportSpecifier(specifier: string): boolean;
2
+ //# sourceMappingURL=specifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specifiers.d.ts","sourceRoot":"","sources":["../../../src/lib/scripts/specifiers.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAUhE"}
@@ -0,0 +1,9 @@
1
+ export function isBareImportSpecifier(specifier) {
2
+ return (!specifier.startsWith('./') &&
3
+ !specifier.startsWith('../') &&
4
+ !specifier.startsWith('/') &&
5
+ !specifier.startsWith('file:') &&
6
+ !specifier.startsWith('data:') &&
7
+ !specifier.startsWith('http://') &&
8
+ !specifier.startsWith('https://'));
9
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/lib/scripts/transform.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAS,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAS/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAO1E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,KAAK,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AA4BlF,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;CACtC,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,cAAc,CAAA;CACzB,GAAG,CACA;IACE,EAAE,EAAE,IAAI,CAAA;IACR,KAAK,EAAE,iBAAiB,CAAA;CACzB,GACD;IACE,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,2BAA2B,CAAA;CACnC,CACJ,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAED,KAAK,gCAAgC,GAAG,UAAU,CAAC,OAAO,sCAAsC,CAAC,CAAA;AAEjG,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACrC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAChC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACtD,MAAM,EAAE,cAAc,CAAA;IACtB,oBAAoB,EAAE,UAAU,GAAG,KAAK,CAAA;IACxC,UAAU,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAA;IACxC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACnC,gCAAgC,EAAE,gCAAgC,CAAA;CACnE,CAAA;AAED,wBAAgB,sCAAsC;;;EAkCrD;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,eAAe,CAAC,CA6H1B"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/lib/scripts/transform.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAS,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAS/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAO1E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAGlD,KAAK,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AA4BlF,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;CACtC,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,cAAc,CAAA;CACzB,GAAG,CACA;IACE,EAAE,EAAE,IAAI,CAAA;IACR,KAAK,EAAE,iBAAiB,CAAA;CACzB,GACD;IACE,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,2BAA2B,CAAA;CACnC,CACJ,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAED,KAAK,gCAAgC,GAAG,UAAU,CAAC,OAAO,sCAAsC,CAAC,CAAA;AAEjG,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACrC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAChC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACtD,MAAM,EAAE,cAAc,CAAA;IACtB,oBAAoB,EAAE,UAAU,GAAG,KAAK,CAAA;IACxC,UAAU,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAA;IACxC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACnC,gCAAgC,EAAE,gCAAgC,CAAA;CACnE,CAAA;AAED,wBAAgB,sCAAsC;;;EAkCrD;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,eAAe,CAAC,CA6H1B"}
@@ -13,6 +13,7 @@ import { generateFingerprint } from "../fingerprint.js";
13
13
  import { maskAuthoredInjectedPackageSpecifier, mayContainInjectedPackageSpecifier, restoreAuthoredInjectedPackageSpecifier, } from "../injected-packages.js";
14
14
  import { normalizeFilePath } from "../paths.js";
15
15
  import { composeSourceMaps, rewriteSourceMapSources, stringifySourceMap } from "../source-maps.js";
16
+ import { isBareImportSpecifier } from "./specifiers.js";
16
17
  const scriptModuleTypes = [
17
18
  { extension: '.js', lang: 'js' },
18
19
  { extension: '.jsx', lang: 'jsx' },
@@ -143,7 +144,7 @@ export async function transformModule(record, args) {
143
144
  identityPath: record.identityPath,
144
145
  importerDir: path.dirname(record.identityPath),
145
146
  packageSpecifiers: analysis.unresolvedImports
146
- .filter((unresolved) => isPackageImportSpecifier(unresolved.specifier))
147
+ .filter((unresolved) => isBareImportSpecifier(unresolved.specifier))
147
148
  .map((unresolved) => unresolved.specifier),
148
149
  rawCode: analysis.rawCode,
149
150
  resolvedPath,
@@ -177,9 +178,6 @@ function findNearestTsconfigPath(directory) {
177
178
  currentDirectory = parentDirectory;
178
179
  }
179
180
  }
180
- function isPackageImportSpecifier(specifier) {
181
- return !specifier.startsWith('./') && !specifier.startsWith('../') && !specifier.startsWith('/');
182
- }
183
181
  async function analyzeModuleSource(sourceText, resolvedPath, transformOptions, options) {
184
182
  let maskedSourceText = maskAuthoredInjectedPackageImports(sourceText, resolvedPath);
185
183
  let transformResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remix-run/assets",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Fetch-based server for compiling browser JS/TS and CSS assets on demand",
5
5
  "author": "Michael Jackson <mjijackson@gmail.com>",
6
6
  "license": "MIT",
@@ -38,17 +38,17 @@
38
38
  "oxc-transform": "^0.121.0",
39
39
  "picomatch": "^4.0.4",
40
40
  "source-map-js": "^1.2.1",
41
- "@remix-run/file-storage": "0.13.4",
42
- "@remix-run/headers": "0.20.0",
43
- "@remix-run/mime": "0.4.1",
44
- "@remix-run/route-pattern": "0.21.0"
41
+ "@remix-run/file-storage": "0.13.5",
42
+ "@remix-run/headers": "0.21.0",
43
+ "@remix-run/route-pattern": "0.21.1",
44
+ "@remix-run/mime": "0.4.1"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^24.6.0",
48
48
  "@types/picomatch": "^4.0.3",
49
49
  "@typescript/native-preview": "7.0.0-dev.20251125.1",
50
- "@remix-run/assert": "0.2.0",
51
- "@remix-run/test": "0.4.0"
50
+ "@remix-run/assert": "0.2.1",
51
+ "@remix-run/test": "0.4.1"
52
52
  },
53
53
  "keywords": [
54
54
  "remix",
@@ -34,6 +34,7 @@ import { createTsconfigTransformOptionsResolver, transformModule } from './trans
34
34
  import type { ResolveModuleResult, TransformArgs, TransformedModule } from './transform.ts'
35
35
  import { ResolverFactory } from 'oxc-resolver'
36
36
  import type { EmittedAsset, EmittedModule } from './emit.ts'
37
+ import { isBareImportSpecifier } from './specifiers.ts'
37
38
 
38
39
  type ScriptRecord = ModuleRecord<TransformedModule, ResolvedModule, EmittedModule>
39
40
  type ScriptStore = ModuleStore<TransformedModule, ResolvedModule, EmittedModule>
@@ -615,18 +616,6 @@ function resolveActualPath(identityPath: string): string | null {
615
616
  }
616
617
  }
617
618
 
618
- function isBareImportSpecifier(specifier: string): boolean {
619
- return (
620
- !specifier.startsWith('./') &&
621
- !specifier.startsWith('../') &&
622
- !specifier.startsWith('/') &&
623
- !specifier.startsWith('file:') &&
624
- !specifier.startsWith('data:') &&
625
- !specifier.startsWith('http://') &&
626
- !specifier.startsWith('https://')
627
- )
628
- }
629
-
630
619
  function isNoEntityError(
631
620
  error: unknown,
632
621
  ): error is NodeJS.ErrnoException & { code: 'ENOENT' | 'ENOTDIR' } {
@@ -17,6 +17,7 @@ import { normalizeFilePath } from '../paths.ts'
17
17
  import type { CompiledRoutes } from '../routes.ts'
18
18
  import type { ResolveModuleResult, TransformedModule } from './transform.ts'
19
19
  import type { EmittedModule } from './emit.ts'
20
+ import { isBareImportSpecifier } from './specifiers.ts'
20
21
 
21
22
  type ScriptRecord = ModuleRecord<TransformedModule, ResolvedModule, EmittedModule>
22
23
 
@@ -91,6 +92,11 @@ type NormalizedSpecifierResolution = {
91
92
  specifier: string
92
93
  }
93
94
 
95
+ type SpecifierResolutionImporter = {
96
+ identityPath: string
97
+ resolvedPath: string
98
+ }
99
+
94
100
  export async function resolveModule(
95
101
  record: ScriptRecord,
96
102
  transformed: TransformedModule,
@@ -105,7 +111,10 @@ export async function resolveModule(
105
111
  transformed.unresolvedImports.length > 0
106
112
  ? await batchResolveSpecifiers(
107
113
  getUniqueSpecifiers(transformed.unresolvedImports),
108
- transformed.identityPath,
114
+ {
115
+ identityPath: transformed.identityPath,
116
+ resolvedPath: transformed.resolvedPath,
117
+ },
109
118
  args.resolverFactory,
110
119
  )
111
120
  : new Map<string, ResolvedSpec>()
@@ -358,7 +367,7 @@ function resolveCandidateBasePath(importerDir: string, specifier: string): strin
358
367
 
359
368
  async function batchResolveSpecifiers(
360
369
  specifiers: string[],
361
- importerPath: string,
370
+ importer: SpecifierResolutionImporter,
362
371
  resolverFactory: ResolveArgs['resolverFactory'],
363
372
  ): Promise<Map<string, ResolvedSpec>> {
364
373
  let resolvedBySpecifier = new Map<string, ResolvedSpec>()
@@ -366,7 +375,7 @@ async function batchResolveSpecifiers(
366
375
 
367
376
  try {
368
377
  for (let specifier of specifiers) {
369
- let normalizedResolution = normalizeSpecifierResolution(specifier, importerPath)
378
+ let normalizedResolution = normalizeSpecifierResolution(specifier, importer)
370
379
  let resolutionResult = await resolverFactory.resolveFileAsync(
371
380
  normalizedResolution.importerPath,
372
381
  normalizedResolution.specifier,
@@ -400,7 +409,7 @@ async function batchResolveSpecifiers(
400
409
  }
401
410
 
402
411
  throw createAssetServerCompilationError(
403
- `Failed to resolve imports in ${importerPath}. ${formatUnknownError(error)}`,
412
+ `Failed to resolve imports in ${importer.identityPath}. ${formatUnknownError(error)}`,
404
413
  {
405
414
  cause: error,
406
415
  code: 'IMPORT_RESOLUTION_FAILED',
@@ -421,12 +430,12 @@ function formatUnknownError(error: unknown): string {
421
430
 
422
431
  function normalizeSpecifierResolution(
423
432
  specifier: string,
424
- importerPath: string,
433
+ importer: SpecifierResolutionImporter,
425
434
  ): NormalizedSpecifierResolution {
426
435
  let authoredInjectedPackageSpecifier = restoreAuthoredInjectedPackageSpecifier(specifier)
427
436
  if (authoredInjectedPackageSpecifier) {
428
437
  return {
429
- importerPath,
438
+ importerPath: getSpecifierImporterPath(authoredInjectedPackageSpecifier, importer),
430
439
  specifier: authoredInjectedPackageSpecifier,
431
440
  }
432
441
  }
@@ -439,11 +448,18 @@ function normalizeSpecifierResolution(
439
448
  }
440
449
 
441
450
  return {
442
- importerPath,
451
+ importerPath: getSpecifierImporterPath(specifier, importer),
443
452
  specifier,
444
453
  }
445
454
  }
446
455
 
456
+ function getSpecifierImporterPath(
457
+ specifier: string,
458
+ importer: SpecifierResolutionImporter,
459
+ ): string {
460
+ return isBareImportSpecifier(specifier) ? importer.resolvedPath : importer.identityPath
461
+ }
462
+
447
463
  function getDisplayImportSpecifier(specifier: string): string {
448
464
  return restoreAuthoredInjectedPackageSpecifier(specifier) ?? specifier
449
465
  }
@@ -0,0 +1,11 @@
1
+ export function isBareImportSpecifier(specifier: string): boolean {
2
+ return (
3
+ !specifier.startsWith('./') &&
4
+ !specifier.startsWith('../') &&
5
+ !specifier.startsWith('/') &&
6
+ !specifier.startsWith('file:') &&
7
+ !specifier.startsWith('data:') &&
8
+ !specifier.startsWith('http://') &&
9
+ !specifier.startsWith('https://')
10
+ )
11
+ }
@@ -30,6 +30,7 @@ import { composeSourceMaps, rewriteSourceMapSources, stringifySourceMap } from '
30
30
  import type { EmittedModule } from './emit.ts'
31
31
  import type { ResolvedScriptTarget } from '../target.ts'
32
32
  import type { ResolvedModule } from './resolve.ts'
33
+ import { isBareImportSpecifier } from './specifiers.ts'
33
34
 
34
35
  type ScriptRecord = ModuleRecord<TransformedModule, ResolvedModule, EmittedModule>
35
36
 
@@ -263,7 +264,7 @@ export async function transformModule(
263
264
  identityPath: record.identityPath,
264
265
  importerDir: path.dirname(record.identityPath),
265
266
  packageSpecifiers: analysis.unresolvedImports
266
- .filter((unresolved) => isPackageImportSpecifier(unresolved.specifier))
267
+ .filter((unresolved) => isBareImportSpecifier(unresolved.specifier))
267
268
  .map((unresolved) => unresolved.specifier),
268
269
  rawCode: analysis.rawCode,
269
270
  resolvedPath,
@@ -299,10 +300,6 @@ function findNearestTsconfigPath(directory: string): string | null {
299
300
  }
300
301
  }
301
302
 
302
- function isPackageImportSpecifier(specifier: string): boolean {
303
- return !specifier.startsWith('./') && !specifier.startsWith('../') && !specifier.startsWith('/')
304
- }
305
-
306
303
  async function analyzeModuleSource(
307
304
  sourceText: string,
308
305
  resolvedPath: string,