astro 5.16.13 → 5.16.15

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/components/Font.astro +4 -4
  2. package/dist/assets/fonts/config.d.ts +19 -236
  3. package/dist/assets/fonts/config.js +7 -23
  4. package/dist/assets/fonts/constants.d.ts +0 -1
  5. package/dist/assets/fonts/constants.js +0 -2
  6. package/dist/assets/fonts/core/collect-component-data.d.ts +9 -0
  7. package/dist/assets/fonts/core/collect-component-data.js +47 -0
  8. package/dist/assets/fonts/core/collect-font-assets-from-faces.d.ts +17 -0
  9. package/dist/assets/fonts/core/collect-font-assets-from-faces.js +71 -0
  10. package/dist/assets/fonts/core/collect-font-data.d.ts +4 -0
  11. package/dist/assets/fonts/core/collect-font-data.js +23 -0
  12. package/dist/assets/fonts/core/compute-font-families-assets.d.ts +20 -0
  13. package/dist/assets/fonts/core/compute-font-families-assets.js +67 -0
  14. package/dist/assets/fonts/core/filter-and-transform-font-faces.d.ts +20 -0
  15. package/dist/assets/fonts/core/filter-and-transform-font-faces.js +39 -0
  16. package/dist/assets/fonts/core/get-or-create-font-family-assets.d.ts +8 -0
  17. package/dist/assets/fonts/core/get-or-create-font-family-assets.js +34 -0
  18. package/dist/assets/fonts/core/optimize-fallbacks.d.ts +2 -3
  19. package/dist/assets/fonts/core/optimize-fallbacks.js +2 -3
  20. package/dist/assets/fonts/core/resolve-family.d.ts +6 -0
  21. package/dist/assets/fonts/core/resolve-family.js +23 -0
  22. package/dist/assets/fonts/definitions.d.ts +6 -28
  23. package/dist/assets/fonts/infra/build-font-file-id-generator.d.ts +13 -0
  24. package/dist/assets/fonts/infra/{build-url-proxy-hash-resolver.js → build-font-file-id-generator.js} +3 -6
  25. package/dist/assets/fonts/infra/build-url-resolver.d.ts +1 -1
  26. package/dist/assets/fonts/infra/build-url-resolver.js +4 -4
  27. package/dist/assets/fonts/infra/cached-font-fetcher.d.ts +1 -1
  28. package/dist/assets/fonts/infra/cached-font-fetcher.js +11 -3
  29. package/dist/assets/fonts/infra/capsize-font-metrics-resolver.d.ts +2 -2
  30. package/dist/assets/fonts/infra/dev-font-file-id-generator.d.ts +16 -0
  31. package/dist/assets/fonts/infra/{dev-url-proxy-hash-resolver.js → dev-font-file-id-generator.js} +8 -8
  32. package/dist/assets/fonts/infra/dev-url-resolver.d.ts +1 -1
  33. package/dist/assets/fonts/infra/dev-url-resolver.js +2 -2
  34. package/dist/assets/fonts/infra/fs-font-file-content-resolver.d.ts +10 -0
  35. package/dist/assets/fonts/infra/fs-font-file-content-resolver.js +21 -0
  36. package/dist/assets/fonts/infra/minifiable-css-renderer.d.ts +2 -1
  37. package/dist/assets/fonts/infra/{font-type-extractor.d.ts → node-font-type-extractor.d.ts} +1 -1
  38. package/dist/assets/fonts/infra/{font-type-extractor.js → node-font-type-extractor.js} +2 -2
  39. package/dist/assets/fonts/infra/unifont-font-resolver.d.ts +5 -3
  40. package/dist/assets/fonts/infra/unifont-font-resolver.js +14 -17
  41. package/dist/assets/fonts/providers/index.d.ts +6 -1
  42. package/dist/assets/fonts/providers/index.js +9 -1
  43. package/dist/assets/fonts/providers/local.d.ts +41 -8
  44. package/dist/assets/fonts/providers/local.js +65 -48
  45. package/dist/assets/fonts/runtime/client.d.ts +1 -1
  46. package/dist/assets/fonts/runtime/client.js +1 -1
  47. package/dist/assets/fonts/runtime/server.d.ts +1 -1
  48. package/dist/assets/fonts/runtime/server.js +1 -1
  49. package/dist/assets/fonts/types.d.ts +61 -110
  50. package/dist/assets/fonts/utils.d.ts +1 -7
  51. package/dist/assets/fonts/utils.js +1 -15
  52. package/dist/assets/fonts/vite-plugin-fonts.js +149 -141
  53. package/dist/cli/add/index.js +39 -0
  54. package/dist/cli/infra/build-time-astro-version-provider.js +1 -1
  55. package/dist/config/index.d.ts +1 -2
  56. package/dist/content/content-layer.js +3 -3
  57. package/dist/core/config/schemas/base.d.ts +58 -429
  58. package/dist/core/config/schemas/base.js +2 -2
  59. package/dist/core/config/schemas/relative.d.ts +76 -541
  60. package/dist/core/constants.js +1 -1
  61. package/dist/core/dev/dev.js +1 -1
  62. package/dist/core/errors/errors-data.d.ts +1 -1
  63. package/dist/core/errors/errors-data.js +1 -1
  64. package/dist/core/messages.js +2 -2
  65. package/dist/types/public/config.d.ts +3 -4
  66. package/package.json +5 -5
  67. package/dist/assets/fonts/core/normalize-remote-font-faces.d.ts +0 -7
  68. package/dist/assets/fonts/core/normalize-remote-font-faces.js +0 -41
  69. package/dist/assets/fonts/core/resolve-families.d.ts +0 -16
  70. package/dist/assets/fonts/core/resolve-families.js +0 -63
  71. package/dist/assets/fonts/infra/build-url-proxy-hash-resolver.d.ts +0 -15
  72. package/dist/assets/fonts/infra/data-collector.d.ts +0 -10
  73. package/dist/assets/fonts/infra/data-collector.js +0 -35
  74. package/dist/assets/fonts/infra/dev-url-proxy-hash-resolver.d.ts +0 -15
  75. package/dist/assets/fonts/infra/local-url-proxy-content-resolver.d.ts +0 -4
  76. package/dist/assets/fonts/infra/local-url-proxy-content-resolver.js +0 -14
  77. package/dist/assets/fonts/infra/remote-url-proxy-content-resolver.d.ts +0 -4
  78. package/dist/assets/fonts/infra/remote-url-proxy-content-resolver.js +0 -9
  79. package/dist/assets/fonts/infra/require-local-provider-url-resolver.d.ts +0 -9
  80. package/dist/assets/fonts/infra/require-local-provider-url-resolver.js +0 -30
  81. package/dist/assets/fonts/infra/url-proxy.d.ts +0 -16
  82. package/dist/assets/fonts/infra/url-proxy.js +0 -50
  83. package/dist/assets/fonts/orchestrate.d.ts +0 -42
  84. package/dist/assets/fonts/orchestrate.js +0 -173
