diff --git a/.changeset/fifty-months-mix.md b/.changeset/fifty-months-mix.md new file mode 100644 index 000000000000..78a009950d7b --- /dev/null +++ b/.changeset/fifty-months-mix.md @@ -0,0 +1,5 @@ +--- +'@astrojs/webapi': minor +--- + +Add polyfill for `crypto` diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json index 63c20cba33cb..c50c89ba354a 100644 --- a/packages/telemetry/package.json +++ b/packages/telemetry/package.json @@ -38,7 +38,7 @@ "devDependencies": { "@types/debug": "^4.1.7", "@types/dlv": "^1.1.2", - "@types/node": "^14.18.21", + "@types/node": "^18.7.21", "@types/which-pm-runs": "^1.0.0", "astro-scripts": "workspace:*", "chai": "^4.3.6", diff --git a/packages/webapi/mod.d.ts b/packages/webapi/mod.d.ts index ecc90236488d..60bdbab37796 100644 --- a/packages/webapi/mod.d.ts +++ b/packages/webapi/mod.d.ts @@ -1,6 +1,6 @@ // organize-imports-ignore export { pathToPosix } from './lib/utils'; -export { alert, ByteLengthQueuingStrategy, cancelAnimationFrame, cancelIdleCallback, CanvasRenderingContext2D, CharacterData, clearTimeout, Comment, CountQueuingStrategy, CSSStyleSheet, CustomElementRegistry, CustomEvent, Document, DocumentFragment, DOMException, Element, Event, EventTarget, fetch, File, FormData, Headers, HTMLBodyElement, HTMLCanvasElement, HTMLDivElement, HTMLDocument, HTMLElement, HTMLHeadElement, HTMLHtmlElement, HTMLImageElement, HTMLSpanElement, HTMLStyleElement, HTMLTemplateElement, HTMLUnknownElement, Image, ImageData, IntersectionObserver, MediaQueryList, MutationObserver, Node, NodeFilter, NodeIterator, OffscreenCanvas, ReadableByteStreamController, ReadableStream, ReadableStreamBYOBReader, ReadableStreamBYOBRequest, ReadableStreamDefaultController, ReadableStreamDefaultReader, Request, requestAnimationFrame, requestIdleCallback, ResizeObserver, Response, setTimeout, ShadowRoot, structuredClone, StyleSheet, Text, TransformStream, TreeWalker, URLPattern, Window, WritableStream, WritableStreamDefaultController, WritableStreamDefaultWriter, } from './mod.js'; +export { alert, ByteLengthQueuingStrategy, cancelAnimationFrame, cancelIdleCallback, CanvasRenderingContext2D, CharacterData, clearTimeout, Comment, CountQueuingStrategy, crypto, CSSStyleSheet, CustomElementRegistry, CustomEvent, Document, DocumentFragment, DOMException, Element, Event, EventTarget, fetch, File, FormData, Headers, HTMLBodyElement, HTMLCanvasElement, HTMLDivElement, HTMLDocument, HTMLElement, HTMLHeadElement, HTMLHtmlElement, HTMLImageElement, HTMLSpanElement, HTMLStyleElement, HTMLTemplateElement, HTMLUnknownElement, Image, ImageData, IntersectionObserver, MediaQueryList, MutationObserver, Node, NodeFilter, NodeIterator, OffscreenCanvas, ReadableByteStreamController, ReadableStream, ReadableStreamBYOBReader, ReadableStreamBYOBRequest, ReadableStreamDefaultController, ReadableStreamDefaultReader, Request, requestAnimationFrame, requestIdleCallback, ResizeObserver, Response, setTimeout, ShadowRoot, structuredClone, StyleSheet, Text, TransformStream, TreeWalker, URLPattern, Window, WritableStream, WritableStreamDefaultController, WritableStreamDefaultWriter, } from './mod.js'; export declare const polyfill: { (target: any, options?: PolyfillOptions): any; internals(target: any, name: string): any; diff --git a/packages/webapi/package.json b/packages/webapi/package.json index 2e35c43c7768..61f359a33fda 100644 --- a/packages/webapi/package.json +++ b/packages/webapi/package.json @@ -59,7 +59,7 @@ "@rollup/plugin-typescript": "^8.3.2", "@types/chai": "^4.3.1", "@types/mocha": "^9.1.1", - "@types/node": "^14.18.21", + "@types/node": "^18.7.21", "@ungap/structured-clone": "^0.3.4", "chai": "^4.3.6", "event-target-shim": "^6.0.2", diff --git a/packages/webapi/src/polyfill.ts b/packages/webapi/src/polyfill.ts index 4d1531a3fede..5fadd5a686e7 100644 --- a/packages/webapi/src/polyfill.ts +++ b/packages/webapi/src/polyfill.ts @@ -8,6 +8,7 @@ import { clearTimeout, Comment, CountQueuingStrategy, + crypto, CSSStyleSheet, CustomElementRegistry, CustomEvent, @@ -87,6 +88,7 @@ export { clearTimeout, Comment, CountQueuingStrategy, + crypto, CSSStyleSheet, CustomElementRegistry, CustomEvent, @@ -211,6 +213,7 @@ export const polyfill = (target: any, options?: PolyfillOptions) => { cancelAnimationFrame, cancelIdleCallback, clearTimeout, + crypto, fetch, requestAnimationFrame, requestIdleCallback, diff --git a/packages/webapi/src/ponyfill.ts b/packages/webapi/src/ponyfill.ts index 368f7ee5b8e2..9be4377c56cb 100644 --- a/packages/webapi/src/ponyfill.ts +++ b/packages/webapi/src/ponyfill.ts @@ -14,6 +14,7 @@ import { WritableStreamDefaultController, WritableStreamDefaultWriter, } from 'node:stream/web' // Remove when Node 16 is dropped for Node 18. +import { webcrypto as crypto } from 'node:crypto' // Remove when Node 18 is dropped for Node 20 import { fetch, File, FormData, Headers, Request, Response } from 'undici' // Remove when Node 16 is dropped for Node 18. import { URLPattern } from 'urlpattern-polyfill' import { @@ -133,6 +134,7 @@ export { cancelAnimationFrame, cancelIdleCallback, clearTimeout, + crypto, fetch, requestAnimationFrame, requestIdleCallback, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82cad787ab3f..635c51a2f190 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5201,8 +5201,8 @@ importers: specifier: ^1.1.2 version: 1.1.2 '@types/node': - specifier: ^14.18.21 - version: 14.18.21 + specifier: ^18.7.21 + version: 18.16.3 '@types/which-pm-runs': specifier: ^1.0.0 version: 1.0.0 @@ -5241,8 +5241,8 @@ importers: specifier: ^9.1.1 version: 9.1.1 '@types/node': - specifier: ^14.18.21 - version: 14.18.21 + specifier: ^18.7.21 + version: 18.16.3 '@ungap/structured-clone': specifier: ^0.3.4 version: 0.3.4