summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/crypto/00_crypto.js502
-rw-r--r--ext/crypto/01_webidl.js516
-rw-r--r--ext/crypto/lib.rs2
-rw-r--r--ext/web/09_file.js28
-rw-r--r--ext/web/11_blob_url.js45
-rw-r--r--ext/web/lib.rs1
6 files changed, 531 insertions, 563 deletions
diff --git a/ext/crypto/00_crypto.js b/ext/crypto/00_crypto.js
index 5253c5784..19e669acd 100644
--- a/ext/crypto/00_crypto.js
+++ b/ext/crypto/00_crypto.js
@@ -4734,4 +4734,506 @@ webidl.configurePrototype(Crypto);
const CryptoPrototype = Crypto.prototype;
const crypto = webidl.createBranded(Crypto);
+
+webidl.converters.AlgorithmIdentifier = (V, prefix, context, opts) => {
+ // Union for (object or DOMString)
+ if (webidl.type(V) == "Object") {
+ return webidl.converters.object(V, prefix, context, opts);
+ }
+ return webidl.converters.DOMString(V, prefix, context, opts);
+};
+
+webidl.converters["BufferSource or JsonWebKey"] = (
+ V,
+ prefix,
+ context,
+ opts,
+) => {
+ // Union for (BufferSource or JsonWebKey)
+ if (
+ ArrayBufferIsView(V) ||
+ ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, V)
+ ) {
+ return webidl.converters.BufferSource(V, prefix, context, opts);
+ }
+ return webidl.converters.JsonWebKey(V, prefix, context, opts);
+};
+
+webidl.converters.KeyType = webidl.createEnumConverter("KeyType", [
+ "public",
+ "private",
+ "secret",
+]);
+
+webidl.converters.KeyFormat = webidl.createEnumConverter("KeyFormat", [
+ "raw",
+ "pkcs8",
+ "spki",
+ "jwk",
+]);
+
+webidl.converters.KeyUsage = webidl.createEnumConverter("KeyUsage", [
+ "encrypt",
+ "decrypt",
+ "sign",
+ "verify",
+ "deriveKey",
+ "deriveBits",
+ "wrapKey",
+ "unwrapKey",
+]);
+
+webidl.converters["sequence<KeyUsage>"] = webidl.createSequenceConverter(
+ webidl.converters.KeyUsage,
+);
+
+webidl.converters.HashAlgorithmIdentifier =
+ webidl.converters.AlgorithmIdentifier;
+
+/** @type {webidl.Dictionary} */
+const dictAlgorithm = [{
+ key: "name",
+ converter: webidl.converters.DOMString,
+ required: true,
+}];
+
+webidl.converters.Algorithm = webidl
+ .createDictionaryConverter("Algorithm", dictAlgorithm);
+
+webidl.converters.BigInteger = webidl.converters.Uint8Array;
+
+/** @type {webidl.Dictionary} */
+const dictRsaKeyGenParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "modulusLength",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned long"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ required: true,
+ },
+ {
+ key: "publicExponent",
+ converter: webidl.converters.BigInteger,
+ required: true,
+ },
+];
+
+webidl.converters.RsaKeyGenParams = webidl
+ .createDictionaryConverter("RsaKeyGenParams", dictRsaKeyGenParams);
+
+const dictRsaHashedKeyGenParams = [
+ ...new SafeArrayIterator(dictRsaKeyGenParams),
+ {
+ key: "hash",
+ converter: webidl.converters.HashAlgorithmIdentifier,
+ required: true,
+ },
+];
+
+webidl.converters.RsaHashedKeyGenParams = webidl.createDictionaryConverter(
+ "RsaHashedKeyGenParams",
+ dictRsaHashedKeyGenParams,
+);
+
+const dictRsaHashedImportParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "hash",
+ converter: webidl.converters.HashAlgorithmIdentifier,
+ required: true,
+ },
+];
+
+webidl.converters.RsaHashedImportParams = webidl.createDictionaryConverter(
+ "RsaHashedImportParams",
+ dictRsaHashedImportParams,
+);
+
+webidl.converters.NamedCurve = webidl.converters.DOMString;
+
+const dictEcKeyImportParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "namedCurve",
+ converter: webidl.converters.NamedCurve,
+ required: true,
+ },
+];
+
+webidl.converters.EcKeyImportParams = webidl.createDictionaryConverter(
+ "EcKeyImportParams",
+ dictEcKeyImportParams,
+);
+
+const dictEcKeyGenParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "namedCurve",
+ converter: webidl.converters.NamedCurve,
+ required: true,
+ },
+];
+
+webidl.converters.EcKeyGenParams = webidl
+ .createDictionaryConverter("EcKeyGenParams", dictEcKeyGenParams);
+
+const dictAesKeyGenParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "length",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned short"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ required: true,
+ },
+];
+
+webidl.converters.AesKeyGenParams = webidl
+ .createDictionaryConverter("AesKeyGenParams", dictAesKeyGenParams);
+
+const dictHmacKeyGenParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "hash",
+ converter: webidl.converters.HashAlgorithmIdentifier,
+ required: true,
+ },
+ {
+ key: "length",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned long"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ },
+];
+
+webidl.converters.HmacKeyGenParams = webidl
+ .createDictionaryConverter("HmacKeyGenParams", dictHmacKeyGenParams);
+
+const dictRsaPssParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "saltLength",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned long"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ required: true,
+ },
+];
+
+webidl.converters.RsaPssParams = webidl
+ .createDictionaryConverter("RsaPssParams", dictRsaPssParams);
+
+const dictRsaOaepParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "label",
+ converter: webidl.converters["BufferSource"],
+ },
+];
+
+webidl.converters.RsaOaepParams = webidl
+ .createDictionaryConverter("RsaOaepParams", dictRsaOaepParams);
+
+const dictEcdsaParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "hash",
+ converter: webidl.converters.HashAlgorithmIdentifier,
+ required: true,
+ },
+];
+
+webidl.converters["EcdsaParams"] = webidl
+ .createDictionaryConverter("EcdsaParams", dictEcdsaParams);
+
+const dictHmacImportParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "hash",
+ converter: webidl.converters.HashAlgorithmIdentifier,
+ required: true,
+ },
+ {
+ key: "length",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned long"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ },
+];
+
+webidl.converters.HmacImportParams = webidl
+ .createDictionaryConverter("HmacImportParams", dictHmacImportParams);
+
+const dictRsaOtherPrimesInfo = [
+ {
+ key: "r",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "d",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "t",
+ converter: webidl.converters["DOMString"],
+ },
+];
+
+webidl.converters.RsaOtherPrimesInfo = webidl.createDictionaryConverter(
+ "RsaOtherPrimesInfo",
+ dictRsaOtherPrimesInfo,
+);
+webidl.converters["sequence<RsaOtherPrimesInfo>"] = webidl
+ .createSequenceConverter(
+ webidl.converters.RsaOtherPrimesInfo,
+ );
+
+const dictJsonWebKey = [
+ // Sections 4.2 and 4.3 of RFC7517.
+ // https://datatracker.ietf.org/doc/html/rfc7517#section-4
+ {
+ key: "kty",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "use",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "key_ops",
+ converter: webidl.converters["sequence<DOMString>"],
+ },
+ {
+ key: "alg",
+ converter: webidl.converters["DOMString"],
+ },
+ // JSON Web Key Parameters Registration
+ {
+ key: "ext",
+ converter: webidl.converters["boolean"],
+ },
+ // Section 6 of RFC7518 JSON Web Algorithms
+ // https://datatracker.ietf.org/doc/html/rfc7518#section-6
+ {
+ key: "crv",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "x",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "y",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "d",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "n",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "e",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "p",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "q",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "dp",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "dq",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "qi",
+ converter: webidl.converters["DOMString"],
+ },
+ {
+ key: "oth",
+ converter: webidl.converters["sequence<RsaOtherPrimesInfo>"],
+ },
+ {
+ key: "k",
+ converter: webidl.converters["DOMString"],
+ },
+];
+
+webidl.converters.JsonWebKey = webidl.createDictionaryConverter(
+ "JsonWebKey",
+ dictJsonWebKey,
+);
+
+const dictHkdfParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "hash",
+ converter: webidl.converters.HashAlgorithmIdentifier,
+ required: true,
+ },
+ {
+ key: "salt",
+ converter: webidl.converters["BufferSource"],
+ required: true,
+ },
+ {
+ key: "info",
+ converter: webidl.converters["BufferSource"],
+ required: true,
+ },
+];
+
+webidl.converters.HkdfParams = webidl
+ .createDictionaryConverter("HkdfParams", dictHkdfParams);
+
+const dictPbkdf2Params = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "hash",
+ converter: webidl.converters.HashAlgorithmIdentifier,
+ required: true,
+ },
+ {
+ key: "iterations",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned long"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ required: true,
+ },
+ {
+ key: "salt",
+ converter: webidl.converters["BufferSource"],
+ required: true,
+ },
+];
+
+webidl.converters.Pbkdf2Params = webidl
+ .createDictionaryConverter("Pbkdf2Params", dictPbkdf2Params);
+
+const dictAesDerivedKeyParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "length",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned long"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ required: true,
+ },
+];
+
+const dictAesCbcParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "iv",
+ converter: webidl.converters["BufferSource"],
+ required: true,
+ },
+];
+
+const dictAesGcmParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "iv",
+ converter: webidl.converters["BufferSource"],
+ required: true,
+ },
+ {
+ key: "tagLength",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned long"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ },
+ {
+ key: "additionalData",
+ converter: webidl.converters["BufferSource"],
+ },
+];
+
+const dictAesCtrParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "counter",
+ converter: webidl.converters["BufferSource"],
+ required: true,
+ },
+ {
+ key: "length",
+ converter: (V, prefix, context, opts) =>
+ webidl.converters["unsigned short"](V, prefix, context, {
+ ...opts,
+ enforceRange: true,
+ }),
+ required: true,
+ },
+];
+
+webidl.converters.AesDerivedKeyParams = webidl
+ .createDictionaryConverter("AesDerivedKeyParams", dictAesDerivedKeyParams);
+
+webidl.converters.AesCbcParams = webidl
+ .createDictionaryConverter("AesCbcParams", dictAesCbcParams);
+
+webidl.converters.AesGcmParams = webidl
+ .createDictionaryConverter("AesGcmParams", dictAesGcmParams);
+
+webidl.converters.AesCtrParams = webidl
+ .createDictionaryConverter("AesCtrParams", dictAesCtrParams);
+
+webidl.converters.CryptoKey = webidl.createInterfaceConverter(
+ "CryptoKey",
+ CryptoKey.prototype,
+);
+
+const dictCryptoKeyPair = [
+ {
+ key: "publicKey",
+ converter: webidl.converters.CryptoKey,
+ },
+ {
+ key: "privateKey",
+ converter: webidl.converters.CryptoKey,
+ },
+];
+
+webidl.converters.CryptoKeyPair = webidl
+ .createDictionaryConverter("CryptoKeyPair", dictCryptoKeyPair);
+
+const dictEcdhKeyDeriveParams = [
+ ...new SafeArrayIterator(dictAlgorithm),
+ {
+ key: "public",
+ converter: webidl.converters.CryptoKey,
+ required: true,
+ },
+];
+
+webidl.converters.EcdhKeyDeriveParams = webidl
+ .createDictionaryConverter("EcdhKeyDeriveParams", dictEcdhKeyDeriveParams);
+
export { Crypto, crypto, CryptoKey, SubtleCrypto };
diff --git a/ext/crypto/01_webidl.js b/ext/crypto/01_webidl.js
deleted file mode 100644
index cd0655b3b..000000000
--- a/ext/crypto/01_webidl.js
+++ /dev/null
@@ -1,516 +0,0 @@
-// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-
-// @ts-check
-/// <reference path="../../core/lib.deno_core.d.ts" />
-/// <reference path="../webidl/internal.d.ts" />
-
-const primordials = globalThis.__bootstrap.primordials;
-import * as webidl from "ext:deno_webidl/00_webidl.js";
-import { CryptoKey } from "ext:deno_crypto/00_crypto.js";
-const {
- ArrayBufferIsView,
- ArrayBufferPrototype,
- ObjectPrototypeIsPrototypeOf,
- SafeArrayIterator,
-} = primordials;
-
-webidl.converters.AlgorithmIdentifier = (V, prefix, context, opts) => {
- // Union for (object or DOMString)
- if (webidl.type(V) == "Object") {
- return webidl.converters.object(V, prefix, context, opts);
- }
- return webidl.converters.DOMString(V, prefix, context, opts);
-};
-
-webidl.converters["BufferSource or JsonWebKey"] = (
- V,
- prefix,
- context,
- opts,
-) => {
- // Union for (BufferSource or JsonWebKey)
- if (
- ArrayBufferIsView(V) ||
- ObjectPrototypeIsPrototypeOf(ArrayBufferPrototype, V)
- ) {
- return webidl.converters.BufferSource(V, prefix, context, opts);
- }
- return webidl.converters.JsonWebKey(V, prefix, context, opts);
-};
-
-webidl.converters.KeyType = webidl.createEnumConverter("KeyType", [
- "public",
- "private",
- "secret",
-]);
-
-webidl.converters.KeyFormat = webidl.createEnumConverter("KeyFormat", [
- "raw",
- "pkcs8",
- "spki",
- "jwk",
-]);
-
-webidl.converters.KeyUsage = webidl.createEnumConverter("KeyUsage", [
- "encrypt",
- "decrypt",
- "sign",
- "verify",
- "deriveKey",
- "deriveBits",
- "wrapKey",
- "unwrapKey",
-]);
-
-webidl.converters["sequence<KeyUsage>"] = webidl.createSequenceConverter(
- webidl.converters.KeyUsage,
-);
-
-webidl.converters.HashAlgorithmIdentifier =
- webidl.converters.AlgorithmIdentifier;
-
-/** @type {webidl.Dictionary} */
-const dictAlgorithm = [{
- key: "name",
- converter: webidl.converters.DOMString,
- required: true,
-}];
-
-webidl.converters.Algorithm = webidl
- .createDictionaryConverter("Algorithm", dictAlgorithm);
-
-webidl.converters.BigInteger = webidl.converters.Uint8Array;
-
-/** @type {webidl.Dictionary} */
-const dictRsaKeyGenParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "modulusLength",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned long"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- required: true,
- },
- {
- key: "publicExponent",
- converter: webidl.converters.BigInteger,
- required: true,
- },
-];
-
-webidl.converters.RsaKeyGenParams = webidl
- .createDictionaryConverter("RsaKeyGenParams", dictRsaKeyGenParams);
-
-const dictRsaHashedKeyGenParams = [
- ...new SafeArrayIterator(dictRsaKeyGenParams),
- {
- key: "hash",
- converter: webidl.converters.HashAlgorithmIdentifier,
- required: true,
- },
-];
-
-webidl.converters.RsaHashedKeyGenParams = webidl.createDictionaryConverter(
- "RsaHashedKeyGenParams",
- dictRsaHashedKeyGenParams,
-);
-
-const dictRsaHashedImportParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "hash",
- converter: webidl.converters.HashAlgorithmIdentifier,
- required: true,
- },
-];
-
-webidl.converters.RsaHashedImportParams = webidl.createDictionaryConverter(
- "RsaHashedImportParams",
- dictRsaHashedImportParams,
-);
-
-webidl.converters.NamedCurve = webidl.converters.DOMString;
-
-const dictEcKeyImportParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "namedCurve",
- converter: webidl.converters.NamedCurve,
- required: true,
- },
-];
-
-webidl.converters.EcKeyImportParams = webidl.createDictionaryConverter(
- "EcKeyImportParams",
- dictEcKeyImportParams,
-);
-
-const dictEcKeyGenParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "namedCurve",
- converter: webidl.converters.NamedCurve,
- required: true,
- },
-];
-
-webidl.converters.EcKeyGenParams = webidl
- .createDictionaryConverter("EcKeyGenParams", dictEcKeyGenParams);
-
-const dictAesKeyGenParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "length",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned short"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- required: true,
- },
-];
-
-webidl.converters.AesKeyGenParams = webidl
- .createDictionaryConverter("AesKeyGenParams", dictAesKeyGenParams);
-
-const dictHmacKeyGenParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "hash",
- converter: webidl.converters.HashAlgorithmIdentifier,
- required: true,
- },
- {
- key: "length",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned long"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- },
-];
-
-webidl.converters.HmacKeyGenParams = webidl
- .createDictionaryConverter("HmacKeyGenParams", dictHmacKeyGenParams);
-
-const dictRsaPssParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "saltLength",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned long"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- required: true,
- },
-];
-
-webidl.converters.RsaPssParams = webidl
- .createDictionaryConverter("RsaPssParams", dictRsaPssParams);
-
-const dictRsaOaepParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "label",
- converter: webidl.converters["BufferSource"],
- },
-];
-
-webidl.converters.RsaOaepParams = webidl
- .createDictionaryConverter("RsaOaepParams", dictRsaOaepParams);
-
-const dictEcdsaParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "hash",
- converter: webidl.converters.HashAlgorithmIdentifier,
- required: true,
- },
-];
-
-webidl.converters["EcdsaParams"] = webidl
- .createDictionaryConverter("EcdsaParams", dictEcdsaParams);
-
-const dictHmacImportParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "hash",
- converter: webidl.converters.HashAlgorithmIdentifier,
- required: true,
- },
- {
- key: "length",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned long"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- },
-];
-
-webidl.converters.HmacImportParams = webidl
- .createDictionaryConverter("HmacImportParams", dictHmacImportParams);
-
-const dictRsaOtherPrimesInfo = [
- {
- key: "r",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "d",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "t",
- converter: webidl.converters["DOMString"],
- },
-];
-
-webidl.converters.RsaOtherPrimesInfo = webidl.createDictionaryConverter(
- "RsaOtherPrimesInfo",
- dictRsaOtherPrimesInfo,
-);
-webidl.converters["sequence<RsaOtherPrimesInfo>"] = webidl
- .createSequenceConverter(
- webidl.converters.RsaOtherPrimesInfo,
- );
-
-const dictJsonWebKey = [
- // Sections 4.2 and 4.3 of RFC7517.
- // https://datatracker.ietf.org/doc/html/rfc7517#section-4
- {
- key: "kty",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "use",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "key_ops",
- converter: webidl.converters["sequence<DOMString>"],
- },
- {
- key: "alg",
- converter: webidl.converters["DOMString"],
- },
- // JSON Web Key Parameters Registration
- {
- key: "ext",
- converter: webidl.converters["boolean"],
- },
- // Section 6 of RFC7518 JSON Web Algorithms
- // https://datatracker.ietf.org/doc/html/rfc7518#section-6
- {
- key: "crv",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "x",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "y",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "d",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "n",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "e",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "p",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "q",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "dp",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "dq",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "qi",
- converter: webidl.converters["DOMString"],
- },
- {
- key: "oth",
- converter: webidl.converters["sequence<RsaOtherPrimesInfo>"],
- },
- {
- key: "k",
- converter: webidl.converters["DOMString"],
- },
-];
-
-webidl.converters.JsonWebKey = webidl.createDictionaryConverter(
- "JsonWebKey",
- dictJsonWebKey,
-);
-
-const dictHkdfParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "hash",
- converter: webidl.converters.HashAlgorithmIdentifier,
- required: true,
- },
- {
- key: "salt",
- converter: webidl.converters["BufferSource"],
- required: true,
- },
- {
- key: "info",
- converter: webidl.converters["BufferSource"],
- required: true,
- },
-];
-
-webidl.converters.HkdfParams = webidl
- .createDictionaryConverter("HkdfParams", dictHkdfParams);
-
-const dictPbkdf2Params = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "hash",
- converter: webidl.converters.HashAlgorithmIdentifier,
- required: true,
- },
- {
- key: "iterations",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned long"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- required: true,
- },
- {
- key: "salt",
- converter: webidl.converters["BufferSource"],
- required: true,
- },
-];
-
-webidl.converters.Pbkdf2Params = webidl
- .createDictionaryConverter("Pbkdf2Params", dictPbkdf2Params);
-
-const dictAesDerivedKeyParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "length",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned long"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- required: true,
- },
-];
-
-const dictAesCbcParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "iv",
- converter: webidl.converters["BufferSource"],
- required: true,
- },
-];
-
-const dictAesGcmParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "iv",
- converter: webidl.converters["BufferSource"],
- required: true,
- },
- {
- key: "tagLength",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned long"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- },
- {
- key: "additionalData",
- converter: webidl.converters["BufferSource"],
- },
-];
-
-const dictAesCtrParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "counter",
- converter: webidl.converters["BufferSource"],
- required: true,
- },
- {
- key: "length",
- converter: (V, prefix, context, opts) =>
- webidl.converters["unsigned short"](V, prefix, context, {
- ...opts,
- enforceRange: true,
- }),
- required: true,
- },
-];
-
-webidl.converters.AesDerivedKeyParams = webidl
- .createDictionaryConverter("AesDerivedKeyParams", dictAesDerivedKeyParams);
-
-webidl.converters.AesCbcParams = webidl
- .createDictionaryConverter("AesCbcParams", dictAesCbcParams);
-
-webidl.converters.AesGcmParams = webidl
- .createDictionaryConverter("AesGcmParams", dictAesGcmParams);
-
-webidl.converters.AesCtrParams = webidl
- .createDictionaryConverter("AesCtrParams", dictAesCtrParams);
-
-webidl.converters.CryptoKey = webidl.createInterfaceConverter(
- "CryptoKey",
- CryptoKey.prototype,
-);
-
-const dictCryptoKeyPair = [
- {
- key: "publicKey",
- converter: webidl.converters.CryptoKey,
- },
- {
- key: "privateKey",
- converter: webidl.converters.CryptoKey,
- },
-];
-
-webidl.converters.CryptoKeyPair = webidl
- .createDictionaryConverter("CryptoKeyPair", dictCryptoKeyPair);
-
-const dictEcdhKeyDeriveParams = [
- ...new SafeArrayIterator(dictAlgorithm),
- {
- key: "public",
- converter: webidl.converters.CryptoKey,
- required: true,
- },
-];
-
-webidl.converters.EcdhKeyDeriveParams = webidl
- .createDictionaryConverter("EcdhKeyDeriveParams", dictEcdhKeyDeriveParams);
diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs
index 695cc3abd..f481f97f6 100644
--- a/ext/crypto/lib.rs
+++ b/ext/crypto/lib.rs
@@ -103,7 +103,7 @@ deno_core::extension!(deno_crypto,
x25519::op_crypto_export_spki_x25519,
x25519::op_crypto_export_pkcs8_x25519,
],
- esm = [ "00_crypto.js", "01_webidl.js" ],
+ esm = [ "00_crypto.js" ],
options = {
maybe_seed: Option<u64>,
},
diff --git a/ext/web/09_file.js b/ext/web/09_file.js
index a81176b38..d65a512f9 100644
--- a/ext/web/09_file.js
+++ b/ext/web/09_file.js
@@ -14,6 +14,7 @@ const core = globalThis.Deno.core;
const ops = core.ops;
import * as webidl from "ext:deno_webidl/00_webidl.js";
import { ReadableStream } from "ext:deno_web/06_streams.js";
+import { URL } from "ext:deno_url/00_url.js";
const primordials = globalThis.__bootstrap.primordials;
const {
ArrayBufferPrototype,
@@ -653,6 +654,33 @@ function blobFromObjectUrl(url) {
return blob;
}
+/**
+ * @param {Blob} blob
+ * @returns {string}
+ */
+function createObjectURL(blob) {
+ const prefix = "Failed to execute 'createObjectURL' on 'URL'";
+ webidl.requiredArguments(arguments.length, 1, prefix);
+ blob = webidl.converters["Blob"](blob, prefix, "Argument 1");
+
+ return ops.op_blob_create_object_url(blob.type, getParts(blob));
+}
+
+/**
+ * @param {string} url
+ * @returns {void}
+ */
+function revokeObjectURL(url) {
+ const prefix = "Failed to execute 'revokeObjectURL' on 'URL'";
+ webidl.requiredArguments(arguments.length, 1, prefix);
+ url = webidl.converters["DOMString"](url, prefix, "Argument 1");
+
+ ops.op_blob_revoke_object_url(url);
+}
+
+URL.createObjectURL = createObjectURL;
+URL.revokeObjectURL = revokeObjectURL;
+
export {
Blob,
blobFromObjectUrl,
diff --git a/ext/web/11_blob_url.js b/ext/web/11_blob_url.js
deleted file mode 100644
index 3ac240d90..000000000
--- a/ext/web/11_blob_url.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-
-// @ts-check
-/// <reference no-default-lib="true" />
-/// <reference path="../../core/lib.deno_core.d.ts" />
-/// <reference path="../webidl/internal.d.ts" />
-/// <reference path="../web/internal.d.ts" />
-/// <reference path="../web/lib.deno_web.d.ts" />
-/// <reference path="../url/internal.d.ts" />
-/// <reference path="../url/lib.deno_url.d.ts" />
-/// <reference path="./internal.d.ts" />
-/// <reference lib="esnext" />
-
-const core = globalThis.Deno.core;
-const ops = core.ops;
-import * as webidl from "ext:deno_webidl/00_webidl.js";
-import { getParts } from "ext:deno_web/09_file.js";
-import { URL } from "ext:deno_url/00_url.js";
-
-/**
- * @param {Blob} blob
- * @returns {string}
- */
-function createObjectURL(blob) {
- const prefix = "Failed to execute 'createObjectURL' on 'URL'";
- webidl.requiredArguments(arguments.length, 1, prefix);
- blob = webidl.converters["Blob"](blob, prefix, "Argument 1");
-
- return ops.op_blob_create_object_url(blob.type, getParts(blob));
-}
-
-/**
- * @param {string} url
- * @returns {void}
- */
-function revokeObjectURL(url) {
- const prefix = "Failed to execute 'revokeObjectURL' on 'URL'";
- webidl.requiredArguments(arguments.length, 1, prefix);
- url = webidl.converters["DOMString"](url, prefix, "Argument 1");
-
- ops.op_blob_revoke_object_url(url);
-}
-
-URL.createObjectURL = createObjectURL;
-URL.revokeObjectURL = revokeObjectURL;
diff --git a/ext/web/lib.rs b/ext/web/lib.rs
index b0dc0d56d..3f4468f1f 100644
--- a/ext/web/lib.rs
+++ b/ext/web/lib.rs
@@ -103,7 +103,6 @@ deno_core::extension!(deno_web,
"08_text_encoding.js",
"09_file.js",
"10_filereader.js",
- "11_blob_url.js",
"12_location.js",
"13_message_port.js",
"14_compression.js",