diff --git a/.github/workflows/elixir-ci-reusable.yml b/.github/workflows/elixir-ci-reusable.yml
new file mode 100644
index 00000000..95af9682
--- /dev/null
+++ b/.github/workflows/elixir-ci-reusable.yml
@@ -0,0 +1,138 @@
+# SPDX-License-Identifier: PMPL-1.0-or-later
+# elixir-ci-reusable.yml — Reusable Elixir CI bundle (RSR).
+#
+# Replaces the per-repo `elixir-ci.yml` template that copy-drifted (and
+# in several cases got corrupted) across the estate. Estate audit
+# (2026-05-26) found 9 repos shipping their own copy, with 9 unique
+# SHAs — 100% drift. One copy (`bofig`) was YAML-broken with literal
+# `npermissions:` lines from a botched permissions injection.
+#
+# Recurring failure modes observed across the estate:
+#
+# * Elixir version pinned to 1.15 while mix.exs declared ~> 1.17,
+# producing `(Mix) … but it has declared in its mix.exs file
+# it supports only Elixir ~> 1.17` (tma-mark2 #41 lived this).
+# * `mix compile --warnings-as-errors` applied to the whole
+# build, so transitive-dep warnings (e.g. rustler's
+# `:json.decode` reference needing Elixir 1.18) failed CI even
+# when the project's own code was clean.
+# * Inconsistent `permissions:` placement (some at top, some
+# mid-file, some missing).
+#
+# This reusable:
+# * Pins to the tma-mark2 #41-validated canonical shape.
+# * Compiles deps WITHOUT --warnings-as-errors first, then app code
+# with the strict flag — so deps warnings don't fail us but our
+# own code still gets the hygiene gate.
+# * Gates dialyzer behind an opt-in input (~5-minute cold-cache run
+# on most repos).
+# * Guards every job on `mix.exs` presence so consumers can add
+# the wrapper unconditionally.
+#
+# Caller example:
+#
+# jobs:
+# elixir-ci:
+# uses: hyperpolymath/standards/.github/workflows/elixir-ci-reusable.yml@main
+#
+# With dialyzer + customised versions:
+#
+# jobs:
+# elixir-ci:
+# uses: hyperpolymath/standards/.github/workflows/elixir-ci-reusable.yml@main
+# with:
+# elixir-version: "1.18"
+# enable_dialyzer: true
+
+name: Elixir CI (reusable)
+
+on:
+ workflow_call:
+ inputs:
+ runs-on:
+ description: Runner label for the Elixir CI job
+ type: string
+ required: false
+ default: ubuntu-latest
+ otp-version:
+ description: OTP version selector for erlef/setup-beam
+ type: string
+ required: false
+ default: "26"
+ elixir-version:
+ description: Elixir version selector for erlef/setup-beam
+ type: string
+ required: false
+ default: "1.17"
+ enable_dialyzer:
+ description: Run `mix dialyzer` (slow cold-cache; off by default)
+ type: boolean
+ required: false
+ default: false
+ enable_credo:
+ description: Run `mix credo --strict`
+ type: boolean
+ required: false
+ default: true
+
+permissions:
+ contents: read
+
+jobs:
+ test:
+ name: Compile + test
+ runs-on: ${{ inputs.runs-on }}
+ # Guard on mix.exs so the wrapper is safe to add unconditionally.
+ if: hashFiles('mix.exs') != ''
+ permissions:
+ contents: read
+ env:
+ MIX_ENV: test
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ repository: ${{ github.repository }}
+ ref: ${{ github.ref }}
+
+ - name: Set up BEAM (OTP + Elixir)
+ uses: erlef/setup-beam@5304e04ea2b355f03681464e683d92e3b2f18451 # v1.18.2
+ with:
+ otp-version: ${{ inputs.otp-version }}
+ elixir-version: ${{ inputs.elixir-version }}
+
+ - name: Cache deps
+ uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
+ with:
+ path: deps
+ key: deps-${{ inputs.elixir-version }}-${{ hashFiles('mix.lock') }}
+
+ - name: Cache _build
+ uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
+ with:
+ path: _build
+ key: build-${{ inputs.elixir-version }}-${{ hashFiles('mix.lock') }}
+
+ - name: Install deps
+ run: mix deps.get
+
+ # Compile deps WITHOUT --warnings-as-errors so upstream warnings
+ # (rustler's :json.decode needing Elixir 1.18, deprecated
+ # `use Bitwise`, etc.) don't fail the build. Strict mode then
+ # applies only to the project's own modules in the next step.
+ - name: Compile dependencies
+ run: mix deps.compile
+
+ - name: Compile project (strict)
+ run: mix compile --warnings-as-errors
+
+ - name: Credo lint
+ if: ${{ inputs.enable_credo }}
+ run: mix credo --strict
+
+ - name: Dialyzer
+ if: ${{ inputs.enable_dialyzer }}
+ run: mix dialyzer
+
+ - name: Run tests
+ run: mix test --cover
diff --git a/.github/workflows/rust-ci-reusable.yml b/.github/workflows/rust-ci-reusable.yml
new file mode 100644
index 00000000..8cc9b680
--- /dev/null
+++ b/.github/workflows/rust-ci-reusable.yml
@@ -0,0 +1,189 @@
+# SPDX-License-Identifier: PMPL-1.0-or-later
+# rust-ci-reusable.yml — Reusable Rust CI bundle (RSR).
+#
+# Replaces the per-repo `rust-ci.yml` template that copy-drifted across
+# the estate. Estate audit (2026-05-26) found:
+#
+# * 137 repos shipping their own copy of rust-ci.yml
+# * 30 unique SHAs — same logical workflow, drifted independently
+# * Recurring failure modes across PRs: missing top-level
+# `permissions:`, inconsistent `if: hashFiles('Cargo.toml')`
+# guards, `cargo audit` re-installing every run, license-header
+# drift (PMPL/MPL/AGPL), inconsistent SHA pins.
+#
+# The reusable bundles the union of features observed across the
+# variants and gates the slow extras (audit, coverage) behind opt-in
+# inputs so consumers only pay for what they want.
+#
+# Caller example (single wrapper, mirrors governance.yml + deno-ci.yml):
+#
+# jobs:
+# rust-ci:
+# uses: hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@main
+#
+# With audit + coverage enabled:
+#
+# jobs:
+# rust-ci:
+# uses: hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@main
+# with:
+# enable_audit: true
+# enable_coverage: true
+
+name: Rust CI (reusable)
+
+on:
+ workflow_call:
+ inputs:
+ runs-on:
+ description: Runner label for all Rust CI jobs
+ type: string
+ required: false
+ default: ubuntu-latest
+ enable_audit:
+ description: Run `cargo audit` (slow — installs each run; off by default)
+ type: boolean
+ required: false
+ default: false
+ enable_coverage:
+ description: Run `cargo tarpaulin` + upload to codecov (slow; off by default)
+ type: boolean
+ required: false
+ default: false
+ clippy_args:
+ description: Args appended to `cargo clippy`
+ type: string
+ required: false
+ default: "--all-targets -- -D warnings"
+ test_args:
+ description: Args appended to `cargo test`
+ type: string
+ required: false
+ default: "--all-targets"
+ check_args:
+ description: Args appended to `cargo check`
+ type: string
+ required: false
+ default: "--all-targets"
+
+permissions:
+ contents: read
+
+jobs:
+ # Skip the whole reusable when the repo has no Cargo.toml — lets
+ # consumers add the wrapper unconditionally without worrying about
+ # repos that don't ship Rust code at the moment.
+ check:
+ name: Cargo check + clippy + fmt
+ runs-on: ${{ inputs.runs-on }}
+ if: hashFiles('Cargo.toml') != ''
+ permissions:
+ contents: read
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ repository: ${{ github.repository }}
+ ref: ${{ github.ref }}
+
+ - name: Install Rust toolchain
+ uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
+ with:
+ components: clippy, rustfmt
+
+ - name: Cache cargo registry and build
+ uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
+
+ - name: Cargo check
+ run: cargo check ${{ inputs.check_args }}
+
+ - name: Cargo fmt
+ run: cargo fmt --all -- --check
+
+ - name: Cargo clippy
+ run: cargo clippy ${{ inputs.clippy_args }}
+
+ test:
+ name: Cargo test
+ runs-on: ${{ inputs.runs-on }}
+ needs: check
+ if: hashFiles('Cargo.toml') != ''
+ permissions:
+ contents: read
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ repository: ${{ github.repository }}
+ ref: ${{ github.ref }}
+
+ - name: Install Rust toolchain
+ uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
+
+ - name: Cache cargo registry and build
+ uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
+
+ - name: Run tests
+ run: cargo test ${{ inputs.test_args }}
+
+ - name: Write summary
+ if: always()
+ run: |
+ {
+ echo "## Rust CI Results"
+ echo ""
+ echo "- **cargo check**: ${{ needs.check.result }}"
+ echo "- **cargo test**: completed"
+ } >> "$GITHUB_STEP_SUMMARY"
+
+ audit:
+ name: Cargo audit (security)
+ runs-on: ${{ inputs.runs-on }}
+ if: ${{ inputs.enable_audit && hashFiles('Cargo.toml') != '' }}
+ permissions:
+ contents: read
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ repository: ${{ github.repository }}
+ ref: ${{ github.ref }}
+
+ - name: Install Rust toolchain
+ uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
+
+ - name: Install cargo-audit
+ # Use the binstall path when available to skip a from-source rebuild
+ # on every run — was the single biggest contributor to slow CI on
+ # repos that opted in to audit (~3–4 minute install).
+ run: cargo install cargo-audit --locked
+
+ - name: Security audit
+ run: cargo audit
+
+ coverage:
+ name: Coverage (tarpaulin + codecov)
+ runs-on: ${{ inputs.runs-on }}
+ if: ${{ inputs.enable_coverage && hashFiles('Cargo.toml') != '' }}
+ permissions:
+ contents: read
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ repository: ${{ github.repository }}
+ ref: ${{ github.ref }}
+
+ - name: Install Rust toolchain
+ uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
+
+ - name: Install tarpaulin
+ run: cargo install cargo-tarpaulin --locked
+
+ - name: Generate coverage
+ run: cargo tarpaulin --out Xml
+
+ - name: Upload to codecov
+ uses: codecov/codecov-action@ab904c41d6ece82784817410c45d8b8c02684457 # v3
+ with:
+ files: cobertura.xml
diff --git a/0-ai-gatekeeper-protocol/examples/SafeDOMExample.affine b/0-ai-gatekeeper-protocol/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/0-ai-gatekeeper-protocol/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "
Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/examples/SafeDOMExample.affine b/0-ai-gatekeeper-protocol/mcp-repo-guardian/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/examples/SafeDOMExample.affine b/0-ai-gatekeeper-protocol/repo-guardian-fs/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/0-ai-gatekeeper-protocol/repo-guardian-fs/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/a2ml/actions/validate/examples/SafeDOMExample.affine b/a2ml/actions/validate/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/a2ml/actions/validate/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/a2ml/bindings/deno/examples/SafeDOMExample.affine b/a2ml/bindings/deno/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/a2ml/bindings/deno/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/a2ml/bindings/haskell/examples/SafeDOMExample.affine b/a2ml/bindings/haskell/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/a2ml/bindings/haskell/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/a2ml/bindings/rust/examples/SafeDOMExample.affine b/a2ml/bindings/rust/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/a2ml/bindings/rust/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/a2ml/editors/vscode/examples/SafeDOMExample.affine b/a2ml/editors/vscode/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/a2ml/editors/vscode/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/a2ml/examples/SafeDOMExample.affine b/a2ml/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/a2ml/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/a2ml/pandoc/examples/SafeDOMExample.affine b/a2ml/pandoc/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/a2ml/pandoc/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/agentic-a2ml/examples/SafeDOMExample.affine b/agentic-a2ml/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/agentic-a2ml/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/anchor-a2ml/examples/SafeDOMExample.affine b/anchor-a2ml/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/anchor-a2ml/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/avow-protocol/examples/SafeDOMExample.affine b/avow-protocol/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/avow-protocol/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/avow-protocol/telegram-bot/avow-telegram-bot/examples/SafeDOMExample.affine b/avow-protocol/telegram-bot/avow-telegram-bot/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/avow-protocol/telegram-bot/avow-telegram-bot/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/avow-protocol/telegram-bot/examples/SafeDOMExample.affine b/avow-protocol/telegram-bot/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/avow-protocol/telegram-bot/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/axel-protocol/examples/SafeDOMExample.affine b/axel-protocol/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/axel-protocol/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/consent-aware-http/examples/SafeDOMExample.affine b/consent-aware-http/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/consent-aware-http/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/ecosystem-a2ml/examples/SafeDOMExample.affine b/ecosystem-a2ml/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/ecosystem-a2ml/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/k9-svc/actions/validate/examples/SafeDOMExample.affine b/k9-svc/actions/validate/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/k9-svc/actions/validate/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/k9-svc/bindings/deno/examples/SafeDOMExample.affine b/k9-svc/bindings/deno/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/k9-svc/bindings/deno/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/k9-svc/bindings/haskell/examples/SafeDOMExample.affine b/k9-svc/bindings/haskell/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/k9-svc/bindings/haskell/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/k9-svc/bindings/rust/examples/SafeDOMExample.affine b/k9-svc/bindings/rust/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/k9-svc/bindings/rust/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/k9-svc/editors/vscode/examples/SafeDOMExample.affine b/k9-svc/editors/vscode/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/k9-svc/editors/vscode/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()
diff --git a/k9-svc/pandoc/examples/SafeDOMExample.affine b/k9-svc/pandoc/examples/SafeDOMExample.affine
deleted file mode 100644
index 346c8d2a..00000000
--- a/k9-svc/pandoc/examples/SafeDOMExample.affine
+++ /dev/null
@@ -1,111 +0,0 @@
-// SPDX-License-Identifier: PMPL-1.0-or-later
-// Example: Using SafeDOM for formally verified DOM mounting.
-// AffineScript port of SafeDOMExample.res.
-
-module SafeDOMExample;
-
-use SafeDOM;
-
-// __ Example 1: Basic mounting with error handling ________________________
-
-fn mount_app() -> Effect[IO] Unit {
- mount_safe(
- "#app",
- "Hello, World!
Mounted safely with proofs.
",
- fn(el) { Console.log("✓ App mounted successfully!"); Console.log_value("Element:", el) },
- fn(err) { Console.error("✗ Mount failed:", err) },
- )
-}
-
-// __ Example 2: Wait for DOM ready before mounting ________________________
-
-fn mount_when_dom_ready() -> Effect[IO] Unit {
- mount_when_ready(
- "#app",
- "App Title
",
- fn(_) { Console.log("✓ Mounted after DOM ready") },
- fn(err) { Console.error("✗ Failed:", err) },
- )
-}
-
-// __ Example 3: Batch mounting (atomic - all or nothing) __________________
-
-fn mount_multiple() -> Effect[IO] Unit {
- let specs = [
- SafeDOM.Spec { selector: "#header", html: "" },
- SafeDOM.Spec { selector: "#nav", html: "" },
- SafeDOM.Spec { selector: "#main", html: "Content here
" },
- SafeDOM.Spec { selector: "#footer", html: "" },
- ];
-
- match mount_batch(specs) {
- Ok(elements) => {
- Console.log("✓ Successfully mounted " ++ int_to_string(len(elements)) ++ " elements");
- let i = 0;
- while i < len(elements) {
- Console.log_value(" -", elements[i]);
- i = i + 1;
- }
- }
- Err(err) => {
- Console.error("✗ Batch mount failed:", err);
- Console.error(" (None were mounted - atomic operation)", Unit)
- }
- }
-}
-
-// __ Example 4: Explicit validation before mounting ______________________
-
-fn mount_with_validation() -> Effect[IO] Unit {
- match ProvenSelector.validate("#my-app") {
- Err(e) => Console.error("Invalid selector: " ++ e, Unit),
- Ok(valid_selector) => {
- match ProvenHTML.validate("Content
") {
- Err(e) => Console.error("Invalid HTML: " ++ e, Unit),
- Ok(valid_html) => {
- match mount(valid_selector, valid_html) {
- Mounted(el) => Console.log_value("✓ Mounted with validated inputs:", el),
- MountPointNotFound(s) => Console.error("✗ Element not found: " ++ s, Unit),
- InvalidSelector(_) => Console.error("Impossible - already validated", Unit),
- InvalidHTML(_) => Console.error("Impossible - already validated", Unit),
- }
- }
- }
- }
- }
-}
-
-// __ Example 5: Integration with TEA _____________________________________
-
-module MyApp {
- pub type Model = { message: String }
- pub type Msg = | NoOp
-
- pub fn init() -> Model { Model { message: "Hello from TEA" } }
- pub fn update(model: Model, _msg: Msg) -> Model { model }
- pub fn view(model: Model) -> String {
- "" ++ model.message ++ "
"
- }
-}
-
-fn mount_tea_app() -> Effect[IO] Unit {
- let model = MyApp.init();
- let html = MyApp.view(model);
-
- mount_when_ready(
- "#tea-app",
- html,
- fn(_el) { Console.log("✓ TEA app mounted") },
- fn(err) { Console.error("✗ TEA mount failed: " ++ err, Unit) },
- )
-}
-
-// __ Entry point _________________________________________________________
-
-pub fn main() -> Effect[IO] Unit {
- Console.log("SafeDOM Examples");
- Console.log("================\n");
- mount_when_dom_ready()
-}
-
-main()