@@ -1,173 +0,0 @@
1
- import { LOCAL_PROVIDER_NAME } from "./constants.js";
2
- import { normalizeRemoteFontFaces } from "./core/normalize-remote-font-faces.js";
3
- import { optimizeFallbacks } from "./core/optimize-fallbacks.js";
4
- import { resolveFamilies } from "./core/resolve-families.js";
5
- import { resolveLocalFont } from "./providers/local.js";
6
- import {
7
- pickFontFaceProperty,
8
- renderFontWeight,
9
- unifontFontFaceDataToProperties
10
- } from "./utils.js";
11
- async function orchestrate({
12
- families,
13
- hasher,
14
- localProviderUrlResolver,
15
- cssRenderer,
16
- systemFallbacksProvider,
17
- fontMetricsResolver,
18
- fontTypeExtractor,
19
- fontFileReader,
20
- logger,
21
- createUrlProxy,
22
- defaults,
23
- bold,
24
- stringMatcher,
25
- createFontResolver
26
- }) {
27
- const resolvedFamilies = resolveFamilies({
28
- families,
29
- hasher,
30
- localProviderUrlResolver
31
- });
32
- const fontResolver = await createFontResolver({ families: resolvedFamilies });
33
- const fontFileDataMap = /* @__PURE__ */ new Map();
34
- const internalConsumableMap = /* @__PURE__ */ new Map();
35
- const fontData = {};
36
- const resolvedFamiliesMap = /* @__PURE__ */ new Map();
37
- for (const family of resolvedFamilies) {
38
- const key = `${family.cssVariable}:${family.name}:${typeof family.provider === "string" ? family.provider : family.provider.name}`;
39
- let resolvedFamily = resolvedFamiliesMap.get(key);
40
- if (!resolvedFamily) {
41
- if (Array.from(resolvedFamiliesMap.keys()).find((k) => k.startsWith(`${family.cssVariable}:`))) {
42
- logger.warn(
43
- "assets",
44
- `Several font families have been registered for the ${bold(family.cssVariable)} cssVariable but they do not share the same name and provider.`
45
- );
46
- logger.warn(
47
- "assets",
48
- "These families will not be merged together. The last occurrence will override previous families for this cssVariable. Review your Astro configuration."
49
- );
50
- }
51
- resolvedFamily = {
52
- family,
53
- fonts: [],
54
- fallbacks: family.fallbacks ?? defaults.fallbacks ?? [],
55
- collectedFonts: [],
56
- preloadData: []
57
- };
58
- resolvedFamiliesMap.set(key, resolvedFamily);
59
- }
60
- const urlProxy = createUrlProxy({
61
- local: family.provider === LOCAL_PROVIDER_NAME,
62
- hasUrl: (hash) => fontFileDataMap.has(hash),
63
- saveUrl: ({ hash, url, init }) => {
64
- fontFileDataMap.set(hash, { url, init });
65
- },
66
- savePreload: (preload) => {
67
- resolvedFamily.preloadData.push(preload);
68
- },
69
- saveFontData: (collected) => {
70
- if (resolvedFamily.fallbacks && resolvedFamily.fallbacks.length > 0 && // If the same data has already been sent for this family, we don't want to have
71
- // duplicated fallbacks. Such scenario can occur with unicode ranges.
72
- !resolvedFamily.collectedFonts.some(
73
- (f) => JSON.stringify(f.data) === JSON.stringify(collected.data)
74
- )) {
75
- resolvedFamily.collectedFonts.push(collected);
76
- }
77
- },
78
- cssVariable: family.cssVariable
79
- });
80
- if (family.provider === LOCAL_PROVIDER_NAME) {
81
- const fonts = resolveLocalFont({
82
- family,
83
- urlProxy,
84
- fontTypeExtractor,
85
- fontFileReader
86
- });
87
- resolvedFamily.fonts.push(...fonts);
88
- } else {
89
- const fonts = await fontResolver.resolveFont({
90
- familyName: family.name,
91
- provider: family.provider,
92
- // We do not merge the defaults, we only provide defaults as a fallback
93
- weights: family.weights ?? defaults.weights,
94
- styles: family.styles ?? defaults.styles,
95
- subsets: family.subsets ?? defaults.subsets,
96
- formats: family.formats ?? defaults.formats,
97
- options: family.options
98
- });
99
- if (fonts.length === 0) {
100
- logger.warn(
101
- "assets",
102
- `No data found for font family ${bold(family.name)}. Review your configuration`
103
- );
104
- const availableFamilies = await fontResolver.listFonts({ provider: family.provider });
105
- if (availableFamilies && availableFamilies.length > 0 && !availableFamilies.includes(family.name)) {
106
- logger.warn(
107
- "assets",
108
- `${bold(family.name)} font family cannot be retrieved by the provider. Did you mean ${bold(stringMatcher.getClosestMatch(family.name, availableFamilies))}?`
109
- );
110
- }
111
- }
112
- resolvedFamily.fonts = normalizeRemoteFontFaces({ fonts, urlProxy, fontTypeExtractor });
113
- }
114
- }
115
- for (const {
116
- family,
117
- fonts,
118
- fallbacks,
119
- collectedFonts,
120
- preloadData
121
- } of resolvedFamiliesMap.values()) {
122
- const fontDataValue = [];
123
- let css = "";
124
- for (const data of fonts) {
125
- css += cssRenderer.generateFontFace(
126
- family.nameWithHash,
127
- unifontFontFaceDataToProperties({
128
- src: data.src,
129
- weight: data.weight,
130
- style: data.style,
131
- // User settings override the generated font settings. We use a helper function
132
- // because local and remote providers store this data in different places.
133
- display: pickFontFaceProperty("display", { data, family }),
134
- unicodeRange: pickFontFaceProperty("unicodeRange", { data, family }),
135
- stretch: pickFontFaceProperty("stretch", { data, family }),
136
- featureSettings: pickFontFaceProperty("featureSettings", { data, family }),
137
- variationSettings: pickFontFaceProperty("variationSettings", { data, family })
138
- })
139
- );
140
- fontDataValue.push({
141
- weight: renderFontWeight(data.weight),
142
- style: data.style,
143
- src: data.src.filter((src) => "url" in src).map((src) => ({
144
- url: src.url,
145
- format: src.format,
146
- tech: src.tech
147
- }))
148
- });
149
- }
150
- const cssVarValues = [family.nameWithHash];
151
- const optimizeFallbacksResult = await optimizeFallbacks({
152
- family,
153
- fallbacks,
154
- collectedFonts,
155
- enabled: family.optimizedFallbacks ?? defaults.optimizedFallbacks ?? false,
156
- systemFallbacksProvider,
157
- fontMetricsResolver
158
- });
159
- if (optimizeFallbacksResult) {
160
- css += optimizeFallbacksResult.css;
161
- cssVarValues.push(...optimizeFallbacksResult.fallbacks);
162
- } else {
163
- cssVarValues.push(...fallbacks);
164
- }
165
- css += cssRenderer.generateCssVariable(family.cssVariable, cssVarValues);
166
- internalConsumableMap.set(family.cssVariable, { preloadData, css });
167
- fontData[family.cssVariable] = fontDataValue;
168
- }
169
- return { fontFileDataMap, internalConsumableMap, fontData };
170
- }
171
- export {
172
- orchestrate
173
- };