astro 2.0.18 → 2.1.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.
Files changed (143) hide show
  1. package/README.md +3 -3
  2. package/client-base.d.ts +27 -0
  3. package/client-image.d.ts +48 -0
  4. package/components/Image.astro +28 -0
  5. package/dist/@types/astro.d.ts +123 -1
  6. package/dist/assets/consts.d.ts +4 -0
  7. package/dist/assets/consts.js +20 -0
  8. package/dist/assets/image-endpoint.d.ts +5 -0
  9. package/dist/assets/image-endpoint.js +50 -0
  10. package/dist/assets/index.d.ts +4 -0
  11. package/dist/assets/index.js +10 -0
  12. package/dist/assets/internal.d.ts +36 -0
  13. package/dist/assets/internal.js +70 -0
  14. package/dist/assets/services/service.d.ts +71 -0
  15. package/dist/assets/services/service.js +99 -0
  16. package/dist/assets/services/sharp.d.ts +3 -0
  17. package/dist/assets/services/sharp.js +57 -0
  18. package/dist/assets/services/squoosh.d.ts +3 -0
  19. package/dist/assets/services/squoosh.js +56 -0
  20. package/dist/assets/services/vendor/squoosh/avif/avif_enc.d.js +11 -0
  21. package/dist/assets/services/vendor/squoosh/avif/avif_node_dec.d.ts +2 -0
  22. package/dist/assets/services/vendor/squoosh/avif/avif_node_dec.js +1628 -0
  23. package/dist/assets/services/vendor/squoosh/avif/avif_node_dec.wasm +0 -0
  24. package/dist/assets/services/vendor/squoosh/avif/avif_node_enc.d.ts +2 -0
  25. package/dist/assets/services/vendor/squoosh/avif/avif_node_enc.js +1850 -0
  26. package/dist/assets/services/vendor/squoosh/avif/avif_node_enc.wasm +0 -0
  27. package/dist/assets/services/vendor/squoosh/codecs.d.ts +158 -0
  28. package/dist/assets/services/vendor/squoosh/codecs.js +284 -0
  29. package/dist/assets/services/vendor/squoosh/copy-wasm.d.ts +1 -0
  30. package/dist/assets/services/vendor/squoosh/copy-wasm.js +24 -0
  31. package/dist/assets/services/vendor/squoosh/emscripten-types.d.js +0 -0
  32. package/dist/assets/services/vendor/squoosh/emscripten-utils.d.ts +9 -0
  33. package/dist/assets/services/vendor/squoosh/emscripten-utils.js +33 -0
  34. package/dist/assets/services/vendor/squoosh/image-pool.d.ts +4 -0
  35. package/dist/assets/services/vendor/squoosh/image-pool.js +94 -0
  36. package/dist/assets/services/vendor/squoosh/image.d.ts +14 -0
  37. package/dist/assets/services/vendor/squoosh/image.js +27 -0
  38. package/dist/assets/services/vendor/squoosh/image_data.d.ts +9 -0
  39. package/dist/assets/services/vendor/squoosh/image_data.js +22 -0
  40. package/dist/assets/services/vendor/squoosh/impl.d.ts +22 -0
  41. package/dist/assets/services/vendor/squoosh/impl.js +110 -0
  42. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_enc.d.js +11 -0
  43. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_node_dec.d.ts +2 -0
  44. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_node_dec.js +1631 -0
  45. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_node_dec.wasm +0 -0
  46. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_node_enc.d.ts +2 -0
  47. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_node_enc.js +1737 -0
  48. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_node_enc.wasm +0 -0
  49. package/dist/assets/services/vendor/squoosh/png/squoosh_oxipng.d.ts +10 -0
  50. package/dist/assets/services/vendor/squoosh/png/squoosh_oxipng.js +89 -0
  51. package/dist/assets/services/vendor/squoosh/png/squoosh_oxipng_bg.wasm +0 -0
  52. package/dist/assets/services/vendor/squoosh/png/squoosh_png.d.ts +15 -0
  53. package/dist/assets/services/vendor/squoosh/png/squoosh_png.js +138 -0
  54. package/dist/assets/services/vendor/squoosh/png/squoosh_png_bg.wasm +0 -0
  55. package/dist/assets/services/vendor/squoosh/resize/squoosh_resize.d.ts +15 -0
  56. package/dist/assets/services/vendor/squoosh/resize/squoosh_resize.js +95 -0
  57. package/dist/assets/services/vendor/squoosh/resize/squoosh_resize_bg.wasm +0 -0
  58. package/dist/assets/services/vendor/squoosh/rotate/rotate.wasm +0 -0
  59. package/dist/assets/services/vendor/squoosh/utils/execOnce.d.ts +1 -0
  60. package/dist/assets/services/vendor/squoosh/utils/execOnce.js +14 -0
  61. package/dist/assets/services/vendor/squoosh/utils/workerPool.d.ts +22 -0
  62. package/dist/assets/services/vendor/squoosh/utils/workerPool.js +95 -0
  63. package/dist/assets/services/vendor/squoosh/webp/webp_enc.d.js +4 -0
  64. package/dist/assets/services/vendor/squoosh/webp/webp_node_dec.d.ts +2 -0
  65. package/dist/assets/services/vendor/squoosh/webp/webp_node_dec.js +1473 -0
  66. package/dist/assets/services/vendor/squoosh/webp/webp_node_dec.wasm +0 -0
  67. package/dist/assets/services/vendor/squoosh/webp/webp_node_enc.d.ts +2 -0
  68. package/dist/assets/services/vendor/squoosh/webp/webp_node_enc.js +1640 -0
  69. package/dist/assets/services/vendor/squoosh/webp/webp_node_enc.wasm +0 -0
  70. package/dist/assets/types.d.ts +119 -0
  71. package/dist/assets/types.js +0 -0
  72. package/dist/assets/utils/etag.d.ts +12 -0
  73. package/dist/assets/utils/etag.js +28 -0
  74. package/dist/assets/utils/metadata.d.ts +6 -0
  75. package/dist/assets/utils/metadata.js +30 -0
  76. package/dist/assets/utils/queryParams.d.ts +2 -0
  77. package/dist/assets/utils/queryParams.js +16 -0
  78. package/dist/assets/utils/transformToPath.d.ts +2 -0
  79. package/dist/assets/utils/transformToPath.js +17 -0
  80. package/dist/assets/vite-plugin-assets.d.ts +5 -0
  81. package/dist/assets/vite-plugin-assets.js +188 -0
  82. package/dist/cli/check/index.d.ts +81 -2
  83. package/dist/cli/check/index.js +190 -44
  84. package/dist/cli/index.js +39 -16
  85. package/dist/cli/telemetry.js +1 -1
  86. package/dist/content/consts.d.ts +0 -1
  87. package/dist/content/consts.js +1 -3
  88. package/dist/content/internal.d.ts +7 -0
  89. package/dist/content/internal.js +27 -5
  90. package/dist/content/template/virtual-mod.d.mts +1 -0
  91. package/dist/content/types-generator.js +25 -10
  92. package/dist/content/utils.d.ts +16 -13
  93. package/dist/content/utils.js +29 -6
  94. package/dist/content/vite-plugin-content-assets.d.ts +3 -1
  95. package/dist/content/vite-plugin-content-assets.js +10 -6
  96. package/dist/content/vite-plugin-content-imports.js +54 -27
  97. package/dist/content/vite-plugin-content-virtual-mod.js +7 -4
  98. package/dist/core/app/index.js +104 -134
  99. package/dist/core/build/generate.js +30 -5
  100. package/dist/core/build/index.d.ts +2 -0
  101. package/dist/core/build/index.js +16 -0
  102. package/dist/core/build/plugins/plugin-ssr.js +3 -5
  103. package/dist/core/config/config.js +2 -1
  104. package/dist/core/config/schema.d.ts +64 -8
  105. package/dist/core/config/schema.js +17 -3
  106. package/dist/core/config/settings.js +3 -1
  107. package/dist/core/constants.js +1 -1
  108. package/dist/core/cookies/cookies.js +36 -68
  109. package/dist/core/create-vite.js +5 -1
  110. package/dist/core/dev/dev.d.ts +2 -2
  111. package/dist/core/dev/dev.js +24 -4
  112. package/dist/core/errors/dev/vite.js +6 -1
  113. package/dist/core/errors/errors-data.d.ts +70 -1
  114. package/dist/core/errors/errors-data.js +25 -0
  115. package/dist/core/messages.js +2 -2
  116. package/dist/core/path.d.ts +1 -0
  117. package/dist/core/path.js +4 -0
  118. package/dist/core/preview/index.d.ts +3 -1
  119. package/dist/core/preview/index.js +16 -1
  120. package/dist/core/render/dev/environment.js +1 -5
  121. package/dist/core/render/environment.js +1 -2
  122. package/dist/core/render/result.js +13 -35
  123. package/dist/core/sync/index.d.ts +18 -5
  124. package/dist/core/sync/index.js +13 -1
  125. package/dist/core/util.d.ts +1 -0
  126. package/dist/core/util.js +10 -0
  127. package/dist/integrations/index.js +12 -1
  128. package/dist/runtime/server/jsx.js +8 -1
  129. package/dist/runtime/server/render/component.js +1 -1
  130. package/dist/runtime/server/response.js +11 -30
  131. package/dist/vite-plugin-astro-postprocess/index.js +1 -1
  132. package/dist/vite-plugin-astro-server/plugin.js +1 -1
  133. package/dist/vite-plugin-env/index.js +4 -4
  134. package/dist/vite-plugin-inject-env-ts/index.js +17 -2
  135. package/dist/vite-plugin-markdown/content-entry-type.d.ts +7 -0
  136. package/dist/vite-plugin-markdown/content-entry-type.js +39 -0
  137. package/dist/vite-plugin-markdown/index.js +70 -4
  138. package/dist/vite-plugin-ssr-manifest/index.d.ts +2 -0
  139. package/dist/vite-plugin-ssr-manifest/index.js +25 -0
  140. package/package.json +26 -8
  141. package/src/content/template/types.d.ts +18 -9
  142. package/src/content/template/virtual-mod.mjs +6 -0
  143. package/tsconfigs/base.json +6 -1
