@remix-run/assets 0.5.0 → 0.7.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.
Files changed (84) hide show
  1. package/README.md +185 -104
  2. package/dist/assets.d.ts +4 -1
  3. package/dist/assets.d.ts.map +1 -1
  4. package/dist/lib/access.d.ts +29 -2
  5. package/dist/lib/access.d.ts.map +1 -1
  6. package/dist/lib/access.js +52 -26
  7. package/dist/lib/asset-server.d.ts +61 -25
  8. package/dist/lib/asset-server.d.ts.map +1 -1
  9. package/dist/lib/asset-server.js +127 -55
  10. package/dist/lib/compilation-error.d.ts +1 -1
  11. package/dist/lib/compilation-error.d.ts.map +1 -1
  12. package/dist/lib/files/compiler.d.ts +1 -1
  13. package/dist/lib/files/compiler.d.ts.map +1 -1
  14. package/dist/lib/files/compiler.js +28 -31
  15. package/dist/lib/files/config.d.ts +6 -0
  16. package/dist/lib/files/config.d.ts.map +1 -1
  17. package/dist/lib/files/config.js +9 -0
  18. package/dist/lib/fingerprint.d.ts +0 -4
  19. package/dist/lib/fingerprint.d.ts.map +1 -1
  20. package/dist/lib/fingerprint.js +0 -4
  21. package/dist/lib/hmr.d.ts +7 -0
  22. package/dist/lib/hmr.d.ts.map +1 -1
  23. package/dist/lib/hmr.js +198 -25
  24. package/dist/lib/injected-packages.d.ts +3 -2
  25. package/dist/lib/injected-packages.d.ts.map +1 -1
  26. package/dist/lib/injected-packages.js +11 -8
  27. package/dist/lib/inspection.d.ts +39 -0
  28. package/dist/lib/inspection.d.ts.map +1 -0
  29. package/dist/lib/inspection.js +160 -0
  30. package/dist/lib/routes.d.ts +12 -3
  31. package/dist/lib/routes.d.ts.map +1 -1
  32. package/dist/lib/routes.js +124 -80
  33. package/dist/lib/scripts/compiler.d.ts +8 -2
  34. package/dist/lib/scripts/compiler.d.ts.map +1 -1
  35. package/dist/lib/scripts/compiler.js +188 -38
  36. package/dist/lib/scripts/emit.d.ts +2 -1
  37. package/dist/lib/scripts/emit.d.ts.map +1 -1
  38. package/dist/lib/scripts/emit.js +25 -16
  39. package/dist/lib/scripts/resolve.d.ts +7 -1
  40. package/dist/lib/scripts/resolve.d.ts.map +1 -1
  41. package/dist/lib/scripts/resolve.js +119 -12
  42. package/dist/lib/scripts/specifiers.d.ts +2 -0
  43. package/dist/lib/scripts/specifiers.d.ts.map +1 -0
  44. package/dist/lib/scripts/specifiers.js +9 -0
  45. package/dist/lib/scripts/transform.d.ts +2 -3
  46. package/dist/lib/scripts/transform.d.ts.map +1 -1
  47. package/dist/lib/scripts/transform.js +4 -18
  48. package/dist/lib/styles/compiler.d.ts +0 -1
  49. package/dist/lib/styles/compiler.d.ts.map +1 -1
  50. package/dist/lib/styles/compiler.js +105 -25
  51. package/dist/lib/styles/emit.d.ts +2 -1
  52. package/dist/lib/styles/emit.d.ts.map +1 -1
  53. package/dist/lib/styles/emit.js +12 -10
  54. package/dist/lib/styles/resolve.d.ts +0 -1
  55. package/dist/lib/styles/resolve.d.ts.map +1 -1
  56. package/dist/lib/styles/resolve.js +8 -9
  57. package/dist/lib/styles/transform.d.ts +0 -2
  58. package/dist/lib/styles/transform.d.ts.map +1 -1
  59. package/dist/lib/styles/transform.js +2 -9
  60. package/dist/lib/virtual-store.d.ts +8 -0
  61. package/dist/lib/virtual-store.d.ts.map +1 -0
  62. package/dist/lib/virtual-store.js +100 -0
  63. package/package.json +6 -6
  64. package/src/assets.ts +9 -1
  65. package/src/lib/access.ts +83 -30
  66. package/src/lib/asset-server.ts +224 -94
  67. package/src/lib/compilation-error.ts +4 -3
  68. package/src/lib/files/compiler.ts +32 -42
  69. package/src/lib/files/config.ts +17 -0
  70. package/src/lib/fingerprint.ts +0 -9
  71. package/src/lib/hmr.ts +210 -26
  72. package/src/lib/injected-packages.ts +16 -10
  73. package/src/lib/inspection.ts +229 -0
  74. package/src/lib/routes.ts +158 -126
  75. package/src/lib/scripts/compiler.ts +240 -54
  76. package/src/lib/scripts/emit.ts +34 -19
  77. package/src/lib/scripts/resolve.ts +175 -13
  78. package/src/lib/scripts/specifiers.ts +11 -0
  79. package/src/lib/scripts/transform.ts +6 -25
  80. package/src/lib/styles/compiler.ts +137 -39
  81. package/src/lib/styles/emit.ts +18 -13
  82. package/src/lib/styles/resolve.ts +8 -10
  83. package/src/lib/styles/transform.ts +2 -12
  84. package/src/lib/virtual-store.ts +124 -0
