From bbaa1384e727710e346ec97fc07cb2e27a727f2e Mon Sep 17 00:00:00 2001 From: Josh Vlk Date: Wed, 22 Apr 2026 12:24:45 -0400 Subject: [PATCH 1/7] docs: add unmonorepo WebApi design spec --- .../2026-04-22-unmonorepo-webapi-design.md | 246 ++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 docs/superpowers/specs/2026-04-22-unmonorepo-webapi-design.md diff --git a/docs/superpowers/specs/2026-04-22-unmonorepo-webapi-design.md b/docs/superpowers/specs/2026-04-22-unmonorepo-webapi-design.md new file mode 100644 index 0000000..761808d --- /dev/null +++ b/docs/superpowers/specs/2026-04-22-unmonorepo-webapi-design.md @@ -0,0 +1,246 @@ +# Unmonorepo WebApi Design + +**Date:** 2026-04-22 +**Status:** Approved in conversation, written for review before implementation + +## Context + +The repository was split into npm workspaces so each Web API area could build and publish independently from `packages/*`. The ReScript compiler now supports feature-gated source directories and feature-gated dependencies, so the package split is no longer required to support partial builds. + +The new target is a single published npm package, `@rescript/webapi`, with a unified internal build and an external API that still preserves feature-level boundaries such as `WebApi.DOM`, `WebApi.Fetch`, and `WebApi.Base`. + +## Goals + +- Remove the monorepo/workspace package split. +- Move all feature sources from `packages//src` to `src/`. +- Delete every subpackage `package.json` and `rescript.json`. +- Make the root `rescript.json` the single source of truth for sources, features, and ReScript dependencies. +- Preserve the logical public API boundaries as `WebApi.`. +- Keep internal helper modules private through the new `public` source setting. +- Publish one npm package: `@rescript/webapi`. +- Let internal builds and downstream consumers compile only the features they need. + +## Non-Goals + +- This change does not redesign the feature taxonomy. +- This change does not flatten the public API into one global namespace. +- This change does not preserve the old multi-package publish flow. + +## Repository Structure + +### Before + +- `packages/Base/src` +- `packages/DOM/src` +- `packages/Fetch/src` +- One `package.json` and one `rescript.json` per package +- Root npm workspaces pointing at `packages/*` + +### After + +- `src/Base` +- `src/DOM` +- `src/Fetch` +- One root `package.json` +- One root `rescript.json` +- No npm workspaces + +Each former package directory remains a logical feature boundary, but only as source layout and public API grouping, not as an npm workspace. + +## Root `rescript.json` + +The root `rescript.json` becomes the canonical build definition for the entire repo. + +### Sources + +Each former package source directory is listed as its own source entry. Example shape: + +```json +{ + "name": "@rescript/webapi", + "sources": [ + { + "dir": "src/DOM", + "subdirs": true, + "feature": "WebApi.DOM", + "public": ["DOM"] + }, + { + "dir": "src/Fetch", + "subdirs": true, + "feature": "WebApi.Fetch", + "public": ["Fetch"] + }, + { + "dir": "tests", + "subdirs": true, + "type": "dev" + } + ] +} +``` + +Rules: + +- Every former package gets one root source entry. +- The `feature` value matches the public module name, for example `"WebApi.DOM"` and `"WebApi.Fetch"`. +- The `public` list exposes only the feature entry module for that source directory. +- Helper modules such as `DomTypes` and `DomGlobal` stay internal because they are not listed in `public`. +- `tests` remains a dev-only source. + +### Dependencies + +The root `dependencies` section in `rescript.json` should only describe real package dependencies after the unmonorepo migration. + +The current per-package `rescript.json` files mostly depend on other workspace packages from the same repository. Once everything lives inside one ReScript package, those internal relationships should become normal module references inside the unified package rather than package dependencies. + +Feature-gated dependency objects are still available when the unified package needs to depend on an external ReScript package only for a subset of features, but that is not the primary migration mechanism for replacing the old workspace graph. + +Example: + +```json +{ + "dependencies": [ + "@plain/dep", + { "name": "@other/heavy", "features": ["WebApi.WebCrypto"] } + ] +} +``` + +Migration rule: + +- Remove internal package-to-package dependencies that only existed because of the workspace split. +- Keep or add root `dependencies` entries only for actual external ReScript packages. +- Use feature-gated dependency objects only when an external dependency truly belongs to a subset of the unified API surface. + +## Public API Shape + +The public API remains feature-oriented: + +- `WebApi.Base` +- `WebApi.DOM` +- `WebApi.Fetch` +- `WebApi.WebCrypto` +- and the rest of the former package surfaces + +The unified build must not expose raw internal file modules as first-class public API. Consumers should interact with a curated surface through the feature entry modules only. + +Each feature directory therefore needs one public entry module whose filename matches the feature name: + +- `src/DOM/DOM.res` +- `src/Fetch/Fetch.res` +- `src/Base/Base.res` + +Those entry modules are the only modules exported from their source directory through `public`. + +## Internal Module Naming + +The current workspace layout relied on per-package namespaces, which allowed repeated generic file names such as: + +- `Types.res` +- `Global.res` +- `Event.res` +- `File.res` +- `HTMLMediaElement.res` + +In a unified package these names would collide, so the migration must rename generic internal modules to feature-qualified names. + +Examples: + +- `src/DOM/Types.res` -> `src/DOM/DomTypes.res` +- `src/DOM/Global.res` -> `src/DOM/DomGlobal.res` +- `src/Fetch/Global.res` -> `src/Fetch/FetchGlobal.res` +- `src/Base/Event.res` -> `src/Base/BaseEvent.res` +- `src/File/Types.res` -> `src/File/FileTypes.res` + +Naming rule: + +- Prefix internal modules with the feature’s public module stem. +- Keep the public entry module itself unprefixed when it is the exported surface module, for example `DOM.res` and `Fetch.res`. + +This keeps the public API stable while making the unified internal module graph collision-free. + +## Publishing And Package Metadata + +The root `package.json` becomes the only published npm package definition. + +Required changes: + +- Rename the package to `@rescript/webapi`. +- Remove the `workspaces` field. +- Remove workspace-oriented scripts such as `build:packages`. +- Replace multi-workspace publishing with a single-package publish flow from the repo root. +- Replace any placeholder-package tooling that exists only to reserve or publish subpackage names. + +The published package contents should include the files needed for one ReScript package rather than many workspace packages. + +## Tooling And CI Updates + +Any tooling that assumes the workspace layout must be updated to the new unified structure. + +Known affected areas: + +- `scripts/create-npm-packages.js` +- `.github/workflows/ci.yml` +- `docs/llm.js` +- Documentation that references multiple packages or workspace publishing + +Expected changes: + +- CI should build and package only the root package. +- Publish jobs should run one `npm publish` from the root package, not loop over `packages/*`. +- Source discovery scripts should read from `src/*` instead of `packages/*/src`. +- Documentation should instruct consumers to install `@rescript/webapi`. + +## Data Flow And Build Model + +The build becomes unified at the repository level: + +1. ReScript reads the root `rescript.json`. +2. Each feature source directory is included in the build graph. +3. Feature gating determines which source directories and gated dependencies participate in a given build. +4. Only the explicitly public feature entry modules are exposed to consumers. +5. Internal helper modules remain compile-time implementation details. + +This provides one coherent package without losing the ability to compile narrower slices of the API surface. + +## Migration Strategy + +Implementation should proceed in this order: + +1. Add the new root `src/` layout. +2. Move source files out of `packages/*/src`. +3. Rename internal generic modules to feature-qualified names. +4. Update intra-feature and cross-feature references to the new module names. +5. Rewrite the root `rescript.json` sources and dependencies. +6. Remove subpackage `rescript.json` and `package.json` files. +7. Rewrite root npm metadata and publish scripts for a single package. +8. Update docs and CI for the new layout. + +This order minimizes the time spent in a partially migrated state with broken module references. + +## Testing And Verification + +Implementation should verify: + +- Full repo build succeeds from the root package. +- Tests still run successfully from the root package. +- Feature-gated builds can compile selected features without pulling the entire surface area. +- Internal helper modules are not exposed through source `public` settings. +- Packaging and publish dry-run operate on the single root package. + +The most important regression risks are: + +- Broken module references after internal renames +- Leaving stale internal package dependencies in root `rescript.json` +- Accidentally public helper modules +- CI or publish logic still assuming workspaces + +## Open Decisions Already Resolved + +- Use a single package instead of npm workspaces. +- Preserve feature boundaries in the external API. +- Use `WebApi.*` spelling, not `WebAPI.*`. +- Map feature names to public module names such as `"WebApi.DOM"`. +- Rename generic internal modules to feature-qualified names. +- Use source-level `public` settings so only the feature entry module is exposed. From d164c9786bc528f29aca92e1c14f1db33ab14979 Mon Sep 17 00:00:00 2001 From: Josh Vlk Date: Wed, 22 Apr 2026 12:50:21 -0400 Subject: [PATCH 2/7] chore: ignore local worktrees --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 80164aa..e06fc86 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ dist/ tmp/ docs/public/llm.txt *~ +.worktrees/ **/lib/bs/ **/lib/ocaml @@ -14,4 +15,4 @@ docs/public/llm.txt rescript.lock -**/*.res.js \ No newline at end of file +**/*.res.js From daaa3bebab9dc51626679a61d3750f8ff750d735 Mon Sep 17 00:00:00 2001 From: Josh Vlk Date: Wed, 22 Apr 2026 12:51:43 -0400 Subject: [PATCH 3/7] test: add unmonorepo feature spec helpers --- scripts/unmonorepo/feature-spec.mjs | 105 +++++++++++++++++++++++++ tests/unmonorepo/feature-spec.test.mjs | 46 +++++++++++ 2 files changed, 151 insertions(+) create mode 100644 scripts/unmonorepo/feature-spec.mjs create mode 100644 tests/unmonorepo/feature-spec.test.mjs diff --git a/scripts/unmonorepo/feature-spec.mjs b/scripts/unmonorepo/feature-spec.mjs new file mode 100644 index 0000000..30f16d2 --- /dev/null +++ b/scripts/unmonorepo/feature-spec.mjs @@ -0,0 +1,105 @@ +import fs from "node:fs"; +import path from "node:path"; + +export function namespaceToPublicModule(namespace) { + if (!namespace.startsWith("WebApi")) { + throw new Error(`Unsupported namespace: ${namespace}`); + } + + return namespace.slice("WebApi".length); +} + +export function publicModuleToInternalPrefix(publicModule) { + return publicModule.replace(/[A-Z]+(?=[A-Z][a-z]|$)|[A-Z][a-z]*/g, (part) => { + return part[0] + part.slice(1).toLowerCase(); + }); +} + +export function publicNameForLeafModule(leafName, internalPrefix) { + const duplicatedSuffixes = ["Types", "Global", "Event", "File", "HTMLMediaElement"]; + + for (const suffix of duplicatedSuffixes) { + if (leafName === `${internalPrefix}${suffix}`) { + return suffix; + } + } + + return leafName; +} + +export const featureSpecs = [ + ["Base", "WebApiBase"], + ["CSSFontLoading", "WebApiCSSFontLoading"], + ["Canvas", "WebApiCanvas"], + ["ChannelMessaging", "WebApiChannelMessaging"], + ["Clipboard", "WebApiClipboard"], + ["CredentialManagement", "WebApiCredentialManagement"], + ["DOM", "WebApiDOM"], + ["EncryptedMediaExtensions", "WebApiEncryptedMediaExtensions"], + ["Event", "WebApiEvent"], + ["Fetch", "WebApiFetch"], + ["File", "WebApiFile"], + ["FileAndDirectoryEntries", "WebApiFileAndDirectoryEntries"], + ["Gamepad", "WebApiGamepad"], + ["Geolocation", "WebApiGeolocation"], + ["History", "WebApiHistory"], + ["IndexedDB", "WebApiIndexedDB"], + ["IntersectionObserver", "WebApiIntersectionObserver"], + ["MediaCapabilities", "WebApiMediaCapabilities"], + ["MediaCaptureAndStreams", "WebApiMediaCaptureAndStreams"], + ["MediaSession", "WebApiMediaSession"], + ["MutationObserver", "WebApiMutationObserver"], + ["Notification", "WebApiNotification"], + ["Performance", "WebApiPerformance"], + ["Permissions", "WebApiPermissions"], + ["PictureInPicture", "WebApiPictureInPicture"], + ["Push", "WebApiPush"], + ["RemotePlayback", "WebApiRemotePlayback"], + ["ResizeObserver", "WebApiResizeObserver"], + ["ScreenWakeLock", "WebApiScreenWakeLock"], + ["ServiceWorker", "WebApiServiceWorker"], + ["Storage", "WebApiStorage"], + ["UIEvents", "WebApiUIEvents"], + ["URL", "WebApiURL"], + ["ViewTransitions", "WebApiViewTransitions"], + ["VisualViewport", "WebApiVisualViewport"], + ["WebAudio", "WebApiWebAudio"], + ["WebCrypto", "WebApiWebCrypto"], + ["WebLocks", "WebApiWebLocks"], + ["WebMIDI", "WebApiWebMIDI"], + ["WebSockets", "WebApiWebSockets"], + ["WebSpeech", "WebApiWebSpeech"], + ["WebStorage", "WebApiWebStorage"], + ["WebVTT", "WebApiWebVTT"], + ["WebWorkers", "WebApiWebWorkers"], +].map(([dirName, legacyNamespace]) => { + const publicModule = namespaceToPublicModule(legacyNamespace); + + return { + dirName, + legacyNamespace, + publicModule, + featureName: `WebApi.${publicModule}`, + internalPrefix: publicModuleToInternalPrefix(publicModule), + sourceDir: `src/${dirName}`, + entryModulePath: `src/${dirName}/${publicModule}.res`, + }; +}); + +export function findDuplicateLeafModules(rootDir, specs = featureSpecs) { + const counts = new Map(); + + for (const spec of specs) { + const legacySourceDir = path.join(rootDir, "packages", spec.dirName, "src"); + if (!fs.existsSync(legacySourceDir)) continue; + + for (const entry of fs.readdirSync(legacySourceDir, { withFileTypes: true })) { + if (!entry.isFile() || !entry.name.endsWith(".res")) continue; + + const leafName = path.basename(entry.name, ".res"); + counts.set(leafName, (counts.get(leafName) ?? 0) + 1); + } + } + + return new Set([...counts.entries()].filter(([, count]) => count > 1).map(([leafName]) => leafName)); +} diff --git a/tests/unmonorepo/feature-spec.test.mjs b/tests/unmonorepo/feature-spec.test.mjs new file mode 100644 index 0000000..0df72b9 --- /dev/null +++ b/tests/unmonorepo/feature-spec.test.mjs @@ -0,0 +1,46 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { + featureSpecs, + publicModuleToInternalPrefix, + publicNameForLeafModule, +} from "../../scripts/unmonorepo/feature-spec.mjs"; + +test("defines all legacy feature mappings used by the unmonorepo migration", () => { + assert.deepEqual( + featureSpecs + .filter(({ dirName }) => dirName === "Base" || dirName === "DOM") + .map(({ dirName, legacyNamespace, publicModule, featureName, internalPrefix }) => ({ + dirName, + legacyNamespace, + publicModule, + featureName, + internalPrefix, + })), + [ + { + dirName: "Base", + legacyNamespace: "WebApiBase", + publicModule: "Base", + featureName: "WebApi.Base", + internalPrefix: "Base", + }, + { + dirName: "DOM", + legacyNamespace: "WebApiDOM", + publicModule: "DOM", + featureName: "WebApi.DOM", + internalPrefix: "Dom", + }, + ], + ); + + assert.equal(featureSpecs.length, 44); +}); + +test("normalizes internal prefixes and public duplicate names", () => { + assert.equal(publicModuleToInternalPrefix("DOM"), "Dom"); + assert.equal(publicModuleToInternalPrefix("URL"), "Url"); + assert.equal(publicNameForLeafModule("DomTypes", "Dom"), "Types"); + assert.equal(publicNameForLeafModule("Document", "Dom"), "Document"); +}); From fca0d50ffcc2f92c061572d03f1d2f5795b31859 Mon Sep 17 00:00:00 2001 From: Josh Vlk Date: Wed, 22 Apr 2026 12:53:16 -0400 Subject: [PATCH 4/7] test: add layout migration codemod --- scripts/unmonorepo/migrate-layout.mjs | 52 +++++++++++++++++++++ tests/unmonorepo/migrate-layout.test.mjs | 59 ++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 scripts/unmonorepo/migrate-layout.mjs create mode 100644 tests/unmonorepo/migrate-layout.test.mjs diff --git a/scripts/unmonorepo/migrate-layout.mjs b/scripts/unmonorepo/migrate-layout.mjs new file mode 100644 index 0000000..f70ffe6 --- /dev/null +++ b/scripts/unmonorepo/migrate-layout.mjs @@ -0,0 +1,52 @@ +import fs from "node:fs"; +import path from "node:path"; +import { featureSpecs, findDuplicateLeafModules } from "./feature-spec.mjs"; + +function moveFile(fromPath, toPath) { + fs.mkdirSync(path.dirname(toPath), { recursive: true }); + fs.renameSync(fromPath, toPath); +} + +export function migrateLayout(rootDir) { + const duplicateLeaves = findDuplicateLeafModules(rootDir, featureSpecs); + + for (const spec of featureSpecs) { + const legacySourceDir = path.join(rootDir, "packages", spec.dirName, "src"); + if (!fs.existsSync(legacySourceDir)) continue; + + const nextSourceDir = path.join(rootDir, "src", spec.dirName); + fs.mkdirSync(nextSourceDir, { recursive: true }); + + for (const entry of fs.readdirSync(legacySourceDir, { withFileTypes: true })) { + if (!entry.isFile() || !entry.name.endsWith(".res")) continue; + + const leafName = path.basename(entry.name, ".res"); + const nextLeafName = duplicateLeaves.has(leafName) + ? `${spec.internalPrefix}${leafName}` + : leafName; + + moveFile( + path.join(legacySourceDir, entry.name), + path.join(nextSourceDir, `${nextLeafName}.res`), + ); + } + + for (const removable of ["package.json", "rescript.json", "lib"]) { + fs.rmSync(path.join(rootDir, "packages", spec.dirName, removable), { + recursive: true, + force: true, + }); + } + + fs.rmSync(path.join(rootDir, "packages", spec.dirName), { + recursive: true, + force: true, + }); + } + + fs.rmSync(path.join(rootDir, "packages", "Prelude"), { recursive: true, force: true }); +} + +if (process.argv.includes("--write")) { + migrateLayout(process.cwd()); +} diff --git a/tests/unmonorepo/migrate-layout.test.mjs b/tests/unmonorepo/migrate-layout.test.mjs new file mode 100644 index 0000000..7796c28 --- /dev/null +++ b/tests/unmonorepo/migrate-layout.test.mjs @@ -0,0 +1,59 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { mkdtempSync, mkdirSync, readFileSync, writeFileSync, existsSync } from "node:fs"; +import { tmpdir } from "node:os"; +import path from "node:path"; +import { migrateLayout } from "../../scripts/unmonorepo/migrate-layout.mjs"; + +function writePackage(root, dir, namespace, files) { + const packageDir = path.join(root, "packages", dir); + mkdirSync(path.join(packageDir, "src"), { recursive: true }); + writeFileSync(path.join(packageDir, "rescript.json"), JSON.stringify({ namespace })); + writeFileSync(path.join(packageDir, "package.json"), JSON.stringify({ name: dir })); + + for (const [name, contents] of Object.entries(files)) { + writeFileSync(path.join(packageDir, "src", name), contents); + } +} + +test("moves legacy sources into src/, renames duplicate leaves, and removes workspace metadata", () => { + const root = mkdtempSync(path.join(tmpdir(), "webapi-layout-")); + + writePackage(root, "DOM", "WebApiDOM", { + "Document.res": "let current = WebApiDOM.Global.document", + "Types.res": "type element", + "Global.res": "let document = 1", + }); + + writePackage(root, "Fetch", "WebApiFetch", { + "Global.res": "let fetch = 1", + "Types.res": "type request", + "Headers.res": "type t", + }); + + mkdirSync(path.join(root, "packages", "Prelude", "lib"), { recursive: true }); + + migrateLayout(root); + + assert.equal( + readFileSync(path.join(root, "src", "DOM", "Document.res"), "utf8"), + "let current = WebApiDOM.Global.document", + ); + assert.equal(readFileSync(path.join(root, "src", "DOM", "DomTypes.res"), "utf8"), "type element"); + assert.equal( + readFileSync(path.join(root, "src", "DOM", "DomGlobal.res"), "utf8"), + "let document = 1", + ); + assert.equal( + readFileSync(path.join(root, "src", "Fetch", "FetchGlobal.res"), "utf8"), + "let fetch = 1", + ); + assert.equal( + readFileSync(path.join(root, "src", "Fetch", "FetchTypes.res"), "utf8"), + "type request", + ); + assert.ok(!existsSync(path.join(root, "packages", "DOM", "rescript.json"))); + assert.ok(!existsSync(path.join(root, "packages", "DOM", "package.json"))); + assert.ok(!existsSync(path.join(root, "packages", "DOM"))); + assert.ok(!existsSync(path.join(root, "packages", "Prelude"))); +}); From 2e1b99711d8018e28fd2870bf6617efd611f1b97 Mon Sep 17 00:00:00 2001 From: Josh Vlk Date: Wed, 22 Apr 2026 13:10:51 -0400 Subject: [PATCH 5/7] refactor: migrate sources to unified feature layout --- packages/Base/package.json | 21 -- packages/Base/rescript.json | 16 -- packages/CSSFontLoading/package.json | 23 -- packages/CSSFontLoading/rescript.json | 19 -- packages/Canvas/package.json | 27 --- packages/Canvas/rescript.json | 22 -- packages/Canvas/src/VideoFrame.res | 140 ----------- packages/ChannelMessaging/package.json | 23 -- packages/ChannelMessaging/rescript.json | 18 -- packages/Clipboard/package.json | 24 -- packages/Clipboard/rescript.json | 19 -- packages/CredentialManagement/package.json | 24 -- packages/CredentialManagement/rescript.json | 19 -- packages/DOM/package.json | 55 ----- packages/DOM/rescript.json | 50 ---- packages/DOM/src/MediaQueryList.res | 1 - packages/DOM/src/TextTrackList.res | 8 - .../EncryptedMediaExtensions/package.json | 25 -- .../EncryptedMediaExtensions/rescript.json | 20 -- packages/Event/package.json | 23 -- packages/Event/rescript.json | 19 -- packages/Fetch/package.json | 26 -- packages/Fetch/rescript.json | 21 -- packages/File/package.json | 23 -- packages/File/rescript.json | 19 -- packages/FileAndDirectoryEntries/package.json | 23 -- .../FileAndDirectoryEntries/rescript.json | 18 -- packages/Gamepad/package.json | 23 -- packages/Gamepad/rescript.json | 18 -- packages/Geolocation/package.json | 21 -- packages/Geolocation/rescript.json | 16 -- packages/History/package.json | 21 -- packages/History/rescript.json | 16 -- packages/IndexedDB/package.json | 24 -- packages/IndexedDB/rescript.json | 19 -- packages/IntersectionObserver/package.json | 23 -- packages/IntersectionObserver/rescript.json | 18 -- .../src/IntersectionObserverRoot.res | 21 -- packages/MediaCapabilities/package.json | 21 -- packages/MediaCapabilities/rescript.json | 16 -- packages/MediaCaptureAndStreams/package.json | 23 -- packages/MediaCaptureAndStreams/rescript.json | 18 -- packages/MediaSession/package.json | 21 -- packages/MediaSession/rescript.json | 16 -- packages/MutationObserver/package.json | 23 -- packages/MutationObserver/rescript.json | 19 -- packages/Notification/package.json | 23 -- packages/Notification/rescript.json | 18 -- packages/Performance/package.json | 23 -- packages/Performance/rescript.json | 18 -- packages/Permissions/package.json | 23 -- packages/Permissions/rescript.json | 18 -- packages/PictureInPicture/package.json | 23 -- packages/PictureInPicture/rescript.json | 18 -- .../PictureInPicture/src/PictureInPicture.res | 3 - packages/Push/package.json | 23 -- packages/Push/rescript.json | 18 -- packages/RemotePlayback/package.json | 23 -- packages/RemotePlayback/rescript.json | 18 -- packages/ResizeObserver/package.json | 23 -- packages/ResizeObserver/rescript.json | 18 -- packages/ScreenWakeLock/package.json | 23 -- packages/ScreenWakeLock/rescript.json | 18 -- packages/ServiceWorker/package.json | 29 --- packages/ServiceWorker/rescript.json | 24 -- packages/ServiceWorker/src/Cache.res | 120 ---------- packages/Storage/package.json | 23 -- packages/Storage/rescript.json | 18 -- packages/UIEvents/package.json | 27 --- packages/UIEvents/rescript.json | 22 -- packages/URL/package.json | 21 -- packages/URL/rescript.json | 16 -- packages/ViewTransitions/package.json | 21 -- packages/ViewTransitions/rescript.json | 16 -- packages/VisualViewport/package.json | 23 -- packages/VisualViewport/rescript.json | 18 -- packages/WebAudio/package.json | 27 --- packages/WebAudio/rescript.json | 22 -- packages/WebCrypto/package.json | 23 -- packages/WebCrypto/rescript.json | 18 -- packages/WebLocks/package.json | 23 -- packages/WebLocks/rescript.json | 18 -- packages/WebMIDI/package.json | 24 -- packages/WebMIDI/rescript.json | 19 -- packages/WebSockets/package.json | 25 -- packages/WebSockets/rescript.json | 20 -- packages/WebSpeech/package.json | 23 -- packages/WebSpeech/rescript.json | 18 -- packages/WebStorage/package.json | 23 -- packages/WebStorage/rescript.json | 18 -- packages/WebVTT/package.json | 23 -- packages/WebVTT/rescript.json | 18 -- packages/WebWorkers/package.json | 26 -- packages/WebWorkers/rescript.json | 21 -- scripts/unmonorepo/feature-spec.mjs | 7 + scripts/unmonorepo/generate-entry-modules.mjs | 43 ++++ scripts/unmonorepo/migrate-layout.mjs | 4 +- scripts/unmonorepo/rewrite-references.mjs | 79 ++++++ .../Base}/ArrayBufferTypedArrayOrDataView.res | 0 src/Base/Base.res | 7 + .../Base/BaseCSSFontLoading.res | 2 +- .../Base/src/DOM.res => src/Base/BaseDOM.res | 184 +++++++------- .../Base/BaseEncryptedMediaExtensions.res | 6 +- .../src/Event.res => src/Base/BaseEvent.res | 2 +- .../src/File.res => src/Base/BaseFile.res | 4 +- .../Base/BaseFileAndDirectoryEntries.res | 4 +- src/CSSFontLoading/CSSFontLoading.res | 3 + .../CSSFontLoading/CssFontLoadingTypes.res | 6 +- .../src => src/CSSFontLoading}/FontFace.res | 0 .../CSSFontLoading}/FontFaceSet.res | 2 +- src/Canvas/Canvas.res | 12 + .../Global.res => src/Canvas/CanvasGlobal.res | 64 ++--- .../src => src/Canvas}/CanvasGradient.res | 0 .../src => src/Canvas}/CanvasPattern.res | 2 +- .../Canvas}/CanvasRenderingContext2D.res | 226 +++++++++--------- .../Types.res => src/Canvas/CanvasTypes.res | 2 +- .../Canvas/src => src/Canvas}/FillStyle.res | 0 .../src => src/Canvas}/HTMLCanvasElement.res | 24 +- .../Canvas/src => src/Canvas}/ImageBitmap.res | 0 .../Canvas}/ImageBitmapRenderingContext.res | 0 .../src => src/Canvas}/OffscreenCanvas.res | 4 +- .../Canvas/src => src/Canvas}/Path2D.res | 2 +- src/Canvas/VideoFrame.res | 140 +++++++++++ src/ChannelMessaging/ChannelMessaging.res | 2 + .../ChannelMessagingTypes.res | 2 +- .../ChannelMessaging}/MessagePort.res | 2 +- .../src => src/Clipboard}/Clipboard.res | 5 +- .../src => src/Clipboard}/ClipboardItem.res | 2 +- .../Clipboard/ClipboardTypes.res | 2 +- .../CredentialManagement.res | 2 + .../CredentialManagementTypes.res | 16 +- .../CredentialsContainer.res | 0 {packages/DOM/src => src/DOM}/Animation.res | 2 +- .../DOM/src => src/DOM}/AnimationEffect.res | 0 {packages/DOM/src => src/DOM}/CSSRuleList.res | 0 .../src => src/DOM}/CSSStyleDeclaration.res | 0 .../DOM/src => src/DOM}/CSSStyleSheet.res | 0 .../DOM/src => src/DOM}/CSSStyleValue.res | 0 .../DOM/src => src/DOM}/CaretPosition.res | 0 .../DOM/src => src/DOM}/CharacterData.res | 0 {packages/DOM/src => src/DOM}/Comment.res | 0 .../src => src/DOM}/CustomElementRegistry.res | 0 src/DOM/DOM.res | 122 ++++++++++ .../DOM/src => src/DOM}/DOMException.res | 2 +- .../DOM/src => src/DOM}/DOMImplementation.res | 0 {packages/DOM/src => src/DOM}/DOMMatrix.res | 0 .../DOM/src => src/DOM}/DOMMatrixReadOnly.res | 0 {packages/DOM/src => src/DOM}/DOMPoint.res | 0 .../DOM/src => src/DOM}/DOMPointReadOnly.res | 0 {packages/DOM/src => src/DOM}/DOMRect.res | 0 {packages/DOM/src => src/DOM}/DOMRectList.res | 0 .../DOM/src => src/DOM}/DOMRectReadOnly.res | 0 .../DOM/src => src/DOM}/DOMStringList.res | 2 +- .../DOM/src => src/DOM}/DOMTokenList.res | 0 {packages/DOM/src => src/DOM}/Document.res | 10 +- .../DOM/src => src/DOM}/DocumentFragment.res | 0 .../DOM/src => src/DOM}/DocumentTimeline.res | 0 .../src/Global.res => src/DOM/DomGlobal.res | 42 ++-- .../DOM/DomHTMLMediaElement.res | 4 +- .../DOM/src/Types.res => src/DOM/DomTypes.res | 160 ++++++------- {packages/DOM/src => src/DOM}/Element.res | 0 .../DOM/src => src/DOM}/ElementInternals.res | 0 {packages/DOM/src => src/DOM}/FileList.res | 2 +- .../DOM/src => src/DOM}/HTMLAnchorElement.res | 0 .../DOM/src => src/DOM}/HTMLAreaElement.res | 0 .../DOM/src => src/DOM}/HTMLAudioElement.res | 0 .../DOM/src => src/DOM}/HTMLBRElement.res | 0 .../DOM/src => src/DOM}/HTMLBaseElement.res | 0 .../DOM/src => src/DOM}/HTMLBodyElement.res | 0 .../DOM/src => src/DOM}/HTMLButtonElement.res | 0 .../DOM/src => src/DOM}/HTMLCollection.res | 0 .../DOM/src => src/DOM}/HTMLDListElement.res | 0 .../DOM/src => src/DOM}/HTMLDataElement.res | 0 .../src => src/DOM}/HTMLDataListElement.res | 0 .../DOM/src => src/DOM}/HTMLDialogElement.res | 0 .../DOM/src => src/DOM}/HTMLDivElement.res | 0 {packages/DOM/src => src/DOM}/HTMLElement.res | 0 .../DOM/src => src/DOM}/HTMLEmbedElement.res | 0 .../src => src/DOM}/HTMLFieldSetElement.res | 0 .../DOM}/HTMLFormControlsCollection.res | 0 .../DOM/src => src/DOM}/HTMLFormElement.res | 2 +- .../src => src/DOM}/HTMLFrameSetElement.res | 0 .../DOM/src => src/DOM}/HTMLHRElement.res | 0 .../DOM/src => src/DOM}/HTMLHeadElement.res | 0 .../src => src/DOM}/HTMLHeadingElement.res | 0 .../DOM/src => src/DOM}/HTMLHtmlElement.res | 0 .../DOM/src => src/DOM}/HTMLIFrameElement.res | 0 .../DOM/src => src/DOM}/HTMLImageElement.res | 0 .../DOM/src => src/DOM}/HTMLInputElement.res | 0 .../DOM/src => src/DOM}/HTMLLIElement.res | 0 .../DOM/src => src/DOM}/HTMLLabelElement.res | 0 .../DOM/src => src/DOM}/HTMLLegendElement.res | 0 .../DOM/src => src/DOM}/HTMLLinkElement.res | 0 .../DOM/src => src/DOM}/HTMLMapElement.res | 0 .../DOM/src => src/DOM}/HTMLMenuElement.res | 0 .../DOM/src => src/DOM}/HTMLMetaElement.res | 0 .../DOM/src => src/DOM}/HTMLMeterElement.res | 0 .../DOM/src => src/DOM}/HTMLModElement.res | 0 .../DOM/src => src/DOM}/HTMLOListElement.res | 0 .../DOM/src => src/DOM}/HTMLObjectElement.res | 0 .../src => src/DOM}/HTMLOptGroupElement.res | 0 .../DOM/src => src/DOM}/HTMLOptionElement.res | 0 .../src => src/DOM}/HTMLOptionsCollection.res | 0 .../DOM/src => src/DOM}/HTMLOutputElement.res | 0 .../src => src/DOM}/HTMLParagraphElement.res | 0 .../src => src/DOM}/HTMLPictureElement.res | 0 .../DOM/src => src/DOM}/HTMLPreElement.res | 0 .../src => src/DOM}/HTMLProgressElement.res | 0 .../DOM/src => src/DOM}/HTMLQuoteElement.res | 0 .../DOM/src => src/DOM}/HTMLScriptElement.res | 0 .../DOM/src => src/DOM}/HTMLSelectElement.res | 0 .../DOM/src => src/DOM}/HTMLSlotElement.res | 0 .../DOM/src => src/DOM}/HTMLSourceElement.res | 0 .../DOM/src => src/DOM}/HTMLSpanElement.res | 0 .../DOM/src => src/DOM}/HTMLStyleElement.res | 0 .../DOM}/HTMLTableCaptionElement.res | 0 .../src => src/DOM}/HTMLTableCellElement.res | 0 .../DOM/src => src/DOM}/HTMLTableElement.res | 0 .../src => src/DOM}/HTMLTableRowElement.res | 0 .../DOM}/HTMLTableSectionElement.res | 0 .../src => src/DOM}/HTMLTemplateElement.res | 0 .../src => src/DOM}/HTMLTextAreaElement.res | 0 .../DOM/src => src/DOM}/HTMLTimeElement.res | 0 .../DOM/src => src/DOM}/HTMLTitleElement.res | 0 .../DOM/src => src/DOM}/HTMLTrackElement.res | 0 .../DOM/src => src/DOM}/HTMLUListElement.res | 0 .../DOM/src => src/DOM}/HTMLVideoElement.res | 2 +- .../DOM/src => src/DOM}/IdleDeadline.res | 0 {packages/DOM/src => src/DOM}/ImageData.res | 0 {packages/DOM/src => src/DOM}/Location.res | 4 +- {packages/DOM/src => src/DOM}/MediaList.res | 0 src/DOM/MediaQueryList.res | 1 + .../DOM/src => src/DOM}/NamedNodeMap.res | 0 {packages/DOM/src => src/DOM}/Navigator.res | 36 +-- {packages/DOM/src => src/DOM}/Node.res | 2 +- {packages/DOM/src => src/DOM}/NodeFilter.res | 0 .../DOM/src => src/DOM}/NodeIterator.res | 0 {packages/DOM/src => src/DOM}/NodeList.res | 0 {packages/DOM/src => src/DOM}/Range.res | 0 .../src => src/DOM}/SVGGraphicsElement.res | 0 {packages/DOM/src => src/DOM}/SVGLength.res | 0 .../DOM/src => src/DOM}/ScreenOrientation.res | 2 +- {packages/DOM/src => src/DOM}/Selection.res | 0 {packages/DOM/src => src/DOM}/ShadowRoot.res | 0 .../DOM/src => src/DOM}/StylePropertyMap.res | 0 .../DOM}/StylePropertyMapReadOnly.res | 0 .../DOM/src => src/DOM}/StyleSheetList.res | 0 {packages/DOM/src => src/DOM}/Text.res | 0 src/DOM/TextTrackList.res | 8 + {packages/DOM/src => src/DOM}/TimeRanges.res | 0 {packages/DOM/src => src/DOM}/TreeWalker.res | 0 .../DOM/src => src/DOM}/VideoColorSpace.res | 0 {packages/DOM/src => src/DOM}/Window.res | 22 +- .../DOM/src => src/DOM}/XPathExpression.res | 0 {packages/DOM/src => src/DOM}/XPathResult.res | 0 .../EncryptedMediaExtensions.res | 6 + ...cryptedMediaExtensionsHTMLMediaElement.res | 4 +- .../EncryptedMediaExtensionsTypes.res | 20 +- .../MediaKeySession.res | 2 +- .../MediaKeyStatusMap.res | 0 .../MediaKeySystemAccess.res | 0 .../EncryptedMediaExtensions}/MediaKeys.res | 0 .../src => src/Event}/AbortController.res | 0 .../Event/src => src/Event}/AbortSignal.res | 0 src/Event/Event.res | 6 + .../src/Event.res => src/Event/EventEvent.res | 0 .../Event/src => src/Event}/EventTarget.res | 0 .../src/Types.res => src/Event/EventTypes.res | 4 +- .../src => src/Event}/ExtendableEvent.res | 0 .../Fetch/src => src/Fetch}/BodyInit.res | 8 +- src/Fetch/Fetch.res | 9 + .../Global.res => src/Fetch/FetchGlobal.res | 0 .../src/Types.res => src/Fetch/FetchTypes.res | 14 +- .../Fetch/src => src/Fetch}/FormData.res | 4 +- .../src => src/Fetch}/FormDataEntryValue.res | 0 {packages/Fetch/src => src/Fetch}/Headers.res | 0 .../Fetch/src => src/Fetch}/HeadersInit.res | 0 {packages/Fetch/src => src/Fetch}/Request.res | 2 +- .../Fetch/src => src/Fetch}/Response.res | 10 +- {packages/File/src => src/File}/Blob.res | 0 src/File/File.res | 10 + .../src/File.res => src/File/FileFile.res | 0 .../File}/FileSystemDirectoryHandle.res | 0 .../src => src/File}/FileSystemFileHandle.res | 0 .../src => src/File}/FileSystemHandle.res | 0 .../File}/FileSystemWritableFileStream.res | 0 .../src/Types.res => src/File/FileTypes.res | 10 +- .../File/src => src/File}/ReadableStream.res | 0 .../File/src => src/File}/WritableStream.res | 0 .../File}/WritableStreamDefaultController.res | 0 .../FileAndDirectoryEntries.res | 4 + .../FileAndDirectoryEntriesTypes.res | 8 +- .../FileSystemDirectoryEntry.res | 0 .../FileSystemDirectoryReader.res | 0 .../FileSystemEntry.res | 0 src/Gamepad/Gamepad.res | 2 + .../Gamepad}/GamepadHapticActuator.res | 0 .../Types.res => src/Gamepad/GamepadTypes.res | 0 .../src => src/Geolocation}/Geolocation.res | 4 + .../Geolocation}/GeolocationCoordinates.res | 0 .../Geolocation}/GeolocationPosition.res | 0 .../Geolocation/GeolocationTypes.res | 0 .../History/src => src/History}/History.res | 2 + .../Types.res => src/History/HistoryTypes.res | 0 .../src => src/IndexedDB}/IDBDatabase.res | 2 +- .../src => src/IndexedDB}/IDBFactory.res | 0 .../src => src/IndexedDB}/IDBIndex.res | 0 .../src => src/IndexedDB}/IDBObjectStore.res | 0 .../src => src/IndexedDB}/IDBTransaction.res | 2 +- src/IndexedDB/IndexedDB.res | 6 + .../IndexedDB/IndexedDbTypes.res | 18 +- .../IntersectionObserver.res | 7 +- .../IntersectionObserverRoot.res | 21 ++ .../IntersectionObserverTypes.res | 8 +- .../MediaCapabilities}/MediaCapabilities.res | 2 + .../MediaCapabilitiesTypes.res | 0 .../MediaCaptureAndStreams.res | 5 + .../MediaCaptureAndStreamsTypes.res | 6 +- .../MediaDeviceInfo.res | 0 .../MediaCaptureAndStreams}/MediaDevices.res | 2 +- .../MediaCaptureAndStreams}/MediaStream.res | 2 +- .../MediaStreamTrack.res | 2 +- .../MediaSession}/MediaMetadata.res | 0 .../src => src/MediaSession}/MediaSession.res | 3 + .../MediaSession/MediaSessionTypes.res | 0 .../MutationObserver}/MutationObserver.res | 6 +- .../MutationObserverTypes.res | 2 +- .../src => src/Notification}/Notification.res | 4 +- .../Notification/NotificationTypes.res | 4 +- .../src => src/Performance}/Performance.res | 6 +- .../Performance}/PerformanceEntry.res | 0 .../Performance}/PerformanceMark.res | 0 .../Performance/PerformanceTypes.res | 2 +- .../src => src/Permissions}/Permissions.res | 2 + .../Permissions/PermissionsTypes.res | 2 +- src/PictureInPicture/PictureInPicture.res | 5 + .../PictureInPictureTypes.res | 2 +- .../src => src/Push}/ApplicationServerKey.res | 0 src/Push/Push.res | 6 + {packages/Push/src => src/Push}/PushEvent.res | 2 +- .../Push/src => src/Push}/PushManager.res | 0 .../Push/src => src/Push}/PushMessageData.res | 0 .../src => src/Push}/PushSubscription.res | 0 .../src/Types.res => src/Push/PushTypes.res | 2 +- .../RemotePlayback}/RemotePlayback.res | 4 +- .../RemotePlayback/RemotePlaybackTypes.res | 2 +- .../ResizeObserver}/ResizeObserver.res | 6 +- .../ResizeObserver/ResizeObserverTypes.res | 4 +- src/ScreenWakeLock/ScreenWakeLock.res | 3 + .../ScreenWakeLock/ScreenWakeLockTypes.res | 2 +- .../src => src/ScreenWakeLock}/WakeLock.res | 0 .../ScreenWakeLock}/WakeLockSentinel.res | 2 +- src/ServiceWorker/Cache.res | 120 ++++++++++ .../src => src/ServiceWorker}/Clients.res | 0 .../NavigationPreloadManager.res | 0 .../ServiceWorker}/ServiceWorker.res | 14 +- .../ServiceWorker}/ServiceWorkerContainer.res | 2 +- .../ServiceWorkerGlobalScope.res | 2 +- .../ServiceWorkerRegistration.res | 8 +- .../ServiceWorker/ServiceWorkerTypes.res | 14 +- src/Storage/Storage.res | 2 + .../src => src/Storage}/StorageManager.res | 2 +- .../Types.res => src/Storage/StorageTypes.res | 0 .../src => src/UIEvents}/CompositionEvent.res | 0 .../src => src/UIEvents}/DataTransfer.res | 2 +- .../src => src/UIEvents}/DataTransferItem.res | 6 +- .../UIEvents}/DataTransferItemList.res | 2 +- .../src => src/UIEvents}/FocusEvent.res | 0 .../src => src/UIEvents}/InputEvent.res | 2 +- .../src => src/UIEvents}/KeyboardEvent.res | 0 .../src => src/UIEvents}/MouseEvent.res | 0 .../src => src/UIEvents}/PointerEvent.res | 0 .../UIEvents/src => src/UIEvents}/Touch.res | 0 .../src => src/UIEvents}/TouchEvent.res | 0 .../src => src/UIEvents}/TouchList.res | 0 .../UIEvents/src => src/UIEvents}/UIEvent.res | 2 +- src/UIEvents/UIEvents.res | 15 ++ .../UIEvents/UiEventsTypes.res | 24 +- .../src => src/UIEvents}/WheelEvent.res | 0 {packages/URL/src => src/URL}/URL.res | 3 + .../URL/src => src/URL}/URLSearchParams.res | 0 .../URL/src/Types.res => src/URL/UrlTypes.res | 0 .../ViewTransitions}/ViewTransition.res | 0 src/ViewTransitions/ViewTransitions.res | 2 + .../ViewTransitions/ViewTransitionsTypes.res | 0 src/VisualViewport/VisualViewport.res | 1 + .../VisualViewport/VisualViewportTypes.res | 2 +- .../src => src/WebAudio}/AnalyserNode.res | 0 .../src => src/WebAudio}/AudioBuffer.res | 0 .../WebAudio}/AudioBufferSourceNode.res | 0 .../src => src/WebAudio}/AudioContext.res | 4 +- .../WebAudio}/AudioDestinationNode.res | 0 .../src => src/WebAudio}/AudioNode.res | 2 +- .../src => src/WebAudio}/AudioParam.res | 0 .../WebAudio}/AudioProcessingEvent.res | 2 +- .../WebAudio}/AudioScheduledSourceNode.res | 0 .../src => src/WebAudio}/AudioWorkletNode.res | 0 .../src => src/WebAudio}/BaseAudioContext.res | 2 +- .../src => src/WebAudio}/BiquadFilterNode.res | 0 .../WebAudio}/ChannelMergerNode.res | 0 .../WebAudio}/ChannelSplitterNode.res | 0 .../WebAudio}/ConstantSourceNode.res | 0 .../src => src/WebAudio}/ConvolverNode.res | 0 .../src => src/WebAudio}/DelayNode.res | 0 .../WebAudio}/DynamicsCompressorNode.res | 0 .../src => src/WebAudio}/GainNode.res | 0 .../src => src/WebAudio}/IIRFilterNode.res | 0 .../WebAudio}/MediaElementAudioSourceNode.res | 0 .../MediaStreamAudioDestinationNode.res | 0 .../WebAudio}/MediaStreamAudioSourceNode.res | 0 .../WebAudio}/OfflineAudioCompletionEvent.res | 2 +- .../WebAudio}/OfflineAudioContext.res | 0 .../src => src/WebAudio}/OscillatorNode.res | 0 .../src => src/WebAudio}/PannerNode.res | 0 .../src => src/WebAudio}/PeriodicWave.res | 0 .../src => src/WebAudio}/StereoPannerNode.res | 0 .../src => src/WebAudio}/WaveShaperNode.res | 0 src/WebAudio/WebAudio.res | 32 +++ .../WebAudio/WebAudioTypes.res | 44 ++-- .../WebAudio/src => src/WebAudio}/Worklet.res | 0 .../src => src/WebCrypto}/Crypto.res | 0 .../src => src/WebCrypto}/SubtleCrypto.res | 16 +- src/WebCrypto/WebCrypto.res | 3 + .../WebCrypto/WebCryptoTypes.res | 0 .../src => src/WebLocks}/LockManager.res | 0 src/WebLocks/WebLocks.res | 2 + .../WebLocks/WebLocksTypes.res | 2 +- .../WebMIDI/src => src/WebMIDI}/WebMIDI.res | 4 +- .../Types.res => src/WebMIDI/WebMidiTypes.res | 2 +- .../src => src/WebSockets}/CloseEvent.res | 2 +- .../src => src/WebSockets}/MessageEvent.res | 4 +- .../src => src/WebSockets}/WebSocket.res | 4 +- src/WebSockets/WebSockets.res | 4 + .../WebSockets/WebSocketsTypes.res | 14 +- .../src => src/WebSpeech}/SpeechSynthesis.res | 2 +- .../WebSpeech}/SpeechSynthesisUtterance.res | 2 +- src/WebSpeech/WebSpeech.res | 3 + .../WebSpeech/WebSpeechTypes.res | 4 +- .../src => src/WebStorage}/StorageEvent.res | 2 +- src/WebStorage/WebStorage.res | 3 + .../WebStorage/WebStorageStorage.res | 0 .../WebStorage/WebStorageTypes.res | 4 +- .../WebVTT/src => src/WebVTT}/TextTrack.res | 2 +- .../src => src/WebVTT}/TextTrackCueList.res | 0 src/WebVTT/WebVTT.res | 3 + .../Types.res => src/WebVTT/WebVttTypes.res | 6 +- .../src => src/WebWorkers}/CacheStorage.res | 6 +- .../src => src/WebWorkers}/SharedWorker.res | 10 +- .../WebWorkers}/SharedWorkerGlobalScope.res | 0 src/WebWorkers/WebWorkers.res | 5 + .../WebWorkers/WebWorkersTypes.res | 4 +- .../WebWorkers}/WorkerGlobalScope.res | 12 +- tests/DOMAPI/AddEventListener__test.res | 8 +- tests/DOMAPI/Element__test.res | 4 +- tests/DOMAPI/HTMLCanvasElement__test.res | 44 ++-- tests/DOMAPI/HTMLElement__test.res | 6 +- tests/DOMAPI/HTMLInputElement__test.res | 6 +- tests/DOMAPI/ImageData__test.res | 2 +- tests/DOMAPI/Location__test.res | 4 +- tests/FetchAPI/FormData__test.res | 10 +- tests/FetchAPI/Headers__test.res | 10 +- tests/FetchAPI/Request__test.res | 36 +-- tests/FetchAPI/Response__test.res | 34 +-- tests/FetchAPI/URLSearchParams__test.res | 14 +- tests/Global__test.res | 36 +-- .../IntersectionObserver__test.res | 8 +- .../MutationObserver__test.res | 6 +- tests/NotificationsAPI/Notification__test.res | 4 +- .../ServiceWorkerAPI/ServiceWorker__test.res | 24 +- tests/URLAPI/URL__test.res | 2 +- .../AudioDestinationNode__.test.res | 22 +- tests/WebStorageAPI/Storage__test.res | 12 +- .../SharedWorkerGlobalScope__test.res | 4 +- tests/WebWorkersAPI/SharedWorker__test.res | 14 +- tests/unmonorepo/feature-spec.test.mjs | 2 + .../generate-entry-modules.test.mjs | 30 +++ tests/unmonorepo/migrate-layout.test.mjs | 5 + tests/unmonorepo/rewrite-references.test.mjs | 26 ++ 478 files changed, 1597 insertions(+), 2985 deletions(-) delete mode 100644 packages/Base/package.json delete mode 100644 packages/Base/rescript.json delete mode 100644 packages/CSSFontLoading/package.json delete mode 100644 packages/CSSFontLoading/rescript.json delete mode 100644 packages/Canvas/package.json delete mode 100644 packages/Canvas/rescript.json delete mode 100644 packages/Canvas/src/VideoFrame.res delete mode 100644 packages/ChannelMessaging/package.json delete mode 100644 packages/ChannelMessaging/rescript.json delete mode 100644 packages/Clipboard/package.json delete mode 100644 packages/Clipboard/rescript.json delete mode 100644 packages/CredentialManagement/package.json delete mode 100644 packages/CredentialManagement/rescript.json delete mode 100644 packages/DOM/package.json delete mode 100644 packages/DOM/rescript.json delete mode 100644 packages/DOM/src/MediaQueryList.res delete mode 100644 packages/DOM/src/TextTrackList.res delete mode 100644 packages/EncryptedMediaExtensions/package.json delete mode 100644 packages/EncryptedMediaExtensions/rescript.json delete mode 100644 packages/Event/package.json delete mode 100644 packages/Event/rescript.json delete mode 100644 packages/Fetch/package.json delete mode 100644 packages/Fetch/rescript.json delete mode 100644 packages/File/package.json delete mode 100644 packages/File/rescript.json delete mode 100644 packages/FileAndDirectoryEntries/package.json delete mode 100644 packages/FileAndDirectoryEntries/rescript.json delete mode 100644 packages/Gamepad/package.json delete mode 100644 packages/Gamepad/rescript.json delete mode 100644 packages/Geolocation/package.json delete mode 100644 packages/Geolocation/rescript.json delete mode 100644 packages/History/package.json delete mode 100644 packages/History/rescript.json delete mode 100644 packages/IndexedDB/package.json delete mode 100644 packages/IndexedDB/rescript.json delete mode 100644 packages/IntersectionObserver/package.json delete mode 100644 packages/IntersectionObserver/rescript.json delete mode 100644 packages/IntersectionObserver/src/IntersectionObserverRoot.res delete mode 100644 packages/MediaCapabilities/package.json delete mode 100644 packages/MediaCapabilities/rescript.json delete mode 100644 packages/MediaCaptureAndStreams/package.json delete mode 100644 packages/MediaCaptureAndStreams/rescript.json delete mode 100644 packages/MediaSession/package.json delete mode 100644 packages/MediaSession/rescript.json delete mode 100644 packages/MutationObserver/package.json delete mode 100644 packages/MutationObserver/rescript.json delete mode 100644 packages/Notification/package.json delete mode 100644 packages/Notification/rescript.json delete mode 100644 packages/Performance/package.json delete mode 100644 packages/Performance/rescript.json delete mode 100644 packages/Permissions/package.json delete mode 100644 packages/Permissions/rescript.json delete mode 100644 packages/PictureInPicture/package.json delete mode 100644 packages/PictureInPicture/rescript.json delete mode 100644 packages/PictureInPicture/src/PictureInPicture.res delete mode 100644 packages/Push/package.json delete mode 100644 packages/Push/rescript.json delete mode 100644 packages/RemotePlayback/package.json delete mode 100644 packages/RemotePlayback/rescript.json delete mode 100644 packages/ResizeObserver/package.json delete mode 100644 packages/ResizeObserver/rescript.json delete mode 100644 packages/ScreenWakeLock/package.json delete mode 100644 packages/ScreenWakeLock/rescript.json delete mode 100644 packages/ServiceWorker/package.json delete mode 100644 packages/ServiceWorker/rescript.json delete mode 100644 packages/ServiceWorker/src/Cache.res delete mode 100644 packages/Storage/package.json delete mode 100644 packages/Storage/rescript.json delete mode 100644 packages/UIEvents/package.json delete mode 100644 packages/UIEvents/rescript.json delete mode 100644 packages/URL/package.json delete mode 100644 packages/URL/rescript.json delete mode 100644 packages/ViewTransitions/package.json delete mode 100644 packages/ViewTransitions/rescript.json delete mode 100644 packages/VisualViewport/package.json delete mode 100644 packages/VisualViewport/rescript.json delete mode 100644 packages/WebAudio/package.json delete mode 100644 packages/WebAudio/rescript.json delete mode 100644 packages/WebCrypto/package.json delete mode 100644 packages/WebCrypto/rescript.json delete mode 100644 packages/WebLocks/package.json delete mode 100644 packages/WebLocks/rescript.json delete mode 100644 packages/WebMIDI/package.json delete mode 100644 packages/WebMIDI/rescript.json delete mode 100644 packages/WebSockets/package.json delete mode 100644 packages/WebSockets/rescript.json delete mode 100644 packages/WebSpeech/package.json delete mode 100644 packages/WebSpeech/rescript.json delete mode 100644 packages/WebStorage/package.json delete mode 100644 packages/WebStorage/rescript.json delete mode 100644 packages/WebVTT/package.json delete mode 100644 packages/WebVTT/rescript.json delete mode 100644 packages/WebWorkers/package.json delete mode 100644 packages/WebWorkers/rescript.json create mode 100644 scripts/unmonorepo/generate-entry-modules.mjs create mode 100644 scripts/unmonorepo/rewrite-references.mjs rename {packages/Base/src => src/Base}/ArrayBufferTypedArrayOrDataView.res (100%) create mode 100644 src/Base/Base.res rename packages/Base/src/CSSFontLoading.res => src/Base/BaseCSSFontLoading.res (91%) rename packages/Base/src/DOM.res => src/Base/BaseDOM.res (97%) rename packages/Base/src/EncryptedMediaExtensions.res => src/Base/BaseEncryptedMediaExtensions.res (94%) rename packages/Base/src/Event.res => src/Base/BaseEvent.res (83%) rename packages/Base/src/File.res => src/Base/BaseFile.res (93%) rename packages/Base/src/FileAndDirectoryEntries.res => src/Base/BaseFileAndDirectoryEntries.res (94%) create mode 100644 src/CSSFontLoading/CSSFontLoading.res rename packages/CSSFontLoading/src/Types.res => src/CSSFontLoading/CssFontLoadingTypes.res (92%) rename {packages/CSSFontLoading/src => src/CSSFontLoading}/FontFace.res (100%) rename {packages/CSSFontLoading/src => src/CSSFontLoading}/FontFaceSet.res (92%) create mode 100644 src/Canvas/Canvas.res rename packages/Canvas/src/Global.res => src/Canvas/CanvasGlobal.res (71%) rename {packages/Canvas/src => src/Canvas}/CanvasGradient.res (100%) rename {packages/Canvas/src => src/Canvas}/CanvasPattern.res (87%) rename {packages/Canvas/src => src/Canvas}/CanvasRenderingContext2D.res (73%) rename packages/Canvas/src/Types.res => src/Canvas/CanvasTypes.res (99%) rename {packages/Canvas/src => src/Canvas}/FillStyle.res (100%) rename {packages/Canvas/src => src/Canvas}/HTMLCanvasElement.res (86%) rename {packages/Canvas/src => src/Canvas}/ImageBitmap.res (100%) rename {packages/Canvas/src => src/Canvas}/ImageBitmapRenderingContext.res (100%) rename {packages/Canvas/src => src/Canvas}/OffscreenCanvas.res (97%) rename {packages/Canvas/src => src/Canvas}/Path2D.res (98%) create mode 100644 src/Canvas/VideoFrame.res create mode 100644 src/ChannelMessaging/ChannelMessaging.res rename packages/ChannelMessaging/src/Types.res => src/ChannelMessaging/ChannelMessagingTypes.res (92%) rename {packages/ChannelMessaging/src => src/ChannelMessaging}/MessagePort.res (96%) rename {packages/Clipboard/src => src/Clipboard}/Clipboard.res (83%) rename {packages/Clipboard/src => src/Clipboard}/ClipboardItem.res (94%) rename packages/Clipboard/src/Types.res => src/Clipboard/ClipboardTypes.res (95%) create mode 100644 src/CredentialManagement/CredentialManagement.res rename packages/CredentialManagement/src/Types.res => src/CredentialManagement/CredentialManagementTypes.res (88%) rename {packages/CredentialManagement/src => src/CredentialManagement}/CredentialsContainer.res (100%) rename {packages/DOM/src => src/DOM}/Animation.res (95%) rename {packages/DOM/src => src/DOM}/AnimationEffect.res (100%) rename {packages/DOM/src => src/DOM}/CSSRuleList.res (100%) rename {packages/DOM/src => src/DOM}/CSSStyleDeclaration.res (100%) rename {packages/DOM/src => src/DOM}/CSSStyleSheet.res (100%) rename {packages/DOM/src => src/DOM}/CSSStyleValue.res (100%) rename {packages/DOM/src => src/DOM}/CaretPosition.res (100%) rename {packages/DOM/src => src/DOM}/CharacterData.res (100%) rename {packages/DOM/src => src/DOM}/Comment.res (100%) rename {packages/DOM/src => src/DOM}/CustomElementRegistry.res (100%) create mode 100644 src/DOM/DOM.res rename {packages/DOM/src => src/DOM}/DOMException.res (81%) rename {packages/DOM/src => src/DOM}/DOMImplementation.res (100%) rename {packages/DOM/src => src/DOM}/DOMMatrix.res (100%) rename {packages/DOM/src => src/DOM}/DOMMatrixReadOnly.res (100%) rename {packages/DOM/src => src/DOM}/DOMPoint.res (100%) rename {packages/DOM/src => src/DOM}/DOMPointReadOnly.res (100%) rename {packages/DOM/src => src/DOM}/DOMRect.res (100%) rename {packages/DOM/src => src/DOM}/DOMRectList.res (100%) rename {packages/DOM/src => src/DOM}/DOMRectReadOnly.res (100%) rename {packages/DOM/src => src/DOM}/DOMStringList.res (91%) rename {packages/DOM/src => src/DOM}/DOMTokenList.res (100%) rename {packages/DOM/src => src/DOM}/Document.res (97%) rename {packages/DOM/src => src/DOM}/DocumentFragment.res (100%) rename {packages/DOM/src => src/DOM}/DocumentTimeline.res (100%) rename packages/DOM/src/Global.res => src/DOM/DomGlobal.res (93%) rename packages/DOM/src/HTMLMediaElement.res => src/DOM/DomHTMLMediaElement.res (94%) rename packages/DOM/src/Types.res => src/DOM/DomTypes.res (94%) rename {packages/DOM/src => src/DOM}/Element.res (100%) rename {packages/DOM/src => src/DOM}/ElementInternals.res (100%) rename {packages/DOM/src => src/DOM}/FileList.res (82%) rename {packages/DOM/src => src/DOM}/HTMLAnchorElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLAreaElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLAudioElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLBRElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLBaseElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLBodyElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLButtonElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLCollection.res (100%) rename {packages/DOM/src => src/DOM}/HTMLDListElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLDataElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLDataListElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLDialogElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLDivElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLEmbedElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLFieldSetElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLFormControlsCollection.res (100%) rename {packages/DOM/src => src/DOM}/HTMLFormElement.res (90%) rename {packages/DOM/src => src/DOM}/HTMLFrameSetElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLHRElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLHeadElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLHeadingElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLHtmlElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLIFrameElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLImageElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLInputElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLLIElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLLabelElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLLegendElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLLinkElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLMapElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLMenuElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLMetaElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLMeterElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLModElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLOListElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLObjectElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLOptGroupElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLOptionElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLOptionsCollection.res (100%) rename {packages/DOM/src => src/DOM}/HTMLOutputElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLParagraphElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLPictureElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLPreElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLProgressElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLQuoteElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLScriptElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLSelectElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLSlotElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLSourceElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLSpanElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLStyleElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTableCaptionElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTableCellElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTableElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTableRowElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTableSectionElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTemplateElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTextAreaElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTimeElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTitleElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLTrackElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLUListElement.res (100%) rename {packages/DOM/src => src/DOM}/HTMLVideoElement.res (94%) rename {packages/DOM/src => src/DOM}/IdleDeadline.res (100%) rename {packages/DOM/src => src/DOM}/ImageData.res (100%) rename {packages/DOM/src => src/DOM}/Location.res (90%) rename {packages/DOM/src => src/DOM}/MediaList.res (100%) create mode 100644 src/DOM/MediaQueryList.res rename {packages/DOM/src => src/DOM}/NamedNodeMap.res (100%) rename {packages/DOM/src => src/DOM}/Navigator.res (73%) rename {packages/DOM/src => src/DOM}/Node.res (98%) rename {packages/DOM/src => src/DOM}/NodeFilter.res (100%) rename {packages/DOM/src => src/DOM}/NodeIterator.res (100%) rename {packages/DOM/src => src/DOM}/NodeList.res (100%) rename {packages/DOM/src => src/DOM}/Range.res (100%) rename {packages/DOM/src => src/DOM}/SVGGraphicsElement.res (100%) rename {packages/DOM/src => src/DOM}/SVGLength.res (100%) rename {packages/DOM/src => src/DOM}/ScreenOrientation.res (68%) rename {packages/DOM/src => src/DOM}/Selection.res (100%) rename {packages/DOM/src => src/DOM}/ShadowRoot.res (100%) rename {packages/DOM/src => src/DOM}/StylePropertyMap.res (100%) rename {packages/DOM/src => src/DOM}/StylePropertyMapReadOnly.res (100%) rename {packages/DOM/src => src/DOM}/StyleSheetList.res (100%) rename {packages/DOM/src => src/DOM}/Text.res (100%) create mode 100644 src/DOM/TextTrackList.res rename {packages/DOM/src => src/DOM}/TimeRanges.res (100%) rename {packages/DOM/src => src/DOM}/TreeWalker.res (100%) rename {packages/DOM/src => src/DOM}/VideoColorSpace.res (100%) rename {packages/DOM/src => src/DOM}/Window.res (94%) rename {packages/DOM/src => src/DOM}/XPathExpression.res (100%) rename {packages/DOM/src => src/DOM}/XPathResult.res (100%) create mode 100644 src/EncryptedMediaExtensions/EncryptedMediaExtensions.res rename packages/EncryptedMediaExtensions/src/HTMLMediaElement.res => src/EncryptedMediaExtensions/EncryptedMediaExtensionsHTMLMediaElement.res (54%) rename packages/EncryptedMediaExtensions/src/Types.res => src/EncryptedMediaExtensions/EncryptedMediaExtensionsTypes.res (59%) rename {packages/EncryptedMediaExtensions/src => src/EncryptedMediaExtensions}/MediaKeySession.res (95%) rename {packages/EncryptedMediaExtensions/src => src/EncryptedMediaExtensions}/MediaKeyStatusMap.res (100%) rename {packages/EncryptedMediaExtensions/src => src/EncryptedMediaExtensions}/MediaKeySystemAccess.res (100%) rename {packages/EncryptedMediaExtensions/src => src/EncryptedMediaExtensions}/MediaKeys.res (100%) rename {packages/Event/src => src/Event}/AbortController.res (100%) rename {packages/Event/src => src/Event}/AbortSignal.res (100%) create mode 100644 src/Event/Event.res rename packages/Event/src/Event.res => src/Event/EventEvent.res (100%) rename {packages/Event/src => src/Event}/EventTarget.res (100%) rename packages/Event/src/Types.res => src/Event/EventTypes.res (98%) rename {packages/Event/src => src/Event}/ExtendableEvent.res (100%) rename {packages/Fetch/src => src/Fetch}/BodyInit.res (82%) create mode 100644 src/Fetch/Fetch.res rename packages/Fetch/src/Global.res => src/Fetch/FetchGlobal.res (100%) rename packages/Fetch/src/Types.res => src/Fetch/FetchTypes.res (97%) rename {packages/Fetch/src => src/Fetch}/FormData.res (93%) rename {packages/Fetch/src => src/Fetch}/FormDataEntryValue.res (100%) rename {packages/Fetch/src => src/Fetch}/Headers.res (100%) rename {packages/Fetch/src => src/Fetch}/HeadersInit.res (100%) rename {packages/Fetch/src => src/Fetch}/Request.res (96%) rename {packages/Fetch/src => src/Fetch}/Response.res (87%) rename {packages/File/src => src/File}/Blob.res (100%) create mode 100644 src/File/File.res rename packages/File/src/File.res => src/File/FileFile.res (100%) rename {packages/File/src => src/File}/FileSystemDirectoryHandle.res (100%) rename {packages/File/src => src/File}/FileSystemFileHandle.res (100%) rename {packages/File/src => src/File}/FileSystemHandle.res (100%) rename {packages/File/src => src/File}/FileSystemWritableFileStream.res (100%) rename packages/File/src/Types.res => src/File/FileTypes.res (95%) rename {packages/File/src => src/File}/ReadableStream.res (100%) rename {packages/File/src => src/File}/WritableStream.res (100%) rename {packages/File/src => src/File}/WritableStreamDefaultController.res (100%) create mode 100644 src/FileAndDirectoryEntries/FileAndDirectoryEntries.res rename packages/FileAndDirectoryEntries/src/Types.res => src/FileAndDirectoryEntries/FileAndDirectoryEntriesTypes.res (73%) rename {packages/FileAndDirectoryEntries/src => src/FileAndDirectoryEntries}/FileSystemDirectoryEntry.res (100%) rename {packages/FileAndDirectoryEntries/src => src/FileAndDirectoryEntries}/FileSystemDirectoryReader.res (100%) rename {packages/FileAndDirectoryEntries/src => src/FileAndDirectoryEntries}/FileSystemEntry.res (100%) create mode 100644 src/Gamepad/Gamepad.res rename {packages/Gamepad/src => src/Gamepad}/GamepadHapticActuator.res (100%) rename packages/Gamepad/src/Types.res => src/Gamepad/GamepadTypes.res (100%) rename {packages/Geolocation/src => src/Geolocation}/Geolocation.res (85%) rename {packages/Geolocation/src => src/Geolocation}/GeolocationCoordinates.res (100%) rename {packages/Geolocation/src => src/Geolocation}/GeolocationPosition.res (100%) rename packages/Geolocation/src/Types.res => src/Geolocation/GeolocationTypes.res (100%) rename {packages/History/src => src/History}/History.res (96%) rename packages/History/src/Types.res => src/History/HistoryTypes.res (100%) rename {packages/IndexedDB/src => src/IndexedDB}/IDBDatabase.res (96%) rename {packages/IndexedDB/src => src/IndexedDB}/IDBFactory.res (100%) rename {packages/IndexedDB/src => src/IndexedDB}/IDBIndex.res (100%) rename {packages/IndexedDB/src => src/IndexedDB}/IDBObjectStore.res (100%) rename {packages/IndexedDB/src => src/IndexedDB}/IDBTransaction.res (90%) create mode 100644 src/IndexedDB/IndexedDB.res rename packages/IndexedDB/src/Types.res => src/IndexedDB/IndexedDbTypes.res (94%) rename {packages/IntersectionObserver/src => src/IntersectionObserver}/IntersectionObserver.res (75%) create mode 100644 src/IntersectionObserver/IntersectionObserverRoot.res rename packages/IntersectionObserver/src/Types.res => src/IntersectionObserver/IntersectionObserverTypes.res (91%) rename {packages/MediaCapabilities/src => src/MediaCapabilities}/MediaCapabilities.res (93%) rename packages/MediaCapabilities/src/Types.res => src/MediaCapabilities/MediaCapabilitiesTypes.res (100%) create mode 100644 src/MediaCaptureAndStreams/MediaCaptureAndStreams.res rename packages/MediaCaptureAndStreams/src/Types.res => src/MediaCaptureAndStreams/MediaCaptureAndStreamsTypes.res (98%) rename {packages/MediaCaptureAndStreams/src => src/MediaCaptureAndStreams}/MediaDeviceInfo.res (100%) rename {packages/MediaCaptureAndStreams/src => src/MediaCaptureAndStreams}/MediaDevices.res (95%) rename {packages/MediaCaptureAndStreams/src => src/MediaCaptureAndStreams}/MediaStream.res (96%) rename {packages/MediaCaptureAndStreams/src => src/MediaCaptureAndStreams}/MediaStreamTrack.res (96%) rename {packages/MediaSession/src => src/MediaSession}/MediaMetadata.res (100%) rename {packages/MediaSession/src => src/MediaSession}/MediaSession.res (90%) rename packages/MediaSession/src/Types.res => src/MediaSession/MediaSessionTypes.res (100%) rename {packages/MutationObserver/src => src/MutationObserver}/MutationObserver.res (79%) rename packages/MutationObserver/src/Types.res => src/MutationObserver/MutationObserverTypes.res (81%) rename {packages/Notification/src => src/Notification}/Notification.res (94%) rename packages/Notification/src/Types.res => src/Notification/NotificationTypes.res (97%) rename {packages/Performance/src => src/Performance}/Performance.res (93%) rename {packages/Performance/src => src/Performance}/PerformanceEntry.res (100%) rename {packages/Performance/src => src/Performance}/PerformanceMark.res (100%) rename packages/Performance/src/Types.res => src/Performance/PerformanceTypes.res (98%) rename {packages/Permissions/src => src/Permissions}/Permissions.res (86%) rename packages/Permissions/src/Types.res => src/Permissions/PermissionsTypes.res (96%) create mode 100644 src/PictureInPicture/PictureInPicture.res rename packages/PictureInPicture/src/Types.res => src/PictureInPicture/PictureInPictureTypes.res (91%) rename {packages/Push/src => src/Push}/ApplicationServerKey.res (100%) create mode 100644 src/Push/Push.res rename {packages/Push/src => src/Push}/PushEvent.res (50%) rename {packages/Push/src => src/Push}/PushManager.res (100%) rename {packages/Push/src => src/Push}/PushMessageData.res (100%) rename {packages/Push/src => src/Push}/PushSubscription.res (100%) rename packages/Push/src/Types.res => src/Push/PushTypes.res (98%) rename {packages/RemotePlayback/src => src/RemotePlayback}/RemotePlayback.res (89%) rename packages/RemotePlayback/src/Types.res => src/RemotePlayback/RemotePlaybackTypes.res (93%) rename {packages/ResizeObserver/src => src/ResizeObserver}/ResizeObserver.res (80%) rename packages/ResizeObserver/src/Types.res => src/ResizeObserver/ResizeObserverTypes.res (95%) create mode 100644 src/ScreenWakeLock/ScreenWakeLock.res rename packages/ScreenWakeLock/src/Types.res => src/ScreenWakeLock/ScreenWakeLockTypes.res (94%) rename {packages/ScreenWakeLock/src => src/ScreenWakeLock}/WakeLock.res (100%) rename {packages/ScreenWakeLock/src => src/ScreenWakeLock}/WakeLockSentinel.res (70%) create mode 100644 src/ServiceWorker/Cache.res rename {packages/ServiceWorker/src => src/ServiceWorker}/Clients.res (100%) rename {packages/ServiceWorker/src => src/ServiceWorker}/NavigationPreloadManager.res (100%) rename {packages/ServiceWorker/src => src/ServiceWorker}/ServiceWorker.res (55%) rename {packages/ServiceWorker/src => src/ServiceWorker}/ServiceWorkerContainer.res (92%) rename {packages/ServiceWorker/src => src/ServiceWorker}/ServiceWorkerGlobalScope.res (83%) rename {packages/ServiceWorker/src => src/ServiceWorker}/ServiceWorkerRegistration.res (73%) rename packages/ServiceWorker/src/Types.res => src/ServiceWorker/ServiceWorkerTypes.res (93%) create mode 100644 src/Storage/Storage.res rename {packages/Storage/src => src/Storage}/StorageManager.res (86%) rename packages/Storage/src/Types.res => src/Storage/StorageTypes.res (100%) rename {packages/UIEvents/src => src/UIEvents}/CompositionEvent.res (100%) rename {packages/UIEvents/src => src/UIEvents}/DataTransfer.res (97%) rename {packages/UIEvents/src => src/UIEvents}/DataTransferItem.res (74%) rename {packages/UIEvents/src => src/UIEvents}/DataTransferItemList.res (91%) rename {packages/UIEvents/src => src/UIEvents}/FocusEvent.res (100%) rename {packages/UIEvents/src => src/UIEvents}/InputEvent.res (77%) rename {packages/UIEvents/src => src/UIEvents}/KeyboardEvent.res (100%) rename {packages/UIEvents/src => src/UIEvents}/MouseEvent.res (100%) rename {packages/UIEvents/src => src/UIEvents}/PointerEvent.res (100%) rename {packages/UIEvents/src => src/UIEvents}/Touch.res (100%) rename {packages/UIEvents/src => src/UIEvents}/TouchEvent.res (100%) rename {packages/UIEvents/src => src/UIEvents}/TouchList.res (100%) rename {packages/UIEvents/src => src/UIEvents}/UIEvent.res (86%) create mode 100644 src/UIEvents/UIEvents.res rename packages/UIEvents/src/Types.res => src/UIEvents/UiEventsTypes.res (96%) rename {packages/UIEvents/src => src/UIEvents}/WheelEvent.res (100%) rename {packages/URL/src => src/URL}/URL.res (93%) rename {packages/URL/src => src/URL}/URLSearchParams.res (100%) rename packages/URL/src/Types.res => src/URL/UrlTypes.res (100%) rename {packages/ViewTransitions/src => src/ViewTransitions}/ViewTransition.res (100%) create mode 100644 src/ViewTransitions/ViewTransitions.res rename packages/ViewTransitions/src/Types.res => src/ViewTransitions/ViewTransitionsTypes.res (100%) create mode 100644 src/VisualViewport/VisualViewport.res rename packages/VisualViewport/src/Types.res => src/VisualViewport/VisualViewportTypes.res (96%) rename {packages/WebAudio/src => src/WebAudio}/AnalyserNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/AudioBuffer.res (100%) rename {packages/WebAudio/src => src/WebAudio}/AudioBufferSourceNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/AudioContext.res (94%) rename {packages/WebAudio/src => src/WebAudio}/AudioDestinationNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/AudioNode.res (97%) rename {packages/WebAudio/src => src/WebAudio}/AudioParam.res (100%) rename {packages/WebAudio/src => src/WebAudio}/AudioProcessingEvent.res (77%) rename {packages/WebAudio/src => src/WebAudio}/AudioScheduledSourceNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/AudioWorkletNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/BaseAudioContext.res (98%) rename {packages/WebAudio/src => src/WebAudio}/BiquadFilterNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/ChannelMergerNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/ChannelSplitterNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/ConstantSourceNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/ConvolverNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/DelayNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/DynamicsCompressorNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/GainNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/IIRFilterNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/MediaElementAudioSourceNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/MediaStreamAudioDestinationNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/MediaStreamAudioSourceNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/OfflineAudioCompletionEvent.res (77%) rename {packages/WebAudio/src => src/WebAudio}/OfflineAudioContext.res (100%) rename {packages/WebAudio/src => src/WebAudio}/OscillatorNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/PannerNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/PeriodicWave.res (100%) rename {packages/WebAudio/src => src/WebAudio}/StereoPannerNode.res (100%) rename {packages/WebAudio/src => src/WebAudio}/WaveShaperNode.res (100%) create mode 100644 src/WebAudio/WebAudio.res rename packages/WebAudio/src/Types.res => src/WebAudio/WebAudioTypes.res (97%) rename {packages/WebAudio/src => src/WebAudio}/Worklet.res (100%) rename {packages/WebCrypto/src => src/WebCrypto}/Crypto.res (100%) rename {packages/WebCrypto/src => src/WebCrypto}/SubtleCrypto.res (89%) create mode 100644 src/WebCrypto/WebCrypto.res rename packages/WebCrypto/src/Types.res => src/WebCrypto/WebCryptoTypes.res (100%) rename {packages/WebLocks/src => src/WebLocks}/LockManager.res (100%) create mode 100644 src/WebLocks/WebLocks.res rename packages/WebLocks/src/Types.res => src/WebLocks/WebLocksTypes.res (94%) rename {packages/WebMIDI/src => src/WebMIDI}/WebMIDI.res (58%) rename packages/WebMIDI/src/Types.res => src/WebMIDI/WebMidiTypes.res (95%) rename {packages/WebSockets/src => src/WebSockets}/CloseEvent.res (76%) rename {packages/WebSockets/src => src/WebSockets}/MessageEvent.res (95%) rename {packages/WebSockets/src => src/WebSockets}/WebSocket.res (95%) create mode 100644 src/WebSockets/WebSockets.res rename packages/WebSockets/src/Types.res => src/WebSockets/WebSocketsTypes.res (93%) rename {packages/WebSpeech/src => src/WebSpeech}/SpeechSynthesis.res (92%) rename {packages/WebSpeech/src => src/WebSpeech}/SpeechSynthesisUtterance.res (70%) create mode 100644 src/WebSpeech/WebSpeech.res rename packages/WebSpeech/src/Types.res => src/WebSpeech/WebSpeechTypes.res (97%) rename {packages/WebStorage/src => src/WebStorage}/StorageEvent.res (76%) create mode 100644 src/WebStorage/WebStorage.res rename packages/WebStorage/src/Storage.res => src/WebStorage/WebStorageStorage.res (100%) rename packages/WebStorage/src/Types.res => src/WebStorage/WebStorageTypes.res (96%) rename {packages/WebVTT/src => src/WebVTT}/TextTrack.res (87%) rename {packages/WebVTT/src => src/WebVTT}/TextTrackCueList.res (100%) create mode 100644 src/WebVTT/WebVTT.res rename packages/WebVTT/src/Types.res => src/WebVTT/WebVttTypes.res (96%) rename {packages/WebWorkers/src => src/WebWorkers}/CacheStorage.res (87%) rename {packages/WebWorkers/src => src/WebWorkers}/SharedWorker.res (80%) rename {packages/WebWorkers/src => src/WebWorkers}/SharedWorkerGlobalScope.res (100%) create mode 100644 src/WebWorkers/WebWorkers.res rename packages/WebWorkers/src/Types.res => src/WebWorkers/WebWorkersTypes.res (96%) rename {packages/WebWorkers/src => src/WebWorkers}/WorkerGlobalScope.res (79%) create mode 100644 tests/unmonorepo/generate-entry-modules.test.mjs create mode 100644 tests/unmonorepo/rewrite-references.test.mjs diff --git a/packages/Base/package.json b/packages/Base/package.json deleted file mode 100644 index f7dfed7..0000000 --- a/packages/Base/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/base", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": {} -} diff --git a/packages/Base/rescript.json b/packages/Base/rescript.json deleted file mode 100644 index a304e4c..0000000 --- a/packages/Base/rescript.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "@rescript-webapi/base", - "namespace": "WebApiBase", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [] -} diff --git a/packages/CSSFontLoading/package.json b/packages/CSSFontLoading/package.json deleted file mode 100644 index e8b2ef7..0000000 --- a/packages/CSSFontLoading/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/css-font-loading", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/CSSFontLoading/rescript.json b/packages/CSSFontLoading/rescript.json deleted file mode 100644 index d3825c0..0000000 --- a/packages/CSSFontLoading/rescript.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@rescript-webapi/css-font-loading", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event", - "@rescript-webapi/base" - ], - "namespace": "WebApiCSSFontLoading" -} diff --git a/packages/Canvas/package.json b/packages/Canvas/package.json deleted file mode 100644 index a877c5a..0000000 --- a/packages/Canvas/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@rescript-webapi/canvas", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/dom": "0.1.0", - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/file": "0.1.0", - "@rescript-webapi/media-capture-and-streams": "0.1.0", - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/Canvas/rescript.json b/packages/Canvas/rescript.json deleted file mode 100644 index a60ad2b..0000000 --- a/packages/Canvas/rescript.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "@rescript-webapi/canvas", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/dom", - "@rescript-webapi/event", - "@rescript-webapi/file", - "@rescript-webapi/media-capture-and-streams", - "@rescript-webapi/base" - ], - "namespace": "WebApiCanvas" -} diff --git a/packages/Canvas/src/VideoFrame.res b/packages/Canvas/src/VideoFrame.res deleted file mode 100644 index 10fb9cd..0000000 --- a/packages/Canvas/src/VideoFrame.res +++ /dev/null @@ -1,140 +0,0 @@ -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make: ( - ~image: WebApiDOM.Types.htmlImageElement, - ~init: WebApiDOM.Types.videoFrameInit=?, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make2: ( - ~image: WebApiDOM.Types.svgImageElement, - ~init: WebApiDOM.Types.videoFrameInit=?, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make3: ( - ~image: WebApiDOM.Types.htmlVideoElement, - ~init: WebApiDOM.Types.videoFrameInit=?, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make4: ( - ~image: WebApiDOM.Types.htmlCanvasElement, - ~init: WebApiDOM.Types.videoFrameInit=?, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make5: ( - ~image: Types.imageBitmap, - ~init: WebApiDOM.Types.videoFrameInit=?, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make6: ( - ~image: Types.offscreenCanvas, - ~init: WebApiDOM.Types.videoFrameInit=?, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make7: ( - ~image: WebApiDOM.Types.videoFrame, - ~init: WebApiDOM.Types.videoFrameInit=?, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make8: ( - ~data: ArrayBuffer.t, - ~init: WebApiDOM.Types.videoFrameBufferInit, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make9: ( - ~data: WebApiBase.ArrayBufferTypedArrayOrDataView.t, - ~init: WebApiDOM.Types.videoFrameBufferInit, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame) -*/ -@new -external make10: ( - ~data: DataView.t, - ~init: WebApiDOM.Types.videoFrameBufferInit, -) => WebApiDOM.Types.videoFrame = "VideoFrame" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize) -*/ -@send -external allocationSize: ( - WebApiDOM.Types.videoFrame, - ~options: WebApiDOM.Types.videoFrameCopyToOptions=?, -) => int = "allocationSize" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo) -*/ -@send -external copyTo: ( - WebApiDOM.Types.videoFrame, - ~destination: ArrayBuffer.t, - ~options: WebApiDOM.Types.videoFrameCopyToOptions=?, -) => promise> = "copyTo" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo) -*/ -@send -external copyTo2: ( - WebApiDOM.Types.videoFrame, - ~destination: WebApiBase.ArrayBufferTypedArrayOrDataView.t, - ~options: WebApiDOM.Types.videoFrameCopyToOptions=?, -) => promise> = "copyTo" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo) -*/ -@send -external copyTo3: ( - WebApiDOM.Types.videoFrame, - ~destination: DataView.t, - ~options: WebApiDOM.Types.videoFrameCopyToOptions=?, -) => promise> = "copyTo" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/clone) -*/ -@send -external clone: WebApiDOM.Types.videoFrame => WebApiDOM.Types.videoFrame = "clone" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/close) -*/ -@send -external close: WebApiDOM.Types.videoFrame => unit = "close" diff --git a/packages/ChannelMessaging/package.json b/packages/ChannelMessaging/package.json deleted file mode 100644 index 2c7cabe..0000000 --- a/packages/ChannelMessaging/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/channel-messaging", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/ChannelMessaging/rescript.json b/packages/ChannelMessaging/rescript.json deleted file mode 100644 index 5e80ca7..0000000 --- a/packages/ChannelMessaging/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/channel-messaging", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiChannelMessaging" -} diff --git a/packages/Clipboard/package.json b/packages/Clipboard/package.json deleted file mode 100644 index 9843cba..0000000 --- a/packages/Clipboard/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@rescript-webapi/clipboard", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/file": "0.1.0" - } -} diff --git a/packages/Clipboard/rescript.json b/packages/Clipboard/rescript.json deleted file mode 100644 index ae36d53..0000000 --- a/packages/Clipboard/rescript.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@rescript-webapi/clipboard", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event", - "@rescript-webapi/file" - ], - "namespace": "WebApiClipboard" -} diff --git a/packages/CredentialManagement/package.json b/packages/CredentialManagement/package.json deleted file mode 100644 index 7da6252..0000000 --- a/packages/CredentialManagement/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@rescript-webapi/credential-management", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/CredentialManagement/rescript.json b/packages/CredentialManagement/rescript.json deleted file mode 100644 index 3848441..0000000 --- a/packages/CredentialManagement/rescript.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@rescript-webapi/credential-management", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event", - "@rescript-webapi/base" - ], - "namespace": "WebApiCredentialManagement" -} diff --git a/packages/DOM/package.json b/packages/DOM/package.json deleted file mode 100644 index 51abf8f..0000000 --- a/packages/DOM/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "@rescript-webapi/dom", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/css-font-loading": "0.1.0", - "@rescript-webapi/channel-messaging": "0.1.0", - "@rescript-webapi/clipboard": "0.1.0", - "@rescript-webapi/credential-management": "0.1.0", - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/fetch": "0.1.0", - "@rescript-webapi/file": "0.1.0", - "@rescript-webapi/file-and-directory-entries": "0.1.0", - "@rescript-webapi/gamepad": "0.1.0", - "@rescript-webapi/geolocation": "0.1.0", - "@rescript-webapi/history": "0.1.0", - "@rescript-webapi/indexed-db": "0.1.0", - "@rescript-webapi/media-capabilities": "0.1.0", - "@rescript-webapi/media-capture-and-streams": "0.1.0", - "@rescript-webapi/media-session": "0.1.0", - "@rescript-webapi/performance": "0.1.0", - "@rescript-webapi/permissions": "0.1.0", - "@rescript-webapi/picture-in-picture": "0.1.0", - "@rescript-webapi/base": "0.1.0", - "@rescript-webapi/remote-playback": "0.1.0", - "@rescript-webapi/screen-wake-lock": "0.1.0", - "@rescript-webapi/service-worker": "0.1.0", - "@rescript-webapi/storage": "0.1.0", - "@rescript-webapi/url": "0.1.0", - "@rescript-webapi/view-transitions": "0.1.0", - "@rescript-webapi/visual-viewport": "0.1.0", - "@rescript-webapi/web-crypto": "0.1.0", - "@rescript-webapi/web-locks": "0.1.0", - "@rescript-webapi/web-midi": "0.1.0", - "@rescript-webapi/web-speech": "0.1.0", - "@rescript-webapi/web-storage": "0.1.0", - "@rescript-webapi/web-vtt": "0.1.0", - "@rescript-webapi/web-workers": "0.1.0" - } -} diff --git a/packages/DOM/rescript.json b/packages/DOM/rescript.json deleted file mode 100644 index f8860d5..0000000 --- a/packages/DOM/rescript.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "@rescript-webapi/dom", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/css-font-loading", - "@rescript-webapi/channel-messaging", - "@rescript-webapi/clipboard", - "@rescript-webapi/credential-management", - "@rescript-webapi/event", - "@rescript-webapi/fetch", - "@rescript-webapi/file", - "@rescript-webapi/file-and-directory-entries", - "@rescript-webapi/gamepad", - "@rescript-webapi/geolocation", - "@rescript-webapi/history", - "@rescript-webapi/indexed-db", - "@rescript-webapi/media-capabilities", - "@rescript-webapi/media-capture-and-streams", - "@rescript-webapi/media-session", - "@rescript-webapi/performance", - "@rescript-webapi/permissions", - "@rescript-webapi/picture-in-picture", - "@rescript-webapi/base", - "@rescript-webapi/remote-playback", - "@rescript-webapi/screen-wake-lock", - "@rescript-webapi/service-worker", - "@rescript-webapi/storage", - "@rescript-webapi/url", - "@rescript-webapi/view-transitions", - "@rescript-webapi/visual-viewport", - "@rescript-webapi/web-crypto", - "@rescript-webapi/web-locks", - "@rescript-webapi/web-midi", - "@rescript-webapi/web-speech", - "@rescript-webapi/web-storage", - "@rescript-webapi/web-vtt", - "@rescript-webapi/web-workers" - ], - "namespace": "WebApiDOM" -} diff --git a/packages/DOM/src/MediaQueryList.res b/packages/DOM/src/MediaQueryList.res deleted file mode 100644 index cdea6dc..0000000 --- a/packages/DOM/src/MediaQueryList.res +++ /dev/null @@ -1 +0,0 @@ -include WebApiEvent.EventTarget.Impl({type t = Types.mediaQueryList}) diff --git a/packages/DOM/src/TextTrackList.res b/packages/DOM/src/TextTrackList.res deleted file mode 100644 index ef88d2b..0000000 --- a/packages/DOM/src/TextTrackList.res +++ /dev/null @@ -1,8 +0,0 @@ -include WebApiEvent.EventTarget.Impl({type t = Types.textTrackList}) - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/TextTrackList/getTrackById) -*/ -@send -external getTrackById: (Types.textTrackList, string) => WebApiWebVTT.Types.textTrack = - "getTrackById" diff --git a/packages/EncryptedMediaExtensions/package.json b/packages/EncryptedMediaExtensions/package.json deleted file mode 100644 index 3273568..0000000 --- a/packages/EncryptedMediaExtensions/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "@rescript-webapi/encrypted-media-extensions", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/dom": "0.1.0", - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/EncryptedMediaExtensions/rescript.json b/packages/EncryptedMediaExtensions/rescript.json deleted file mode 100644 index 2dd8c9c..0000000 --- a/packages/EncryptedMediaExtensions/rescript.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@rescript-webapi/encrypted-media-extensions", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/dom", - "@rescript-webapi/event", - "@rescript-webapi/base" - ], - "namespace": "WebApiEncryptedMediaExtensions" -} diff --git a/packages/Event/package.json b/packages/Event/package.json deleted file mode 100644 index 599fa4c..0000000 --- a/packages/Event/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/event", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/dom": "0.1.0" - } -} diff --git a/packages/Event/rescript.json b/packages/Event/rescript.json deleted file mode 100644 index 7fb5876..0000000 --- a/packages/Event/rescript.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@rescript-webapi/event", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/dom", - "@rescript-webapi/base" - ], - "namespace": "WebApiEvent" -} diff --git a/packages/Fetch/package.json b/packages/Fetch/package.json deleted file mode 100644 index bd3a152..0000000 --- a/packages/Fetch/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@rescript-webapi/fetch", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/base": "0.1.0", - "@rescript-webapi/file": "0.1.0", - "@rescript-webapi/url": "0.1.0", - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/Fetch/rescript.json b/packages/Fetch/rescript.json deleted file mode 100644 index 302da0e..0000000 --- a/packages/Fetch/rescript.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/fetch", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event", - "@rescript-webapi/file", - "@rescript-webapi/base", - "@rescript-webapi/url" - ], - "namespace": "WebApiFetch" -} diff --git a/packages/File/package.json b/packages/File/package.json deleted file mode 100644 index 4bddcc3..0000000 --- a/packages/File/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/file", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/File/rescript.json b/packages/File/rescript.json deleted file mode 100644 index 56ebf96..0000000 --- a/packages/File/rescript.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@rescript-webapi/file", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event", - "@rescript-webapi/base" - ], - "namespace": "WebApiFile" -} diff --git a/packages/FileAndDirectoryEntries/package.json b/packages/FileAndDirectoryEntries/package.json deleted file mode 100644 index 75887a7..0000000 --- a/packages/FileAndDirectoryEntries/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/file-and-directory-entries", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/FileAndDirectoryEntries/rescript.json b/packages/FileAndDirectoryEntries/rescript.json deleted file mode 100644 index adcb253..0000000 --- a/packages/FileAndDirectoryEntries/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/file-and-directory-entries", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/base" - ], - "namespace": "WebApiFileAndDirectoryEntries" -} diff --git a/packages/Gamepad/package.json b/packages/Gamepad/package.json deleted file mode 100644 index a7061a2..0000000 --- a/packages/Gamepad/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/gamepad", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/Gamepad/rescript.json b/packages/Gamepad/rescript.json deleted file mode 100644 index c2cb0f8..0000000 --- a/packages/Gamepad/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/gamepad", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/base" - ], - "namespace": "WebApiGamepad" -} diff --git a/packages/Geolocation/package.json b/packages/Geolocation/package.json deleted file mode 100644 index 9a1bf73..0000000 --- a/packages/Geolocation/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/geolocation", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": {} -} diff --git a/packages/Geolocation/rescript.json b/packages/Geolocation/rescript.json deleted file mode 100644 index 3860cd3..0000000 --- a/packages/Geolocation/rescript.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "@rescript-webapi/geolocation", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [], - "namespace": "WebApiGeolocation" -} diff --git a/packages/History/package.json b/packages/History/package.json deleted file mode 100644 index 128ff31..0000000 --- a/packages/History/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/history", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": {} -} diff --git a/packages/History/rescript.json b/packages/History/rescript.json deleted file mode 100644 index 17c3e71..0000000 --- a/packages/History/rescript.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "@rescript-webapi/history", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [], - "namespace": "WebApiHistory" -} diff --git a/packages/IndexedDB/package.json b/packages/IndexedDB/package.json deleted file mode 100644 index 5d1db37..0000000 --- a/packages/IndexedDB/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@rescript-webapi/indexed-db", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/IndexedDB/rescript.json b/packages/IndexedDB/rescript.json deleted file mode 100644 index b3419af..0000000 --- a/packages/IndexedDB/rescript.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@rescript-webapi/indexed-db", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event", - "@rescript-webapi/base" - ], - "namespace": "WebApiIndexedDB" -} diff --git a/packages/IntersectionObserver/package.json b/packages/IntersectionObserver/package.json deleted file mode 100644 index f984279..0000000 --- a/packages/IntersectionObserver/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/intersection-observer", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/dom": "0.1.0" - } -} diff --git a/packages/IntersectionObserver/rescript.json b/packages/IntersectionObserver/rescript.json deleted file mode 100644 index 3d7ae75..0000000 --- a/packages/IntersectionObserver/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/intersection-observer", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/dom" - ], - "namespace": "WebApiIntersectionObserver" -} diff --git a/packages/IntersectionObserver/src/IntersectionObserverRoot.res b/packages/IntersectionObserver/src/IntersectionObserverRoot.res deleted file mode 100644 index d92008f..0000000 --- a/packages/IntersectionObserver/src/IntersectionObserverRoot.res +++ /dev/null @@ -1,21 +0,0 @@ -external fromDocument: WebApiDOM.Types.document => Types.root = "%identity" -external fromElement: WebApiDOM.Types.element => Types.root = "%identity" -external fromNull: Types.root = "null" - -external toElement: Types.root => WebApiDOM.Types.element = "%identity" -external toDocument: Types.root => WebApiDOM.Types.document = "%identity" - -type decoded = - | Element(WebApiDOM.Types.element) - | Document(WebApiDOM.Types.document) - | Null - -let decode = (t: Types.root): decoded => { - if WebApiDOM.Element.isInstanceOf(t) { - Element(t->toElement) - } else if WebApiDOM.Document.isInstanceOf(t) { - Document(t->toDocument) - } else { - Null - } -} diff --git a/packages/MediaCapabilities/package.json b/packages/MediaCapabilities/package.json deleted file mode 100644 index 637f51f..0000000 --- a/packages/MediaCapabilities/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/media-capabilities", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": {} -} diff --git a/packages/MediaCapabilities/rescript.json b/packages/MediaCapabilities/rescript.json deleted file mode 100644 index aa7e613..0000000 --- a/packages/MediaCapabilities/rescript.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "@rescript-webapi/media-capabilities", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [], - "namespace": "WebApiMediaCapabilities" -} diff --git a/packages/MediaCaptureAndStreams/package.json b/packages/MediaCaptureAndStreams/package.json deleted file mode 100644 index 1c16547..0000000 --- a/packages/MediaCaptureAndStreams/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/media-capture-and-streams", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/MediaCaptureAndStreams/rescript.json b/packages/MediaCaptureAndStreams/rescript.json deleted file mode 100644 index 4cac427..0000000 --- a/packages/MediaCaptureAndStreams/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/media-capture-and-streams", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiMediaCaptureAndStreams" -} diff --git a/packages/MediaSession/package.json b/packages/MediaSession/package.json deleted file mode 100644 index 2cf7181..0000000 --- a/packages/MediaSession/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/media-session", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": {} -} diff --git a/packages/MediaSession/rescript.json b/packages/MediaSession/rescript.json deleted file mode 100644 index ce57fb3..0000000 --- a/packages/MediaSession/rescript.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "@rescript-webapi/media-session", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [], - "namespace": "WebApiMediaSession" -} diff --git a/packages/MutationObserver/package.json b/packages/MutationObserver/package.json deleted file mode 100644 index 20512d5..0000000 --- a/packages/MutationObserver/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/mutation-observer", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/dom": "0.1.0" - } -} diff --git a/packages/MutationObserver/rescript.json b/packages/MutationObserver/rescript.json deleted file mode 100644 index b67324b..0000000 --- a/packages/MutationObserver/rescript.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@rescript-webapi/mutation-observer", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/dom", - "@rescript-webapi/base" - ], - "namespace": "WebApiMutationObserver" -} diff --git a/packages/Notification/package.json b/packages/Notification/package.json deleted file mode 100644 index ddfe8e6..0000000 --- a/packages/Notification/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/notification", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/Notification/rescript.json b/packages/Notification/rescript.json deleted file mode 100644 index ccea1ca..0000000 --- a/packages/Notification/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/notification", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiNotification" -} diff --git a/packages/Performance/package.json b/packages/Performance/package.json deleted file mode 100644 index 9a0cefc..0000000 --- a/packages/Performance/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/performance", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/Performance/rescript.json b/packages/Performance/rescript.json deleted file mode 100644 index 4758886..0000000 --- a/packages/Performance/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/performance", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiPerformance" -} diff --git a/packages/Permissions/package.json b/packages/Permissions/package.json deleted file mode 100644 index 5ac0d4b..0000000 --- a/packages/Permissions/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/permissions", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/Permissions/rescript.json b/packages/Permissions/rescript.json deleted file mode 100644 index fe6b495..0000000 --- a/packages/Permissions/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/permissions", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiPermissions" -} diff --git a/packages/PictureInPicture/package.json b/packages/PictureInPicture/package.json deleted file mode 100644 index 3e4cb66..0000000 --- a/packages/PictureInPicture/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/picture-in-picture", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/PictureInPicture/rescript.json b/packages/PictureInPicture/rescript.json deleted file mode 100644 index 91a9379..0000000 --- a/packages/PictureInPicture/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/picture-in-picture", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiPictureInPicture" -} diff --git a/packages/PictureInPicture/src/PictureInPicture.res b/packages/PictureInPicture/src/PictureInPicture.res deleted file mode 100644 index edc3fc5..0000000 --- a/packages/PictureInPicture/src/PictureInPicture.res +++ /dev/null @@ -1,3 +0,0 @@ -type t = Types.pictureInPictureWindow = {...Types.pictureInPictureWindow} - -include WebApiEvent.EventTarget.Impl({type t = t}) diff --git a/packages/Push/package.json b/packages/Push/package.json deleted file mode 100644 index a5871dd..0000000 --- a/packages/Push/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/push", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/Push/rescript.json b/packages/Push/rescript.json deleted file mode 100644 index d71ce8c..0000000 --- a/packages/Push/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/push", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiPush" -} diff --git a/packages/RemotePlayback/package.json b/packages/RemotePlayback/package.json deleted file mode 100644 index de942d1..0000000 --- a/packages/RemotePlayback/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/remote-playback", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/RemotePlayback/rescript.json b/packages/RemotePlayback/rescript.json deleted file mode 100644 index d129b42..0000000 --- a/packages/RemotePlayback/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/remote-playback", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiRemotePlayback" -} diff --git a/packages/ResizeObserver/package.json b/packages/ResizeObserver/package.json deleted file mode 100644 index 9da54e8..0000000 --- a/packages/ResizeObserver/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/resize-observer", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/dom": "0.1.0" - } -} diff --git a/packages/ResizeObserver/rescript.json b/packages/ResizeObserver/rescript.json deleted file mode 100644 index 3df604c..0000000 --- a/packages/ResizeObserver/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/resize-observer", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/dom" - ], - "namespace": "WebApiResizeObserver" -} diff --git a/packages/ScreenWakeLock/package.json b/packages/ScreenWakeLock/package.json deleted file mode 100644 index 905e811..0000000 --- a/packages/ScreenWakeLock/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/screen-wake-lock", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/ScreenWakeLock/rescript.json b/packages/ScreenWakeLock/rescript.json deleted file mode 100644 index fd0672c..0000000 --- a/packages/ScreenWakeLock/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/screen-wake-lock", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiScreenWakeLock" -} diff --git a/packages/ServiceWorker/package.json b/packages/ServiceWorker/package.json deleted file mode 100644 index a69761c..0000000 --- a/packages/ServiceWorker/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@rescript-webapi/service-worker", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/channel-messaging": "0.1.0", - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/fetch": "0.1.0", - "@rescript-webapi/notification": "0.1.0", - "@rescript-webapi/base": "0.1.0", - "@rescript-webapi/push": "0.1.0", - "@rescript-webapi/web-workers": "0.1.0" - } -} diff --git a/packages/ServiceWorker/rescript.json b/packages/ServiceWorker/rescript.json deleted file mode 100644 index 4cd862b..0000000 --- a/packages/ServiceWorker/rescript.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@rescript-webapi/service-worker", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/channel-messaging", - "@rescript-webapi/event", - "@rescript-webapi/fetch", - "@rescript-webapi/notification", - "@rescript-webapi/base", - "@rescript-webapi/push", - "@rescript-webapi/web-workers" - ], - "namespace": "WebApiServiceWorker" -} diff --git a/packages/ServiceWorker/src/Cache.res b/packages/ServiceWorker/src/Cache.res deleted file mode 100644 index cff60fa..0000000 --- a/packages/ServiceWorker/src/Cache.res +++ /dev/null @@ -1,120 +0,0 @@ -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/match) -*/ -@send -external match: ( - WebApiWebWorkers.Types.cache, - ~request: WebApiFetch.Types.request, - ~options: WebApiWebWorkers.Types.cacheQueryOptions=?, -) => Nullable.t = "match" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/match) -*/ -@send -external match2: ( - WebApiWebWorkers.Types.cache, - ~request: string, - ~options: WebApiWebWorkers.Types.cacheQueryOptions=?, -) => Nullable.t = "match" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/matchAll) -*/ -@send -external matchAll: ( - WebApiWebWorkers.Types.cache, - ~request: WebApiFetch.Types.request=?, - ~options: WebApiWebWorkers.Types.cacheQueryOptions=?, -) => promise> = "matchAll" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/matchAll) -*/ -@send -external matchAll2: ( - WebApiWebWorkers.Types.cache, - ~request: string=?, - ~options: WebApiWebWorkers.Types.cacheQueryOptions=?, -) => promise> = "matchAll" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/add) -*/ -@send -external add: (WebApiWebWorkers.Types.cache, WebApiFetch.Types.request) => promise = "add" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/add) -*/ -@send -external add2: (WebApiWebWorkers.Types.cache, string) => promise = "add" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/addAll) -*/ -@send -external addAll: ( - WebApiWebWorkers.Types.cache, - array, -) => promise = "addAll" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/put) -*/ -@send -external put: ( - WebApiWebWorkers.Types.cache, - ~request: WebApiFetch.Types.request, - ~response: WebApiFetch.Types.response, -) => promise = "put" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/put) -*/ -@send -external put2: ( - WebApiWebWorkers.Types.cache, - ~request: string, - ~response: WebApiFetch.Types.response, -) => promise = "put" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/delete) -*/ -@send -external delete: ( - WebApiWebWorkers.Types.cache, - ~request: WebApiFetch.Types.request, - ~options: WebApiWebWorkers.Types.cacheQueryOptions=?, -) => promise = "delete" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/delete) -*/ -@send -external delete2: ( - WebApiWebWorkers.Types.cache, - ~request: string, - ~options: WebApiWebWorkers.Types.cacheQueryOptions=?, -) => promise = "delete" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/keys) -*/ -@send -external keys: ( - WebApiWebWorkers.Types.cache, - ~request: WebApiFetch.Types.request=?, - ~options: WebApiWebWorkers.Types.cacheQueryOptions=?, -) => promise> = "keys" - -/** -[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Cache/keys) -*/ -@send -external keys2: ( - WebApiWebWorkers.Types.cache, - ~request: string=?, - ~options: WebApiWebWorkers.Types.cacheQueryOptions=?, -) => promise> = "keys" diff --git a/packages/Storage/package.json b/packages/Storage/package.json deleted file mode 100644 index b03c27e..0000000 --- a/packages/Storage/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/storage", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/file": "0.1.0" - } -} diff --git a/packages/Storage/rescript.json b/packages/Storage/rescript.json deleted file mode 100644 index 5f3d17b..0000000 --- a/packages/Storage/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/storage", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/file" - ], - "namespace": "WebApiStorage" -} diff --git a/packages/UIEvents/package.json b/packages/UIEvents/package.json deleted file mode 100644 index 67f55d0..0000000 --- a/packages/UIEvents/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@rescript-webapi/ui-events", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/dom": "0.1.0", - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/file-and-directory-entries": "0.1.0", - "@rescript-webapi/file": "0.1.0", - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/UIEvents/rescript.json b/packages/UIEvents/rescript.json deleted file mode 100644 index dd97bf7..0000000 --- a/packages/UIEvents/rescript.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "@rescript-webapi/ui-events", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/dom", - "@rescript-webapi/event", - "@rescript-webapi/file-and-directory-entries", - "@rescript-webapi/file", - "@rescript-webapi/base" - ], - "namespace": "WebApiUIEvents" -} diff --git a/packages/URL/package.json b/packages/URL/package.json deleted file mode 100644 index 63a7ce3..0000000 --- a/packages/URL/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/url", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": {} -} diff --git a/packages/URL/rescript.json b/packages/URL/rescript.json deleted file mode 100644 index e0e3c0d..0000000 --- a/packages/URL/rescript.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "@rescript-webapi/url", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [], - "namespace": "WebApiURL" -} diff --git a/packages/ViewTransitions/package.json b/packages/ViewTransitions/package.json deleted file mode 100644 index 43e5589..0000000 --- a/packages/ViewTransitions/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/view-transitions", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": {} -} diff --git a/packages/ViewTransitions/rescript.json b/packages/ViewTransitions/rescript.json deleted file mode 100644 index c6faa34..0000000 --- a/packages/ViewTransitions/rescript.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "@rescript-webapi/view-transitions", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [], - "namespace": "WebApiViewTransitions" -} diff --git a/packages/VisualViewport/package.json b/packages/VisualViewport/package.json deleted file mode 100644 index a20e825..0000000 --- a/packages/VisualViewport/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/visual-viewport", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/VisualViewport/rescript.json b/packages/VisualViewport/rescript.json deleted file mode 100644 index b3da60c..0000000 --- a/packages/VisualViewport/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/visual-viewport", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiVisualViewport" -} diff --git a/packages/WebAudio/package.json b/packages/WebAudio/package.json deleted file mode 100644 index 447b0f6..0000000 --- a/packages/WebAudio/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@rescript-webapi/web-audio", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/channel-messaging": "0.1.0", - "@rescript-webapi/dom": "0.1.0", - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/media-capture-and-streams": "0.1.0", - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/WebAudio/rescript.json b/packages/WebAudio/rescript.json deleted file mode 100644 index 12eddd2..0000000 --- a/packages/WebAudio/rescript.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "@rescript-webapi/web-audio", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/channel-messaging", - "@rescript-webapi/dom", - "@rescript-webapi/event", - "@rescript-webapi/media-capture-and-streams", - "@rescript-webapi/base" - ], - "namespace": "WebApiWebAudio" -} diff --git a/packages/WebCrypto/package.json b/packages/WebCrypto/package.json deleted file mode 100644 index d138ca9..0000000 --- a/packages/WebCrypto/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/web-crypto", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/WebCrypto/rescript.json b/packages/WebCrypto/rescript.json deleted file mode 100644 index 2e73c9b..0000000 --- a/packages/WebCrypto/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/web-crypto", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/base" - ], - "namespace": "WebApiWebCrypto" -} diff --git a/packages/WebLocks/package.json b/packages/WebLocks/package.json deleted file mode 100644 index 7704feb..0000000 --- a/packages/WebLocks/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/web-locks", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/WebLocks/rescript.json b/packages/WebLocks/rescript.json deleted file mode 100644 index a1f5d5d..0000000 --- a/packages/WebLocks/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/web-locks", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiWebLocks" -} diff --git a/packages/WebMIDI/package.json b/packages/WebMIDI/package.json deleted file mode 100644 index 5584699..0000000 --- a/packages/WebMIDI/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@rescript-webapi/web-midi", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/base": "0.1.0" - } -} diff --git a/packages/WebMIDI/rescript.json b/packages/WebMIDI/rescript.json deleted file mode 100644 index 77f0e1c..0000000 --- a/packages/WebMIDI/rescript.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@rescript-webapi/web-midi", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event", - "@rescript-webapi/base" - ], - "namespace": "WebApiWebMIDI" -} diff --git a/packages/WebSockets/package.json b/packages/WebSockets/package.json deleted file mode 100644 index be933ff..0000000 --- a/packages/WebSockets/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "@rescript-webapi/web-sockets", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/channel-messaging": "0.1.0", - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/file": "0.1.0" - } -} diff --git a/packages/WebSockets/rescript.json b/packages/WebSockets/rescript.json deleted file mode 100644 index 0fded57..0000000 --- a/packages/WebSockets/rescript.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@rescript-webapi/web-sockets", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/channel-messaging", - "@rescript-webapi/event", - "@rescript-webapi/file" - ], - "namespace": "WebApiWebSockets" -} diff --git a/packages/WebSpeech/package.json b/packages/WebSpeech/package.json deleted file mode 100644 index c413147..0000000 --- a/packages/WebSpeech/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/web-speech", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/WebSpeech/rescript.json b/packages/WebSpeech/rescript.json deleted file mode 100644 index d899189..0000000 --- a/packages/WebSpeech/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/web-speech", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiWebSpeech" -} diff --git a/packages/WebStorage/package.json b/packages/WebStorage/package.json deleted file mode 100644 index 50b1dbd..0000000 --- a/packages/WebStorage/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/web-storage", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/WebStorage/rescript.json b/packages/WebStorage/rescript.json deleted file mode 100644 index 7f17b48..0000000 --- a/packages/WebStorage/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/web-storage", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiWebStorage" -} diff --git a/packages/WebVTT/package.json b/packages/WebVTT/package.json deleted file mode 100644 index add7347..0000000 --- a/packages/WebVTT/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@rescript-webapi/web-vtt", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/event": "0.1.0" - } -} diff --git a/packages/WebVTT/rescript.json b/packages/WebVTT/rescript.json deleted file mode 100644 index 2469442..0000000 --- a/packages/WebVTT/rescript.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@rescript-webapi/web-vtt", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/event" - ], - "namespace": "WebApiWebVTT" -} diff --git a/packages/WebWorkers/package.json b/packages/WebWorkers/package.json deleted file mode 100644 index 35af9fc..0000000 --- a/packages/WebWorkers/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@rescript-webapi/web-workers", - "version": "0.1.0", - "license": "MIT", - "type": "module", - "files": [ - "rescript.json", - "src/**/*.res" - ], - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "build": "rescript" - }, - "peerDependencies": { - "rescript": ">=12.0.0 <13" - }, - "dependencies": { - "@rescript-webapi/channel-messaging": "0.1.0", - "@rescript-webapi/event": "0.1.0", - "@rescript-webapi/fetch": "0.1.0", - "@rescript-webapi/url": "0.1.0" - } -} diff --git a/packages/WebWorkers/rescript.json b/packages/WebWorkers/rescript.json deleted file mode 100644 index 963f7e4..0000000 --- a/packages/WebWorkers/rescript.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@rescript-webapi/web-workers", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": { - "module": "esmodule", - "in-source": true - }, - "suffix": ".js", - "dependencies": [ - "@rescript-webapi/channel-messaging", - "@rescript-webapi/event", - "@rescript-webapi/fetch", - "@rescript-webapi/url" - ], - "namespace": "WebApiWebWorkers" -} diff --git a/scripts/unmonorepo/feature-spec.mjs b/scripts/unmonorepo/feature-spec.mjs index 30f16d2..d8b49bd 100644 --- a/scripts/unmonorepo/feature-spec.mjs +++ b/scripts/unmonorepo/feature-spec.mjs @@ -17,6 +17,9 @@ export function publicModuleToInternalPrefix(publicModule) { export function publicNameForLeafModule(leafName, internalPrefix) { const duplicatedSuffixes = ["Types", "Global", "Event", "File", "HTMLMediaElement"]; + const featureSuffix = featureSpecs + .map(({ publicModule }) => publicModule) + .find((publicModule) => leafName === `${internalPrefix}${publicModule}`); for (const suffix of duplicatedSuffixes) { if (leafName === `${internalPrefix}${suffix}`) { @@ -24,6 +27,10 @@ export function publicNameForLeafModule(leafName, internalPrefix) { } } + if (featureSuffix) { + return featureSuffix; + } + return leafName; } diff --git a/scripts/unmonorepo/generate-entry-modules.mjs b/scripts/unmonorepo/generate-entry-modules.mjs new file mode 100644 index 0000000..3f97e68 --- /dev/null +++ b/scripts/unmonorepo/generate-entry-modules.mjs @@ -0,0 +1,43 @@ +import fs from "node:fs"; +import path from "node:path"; +import { featureSpecs, publicNameForLeafModule } from "./feature-spec.mjs"; + +export function readModuleLeaves(featureDir) { + return fs + .readdirSync(featureDir) + .filter((name) => name.endsWith(".res")) + .map((name) => path.basename(name, ".res")) + .filter((leaf) => !featureSpecs.some((spec) => spec.publicModule === leaf)); +} + +export function renderEntryModule({ existingSource = "", internalPrefix, moduleLeaves }) { + const aliases = moduleLeaves + .sort() + .map((leaf) => `module ${publicNameForLeafModule(leaf, internalPrefix)} = ${leaf}`) + .join("\n"); + + return [existingSource.trimEnd(), aliases].filter(Boolean).join("\n\n"); +} + +export function generateEntryModules(rootDir) { + for (const spec of featureSpecs) { + const featureDir = path.join(rootDir, "src", spec.dirName); + if (!fs.existsSync(featureDir)) continue; + + const entryPath = path.join(featureDir, `${spec.publicModule}.res`); + const existingSource = fs.existsSync(entryPath) ? fs.readFileSync(entryPath, "utf8").trimEnd() : ""; + const moduleLeaves = readModuleLeaves(featureDir).filter((leaf) => leaf !== spec.publicModule); + const output = renderEntryModule({ + publicModule: spec.publicModule, + existingSource, + internalPrefix: spec.internalPrefix, + moduleLeaves, + }); + + fs.writeFileSync(entryPath, `${output}\n`); + } +} + +if (process.argv.includes("--write")) { + generateEntryModules(process.cwd()); +} diff --git a/scripts/unmonorepo/migrate-layout.mjs b/scripts/unmonorepo/migrate-layout.mjs index f70ffe6..9c7a6b9 100644 --- a/scripts/unmonorepo/migrate-layout.mjs +++ b/scripts/unmonorepo/migrate-layout.mjs @@ -9,6 +9,7 @@ function moveFile(fromPath, toPath) { export function migrateLayout(rootDir) { const duplicateLeaves = findDuplicateLeafModules(rootDir, featureSpecs); + const reservedPublicModules = new Set(featureSpecs.map((spec) => spec.publicModule)); for (const spec of featureSpecs) { const legacySourceDir = path.join(rootDir, "packages", spec.dirName, "src"); @@ -21,7 +22,8 @@ export function migrateLayout(rootDir) { if (!entry.isFile() || !entry.name.endsWith(".res")) continue; const leafName = path.basename(entry.name, ".res"); - const nextLeafName = duplicateLeaves.has(leafName) + const nextLeafName = + duplicateLeaves.has(leafName) || (reservedPublicModules.has(leafName) && leafName !== spec.publicModule) ? `${spec.internalPrefix}${leafName}` : leafName; diff --git a/scripts/unmonorepo/rewrite-references.mjs b/scripts/unmonorepo/rewrite-references.mjs new file mode 100644 index 0000000..f93eb23 --- /dev/null +++ b/scripts/unmonorepo/rewrite-references.mjs @@ -0,0 +1,79 @@ +import fs from "node:fs"; +import path from "node:path"; +import { featureSpecs, publicNameForLeafModule } from "./feature-spec.mjs"; + +export function rewriteSourceText(source, { currentFeature, specs, localLeaves }) { + const currentSpec = specs.find((spec) => spec.publicModule === currentFeature); + let next = source; + + for (const leaf of localLeaves) { + const publicLeaf = publicNameForLeafModule(leaf, currentSpec.internalPrefix); + next = next.replaceAll(`${currentSpec.legacyNamespace}.${publicLeaf}`, leaf); + } + + for (const spec of specs) { + next = next.replaceAll(`${spec.legacyNamespace}.`, `WebApi.${spec.publicModule}.`); + } + + return next; +} + +export function rewriteTestText(source, specs = featureSpecs) { + let next = source; + + for (const spec of specs) { + next = next.replaceAll(`${spec.legacyNamespace}.`, `WebApi.${spec.publicModule}.`); + } + + return next; +} + +function rewriteTestFilesInDirectory(directoryPath) { + for (const entry of fs.readdirSync(directoryPath, { withFileTypes: true })) { + const entryPath = path.join(directoryPath, entry.name); + + if (entry.isDirectory()) { + rewriteTestFilesInDirectory(entryPath); + continue; + } + + if (!entry.isFile() || !entry.name.endsWith(".res")) continue; + fs.writeFileSync(entryPath, rewriteTestText(fs.readFileSync(entryPath, "utf8"))); + } +} + +export function rewriteRepoReferences(rootDir) { + for (const spec of featureSpecs) { + const featureDir = path.join(rootDir, "src", spec.dirName); + if (!fs.existsSync(featureDir)) continue; + + const localLeaves = fs + .readdirSync(featureDir) + .filter((name) => name.endsWith(".res")) + .map((name) => path.basename(name, ".res")); + + for (const fileName of fs.readdirSync(featureDir)) { + if (!fileName.endsWith(".res")) continue; + + const filePath = path.join(featureDir, fileName); + const source = fs.readFileSync(filePath, "utf8"); + fs.writeFileSync( + filePath, + rewriteSourceText(source, { + currentFeature: spec.publicModule, + specs: featureSpecs, + localLeaves, + }), + ); + } + } + + const testsDir = path.join(rootDir, "tests"); + if (fs.existsSync(testsDir)) { + rewriteTestFilesInDirectory(testsDir); + } +} + +if (process.argv.includes("--write")) { + rewriteRepoReferences(process.cwd()); +} diff --git a/packages/Base/src/ArrayBufferTypedArrayOrDataView.res b/src/Base/ArrayBufferTypedArrayOrDataView.res similarity index 100% rename from packages/Base/src/ArrayBufferTypedArrayOrDataView.res rename to src/Base/ArrayBufferTypedArrayOrDataView.res diff --git a/src/Base/Base.res b/src/Base/Base.res new file mode 100644 index 0000000..84a24db --- /dev/null +++ b/src/Base/Base.res @@ -0,0 +1,7 @@ +module ArrayBufferTypedArrayOrDataView = ArrayBufferTypedArrayOrDataView +module CSSFontLoading = BaseCSSFontLoading +module DOM = BaseDOM +module EncryptedMediaExtensions = BaseEncryptedMediaExtensions +module Event = BaseEvent +module File = BaseFile +module FileAndDirectoryEntries = BaseFileAndDirectoryEntries diff --git a/packages/Base/src/CSSFontLoading.res b/src/Base/BaseCSSFontLoading.res similarity index 91% rename from packages/Base/src/CSSFontLoading.res rename to src/Base/BaseCSSFontLoading.res index dff65d9..38105b0 100644 --- a/packages/Base/src/CSSFontLoading.res +++ b/src/Base/BaseCSSFontLoading.res @@ -11,7 +11,7 @@ type fontFaceSetLoadStatus = /** [See FontFaceSet on MDN](https://developer.mozilla.org/docs/Web/API/FontFaceSet) */ -@editor.completeFrom(WebApiCSSFontLoading.FontFaceSet) +@editor.completeFrom(WebApi.CSSFontLoading.FontFaceSet) type rec fontFaceSet = private { ...Event.eventTarget, /** diff --git a/packages/Base/src/DOM.res b/src/Base/BaseDOM.res similarity index 97% rename from packages/Base/src/DOM.res rename to src/Base/BaseDOM.res index 8a7c006..e32f22d 100644 --- a/packages/Base/src/DOM.res +++ b/src/Base/BaseDOM.res @@ -203,12 +203,12 @@ The location (WebApiURL) of the object it is linked to. Changes done on it are r [See Location on MDN](https://developer.mozilla.org/docs/Web/API/Location) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.Location) +@editor.completeFrom(WebApi.DOM.Location) type location = { /** - Returns the Location object's WebApiURL. + Returns the Location object's WebApi.URL. -Can be set, to navigate to the given WebApiURL. +Can be set, to navigate to the given WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Location/href) */ mutable href: string, @@ -291,11 +291,11 @@ type userActivation = { The state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. [See Navigator on MDN](https://developer.mozilla.org/docs/Web/API/Navigator) */ -@editor.completeFrom(WebApiDOM.Navigator) +@editor.completeFrom(WebApi.DOM.Navigator) type navigator // TODO: mark as private once mutating fields of private records is allowed -@editor.completeFrom(WebApiDOM.DOMTokenList) +@editor.completeFrom(WebApi.DOM.DOMTokenList) type domTokenList = { /** Returns the number of tokens. @@ -315,7 +315,7 @@ Can be set, to change the associated attribute. A collection of Attr objects. Objects inside a NamedNodeMap are not in any particular order, unlike NodeList, although they may be accessed by an index as in an array. [See NamedNodeMap on MDN](https://developer.mozilla.org/docs/Web/API/NamedNodeMap) */ -@editor.completeFrom(WebApiDOM.NamedNodeMap) +@editor.completeFrom(WebApi.DOM.NamedNodeMap) type namedNodeMap = private { /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/length) @@ -331,7 +331,7 @@ type fragmentDirective = {} /** [See CustomElementRegistry on MDN](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry) */ -@editor.completeFrom(WebApiDOM.CustomElementRegistry) +@editor.completeFrom(WebApi.DOM.CustomElementRegistry) type customElementRegistry = private {} /** @@ -347,7 +347,7 @@ type barProp = { /** [See ScreenOrientation on MDN](https://developer.mozilla.org/docs/Web/API/ScreenOrientation) */ -@editor.completeFrom(WebApiDOM.ScreenOrientation) +@editor.completeFrom(WebApi.DOM.ScreenOrientation) type screenOrientation = private { ...Event.eventTarget, /** @@ -408,7 +408,7 @@ type offscreenRenderingContext = unknown /** [See AnimationTimeline on MDN](https://developer.mozilla.org/docs/Web/API/AnimationTimeline) */ -@editor.completeFrom(WebApiDOM.Animation) +@editor.completeFrom(WebApi.DOM.Animation) type rec animationTimeline = private { /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AnimationTimeline/currentTime) @@ -419,7 +419,7 @@ type rec animationTimeline = private { /** [See DocumentTimeline on MDN](https://developer.mozilla.org/docs/Web/API/DocumentTimeline) */ -@editor.completeFrom(WebApiDOM.DocumentTimeline) and documentTimeline = private { +@editor.completeFrom(WebApi.DOM.DocumentTimeline) and documentTimeline = private { // Base properties from AnimationTimeline /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AnimationTimeline/currentTime) @@ -432,7 +432,7 @@ type rec animationTimeline = private { [See MediaList on MDN](https://developer.mozilla.org/docs/Web/API/MediaList) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.MediaList) +@editor.completeFrom(WebApi.DOM.MediaList) type mediaList = { /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaList/mediaText) @@ -447,7 +447,7 @@ type mediaList = { /** [See StylePropertyMapReadOnly on MDN](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly) */ -@editor.completeFrom(WebApiDOM.StylePropertyMapReadOnly) +@editor.completeFrom(WebApi.DOM.StylePropertyMapReadOnly) type stylePropertyMapReadOnly = private { /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/size) @@ -458,7 +458,7 @@ type stylePropertyMapReadOnly = private { /** [See StylePropertyMap on MDN](https://developer.mozilla.org/docs/Web/API/StylePropertyMap) */ -@editor.completeFrom(WebApiDOM.StylePropertyMap) +@editor.completeFrom(WebApi.DOM.StylePropertyMap) type stylePropertyMap = private { ...stylePropertyMapReadOnly, } @@ -473,7 +473,7 @@ type domStringMap = {} A list of StyleSheet. [See StyleSheetList on MDN](https://developer.mozilla.org/docs/Web/API/StyleSheetList) */ -@editor.completeFrom(WebApiDOM.StyleSheetList) +@editor.completeFrom(WebApi.DOM.StyleSheetList) type rec styleSheetList = private { /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/StyleSheetList/length) @@ -522,7 +522,7 @@ A single CSS style sheet. It inherits properties and methods from its parent, St [See CSSStyleSheet on MDN](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.CSSStyleSheet) and cssStyleSheet = { +@editor.completeFrom(WebApi.DOM.CSSStyleSheet) and cssStyleSheet = { // Base properties from StyleSheet /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/StyleSheet/type) @@ -588,7 +588,7 @@ and cssRule = { A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects. [See CSSRuleList on MDN](https://developer.mozilla.org/docs/Web/API/CSSRuleList) */ -@editor.completeFrom(WebApiDOM.CSSRuleList) and cssRuleList = private { +@editor.completeFrom(WebApi.DOM.CSSRuleList) and cssRuleList = private { /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CSSRuleList/length) */ @@ -600,7 +600,7 @@ An object that is a CSS declaration block, and exposes style information and var [See CSSStyleDeclaration on MDN](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.CSSStyleDeclaration) and cssStyleDeclaration = { +@editor.completeFrom(WebApi.DOM.CSSStyleDeclaration) and cssStyleDeclaration = { /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssText) */ @@ -2308,7 +2308,7 @@ Node is an interface from which a number of WebApiDOM API object types inherit. [See Node on MDN](https://developer.mozilla.org/docs/Web/API/Node) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.Node) +@editor.completeFrom(WebApi.DOM.Node) type rec node = { ...Event.eventTarget, /** @@ -2322,7 +2322,7 @@ type rec node = { */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -2385,7 +2385,7 @@ type rec node = { NodeList objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll(). [See NodeList on MDN](https://developer.mozilla.org/docs/Web/API/NodeList) */ -@editor.completeFrom(WebApiDOM.NodeList) and nodeList<'tNode> = private { +@editor.completeFrom(WebApi.DOM.NodeList) and nodeList<'tNode> = private { /** Returns the number of nodes in the collection. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/NodeList/length) @@ -2398,7 +2398,7 @@ Element is the most general base class from which all objects in a Document inhe [See Element on MDN](https://developer.mozilla.org/docs/Web/API/Element) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.Element) and element = { +@editor.completeFrom(WebApi.DOM.Element) and element = { // Base properties from Node /** Returns the type of node. @@ -2411,7 +2411,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -2770,7 +2770,7 @@ TODO: mark as private once mutating fields of private records is allowed [See ShadowRoot on MDN](https://developer.mozilla.org/docs/Web/API/ShadowRoot) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.ShadowRoot) and shadowRoot = { +@editor.completeFrom(WebApi.DOM.ShadowRoot) and shadowRoot = { // Base properties from DocumentFragment // End base properties from DocumentFragment @@ -2786,7 +2786,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -2910,7 +2910,7 @@ Similarly, when the focused element is in a different node tree than documentOrS A generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list. [See HTMLCollection on MDN](https://developer.mozilla.org/docs/Web/API/HTMLCollection) */ -@editor.completeFrom(WebApiDOM.HTMLCollection) and htmlCollection<'t> = private { +@editor.completeFrom(WebApi.DOM.HTMLCollection) and htmlCollection<'t> = private { /** Sets or retrieves the number of objects in a collection. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length) @@ -2923,7 +2923,7 @@ A collection of HTML form control elements. [See HTMLFormControlsCollection on MDN](https://developer.mozilla.org/docs/Web/API/HTMLFormControlsCollection) */ @editor.completeFrom( - WebApiDOM.DOM.HTMLFormControlsCollection + WebApi.DOM.DOM.HTMLFormControlsCollection ) and htmlFormControlsCollection = private { // Base properties from HTMLCollection /** @@ -2939,7 +2939,7 @@ Any HTML element. Some elements directly implement this interface, while others [See HTMLElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.HTMLElement) and htmlElement = { +@editor.completeFrom(WebApi.DOM.HTMLElement) and htmlElement = { // Base properties from Element /** Returns the namespace. @@ -3052,7 +3052,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -3234,7 +3234,7 @@ Contains the descriptive information, or metadata, for a document. This object i [See HTMLHeadElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLHeadElement) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.HTMLHeadElement) and htmlHeadElement = { +@editor.completeFrom(WebApi.DOM.HTMLHeadElement) and htmlHeadElement = { // Base properties from HTMLElement /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/title) @@ -3426,7 +3426,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -3491,7 +3491,7 @@ A
element in the WebApiDOM; it allows access to and in some cases modific [See HTMLFormElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLFormElement) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.HTMLFormElement) and htmlFormElement = { +@editor.completeFrom(WebApi.DOM.HTMLFormElement) and htmlFormElement = { // Base properties from HTMLElement /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/title) @@ -3683,7 +3683,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -3799,7 +3799,7 @@ Provides special properties and methods for manipulating elements. [See HTMLImageElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLImageElement) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.HTMLImageElement) and htmlImageElement = { +@editor.completeFrom(WebApi.DOM.HTMLImageElement) and htmlImageElement = { // Base properties from HTMLElement /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/title) @@ -3991,7 +3991,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -4143,7 +4143,7 @@ Provides special properties (beyond the regular HTMLElement interface it also ha [See HTMLEmbedElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.HTMLEmbedElement) and htmlEmbedElement = { +@editor.completeFrom(WebApi.DOM.HTMLEmbedElement) and htmlEmbedElement = { // Base properties from HTMLElement /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/title) @@ -4335,7 +4335,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -4416,7 +4416,7 @@ Hyperlink elements and provides special properties and methods (beyond those of [See HTMLAnchorElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.HTMLAnchorElement) and htmlAnchorElement = { +@editor.completeFrom(WebApi.DOM.HTMLAnchorElement) and htmlAnchorElement = { // Base properties from HTMLElement /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/title) @@ -4608,7 +4608,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -4709,9 +4709,9 @@ TODO: mark as private once mutating fields of private records is allowed */ mutable referrerPolicy: string, /** - Returns the hyperlink's WebApiURL. + Returns the hyperlink's WebApi.URL. -Can be set, to change the WebApiURL. +Can be set, to change the WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/href) */ mutable href: string, @@ -4790,7 +4790,7 @@ Provides special properties and methods (beyond those of the regular object HTML [See HTMLAreaElement on MDN](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement) TODO: mark as private once mutating fields of private records is allowed */ -@editor.completeFrom(WebApiDOM.HTMLAreaElement) and htmlAreaElement = { +@editor.completeFrom(WebApi.DOM.HTMLAreaElement) and htmlAreaElement = { // Base properties from HTMLElement /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/title) @@ -4982,7 +4982,7 @@ TODO: mark as private once mutating fields of private records is allowed */ nodeName: string, /** - Returns node's node document's document base WebApiURL. + Returns node's node document's document base WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */ baseURI: string, @@ -5063,9 +5063,9 @@ TODO: mark as private once mutating fields of private records is allowed */ mutable referrerPolicy: string, /** - Returns the hyperlink's WebApiURL. + Returns the hyperlink's WebApi.URL. -Can be set, to change the WebApiURL. +Can be set, to change the WebApi.URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/href) */ mutable href: string, @@ -5144,7 +5144,7 @@ HTML