@@ -0,0 +1,99 @@
1
+ import { AstroError, AstroErrorData } from "../../core/errors/index.js";
2
+ import { isRemotePath } from "../../core/path.js";
3
+ import { VALID_INPUT_FORMATS } from "../consts.js";
4
+ import { isESMImportedImage } from "../internal.js";
5
+ function isLocalService(service) {
6
+ if (!service) {
7
+ return false;
8
+ }
9
+ return "transform" in service;
10
+ }
11
+ function parseQuality(quality) {
12
+ let result = parseInt(quality);
13
+ if (Number.isNaN(result)) {
14
+ return quality;
15
+ }
16
+ return result;
17
+ }
18
+ const baseService = {
19
+ getHTMLAttributes(options) {
20
+ let targetWidth = options.width;
21
+ let targetHeight = options.height;
22
+ if (isESMImportedImage(options.src)) {
23
+ const aspectRatio = options.src.width / options.src.height;
24
+ if (targetHeight && !targetWidth) {
25
+ targetWidth = Math.round(targetHeight * aspectRatio);
26
+ } else if (targetWidth && !targetHeight) {
27
+ targetHeight = Math.round(targetWidth / aspectRatio);
28
+ } else {
29
+ targetWidth = options.src.width;
30
+ targetHeight = options.src.height;
31
+ }
32
+ }
33
+ const { src, width, height, format, quality, ...attributes } = options;
34
+ return {
35
+ ...attributes,
36
+ width: targetWidth,
37
+ height: targetHeight,
38
+ loading: attributes.loading ?? "lazy",
39
+ decoding: attributes.decoding ?? "async"
40
+ };
41
+ },
42
+ getURL(options) {
43
+ if (!isESMImportedImage(options.src)) {
44
+ let missingDimension;
45
+ if (!options.width && !options.height) {
46
+ missingDimension = "both";
47
+ } else if (!options.width && options.height) {
48
+ missingDimension = "width";
49
+ } else if (options.width && !options.height) {
50
+ missingDimension = "height";
51
+ }
52
+ if (missingDimension) {
53
+ throw new AstroError({
54
+ ...AstroErrorData.MissingImageDimension,
55
+ message: AstroErrorData.MissingImageDimension.message(missingDimension, options.src)
56
+ });
57
+ }
58
+ }
59
+ if (!isESMImportedImage(options.src) && isRemotePath(options.src)) {
60
+ return options.src;
61
+ }
62
+ if (isESMImportedImage(options.src) && !VALID_INPUT_FORMATS.includes(options.src.format)) {
63
+ throw new AstroError({
64
+ ...AstroErrorData.UnsupportedImageFormat,
65
+ message: AstroErrorData.UnsupportedImageFormat.message(
66
+ options.src.format,
67
+ options.src.src,
68
+ VALID_INPUT_FORMATS
69
+ )
70
+ });
71
+ }
72
+ const searchParams = new URLSearchParams();
73
+ searchParams.append("href", isESMImportedImage(options.src) ? options.src.src : options.src);
74
+ options.width && searchParams.append("w", options.width.toString());
75
+ options.height && searchParams.append("h", options.height.toString());
76
+ options.quality && searchParams.append("q", options.quality.toString());
77
+ options.format && searchParams.append("f", options.format);
78
+ return "/_image?" + searchParams;
79
+ },
80
+ parseURL(url) {
81
+ const params = url.searchParams;
82
+ if (!params.has("href")) {
83
+ return void 0;
84
+ }
85
+ const transform = {
86
+ src: params.get("href"),
87
+ width: params.has("w") ? parseInt(params.get("w")) : void 0,
88
+ height: params.has("h") ? parseInt(params.get("h")) : void 0,
89
+ format: params.get("f"),
90
+ quality: params.get("q")
91
+ };
92
+ return transform;
93
+ }
94
+ };
95
+ export {
96
+ baseService,
97
+ isLocalService,
98
+ parseQuality
99
+ };
@@ -0,0 +1,3 @@
1
+ import { LocalImageService } from './service.js';
2
+ declare const sharpService: LocalImageService;
3
+ export default sharpService;
@@ -0,0 +1,57 @@
1
+ import { baseService, parseQuality } from "./service.js";
2
+ let sharp;
3
+ const qualityTable = {
4
+ low: 25,
5
+ mid: 50,
6
+ high: 80,
7
+ max: 100
8
+ };
9
+ async function loadSharp() {
10
+ let sharpImport;
11
+ try {
12
+ sharpImport = (await import("sharp")).default;
13
+ } catch (e) {
14
+ throw new Error("Could not find Sharp. Please install Sharp manually into your project.");
15
+ }
16
+ return sharpImport;
17
+ }
18
+ const sharpService = {
19
+ getURL: baseService.getURL,
20
+ parseURL: baseService.parseURL,
21
+ getHTMLAttributes: baseService.getHTMLAttributes,
22
+ async transform(inputBuffer, transformOptions) {
23
+ if (!sharp)
24
+ sharp = await loadSharp();
25
+ const transform = transformOptions;
26
+ if (!transform.format) {
27
+ transform.format = "webp";
28
+ }
29
+ let result = sharp(inputBuffer, { failOnError: false, pages: -1 });
30
+ if (transform.height && !transform.width) {
31
+ result.resize({ height: transform.height });
32
+ } else if (transform.width) {
33
+ result.resize({ width: transform.width });
34
+ }
35
+ if (transform.format) {
36
+ let quality = void 0;
37
+ if (transform.quality) {
38
+ const parsedQuality = parseQuality(transform.quality);
39
+ if (typeof parsedQuality === "number") {
40
+ quality = parsedQuality;
41
+ } else {
42
+ quality = transform.quality in qualityTable ? qualityTable[transform.quality] : void 0;
43
+ }
44
+ }
45
+ result.toFormat(transform.format, { quality });
46
+ }
47
+ const { data, info } = await result.toBuffer({ resolveWithObject: true });
48
+ return {
49
+ data,
50
+ format: info.format
51
+ };
52
+ }
53
+ };
54
+ var sharp_default = sharpService;
55
+ export {
56
+ sharp_default as default
57
+ };
@@ -0,0 +1,3 @@
1
+ import { LocalImageService } from './service.js';
2
+ declare const service: LocalImageService;
3
+ export default service;
@@ -0,0 +1,56 @@
1
+ import { baseService, parseQuality } from "./service.js";
2
+ import { processBuffer } from "./vendor/squoosh/image-pool.js";
3
+ const baseQuality = { low: 25, mid: 50, high: 80, max: 100 };
4
+ const qualityTable = {
5
+ avif: {
6
+ max: 62,
7
+ high: 45,
8
+ mid: 35,
9
+ low: 20
10
+ },
11
+ jpeg: baseQuality,
12
+ jpg: baseQuality,
13
+ webp: baseQuality
14
+ };
15
+ const service = {
16
+ getURL: baseService.getURL,
17
+ parseURL: baseService.parseURL,
18
+ getHTMLAttributes: baseService.getHTMLAttributes,
19
+ async transform(inputBuffer, transformOptions) {
20
+ const transform = transformOptions;
21
+ let format = transform.format;
22
+ if (!format) {
23
+ format = "webp";
24
+ }
25
+ const operations = [];
26
+ if (transform.height && !transform.width) {
27
+ operations.push({
28
+ type: "resize",
29
+ height: transform.height
30
+ });
31
+ } else if (transform.width) {
32
+ operations.push({
33
+ type: "resize",
34
+ width: transform.width
35
+ });
36
+ }
37
+ let quality = void 0;
38
+ if (transform.quality) {
39
+ const parsedQuality = parseQuality(transform.quality);
40
+ if (typeof parsedQuality === "number") {
41
+ quality = parsedQuality;
42
+ } else {
43
+ quality = transform.quality in qualityTable[format] ? qualityTable[format][transform.quality] : void 0;
44
+ }
45
+ }
46
+ const data = await processBuffer(inputBuffer, operations, format, quality);
47
+ return {
48
+ data: Buffer.from(data),
49
+ format
50
+ };
51
+ }
52
+ };
53
+ var squoosh_default = service;
54
+ export {
55
+ squoosh_default as default
56
+ };
@@ -0,0 +1,11 @@
1
+ var AVIFTune = /* @__PURE__ */ ((AVIFTune2) => {
2
+ AVIFTune2[AVIFTune2["auto"] = 0] = "auto";
3
+ AVIFTune2[AVIFTune2["psnr"] = 1] = "psnr";
4
+ AVIFTune2[AVIFTune2["ssim"] = 2] = "ssim";
5
+ return AVIFTune2;
6
+ })(AVIFTune || {});
7
+ var avif_enc_d_default = moduleFactory;
8
+ export {
9
+ AVIFTune,
10
+ avif_enc_d_default as default
11
+ };
@@ -0,0 +1,2 @@
1
+ declare var Module: (Module: any) => any;
2
+ export default Module;