@@ -1,99 +1,143 @@
1
- import { getRoutePatternCaptures, RoutePattern, } from '@remix-run/route-pattern';
2
- import { createHref } from '@remix-run/route-pattern/href';
3
- import { createMatcher } from '@remix-run/route-pattern/match';
4
- import { getRelativeFilePath, isAbsoluteFilePath, normalizeFilePath, normalizePathname, resolveFilePath, } from './paths.js';
5
- function normalizeFilePattern(pattern) {
6
- if (isAbsoluteFilePath(pattern)) {
7
- throw new Error(`File route patterns must be relative to the asset server root.\nPattern: ${pattern}`);
8
- }
9
- return normalizePathname(pattern);
10
- }
11
- export function compileRoutes(basePath, routeConfigs) {
12
- if (routeConfigs.every((routeConfig) => Object.keys(routeConfig.fileMap).length === 0)) {
13
- throw new Error('createAssetServer() requires at least one configured fileMap entry.');
14
- }
15
- let compiledRoutes = routeConfigs.flatMap((routeConfig) => Object.entries(routeConfig.fileMap).map(([urlPattern, filePattern]) => compileRoute({
16
- filePattern,
17
- urlPattern,
18
- }, {
19
- basePath,
20
- rootDir: routeConfig.rootDir,
21
- })));
1
+ import * as fs from 'node:fs';
2
+ import { isAbsoluteFilePath, normalizeFilePath, normalizePathname, resolveFilePath, } from './paths.js';
3
+ export function compileRoutes(basePath, mountConfigs) {
4
+ let compiledMounts = mountConfigs.flatMap((mountConfig) => {
5
+ let configMounts = Object.entries(mountConfig.mounts).map(([urlRoot, fileRoot]) => compileMount(urlRoot, fileRoot, {
6
+ basePath,
7
+ rootDir: mountConfig.rootDir,
8
+ }));
9
+ validateNoOverlappingMounts(configMounts);
10
+ return configMounts;
11
+ });
12
+ validateNoOverlappingUrlRoots(compiledMounts);
22
13
  return {
23
14
  resolveUrlPathname(pathname) {
24
- let normalizedPathname = normalizePathname(pathname);
25
- for (let route of compiledRoutes) {
26
- let match = route.urlMatcher.match(`http://remix.run${normalizedPathname}`);
27
- if (!match)
28
- continue;
29
- let relativeFilePath = decodeURIComponent(createHref(route.filePattern, match.params)).replace(/^\/+/, '');
30
- return resolveFilePath(route.rootDir, relativeFilePath);
31
- }
32
- return null;
15
+ return matchUrlPathname(pathname)?.filePath ?? null;
33
16
  },
17
+ matchUrlPathname,
34
18
  toUrlPathname(filePath) {
35
- let normalizedFilePath = normalizeFilePath(filePath);
36
- for (let route of compiledRoutes) {
37
- let relativeFilePath = getRelativeFilePath(route.rootDir, normalizedFilePath);
38
- let match = route.fileMatcher.match(`http://remix.run/${relativeFilePath}`);
39
- if (!match)
40
- continue;
41
- return normalizePathname(createHref(route.urlPattern, match.params));
42
- }
43
- return null;
19
+ return matchFilePath(filePath)?.urlPathname ?? null;
44
20
  },
21
+ matchFilePath,
45
22
  };
23
+ function matchUrlPathname(pathname) {
24
+ let normalizedPathname = normalizePathname(pathname);
25
+ for (let mount of compiledMounts) {
26
+ let relativePathname = getPathWithinRoot(mount.urlRoot, normalizedPathname);
27
+ if (relativePathname === null)
28
+ continue;
29
+ let filePath = resolveFilePath(mount.fileRoot, decodeURIComponent(relativePathname));
30
+ if (getPathWithinRoot(mount.fileRoot, filePath) === null)
31
+ return null;
32
+ return {
33
+ filePath,
34
+ fileRoot: mount.fileRootValue,
35
+ urlPathname: normalizedPathname,
36
+ urlRoot: mount.urlRoot,
37
+ };
38
+ }
39
+ return null;
40
+ }
41
+ function matchFilePath(filePath) {
42
+ let normalizedFilePath = normalizeFilePath(filePath);
43
+ for (let mount of compiledMounts) {
44
+ let relativeFilePath = getPathWithinRoot(mount.fileRoot, normalizedFilePath);
45
+ if (relativeFilePath === null)
46
+ continue;
47
+ let encodedFilePath = relativeFilePath.split('/').map(encodeURIComponent).join('/');
48
+ return {
49
+ filePath: normalizedFilePath,
50
+ fileRoot: mount.fileRootValue,
51
+ urlPathname: joinUrlPath(mount.urlRoot, encodedFilePath),
52
+ urlRoot: mount.urlRoot,
53
+ };
54
+ }
55
+ return null;
56
+ }
46
57
  }
47
- function compileRoute(route, options) {
48
- let basePath = normalizePathname(options.basePath).replace(/\/+$/, '') || '/';
49
- let relativeUrlPattern = normalizePathname(route.urlPattern);
50
- let urlPatternSource = normalizePathname(`${basePath.replace(/\/+$/, '')}/${relativeUrlPattern.replace(/^\/+/, '')}`);
51
- let filePatternSource = normalizeFilePattern(route.filePattern);
52
- let urlPattern = RoutePattern.parse(urlPatternSource);
53
- let filePattern = RoutePattern.parse(filePatternSource);
54
- validateNoUnnamedWildcards(urlPattern, 'URL');
55
- validateNoUnnamedWildcards(filePattern, 'File');
56
- validateRoutePatterns(urlPattern, filePattern);
58
+ function compileMount(urlRoot, fileRoot, options) {
59
+ if (isAbsoluteFilePath(fileRoot)) {
60
+ throw new TypeError(`mounts values must be relative to rootDir. Received "${fileRoot}".`);
61
+ }
57
62
  return {
58
- rootDir: normalizeFilePath(options.rootDir).replace(/\/+$/, ''),
59
- urlPattern,
60
- urlMatcher: createMatcher(urlPattern),
61
- filePattern,
62
- fileMatcher: createMatcher(stripDotSegments(filePatternSource)),
63
+ fileRoot: resolveMountFileRoot(options.rootDir, fileRoot),
64
+ fileRootValue: fileRoot,
65
+ urlRoot: joinUrlPath(normalizeMountUrlRoot(options.basePath), normalizeMountUrlRoot(urlRoot)),
66
+ urlRootKey: urlRoot,
63
67
  };
64
68
  }
65
- function stripDotSegments(pattern) {
66
- let segments = [];
67
- for (let segment of pattern.split('/')) {
68
- if (segment === '' || segment === '.')
69
- continue;
70
- if (segment === '..') {
71
- segments.pop();
72
- continue;
73
- }
74
- segments.push(segment);
69
+ function normalizeMountUrlRoot(urlRoot) {
70
+ let normalizedRoot = normalizePathname(urlRoot).replace(/\/+$/, '') || '/';
71
+ let url = new URL(normalizedRoot, 'http://remix.run');
72
+ if (url.search !== '' ||
73
+ url.hash !== '' ||
74
+ getUrlPathSegmentCount(url.pathname) !== getUrlPathSegmentCount(normalizedRoot)) {
75
+ throw new TypeError(`mounts keys must be URL pathnames without query strings, fragments, or encoded dot segments. Received "${urlRoot}".`);
75
76
  }
76
- return segments.join('/');
77
+ return url.pathname.replace(/\/+$/, '') || '/';
77
78
  }
78
- function validateRoutePatterns(urlPattern, filePattern) {
79
- let urlCaptures = getPathnameCaptures(urlPattern);
80
- let fileCaptures = getPathnameCaptures(filePattern);
81
- if (urlCaptures.length !== fileCaptures.length) {
82
- throw new Error(`Route patterns must have matching capture structure.\nURL: ${urlPattern}\nFile: ${filePattern}`);
79
+ export function resolveMountFileRoot(rootDir, fileRoot) {
80
+ let resolvedRoot = resolveFilePath(rootDir, fileRoot);
81
+ try {
82
+ resolvedRoot = normalizeFilePath(fs.realpathSync(resolvedRoot));
83
+ }
84
+ catch (error) {
85
+ if (!isUnresolvedPathError(error, resolvedRoot))
86
+ throw error;
83
87
  }
84
- for (let i = 0; i < urlCaptures.length; i++) {
85
- let urlCapture = urlCaptures[i];
86
- let fileCapture = fileCaptures[i];
87
- if (urlCapture.type !== fileCapture.type || urlCapture.name !== fileCapture.name) {
88
- throw new Error(`Route patterns must have matching capture structure.\nURL: ${urlPattern}\nFile: ${filePattern}`);
88
+ return resolvedRoot.replace(/\/+$/, '') || '/';
89
+ }
90
+ function getUrlPathSegmentCount(pathname) {
91
+ return pathname.split('/').filter((segment) => segment !== '').length;
92
+ }
93
+ function joinUrlPath(root, path) {
94
+ if (path === '' || path === '/')
95
+ return normalizeMountUrlRoot(root);
96
+ return normalizePathname(`${root.replace(/\/+$/, '')}/${path.replace(/^\/+/, '')}`);
97
+ }
98
+ function getPathWithinRoot(root, value) {
99
+ if (value === root)
100
+ return '';
101
+ if (root === '/')
102
+ return value.slice(1);
103
+ if (!value.startsWith(`${root}/`))
104
+ return null;
105
+ return value.slice(root.length + 1);
106
+ }
107
+ function validateNoOverlappingMounts(mounts) {
108
+ for (let index = 0; index < mounts.length; index++) {
109
+ let mount = mounts[index];
110
+ for (let otherIndex = index + 1; otherIndex < mounts.length; otherIndex++) {
111
+ let otherMount = mounts[otherIndex];
112
+ if (rootsOverlap(mount.fileRoot, otherMount.fileRoot)) {
113
+ throw new TypeError(`mounts values must not overlap. Received "${mount.fileRootValue}" and "${otherMount.fileRootValue}", resolving to "${mount.fileRoot}" and "${otherMount.fileRoot}".`);
114
+ }
89
115
  }
90
116
  }
91
117
  }
92
- function validateNoUnnamedWildcards(pattern, label) {
93
- if (getRoutePatternCaptures(pattern).some((capture) => capture.part === 'pathname' && capture.type === '*' && capture.name === '*')) {
94
- throw new Error(`${label} route patterns must use named wildcards for reversible mapping.\nPattern: ${pattern}`);
118
+ function validateNoOverlappingUrlRoots(mounts) {
119
+ for (let index = 0; index < mounts.length; index++) {
120
+ let mount = mounts[index];
121
+ for (let otherIndex = index + 1; otherIndex < mounts.length; otherIndex++) {
122
+ let otherMount = mounts[otherIndex];
123
+ if (!rootsOverlap(mount.urlRoot, otherMount.urlRoot))
124
+ continue;
125
+ throw new TypeError(`mounts keys must not overlap. Received "${mount.urlRootKey}" and "${otherMount.urlRootKey}".`);
126
+ }
95
127
  }
96
128
  }
97
- function getPathnameCaptures(pattern) {
98
- return getRoutePatternCaptures(pattern).filter((capture) => capture.part === 'pathname');
129
+ function rootsOverlap(root, otherRoot) {
130
+ return (root === otherRoot ||
131
+ root === '/' ||
132
+ otherRoot === '/' ||
133
+ root.startsWith(`${otherRoot}/`) ||
134
+ otherRoot.startsWith(`${root}/`));
135
+ }
136
+ function isUnresolvedPathError(error, filePath) {
137
+ // Windows reports UNKNOWN rather than ENOENT when a UNC share cannot be reached.
138
+ return (error instanceof Error &&
139
+ 'code' in error &&
140
+ (error.code === 'ENOENT' ||
141
+ error.code === 'ENOTDIR' ||
142
+ (error.code === 'UNKNOWN' && filePath.startsWith('//'))));
99
143
  }
@@ -8,6 +8,10 @@ type ScriptCompileResult = {
8
8
  fingerprint: string | null;
9
9
  sourceMap: EmittedAsset | null;
10
10
  };
11
+ export type ScriptImportMap = {
12
+ imports: Record<string, string>;
13
+ scopes?: Record<string, Record<string, string>>;
14
+ };
11
15
  type ScriptGetResult = {
12
16
  script: ScriptCompileResult;
13
17
  type: 'script';
@@ -21,7 +25,6 @@ type ScriptGetOptions = {
21
25
  requestedFingerprint: string | null;
22
26
  };
23
27
  type ScriptCompilerOptions = {
24
- buildId?: string;
25
28
  define?: Record<string, string>;
26
29
  external: string[];
27
30
  fingerprintAssets: boolean;
@@ -51,7 +54,9 @@ type ScriptCompilerOptions = {
51
54
  type ScriptCompiler = {
52
55
  getScript(filePath: string, options: ScriptGetOptions): Promise<ScriptGetResult>;
53
56
  getPreloadLayers(filePath: string | readonly string[]): Promise<string[][]>;
57
+ getImportMap(filePath: string | readonly string[]): Promise<ScriptImportMap>;
54
58
  getHref(filePath: string): Promise<string>;
59
+ resolveSpecifierFromRoot(specifier: string): Promise<string>;
55
60
  classifyHmrFileEvent(filePath: string, event: ModuleWatchEvent): Promise<ScriptHmrUpdate[]>;
56
61
  invalidateFileEvent(filePath: string, event: ModuleWatchEvent): void;
57
62
  parseRequestPathname(pathname: string): ParsedRequestPathname | null;
@@ -69,7 +74,8 @@ export type ScriptHmrUpdate = {
69
74
  timestamp: number;
70
75
  } | {
71
76
  accepted: true;
72
- acceptedPath: string;
77
+ acceptedFilePath: string;
78
+ acceptedUrlPathname: string;
73
79
  filePath: string;
74
80
  path: string;
75
81
  timestamp: number;
@@ -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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"}