diff --git a/Dockerfile b/Dockerfile index bc4f26e..863e9d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,15 +29,16 @@ ARG TARGETARCH RUN XCADDY_SETCAP=0 CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \ xcaddy build v2.11.4 \ --output /usr/bin/caddy \ + --replace golang.org/x/crypto=golang.org/x/crypto@v0.55.0 \ --replace golang.org/x/net=golang.org/x/net@v0.56.0 \ --replace golang.org/x/text=golang.org/x/text@v0.39.0 \ - --replace google.golang.org/grpc=google.golang.org/grpc@v1.82.1 + --replace google.golang.org/grpc=google.golang.org/grpc@v1.83.2 FROM scratch AS runner ARG SOURCE_REVISION=unrecorded ARG SOURCE_CREATED=1970-01-01T00:00:00Z -ARG DRUFF_VERSION=0.1.0 +ARG DRUFF_VERSION=0.2.0-rc.1 LABEL org.opencontainers.image.title="Druff" LABEL org.opencontainers.image.description="Static, provider-neutral Dander control-plane interface" diff --git a/HANDOFF.md b/HANDOFF.md index 86dfd58..4895948 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -2,34 +2,40 @@ ## Finished -- Merged current-Dander compatibility in PR #23 and passed exact-main CI at `34acec00dfc9aafe93a62b1e3ed2b1b807a66487`. -- Exercised Druff's production clients against protected Dander RC32 at `33801213ee8c1bab78b8847a4b86bd9b4b8d1c63`. -- Built and retained exact active and rollback multi-platform OCI artifacts with SBOM and provenance attestations. -- Verified both artifacts are source-free, non-root, read-only, route-complete, and clean under the protected Trivy policy. +- Added a hosted Choose → Configure → Review → Run → Results journey with one primary action and existing technical controls under advanced details. +- Bound unsaved change previews to the draft, graph address and revision; running requires the reviewed content hash to match the saved graph. +- Added recorded outcome explanations, missing-measurement handling and explicit retained-raw date repair with date/revision invalidation and safe retry keys. +- Preserved loopback editing, OIDC/capability gates, graph conflicts, logs, cancellation and replay; corrected the existing font variable and toolbar overflow. +- Documented the experimental repair boundary and added a read-only production-client observation test for an already-completed native repair. ## Try It -Resolve the retained artifacts with `oras resolve --oci-layout /Users/harrison/.codex/artifacts/druff/2026-08-24-release/druff-active-34acec00dfc9.oci.tar:active` or the matching `druff-rollback-55f1565f3cb8.oci.tar:rollback`. For Control API acceptance, start current Dander and run `DANDER_CONTROL_URL=http://127.0.0.1:8770 DANDER_EXPECTED_VERSION=0.9.0rc32 pnpm test:current-dander`. +In hosted mode, browse a graph, edit its source/output configuration, choose **Preview changes**, then **Save reviewed changes** and **Run reviewed graph**. Expand **Repair selected output dates** for an eligible saved graph. Existing operator configuration still supplies connections and deployed environments. + +For real HTTP contract checks, start an ephemeral Dander Control API and use `DANDER_CONTROL_URL=... DANDER_EXPECTED_VERSION=... pnpm test:current-dander`. For an accepted native repair, use the explicit project, graph and run ID variables documented in README with `pnpm test:repair-observation`. ## Checks -- PR #23 and exact-main run `32787930579` passed Frontend quality, Source-free container, and Secret scan. -- Current-Dander acceptance, contract/artifact checks, lint, types, format, 669 unit tests, and 11 Playwright journeys passed. -- Both exact artifacts passed reproducible-layer, promotion, archive, amd64/arm64 runtime/export, and Trivy 0.70.0 HIGH/CRITICAL plus secret checks with zero findings. +- Passed 685 unit/component tests, nine artifact checks, TypeScript, ESLint, Prettier and static build against the verified published RC33 wheel; independent contract regeneration reports no drift. +- Passed all 11 Playwright journeys, including reviewed save/run, date invalidation, repair submission and existing conflict/retry behavior. Browser OIDC/API responses are synthetic. +- Passed real HTTP acceptance against published RC34 Control: exact hashes, canvas round trip, unsaved preview/save, stale rejection and truthful unsupported execution. Final RC34 regeneration/drift, 29 contract tests, 18 journey/API tests, TypeScript and focused lint passed; its bundle is unchanged. +- Visually inspected the synthetic browser screenshot; font and horizontal overflow defects are corrected. A focused test also confirms late explanations cannot replace newer run status. +- PR #25 initially found three fixed high Caddy dependency findings. Pinned x/crypto 0.55.0 and gRPC 1.83.2; CI `36870826744` passed both architecture scans, reproducibility, runtime checks and frontend/secret checks. ## Decisions -- Active is merge commit `34acec00dfc9`; rollback is green PR head `55f1565f3cb8`; both share tree `ce829147ef3b`. -- Retain the public RC19 contract pin because protected RC32's bundle is byte-identical. -- Keep the release artifacts as local OCI archives; public registry publication remains a separate external action. +- Dander remains the only semantic/execution authority; no provider client or new auth infrastructure was added. +- Missing result documents display Unknown instead of interpreting default counters as measured zeros. +- Date repair rebuilds output partitions from retained raw data; it is explicitly experimental and does not recover historical source records. ## Remaining -- No Druff implementation or release-readiness gap remains. -- Publish or deploy the retained artifact only when a destination is explicitly approved. +- Candidate version is `0.2.0-rc.1`, paired with published RC34 Control and the unchanged contract digest in README. This does not promote the RC20 public beta. +- Observe the separately authorized native repair once its accepted run ID is available; no provider workload was launched by Druff tests. +- Complete protected PR #25, exact-main checks and candidate image publication with the final RC34 pin. ## Review First -- `tickets/DRUFF-31-current-dander-release-acceptance.md` -- `integration/current-dander-control.test.ts` -- `/Users/harrison/.codex/artifacts/druff/2026-08-24-release/records` +- `src/features/hosted-control/useGraphChangePreview.ts` and `DateRepairPanel.tsx` +- `src/features/hosted-control/control-api.ts` and `integration/` +- `tickets/DRUFF-32-guided-pipeline-journey.md` diff --git a/README.md b/README.md index 0ea8677..c39cf35 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,15 @@ Front-end companion to **[Dander](https://github.com/harrisonoconnorhover/dander editor for Dander's canonical `PipelineGraph` files (drag/drop nodes, wire connections, configure sources/transforms/writes). -Druff opens and saves one graph file through Dander's localhost API. Dander owns parsing, -validation, conflict detection, and atomic filesystem writes. When the operator binds that graph -to one manifest pipeline, Druff can also validate it, manually run its already-deployed Cloud Run -job, and show compact execution/run-ledger status. A version-1 `dander.yaml` can still be imported -as a detached, one-way visualization. When Dander explicitly enables it with complete operator -inputs, Druff can also request a source-free candidate and display its non-applyable Terraform -plan; Druff never writes the manifest or applies infrastructure. +Druff connects to Dander's hosted Control API or its single-file localhost API. Hosted users sign +in, choose a graph, configure it on the canvas, review unsaved changes, save, run and inspect the +recorded outcome. Dander owns parsing, validation, revision conflicts, storage and execution. + +In localhost mode, an operator can bind the open graph to one manifest pipeline to validate it, +run its already-deployed Cloud Run job and inspect the run ledger. A version-1 `dander.yaml` can +still be imported as a detached, one-way visualization. When Dander explicitly enables it with +complete operator inputs, Druff can also request a source-free candidate and display its +non-applyable Terraform plan; Druff never writes the manifest or applies infrastructure. When that manifest pins installed connector plugins, Druff discovers their presentation-safe descriptors from Dander and adds them to the palette dynamically. The first dynamic connector is @@ -31,7 +33,7 @@ read-only instead of being rewritten. See `CLAUDE.md` and `steering/00-project-overview.md` for the full picture (why this exists, the module map, decision log). The accepted documentation-only Druff 1.0 architecture checkpoint is in `steering/03-control-plane-roadmap.md`. Druff's DTOs now come from Dander's published contract -bundle; hosted graph storage, identity, and run APIs remain later phases. +bundle; hosted graph storage, identity, and run controls are implemented by the static client. ## Stack @@ -57,11 +59,13 @@ pnpm install pnpm dev # http://localhost:3000 ``` -Contract output is generated only from the pinned public -`dander-platform==0.9.0rc19` wheel on PyPI. The generator verifies the wheel, manifest, every file, -and the whole bundle before writing output; it never reads a sibling Dander checkout. Current -protected Dander RC32 retains the exact same `io.dander.control.contracts/v1` bundle bytes, so the -published pin remains the authority instead of being relabeled from an unpublished checkout. +Contract output is generated only from the pinned +[`dander-platform==0.9.0rc34` GitHub integration-candidate wheel](https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl), +SHA-256 `d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad`. +The generator verifies the wheel, manifest, every file, and the whole bundle before writing output; +it never reads a sibling Dander checkout. This client requires the matching RC34 bundle. The +GitHub integration candidate does not promote Dander's public PyPI RC20 beta or qualify additional +provider profiles. ```bash pnpm contracts:check # re-generate in a temporary directory and fail on committed drift @@ -72,12 +76,12 @@ Release acceptance can additionally exercise Druff's production graph and operat against a locally running current Dander Control API: ```bash -# In the protected Dander checkout: -uv run dander control serve --ephemeral --project demo-project --port 8770 +# In an environment installed from the pinned RC34 wheel above (not the RC20 PyPI beta): +dander control serve --ephemeral --project demo-project --port 8770 # In Druff: DANDER_CONTROL_URL=http://127.0.0.1:8770 \ -DANDER_EXPECTED_VERSION=0.9.0rc32 \ +DANDER_EXPECTED_VERSION=0.9.0rc34 \ pnpm test:current-dander ``` @@ -133,6 +137,45 @@ cancel, and replay APIs. Dander remains authoritative for authorization and sema discards stale or mismatched responses and never receives provider credentials or native payloads. When `/bootstrap.json` is absent, the existing local-loopback workspace remains unchanged. +The hosted workspace guides one saved graph through **Choose → Configure → Review → Run → Results**: + +1. Browse a project and open a graph, or create a graph from the current canvas draft. Configure + source and output nodes in the existing inspector. Connections and deployed environments still + belong to Dander's operator configuration. +2. Choose **Preview changes** to compare the unsaved draft with its saved revision. The review + lists changed nodes and connections, downstream outputs, and the write behavior of every + output a full run will write. This comparison does not query rows or estimate a bill. +3. Choose **Save reviewed changes**, then **Run reviewed graph**. Edits invalidate the review; + Dander checks the saved revision again before accepting execution. Saving alone does not run. +4. Read the recorded outcome and suggested next action. Missing result measurements stay + **Unknown**, including server-default counters before a result document exists. Advanced + validation, deployment preview, logs, cancellation and replay remain available. +5. Expand **Repair selected output dates** to preview a saved graph's half-open UTC date window + (first date included, end date excluded). A compatible environment can rebuild those output + partitions from retained raw warehouse data. This does not fetch historical source records or + move normal ingestion progress. Dander determines eligibility and publishes the selected + ranges atomically; unsupported graphs/environments return an explicit explanation. + +Date repair is an experimental producer capability until its stated qualification gates are met. +A generated client and its Dander deployment must use the same published contract bundle. Browser +journey tests use synthetic HTTP/OIDC fixtures; they do not establish live provider success. + +To inspect an already-completed operator-owned native repair through Druff's real HTTP client, +without starting another workload: + +```bash +DANDER_CONTROL_URL=http://127.0.0.1:8876 \ +DANDER_REPAIR_PROJECT=repair-proof-rc34 \ +DANDER_REPAIR_GRAPH=repair-corrections \ +DANDER_REPAIR_RUN_ID=REPLACE_WITH_ACCEPTED_RUN_ID \ +pnpm test:repair-observation +``` + +This observation verifies the exact contract, saved graph, repair preview, status and explanation +for the September 10–12 synthetic fixture, including zero extracted rows, two output rows written +and four output rows affected. +The operator's separate provider evidence must establish warehouse results, watermarks and cleanup. + To enable the narrow operational controls for one graph that is already deployed, start Dander with its matching manifest pipeline and GCP project: diff --git a/e2e/hosted-graph-management.spec.ts b/e2e/hosted-graph-management.spec.ts index b99433c..2181a4a 100644 --- a/e2e/hosted-graph-management.spec.ts +++ b/e2e/hosted-graph-management.spec.ts @@ -1,9 +1,12 @@ import { expect, test, type Page, type Route } from "@playwright/test"; import { execFileSync } from "node:child_process"; +import { createHash } from "node:crypto"; import { createReadStream, existsSync, mkdtempSync, readFileSync, rmSync, statSync } from "node:fs"; import { createServer, type Server } from "node:https"; import { tmpdir } from "node:os"; import { extname, join, resolve } from "node:path"; +import type { RunStatusResponse, RunExplanationResponse } from "../src/lib/dander-contracts"; +import repairPreviewFixture from "../src/generated/dander-contracts/bundle/fixtures/graph-repair-preview.json"; import staticSecurityHeaders from "../artifact/static-security-headers.json"; import { DANDER_CONTRACT_BUNDLE_ID, @@ -38,6 +41,7 @@ type StoredRun = { runId: string; state: "queued" | "running" | "succeeded" | "canceling" | "canceled"; polls: number; + repairWindow?: { start_date: string; end_date: string }; }; type DurableControlState = { @@ -61,6 +65,8 @@ function graphDocument(name: string, nodeName: string) { id: "source", type: "source", name: nodeName, + config: { connector: null, endpoint: null }, + fields: [], visual: { position: { x: 20, y: 40 }, color: "green", icon: "database" }, }, ], @@ -79,12 +85,24 @@ function nextRecord( graph, document, revision: `"revision-${durable.revision}"`, - contentSha: durable.revision.toString(16).padStart(64, "0"), + contentSha: graphHash(document), createdAt, updatedAt: `2026-08-14T10:00:${String(durable.revision).padStart(2, "0")}Z`, }; } +function graphHash(document: unknown): string { + return createHash("sha256") + .update( + JSON.stringify(document, (_key, value: unknown) => { + if (value && typeof value === "object" && !Array.isArray(value)) + return Object.fromEntries(Object.entries(value).sort(([a], [b]) => a.localeCompare(b))); + return value; + }), + ) + .digest("hex"); +} + function resource(record: StoredGraph) { return { project: PROJECT, @@ -100,7 +118,7 @@ function errorEnvelope(code: string, message: string) { return { error: { code, message, correlation_id: "e2e-correlation", details: [] } }; } -function runStatus(run: StoredRun) { +function runStatus(run: StoredRun): RunStatusResponse { const terminal = run.state === "succeeded" || run.state === "canceled"; return { run_id: run.runId, @@ -120,6 +138,9 @@ function runStatus(run: StoredRun) { can_cancel: run.state === "queued" || run.state === "running", can_replay: terminal, logs_available: run.state === "running" || terminal, + result_schema: + run.state === "succeeded" ? "io.dander.control.execution-result-summary/v1" : null, + repair_window: run.repairWindow ?? null, }; } @@ -291,6 +312,10 @@ function createControlService(durable: DurableControlState) { "graph.edit", "graph.delete", "graph.validate", + "graph.change-preview", + "graph.repair-preview", + "run.repair", + "run.explain", "deployment.preview", "run.start", "run.read", @@ -414,7 +439,7 @@ function createControlService(durable: DurableControlState) { } const operationMatch = - /^\/v1\/projects\/demo-project\/graphs\/([^/]+)\/(validate|deployment-preview)$/.exec( + /^\/v1\/projects\/demo-project\/graphs\/([^/]+)\/(validate|deployment-preview|change-preview|repair-preview)$/.exec( url.pathname, ); if (operationMatch && request.method() === "POST") { @@ -429,6 +454,35 @@ function createControlService(durable: DurableControlState) { ); return; } + if (operation === "repair-preview") { + await json(route, 200, { + ...repairPreviewFixture, + graph_content_sha256: current.contentSha, + window: JSON.parse(request.postData() ?? "{}"), + }); + return; + } + if (operation === "change-preview") { + const candidate = JSON.parse(request.postData() ?? "{}"); + if (durable.runCounter === 0) expect(candidate).toEqual(current.document); + await json(route, 200, { + baseline_content_sha256: current.contentSha, + candidate_content_sha256: graphHash(candidate), + graph_properties_changed: [], + node_changes: [], + connection_changes: [], + affected_outputs: [], + outputs: [], + run_output_ids: [], + estimates: { + rows_written: null, + cost_usd: null, + explanation: "This synthetic preview does not inspect warehouse rows.", + }, + limitations: [], + }); + return; + } if (operation === "validate") { await json(route, 200, { valid: false, @@ -464,7 +518,7 @@ function createControlService(durable: DurableControlState) { return; } - const startRunMatch = /^\/v1\/projects\/demo-project\/graphs\/([^/]+)\/runs$/.exec( + const startRunMatch = /^\/v1\/projects\/demo-project\/graphs\/([^/]+)\/(runs|repairs)$/.exec( url.pathname, ); if (startRunMatch && request.method() === "POST") { @@ -489,6 +543,9 @@ function createControlService(durable: DurableControlState) { runId: `run-synthetic-${durable.runCounter}`, state: "queued", polls: 0, + ...(startRunMatch[2] === "repairs" + ? { repairWindow: JSON.parse(request.postData() ?? "{}") } + : {}), }; durable.runs.set(run.runId, run); const status = runStatus(run); @@ -512,6 +569,41 @@ function createControlService(durable: DurableControlState) { return; } + const explanationMatch = /^\/v1\/runs\/([^/]+)\/explanation$/.exec(url.pathname); + if (explanationMatch && request.method() === "GET") { + const run = durable.runs.get(decodeURIComponent(explanationMatch[1]!))!; + const nextAction: RunExplanationResponse["next_action"] = + run.state === "succeeded" + ? { + kind: "inspect_outputs", + label: "Review the pipeline outputs", + reason: "Confirm that the recorded output matches the result you expected.", + } + : run.state === "canceled" + ? { + kind: "inspect_outputs", + label: "Inspect any partial outputs", + reason: "Cancellation does not establish that prior writes were undone.", + } + : { + kind: "refresh", + label: "Refresh run status", + reason: + "Wait for confirmed status and result measurements before starting another run.", + }; + await json(route, 200, { + run_id: run.runId, + state: run.state, + results_available: run.state === "succeeded", + summary: `Run ${run.runId}: ${run.state}`, + details: [], + caveats: ["Synthetic browser fixture; no provider execution."], + available_actions: [nextAction.kind], + next_action: nextAction, + } satisfies RunExplanationResponse); + return; + } + const logMatch = /^\/v1\/runs\/([^/]+)\/logs$/.exec(url.pathname); if (logMatch && request.method() === "GET") { const runId = decodeURIComponent(logMatch[1]!); @@ -761,7 +853,7 @@ test("manages hosted graphs safely across conflicts, ambiguous retries, and serv throw new Error(`Hosted bootstrap did not settle:\n${browserEvents.join("\n")}`); }); await signIn(page, browserEvents); - await page.getByRole("button", { name: "Browse hosted graphs" }).click(); + await page.getByRole("button", { name: "Browse hosted graphs" }).first().click(); await expect(page.getByText("alpha-graph", { exact: true })).toBeVisible(); await expect(page.getByText("beta-graph", { exact: true })).toHaveCount(0); await page.getByRole("button", { name: "Load more" }).click(); @@ -772,6 +864,9 @@ test("manages hosted graphs safely across conflicts, ambiguous retries, and serv .getByRole("button", { name: "Open" }) .click(); + await expect(page.getByRole("button", { name: "Preview changes", exact: true })).toBeVisible(); + await page.screenshot({ path: test.info().outputPath("guided-default.png"), fullPage: true }); + await page.getByText("Advanced validation, deployment and run controls", { exact: true }).click(); await page.getByText("Inspect catalogs and capabilities").click(); await expect(page.getByText(/Dander 0\.9\.0rc19 · API v1/)).toBeVisible(); await expect(page.getByText(/Installed connectors:.*Records API/)).toBeVisible(); @@ -809,15 +904,16 @@ test("manages hosted graphs safely across conflicts, ambiguous retries, and serv await page.getByRole("button", { name: "Reload hosted version" }).click(); await expect(page.locator(".react-flow__node", { hasText: "Server edit" })).toBeVisible(); - await page.getByRole("button", { name: "Start run" }).click(); - const normalizedRun = page.getByLabel("Normalized run status"); + await page.getByRole("button", { name: "Preview changes", exact: true }).click(); + await page.getByRole("button", { name: "Run reviewed graph" }).click(); + const normalizedRun = page.getByLabel("Run outcome"); await expect(normalizedRun).toContainText("Run run-synthetic-1: queued"); await expect(normalizedRun).toContainText("Run run-synthetic-1: running", { timeout: 5_000, }); await page.getByRole("button", { name: "Load bounded logs" }).click(); await expect(page.getByText("Synthetic run is progressing safely.")).toBeVisible(); - await page.getByRole("button", { name: "Cancel run" }).click(); + await page.getByRole("button", { name: "Cancel run", exact: true }).first().click(); await expect( page.getByText("Dander acknowledged cancellation; status polling continues."), ).toBeVisible(); @@ -830,12 +926,43 @@ test("manages hosted graphs safely across conflicts, ambiguous retries, and serv timeout: 7_000, }); + await page.getByText("Graph files and settings", { exact: true }).click(); + const serverNodesBeforeSave = durable.records.get("alpha-graph")?.document.nodes; const source = page.locator(".react-flow__node", { hasText: "Server edit" }); await source.click(); await page.getByLabel("Name", { exact: true }).fill("Client edit"); - await page.getByRole("button", { name: "Save hosted graph" }).click(); + await page.getByRole("button", { name: "Preview changes", exact: true }).click(); + await expect(page.getByText(/Rows and cost: unknown/).first()).toBeVisible(); + expect(durable.records.get("alpha-graph")?.document.nodes).toEqual(serverNodesBeforeSave); + await page.getByRole("button", { name: "Save reviewed changes", exact: true }).click(); + await expect(page.getByRole("button", { name: "Run reviewed graph", exact: true })).toBeEnabled(); await expect(page.getByText("Saved", { exact: true })).toBeVisible(); + await page.getByText("Repair selected output dates", { exact: true }).click(); + await page.getByLabel(/First date/).fill("2026-09-01"); + await page.getByLabel(/End date/).fill("2026-09-03"); + await page.getByRole("button", { name: "Preview date repair", exact: true }).click(); + await expect(page.getByRole("button", { name: "Start reviewed repair" })).toBeEnabled(); + await page.getByLabel(/End date/).fill("2026-09-04"); + await expect(page.getByRole("button", { name: "Start reviewed repair" })).toHaveCount(0); + await page.getByRole("button", { name: "Preview date repair", exact: true }).click(); + await expect(page.getByRole("button", { name: "Start reviewed repair" })).toBeEnabled(); + await page.getByRole("button", { name: "Start reviewed repair" }).scrollIntoViewIfNeeded(); + expect(await page.evaluate(() => document.documentElement.scrollWidth <= window.innerWidth)).toBe( + true, + ); + await page.screenshot({ + path: test.info().outputPath("guided-repair-review.png"), + fullPage: true, + }); + await page.getByRole("button", { name: "Start reviewed repair" }).click(); + await expect(normalizedRun).toContainText("2026-09-01 through 2026-09-04"); + expect(durable.runs.get("run-synthetic-3")?.repairWindow).toEqual({ + start_date: "2026-09-01", + end_date: "2026-09-04", + }); + await expect(normalizedRun).toContainText("Run run-synthetic-3: succeeded", { timeout: 7_000 }); + const serverRecord = durable.records.get("alpha-graph")!; durable.records.set( "alpha-graph", @@ -864,19 +991,23 @@ test("manages hosted graphs safely across conflicts, ambiguous retries, and serv await expect(page.locator(".react-flow__node", { hasText: "Server edit" })).toBeVisible(); durable.loseNextCreate = true; - await page.getByRole("button", { name: "Browse hosted graphs" }).click(); + await page.getByRole("button", { name: "Browse hosted graphs" }).first().click(); await page.getByLabel("Create from current local draft").fill("restart-graph"); await page.getByRole("button", { name: "Create" }).click(); - await expect(page.getByText(/could not reach/i)).toBeVisible(); + await expect( + page + .getByRole("region", { name: "Pipeline journey", exact: true }) + .getByText(/could not reach/i), + ).toBeVisible(); restartService(); - await page.getByRole("button", { name: "Browse hosted graphs" }).click(); + await page.getByRole("button", { name: "Browse hosted graphs" }).first().click(); await page.getByRole("button", { name: "Create" }).click(); await expect(page.getByText("Saved", { exact: true })).toBeVisible(); restartService(); await page.reload(); await signIn(page, browserEvents); - await page.getByRole("button", { name: "Browse hosted graphs" }).click(); + await page.getByRole("button", { name: "Browse hosted graphs" }).first().click(); await page.getByRole("button", { name: "Load more" }).click(); await page .getByRole("listitem") @@ -884,6 +1015,7 @@ test("manages hosted graphs safely across conflicts, ambiguous retries, and serv .getByRole("button", { name: "Open" }) .click(); await expect(page.locator(".react-flow__node", { hasText: "Server edit" })).toBeVisible(); + await page.getByText("Graph files and settings", { exact: true }).click(); await expect(page.getByLabel("Hosted graph identity")).toContainText( "demo-project/restart-graph", ); diff --git a/integration/current-dander-control.test.ts b/integration/current-dander-control.test.ts index 869e745..48c1eae 100644 --- a/integration/current-dander-control.test.ts +++ b/integration/current-dander-control.test.ts @@ -13,6 +13,7 @@ import { type GraphAddress, type GraphDocument, } from "@/lib/persistence/graph-persistence"; +import { canvasToGraph, graphToCanvas } from "@/lib/pipeline-graph"; import { EXAMPLE_GRAPH } from "@/lib/pipeline-graph/__fixtures__/example-graph"; const configuredUrl = process.env.DANDER_CONTROL_URL; @@ -79,18 +80,42 @@ describe("current protected Dander Control API", () => { graph: EXAMPLE_GRAPH, }); + const canvas = graphToCanvas(opened.graph); + const unchangedDraft = canvasToGraph( + canvas.nodes, + canvas.edges, + opened.graph.name, + opened.graph.trigger, + ); + const unchangedReview = await control.previewChanges(address, opened.revision, unchangedDraft); + expect(unchangedReview.candidate_content_sha256).toBe(opened.contentSha256); + const validation = await control.validate(address, opened.revision); expect(validation).toMatchObject({ graph_name: EXAMPLE_GRAPH.name, content_sha256: opened.contentSha256, }); - current = await persistence.save( - { ...EXAMPLE_GRAPH, name: "current_dander_acceptance_updated" }, - opened.revision, - address, - ); + const candidate = { ...EXAMPLE_GRAPH, name: "current_dander_acceptance_updated" }; + const changes = await control.previewChanges(address, opened.revision, candidate); + expect(changes.baseline_content_sha256).toBe(opened.contentSha256); + expect(changes.candidate_content_sha256).not.toBe(opened.contentSha256); + expect(changes.graph_properties_changed).toContain("name"); + expect(changes.estimates?.rows_written).toBeNull(); + expect(changes.estimates?.cost_usd).toBeNull(); + // Preview must not save even though it accepts the unsaved candidate. + await expect(persistence.load(address)).resolves.toMatchObject({ + revision: opened.revision, + contentSha256: opened.contentSha256, + graph: opened.graph, + }); + + current = await persistence.save(candidate, opened.revision, address); expect(current.revision).not.toBe(opened.revision); + expect(current.contentSha256).toBe(changes.candidate_content_sha256); + await expect(control.previewChanges(address, opened.revision, candidate)).rejects.toMatchObject( + { conflict: true }, + ); const previewFailure = await control .preview(address, current.revision) @@ -104,6 +129,15 @@ describe("current protected Dander Control API", () => { expect(runFailure).toBeInstanceOf(HostedControlOperationError); expect(runFailure).toMatchObject({ unsupported: true }); + // This server intentionally has no execution plan or provider backend. Do not turn + // a read-only contract proof into an accidental live workload or pretend repair ran. + await expect( + control.previewRepair(address, current.revision, { + start_date: "2026-09-01", + end_date: "2026-09-03", + }), + ).rejects.toMatchObject({ unsupported: true }); + await persistence.delete(address, current.revision); current = null; await expect(persistence.load(address)).rejects.toThrow(/does not exist/i); diff --git a/integration/native-repair-observation.test.ts b/integration/native-repair-observation.test.ts new file mode 100644 index 0000000..856545d --- /dev/null +++ b/integration/native-repair-observation.test.ts @@ -0,0 +1,57 @@ +import { expect, it } from "vitest"; +import { HostedControlApiClient } from "@/features/hosted-control/control-api"; +import type { HostedControlFetch } from "@/features/hosted-control/authorized-fetch"; +import { + DANDER_CONTRACT_BUNDLE_ID, + DANDER_CONTRACT_BUNDLE_SHA256, +} from "@/generated/dander-contracts/metadata"; +import { HostedGraphPersistence } from "@/lib/persistence/graph-persistence"; + +const url = process.env.DANDER_CONTROL_URL; +const project = process.env.DANDER_REPAIR_PROJECT; +const graph = process.env.DANDER_REPAIR_GRAPH; +const runId = process.env.DANDER_REPAIR_RUN_ID; +if (!url || !project || !graph || !runId) { + throw new Error( + "Set DANDER_CONTROL_URL, DANDER_REPAIR_PROJECT, DANDER_REPAIR_GRAPH and DANDER_REPAIR_RUN_ID to observe an already-completed synthetic repair.", + ); +} +const base = new URL(url); +if (!/^https?:$/.test(base.protocol) || base.username || base.password) { + throw new Error("DANDER_CONTROL_URL must be credential-free HTTP(S)."); +} +const request: HostedControlFetch = async (target, init) => { + const endpoint = new URL(target.toString(), base); + if (endpoint.origin !== base.origin) throw new Error("Refused a cross-origin request."); + return fetch(endpoint, { ...init, redirect: "error" }); +}; +const control = new HostedControlApiClient(request); +const persistence = new HostedGraphPersistence(request); + +it("reads the RC34 synthetic repair through the production Druff clients without starting another workload", async () => { + const capabilities = await control.capabilities(); + expect(capabilities.contract).toEqual({ + id: DANDER_CONTRACT_BUNDLE_ID, + sha256: DANDER_CONTRACT_BUNDLE_SHA256, + }); + const address = { project, graph }; + const saved = await persistence.load(address); + const run = await control.getRun(runId); + expect(run.state).toBe("succeeded"); + expect(run.repair_window).toEqual({ start_date: "2026-09-10", end_date: "2026-09-12" }); + expect(run.result_schema).toBeTruthy(); + expect(run.extracted).toBe(0); + expect(run.telemetry).toMatchObject({ rows_written: 2, rows_affected: 4 }); + const preview = await control.previewRepair(address, saved.revision, run.repair_window!); + expect(preview.graph_content_sha256).toBe(saved.contentSha256); + expect(preview.window).toEqual(run.repair_window); + expect(preview.outputs.length).toBeGreaterThan(0); + const explanation = await control.explainRun(runId); + expect(explanation).toMatchObject({ run_id: runId, state: "succeeded", results_available: true }); + expect(explanation.summary).toBeTruthy(); + // Repair preview is read-only: no second launch, graph save, source extraction or watermark write. + await expect(persistence.load(address)).resolves.toMatchObject({ + revision: saved.revision, + contentSha256: saved.contentSha256, + }); +}); diff --git a/package.json b/package.json index 4fdbfa6..7678dc6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "druff", - "version": "0.1.0", + "version": "0.2.0-rc.1", "private": true, "scripts": { "dev": "node scripts/copy-monaco-assets.mjs && next dev", @@ -16,7 +16,8 @@ "test:current-dander": "vitest run --config vitest.current-dander.config.ts", "test:artifact": "node --test scripts/*.test.mjs", "test:watch": "vitest", - "test:e2e": "pnpm build && playwright test" + "test:e2e": "pnpm build && playwright test", + "test:repair-observation": "vitest run --config vitest.native-repair.config.ts" }, "dependencies": { "@monaco-editor/react": "^4.7.0", diff --git a/scripts/generate-dander-contracts.mjs b/scripts/generate-dander-contracts.mjs index c9e87fd..5286db8 100644 --- a/scripts/generate-dander-contracts.mjs +++ b/scripts/generate-dander-contracts.mjs @@ -12,11 +12,13 @@ import { compile } from "json-schema-to-typescript"; import { format, resolveConfig } from "prettier"; const DANDER_PACKAGE = "dander-platform"; -const DANDER_VERSION = "0.9.0rc19"; -const WHEEL_FILENAME = "dander_platform-0.9.0rc19-py3-none-any.whl"; -const WHEEL_SHA256 = "8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552"; +const DANDER_VERSION = "0.9.0rc34"; +const WHEEL_FILENAME = "dander_platform-0.9.0rc34-py3-none-any.whl"; +const WHEEL_URL = + "https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/" + WHEEL_FILENAME; +const WHEEL_SHA256 = "d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad"; const BUNDLE_ID = "io.dander.control.contracts/v1"; -const BUNDLE_SHA256 = "695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3"; +const BUNDLE_SHA256 = "a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279"; const BUNDLE_PATH = join("dander", "control", "contracts", "v1"); const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), ".."); @@ -29,8 +31,11 @@ const roots = [ ["connector-catalog", "ConnectorCatalogResponse", "validateConnectorCatalog"], ["control-bootstrap", "ControlBootstrapDescriptor", "validateControlBootstrap"], ["deployment-preview", "DeploymentPreviewResponse", "validateDeploymentPreview"], + ["graph-change-preview", "GraphChangePreviewResponse", "validateGraphChangePreview"], ["graph-create", "GraphCreateRequest", "validateGraphCreate"], ["graph-page", "GraphPageResponse", "validateGraphPage"], + ["graph-repair-preview", "GraphRepairPreviewResponse", "validateGraphRepairPreview"], + ["graph-repair-window", "GraphRepairWindow", "validateGraphRepairWindow"], ["graph-resource", "GraphResourceResponse", "validateGraphResource"], ["graph-validation", "GraphValidationResponse", "validateGraphValidation"], ["log-page", "LogPageResponse", "validateLogPage"], @@ -39,6 +44,7 @@ const roots = [ ["pipeline-graph", "PipelineGraphDocument", "validatePipelineGraph"], ["plugin-catalog", "PluginCatalogResponse", "validatePluginCatalog"], ["project-list", "ProjectListResponse", "validateProjectList"], + ["run-explanation", "RunExplanationResponse", "validateRunExplanation"], ["run-page", "RunPageResponse", "validateRunPage"], ["run-request", "RunRequest", "validateRunRequest"], ["run-status", "RunStatusResponse", "validateRunStatus"], @@ -71,23 +77,7 @@ function fail(message) { } async function fetchPublishedWheel(destination) { - const metadataUrl = `https://pypi.org/pypi/${DANDER_PACKAGE}/${DANDER_VERSION}/json`; - const metadataResponse = await fetch(metadataUrl); - if (!metadataResponse.ok) { - fail( - `PyPI metadata request failed (${metadataResponse.status} ${metadataResponse.statusText})`, - ); - } - const metadata = await metadataResponse.json(); - const wheel = metadata.urls?.find( - (file) => file.filename === WHEEL_FILENAME && file.packagetype === "bdist_wheel", - ); - if (!wheel) fail(`PyPI release does not contain ${WHEEL_FILENAME}`); - if (wheel.digests?.sha256 !== WHEEL_SHA256) { - fail(`PyPI metadata reports an unexpected wheel digest for ${WHEEL_FILENAME}`); - } - - const wheelResponse = await fetch(wheel.url); + const wheelResponse = await fetch(WHEEL_URL); if (!wheelResponse.ok) { fail(`wheel download failed (${wheelResponse.status} ${wheelResponse.statusText})`); } @@ -149,7 +139,7 @@ async function verifyBundle(bundleDirectory) { actualFiles.size !== expectedFiles.size || [...actualFiles].some((path) => !expectedFiles.has(path)) ) { - fail("published bundle files differ from the signed manifest inventory"); + fail("published bundle files differ from the verified manifest inventory"); } return manifest; } @@ -171,6 +161,7 @@ async function generateTypes(bundleDirectory, outputDirectory) { const bannerComment = [ "/**", ` * Generated from ${DANDER_PACKAGE}==${DANDER_VERSION} (${WHEEL_FILENAME}).`, + ` * Published wheel: ${WHEEL_URL}`, ` * Wheel SHA256: ${WHEEL_SHA256}`, ` * Contract bundle: ${BUNDLE_ID} (${BUNDLE_SHA256})`, " * Do not edit by hand; run `pnpm contracts:generate`.", @@ -266,6 +257,7 @@ async function generateMetadata(outputDirectory) { export const DANDER_CONTRACT_PACKAGE = ${JSON.stringify(DANDER_PACKAGE)} as const; export const DANDER_CONTRACT_PACKAGE_VERSION = ${JSON.stringify(DANDER_VERSION)} as const; export const DANDER_CONTRACT_WHEEL = ${JSON.stringify(WHEEL_FILENAME)} as const; + export const DANDER_CONTRACT_WHEEL_URL = ${JSON.stringify(WHEEL_URL)} as const; export const DANDER_CONTRACT_WHEEL_SHA256 = ${JSON.stringify(WHEEL_SHA256)} as const; export const DANDER_CONTRACT_BUNDLE_ID = ${JSON.stringify(BUNDLE_ID)} as const; export const DANDER_CONTRACT_BUNDLE_SHA256 = ${JSON.stringify(BUNDLE_SHA256)} as const; diff --git a/src/app/globals.css b/src/app/globals.css index 6a25b1b..0375448 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -7,7 +7,7 @@ @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); - --font-sans: var(--font-sans); + --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --font-heading: var(--font-sans); --color-sidebar-ring: var(--sidebar-ring); diff --git a/src/features/graph-io/GraphEditor.tsx b/src/features/graph-io/GraphEditor.tsx index db971e1..96d0aaf 100644 --- a/src/features/graph-io/GraphEditor.tsx +++ b/src/features/graph-io/GraphEditor.tsx @@ -9,8 +9,7 @@ import { useGraphOperations } from "@/features/graph-operations/useGraphOperatio import { PipelineCanvas } from "@/features/pipeline-canvas/PipelineCanvas"; import { useHostedControl } from "@/features/hosted-control/HostedControlProvider"; import { HostedControlApiClient } from "@/features/hosted-control/control-api"; -import { HostedRunControlsBar } from "@/features/hosted-control/HostedRunControlsBar"; -import { HostedValidationPreviewBar } from "@/features/hosted-control/HostedValidationPreviewBar"; +import { PipelineJourney } from "@/features/hosted-control/PipelineJourney"; import { useHostedRunControls } from "@/features/hosted-control/useHostedRunControls"; import { useHostedValidationPreview } from "@/features/hosted-control/useHostedValidationPreview"; import { HostedConnectorDiscovery } from "@/features/connector-library/discovery"; @@ -67,28 +66,37 @@ export function GraphEditor() { return (
- - {control.mode === "hosted" && control.capabilities ? ( + {control.mode === "hosted" && control.capabilities && hostedControlApi ? ( <> - - +
+ Graph files and settings + +
) : ( - + <> + + + )}
{viewMode === "canvas" ? ( diff --git a/src/features/graph-io/GraphToolbar.tsx b/src/features/graph-io/GraphToolbar.tsx index 17af864..ec3ee29 100644 --- a/src/features/graph-io/GraphToolbar.tsx +++ b/src/features/graph-io/GraphToolbar.tsx @@ -101,7 +101,7 @@ export function GraphToolbar({ } return ( -
+
{persistence.managed ? ( ) : ( diff --git a/src/features/hosted-control/DateRepairPanel.tsx b/src/features/hosted-control/DateRepairPanel.tsx new file mode 100644 index 0000000..bba505d --- /dev/null +++ b/src/features/hosted-control/DateRepairPanel.tsx @@ -0,0 +1,198 @@ +"use client"; + +import { useState } from "react"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import type { GraphPersistenceControls } from "@/features/graph-io/useGraphPersistence"; +import { + HostedControlOperationError, + type HostedControlApiClient, +} from "@/features/hosted-control/control-api"; +import type { HostedRunControls } from "@/features/hosted-control/useHostedRunControls"; +import type { GraphRepairPreviewResponse } from "@/lib/dander-contracts"; + +/** A repair always previews the same saved graph and half-open window it submits. */ +export function DateRepairPanel({ + client, + persistence, + controls, + canPreview, +}: { + client: Pick; + persistence: GraphPersistenceControls; + controls: HostedRunControls; + canPreview: boolean; +}): React.JSX.Element { + const [start, setStart] = useState(""); + const [end, setEnd] = useState(""); + const [environment, setEnvironment] = useState(""); + const [pending, setPending] = useState(false); + const [result, setResult] = useState<{ + key: string; + preview?: GraphRepairPreviewResponse; + error?: string; + conflict?: boolean; + } | null>(null); + const key = JSON.stringify([ + persistence.address, + persistence.revision, + persistence.contentSha256, + persistence.status, + start, + end, + ]); + const current = result?.key === key ? result : null; + const preview = current?.preview; + const validDates = + /^\d{4}-\d{2}-\d{2}$/.test(start) && /^\d{4}-\d{2}-\d{2}$/.test(end) && start < end; + const selectedEnvironment = + preview?.environments.length === 1 ? preview.environments[0] : environment; + async function previewDates(): Promise { + if ( + !canPreview || + !validDates || + persistence.status !== "clean" || + !persistence.address || + !persistence.revision || + pending + ) + return; + setPending(true); + setResult(null); + setEnvironment(""); + try { + const next = await client.previewRepair(persistence.address, persistence.revision, { + start_date: start, + end_date: end, + }); + if (next.graph_content_sha256 !== persistence.contentSha256) + throw new HostedControlOperationError( + "This repair preview belongs to another graph revision. Reload before retrying.", + { conflict: true }, + ); + setResult({ key, preview: next }); + } catch (cause) { + setResult({ + key, + error: cause instanceof Error ? cause.message : "The repair preview is unavailable.", + conflict: cause instanceof HostedControlOperationError && cause.conflict, + }); + } finally { + setPending(false); + } + } + const canStart = Boolean( + preview && + controls.canStartRepair && + selectedEnvironment && + preview.environments.includes(selectedEnvironment), + ); + return ( +
+ Repair selected output dates +
+

Experimental output repair

+

+ Rebuild dates in the selected graph from raw data already stored in the warehouse. This + does not re-fetch source records or restore a historical snapshot. +

+ {persistence.status !== "clean" ? ( +

Save the graph before previewing a date repair.

+ ) : null} + {!canPreview ?

Date repair is unavailable for this connection or role.

: null} +
+
+ + setStart(event.target.value)} + /> +
+
+ + setEnd(event.target.value)} + /> +
+
+ {start && end && !validDates ? ( +

The end date must be later than the first date.

+ ) : null} + + {current?.error ? ( +

+ {current.error} +

+ ) : null} + {current?.conflict ? ( + + ) : null} + {preview ? ( +
+

{preview.summary}

+
    + {preview.outputs.map((output) => ( +
  • + {output.name}: {output.destination.dataset}.{output.destination.table} by{" "} + {output.partition_field} +
  • + ))} +
+

Rows and cost: unknown. Normal source progress is unchanged.

+
    + {(preview.limitations ?? []).map((limit) => ( +
  • {limit}
  • + ))} +
+ {preview.environments.length > 1 ? ( +
+ + +
+ ) : null} + {preview.environments.length === 0 ? ( +

No compatible execution environment is available.

+ ) : null} + +
+ ) : null} +
+
+ ); +} diff --git a/src/features/hosted-control/GraphChangeReview.tsx b/src/features/hosted-control/GraphChangeReview.tsx new file mode 100644 index 0000000..5e2f290 --- /dev/null +++ b/src/features/hosted-control/GraphChangeReview.tsx @@ -0,0 +1,71 @@ +import type { GraphChangePreviewResponse } from "@/lib/dander-contracts"; + +/** Display Dander's write effects, including unchanged outputs that a full run still writes. */ +export function GraphChangeReview({ + preview, +}: { + preview: GraphChangePreviewResponse; +}): React.JSX.Element { + return ( +
+

+ {preview.node_changes.length} node changes · {preview.connection_changes.length} connection + changes · {preview.affected_outputs.length} affected outputs +

+

+ A full run writes all {preview.run_output_ids.length} configured outputs. Saving alone does + not change warehouse data. +

+ {preview.outputs.length > 0 ? ( +
    + {preview.outputs.map((output) => ( +
  • + {output.name} + {output.affected ? " · Changed" : " · Unchanged"} +

    {output.effect}

    + {output.after?.writer?.destination ? ( +

    + Destination:{" "} + {[ + output.after.writer.destination.project, + output.after.writer.destination.dataset, + output.after.writer.destination.table, + ] + .filter(Boolean) + .join(".")} +

    + ) : null} +
  • + ))} +
+ ) : ( +

No warehouse outputs are configured.

+ )} +

+ Rows and cost: unknown. {preview.estimates?.explanation} +

+
+ Change details and limits +
    + {preview.node_changes.map((node) => ( +
  • + {node.name}: {node.change} + {(node.changed_properties ?? []).length + ? ` (${(node.changed_properties ?? []).join(", ")})` + : ""} +
  • + ))} + {preview.graph_properties_changed.length ? ( +
  • Graph settings: {preview.graph_properties_changed.join(", ")}
  • + ) : null} + {(preview.limitations ?? []).map((text) => ( +
  • {text}
  • + ))} +
+
+
+ ); +} diff --git a/src/features/hosted-control/HostedRunControlsBar.tsx b/src/features/hosted-control/HostedRunControlsBar.tsx index feff974..47e6edf 100644 --- a/src/features/hosted-control/HostedRunControlsBar.tsx +++ b/src/features/hosted-control/HostedRunControlsBar.tsx @@ -9,23 +9,27 @@ export function HostedRunControlsBar({ capabilities, controls, onReload, + advanced = false, }: { capabilities: CapabilitiesResponse; controls: HostedRunControls; onReload(): Promise; + advanced?: boolean; }) { return (
Hosted runs - + {!advanced ? ( + + ) : null} + ) : review.canSave ? ( + + ) : review.reviewedSaved ? ( + + ) : ( + + )} +
+ {!persistence.attached ? ( +

+ Open a saved graph, or configure a local draft on the canvas and create it in your + project. Source connections and execution environments are configured in Dander. +

+ ) : ( + <> +
+ Configure: + {[...inputs, ...outputs].map((node) => ( + + ))} + {!inputs.length || !outputs.length ? ( + + Add a source and a write output from the canvas palette. + + ) : null} +
+ {!review.preview ? ( +

+ Set up sources, transformations and outputs on the canvas, then preview what your + changes would write. +

+ ) : ( + + )} + {review.reviewedSaved ? ( +

+ The saved graph matches this review. Running writes every configured output. +

+ ) : null} + {!has("graph.change-preview") ? ( +

Change previews are unavailable for this connection or role.

+ ) : null} + {review.reviewedSaved && !has("run.start") ? ( +

An operator can run this reviewed graph.

+ ) : null} + {review.preview ? ( + + ) : null} + + )} + {review.error || persistence.error || runs.error ? ( +

+ {review.error ?? persistence.error ?? runs.error} +

+ ) : null} + {review.conflict || persistence.status === "conflict" || runs.conflict ? ( + + ) : null} + selectNode(outputs[0].id) : undefined + } + /> + {persistence.attached ? ( + + ) : null} +
+ + Advanced validation, deployment and run controls + + + +
+ + ); +} diff --git a/src/features/hosted-control/RunOutcome.tsx b/src/features/hosted-control/RunOutcome.tsx new file mode 100644 index 0000000..9a49c4c --- /dev/null +++ b/src/features/hosted-control/RunOutcome.tsx @@ -0,0 +1,132 @@ +"use client"; + +import { useEffect, useState } from "react"; +import { Button } from "@/components/ui/button"; +import type { HostedControlApiClient } from "@/features/hosted-control/control-api"; +import type { HostedRunControls } from "@/features/hosted-control/useHostedRunControls"; +import type { RunExplanationResponse } from "@/lib/dander-contracts"; + +/** Render recorded outcomes without inferring success, row changes, or a diagnosis from missing data. */ +export function RunOutcome({ + client, + controls, + canExplain, + onInspectOutputs, +}: { + client: Pick; + controls: HostedRunControls; + canExplain: boolean; + onInspectOutputs?: () => void; +}): React.JSX.Element | null { + const run = controls.run; + const key = JSON.stringify(run); + const runId = run?.run_id; + const [result, setResult] = useState<{ + key: string; + explanation?: RunExplanationResponse; + error?: string; + } | null>(null); + useEffect(() => { + if (!runId || !canExplain) return; + let active = true; + void client + .explainRun(runId) + .then((explanation) => { + if (active) setResult({ key, explanation }); + }) + .catch((cause: unknown) => { + if (active) + setResult({ + key, + error: cause instanceof Error ? cause.message : "The run explanation is unavailable.", + }); + }); + return () => { + active = false; + }; + }, [client, canExplain, runId, key]); + if (!run) return null; + const current = result?.key === key ? result : null; + const explanation = current?.explanation; + const measured = Boolean(run.result_schema) && explanation?.results_available !== false; + const next = explanation?.next_action; + const action = + next?.kind === "logs" && controls.canLoadLogs + ? controls.loadLogs + : next?.kind === "replay" && controls.canReplay + ? controls.replay + : next?.kind === "cancel" && controls.canCancel + ? controls.cancel + : next?.kind === "refresh" + ? controls.refresh + : next?.kind === "inspect_outputs" + ? onInspectOutputs + : undefined; + return ( +
+

{explanation?.summary ?? `Run ${run.state}`}

+ {controls.origin ? ( +

+ {controls.origin.address.project} / {controls.origin.address.graph} +

+ ) : null} + {run.repair_window ? ( +

+ Output repair: {run.repair_window.start_date} through {run.repair_window.end_date} (end + excluded, UTC). +

+ ) : null} +

+ Extracted: {measured ? (run.extracted ?? "Unknown") : "Unknown"} · Affected:{" "} + {measured ? (run.affected ?? "Unknown") : "Unknown"} · Models:{" "} + {measured ? (run.models ?? "Unknown") : "Unknown"} +

+ {explanation ? ( + <> +
    + {(explanation.details ?? []).map((detail) => ( +
  • {detail}
  • + ))} +
+ {next ? ( +
+

{next.reason}

+ {action ? ( + + ) : ( +

{next.label}

+ )} +
+ ) : null} +
+ What these results mean +
    + {(explanation.caveats ?? []).map((caveat) => ( +
  • {caveat}
  • + ))} +
+
+ + ) : ( +

+ {current?.error ?? + (canExplain + ? "Loading the recorded outcome…" + : "Run explanations are unavailable for this connection.")} +

+ )} + {run.failure_summary ?

{run.failure_summary}

: null} + {controls.pollingPaused ? ( + + ) : null} +
+ ); +} diff --git a/src/features/hosted-control/control-api.test.ts b/src/features/hosted-control/control-api.test.ts index 1f6c114..58f0a40 100644 --- a/src/features/hosted-control/control-api.test.ts +++ b/src/features/hosted-control/control-api.test.ts @@ -5,6 +5,10 @@ import mutationFixture from "@/generated/dander-contracts/bundle/fixtures/mutati import previewFixture from "@/generated/dander-contracts/bundle/fixtures/deployment-preview.json"; import runFixture from "@/generated/dander-contracts/bundle/fixtures/run-status.json"; import validationFixture from "@/generated/dander-contracts/bundle/fixtures/graph-validation.json"; +import changeFixture from "@/generated/dander-contracts/bundle/fixtures/graph-change-preview.json"; +import repairFixture from "@/generated/dander-contracts/bundle/fixtures/graph-repair-preview.json"; +import explanationFixture from "@/generated/dander-contracts/bundle/fixtures/run-explanation.json"; +import { EXAMPLE_GRAPH } from "@/lib/pipeline-graph/__fixtures__/example-graph"; import { HostedControlApiClient, HostedControlOperationError, @@ -42,6 +46,50 @@ function errorResponse(status: number, code: string): Response { } describe("HostedControlApiClient", () => { + it("previews an unsaved candidate and correlates explanations without starting work", async () => { + const request = vi + .fn() + .mockResolvedValueOnce(Response.json(changeFixture)) + .mockResolvedValueOnce(Response.json(explanationFixture)); + const client = new HostedControlApiClient(request); + await expect(client.previewChanges(ADDRESS, REVISION, EXAMPLE_GRAPH)).resolves.toEqual( + changeFixture, + ); + expect(request.mock.calls[0][0]).toMatch(/\/change-preview$/); + expect(request.mock.calls[0][1].headers["If-Match"]).toBe(REVISION); + expect(JSON.parse(request.mock.calls[0][1].body)).toEqual(EXAMPLE_GRAPH); + await expect(client.explainRun(explanationFixture.run_id)).resolves.toEqual(explanationFixture); + request.mockResolvedValueOnce(Response.json(explanationFixture)); + await expect(client.explainRun("another-run")).rejects.toThrow(/cannot safely display/); + }); + + it("keeps ambiguous repair retries bound to the same dates, revision and environment", async () => { + const window = { start_date: "2026-09-01", end_date: "2026-09-03" }; + const request = vi + .fn() + .mockResolvedValueOnce(Response.json(repairFixture)) + .mockRejectedValueOnce(new TypeError("connection lost")) + .mockResolvedValueOnce( + Response.json({ ...runFixture, repair_window: window }, { status: 202 }), + ); + const client = new HostedControlApiClient(request); + await expect(client.previewRepair(ADDRESS, REVISION, window)).resolves.toEqual(repairFixture); + await expect(client.startRepair(ADDRESS, REVISION, window, "gcp")).rejects.toThrow(); + await client.startRepair(ADDRESS, REVISION, window, "gcp"); + expect(request.mock.calls[1]).toEqual(request.mock.calls[2]); + expect(request.mock.calls[2][0]).toMatch(/\/repairs\?environment=gcp$/); + expect(request.mock.calls[2][1].headers["If-Match"]).toBe(REVISION); + expect(JSON.parse(request.mock.calls[2][1].body)).toEqual(window); + request.mockResolvedValueOnce( + Response.json({ ...runFixture, repair_window: window }, { status: 202 }), + ); + await expect( + client.startRepair(ADDRESS, REVISION, { ...window, end_date: "2026-09-04" }, "gcp"), + ).rejects.toMatchObject({ ambiguous: true }); + expect(request.mock.calls[3][1].headers["Idempotency-Key"]).not.toBe( + request.mock.calls[2][1].headers["Idempotency-Key"], + ); + }); it("requires compatible authenticated capabilities before hosted use", async () => { const request = vi.fn(async () => Response.json(capabilities())); const client = new HostedControlApiClient(request); diff --git a/src/features/hosted-control/control-api.ts b/src/features/hosted-control/control-api.ts index 7870c0a..ca6387f 100644 --- a/src/features/hosted-control/control-api.ts +++ b/src/features/hosted-control/control-api.ts @@ -3,6 +3,10 @@ import { ApiErrorEnvelopeSchema, DeploymentPreviewResponseSchema, GraphValidationResponseSchema, + GraphChangePreviewResponseSchema, + GraphRepairPreviewResponseSchema, + GraphRepairWindowSchema, + RunExplanationResponseSchema, IncompatibleDanderContractError, LogPageResponseSchema, MutationResultSchema, @@ -11,10 +15,15 @@ import { type CapabilitiesResponse, type DeploymentPreviewResponse, type GraphValidationResponse, + type GraphChangePreviewResponse, + type GraphRepairPreviewResponse, + type GraphRepairWindow, + type RunExplanationResponse, type LogPageResponse, type MutationResult, type RunStatusResponse, } from "@/lib/dander-contracts"; +import { PipelineGraphSchema, type PipelineGraph } from "@/lib/pipeline-graph"; import type { GraphAddress } from "@/lib/persistence/graph-persistence"; const MAX_CAPABILITIES_BYTES = 128 * 1024; @@ -151,6 +160,116 @@ export class HostedControlApiClient { return run; } + /** Compare the unsaved document without saving it or submitting any warehouse work. */ + async previewChanges( + address: GraphAddress, + revision: string, + document: PipelineGraph, + ): Promise { + const body = PipelineGraphSchema.parse(document); + const response = await this.request(`${graphPath(address)}/change-preview`, { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + "If-Match": revision, + }, + body: JSON.stringify(body), + }); + if (response.status !== 200) + throw await operationError(response, "Dander could not preview these changes."); + const parsed = GraphChangePreviewResponseSchema.safeParse( + await readBoundedJson(response, MAX_PREVIEW_BYTES), + ); + if (!parsed.success) throw incompatibleResponse("graph change preview"); + return parsed.data; + } + + /** Explain only the server's recorded evidence for this exact run. */ + async explainRun(runId: string): Promise { + const response = await this.request(`/v1/runs/${encodeURIComponent(runId)}/explanation`, { + method: "GET", + headers: { Accept: "application/json" }, + }); + if (response.status !== 200) + throw await operationError(response, "Dander could not explain this run."); + const parsed = RunExplanationResponseSchema.safeParse( + await readBoundedJson(response, MAX_RUN_STATUS_BYTES), + ); + if (!parsed.success || parsed.data.run_id !== runId) + throw incompatibleResponse("run explanation"); + return parsed.data; + } + + /** Eligibility and write scope come from Dander; preview never launches a repair. */ + async previewRepair( + address: GraphAddress, + revision: string, + window: GraphRepairWindow, + ): Promise { + const body = GraphRepairWindowSchema.parse(window); + const response = await this.request(`${graphPath(address)}/repair-preview`, { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + "If-Match": revision, + }, + body: JSON.stringify(body), + }); + if (response.status !== 200) + throw await operationError(response, "Dander could not preview this repair."); + const parsed = GraphRepairPreviewResponseSchema.safeParse( + await readBoundedJson(response, MAX_PREVIEW_BYTES), + ); + if (!parsed.success || !sameWindow(parsed.data.window, body)) + throw incompatibleResponse("date repair preview"); + return parsed.data; + } + + /** Lost responses retain the key for this exact graph revision, dates and environment. */ + async startRepair( + address: GraphAddress, + revision: string, + window: GraphRepairWindow, + environment: string, + ): Promise { + const body = GraphRepairWindowSchema.parse(window); + const scope = `repair:${addressKey(address)}`; + const mutation = this.mutationFor( + scope, + JSON.stringify([ + "repair", + address.project, + address.graph, + revision, + body.start_date, + body.end_date, + environment, + ]), + ); + const query = new URLSearchParams({ environment }); + const response = await this.request(`${graphPath(address)}/repairs?${query.toString()}`, { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + "If-Match": revision, + "Idempotency-Key": mutation.idempotencyKey, + }, + body: JSON.stringify(body), + }); + if (response.status !== 202) { + this.clearDefinitiveFailure(scope, response.status); + throw await operationError(response, "Dander could not start this repair."); + } + const run = await readRunStatus(response, "repair start result", true); + if (!run.repair_window || !sameWindow(run.repair_window, body)) + throw ambiguousMutationResponse("repair result for a different date window"); + this.pendingMutations.delete(scope); + return run; + } + async getRun(runId: string): Promise { const response = await this.request(`/v1/runs/${encodeURIComponent(runId)}`, { method: "GET", @@ -250,6 +369,10 @@ export class HostedControlApiClient { } } +function sameWindow(left: GraphRepairWindow, right: GraphRepairWindow): boolean { + return left.start_date === right.start_date && left.end_date === right.end_date; +} + function graphPath(address: GraphAddress): string { return `/v1/projects/${encodeURIComponent(address.project)}/graphs/${encodeURIComponent(address.graph)}`; } diff --git a/src/features/hosted-control/journey.test.tsx b/src/features/hosted-control/journey.test.tsx new file mode 100644 index 0000000..92fdb08 --- /dev/null +++ b/src/features/hosted-control/journey.test.tsx @@ -0,0 +1,310 @@ +import { act, fireEvent, render, renderHook, screen, waitFor } from "@testing-library/react"; +import { beforeEach, describe, expect, it, vi } from "vitest"; +import changeFixture from "@/generated/dander-contracts/bundle/fixtures/graph-change-preview.json"; +import repairFixture from "@/generated/dander-contracts/bundle/fixtures/graph-repair-preview.json"; +import capabilitiesFixture from "@/generated/dander-contracts/bundle/fixtures/capabilities.json"; +import explanationFixture from "@/generated/dander-contracts/bundle/fixtures/run-explanation.json"; +import { + CapabilitiesResponseSchema, + GraphChangePreviewResponseSchema, + GraphRepairPreviewResponseSchema, + RunExplanationResponseSchema, +} from "@/lib/dander-contracts"; +import { useGraphChangePreview } from "@/features/hosted-control/useGraphChangePreview"; +import { DateRepairPanel } from "@/features/hosted-control/DateRepairPanel"; +import { GraphChangeReview } from "@/features/hosted-control/GraphChangeReview"; +import { RunOutcome } from "@/features/hosted-control/RunOutcome"; +import type { HostedRunControls } from "@/features/hosted-control/useHostedRunControls"; +import type { GraphPersistenceControls } from "@/features/graph-io/useGraphPersistence"; +import { useGraphStore } from "@/lib/graph-store"; + +const preview = GraphChangePreviewResponseSchema.parse(changeFixture); +const repair = GraphRepairPreviewResponseSchema.parse(repairFixture); +const capabilities = CapabilitiesResponseSchema.parse({ + ...capabilitiesFixture, + operations: [ + "graph.read", + "graph.edit", + "graph.change-preview", + "graph.repair-preview", + "run.read", + "run.start", + "run.repair", + "run.explain", + ], +}); +function persistence(overrides: Partial = {}): GraphPersistenceControls { + return { + status: "dirty", + error: null, + revision: '"v1"', + address: { project: "demo", graph: "pipeline" }, + contentSha256: preview.baseline_content_sha256, + attached: true, + managed: true, + projects: [], + graphs: [], + nextCursor: null, + browsing: false, + browseError: null, + loadProjects: vi.fn(async () => []), + loadGraphs: vi.fn(async () => undefined), + create: vi.fn(async () => undefined), + open: vi.fn(async () => undefined), + reload: vi.fn(async () => undefined), + save: vi.fn(async () => undefined), + delete: vi.fn(async () => undefined), + detach: vi.fn(), + ...overrides, + }; +} +function runs(overrides: Partial = {}): HostedRunControls { + return { + pending: null, + logsPending: false, + pollingPaused: false, + error: null, + conflict: false, + acknowledgement: null, + run: null, + origin: null, + logs: null, + polling: false, + canStart: true, + canStartRepair: true, + canCancel: false, + canReplay: false, + canLoadLogs: false, + start: vi.fn(async () => undefined), + cancel: vi.fn(async () => undefined), + replay: vi.fn(async () => undefined), + loadLogs: vi.fn(async () => undefined), + refresh: vi.fn(async () => undefined), + ...overrides, + }; +} +beforeEach(() => { + useGraphStore.getState().setGraph([], [], "draft"); +}); + +describe("reviewed graph identity", () => { + it("requires the reviewed candidate's saved hash and invalidates later edits", async () => { + const saved = persistence(); + const client = { previewChanges: vi.fn(async () => preview) }; + const { result, rerender } = renderHook( + ({ state }) => useGraphChangePreview({ client, persistence: state, capabilities }), + { initialProps: { state: saved } }, + ); + await act(async () => result.current.previewChanges()); + expect(result.current.canSave).toBe(true); + expect(result.current.reviewedSaved).toBe(false); + await act(async () => result.current.saveReviewed()); + expect(saved.save).toHaveBeenCalledOnce(); + rerender({ + state: { + ...saved, + revision: '"v2"', + contentSha256: preview.candidate_content_sha256, + status: "clean", + }, + }); + expect(result.current.reviewedSaved).toBe(true); + act(() => useGraphStore.getState().setGraph([], [], "new edit")); + expect(result.current.isReviewedNow()).toBe(false); + rerender({ + state: { + ...saved, + revision: '"v2"', + contentSha256: preview.candidate_content_sha256, + status: "dirty", + }, + }); + expect(result.current.preview).toBeNull(); + expect(result.current.reviewedSaved).toBe(false); + }); + + it("discards a preview arriving after the draft changes, and a wrong baseline", async () => { + let resolve!: (value: typeof preview) => void; + const client = { + previewChanges: vi.fn( + () => + new Promise((done) => { + resolve = done; + }), + ), + }; + const { result } = renderHook(() => + useGraphChangePreview({ client, persistence: persistence(), capabilities }), + ); + let request!: Promise; + act(() => { + request = result.current.previewChanges(); + }); + act(() => useGraphStore.getState().setGraph([], [], "edited while waiting")); + await act(async () => { + resolve(preview); + await request; + }); + expect(result.current.preview).toBeNull(); + client.previewChanges.mockResolvedValueOnce({ + ...preview, + baseline_content_sha256: "f".repeat(64), + }); + await act(async () => result.current.previewChanges()); + expect(result.current.error).toMatch(/different saved graph/); + }); +}); + +describe("date repair", () => { + it("submits exactly the reviewed window and invalidates it after a date edit", async () => { + const client = { previewRepair: vi.fn(async () => repair) }; + const controls = runs(); + render( + , + ); + fireEvent.click(screen.getByText("Repair selected output dates")); + fireEvent.change(screen.getByLabelText(/First date/), { target: { value: "2026-09-01" } }); + fireEvent.change(screen.getByLabelText(/End date/), { target: { value: "2026-09-03" } }); + fireEvent.click(screen.getByRole("button", { name: "Preview date repair" })); + const start = await screen.findByRole("button", { name: "Start reviewed repair" }); + fireEvent.click(start); + expect(controls.start).toHaveBeenCalledWith({ window: repair.window, environment: "gcp" }); + fireEvent.change(screen.getByLabelText(/End date/), { target: { value: "2026-09-04" } }); + expect(screen.queryByRole("button", { name: "Start reviewed repair" })).not.toBeInTheDocument(); + expect(controls.start).toHaveBeenCalledOnce(); + }); + + it("requires an advertised environment and never offers repair for an unsaved graph", async () => { + const client = { previewRepair: vi.fn(async () => ({ ...repair, environments: [] })) }; + const props = { + client, + persistence: persistence({ status: "clean", contentSha256: repair.graph_content_sha256 }), + controls: runs(), + canPreview: true, + }; + const { rerender } = render(); + fireEvent.click(screen.getByText("Repair selected output dates")); + fireEvent.change(screen.getByLabelText(/First date/), { target: { value: "2026-09-01" } }); + fireEvent.change(screen.getByLabelText(/End date/), { target: { value: "2026-09-03" } }); + fireEvent.click(screen.getByRole("button", { name: "Preview date repair" })); + expect(await screen.findByRole("button", { name: "Start reviewed repair" })).toBeDisabled(); + rerender( + , + ); + expect(screen.queryByRole("button", { name: "Start reviewed repair" })).not.toBeInTheDocument(); + expect(screen.getByRole("button", { name: "Preview date repair" })).toBeDisabled(); + }); +}); + +it("shows unknown measurements and the real explanation instead of invented zeros", async () => { + const explanation = RunExplanationResponseSchema.parse(explanationFixture); + const client = { explainRun: vi.fn(async () => explanation) }; + render( + , + ); + expect(screen.getByText(/Extracted: Unknown · Affected: Unknown/)).toBeInTheDocument(); + await waitFor(() => expect(screen.getByText(explanation.summary)).toBeInTheDocument()); + expect(client.explainRun).toHaveBeenCalledWith(explanation.run_id); +}); + +it("keeps server-default counters unknown when no result document was recorded", async () => { + const explanation = { + ...RunExplanationResponseSchema.parse(explanationFixture), + results_available: false, + }; + render( + explanation) }} + controls={runs({ + run: { + run_id: explanation.run_id, + state: "succeeded", + extracted: 0, + affected: 0, + models: 0, + result_schema: null, + }, + })} + canExplain + />, + ); + await waitFor(() => expect(screen.getByText(explanation.summary)).toBeInTheDocument()); + expect( + screen.getByText(/Extracted: Unknown · Affected: Unknown · Models: Unknown/), + ).toBeInTheDocument(); +}); + +it("discards an explanation that arrives after the recorded run status changes", async () => { + const base = RunExplanationResponseSchema.parse(explanationFixture); + let finishOld!: (value: typeof base) => void; + let finishNew!: (value: typeof base) => void; + const client = { + explainRun: vi + .fn() + .mockImplementationOnce( + () => + new Promise((resolve) => { + finishOld = resolve; + }), + ) + .mockImplementationOnce( + () => + new Promise((resolve) => { + finishNew = resolve; + }), + ), + }; + const { rerender } = render( + , + ); + rerender( + , + ); + await act(async () => + finishOld({ ...base, state: "running", summary: "Old running explanation" }), + ); + expect(screen.queryByText("Old running explanation")).not.toBeInTheDocument(); + expect(screen.getByText("Run succeeded")).toBeInTheDocument(); + await act(async () => + finishNew({ ...base, state: "succeeded", summary: "Current completed explanation" }), + ); + expect(screen.getByText("Current completed explanation")).toBeInTheDocument(); +}); + +it("shows every producer-reported output effect, including unchanged outputs a full run writes", () => { + render(); + expect( + screen.getByText( + `A full run writes all ${preview.run_output_ids.length} configured outputs. Saving alone does not change warehouse data.`, + ), + ).toBeInTheDocument(); + for (const output of preview.outputs) { + expect(screen.getByText(output.name)).toBeInTheDocument(); + expect(screen.getByText(output.effect)).toBeInTheDocument(); + } + expect(screen.getByText(/Rows and cost: unknown/)).toBeInTheDocument(); +}); diff --git a/src/features/hosted-control/useGraphChangePreview.ts b/src/features/hosted-control/useGraphChangePreview.ts new file mode 100644 index 0000000..dd5c2b4 --- /dev/null +++ b/src/features/hosted-control/useGraphChangePreview.ts @@ -0,0 +1,136 @@ +"use client"; + +import { useState } from "react"; +import type { GraphPersistenceControls } from "@/features/graph-io/useGraphPersistence"; +import { + HostedControlOperationError, + type HostedControlApiClient, +} from "@/features/hosted-control/control-api"; +import type { CapabilitiesResponse, GraphChangePreviewResponse } from "@/lib/dander-contracts"; +import { useGraphStore } from "@/lib/graph-store"; +import { canvasToGraph } from "@/lib/pipeline-graph"; + +type Review = { + address: string; + revision: string; + candidate: string; + preview: GraphChangePreviewResponse; +}; + +/** Preserve a review through its exact save; any subsequent edit requires a fresh preview. */ +export function useGraphChangePreview({ + client, + persistence, + capabilities, +}: { + client: Pick; + persistence: GraphPersistenceControls; + capabilities: CapabilitiesResponse; +}): { + preview: GraphChangePreviewResponse | null; + pending: boolean; + error: string | null; + conflict: boolean; + canPreview: boolean; + canSave: boolean; + reviewedSaved: boolean; + previewChanges(): Promise; + saveReviewed(): Promise; + isReviewedNow(): boolean; +} { + const nodes = useGraphStore((state) => state.nodes); + const edges = useGraphStore((state) => state.edges); + const name = useGraphStore((state) => state.graphName); + const trigger = useGraphStore((state) => state.graphTrigger); + const candidate = JSON.stringify(canvasToGraph(nodes, edges, name, trigger)); + const address = JSON.stringify(persistence.address); + const [review, setReview] = useState(null); + const [pending, setPending] = useState(false); + const [failure, setFailure] = useState<{ + candidate: string; + address: string; + message: string; + conflict: boolean; + } | null>(null); + const has = (operation: CapabilitiesResponse["operations"][number]): boolean => + capabilities.operations.includes(operation); + const busy = ["loading", "saving", "deleting", "conflict"].includes(persistence.status); + const savedMatches = + persistence.status === "clean" && + review?.preview.candidate_content_sha256 === persistence.contentSha256; + const currentReview = + review?.address === address && + review.candidate === candidate && + (savedMatches || review.revision === persistence.revision) + ? review + : null; + const currentFailure = + failure?.address === address && failure.candidate === candidate ? failure : null; + const canPreview = Boolean( + persistence.address && + persistence.revision && + persistence.contentSha256 && + !busy && + !pending && + has("graph.change-preview"), + ); + const canSave = Boolean( + currentReview && persistence.status === "dirty" && !pending && has("graph.edit"), + ); + + async function previewChanges(): Promise { + if (!canPreview || !persistence.address || !persistence.revision) return; + const captured = currentCandidate(); + setPending(true); + setFailure(null); + setReview(null); + try { + const preview = await client.previewChanges( + persistence.address, + persistence.revision, + JSON.parse(captured), + ); + if (preview.baseline_content_sha256 !== persistence.contentSha256) + throw new HostedControlOperationError( + "This preview belongs to a different saved graph. Reload and review again.", + { conflict: true }, + ); + setReview({ address, revision: persistence.revision, candidate: captured, preview }); + } catch (cause) { + setFailure({ + address, + candidate: captured, + message: cause instanceof Error ? cause.message : "The preview could not be loaded.", + conflict: cause instanceof HostedControlOperationError && cause.conflict, + }); + } finally { + setPending(false); + } + } + + async function saveReviewed(): Promise { + if (!canSave || !currentReview || currentCandidate() !== currentReview.candidate) return; + await persistence.save(); + } + + return { + preview: currentReview?.preview ?? null, + pending, + error: currentFailure?.message ?? null, + conflict: currentFailure?.conflict ?? false, + canPreview, + canSave, + reviewedSaved: Boolean(currentReview && savedMatches), + previewChanges, + saveReviewed, + isReviewedNow: () => + Boolean(currentReview && savedMatches && currentCandidate() === currentReview.candidate), + }; +} + +function currentCandidate(): string { + const state = useGraphStore.getState(); + return JSON.stringify( + canvasToGraph(state.nodes, state.edges, state.graphName, state.graphTrigger), + ); +} diff --git a/src/features/hosted-control/useHostedRunControls.test.tsx b/src/features/hosted-control/useHostedRunControls.test.tsx index 53d10d3..60c6eb3 100644 --- a/src/features/hosted-control/useHostedRunControls.test.tsx +++ b/src/features/hosted-control/useHostedRunControls.test.tsx @@ -64,6 +64,31 @@ afterEach(() => { }); describe("useHostedRunControls", () => { + it("uses the repair route for reviewed dates, then retains normal polling and cancellation", async () => { + vi.useFakeTimers(); + const window = { start_date: "2026-09-01", end_date: "2026-09-03" }; + const api = client({ + startRepair: vi.fn(async () => run("queued", { repair_window: window, can_cancel: true })), + getRun: vi.fn(async () => run("running", { repair_window: window, can_cancel: true })), + }); + const { result } = renderHook(() => + useHostedRunControls({ + client: api, + capabilities: { ...CAPABILITIES, operations: [...CAPABILITIES.operations, "run.repair"] }, + address: ADDRESS, + revision: REVISION, + graphIsClean: true, + }), + ); + await act(async () => result.current.start({ window, environment: "gcp" })); + expect(api.startRepair).toHaveBeenCalledWith(ADDRESS, REVISION, window, "gcp"); + expect(api.startRun).not.toHaveBeenCalled(); + expect(result.current.canStartRepair).toBe(false); + await act(async () => vi.advanceTimersByTimeAsync(2_000)); + expect(result.current.run?.repair_window).toEqual(window); + await act(async () => result.current.cancel()); + expect(api.cancelRun).toHaveBeenCalledWith("run-one"); + }); it("starts, polls every two seconds, loads one bounded page, and follows replay", async () => { vi.useFakeTimers(); const getRun = vi diff --git a/src/features/hosted-control/useHostedRunControls.ts b/src/features/hosted-control/useHostedRunControls.ts index 9666f4c..5ce48fc 100644 --- a/src/features/hosted-control/useHostedRunControls.ts +++ b/src/features/hosted-control/useHostedRunControls.ts @@ -9,6 +9,7 @@ import { import type { CapabilitiesResponse, LogPageResponse, + GraphRepairWindow, RunStatusResponse, } from "@/lib/dander-contracts"; import type { GraphAddress } from "@/lib/persistence/graph-persistence"; @@ -35,19 +36,22 @@ type RunView = { export type HostedRunControls = RunView & { polling: boolean; canStart: boolean; + canStartRepair: boolean; canCancel: boolean; canReplay: boolean; canLoadLogs: boolean; - start(): Promise; + start(repair?: { window: GraphRepairWindow; environment: string }): Promise; cancel(): Promise; replay(): Promise; loadLogs(): Promise; + refresh(): Promise; }; export type HostedRunClient = Pick< HostedControlApiClient, "startRun" | "getRun" | "logs" | "cancelRun" | "replayRun" ->; +> & + Partial>; const ACTIVE_STATES = new Set([ "queued", @@ -136,59 +140,65 @@ export function useHostedRunControls({ }; }, [client, pollIntervalMs, polling, view.run]); - const start = useCallback(async () => { - if ( - !client || - !address || - !revision || - !graphIsClean || - !has("run.start") || - !canReadRun || - view.pending !== null || - view.logsPending || - activeRun - ) { - setView((current) => ({ - ...current, - error: - "Open and save a hosted graph with run.start and run.read access before starting a run.", - })); - return; - } - const origin = { address, revision }; - setView((current) => ({ - ...current, - pending: "start", - error: null, - conflict: false, - acknowledgement: null, - })); - try { - const run = await client.startRun(address, revision); - setView({ - ...EMPTY_VIEW, - run, - origin, - }); - } catch (cause) { + const start = useCallback( + async (repair?: { window: GraphRepairWindow; environment: string }) => { + if ( + !client || + !address || + !revision || + !graphIsClean || + !(repair ? has("run.repair") && client.startRepair : has("run.start")) || + !canReadRun || + view.pending !== null || + view.logsPending || + activeRun + ) { + setView((current) => ({ + ...current, + error: repair + ? "Open and save a hosted graph with run.repair and run.read access before starting a repair." + : "Open and save a hosted graph with run.start and run.read access before starting a run.", + })); + return; + } + const origin = { address, revision }; setView((current) => ({ ...current, - pending: null, - error: operationMessage(cause, "Druff could not start this run."), - conflict: cause instanceof HostedControlOperationError && cause.conflict, + pending: "start", + error: null, + conflict: false, + acknowledgement: null, })); - } - }, [ - activeRun, - address, - canReadRun, - client, - graphIsClean, - has, - revision, - view.logsPending, - view.pending, - ]); + try { + const run = repair + ? await client.startRepair!(address, revision, repair.window, repair.environment) + : await client.startRun(address, revision); + setView({ + ...EMPTY_VIEW, + run, + origin, + }); + } catch (cause) { + setView((current) => ({ + ...current, + pending: null, + error: operationMessage(cause, "Druff could not start this run."), + conflict: cause instanceof HostedControlOperationError && cause.conflict, + })); + } + }, + [ + activeRun, + address, + canReadRun, + client, + graphIsClean, + has, + revision, + view.logsPending, + view.pending, + ], + ); const cancel = useCallback(async () => { const captured = view.run; @@ -318,9 +328,39 @@ export function useHostedRunControls({ } }, [client, has, logLimit, view.logsPending, view.pending, view.run]); + const refresh = useCallback(async () => { + if (!client || !view.run || !canReadRun || view.pending) return; + const runId = view.run.run_id; + try { + const run = await client.getRun(runId); + setView((current) => + current.run?.run_id === runId + ? { ...current, run, error: null, pollingPaused: false } + : current, + ); + } catch (cause) { + setView((current) => + current.run?.run_id === runId + ? { ...current, error: operationMessage(cause, "Druff could not refresh this run.") } + : current, + ); + } + }, [client, canReadRun, view.run, view.pending]); + return { ...view, polling, + canStartRepair: Boolean( + client?.startRepair && + address && + revision && + graphIsClean && + has("run.repair") && + canReadRun && + view.pending === null && + !view.logsPending && + !activeRun, + ), canStart: client !== null && address !== null && @@ -353,6 +393,7 @@ export function useHostedRunControls({ cancel, replay, loadLogs, + refresh, }; } diff --git a/src/generated/dander-contracts/bundle/fixtures/capabilities.json b/src/generated/dander-contracts/bundle/fixtures/capabilities.json index e13eea2..8426536 100644 --- a/src/generated/dander-contracts/bundle/fixtures/capabilities.json +++ b/src/generated/dander-contracts/bundle/fixtures/capabilities.json @@ -1 +1 @@ -{"api_version":"v1","compatibility":{"maximum_druff_contract":"1.x","minimum_druff_contract":"1.0.0"},"contract":{"id":"io.dander.control.contracts/v1","sha256":"0000000000000000000000000000000000000000000000000000000000000000"},"dander_version":"0.0.0","limits":{"max_graph_bytes":5242880,"max_log_records":500,"max_page_size":100},"operations":["graph.read","graph.edit","graph.validate","run.read"]} +{"api_version":"v1","compatibility":{"maximum_druff_contract":"1.x","minimum_druff_contract":"1.0.0"},"contract":{"id":"io.dander.control.contracts/v1","sha256":"0000000000000000000000000000000000000000000000000000000000000000"},"dander_version":"0.0.0","limits":{"max_graph_bytes":5242880,"max_log_records":500,"max_page_size":100},"operations":["graph.read","graph.edit","graph.validate","graph.change-preview","run.read","run.explain"]} diff --git a/src/generated/dander-contracts/bundle/fixtures/graph-change-preview.json b/src/generated/dander-contracts/bundle/fixtures/graph-change-preview.json new file mode 100644 index 0000000..84beba8 --- /dev/null +++ b/src/generated/dander-contracts/bundle/fixtures/graph-change-preview.json @@ -0,0 +1 @@ +{"affected_outputs":["target_incremental","target_replace","target_scd1","target_scd2","target_snapshot"],"baseline_content_sha256":"97cb66a56e300fbcba2ee316511bd1bc14ffe115903f6a4d61452e236e9a19a1","candidate_content_sha256":"8d4b78b016880a28a55d2f7f8949616e617bc141abc4637afd2bb4015f634f2a","connection_changes":[{"change":"added","source":"normalize_records","target":"target_incremental"},{"change":"added","source":"normalize_records","target":"target_replace"},{"change":"added","source":"normalize_records","target":"target_scd1"},{"change":"added","source":"normalize_records","target":"target_scd2"},{"change":"added","source":"normalize_records","target":"target_snapshot"},{"change":"added","source":"source_records","target":"normalize_records"},{"change":"added","source":"source_regions","target":"normalize_records"}],"estimates":{"cost_usd":null,"explanation":"Unknown: this preview reads graph definitions only, not source or warehouse data.","rows_written":null},"graph_properties_changed":["name","trigger"],"limitations":["Static impact within this graph only; external consumers are not inspected.","Affected outputs describe changed definitions, not a selection of outputs to execute. A full run writes every configured output, including unchanged outputs.","Declared write behavior is not proof that this graph can execute. Runtime validation and provider checks still apply; the current graph runtime supports replace targets.","Saving a graph does not write or delete warehouse data."],"node_changes":[{"affects_data":true,"change":"added","changed_properties":[],"name":"Normalize records","node_id":"normalize_records"},{"affects_data":true,"change":"added","changed_properties":[],"name":"Notify operator","node_id":"notify_operator"},{"affects_data":true,"change":"added","changed_properties":[],"name":"Records","node_id":"source_records"},{"affects_data":true,"change":"added","changed_properties":[],"name":"Regions","node_id":"source_regions"},{"affects_data":true,"change":"added","changed_properties":[],"name":"Target Incremental","node_id":"target_incremental"},{"affects_data":true,"change":"added","changed_properties":[],"name":"Target Replace","node_id":"target_replace"},{"affects_data":true,"change":"added","changed_properties":[],"name":"Target Scd1","node_id":"target_scd1"},{"affects_data":true,"change":"added","changed_properties":[],"name":"Target Scd2","node_id":"target_scd2"},{"affects_data":true,"change":"added","changed_properties":[],"name":"Target Snapshot","node_id":"target_snapshot"}],"outputs":[{"affected":true,"after":{"field_names":["id","updated_at"],"writer":{"clustering":[],"cursor_field":"updated_at","destination":{"business_key":["id"],"dataset":"analytics","project":null,"table":"target_incremental"},"max_batch_rows":10000,"partitioning":null,"schema_evolution":"strict","transport":"storage_write","write_mode":"incremental"}},"before":null,"effect":"New graph output. Declared next-run behavior: Writes incremental rows using the configured cursor and keys.","name":"Target Incremental","node_id":"target_incremental"},{"affected":true,"after":{"field_names":["id","updated_at"],"writer":{"clustering":[],"cursor_field":null,"destination":{"business_key":[],"dataset":"analytics","project":null,"table":"target_replace"},"max_batch_rows":10000,"partitioning":null,"schema_evolution":"strict","transport":"copy","write_mode":"replace"}},"before":null,"effect":"New graph output. Declared next-run behavior: Replaces all rows in the destination with this run's result.","name":"Target Replace","node_id":"target_replace"},{"affected":true,"after":{"field_names":["id","updated_at"],"writer":{"clustering":[],"cursor_field":null,"destination":{"business_key":["id"],"dataset":"analytics","project":null,"table":"target_scd1"},"max_batch_rows":10000,"partitioning":null,"schema_evolution":"strict","transport":"load_job","write_mode":"scd1"}},"before":null,"effect":"New graph output. Declared next-run behavior: Updates matching business keys and inserts new rows.","name":"Target Scd1","node_id":"target_scd1"},{"affected":true,"after":{"field_names":["id","updated_at"],"writer":{"clustering":[],"cursor_field":null,"destination":{"business_key":["id"],"dataset":"analytics","project":null,"table":"target_scd2"},"max_batch_rows":10000,"partitioning":null,"schema_evolution":"strict","transport":"copy","write_mode":"scd2"}},"before":null,"effect":"New graph output. Declared next-run behavior: Keeps row history and records new versions of changed business keys.","name":"Target Scd2","node_id":"target_scd2"},{"affected":true,"after":{"field_names":["id","updated_at"],"writer":{"clustering":[],"cursor_field":null,"destination":{"business_key":[],"dataset":"analytics","project":null,"table":"target_snapshot"},"max_batch_rows":10000,"partitioning":null,"schema_evolution":"strict","transport":"load_job","write_mode":"snapshot"}},"before":null,"effect":"New graph output. Declared next-run behavior: Writes a snapshot using the configured partitioning.","name":"Target Snapshot","node_id":"target_snapshot"}],"run_output_ids":["target_incremental","target_replace","target_scd1","target_scd2","target_snapshot"]} diff --git a/src/generated/dander-contracts/bundle/fixtures/graph-repair-preview.json b/src/generated/dander-contracts/bundle/fixtures/graph-repair-preview.json new file mode 100644 index 0000000..8434b4b --- /dev/null +++ b/src/generated/dander-contracts/bundle/fixtures/graph-repair-preview.json @@ -0,0 +1 @@ +{"environments":["gcp"],"estimated_cost_usd":null,"estimated_rows":null,"graph_content_sha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","limitations":["Start date is included; end date is excluded. Timestamp fields use UTC calendar dates.","Source extraction and its normal saved progress are unchanged. This is not a historical snapshot.","Only selected output dates are published; computing them can scan data outside that range.","A record moving across the date boundary stops publication for that output. Choose a wider range or rebuild the full output.","Each output publishes atomically. Earlier successful outputs remain if a later output fails; repeating the same repair converges on the current raw data.","Execution requires a current repair-capable runtime with a BigQuery warehouse. Runtime validation and warehouse checks still apply."],"outputs":[{"business_key":["id"],"destination":{"business_key":["id"],"dataset":"analytics","project":null,"table":"daily_output"},"name":"Daily output","node_id":"daily_output","partition_field":"updated_at","partition_type":"TIMESTAMP"}],"source":"retained_raw","summary":"Rebuild the selected output dates from the raw data currently stored in your warehouse.","window":{"end_date":"2026-09-03","start_date":"2026-09-01"}} diff --git a/src/generated/dander-contracts/bundle/fixtures/graph-repair-window.json b/src/generated/dander-contracts/bundle/fixtures/graph-repair-window.json new file mode 100644 index 0000000..eb398ba --- /dev/null +++ b/src/generated/dander-contracts/bundle/fixtures/graph-repair-window.json @@ -0,0 +1 @@ +{"end_date":"2026-09-03","start_date":"2026-09-01"} diff --git a/src/generated/dander-contracts/bundle/fixtures/run-explanation.json b/src/generated/dander-contracts/bundle/fixtures/run-explanation.json new file mode 100644 index 0000000..92021aa --- /dev/null +++ b/src/generated/dander-contracts/bundle/fixtures/run-explanation.json @@ -0,0 +1 @@ +{"available_actions":["refresh","logs","replay","inspect_outputs"],"caveats":["Recorded counts describe this run; they are not a before/after data comparison.","Runtime telemetry has not been collected for this run.","Replay starts another execution; it does not undo prior writes or repair only a selected date range."],"details":["Recorded extraction: 2 rows from 1 endpoints.","Recorded output: 2 affected rows and 1 models.","Recorded validation and catalog: 1 assertions evaluated and 1 assets."],"next_action":{"kind":"inspect_outputs","label":"Review the pipeline outputs","reason":"Confirm that the recorded output matches the result you expected."},"results_available":true,"run_id":"run-synthetic","state":"succeeded","summary":"The run succeeded and its result measurements are available."} diff --git a/src/generated/dander-contracts/bundle/fixtures/run-status.json b/src/generated/dander-contracts/bundle/fixtures/run-status.json index 2c09b26..b9f2c37 100644 --- a/src/generated/dander-contracts/bundle/fixtures/run-status.json +++ b/src/generated/dander-contracts/bundle/fixtures/run-status.json @@ -1 +1 @@ -{"affected":2,"assertions":1,"assets":1,"can_cancel":false,"can_replay":true,"endpoints":1,"extracted":2,"failure_code":null,"failure_summary":null,"finished_at":"2026-08-13T12:01:00Z","logs_available":true,"models":1,"run_id":"run-synthetic","stage":"complete","started_at":"2026-08-13T12:00:00Z","state":"succeeded"} +{"affected":2,"assertions":1,"assets":1,"can_cancel":false,"can_replay":true,"endpoints":1,"extracted":2,"failure_code":null,"failure_summary":null,"finished_at":"2026-08-13T12:01:00Z","logs_available":true,"models":1,"result_schema":"io.dander.control.execution-result-summary/v1","run_id":"run-synthetic","skipped":false,"stage":"complete","started_at":"2026-08-13T12:00:00Z","state":"succeeded","telemetry":{"bytes_billed":0,"bytes_processed":128,"bytes_read":128,"bytes_written":128,"duration_ms":60000,"execution_duration_ms":100,"operation_count":2,"queue_duration_ms":0,"retry_count":0,"rows_affected":2,"rows_read":2,"rows_written":2,"spill_bytes":0}} diff --git a/src/generated/dander-contracts/bundle/manifest.json b/src/generated/dander-contracts/bundle/manifest.json index 2a083bd..465c79c 100644 --- a/src/generated/dander-contracts/bundle/manifest.json +++ b/src/generated/dander-contracts/bundle/manifest.json @@ -1 +1 @@ -{"bundle_id":"io.dander.control.contracts/v1","bundle_sha256":"695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3","files":[{"contract":"api-error","kind":"fixture","path":"fixtures/api-error.json","sha256":"ed11f73d577b895d9cb6c1167e696b95a30b8ffa2c2d784ff83b7c6346b6ca0d"},{"contract":"capabilities","kind":"fixture","path":"fixtures/capabilities.json","sha256":"7adeda8a3addfdc492d5cb196a71b5f75abaaf675e504584ae40e07e48b8f438"},{"contract":"connector-catalog","kind":"fixture","path":"fixtures/connector-catalog.json","sha256":"c5d8c023bebdc7f39d445bbf8e54f8b3c2f0a72f57aaff3e5c8334274843dc25"},{"contract":"control-bootstrap","kind":"fixture","path":"fixtures/control-bootstrap.json","sha256":"4dac4acea0153c63bf6fbefc6a2f25a4354c1f61f448af3330adf2d1a95d9c80"},{"contract":"deployment-preview","kind":"fixture","path":"fixtures/deployment-preview.json","sha256":"aa9703ab7e8e1ef91a1f8324798709b01bbc5580ba14e3b936fe882820fba539"},{"contract":"graph-create","kind":"fixture","path":"fixtures/graph-create.json","sha256":"c576c1e3109e9dbbdb3f9c81aec477e84639458dbfc2846e1f48f8f3331cc529"},{"contract":"graph-page","kind":"fixture","path":"fixtures/graph-page.json","sha256":"95c2133bb9b2c5aa18de13b73e91322450fcdbf958bee619b603276ac88ba816"},{"contract":"graph-resource","kind":"fixture","path":"fixtures/graph-resource.json","sha256":"68b523de7a34f8383f6d32e47587669091e1292dc93d5afe6b978c7b01dc811d"},{"contract":"graph-validation","kind":"fixture","path":"fixtures/graph-validation.json","sha256":"64a5f8a1f39bde3ef30f5401cf285a9de6091aad9771591b1817168e646dc3e0"},{"contract":"log-page","kind":"fixture","path":"fixtures/log-page.json","sha256":"481c46c6365cfdcaf184dacd53f59cb34e894ec9a11675e876bd220aa609d76c"},{"contract":"mutation-result","kind":"fixture","path":"fixtures/mutation-result.json","sha256":"aa0eb0a3e48f03102c1165aff9933e2be1c54f80a2e29bb67a0aa3bc1fae9898"},{"contract":"operation-catalog","kind":"fixture","path":"fixtures/operation-catalog.json","sha256":"adb73dac2061e1b00a85148cfaf810040aeafb32fb7fd670c077596853f05508"},{"contract":"pipeline-graph","kind":"fixture","path":"fixtures/pipeline-graph-alias-input.json","sha256":"de73bc8e172dfa8daba536fe14fef13a272dd61e8f1bcfef286fe043477ca451"},{"contract":"pipeline-graph","kind":"fixture","path":"fixtures/pipeline-graph.json","sha256":"65c6fa7b88221b1e9a1e51ec773fb9c374533d0ed54e2f2a5c8c7a1242b1b1bc"},{"contract":"plugin-catalog","kind":"fixture","path":"fixtures/plugin-catalog.json","sha256":"039cf19f5ce4c4d5b35e8b1801ff151cf0912b7f90792196dce76e2fce7726df"},{"contract":"project-list","kind":"fixture","path":"fixtures/project-list.json","sha256":"157e70424be88bfaf0429d66dd3a8103a4e402e3f9067685bfe78e2faadf56d3"},{"contract":"run-page","kind":"fixture","path":"fixtures/run-page.json","sha256":"cae943a95060651795160b980d8c25b99ff92440cf905b115b96282cf624fd87"},{"contract":"run-request","kind":"fixture","path":"fixtures/run-request.json","sha256":"36013392b347194d13be6747840c93edb9c8dbf19468a6e19032f26899824f71"},{"contract":"run-status","kind":"fixture","path":"fixtures/run-status.json","sha256":"a02114827482d551a6086b5223c89dd2c4bde281cba3f3dd015f85306199039c"},{"contract":"api-error","kind":"schema","path":"schemas/api-error.schema.json","sha256":"de86daa1616237146b0666f3c69bf7c22d5679595d756ca980becb69b1613164"},{"contract":"capabilities","kind":"schema","path":"schemas/capabilities.schema.json","sha256":"a9d85b8a6e5f73a425432f5f436e7809592889e72c71762c5c544151a1bf1217"},{"contract":"connector-catalog","kind":"schema","path":"schemas/connector-catalog.schema.json","sha256":"132f169721b81569c4934d03c34e1a276176b40a45711de61264bb4928420dc5"},{"contract":"control-bootstrap","kind":"schema","path":"schemas/control-bootstrap.schema.json","sha256":"013a30d4d4c6f417a898ce0c81fc00dcbfc138e76b79d49694d1af7a6f8b4096"},{"contract":"deployment-preview","kind":"schema","path":"schemas/deployment-preview.schema.json","sha256":"67449ad10f78b972ff3fbda98948f3679dcdecf908ae468fe8ddf843158dfe81"},{"contract":"graph-create","kind":"schema","path":"schemas/graph-create.schema.json","sha256":"15cefbe92bdc171916d0118bfa33c665ac39a409661b222861a6f72a23331b41"},{"contract":"graph-page","kind":"schema","path":"schemas/graph-page.schema.json","sha256":"204018767f05e10a110f7caa177312ffea1266cfbd7eb841ed8a8ff90fbe1e09"},{"contract":"graph-resource","kind":"schema","path":"schemas/graph-resource.schema.json","sha256":"dc3ad0085768407720c825c95a5ff7f1ea01e85f6377a8f32445e926a9e88c61"},{"contract":"graph-validation","kind":"schema","path":"schemas/graph-validation.schema.json","sha256":"e835cd4ed7f698420a643305116f46644d54c8514548b849e34c23d398123d54"},{"contract":"log-page","kind":"schema","path":"schemas/log-page.schema.json","sha256":"bdc4059aecaeb7e18c93b3173726b256119306137a0988ddf1673bb50d260bc6"},{"contract":"mutation-result","kind":"schema","path":"schemas/mutation-result.schema.json","sha256":"078ca417acce9d4cd61c89607e5174156e986f432055c07509b9282fe2f537b7"},{"contract":"operation-catalog","kind":"schema","path":"schemas/operation-catalog.schema.json","sha256":"3ed2d3fd7defc677f7841b4e252a31dffd739922829d572ba9d5a7a635fae000"},{"contract":"pipeline-graph","kind":"schema","path":"schemas/pipeline-graph.schema.json","sha256":"3c2aa99c1ab5a93f2c590c0634fd1b39b8d1e84c56fbe8e42e0ff3051ee40377"},{"contract":"plugin-catalog","kind":"schema","path":"schemas/plugin-catalog.schema.json","sha256":"d934e93c333123284d96e2c9fb19080c952c6e353a721207d36228347923eb83"},{"contract":"project-list","kind":"schema","path":"schemas/project-list.schema.json","sha256":"a61e8c0dff565792079c1954584d7424a90fad35de85745682492a60e8067243"},{"contract":"run-page","kind":"schema","path":"schemas/run-page.schema.json","sha256":"2bda42c862d542dfbf0fadfcbb4f05592c22e54b5137ec699fa13ec073d99b30"},{"contract":"run-request","kind":"schema","path":"schemas/run-request.schema.json","sha256":"0a8aa50cf4e82b573476e446e1c9eb6fba1482625abb300b719199ce68866eba"},{"contract":"run-status","kind":"schema","path":"schemas/run-status.schema.json","sha256":"a8f9a83cb6d0316039667d9318df76644bbbbffd260ee6b92dd4fdb487fd4fac"}],"json_schema_dialect":"https://json-schema.org/draft/2020-12/schema","reference_convention":"self-contained internal #/$defs references","schema":"io.dander.control.contracts-manifest/v1"} +{"bundle_id":"io.dander.control.contracts/v1","bundle_sha256":"a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279","files":[{"contract":"api-error","kind":"fixture","path":"fixtures/api-error.json","sha256":"ed11f73d577b895d9cb6c1167e696b95a30b8ffa2c2d784ff83b7c6346b6ca0d"},{"contract":"capabilities","kind":"fixture","path":"fixtures/capabilities.json","sha256":"91dff64c697c6a527c9e71f2b67e167eea434e19b28a884bce83e390ce94c7dd"},{"contract":"connector-catalog","kind":"fixture","path":"fixtures/connector-catalog.json","sha256":"c5d8c023bebdc7f39d445bbf8e54f8b3c2f0a72f57aaff3e5c8334274843dc25"},{"contract":"control-bootstrap","kind":"fixture","path":"fixtures/control-bootstrap.json","sha256":"4dac4acea0153c63bf6fbefc6a2f25a4354c1f61f448af3330adf2d1a95d9c80"},{"contract":"deployment-preview","kind":"fixture","path":"fixtures/deployment-preview.json","sha256":"aa9703ab7e8e1ef91a1f8324798709b01bbc5580ba14e3b936fe882820fba539"},{"contract":"graph-change-preview","kind":"fixture","path":"fixtures/graph-change-preview.json","sha256":"4c108460b9567164472b9f1cad035b23b0a07da31f2062a0de5cfe1f91b79333"},{"contract":"graph-create","kind":"fixture","path":"fixtures/graph-create.json","sha256":"c576c1e3109e9dbbdb3f9c81aec477e84639458dbfc2846e1f48f8f3331cc529"},{"contract":"graph-page","kind":"fixture","path":"fixtures/graph-page.json","sha256":"95c2133bb9b2c5aa18de13b73e91322450fcdbf958bee619b603276ac88ba816"},{"contract":"graph-repair-preview","kind":"fixture","path":"fixtures/graph-repair-preview.json","sha256":"1616eb1cc4944f5da6289e98084bd7744504a2892bdea17b77de91357d7dd536"},{"contract":"graph-repair-window","kind":"fixture","path":"fixtures/graph-repair-window.json","sha256":"2e31c98ace07994d1bed9d848cee474177bb42d723d2c18a5474098136bb3a9d"},{"contract":"graph-resource","kind":"fixture","path":"fixtures/graph-resource.json","sha256":"68b523de7a34f8383f6d32e47587669091e1292dc93d5afe6b978c7b01dc811d"},{"contract":"graph-validation","kind":"fixture","path":"fixtures/graph-validation.json","sha256":"64a5f8a1f39bde3ef30f5401cf285a9de6091aad9771591b1817168e646dc3e0"},{"contract":"log-page","kind":"fixture","path":"fixtures/log-page.json","sha256":"481c46c6365cfdcaf184dacd53f59cb34e894ec9a11675e876bd220aa609d76c"},{"contract":"mutation-result","kind":"fixture","path":"fixtures/mutation-result.json","sha256":"aa0eb0a3e48f03102c1165aff9933e2be1c54f80a2e29bb67a0aa3bc1fae9898"},{"contract":"operation-catalog","kind":"fixture","path":"fixtures/operation-catalog.json","sha256":"adb73dac2061e1b00a85148cfaf810040aeafb32fb7fd670c077596853f05508"},{"contract":"pipeline-graph","kind":"fixture","path":"fixtures/pipeline-graph-alias-input.json","sha256":"de73bc8e172dfa8daba536fe14fef13a272dd61e8f1bcfef286fe043477ca451"},{"contract":"pipeline-graph","kind":"fixture","path":"fixtures/pipeline-graph.json","sha256":"65c6fa7b88221b1e9a1e51ec773fb9c374533d0ed54e2f2a5c8c7a1242b1b1bc"},{"contract":"plugin-catalog","kind":"fixture","path":"fixtures/plugin-catalog.json","sha256":"039cf19f5ce4c4d5b35e8b1801ff151cf0912b7f90792196dce76e2fce7726df"},{"contract":"project-list","kind":"fixture","path":"fixtures/project-list.json","sha256":"157e70424be88bfaf0429d66dd3a8103a4e402e3f9067685bfe78e2faadf56d3"},{"contract":"run-explanation","kind":"fixture","path":"fixtures/run-explanation.json","sha256":"e0ccfd75142882f91fcc0e352b09c5ecf92193646c3a98107f56fa6482b15cd4"},{"contract":"run-page","kind":"fixture","path":"fixtures/run-page.json","sha256":"cae943a95060651795160b980d8c25b99ff92440cf905b115b96282cf624fd87"},{"contract":"run-request","kind":"fixture","path":"fixtures/run-request.json","sha256":"36013392b347194d13be6747840c93edb9c8dbf19468a6e19032f26899824f71"},{"contract":"run-status","kind":"fixture","path":"fixtures/run-status.json","sha256":"c2d76c2b9879b45d954027247da0849f216db44d8f449ea4a0c24443a8283556"},{"contract":"api-error","kind":"schema","path":"schemas/api-error.schema.json","sha256":"de86daa1616237146b0666f3c69bf7c22d5679595d756ca980becb69b1613164"},{"contract":"capabilities","kind":"schema","path":"schemas/capabilities.schema.json","sha256":"726c775f8b9c87b068ac57f42e011fede45a9af3d46feb9a56d80ab31d65308d"},{"contract":"connector-catalog","kind":"schema","path":"schemas/connector-catalog.schema.json","sha256":"132f169721b81569c4934d03c34e1a276176b40a45711de61264bb4928420dc5"},{"contract":"control-bootstrap","kind":"schema","path":"schemas/control-bootstrap.schema.json","sha256":"013a30d4d4c6f417a898ce0c81fc00dcbfc138e76b79d49694d1af7a6f8b4096"},{"contract":"deployment-preview","kind":"schema","path":"schemas/deployment-preview.schema.json","sha256":"67449ad10f78b972ff3fbda98948f3679dcdecf908ae468fe8ddf843158dfe81"},{"contract":"graph-change-preview","kind":"schema","path":"schemas/graph-change-preview.schema.json","sha256":"e45220e046d17c5b608da11e59bbeec6160f56f910b568bd15c8651465e585bf"},{"contract":"graph-create","kind":"schema","path":"schemas/graph-create.schema.json","sha256":"15cefbe92bdc171916d0118bfa33c665ac39a409661b222861a6f72a23331b41"},{"contract":"graph-page","kind":"schema","path":"schemas/graph-page.schema.json","sha256":"204018767f05e10a110f7caa177312ffea1266cfbd7eb841ed8a8ff90fbe1e09"},{"contract":"graph-repair-preview","kind":"schema","path":"schemas/graph-repair-preview.schema.json","sha256":"2c738cccf9c4e14ae5ad683ab590e9d9c682f630d497de796fd8c0f09bbf6ccf"},{"contract":"graph-repair-window","kind":"schema","path":"schemas/graph-repair-window.schema.json","sha256":"cf447ee4441b22db5e994e2ecf27469ad0c8d17a2cf31817142cee401827439b"},{"contract":"graph-resource","kind":"schema","path":"schemas/graph-resource.schema.json","sha256":"dc3ad0085768407720c825c95a5ff7f1ea01e85f6377a8f32445e926a9e88c61"},{"contract":"graph-validation","kind":"schema","path":"schemas/graph-validation.schema.json","sha256":"e835cd4ed7f698420a643305116f46644d54c8514548b849e34c23d398123d54"},{"contract":"log-page","kind":"schema","path":"schemas/log-page.schema.json","sha256":"bdc4059aecaeb7e18c93b3173726b256119306137a0988ddf1673bb50d260bc6"},{"contract":"mutation-result","kind":"schema","path":"schemas/mutation-result.schema.json","sha256":"078ca417acce9d4cd61c89607e5174156e986f432055c07509b9282fe2f537b7"},{"contract":"operation-catalog","kind":"schema","path":"schemas/operation-catalog.schema.json","sha256":"3ed2d3fd7defc677f7841b4e252a31dffd739922829d572ba9d5a7a635fae000"},{"contract":"pipeline-graph","kind":"schema","path":"schemas/pipeline-graph.schema.json","sha256":"3c2aa99c1ab5a93f2c590c0634fd1b39b8d1e84c56fbe8e42e0ff3051ee40377"},{"contract":"plugin-catalog","kind":"schema","path":"schemas/plugin-catalog.schema.json","sha256":"d934e93c333123284d96e2c9fb19080c952c6e353a721207d36228347923eb83"},{"contract":"project-list","kind":"schema","path":"schemas/project-list.schema.json","sha256":"a61e8c0dff565792079c1954584d7424a90fad35de85745682492a60e8067243"},{"contract":"run-explanation","kind":"schema","path":"schemas/run-explanation.schema.json","sha256":"e00ca3f82bfca14e77d61f00b14bc2c314820b680ff357b3c45e988eae6a8324"},{"contract":"run-page","kind":"schema","path":"schemas/run-page.schema.json","sha256":"b9caffd70b6f5fe6a14b6666e3934aa18d7934318e6db3c268c8d9598979d4fd"},{"contract":"run-request","kind":"schema","path":"schemas/run-request.schema.json","sha256":"0a8aa50cf4e82b573476e446e1c9eb6fba1482625abb300b719199ce68866eba"},{"contract":"run-status","kind":"schema","path":"schemas/run-status.schema.json","sha256":"e391062817d4f4153c341d17f99a8363dc7516c32eaf73785baf65f8231969bf"}],"json_schema_dialect":"https://json-schema.org/draft/2020-12/schema","reference_convention":"self-contained internal #/$defs references","schema":"io.dander.control.contracts-manifest/v1"} diff --git a/src/generated/dander-contracts/bundle/schemas/capabilities.schema.json b/src/generated/dander-contracts/bundle/schemas/capabilities.schema.json index 5b00d50..1745273 100644 --- a/src/generated/dander-contracts/bundle/schemas/capabilities.schema.json +++ b/src/generated/dander-contracts/bundle/schemas/capabilities.schema.json @@ -1 +1 @@ -{"$defs":{"CompatibilityRange":{"additionalProperties":false,"properties":{"maximum_druff_contract":{"title":"Maximum Druff Contract","type":"string"},"minimum_druff_contract":{"title":"Minimum Druff Contract","type":"string"}},"required":["minimum_druff_contract","maximum_druff_contract"],"title":"CompatibilityRange","type":"object"},"ContractIdentity":{"additionalProperties":false,"properties":{"id":{"const":"io.dander.control.contracts/v1","title":"Id","type":"string"},"sha256":{"pattern":"^[0-9a-f]{64}$","title":"Sha256","type":"string"}},"required":["id","sha256"],"title":"ContractIdentity","type":"object"},"ControlLimits":{"additionalProperties":false,"properties":{"max_graph_bytes":{"exclusiveMinimum":0,"title":"Max Graph Bytes","type":"integer"},"max_log_records":{"exclusiveMinimum":0,"title":"Max Log Records","type":"integer"},"max_page_size":{"exclusiveMinimum":0,"title":"Max Page Size","type":"integer"}},"required":["max_graph_bytes","max_page_size","max_log_records"],"title":"ControlLimits","type":"object"}},"$id":"urn:dander:control:contracts:v1:capabilities","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"api_version":{"const":"v1","default":"v1","title":"Api Version","type":"string"},"compatibility":{"$ref":"#/$defs/CompatibilityRange"},"contract":{"$ref":"#/$defs/ContractIdentity"},"dander_version":{"title":"Dander Version","type":"string"},"limits":{"$ref":"#/$defs/ControlLimits"},"operations":{"items":{"enum":["graph.read","graph.edit","graph.delete","graph.validate","deployment.preview","run.start","run.read","run.logs","run.cancel","run.replay"],"type":"string"},"title":"Operations","type":"array"}},"required":["dander_version","contract","compatibility","operations","limits"],"title":"CapabilitiesResponse","type":"object"} +{"$defs":{"CompatibilityRange":{"additionalProperties":false,"properties":{"maximum_druff_contract":{"title":"Maximum Druff Contract","type":"string"},"minimum_druff_contract":{"title":"Minimum Druff Contract","type":"string"}},"required":["minimum_druff_contract","maximum_druff_contract"],"title":"CompatibilityRange","type":"object"},"ContractIdentity":{"additionalProperties":false,"properties":{"id":{"const":"io.dander.control.contracts/v1","title":"Id","type":"string"},"sha256":{"pattern":"^[0-9a-f]{64}$","title":"Sha256","type":"string"}},"required":["id","sha256"],"title":"ContractIdentity","type":"object"},"ControlLimits":{"additionalProperties":false,"properties":{"max_graph_bytes":{"exclusiveMinimum":0,"title":"Max Graph Bytes","type":"integer"},"max_log_records":{"exclusiveMinimum":0,"title":"Max Log Records","type":"integer"},"max_page_size":{"exclusiveMinimum":0,"title":"Max Page Size","type":"integer"}},"required":["max_graph_bytes","max_page_size","max_log_records"],"title":"ControlLimits","type":"object"}},"$id":"urn:dander:control:contracts:v1:capabilities","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"api_version":{"const":"v1","default":"v1","title":"Api Version","type":"string"},"compatibility":{"$ref":"#/$defs/CompatibilityRange"},"contract":{"$ref":"#/$defs/ContractIdentity"},"dander_version":{"title":"Dander Version","type":"string"},"limits":{"$ref":"#/$defs/ControlLimits"},"operations":{"items":{"enum":["graph.read","graph.edit","graph.delete","graph.validate","graph.change-preview","graph.repair-preview","deployment.preview","run.start","run.read","run.explain","run.repair","run.logs","run.cancel","run.replay"],"type":"string"},"title":"Operations","type":"array"}},"required":["dander_version","contract","compatibility","operations","limits"],"title":"CapabilitiesResponse","type":"object"} diff --git a/src/generated/dander-contracts/bundle/schemas/graph-change-preview.schema.json b/src/generated/dander-contracts/bundle/schemas/graph-change-preview.schema.json new file mode 100644 index 0000000..d77ffa9 --- /dev/null +++ b/src/generated/dander-contracts/bundle/schemas/graph-change-preview.schema.json @@ -0,0 +1 @@ +{"$defs":{"DestinationDocument":{"additionalProperties":false,"properties":{"business_key":{"items":{"type":"string"},"title":"Business Key","type":"array"},"dataset":{"minLength":1,"title":"Dataset","type":"string"},"project":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Project"},"table":{"minLength":1,"title":"Table","type":"string"}},"required":["dataset","table"],"title":"DestinationDocument","type":"object"},"GraphChangeEstimates":{"additionalProperties":false,"properties":{"cost_usd":{"default":null,"title":"Cost Usd","type":"null"},"explanation":{"default":"Unknown: this preview reads graph definitions only, not source or warehouse data.","title":"Explanation","type":"string"},"rows_written":{"default":null,"title":"Rows Written","type":"null"}},"title":"GraphChangeEstimates","type":"object"},"GraphConnectionChange":{"additionalProperties":false,"properties":{"change":{"enum":["added","removed","modified"],"title":"Change","type":"string"},"source":{"title":"Source","type":"string"},"target":{"title":"Target","type":"string"}},"required":["source","target","change"],"title":"GraphConnectionChange","type":"object"},"GraphNodeChange":{"additionalProperties":false,"properties":{"affects_data":{"title":"Affects Data","type":"boolean"},"change":{"enum":["added","removed","modified","layout_only"],"title":"Change","type":"string"},"changed_properties":{"default":[],"items":{"type":"string"},"title":"Changed Properties","type":"array"},"name":{"title":"Name","type":"string"},"node_id":{"title":"Node Id","type":"string"}},"required":["node_id","name","change","affects_data"],"title":"GraphNodeChange","type":"object"},"GraphOutputImpact":{"additionalProperties":false,"properties":{"affected":{"title":"Affected","type":"boolean"},"after":{"anyOf":[{"$ref":"#/$defs/GraphOutputState"},{"type":"null"}]},"before":{"anyOf":[{"$ref":"#/$defs/GraphOutputState"},{"type":"null"}]},"effect":{"title":"Effect","type":"string"},"name":{"title":"Name","type":"string"},"node_id":{"title":"Node Id","type":"string"}},"required":["node_id","name","affected","before","after","effect"],"title":"GraphOutputImpact","type":"object"},"GraphOutputState":{"additionalProperties":false,"description":"Only declared output coordinates and field names, never arbitrary node configuration.","properties":{"field_names":{"items":{"type":"string"},"title":"Field Names","type":"array"},"writer":{"anyOf":[{"$ref":"#/$defs/WriterDocument"},{"type":"null"}]}},"required":["writer","field_names"],"title":"GraphOutputState","type":"object"},"PartitioningDocument":{"additionalProperties":false,"properties":{"field":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Field"},"granularity":{"$ref":"#/$defs/PartitioningType","default":"day"},"require_partition_filter":{"default":false,"title":"Require Partition Filter","type":"boolean"}},"title":"PartitioningDocument","type":"object"},"PartitioningType":{"description":"The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare.\n\nA `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in\n`dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON;\nan out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately\nlimited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future\nmember (see `steering/02-engineering.md` on avoiding speculative generality).\n\nAttributes:\n HOUR: Hourly partitions.\n DAY: Daily partitions — the common case and BigQuery's default granularity.\n MONTH: Monthly partitions.\n YEAR: Yearly partitions.","enum":["hour","day","month","year"],"title":"PartitioningType","type":"string"},"SchemaEvolution":{"description":"How a writer handles declared columns absent from an existing target.","enum":["strict","additive"],"title":"SchemaEvolution","type":"string"},"WriteMode":{"description":"Supported load strategies.","enum":["scd1","scd2","snapshot","incremental","replace"],"title":"WriteMode","type":"string"},"WriterDocument":{"additionalProperties":false,"properties":{"clustering":{"items":{"type":"string"},"maxItems":4,"title":"Clustering","type":"array"},"cursor_field":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Cursor Field"},"destination":{"$ref":"#/$defs/DestinationDocument"},"max_batch_rows":{"default":10000,"exclusiveMinimum":0,"maximum":100000,"title":"Max Batch Rows","type":"integer"},"partitioning":{"anyOf":[{"$ref":"#/$defs/PartitioningDocument"},{"type":"null"}],"default":null},"schema_evolution":{"$ref":"#/$defs/SchemaEvolution","default":"strict"},"transport":{"default":"load_job","enum":["load_job","storage_write","copy"],"title":"Transport","type":"string"},"write_mode":{"$ref":"#/$defs/WriteMode"}},"required":["write_mode","destination"],"title":"WriterDocument","type":"object"}},"$id":"urn:dander:control:contracts:v1:graph-change-preview","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"description":"Static changes and potential downstream effects; a run still executes all outputs.","properties":{"affected_outputs":{"items":{"type":"string"},"title":"Affected Outputs","type":"array"},"baseline_content_sha256":{"pattern":"^[0-9a-f]{64}$","title":"Baseline Content Sha256","type":"string"},"candidate_content_sha256":{"pattern":"^[0-9a-f]{64}$","title":"Candidate Content Sha256","type":"string"},"connection_changes":{"items":{"$ref":"#/$defs/GraphConnectionChange"},"title":"Connection Changes","type":"array"},"estimates":{"$ref":"#/$defs/GraphChangeEstimates"},"graph_properties_changed":{"items":{"type":"string"},"title":"Graph Properties Changed","type":"array"},"limitations":{"default":["Static impact within this graph only; external consumers are not inspected.","Affected outputs describe changed definitions, not a selection of outputs to execute. A full run writes every configured output, including unchanged outputs.","Declared write behavior is not proof that this graph can execute. Runtime validation and provider checks still apply; the current graph runtime supports replace targets.","Saving a graph does not write or delete warehouse data."],"items":{"type":"string"},"title":"Limitations","type":"array"},"node_changes":{"items":{"$ref":"#/$defs/GraphNodeChange"},"title":"Node Changes","type":"array"},"outputs":{"items":{"$ref":"#/$defs/GraphOutputImpact"},"title":"Outputs","type":"array"},"run_output_ids":{"items":{"type":"string"},"title":"Run Output Ids","type":"array"}},"required":["baseline_content_sha256","candidate_content_sha256","graph_properties_changed","node_changes","connection_changes","affected_outputs","outputs","run_output_ids"],"title":"GraphChangePreviewResponse","type":"object"} diff --git a/src/generated/dander-contracts/bundle/schemas/graph-repair-preview.schema.json b/src/generated/dander-contracts/bundle/schemas/graph-repair-preview.schema.json new file mode 100644 index 0000000..d895da7 --- /dev/null +++ b/src/generated/dander-contracts/bundle/schemas/graph-repair-preview.schema.json @@ -0,0 +1 @@ +{"$defs":{"DestinationDocument":{"additionalProperties":false,"properties":{"business_key":{"items":{"type":"string"},"title":"Business Key","type":"array"},"dataset":{"minLength":1,"title":"Dataset","type":"string"},"project":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Project"},"table":{"minLength":1,"title":"Table","type":"string"}},"required":["dataset","table"],"title":"DestinationDocument","type":"object"},"GraphRepairOutput":{"additionalProperties":false,"properties":{"business_key":{"items":{"type":"string"},"title":"Business Key","type":"array"},"destination":{"$ref":"#/$defs/DestinationDocument"},"name":{"title":"Name","type":"string"},"node_id":{"title":"Node Id","type":"string"},"partition_field":{"title":"Partition Field","type":"string"},"partition_type":{"enum":["DATE","TIMESTAMP"],"title":"Partition Type","type":"string"}},"required":["node_id","name","destination","partition_field","partition_type","business_key"],"title":"GraphRepairOutput","type":"object"},"GraphRepairWindow":{"additionalProperties":false,"description":"UTC calendar dates: start is inclusive and end is exclusive.","properties":{"end_date":{"format":"date","title":"End Date","type":"string"},"start_date":{"format":"date","title":"Start Date","type":"string"}},"required":["start_date","end_date"],"title":"GraphRepairWindow","type":"object"}},"$id":"urn:dander:control:contracts:v1:graph-repair-preview","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"environments":{"items":{"type":"string"},"title":"Environments","type":"array"},"estimated_cost_usd":{"default":null,"title":"Estimated Cost Usd","type":"null"},"estimated_rows":{"default":null,"title":"Estimated Rows","type":"null"},"graph_content_sha256":{"title":"Graph Content Sha256","type":"string"},"limitations":{"default":["Start date is included; end date is excluded. Timestamp fields use UTC calendar dates.","Source extraction and its normal saved progress are unchanged. This is not a historical snapshot.","Only selected output dates are published; computing them can scan data outside that range.","A record moving across the date boundary stops publication for that output. Choose a wider range or rebuild the full output.","Each output publishes atomically. Earlier successful outputs remain if a later output fails; repeating the same repair converges on the current raw data.","Execution requires a current repair-capable runtime with a BigQuery warehouse. Runtime validation and warehouse checks still apply."],"items":{"type":"string"},"title":"Limitations","type":"array"},"outputs":{"items":{"$ref":"#/$defs/GraphRepairOutput"},"title":"Outputs","type":"array"},"source":{"const":"retained_raw","default":"retained_raw","title":"Source","type":"string"},"summary":{"default":"Rebuild the selected output dates from the raw data currently stored in your warehouse.","title":"Summary","type":"string"},"window":{"$ref":"#/$defs/GraphRepairWindow"}},"required":["graph_content_sha256","window","outputs","environments"],"title":"GraphRepairPreviewResponse","type":"object"} diff --git a/src/generated/dander-contracts/bundle/schemas/graph-repair-window.schema.json b/src/generated/dander-contracts/bundle/schemas/graph-repair-window.schema.json new file mode 100644 index 0000000..60f61cc --- /dev/null +++ b/src/generated/dander-contracts/bundle/schemas/graph-repair-window.schema.json @@ -0,0 +1 @@ +{"$id":"urn:dander:control:contracts:v1:graph-repair-window","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"description":"UTC calendar dates: start is inclusive and end is exclusive.","properties":{"end_date":{"format":"date","title":"End Date","type":"string"},"start_date":{"format":"date","title":"Start Date","type":"string"}},"required":["start_date","end_date"],"title":"GraphRepairWindow","type":"object"} diff --git a/src/generated/dander-contracts/bundle/schemas/run-explanation.schema.json b/src/generated/dander-contracts/bundle/schemas/run-explanation.schema.json new file mode 100644 index 0000000..a8c4297 --- /dev/null +++ b/src/generated/dander-contracts/bundle/schemas/run-explanation.schema.json @@ -0,0 +1 @@ +{"$defs":{"RunActionKind":{"enum":["refresh","logs","replay","cancel","inspect_outputs","review_configuration","none"],"type":"string"},"RunExplanationAction":{"additionalProperties":false,"description":"One suggested next step, without performing a run mutation.","properties":{"kind":{"$ref":"#/$defs/RunActionKind"},"label":{"title":"Label","type":"string"},"reason":{"title":"Reason","type":"string"}},"required":["kind","label","reason"],"title":"RunExplanationAction","type":"object"},"RunState":{"enum":["queued","running","succeeded","failed","canceling","canceled","retrying"],"title":"RunState","type":"string"}},"$id":"urn:dander:control:contracts:v1:run-explanation","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"description":"A bounded explanation derived only from the current normalized run status.","properties":{"available_actions":{"items":{"$ref":"#/$defs/RunActionKind"},"maxItems":7,"title":"Available Actions","type":"array"},"caveats":{"items":{"type":"string"},"maxItems":8,"title":"Caveats","type":"array"},"details":{"items":{"type":"string"},"maxItems":8,"title":"Details","type":"array"},"next_action":{"$ref":"#/$defs/RunExplanationAction"},"results_available":{"title":"Results Available","type":"boolean"},"run_id":{"title":"Run Id","type":"string"},"state":{"$ref":"#/$defs/RunState"},"summary":{"title":"Summary","type":"string"}},"required":["run_id","state","results_available","summary","next_action"],"title":"RunExplanationResponse","type":"object"} diff --git a/src/generated/dander-contracts/bundle/schemas/run-page.schema.json b/src/generated/dander-contracts/bundle/schemas/run-page.schema.json index 89120e2..2d9d735 100644 --- a/src/generated/dander-contracts/bundle/schemas/run-page.schema.json +++ b/src/generated/dander-contracts/bundle/schemas/run-page.schema.json @@ -1 +1 @@ -{"$defs":{"RunState":{"enum":["queued","running","succeeded","failed","canceling","canceled","retrying"],"title":"RunState","type":"string"},"RunStatusResponse":{"additionalProperties":false,"properties":{"affected":{"default":0,"minimum":0,"title":"Affected","type":"integer"},"assertions":{"default":0,"minimum":0,"title":"Assertions","type":"integer"},"assets":{"default":0,"minimum":0,"title":"Assets","type":"integer"},"can_cancel":{"default":false,"title":"Can Cancel","type":"boolean"},"can_replay":{"default":false,"title":"Can Replay","type":"boolean"},"endpoints":{"default":0,"minimum":0,"title":"Endpoints","type":"integer"},"extracted":{"default":0,"minimum":0,"title":"Extracted","type":"integer"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Failure Code"},"failure_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Failure Summary"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Finished At"},"logs_available":{"default":false,"title":"Logs Available","type":"boolean"},"models":{"default":0,"minimum":0,"title":"Models","type":"integer"},"run_id":{"title":"Run Id","type":"string"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Stage"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Started At"},"state":{"$ref":"#/$defs/RunState"}},"required":["run_id","state"],"title":"RunStatusResponse","type":"object"}},"$id":"urn:dander:control:contracts:v1:run-page","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"description":"A bounded page of normalized, non-sensitive run summaries.","properties":{"items":{"items":{"$ref":"#/$defs/RunStatusResponse"},"maxItems":100,"title":"Items","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Next Cursor"}},"required":["items"],"title":"RunPageResponse","type":"object"} +{"$defs":{"GraphRepairWindow":{"additionalProperties":false,"description":"UTC calendar dates: start is inclusive and end is exclusive.","properties":{"end_date":{"format":"date","title":"End Date","type":"string"},"start_date":{"format":"date","title":"Start Date","type":"string"}},"required":["start_date","end_date"],"title":"GraphRepairWindow","type":"object"},"RunPlacementDecision":{"additionalProperties":false,"description":"Fixed-size explanation of the execution-plan selection used by Control.","properties":{"decision_schema":{"const":"io.dander.control.placement-decision/v1","title":"Decision Schema","type":"string"},"eligible_plan_count":{"maximum":100,"minimum":1,"title":"Eligible Plan Count","type":"integer"},"estimated_cost_microusd":{"anyOf":[{"maximum":9223372036854775807,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Estimated Cost Microusd"},"max_cost_microusd":{"anyOf":[{"maximum":9223372036854775807,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Max Cost Microusd"},"mode":{"enum":["automatic","manual_override","configured_default","scheduled","replay"],"title":"Mode","type":"string"},"preferred_locality":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Preferred Locality"},"selected_environment":{"title":"Selected Environment","type":"string"},"selected_locality":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Selected Locality"}},"required":["decision_schema","mode","selected_environment","eligible_plan_count"],"title":"RunPlacementDecision","type":"object"},"RunSizeClassDecision":{"additionalProperties":false,"description":"Fixed-size explanation of the selected execution resource class.","properties":{"cpu_millis":{"minimum":1,"title":"Cpu Millis","type":"integer"},"decision_schema":{"const":"io.dander.control.size-class-decision/v2","title":"Decision Schema","type":"string"},"eligible_plan_count":{"maximum":100,"minimum":1,"title":"Eligible Plan Count","type":"integer"},"ephemeral_storage_mib":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Ephemeral Storage Mib"},"estimate_observed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Estimate Observed At"},"estimate_source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Estimate Source"},"estimated_input_bytes":{"anyOf":[{"maximum":9223372036854775807,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Estimated Input Bytes"},"max_input_bytes":{"maximum":9223372036854775807,"minimum":0,"title":"Max Input Bytes","type":"integer"},"memory_mib":{"minimum":1,"title":"Memory Mib","type":"integer"},"mode":{"enum":["automatic_input","manual_override","configured_default","scheduled","replay"],"title":"Mode","type":"string"},"selected_size_class":{"title":"Selected Size Class","type":"string"}},"required":["decision_schema","mode","selected_size_class","max_input_bytes","cpu_millis","memory_mib","eligible_plan_count"],"title":"RunSizeClassDecision","type":"object"},"RunState":{"enum":["queued","running","succeeded","failed","canceling","canceled","retrying"],"title":"RunState","type":"string"},"RunStatusResponse":{"additionalProperties":false,"properties":{"affected":{"default":0,"minimum":0,"title":"Affected","type":"integer"},"assertions":{"default":0,"minimum":0,"title":"Assertions","type":"integer"},"assets":{"default":0,"minimum":0,"title":"Assets","type":"integer"},"can_cancel":{"default":false,"title":"Can Cancel","type":"boolean"},"can_replay":{"default":false,"title":"Can Replay","type":"boolean"},"endpoints":{"default":0,"minimum":0,"title":"Endpoints","type":"integer"},"extracted":{"default":0,"minimum":0,"title":"Extracted","type":"integer"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Failure Code"},"failure_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Failure Summary"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Finished At"},"logs_available":{"default":false,"title":"Logs Available","type":"boolean"},"models":{"default":0,"minimum":0,"title":"Models","type":"integer"},"placement":{"anyOf":[{"$ref":"#/$defs/RunPlacementDecision"},{"type":"null"}],"default":null},"repair_window":{"anyOf":[{"$ref":"#/$defs/GraphRepairWindow"},{"type":"null"}],"default":null},"result_schema":{"anyOf":[{"const":"io.dander.control.execution-result-summary/v1","type":"string"},{"type":"null"}],"default":null,"title":"Result Schema"},"run_id":{"title":"Run Id","type":"string"},"sizing":{"anyOf":[{"$ref":"#/$defs/RunSizeClassDecision"},{"type":"null"}],"default":null},"skipped":{"default":false,"title":"Skipped","type":"boolean"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Stage"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Started At"},"state":{"$ref":"#/$defs/RunState"},"telemetry":{"anyOf":[{"$ref":"#/$defs/RunTelemetrySummary"},{"type":"null"}],"default":null}},"required":["run_id","state"],"title":"RunStatusResponse","type":"object"},"RunTelemetrySummary":{"additionalProperties":false,"description":"Fixed-size telemetry totals; provider operation details remain in logs.","properties":{"bytes_billed":{"maximum":9223372036854775807,"minimum":0,"title":"Bytes Billed","type":"integer"},"bytes_processed":{"maximum":9223372036854775807,"minimum":0,"title":"Bytes Processed","type":"integer"},"bytes_read":{"maximum":9223372036854775807,"minimum":0,"title":"Bytes Read","type":"integer"},"bytes_written":{"maximum":9223372036854775807,"minimum":0,"title":"Bytes Written","type":"integer"},"duration_ms":{"maximum":9223372036854775807,"minimum":0,"title":"Duration Ms","type":"integer"},"execution_duration_ms":{"maximum":9223372036854775807,"minimum":0,"title":"Execution Duration Ms","type":"integer"},"operation_count":{"maximum":9223372036854775807,"minimum":0,"title":"Operation Count","type":"integer"},"queue_duration_ms":{"maximum":9223372036854775807,"minimum":0,"title":"Queue Duration Ms","type":"integer"},"retry_count":{"maximum":9223372036854775807,"minimum":0,"title":"Retry Count","type":"integer"},"rows_affected":{"maximum":9223372036854775807,"minimum":0,"title":"Rows Affected","type":"integer"},"rows_read":{"maximum":9223372036854775807,"minimum":0,"title":"Rows Read","type":"integer"},"rows_written":{"maximum":9223372036854775807,"minimum":0,"title":"Rows Written","type":"integer"},"spill_bytes":{"maximum":9223372036854775807,"minimum":0,"title":"Spill Bytes","type":"integer"}},"required":["duration_ms","operation_count","retry_count","rows_read","rows_written","rows_affected","bytes_read","bytes_written","bytes_processed","bytes_billed","queue_duration_ms","execution_duration_ms","spill_bytes"],"title":"RunTelemetrySummary","type":"object"}},"$id":"urn:dander:control:contracts:v1:run-page","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"description":"A bounded page of normalized, non-sensitive run summaries.","properties":{"items":{"items":{"$ref":"#/$defs/RunStatusResponse"},"maxItems":100,"title":"Items","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Next Cursor"}},"required":["items"],"title":"RunPageResponse","type":"object"} diff --git a/src/generated/dander-contracts/bundle/schemas/run-status.schema.json b/src/generated/dander-contracts/bundle/schemas/run-status.schema.json index 3b7ecb5..f5d536c 100644 --- a/src/generated/dander-contracts/bundle/schemas/run-status.schema.json +++ b/src/generated/dander-contracts/bundle/schemas/run-status.schema.json @@ -1 +1 @@ -{"$defs":{"RunState":{"enum":["queued","running","succeeded","failed","canceling","canceled","retrying"],"title":"RunState","type":"string"}},"$id":"urn:dander:control:contracts:v1:run-status","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"affected":{"default":0,"minimum":0,"title":"Affected","type":"integer"},"assertions":{"default":0,"minimum":0,"title":"Assertions","type":"integer"},"assets":{"default":0,"minimum":0,"title":"Assets","type":"integer"},"can_cancel":{"default":false,"title":"Can Cancel","type":"boolean"},"can_replay":{"default":false,"title":"Can Replay","type":"boolean"},"endpoints":{"default":0,"minimum":0,"title":"Endpoints","type":"integer"},"extracted":{"default":0,"minimum":0,"title":"Extracted","type":"integer"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Failure Code"},"failure_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Failure Summary"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Finished At"},"logs_available":{"default":false,"title":"Logs Available","type":"boolean"},"models":{"default":0,"minimum":0,"title":"Models","type":"integer"},"run_id":{"title":"Run Id","type":"string"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Stage"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Started At"},"state":{"$ref":"#/$defs/RunState"}},"required":["run_id","state"],"title":"RunStatusResponse","type":"object"} +{"$defs":{"GraphRepairWindow":{"additionalProperties":false,"description":"UTC calendar dates: start is inclusive and end is exclusive.","properties":{"end_date":{"format":"date","title":"End Date","type":"string"},"start_date":{"format":"date","title":"Start Date","type":"string"}},"required":["start_date","end_date"],"title":"GraphRepairWindow","type":"object"},"RunPlacementDecision":{"additionalProperties":false,"description":"Fixed-size explanation of the execution-plan selection used by Control.","properties":{"decision_schema":{"const":"io.dander.control.placement-decision/v1","title":"Decision Schema","type":"string"},"eligible_plan_count":{"maximum":100,"minimum":1,"title":"Eligible Plan Count","type":"integer"},"estimated_cost_microusd":{"anyOf":[{"maximum":9223372036854775807,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Estimated Cost Microusd"},"max_cost_microusd":{"anyOf":[{"maximum":9223372036854775807,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Max Cost Microusd"},"mode":{"enum":["automatic","manual_override","configured_default","scheduled","replay"],"title":"Mode","type":"string"},"preferred_locality":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Preferred Locality"},"selected_environment":{"title":"Selected Environment","type":"string"},"selected_locality":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Selected Locality"}},"required":["decision_schema","mode","selected_environment","eligible_plan_count"],"title":"RunPlacementDecision","type":"object"},"RunSizeClassDecision":{"additionalProperties":false,"description":"Fixed-size explanation of the selected execution resource class.","properties":{"cpu_millis":{"minimum":1,"title":"Cpu Millis","type":"integer"},"decision_schema":{"const":"io.dander.control.size-class-decision/v2","title":"Decision Schema","type":"string"},"eligible_plan_count":{"maximum":100,"minimum":1,"title":"Eligible Plan Count","type":"integer"},"ephemeral_storage_mib":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Ephemeral Storage Mib"},"estimate_observed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Estimate Observed At"},"estimate_source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Estimate Source"},"estimated_input_bytes":{"anyOf":[{"maximum":9223372036854775807,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Estimated Input Bytes"},"max_input_bytes":{"maximum":9223372036854775807,"minimum":0,"title":"Max Input Bytes","type":"integer"},"memory_mib":{"minimum":1,"title":"Memory Mib","type":"integer"},"mode":{"enum":["automatic_input","manual_override","configured_default","scheduled","replay"],"title":"Mode","type":"string"},"selected_size_class":{"title":"Selected Size Class","type":"string"}},"required":["decision_schema","mode","selected_size_class","max_input_bytes","cpu_millis","memory_mib","eligible_plan_count"],"title":"RunSizeClassDecision","type":"object"},"RunState":{"enum":["queued","running","succeeded","failed","canceling","canceled","retrying"],"title":"RunState","type":"string"},"RunTelemetrySummary":{"additionalProperties":false,"description":"Fixed-size telemetry totals; provider operation details remain in logs.","properties":{"bytes_billed":{"maximum":9223372036854775807,"minimum":0,"title":"Bytes Billed","type":"integer"},"bytes_processed":{"maximum":9223372036854775807,"minimum":0,"title":"Bytes Processed","type":"integer"},"bytes_read":{"maximum":9223372036854775807,"minimum":0,"title":"Bytes Read","type":"integer"},"bytes_written":{"maximum":9223372036854775807,"minimum":0,"title":"Bytes Written","type":"integer"},"duration_ms":{"maximum":9223372036854775807,"minimum":0,"title":"Duration Ms","type":"integer"},"execution_duration_ms":{"maximum":9223372036854775807,"minimum":0,"title":"Execution Duration Ms","type":"integer"},"operation_count":{"maximum":9223372036854775807,"minimum":0,"title":"Operation Count","type":"integer"},"queue_duration_ms":{"maximum":9223372036854775807,"minimum":0,"title":"Queue Duration Ms","type":"integer"},"retry_count":{"maximum":9223372036854775807,"minimum":0,"title":"Retry Count","type":"integer"},"rows_affected":{"maximum":9223372036854775807,"minimum":0,"title":"Rows Affected","type":"integer"},"rows_read":{"maximum":9223372036854775807,"minimum":0,"title":"Rows Read","type":"integer"},"rows_written":{"maximum":9223372036854775807,"minimum":0,"title":"Rows Written","type":"integer"},"spill_bytes":{"maximum":9223372036854775807,"minimum":0,"title":"Spill Bytes","type":"integer"}},"required":["duration_ms","operation_count","retry_count","rows_read","rows_written","rows_affected","bytes_read","bytes_written","bytes_processed","bytes_billed","queue_duration_ms","execution_duration_ms","spill_bytes"],"title":"RunTelemetrySummary","type":"object"}},"$id":"urn:dander:control:contracts:v1:run-status","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"affected":{"default":0,"minimum":0,"title":"Affected","type":"integer"},"assertions":{"default":0,"minimum":0,"title":"Assertions","type":"integer"},"assets":{"default":0,"minimum":0,"title":"Assets","type":"integer"},"can_cancel":{"default":false,"title":"Can Cancel","type":"boolean"},"can_replay":{"default":false,"title":"Can Replay","type":"boolean"},"endpoints":{"default":0,"minimum":0,"title":"Endpoints","type":"integer"},"extracted":{"default":0,"minimum":0,"title":"Extracted","type":"integer"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Failure Code"},"failure_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Failure Summary"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Finished At"},"logs_available":{"default":false,"title":"Logs Available","type":"boolean"},"models":{"default":0,"minimum":0,"title":"Models","type":"integer"},"placement":{"anyOf":[{"$ref":"#/$defs/RunPlacementDecision"},{"type":"null"}],"default":null},"repair_window":{"anyOf":[{"$ref":"#/$defs/GraphRepairWindow"},{"type":"null"}],"default":null},"result_schema":{"anyOf":[{"const":"io.dander.control.execution-result-summary/v1","type":"string"},{"type":"null"}],"default":null,"title":"Result Schema"},"run_id":{"title":"Run Id","type":"string"},"sizing":{"anyOf":[{"$ref":"#/$defs/RunSizeClassDecision"},{"type":"null"}],"default":null},"skipped":{"default":false,"title":"Skipped","type":"boolean"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Stage"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Started At"},"state":{"$ref":"#/$defs/RunState"},"telemetry":{"anyOf":[{"$ref":"#/$defs/RunTelemetrySummary"},{"type":"null"}],"default":null}},"required":["run_id","state"],"title":"RunStatusResponse","type":"object"} diff --git a/src/generated/dander-contracts/metadata.ts b/src/generated/dander-contracts/metadata.ts index 065d013..a235269 100644 --- a/src/generated/dander-contracts/metadata.ts +++ b/src/generated/dander-contracts/metadata.ts @@ -1,9 +1,11 @@ /** Generated from the exact published Dander wheel; do not edit by hand. */ export const DANDER_CONTRACT_PACKAGE = "dander-platform" as const; -export const DANDER_CONTRACT_PACKAGE_VERSION = "0.9.0rc19" as const; -export const DANDER_CONTRACT_WHEEL = "dander_platform-0.9.0rc19-py3-none-any.whl" as const; +export const DANDER_CONTRACT_PACKAGE_VERSION = "0.9.0rc34" as const; +export const DANDER_CONTRACT_WHEEL = "dander_platform-0.9.0rc34-py3-none-any.whl" as const; +export const DANDER_CONTRACT_WHEEL_URL = + "https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl" as const; export const DANDER_CONTRACT_WHEEL_SHA256 = - "8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552" as const; + "d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad" as const; export const DANDER_CONTRACT_BUNDLE_ID = "io.dander.control.contracts/v1" as const; export const DANDER_CONTRACT_BUNDLE_SHA256 = - "695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3" as const; + "a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279" as const; diff --git a/src/generated/dander-contracts/types/api-error.ts b/src/generated/dander-contracts/types/api-error.ts index 73a76ad..ad5fce8 100644 --- a/src/generated/dander-contracts/types/api-error.ts +++ b/src/generated/dander-contracts/types/api-error.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/capabilities.ts b/src/generated/dander-contracts/types/capabilities.ts index 07f8e82..521e389 100644 --- a/src/generated/dander-contracts/types/capabilities.ts +++ b/src/generated/dander-contracts/types/capabilities.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ @@ -19,9 +20,13 @@ export type Operations = ( | "graph.edit" | "graph.delete" | "graph.validate" + | "graph.change-preview" + | "graph.repair-preview" | "deployment.preview" | "run.start" | "run.read" + | "run.explain" + | "run.repair" | "run.logs" | "run.cancel" | "run.replay" diff --git a/src/generated/dander-contracts/types/connector-catalog.ts b/src/generated/dander-contracts/types/connector-catalog.ts index 9004837..0722c74 100644 --- a/src/generated/dander-contracts/types/connector-catalog.ts +++ b/src/generated/dander-contracts/types/connector-catalog.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/control-bootstrap.ts b/src/generated/dander-contracts/types/control-bootstrap.ts index feaf9e5..33ea432 100644 --- a/src/generated/dander-contracts/types/control-bootstrap.ts +++ b/src/generated/dander-contracts/types/control-bootstrap.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/deployment-preview.ts b/src/generated/dander-contracts/types/deployment-preview.ts index c46f43a..2bdbf02 100644 --- a/src/generated/dander-contracts/types/deployment-preview.ts +++ b/src/generated/dander-contracts/types/deployment-preview.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/graph-change-preview.ts b/src/generated/dander-contracts/types/graph-change-preview.ts new file mode 100644 index 0000000..7f158f8 --- /dev/null +++ b/src/generated/dander-contracts/types/graph-change-preview.ts @@ -0,0 +1,200 @@ +/** + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) + * Do not edit by hand; run `pnpm contracts:generate`. + */ + +export type AffectedOutputs = string[]; +export type BaselineContentSha256 = string; +export type CandidateContentSha256 = string; +export type Change = "added" | "removed" | "modified"; +export type Source = string; +export type Target = string; +export type ConnectionChanges = GraphConnectionChange[]; +export type CostUsd = null; +export type Explanation = string; +export type RowsWritten = null; +export type GraphPropertiesChanged = string[]; +export type Limitations = string[]; +export type AffectsData = boolean; +export type Change1 = "added" | "removed" | "modified" | "layout_only"; +export type ChangedProperties = string[]; +export type Name = string; +export type NodeId = string; +export type NodeChanges = GraphNodeChange[]; +export type Affected = boolean; +export type FieldNames = string[]; +/** + * @maxItems 4 + */ +export type Clustering = + [] | [string] | [string, string] | [string, string, string] | [string, string, string, string]; +export type CursorField = string | null; +export type BusinessKey = string[]; +export type Dataset = string; +export type Project = string | null; +export type Table = string; +export type MaxBatchRows = number; +export type Field = string | null; +/** + * The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare. + * + * A `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in + * `dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON; + * an out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately + * limited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future + * member (see `steering/02-engineering.md` on avoiding speculative generality). + * + * Attributes: + * HOUR: Hourly partitions. + * DAY: Daily partitions — the common case and BigQuery's default granularity. + * MONTH: Monthly partitions. + * YEAR: Yearly partitions. + */ +export type PartitioningType = "hour" | "day" | "month" | "year"; +export type RequirePartitionFilter = boolean; +/** + * How a writer handles declared columns absent from an existing target. + */ +export type SchemaEvolution = "strict" | "additive"; +export type Transport = "load_job" | "storage_write" | "copy"; +/** + * Supported load strategies. + * + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "WriteMode". + */ +export type WriteMode = "scd1" | "scd2" | "snapshot" | "incremental" | "replace"; +export type Effect = string; +export type Name1 = string; +export type NodeId1 = string; +export type Outputs = GraphOutputImpact[]; +export type RunOutputIds = string[]; +/** + * The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare. + * + * A `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in + * `dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON; + * an out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately + * limited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future + * member (see `steering/02-engineering.md` on avoiding speculative generality). + * + * Attributes: + * HOUR: Hourly partitions. + * DAY: Daily partitions — the common case and BigQuery's default granularity. + * MONTH: Monthly partitions. + * YEAR: Yearly partitions. + * + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "PartitioningType". + */ +export type PartitioningType1 = "hour" | "day" | "month" | "year"; +/** + * How a writer handles declared columns absent from an existing target. + * + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "SchemaEvolution". + */ +export type SchemaEvolution1 = "strict" | "additive"; + +/** + * Static changes and potential downstream effects; a run still executes all outputs. + */ +export interface GraphChangePreviewResponse { + affected_outputs: AffectedOutputs; + baseline_content_sha256: BaselineContentSha256; + candidate_content_sha256: CandidateContentSha256; + connection_changes: ConnectionChanges; + estimates?: GraphChangeEstimates; + graph_properties_changed: GraphPropertiesChanged; + limitations?: Limitations; + node_changes: NodeChanges; + outputs: Outputs; + run_output_ids: RunOutputIds; +} +/** + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "GraphConnectionChange". + */ +export interface GraphConnectionChange { + change: Change; + source: Source; + target: Target; +} +/** + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "GraphChangeEstimates". + */ +export interface GraphChangeEstimates { + cost_usd?: CostUsd; + explanation?: Explanation; + rows_written?: RowsWritten; +} +/** + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "GraphNodeChange". + */ +export interface GraphNodeChange { + affects_data: AffectsData; + change: Change1; + changed_properties?: ChangedProperties; + name: Name; + node_id: NodeId; +} +/** + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "GraphOutputImpact". + */ +export interface GraphOutputImpact { + affected: Affected; + after: GraphOutputState | null; + before: GraphOutputState | null; + effect: Effect; + name: Name1; + node_id: NodeId1; +} +/** + * Only declared output coordinates and field names, never arbitrary node configuration. + * + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "GraphOutputState". + */ +export interface GraphOutputState { + field_names: FieldNames; + writer: WriterDocument | null; +} +/** + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "WriterDocument". + */ +export interface WriterDocument { + clustering?: Clustering; + cursor_field?: CursorField; + destination: DestinationDocument; + max_batch_rows?: MaxBatchRows; + partitioning?: PartitioningDocument | null; + schema_evolution?: SchemaEvolution; + transport?: Transport; + write_mode: WriteMode; +} +/** + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "DestinationDocument". + */ +export interface DestinationDocument { + business_key?: BusinessKey; + dataset: Dataset; + project?: Project; + table: Table; +} +/** + * This interface was referenced by `GraphChangePreviewResponse`'s JSON-Schema + * via the `definition` "PartitioningDocument". + */ +export interface PartitioningDocument { + field?: Field; + granularity?: PartitioningType; + require_partition_filter?: RequirePartitionFilter; +} diff --git a/src/generated/dander-contracts/types/graph-create.ts b/src/generated/dander-contracts/types/graph-create.ts index 2e546f0..4fe334a 100644 --- a/src/generated/dander-contracts/types/graph-create.ts +++ b/src/generated/dander-contracts/types/graph-create.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/graph-page.ts b/src/generated/dander-contracts/types/graph-page.ts index 195bcab..d4e4831 100644 --- a/src/generated/dander-contracts/types/graph-page.ts +++ b/src/generated/dander-contracts/types/graph-page.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/graph-repair-preview.ts b/src/generated/dander-contracts/types/graph-repair-preview.ts new file mode 100644 index 0000000..2472723 --- /dev/null +++ b/src/generated/dander-contracts/types/graph-repair-preview.ts @@ -0,0 +1,71 @@ +/** + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) + * Do not edit by hand; run `pnpm contracts:generate`. + */ + +export type Environments = string[]; +export type EstimatedCostUsd = null; +export type EstimatedRows = null; +export type GraphContentSha256 = string; +export type Limitations = string[]; +export type BusinessKey = string[]; +export type BusinessKey1 = string[]; +export type Dataset = string; +export type Project = string | null; +export type Table = string; +export type Name = string; +export type NodeId = string; +export type PartitionField = string; +export type PartitionType = "DATE" | "TIMESTAMP"; +export type Outputs = GraphRepairOutput[]; +export type Source = "retained_raw"; +export type Summary = string; +export type EndDate = string; +export type StartDate = string; + +export interface GraphRepairPreviewResponse { + environments: Environments; + estimated_cost_usd?: EstimatedCostUsd; + estimated_rows?: EstimatedRows; + graph_content_sha256: GraphContentSha256; + limitations?: Limitations; + outputs: Outputs; + source?: Source; + summary?: Summary; + window: GraphRepairWindow; +} +/** + * This interface was referenced by `GraphRepairPreviewResponse`'s JSON-Schema + * via the `definition` "GraphRepairOutput". + */ +export interface GraphRepairOutput { + business_key: BusinessKey; + destination: DestinationDocument; + name: Name; + node_id: NodeId; + partition_field: PartitionField; + partition_type: PartitionType; +} +/** + * This interface was referenced by `GraphRepairPreviewResponse`'s JSON-Schema + * via the `definition` "DestinationDocument". + */ +export interface DestinationDocument { + business_key?: BusinessKey1; + dataset: Dataset; + project?: Project; + table: Table; +} +/** + * UTC calendar dates: start is inclusive and end is exclusive. + * + * This interface was referenced by `GraphRepairPreviewResponse`'s JSON-Schema + * via the `definition` "GraphRepairWindow". + */ +export interface GraphRepairWindow { + end_date: EndDate; + start_date: StartDate; +} diff --git a/src/generated/dander-contracts/types/graph-repair-window.ts b/src/generated/dander-contracts/types/graph-repair-window.ts new file mode 100644 index 0000000..4cd0eb8 --- /dev/null +++ b/src/generated/dander-contracts/types/graph-repair-window.ts @@ -0,0 +1,18 @@ +/** + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) + * Do not edit by hand; run `pnpm contracts:generate`. + */ + +export type EndDate = string; +export type StartDate = string; + +/** + * UTC calendar dates: start is inclusive and end is exclusive. + */ +export interface GraphRepairWindow { + end_date: EndDate; + start_date: StartDate; +} diff --git a/src/generated/dander-contracts/types/graph-resource.ts b/src/generated/dander-contracts/types/graph-resource.ts index dd06aad..55e2c1d 100644 --- a/src/generated/dander-contracts/types/graph-resource.ts +++ b/src/generated/dander-contracts/types/graph-resource.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/graph-validation.ts b/src/generated/dander-contracts/types/graph-validation.ts index 022854d..cc139de 100644 --- a/src/generated/dander-contracts/types/graph-validation.ts +++ b/src/generated/dander-contracts/types/graph-validation.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/log-page.ts b/src/generated/dander-contracts/types/log-page.ts index f169a9b..86b2d5e 100644 --- a/src/generated/dander-contracts/types/log-page.ts +++ b/src/generated/dander-contracts/types/log-page.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/mutation-result.ts b/src/generated/dander-contracts/types/mutation-result.ts index 694af31..32f50ca 100644 --- a/src/generated/dander-contracts/types/mutation-result.ts +++ b/src/generated/dander-contracts/types/mutation-result.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/operation-catalog.ts b/src/generated/dander-contracts/types/operation-catalog.ts index dee343f..22de14b 100644 --- a/src/generated/dander-contracts/types/operation-catalog.ts +++ b/src/generated/dander-contracts/types/operation-catalog.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/pipeline-graph.ts b/src/generated/dander-contracts/types/pipeline-graph.ts index 4585671..bd65f28 100644 --- a/src/generated/dander-contracts/types/pipeline-graph.ts +++ b/src/generated/dander-contracts/types/pipeline-graph.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/plugin-catalog.ts b/src/generated/dander-contracts/types/plugin-catalog.ts index 0c43ad6..7e2f7fb 100644 --- a/src/generated/dander-contracts/types/plugin-catalog.ts +++ b/src/generated/dander-contracts/types/plugin-catalog.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/project-list.ts b/src/generated/dander-contracts/types/project-list.ts index 9ef1bf7..af8fd23 100644 --- a/src/generated/dander-contracts/types/project-list.ts +++ b/src/generated/dander-contracts/types/project-list.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/run-explanation.ts b/src/generated/dander-contracts/types/run-explanation.ts new file mode 100644 index 0000000..bc48cc1 --- /dev/null +++ b/src/generated/dander-contracts/types/run-explanation.ts @@ -0,0 +1,96 @@ +/** + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) + * Do not edit by hand; run `pnpm contracts:generate`. + */ + +/** + * @maxItems 7 + */ +export type AvailableActions = + | [] + | [RunActionKind] + | [RunActionKind, RunActionKind] + | [RunActionKind, RunActionKind, RunActionKind] + | [RunActionKind, RunActionKind, RunActionKind, RunActionKind] + | [RunActionKind, RunActionKind, RunActionKind, RunActionKind, RunActionKind] + | [RunActionKind, RunActionKind, RunActionKind, RunActionKind, RunActionKind, RunActionKind] + | [ + RunActionKind, + RunActionKind, + RunActionKind, + RunActionKind, + RunActionKind, + RunActionKind, + RunActionKind, + ]; +/** + * This interface was referenced by `RunExplanationResponse`'s JSON-Schema + * via the `definition` "RunActionKind". + */ +export type RunActionKind = + "refresh" | "logs" | "replay" | "cancel" | "inspect_outputs" | "review_configuration" | "none"; +/** + * @maxItems 8 + */ +export type Caveats = + | [] + | [string] + | [string, string] + | [string, string, string] + | [string, string, string, string] + | [string, string, string, string, string] + | [string, string, string, string, string, string] + | [string, string, string, string, string, string, string] + | [string, string, string, string, string, string, string, string]; +/** + * @maxItems 8 + */ +export type Details = + | [] + | [string] + | [string, string] + | [string, string, string] + | [string, string, string, string] + | [string, string, string, string, string] + | [string, string, string, string, string, string] + | [string, string, string, string, string, string, string] + | [string, string, string, string, string, string, string, string]; +export type Label = string; +export type Reason = string; +export type ResultsAvailable = boolean; +export type RunId = string; +/** + * This interface was referenced by `RunExplanationResponse`'s JSON-Schema + * via the `definition` "RunState". + */ +export type RunState = + "queued" | "running" | "succeeded" | "failed" | "canceling" | "canceled" | "retrying"; +export type Summary = string; + +/** + * A bounded explanation derived only from the current normalized run status. + */ +export interface RunExplanationResponse { + available_actions?: AvailableActions; + caveats?: Caveats; + details?: Details; + next_action: RunExplanationAction; + results_available: ResultsAvailable; + run_id: RunId; + state: RunState; + summary: Summary; +} +/** + * One suggested next step, without performing a run mutation. + * + * This interface was referenced by `RunExplanationResponse`'s JSON-Schema + * via the `definition` "RunExplanationAction". + */ +export interface RunExplanationAction { + kind: RunActionKind; + label: Label; + reason: Reason; +} diff --git a/src/generated/dander-contracts/types/run-page.ts b/src/generated/dander-contracts/types/run-page.ts index f14c6f1..6fffe62 100644 --- a/src/generated/dander-contracts/types/run-page.ts +++ b/src/generated/dander-contracts/types/run-page.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ @@ -17,7 +18,31 @@ export type FailureSummary = string | null; export type FinishedAt = string | null; export type LogsAvailable = boolean; export type Models = number; +export type DecisionSchema = "io.dander.control.placement-decision/v1"; +export type EligiblePlanCount = number; +export type EstimatedCostMicrousd = number | null; +export type MaxCostMicrousd = number | null; +export type Mode = "automatic" | "manual_override" | "configured_default" | "scheduled" | "replay"; +export type PreferredLocality = string | null; +export type SelectedEnvironment = string; +export type SelectedLocality = string | null; +export type EndDate = string; +export type StartDate = string; +export type ResultSchema = "io.dander.control.execution-result-summary/v1" | null; export type RunId = string; +export type CpuMillis = number; +export type DecisionSchema1 = "io.dander.control.size-class-decision/v2"; +export type EligiblePlanCount1 = number; +export type EphemeralStorageMib = number | null; +export type EstimateObservedAt = string | null; +export type EstimateSource = string | null; +export type EstimatedInputBytes = number | null; +export type MaxInputBytes = number; +export type MemoryMib = number; +export type Mode1 = + "automatic_input" | "manual_override" | "configured_default" | "scheduled" | "replay"; +export type SelectedSizeClass = string; +export type Skipped = boolean; export type Stage = string | null; export type StartedAt = string | null; /** @@ -26,6 +51,19 @@ export type StartedAt = string | null; */ export type RunState = "queued" | "running" | "succeeded" | "failed" | "canceling" | "canceled" | "retrying"; +export type BytesBilled = number; +export type BytesProcessed = number; +export type BytesRead = number; +export type BytesWritten = number; +export type DurationMs = number; +export type ExecutionDurationMs = number; +export type OperationCount = number; +export type QueueDurationMs = number; +export type RetryCount = number; +export type RowsAffected = number; +export type RowsRead = number; +export type RowsWritten = number; +export type SpillBytes = number; /** * @maxItems 100 */ @@ -56,8 +94,80 @@ export interface RunStatusResponse { finished_at?: FinishedAt; logs_available?: LogsAvailable; models?: Models; + placement?: RunPlacementDecision | null; + repair_window?: GraphRepairWindow | null; + result_schema?: ResultSchema; run_id: RunId; + sizing?: RunSizeClassDecision | null; + skipped?: Skipped; stage?: Stage; started_at?: StartedAt; state: RunState; + telemetry?: RunTelemetrySummary | null; +} +/** + * Fixed-size explanation of the execution-plan selection used by Control. + * + * This interface was referenced by `RunPageResponse`'s JSON-Schema + * via the `definition` "RunPlacementDecision". + */ +export interface RunPlacementDecision { + decision_schema: DecisionSchema; + eligible_plan_count: EligiblePlanCount; + estimated_cost_microusd?: EstimatedCostMicrousd; + max_cost_microusd?: MaxCostMicrousd; + mode: Mode; + preferred_locality?: PreferredLocality; + selected_environment: SelectedEnvironment; + selected_locality?: SelectedLocality; +} +/** + * UTC calendar dates: start is inclusive and end is exclusive. + * + * This interface was referenced by `RunPageResponse`'s JSON-Schema + * via the `definition` "GraphRepairWindow". + */ +export interface GraphRepairWindow { + end_date: EndDate; + start_date: StartDate; +} +/** + * Fixed-size explanation of the selected execution resource class. + * + * This interface was referenced by `RunPageResponse`'s JSON-Schema + * via the `definition` "RunSizeClassDecision". + */ +export interface RunSizeClassDecision { + cpu_millis: CpuMillis; + decision_schema: DecisionSchema1; + eligible_plan_count: EligiblePlanCount1; + ephemeral_storage_mib?: EphemeralStorageMib; + estimate_observed_at?: EstimateObservedAt; + estimate_source?: EstimateSource; + estimated_input_bytes?: EstimatedInputBytes; + max_input_bytes: MaxInputBytes; + memory_mib: MemoryMib; + mode: Mode1; + selected_size_class: SelectedSizeClass; +} +/** + * Fixed-size telemetry totals; provider operation details remain in logs. + * + * This interface was referenced by `RunPageResponse`'s JSON-Schema + * via the `definition` "RunTelemetrySummary". + */ +export interface RunTelemetrySummary { + bytes_billed: BytesBilled; + bytes_processed: BytesProcessed; + bytes_read: BytesRead; + bytes_written: BytesWritten; + duration_ms: DurationMs; + execution_duration_ms: ExecutionDurationMs; + operation_count: OperationCount; + queue_duration_ms: QueueDurationMs; + retry_count: RetryCount; + rows_affected: RowsAffected; + rows_read: RowsRead; + rows_written: RowsWritten; + spill_bytes: SpillBytes; } diff --git a/src/generated/dander-contracts/types/run-request.ts b/src/generated/dander-contracts/types/run-request.ts index 5f99a28..9c24b04 100644 --- a/src/generated/dander-contracts/types/run-request.ts +++ b/src/generated/dander-contracts/types/run-request.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ diff --git a/src/generated/dander-contracts/types/run-status.ts b/src/generated/dander-contracts/types/run-status.ts index a29c55f..7677870 100644 --- a/src/generated/dander-contracts/types/run-status.ts +++ b/src/generated/dander-contracts/types/run-status.ts @@ -1,7 +1,8 @@ /** - * Generated from dander-platform==0.9.0rc19 (dander_platform-0.9.0rc19-py3-none-any.whl). - * Wheel SHA256: 8f1336786e46471a2048d6250008ad176ff3b62d047020872659304c7d2db552 - * Contract bundle: io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3) + * Generated from dander-platform==0.9.0rc34 (dander_platform-0.9.0rc34-py3-none-any.whl). + * Published wheel: https://github.com/harrisonoconnorhover/dander/releases/download/v0.9.0rc34/dander_platform-0.9.0rc34-py3-none-any.whl + * Wheel SHA256: d37c1d91c15cca9ce3d080af6dec384f7cd9cbc521dea253e10dc44772d35bad + * Contract bundle: io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279) * Do not edit by hand; run `pnpm contracts:generate`. */ @@ -17,7 +18,31 @@ export type FailureSummary = string | null; export type FinishedAt = string | null; export type LogsAvailable = boolean; export type Models = number; +export type DecisionSchema = "io.dander.control.placement-decision/v1"; +export type EligiblePlanCount = number; +export type EstimatedCostMicrousd = number | null; +export type MaxCostMicrousd = number | null; +export type Mode = "automatic" | "manual_override" | "configured_default" | "scheduled" | "replay"; +export type PreferredLocality = string | null; +export type SelectedEnvironment = string; +export type SelectedLocality = string | null; +export type EndDate = string; +export type StartDate = string; +export type ResultSchema = "io.dander.control.execution-result-summary/v1" | null; export type RunId = string; +export type CpuMillis = number; +export type DecisionSchema1 = "io.dander.control.size-class-decision/v2"; +export type EligiblePlanCount1 = number; +export type EphemeralStorageMib = number | null; +export type EstimateObservedAt = string | null; +export type EstimateSource = string | null; +export type EstimatedInputBytes = number | null; +export type MaxInputBytes = number; +export type MemoryMib = number; +export type Mode1 = + "automatic_input" | "manual_override" | "configured_default" | "scheduled" | "replay"; +export type SelectedSizeClass = string; +export type Skipped = boolean; export type Stage = string | null; export type StartedAt = string | null; /** @@ -26,6 +51,19 @@ export type StartedAt = string | null; */ export type RunState = "queued" | "running" | "succeeded" | "failed" | "canceling" | "canceled" | "retrying"; +export type BytesBilled = number; +export type BytesProcessed = number; +export type BytesRead = number; +export type BytesWritten = number; +export type DurationMs = number; +export type ExecutionDurationMs = number; +export type OperationCount = number; +export type QueueDurationMs = number; +export type RetryCount = number; +export type RowsAffected = number; +export type RowsRead = number; +export type RowsWritten = number; +export type SpillBytes = number; export interface RunStatusResponse { affected?: Affected; @@ -40,8 +78,80 @@ export interface RunStatusResponse { finished_at?: FinishedAt; logs_available?: LogsAvailable; models?: Models; + placement?: RunPlacementDecision | null; + repair_window?: GraphRepairWindow | null; + result_schema?: ResultSchema; run_id: RunId; + sizing?: RunSizeClassDecision | null; + skipped?: Skipped; stage?: Stage; started_at?: StartedAt; state: RunState; + telemetry?: RunTelemetrySummary | null; +} +/** + * Fixed-size explanation of the execution-plan selection used by Control. + * + * This interface was referenced by `RunStatusResponse`'s JSON-Schema + * via the `definition` "RunPlacementDecision". + */ +export interface RunPlacementDecision { + decision_schema: DecisionSchema; + eligible_plan_count: EligiblePlanCount; + estimated_cost_microusd?: EstimatedCostMicrousd; + max_cost_microusd?: MaxCostMicrousd; + mode: Mode; + preferred_locality?: PreferredLocality; + selected_environment: SelectedEnvironment; + selected_locality?: SelectedLocality; +} +/** + * UTC calendar dates: start is inclusive and end is exclusive. + * + * This interface was referenced by `RunStatusResponse`'s JSON-Schema + * via the `definition` "GraphRepairWindow". + */ +export interface GraphRepairWindow { + end_date: EndDate; + start_date: StartDate; +} +/** + * Fixed-size explanation of the selected execution resource class. + * + * This interface was referenced by `RunStatusResponse`'s JSON-Schema + * via the `definition` "RunSizeClassDecision". + */ +export interface RunSizeClassDecision { + cpu_millis: CpuMillis; + decision_schema: DecisionSchema1; + eligible_plan_count: EligiblePlanCount1; + ephemeral_storage_mib?: EphemeralStorageMib; + estimate_observed_at?: EstimateObservedAt; + estimate_source?: EstimateSource; + estimated_input_bytes?: EstimatedInputBytes; + max_input_bytes: MaxInputBytes; + memory_mib: MemoryMib; + mode: Mode1; + selected_size_class: SelectedSizeClass; +} +/** + * Fixed-size telemetry totals; provider operation details remain in logs. + * + * This interface was referenced by `RunStatusResponse`'s JSON-Schema + * via the `definition` "RunTelemetrySummary". + */ +export interface RunTelemetrySummary { + bytes_billed: BytesBilled; + bytes_processed: BytesProcessed; + bytes_read: BytesRead; + bytes_written: BytesWritten; + duration_ms: DurationMs; + execution_duration_ms: ExecutionDurationMs; + operation_count: OperationCount; + queue_duration_ms: QueueDurationMs; + retry_count: RetryCount; + rows_affected: RowsAffected; + rows_read: RowsRead; + rows_written: RowsWritten; + spill_bytes: SpillBytes; } diff --git a/src/generated/dander-contracts/validators.d.ts b/src/generated/dander-contracts/validators.d.ts index 112011f..501cbc6 100644 --- a/src/generated/dander-contracts/validators.d.ts +++ b/src/generated/dander-contracts/validators.d.ts @@ -4,8 +4,11 @@ import type { CapabilitiesResponse } from "./types/capabilities"; import type { ConnectorCatalogResponse } from "./types/connector-catalog"; import type { ControlBootstrapDescriptor } from "./types/control-bootstrap"; import type { DeploymentPreviewResponse } from "./types/deployment-preview"; +import type { GraphChangePreviewResponse } from "./types/graph-change-preview"; import type { GraphCreateRequest } from "./types/graph-create"; import type { GraphPageResponse } from "./types/graph-page"; +import type { GraphRepairPreviewResponse } from "./types/graph-repair-preview"; +import type { GraphRepairWindow } from "./types/graph-repair-window"; import type { GraphResourceResponse } from "./types/graph-resource"; import type { GraphValidationResponse } from "./types/graph-validation"; import type { LogPageResponse } from "./types/log-page"; @@ -14,6 +17,7 @@ import type { OperationCatalogResponse } from "./types/operation-catalog"; import type { PipelineGraphDocument } from "./types/pipeline-graph"; import type { PluginCatalogResponse } from "./types/plugin-catalog"; import type { ProjectListResponse } from "./types/project-list"; +import type { RunExplanationResponse } from "./types/run-explanation"; import type { RunPageResponse } from "./types/run-page"; import type { RunRequest } from "./types/run-request"; import type { RunStatusResponse } from "./types/run-status"; @@ -40,8 +44,11 @@ export const validateCapabilities: ValidateFunction; export const validateConnectorCatalog: ValidateFunction; export const validateControlBootstrap: ValidateFunction; export const validateDeploymentPreview: ValidateFunction; +export const validateGraphChangePreview: ValidateFunction; export const validateGraphCreate: ValidateFunction; export const validateGraphPage: ValidateFunction; +export const validateGraphRepairPreview: ValidateFunction; +export const validateGraphRepairWindow: ValidateFunction; export const validateGraphResource: ValidateFunction; export const validateGraphValidation: ValidateFunction; export const validateLogPage: ValidateFunction; @@ -50,6 +57,7 @@ export const validateOperationCatalog: ValidateFunction; export const validatePluginCatalog: ValidateFunction; export const validateProjectList: ValidateFunction; +export const validateRunExplanation: ValidateFunction; export const validateRunPage: ValidateFunction; export const validateRunRequest: ValidateFunction; export const validateRunStatus: ValidateFunction; diff --git a/src/generated/dander-contracts/validators.js b/src/generated/dander-contracts/validators.js index 4d0a548..0ddebc8 100644 --- a/src/generated/dander-contracts/validators.js +++ b/src/generated/dander-contracts/validators.js @@ -1,5 +1,5 @@ -// Generated from dander-platform==0.9.0rc19; do not edit. -// Contract bundle io.dander.control.contracts/v1 (695791dfda6058d68453d9e146146d5cdda1439d86c40a7ec249cb4e14a12be3). +// Generated from dander-platform==0.9.0rc34; do not edit. +// Contract bundle io.dander.control.contracts/v1 (a28316b7e5158e0520fe1c24d59885083714f47b67aa396892fa9742060fb279). "use strict"; export const validateApiError = validate20; const schema31 = { @@ -532,9 +532,13 @@ const schema34 = { "graph.edit", "graph.delete", "graph.validate", + "graph.change-preview", + "graph.repair-preview", "deployment.preview", "run.start", "run.read", + "run.explain", + "run.repair", "run.logs", "run.cancel", "run.replay", @@ -1194,9 +1198,13 @@ function validate23( data13 === "graph.edit" || data13 === "graph.delete" || data13 === "graph.validate" || + data13 === "graph.change-preview" || + data13 === "graph.repair-preview" || data13 === "deployment.preview" || data13 === "run.start" || data13 === "run.read" || + data13 === "run.explain" || + data13 === "run.repair" || data13 === "run.logs" || data13 === "run.cancel" || data13 === "run.replay" @@ -3141,116 +3149,9 @@ function validate30( } validate30.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateGraphCreate = validate31; +export const validateGraphChangePreview = validate31; const schema48 = { $defs: { - AcceptedValuesFieldTest: { - additionalProperties: false, - properties: { - field: { default: null, title: "Field", type: "null" }, - kind: { const: "accepted_values", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { default: null, title: "To", type: "null" }, - values: { - items: { $ref: "#/$defs/JsonValue" }, - minItems: 1, - title: "Values", - type: "array", - }, - }, - required: ["kind", "values"], - title: "AcceptedValuesFieldTest", - type: "object", - }, - ComparisonOperator: { - description: "Closed comparison grammar for ``filter_rows``.", - enum: ["eq", "ne", "gt", "gte", "lt", "lte", "in", "not_in", "is_null", "is_not_null"], - title: "ComparisonOperator", - type: "string", - }, - ConstantTransformation: { - additionalProperties: false, - properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { $ref: "#/$defs/JsonValue" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "constant", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind", "constant"], - title: "ConstantTransformation", - type: "object", - }, - CursorStrategyDocument: { - additionalProperties: false, - properties: { - field: { minLength: 1, title: "Field", type: "string" }, - kind: { enum: ["timestamp", "sequence", "opaque_token"], title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/JsonObject" }, - }, - required: ["field", "kind"], - title: "CursorStrategyDocument", - type: "object", - }, - CustomCodeTransformation: { - additionalProperties: false, - properties: { - arguments: { $ref: "#/$defs/JsonObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { - pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$", - title: "Function", - type: "string", - }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "custom_code", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind", "function"], - title: "CustomCodeTransformation", - type: "object", - }, - DefaultValueOperation: { - additionalProperties: false, - properties: { - kind: { const: "default_value", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/DefaultValueParamsDocument" }, - }, - required: ["kind", "params"], - title: "DefaultValueOperation", - type: "object", - }, - DefaultValueParamsDocument: { - additionalProperties: false, - properties: { - default: { - anyOf: [{ type: "string" }, { type: "integer" }, { type: "number" }, { type: "boolean" }], - title: "Default", - }, - field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, - }, - required: ["field", "default"], - title: "DefaultValueParamsDocument", - type: "object", - }, - DependencyTrigger: { - additionalProperties: false, - properties: { - cron: { default: null, title: "Cron", type: "null" }, - depends_on: { items: { type: "string" }, minItems: 1, title: "Depends On", type: "array" }, - event: { default: null, title: "Event", type: "null" }, - kind: { const: "dependency", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind", "depends_on"], - title: "DependencyTrigger", - type: "object", - }, DestinationDocument: { additionalProperties: false, properties: { @@ -3263,311 +3164,80 @@ const schema48 = { title: "DestinationDocument", type: "object", }, - DirectTransformation: { - additionalProperties: false, - properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "direct", default: "direct", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - title: "DirectTransformation", - type: "object", - }, - EdgeDocument: { - additionalProperties: false, - properties: { - from: { title: "From", type: "string" }, - join: { anyOf: [{ $ref: "#/$defs/JoinDocument" }, { type: "null" }], default: null }, - mappings: { - items: { $ref: "#/$defs/FieldMappingDocument" }, - title: "Mappings", - type: "array", - }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { title: "To", type: "string" }, - }, - required: ["from", "to"], - title: "EdgeDocument", - type: "object", - }, - EmptyObject: { - additionalProperties: false, - description: "A JSON object that must contain no properties.", - properties: {}, - title: "EmptyObject", - type: "object", - }, - ExecutableJoinKeyDocument: { - additionalProperties: false, - properties: { - left: { minLength: 1, title: "Left", type: "string" }, - right: { minLength: 1, title: "Right", type: "string" }, - }, - required: ["left", "right"], - title: "ExecutableJoinKeyDocument", - type: "object", - }, - ExecutableJoinType: { - description: "BigQuery join kinds supported by an executable transform node.", - enum: ["inner", "left", "right", "full"], - title: "ExecutableJoinType", - type: "string", - }, - ExpressionTransformation: { - additionalProperties: false, - properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { minLength: 1, title: "Expression", type: "string" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "expression", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind", "expression"], - title: "ExpressionTransformation", - type: "object", - }, - ExtensionNodeDocument: { - additionalProperties: false, - not: { required: ["config", "params"] }, - properties: { - config: { $ref: "#/$defs/JsonObject" }, - cursor: { - anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], - default: null, - }, - fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, - id: { title: "Id", type: "string" }, - name: { title: "Name", type: "string" }, - params: { - anyOf: [{ $ref: "#/$defs/JsonObject" }, { type: "null" }], - default: null, - deprecated: true, - "x-dander-canonical-name": "config", - }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - type: { $ref: "#/$defs/ExtensionNodeType" }, - visual: { - anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], - default: null, - }, - }, - required: ["id", "type", "name"], - title: "ExtensionNodeDocument", - type: "object", - }, - ExtensionNodeType: { not: { enum: ["source", "transform", "target"] }, type: "string" }, - FieldConditionDocument: { + GraphChangeEstimates: { additionalProperties: false, properties: { - field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, - op: { $ref: "#/$defs/ComparisonOperator" }, - value: { - anyOf: [ - { type: "string" }, - { type: "integer" }, - { type: "number" }, - { type: "boolean" }, - { - items: { - anyOf: [ - { type: "string" }, - { type: "integer" }, - { type: "number" }, - { type: "boolean" }, - ], - }, - type: "array", - }, - { type: "null" }, - ], - default: null, - title: "Value", + cost_usd: { default: null, title: "Cost Usd", type: "null" }, + explanation: { + default: + "Unknown: this preview reads graph definitions only, not source or warehouse data.", + title: "Explanation", + type: "string", }, + rows_written: { default: null, title: "Rows Written", type: "null" }, }, - required: ["field", "op"], - title: "FieldConditionDocument", + title: "GraphChangeEstimates", type: "object", }, - FieldMappingDocument: { + GraphConnectionChange: { additionalProperties: false, properties: { - metadata: { $ref: "#/$defs/JsonObject" }, - source: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Source" }, + change: { enum: ["added", "removed", "modified"], title: "Change", type: "string" }, + source: { title: "Source", type: "string" }, target: { title: "Target", type: "string" }, - transformation: { - anyOf: [{ $ref: "#/$defs/TransformationDocument" }, { type: "null" }], - default: null, - }, - }, - required: ["target"], - title: "FieldMappingDocument", - type: "object", - }, - FieldTestDocument: { - anyOf: [ - { $ref: "#/$defs/NotNullFieldTest" }, - { $ref: "#/$defs/UniqueFieldTest" }, - { $ref: "#/$defs/AcceptedValuesFieldTest" }, - { $ref: "#/$defs/RelationshipsFieldTest" }, - ], - }, - FilterRowsOperation: { - additionalProperties: false, - properties: { - kind: { const: "filter_rows", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/FilterRowsParamsDocument" }, - }, - required: ["kind", "params"], - title: "FilterRowsOperation", - type: "object", - }, - FilterRowsParamsDocument: { - additionalProperties: false, - properties: { - conditions: { - items: { $ref: "#/$defs/FieldConditionDocument" }, - minItems: 1, - title: "Conditions", - type: "array", - }, - logic: { $ref: "#/$defs/MatchLogic", default: "all" }, - }, - required: ["conditions"], - title: "FilterRowsParamsDocument", - type: "object", - }, - GraphNodeDocument: { - anyOf: [ - { $ref: "#/$defs/SourceNodeDocument" }, - { $ref: "#/$defs/TransformNodeDocument" }, - { $ref: "#/$defs/TargetNodeDocument" }, - { $ref: "#/$defs/ExtensionNodeDocument" }, - ], - }, - HttpMethod: { - description: - "The closed set of HTTP methods a `RequestSpec` may declare.\n\nA `StrEnum` (matching the `TransformationKind`/`JoinType` convention in `graph.py`) so callers\nget a named, importable type that still serializes to/from its plain string value stably in\nYAML and JSON. An out-of-set value fails validation with a clear error at the Pydantic\nboundary. `HEAD`/`OPTIONS` are intentionally omitted (no source currently needs them); extend\nby adding a member later without touching callers.\n\nAttributes:\n GET: Retrieve a resource. The default method (a simple GET needs no explicit spec).\n POST: Create a resource / submit a query body.\n PUT: Replace a resource.\n PATCH: Partially update a resource.\n DELETE: Remove a resource.", - enum: ["GET", "POST", "PUT", "PATCH", "DELETE"], - title: "HttpMethod", - type: "string", - }, - JoinDocument: { - additionalProperties: false, - properties: { - keys: { - items: { $ref: "#/$defs/JoinKeyPairDocument" }, - minItems: 1, - title: "Keys", - type: "array", - }, - metadata: { $ref: "#/$defs/JsonObject" }, - type: { enum: ["inner", "left", "right", "full"], title: "Type", type: "string" }, - }, - required: ["type", "keys"], - title: "JoinDocument", - type: "object", - }, - JoinKeyPairDocument: { - additionalProperties: false, - properties: { - left: { title: "Left", type: "string" }, - right: { title: "Right", type: "string" }, - }, - required: ["left", "right"], - title: "JoinKeyPairDocument", - type: "object", - }, - JsonObject: { additionalProperties: { $ref: "#/$defs/JsonValue" }, type: "object" }, - JsonValue: {}, - ManualTrigger: { - additionalProperties: false, - properties: { - cron: { default: null, title: "Cron", type: "null" }, - depends_on: { items: { type: "string" }, maxItems: 0, title: "Depends On", type: "array" }, - event: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Event" }, - kind: { const: "manual", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, }, - required: ["kind"], - title: "ManualTrigger", + required: ["source", "target", "change"], + title: "GraphConnectionChange", type: "object", }, - MatchLogic: { - description: "How a filter's flat condition list combines.", - enum: ["all", "any"], - title: "MatchLogic", - type: "string", - }, - NodeFieldDocument: { + GraphNodeChange: { additionalProperties: false, properties: { - cast_to: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Cast To" }, - description: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Description", + affects_data: { title: "Affects Data", type: "boolean" }, + change: { + enum: ["added", "removed", "modified", "layout_only"], + title: "Change", + type: "string", }, - extensions: { - items: { $ref: "#/$defs/ProviderExtension" }, - title: "Extensions", + changed_properties: { + default: [], + items: { type: "string" }, + title: "Changed Properties", type: "array", }, - metadata: { $ref: "#/$defs/JsonObject" }, name: { title: "Name", type: "string" }, - nullable: { default: true, title: "Nullable", type: "boolean" }, - tests: { items: { $ref: "#/$defs/FieldTestDocument" }, title: "Tests", type: "array" }, - type: { title: "Type", type: "string" }, + node_id: { title: "Node Id", type: "string" }, }, - required: ["name", "type"], - title: "NodeFieldDocument", + required: ["node_id", "name", "change", "affects_data"], + title: "GraphNodeChange", type: "object", }, - NodeVisualDocument: { + GraphOutputImpact: { additionalProperties: false, properties: { - color: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Color" }, - icon: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Icon" }, - position: { - anyOf: [{ $ref: "#/$defs/PositionDocument" }, { type: "null" }], - default: null, - }, + affected: { title: "Affected", type: "boolean" }, + after: { anyOf: [{ $ref: "#/$defs/GraphOutputState" }, { type: "null" }] }, + before: { anyOf: [{ $ref: "#/$defs/GraphOutputState" }, { type: "null" }] }, + effect: { title: "Effect", type: "string" }, + name: { title: "Name", type: "string" }, + node_id: { title: "Node Id", type: "string" }, }, - title: "NodeVisualDocument", + required: ["node_id", "name", "affected", "before", "after", "effect"], + title: "GraphOutputImpact", type: "object", }, - NotNullFieldTest: { + GraphOutputState: { additionalProperties: false, + description: + "Only declared output coordinates and field names, never arbitrary node configuration.", properties: { - field: { default: null, title: "Field", type: "null" }, - kind: { const: "not_null", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { default: null, title: "To", type: "null" }, - values: { - items: { $ref: "#/$defs/JsonValue" }, - maxItems: 0, - title: "Values", - type: "array", - }, + field_names: { items: { type: "string" }, title: "Field Names", type: "array" }, + writer: { anyOf: [{ $ref: "#/$defs/WriterDocument" }, { type: "null" }] }, }, - required: ["kind"], - title: "NotNullFieldTest", + required: ["writer", "field_names"], + title: "GraphOutputState", type: "object", }, - OperationDocument: { - anyOf: [ - { $ref: "#/$defs/TruncateStringOperation" }, - { $ref: "#/$defs/TrimWhitespaceOperation" }, - { $ref: "#/$defs/DefaultValueOperation" }, - { $ref: "#/$defs/FilterRowsOperation" }, - ], - }, PartitioningDocument: { additionalProperties: false, properties: { @@ -3589,428 +3259,265 @@ const schema48 = { title: "PartitioningType", type: "string", }, - PipelineGraphDocument: { - additionalProperties: false, - description: - "Canonical graph transport whose construction reuses Dander semantic validation.", - properties: { - edges: { items: { $ref: "#/$defs/EdgeDocument" }, title: "Edges", type: "array" }, - name: { title: "Name", type: "string" }, - nodes: { items: { $ref: "#/$defs/GraphNodeDocument" }, title: "Nodes", type: "array" }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - }, - required: ["name"], - title: "PipelineGraphDocument", - type: "object", - }, - PositionDocument: { - additionalProperties: false, - properties: { x: { title: "X", type: "number" }, y: { title: "Y", type: "number" } }, - required: ["x", "y"], - title: "PositionDocument", - type: "object", - }, - ProviderExtension: { - additionalProperties: false, - description: "One deterministic provider-specific schema annotation, never a credential.", - properties: { - name: { title: "Name", type: "string" }, - provider: { title: "Provider", type: "string" }, - value: { - anyOf: [{ type: "string" }, { type: "integer" }, { type: "number" }, { type: "boolean" }], - title: "Value", - }, - }, - required: ["provider", "name", "value"], - title: "ProviderExtension", - type: "object", - }, - RelationshipsFieldTest: { - additionalProperties: false, - properties: { - field: { minLength: 1, title: "Field", type: "string" }, - kind: { const: "relationships", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { minLength: 1, title: "To", type: "string" }, - values: { - items: { $ref: "#/$defs/JsonValue" }, - maxItems: 0, - title: "Values", - type: "array", - }, - }, - required: ["kind", "to", "field"], - title: "RelationshipsFieldTest", - type: "object", - }, - RequestSpecDocument: { - additionalProperties: false, - properties: { - body: { - anyOf: [{ $ref: "#/$defs/JsonObject" }, { type: "string" }, { type: "null" }], - default: null, - title: "Body", - }, - headers: { additionalProperties: { type: "string" }, title: "Headers", type: "object" }, - method: { $ref: "#/$defs/HttpMethod", default: "GET" }, - query_params: { - additionalProperties: { type: "string" }, - title: "Query Params", - type: "object", - }, - }, - title: "RequestSpecDocument", - type: "object", - }, - ScheduleTrigger: { - additionalProperties: false, - properties: { - cron: { minLength: 1, title: "Cron", type: "string" }, - depends_on: { items: { type: "string" }, maxItems: 0, title: "Depends On", type: "array" }, - event: { default: null, title: "Event", type: "null" }, - kind: { const: "schedule", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind", "cron"], - title: "ScheduleTrigger", - type: "object", - }, SchemaEvolution: { description: "How a writer handles declared columns absent from an existing target.", enum: ["strict", "additive"], title: "SchemaEvolution", type: "string", }, - SourceNodeConfigDocument: { - additionalProperties: { $ref: "#/$defs/JsonValue" }, + WriteMode: { + description: "Supported load strategies.", + enum: ["scd1", "scd2", "snapshot", "incremental", "replace"], + title: "WriteMode", + type: "string", + }, + WriterDocument: { + additionalProperties: false, properties: { - connector: { + clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, + cursor_field: { anyOf: [{ type: "string" }, { type: "null" }], default: null, - title: "Connector", + title: "Cursor Field", }, - endpoint: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Endpoint", + destination: { $ref: "#/$defs/DestinationDocument" }, + max_batch_rows: { + default: 10000, + exclusiveMinimum: 0, + maximum: 100000, + title: "Max Batch Rows", + type: "integer", }, - request: { - anyOf: [{ $ref: "#/$defs/RequestSpecDocument" }, { type: "null" }], + partitioning: { + anyOf: [{ $ref: "#/$defs/PartitioningDocument" }, { type: "null" }], default: null, }, + schema_evolution: { $ref: "#/$defs/SchemaEvolution", default: "strict" }, + transport: { + default: "load_job", + enum: ["load_job", "storage_write", "copy"], + title: "Transport", + type: "string", + }, + write_mode: { $ref: "#/$defs/WriteMode" }, }, - title: "SourceNodeConfigDocument", + required: ["write_mode", "destination"], + title: "WriterDocument", type: "object", }, - SourceNodeDocument: { - additionalProperties: false, - not: { required: ["config", "params"] }, - properties: { - config: { $ref: "#/$defs/SourceNodeConfigDocument" }, - cursor: { - anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], - default: null, - }, - fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, - id: { title: "Id", type: "string" }, - name: { title: "Name", type: "string" }, - params: { - anyOf: [{ $ref: "#/$defs/SourceNodeConfigDocument" }, { type: "null" }], - default: null, - deprecated: true, - "x-dander-canonical-name": "config", - }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - type: { const: "source", title: "Type", type: "string" }, - visual: { - anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], - default: null, - }, - }, - required: ["id", "type", "name"], - title: "SourceNodeDocument", - type: "object", - }, - TargetNodeConfigDocument: { - additionalProperties: { $ref: "#/$defs/JsonValue" }, - properties: { - writer: { anyOf: [{ $ref: "#/$defs/WriterDocument" }, { type: "null" }], default: null }, - }, - title: "TargetNodeConfigDocument", - type: "object", - }, - TargetNodeDocument: { - additionalProperties: false, - not: { required: ["config", "params"] }, - properties: { - config: { $ref: "#/$defs/TargetNodeConfigDocument" }, - cursor: { - anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], - default: null, - }, - fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, - id: { title: "Id", type: "string" }, - name: { title: "Name", type: "string" }, - params: { - anyOf: [{ $ref: "#/$defs/TargetNodeConfigDocument" }, { type: "null" }], - default: null, - deprecated: true, - "x-dander-canonical-name": "config", - }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - type: { const: "target", title: "Type", type: "string" }, - visual: { - anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], - default: null, - }, - }, - required: ["id", "type", "name"], - title: "TargetNodeDocument", - type: "object", - }, - TransformJoinDocument: { - additionalProperties: false, - properties: { - keys: { - items: { $ref: "#/$defs/ExecutableJoinKeyDocument" }, - minItems: 1, - title: "Keys", - type: "array", - }, - left_input: { minLength: 1, title: "Left Input", type: "string" }, - right_input: { minLength: 1, title: "Right Input", type: "string" }, - type: { $ref: "#/$defs/ExecutableJoinType" }, - }, - required: ["left_input", "right_input", "type", "keys"], - title: "TransformJoinDocument", - type: "object", + }, + $id: "urn:dander:control:contracts:v1:graph-change-preview", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + description: "Static changes and potential downstream effects; a run still executes all outputs.", + properties: { + affected_outputs: { items: { type: "string" }, title: "Affected Outputs", type: "array" }, + baseline_content_sha256: { + pattern: "^[0-9a-f]{64}$", + title: "Baseline Content Sha256", + type: "string", }, - TransformNodeConfigDocument: { - additionalProperties: { $ref: "#/$defs/JsonValue" }, - properties: { - join: { - anyOf: [{ $ref: "#/$defs/TransformJoinDocument" }, { type: "null" }], - default: null, - }, - operations: { - items: { $ref: "#/$defs/OperationDocument" }, - title: "Operations", - type: "array", - }, - }, - title: "TransformNodeConfigDocument", - type: "object", + candidate_content_sha256: { + pattern: "^[0-9a-f]{64}$", + title: "Candidate Content Sha256", + type: "string", }, - TransformNodeDocument: { - additionalProperties: false, - not: { required: ["config", "params"] }, - properties: { - config: { $ref: "#/$defs/TransformNodeConfigDocument" }, - cursor: { - anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], - default: null, - }, - fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, - id: { title: "Id", type: "string" }, - name: { title: "Name", type: "string" }, - params: { - anyOf: [{ $ref: "#/$defs/TransformNodeConfigDocument" }, { type: "null" }], - default: null, - deprecated: true, - "x-dander-canonical-name": "config", - }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - type: { const: "transform", title: "Type", type: "string" }, - visual: { - anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], - default: null, - }, - }, - required: ["id", "type", "name"], - title: "TransformNodeDocument", - type: "object", + connection_changes: { + items: { $ref: "#/$defs/GraphConnectionChange" }, + title: "Connection Changes", + type: "array", }, - TransformationDocument: { - anyOf: [ - { $ref: "#/$defs/DirectTransformation" }, - { $ref: "#/$defs/ExpressionTransformation" }, - { $ref: "#/$defs/ConstantTransformation" }, - { $ref: "#/$defs/CustomCodeTransformation" }, - ], + estimates: { $ref: "#/$defs/GraphChangeEstimates" }, + graph_properties_changed: { + items: { type: "string" }, + title: "Graph Properties Changed", + type: "array", }, - TriggerDocument: { - anyOf: [ - { $ref: "#/$defs/ScheduleTrigger" }, - { $ref: "#/$defs/DependencyTrigger" }, - { $ref: "#/$defs/ManualTrigger" }, + limitations: { + default: [ + "Static impact within this graph only; external consumers are not inspected.", + "Affected outputs describe changed definitions, not a selection of outputs to execute. A full run writes every configured output, including unchanged outputs.", + "Declared write behavior is not proof that this graph can execute. Runtime validation and provider checks still apply; the current graph runtime supports replace targets.", + "Saving a graph does not write or delete warehouse data.", ], + items: { type: "string" }, + title: "Limitations", + type: "array", }, - TrimWhitespaceOperation: { - additionalProperties: false, - properties: { - kind: { const: "trim_whitespace", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/TrimWhitespaceParamsDocument" }, - }, - required: ["kind", "params"], - title: "TrimWhitespaceOperation", - type: "object", - }, - TrimWhitespaceParamsDocument: { - additionalProperties: false, - properties: { - field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, - }, - required: ["field"], - title: "TrimWhitespaceParamsDocument", - type: "object", - }, - TruncateStringOperation: { - additionalProperties: false, - properties: { - kind: { const: "truncate_string", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/TruncateStringParamsDocument" }, - }, - required: ["kind", "params"], - title: "TruncateStringOperation", - type: "object", - }, - TruncateStringParamsDocument: { - additionalProperties: false, - properties: { - field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, - max_length: { minimum: 0, title: "Max Length", type: "integer" }, - }, - required: ["field", "max_length"], - title: "TruncateStringParamsDocument", - type: "object", - }, - UniqueFieldTest: { - additionalProperties: false, - properties: { - field: { default: null, title: "Field", type: "null" }, - kind: { const: "unique", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { default: null, title: "To", type: "null" }, - values: { - items: { $ref: "#/$defs/JsonValue" }, - maxItems: 0, - title: "Values", - type: "array", - }, - }, - required: ["kind"], - title: "UniqueFieldTest", - type: "object", + node_changes: { + items: { $ref: "#/$defs/GraphNodeChange" }, + title: "Node Changes", + type: "array", }, - WriteMode: { - description: "Supported load strategies.", - enum: ["scd1", "scd2", "snapshot", "incremental", "replace"], - title: "WriteMode", + outputs: { items: { $ref: "#/$defs/GraphOutputImpact" }, title: "Outputs", type: "array" }, + run_output_ids: { items: { type: "string" }, title: "Run Output Ids", type: "array" }, + }, + required: [ + "baseline_content_sha256", + "candidate_content_sha256", + "graph_properties_changed", + "node_changes", + "connection_changes", + "affected_outputs", + "outputs", + "run_output_ids", + ], + title: "GraphChangePreviewResponse", + type: "object", +}; +const schema49 = { + additionalProperties: false, + properties: { + change: { enum: ["added", "removed", "modified"], title: "Change", type: "string" }, + source: { title: "Source", type: "string" }, + target: { title: "Target", type: "string" }, + }, + required: ["source", "target", "change"], + title: "GraphConnectionChange", + type: "object", +}; +const schema50 = { + additionalProperties: false, + properties: { + cost_usd: { default: null, title: "Cost Usd", type: "null" }, + explanation: { + default: "Unknown: this preview reads graph definitions only, not source or warehouse data.", + title: "Explanation", type: "string", }, - WriterDocument: { - additionalProperties: false, - properties: { - clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, - cursor_field: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Cursor Field", - }, - destination: { $ref: "#/$defs/DestinationDocument" }, - max_batch_rows: { - default: 10000, - exclusiveMinimum: 0, - maximum: 100000, - title: "Max Batch Rows", - type: "integer", - }, - partitioning: { - anyOf: [{ $ref: "#/$defs/PartitioningDocument" }, { type: "null" }], - default: null, - }, - schema_evolution: { $ref: "#/$defs/SchemaEvolution", default: "strict" }, - transport: { - default: "load_job", - enum: ["load_job", "storage_write", "copy"], - title: "Transport", - type: "string", - }, - write_mode: { $ref: "#/$defs/WriteMode" }, - }, - required: ["write_mode", "destination"], - title: "WriterDocument", - type: "object", - }, + rows_written: { default: null, title: "Rows Written", type: "null" }, }, - $id: "urn:dander:control:contracts:v1:graph-create", - $schema: "https://json-schema.org/draft/2020-12/schema", + title: "GraphChangeEstimates", + type: "object", +}; +const schema51 = { additionalProperties: false, - description: "Create one named graph through the hosted project collection route.", properties: { - document: { $ref: "#/$defs/PipelineGraphDocument" }, - graph: { title: "Graph", type: "string" }, + affects_data: { title: "Affects Data", type: "boolean" }, + change: { + enum: ["added", "removed", "modified", "layout_only"], + title: "Change", + type: "string", + }, + changed_properties: { + default: [], + items: { type: "string" }, + title: "Changed Properties", + type: "array", + }, + name: { title: "Name", type: "string" }, + node_id: { title: "Node Id", type: "string" }, }, - required: ["graph", "document"], - title: "GraphCreateRequest", + required: ["node_id", "name", "change", "affects_data"], + title: "GraphNodeChange", type: "object", }; -const schema49 = { +const schema52 = { additionalProperties: false, - description: "Canonical graph transport whose construction reuses Dander semantic validation.", properties: { - edges: { items: { $ref: "#/$defs/EdgeDocument" }, title: "Edges", type: "array" }, + affected: { title: "Affected", type: "boolean" }, + after: { anyOf: [{ $ref: "#/$defs/GraphOutputState" }, { type: "null" }] }, + before: { anyOf: [{ $ref: "#/$defs/GraphOutputState" }, { type: "null" }] }, + effect: { title: "Effect", type: "string" }, name: { title: "Name", type: "string" }, - nodes: { items: { $ref: "#/$defs/GraphNodeDocument" }, title: "Nodes", type: "array" }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + node_id: { title: "Node Id", type: "string" }, }, - required: ["name"], - title: "PipelineGraphDocument", + required: ["node_id", "name", "affected", "before", "after", "effect"], + title: "GraphOutputImpact", type: "object", }; -const schema50 = { +const schema53 = { additionalProperties: false, + description: + "Only declared output coordinates and field names, never arbitrary node configuration.", properties: { - from: { title: "From", type: "string" }, - join: { anyOf: [{ $ref: "#/$defs/JoinDocument" }, { type: "null" }], default: null }, - mappings: { items: { $ref: "#/$defs/FieldMappingDocument" }, title: "Mappings", type: "array" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { title: "To", type: "string" }, + field_names: { items: { type: "string" }, title: "Field Names", type: "array" }, + writer: { anyOf: [{ $ref: "#/$defs/WriterDocument" }, { type: "null" }] }, }, - required: ["from", "to"], - title: "EdgeDocument", + required: ["writer", "field_names"], + title: "GraphOutputState", type: "object", }; -const schema51 = { +const schema54 = { additionalProperties: false, properties: { - keys: { - items: { $ref: "#/$defs/JoinKeyPairDocument" }, - minItems: 1, - title: "Keys", - type: "array", + clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, + cursor_field: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Cursor Field", }, - metadata: { $ref: "#/$defs/JsonObject" }, - type: { enum: ["inner", "left", "right", "full"], title: "Type", type: "string" }, + destination: { $ref: "#/$defs/DestinationDocument" }, + max_batch_rows: { + default: 10000, + exclusiveMinimum: 0, + maximum: 100000, + title: "Max Batch Rows", + type: "integer", + }, + partitioning: { + anyOf: [{ $ref: "#/$defs/PartitioningDocument" }, { type: "null" }], + default: null, + }, + schema_evolution: { $ref: "#/$defs/SchemaEvolution", default: "strict" }, + transport: { + default: "load_job", + enum: ["load_job", "storage_write", "copy"], + title: "Transport", + type: "string", + }, + write_mode: { $ref: "#/$defs/WriteMode" }, }, - required: ["type", "keys"], - title: "JoinDocument", + required: ["write_mode", "destination"], + title: "WriterDocument", type: "object", }; -const schema52 = { +const schema55 = { additionalProperties: false, properties: { - left: { title: "Left", type: "string" }, - right: { title: "Right", type: "string" }, + business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, + dataset: { minLength: 1, title: "Dataset", type: "string" }, + project: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Project" }, + table: { minLength: 1, title: "Table", type: "string" }, }, - required: ["left", "right"], - title: "JoinKeyPairDocument", + required: ["dataset", "table"], + title: "DestinationDocument", + type: "object", +}; +const schema58 = { + description: "How a writer handles declared columns absent from an existing target.", + enum: ["strict", "additive"], + title: "SchemaEvolution", + type: "string", +}; +const schema59 = { + description: "Supported load strategies.", + enum: ["scd1", "scd2", "snapshot", "incremental", "replace"], + title: "WriteMode", + type: "string", +}; +const func3 = require("ajv/dist/runtime/ucs2length").default; +const schema56 = { + additionalProperties: false, + properties: { + field: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Field" }, + granularity: { $ref: "#/$defs/PartitioningType", default: "day" }, + require_partition_filter: { + default: false, + title: "Require Partition Filter", + type: "boolean", + }, + }, + title: "PartitioningDocument", type: "object", }; -const schema53 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, type: "object" }; -const schema54 = {}; +const schema57 = { + description: + "The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare.\n\nA `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in\n`dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON;\nan out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately\nlimited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future\nmember (see `steering/02-engineering.md` on avoiding speculative generality).\n\nAttributes:\n HOUR: Hourly partitions.\n DAY: Daily partitions — the common case and BigQuery's default granularity.\n MONTH: Monthly partitions.\n YEAR: Yearly partitions.", + enum: ["hour", "day", "month", "year"], + title: "PartitioningType", + type: "string", +}; function validate35( data, @@ -4026,8 +3533,140 @@ function validate35( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { + for (const key0 in data) { + if (!(key0 === "field" || key0 === "granularity" || key0 === "require_partition_filter")) { + const err0 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + } + if (data.field !== undefined) { + let data0 = data.field; + const _errs3 = errors; + let valid1 = false; + const _errs4 = errors; + if (typeof data0 !== "string") { + const err1 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + var _valid0 = _errs4 === errors; + valid1 = valid1 || _valid0; + const _errs6 = errors; + if (data0 !== null) { + const err2 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + var _valid0 = _errs6 === errors; + valid1 = valid1 || _valid0; + if (!valid1) { + const err3 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } else { + errors = _errs3; + if (vErrors !== null) { + if (_errs3) { + vErrors.length = _errs3; + } else { + vErrors = null; + } + } + } + } + if (data.granularity !== undefined) { + let data1 = data.granularity; + if (typeof data1 !== "string") { + const err4 = { + instancePath: instancePath + "/granularity", + schemaPath: "#/$defs/PartitioningType/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (!(data1 === "hour" || data1 === "day" || data1 === "month" || data1 === "year")) { + const err5 = { + instancePath: instancePath + "/granularity", + schemaPath: "#/$defs/PartitioningType/enum", + keyword: "enum", + params: { allowedValues: schema57.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.require_partition_filter !== undefined) { + if (typeof data.require_partition_filter !== "boolean") { + const err6 = { + instancePath: instancePath + "/require_partition_filter", + schemaPath: "#/properties/require_partition_filter/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } } else { - const err0 = { + const err7 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -4035,9 +3674,9 @@ function validate35( message: "must be object", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err7]; } else { - vErrors.push(err0); + vErrors.push(err7); } errors++; } @@ -4060,13 +3699,13 @@ function validate34( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.type === undefined) { + if (data.write_mode === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "type" }, - message: "must have required property '" + "type" + "'", + params: { missingProperty: "write_mode" }, + message: "must have required property '" + "write_mode" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -4075,13 +3714,13 @@ function validate34( } errors++; } - if (data.keys === undefined) { + if (data.destination === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "keys" }, - message: "must have required property '" + "keys" + "'", + params: { missingProperty: "destination" }, + message: "must have required property '" + "destination" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -4091,7 +3730,16 @@ function validate34( errors++; } for (const key0 in data) { - if (!(key0 === "keys" || key0 === "metadata" || key0 === "type")) { + if (!( + key0 === "clustering" || + key0 === "cursor_field" || + key0 === "destination" || + key0 === "max_batch_rows" || + key0 === "partitioning" || + key0 === "schema_evolution" || + key0 === "transport" || + key0 === "write_mode" + )) { const err2 = { instancePath, schemaPath: "#/additionalProperties", @@ -4107,16 +3755,16 @@ function validate34( errors++; } } - if (data.keys !== undefined) { - let data0 = data.keys; + if (data.clustering !== undefined) { + let data0 = data.clustering; if (Array.isArray(data0)) { - if (data0.length < 1) { + if (data0.length > 4) { const err3 = { - instancePath: instancePath + "/keys", - schemaPath: "#/properties/keys/minItems", - keyword: "minItems", - params: { limit: 1 }, - message: "must NOT have fewer than 1 items", + instancePath: instancePath + "/clustering", + schemaPath: "#/properties/clustering/maxItems", + keyword: "maxItems", + params: { limit: 4 }, + message: "must NOT have more than 4 items", }; if (vErrors === null) { vErrors = [err3]; @@ -4127,433 +3775,404 @@ function validate34( } const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { - let data1 = data0[i0]; - if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { - if (data1.left === undefined) { - const err4 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/JoinKeyPairDocument/required", - keyword: "required", - params: { missingProperty: "left" }, - message: "must have required property '" + "left" + "'", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - if (data1.right === undefined) { - const err5 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/JoinKeyPairDocument/required", - keyword: "required", - params: { missingProperty: "right" }, - message: "must have required property '" + "right" + "'", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - for (const key1 in data1) { - if (!(key1 === "left" || key1 === "right")) { - const err6 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/JoinKeyPairDocument/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - } - if (data1.left !== undefined) { - if (typeof data1.left !== "string") { - const err7 = { - instancePath: instancePath + "/keys/" + i0 + "/left", - schemaPath: "#/$defs/JoinKeyPairDocument/properties/left/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - } - if (data1.right !== undefined) { - if (typeof data1.right !== "string") { - const err8 = { - instancePath: instancePath + "/keys/" + i0 + "/right", - schemaPath: "#/$defs/JoinKeyPairDocument/properties/right/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } - } else { - const err9 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/JoinKeyPairDocument/type", + if (typeof data0[i0] !== "string") { + const err4 = { + instancePath: instancePath + "/clustering/" + i0, + schemaPath: "#/properties/clustering/items/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err4]; } else { - vErrors.push(err9); + vErrors.push(err4); } errors++; } } } else { - const err10 = { - instancePath: instancePath + "/keys", - schemaPath: "#/properties/keys/type", + const err5 = { + instancePath: instancePath + "/clustering", + schemaPath: "#/properties/clustering/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err5]; } else { - vErrors.push(err10); + vErrors.push(err5); } errors++; } } - if (data.metadata !== undefined) { - if ( - !validate35(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); - errors = vErrors.length; - } - } - if (data.type !== undefined) { - let data5 = data.type; - if (typeof data5 !== "string") { - const err11 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/type", + if (data.cursor_field !== undefined) { + let data2 = data.cursor_field; + const _errs7 = errors; + let valid3 = false; + const _errs8 = errors; + if (typeof data2 !== "string") { + const err6 = { + instancePath: instancePath + "/cursor_field", + schemaPath: "#/properties/cursor_field/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err6]; } else { - vErrors.push(err11); + vErrors.push(err6); } errors++; } - if (!(data5 === "inner" || data5 === "left" || data5 === "right" || data5 === "full")) { - const err12 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/enum", - keyword: "enum", - params: { allowedValues: schema51.properties.type.enum }, - message: "must be equal to one of the allowed values", + var _valid0 = _errs8 === errors; + valid3 = valid3 || _valid0; + const _errs10 = errors; + if (data2 !== null) { + const err7 = { + instancePath: instancePath + "/cursor_field", + schemaPath: "#/properties/cursor_field/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err12]; + vErrors = [err7]; } else { - vErrors.push(err12); + vErrors.push(err7); } errors++; } - } - } else { - const err13 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err13]; - } else { - vErrors.push(err13); - } - errors++; - } - validate34.errors = vErrors; - return errors === 0; -} -validate34.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema55 = { - additionalProperties: false, - properties: { - metadata: { $ref: "#/$defs/JsonObject" }, - source: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Source" }, - target: { title: "Target", type: "string" }, - transformation: { - anyOf: [{ $ref: "#/$defs/TransformationDocument" }, { type: "null" }], - default: null, - }, - }, - required: ["target"], - title: "FieldMappingDocument", - type: "object", -}; -const schema56 = { - anyOf: [ - { $ref: "#/$defs/DirectTransformation" }, - { $ref: "#/$defs/ExpressionTransformation" }, - { $ref: "#/$defs/ConstantTransformation" }, - { $ref: "#/$defs/CustomCodeTransformation" }, - ], -}; -const schema57 = { - additionalProperties: false, - properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "direct", default: "direct", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - title: "DirectTransformation", - type: "object", -}; -const schema58 = { - additionalProperties: false, - description: "A JSON object that must contain no properties.", - properties: {}, - title: "EmptyObject", - type: "object", -}; - -function validate41( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate41.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - for (const key0 in data) { - if (!( - key0 === "arguments" || - key0 === "constant" || - key0 === "expression" || - key0 === "function" || - key0 === "inputs" || - key0 === "kind" || - key0 === "metadata" - )) { - const err0 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + var _valid0 = _errs10 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err8 = { + instancePath: instancePath + "/cursor_field", + schemaPath: "#/properties/cursor_field/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err8]; } else { - vErrors.push(err0); + vErrors.push(err8); } errors++; + } else { + errors = _errs7; + if (vErrors !== null) { + if (_errs7) { + vErrors.length = _errs7; + } else { + vErrors = null; + } + } } } - if (data.arguments !== undefined) { - let data0 = data.arguments; - if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { - for (const key1 in data0) { - const err1 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", + if (data.destination !== undefined) { + let data3 = data.destination; + if (data3 && typeof data3 == "object" && !Array.isArray(data3)) { + if (data3.dataset === undefined) { + const err9 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/required", + keyword: "required", + params: { missingProperty: "dataset" }, + message: "must have required property '" + "dataset" + "'", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err9]; } else { - vErrors.push(err1); + vErrors.push(err9); } errors++; } - } else { - const err2 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - } - if (data.constant !== undefined) { - if (data.constant !== null) { - const err3 = { - instancePath: instancePath + "/constant", - schemaPath: "#/properties/constant/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); + if (data3.table === undefined) { + const err10 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/required", + keyword: "required", + params: { missingProperty: "table" }, + message: "must have required property '" + "table" + "'", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; } - errors++; - } - } - if (data.expression !== undefined) { - if (data.expression !== null) { - const err4 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); + for (const key1 in data3) { + if (!( + key1 === "business_key" || + key1 === "dataset" || + key1 === "project" || + key1 === "table" + )) { + const err11 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } } - errors++; - } - } - if (data.function !== undefined) { - if (data.function !== null) { - const err5 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); + if (data3.business_key !== undefined) { + let data4 = data3.business_key; + if (Array.isArray(data4)) { + const len1 = data4.length; + for (let i1 = 0; i1 < len1; i1++) { + if (typeof data4[i1] !== "string") { + const err12 = { + instancePath: instancePath + "/destination/business_key/" + i1, + schemaPath: "#/$defs/DestinationDocument/properties/business_key/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + } else { + const err13 = { + instancePath: instancePath + "/destination/business_key", + schemaPath: "#/$defs/DestinationDocument/properties/business_key/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } } - errors++; - } - } - if (data.inputs !== undefined) { - let data4 = data.inputs; - if (Array.isArray(data4)) { - const len0 = data4.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data4[i0] !== "string") { - const err6 = { - instancePath: instancePath + "/inputs/" + i0, - schemaPath: "#/properties/inputs/items/type", + if (data3.dataset !== undefined) { + let data6 = data3.dataset; + if (typeof data6 === "string") { + if (func3(data6) < 1) { + const err14 = { + instancePath: instancePath + "/destination/dataset", + schemaPath: "#/$defs/DestinationDocument/properties/dataset/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } + } else { + const err15 = { + instancePath: instancePath + "/destination/dataset", + schemaPath: "#/$defs/DestinationDocument/properties/dataset/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err15]; } else { - vErrors.push(err6); + vErrors.push(err15); } errors++; } } - } else { - const err7 = { - instancePath: instancePath + "/inputs", - schemaPath: "#/properties/inputs/type", + if (data3.project !== undefined) { + let data7 = data3.project; + const _errs23 = errors; + let valid8 = false; + const _errs24 = errors; + if (typeof data7 !== "string") { + const err16 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + var _valid1 = _errs24 === errors; + valid8 = valid8 || _valid1; + const _errs26 = errors; + if (data7 !== null) { + const err17 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + var _valid1 = _errs26 === errors; + valid8 = valid8 || _valid1; + if (!valid8) { + const err18 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } else { + errors = _errs23; + if (vErrors !== null) { + if (_errs23) { + vErrors.length = _errs23; + } else { + vErrors = null; + } + } + } + } + if (data3.table !== undefined) { + let data8 = data3.table; + if (typeof data8 === "string") { + if (func3(data8) < 1) { + const err19 = { + instancePath: instancePath + "/destination/table", + schemaPath: "#/$defs/DestinationDocument/properties/table/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } + } else { + const err20 = { + instancePath: instancePath + "/destination/table", + schemaPath: "#/$defs/DestinationDocument/properties/table/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); + } + errors++; + } + } + } else { + const err21 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err21]; } else { - vErrors.push(err7); + vErrors.push(err21); } errors++; } } - if (data.kind !== undefined) { - let data6 = data.kind; - if (typeof data6 !== "string") { - const err8 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + if (data.max_batch_rows !== undefined) { + let data9 = data.max_batch_rows; + if (!(typeof data9 == "number" && !(data9 % 1) && !isNaN(data9) && isFinite(data9))) { + const err22 = { + instancePath: instancePath + "/max_batch_rows", + schemaPath: "#/properties/max_batch_rows/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err22]; } else { - vErrors.push(err8); + vErrors.push(err22); } errors++; } - if ("direct" !== data6) { - const err9 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "direct" }, - message: "must be equal to constant", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); + if (typeof data9 == "number" && isFinite(data9)) { + if (data9 > 100000 || isNaN(data9)) { + const err23 = { + instancePath: instancePath + "/max_batch_rows", + schemaPath: "#/properties/max_batch_rows/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 100000 }, + message: "must be <= 100000", + }; + if (vErrors === null) { + vErrors = [err23]; + } else { + vErrors.push(err23); + } + errors++; + } + if (data9 <= 0 || isNaN(data9)) { + const err24 = { + instancePath: instancePath + "/max_batch_rows", + schemaPath: "#/properties/max_batch_rows/exclusiveMinimum", + keyword: "exclusiveMinimum", + params: { comparison: ">", limit: 0 }, + message: "must be > 0", + }; + if (vErrors === null) { + vErrors = [err24]; + } else { + vErrors.push(err24); + } + errors++; } - errors++; } } - if (data.metadata !== undefined) { + if (data.partitioning !== undefined) { + let data10 = data.partitioning; + const _errs33 = errors; + let valid9 = false; + const _errs34 = errors; if ( - !validate35(data.metadata, { - instancePath: instancePath + "/metadata", + !validate35(data10, { + instancePath: instancePath + "/partitioning", parentData: data, - parentDataProperty: "metadata", + parentDataProperty: "partitioning", rootData, dynamicAnchors, }) @@ -4561,9 +4180,158 @@ function validate41( vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); errors = vErrors.length; } + var _valid2 = _errs34 === errors; + valid9 = valid9 || _valid2; + const _errs35 = errors; + if (data10 !== null) { + const err25 = { + instancePath: instancePath + "/partitioning", + schemaPath: "#/properties/partitioning/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err25]; + } else { + vErrors.push(err25); + } + errors++; + } + var _valid2 = _errs35 === errors; + valid9 = valid9 || _valid2; + if (!valid9) { + const err26 = { + instancePath: instancePath + "/partitioning", + schemaPath: "#/properties/partitioning/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err26]; + } else { + vErrors.push(err26); + } + errors++; + } else { + errors = _errs33; + if (vErrors !== null) { + if (_errs33) { + vErrors.length = _errs33; + } else { + vErrors = null; + } + } + } + } + if (data.schema_evolution !== undefined) { + let data11 = data.schema_evolution; + if (typeof data11 !== "string") { + const err27 = { + instancePath: instancePath + "/schema_evolution", + schemaPath: "#/$defs/SchemaEvolution/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err27]; + } else { + vErrors.push(err27); + } + errors++; + } + if (!(data11 === "strict" || data11 === "additive")) { + const err28 = { + instancePath: instancePath + "/schema_evolution", + schemaPath: "#/$defs/SchemaEvolution/enum", + keyword: "enum", + params: { allowedValues: schema58.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err28]; + } else { + vErrors.push(err28); + } + errors++; + } + } + if (data.transport !== undefined) { + let data12 = data.transport; + if (typeof data12 !== "string") { + const err29 = { + instancePath: instancePath + "/transport", + schemaPath: "#/properties/transport/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err29]; + } else { + vErrors.push(err29); + } + errors++; + } + if (!(data12 === "load_job" || data12 === "storage_write" || data12 === "copy")) { + const err30 = { + instancePath: instancePath + "/transport", + schemaPath: "#/properties/transport/enum", + keyword: "enum", + params: { allowedValues: schema54.properties.transport.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err30]; + } else { + vErrors.push(err30); + } + errors++; + } + } + if (data.write_mode !== undefined) { + let data13 = data.write_mode; + if (typeof data13 !== "string") { + const err31 = { + instancePath: instancePath + "/write_mode", + schemaPath: "#/$defs/WriteMode/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err31]; + } else { + vErrors.push(err31); + } + errors++; + } + if (!( + data13 === "scd1" || + data13 === "scd2" || + data13 === "snapshot" || + data13 === "incremental" || + data13 === "replace" + )) { + const err32 = { + instancePath: instancePath + "/write_mode", + schemaPath: "#/$defs/WriteMode/enum", + keyword: "enum", + params: { allowedValues: schema59.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err32]; + } else { + vErrors.push(err32); + } + errors++; + } } } else { - const err10 = { + const err33 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -4571,41 +4339,24 @@ function validate41( message: "must be object", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err33]; } else { - vErrors.push(err10); + vErrors.push(err33); } errors++; } - validate41.errors = vErrors; + validate34.errors = vErrors; return errors === 0; } -validate41.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema59 = { - additionalProperties: false, - properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { minLength: 1, title: "Expression", type: "string" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "expression", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind", "expression"], - title: "ExpressionTransformation", - type: "object", -}; -const func2 = require("ajv/dist/runtime/ucs2length").default; +validate34.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate44( +function validate33( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate44.evaluated; + const evaluated0 = validate33.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -4613,13 +4364,13 @@ function validate44( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { + if (data.writer === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", + params: { missingProperty: "writer" }, + message: "must have required property '" + "writer" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -4628,13 +4379,13 @@ function validate44( } errors++; } - if (data.expression === undefined) { + if (data.field_names === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "expression" }, - message: "must have required property '" + "expression" + "'", + params: { missingProperty: "field_names" }, + message: "must have required property '" + "field_names" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -4644,15 +4395,7 @@ function validate44( errors++; } for (const key0 in data) { - if (!( - key0 === "arguments" || - key0 === "constant" || - key0 === "expression" || - key0 === "function" || - key0 === "inputs" || - key0 === "kind" || - key0 === "metadata" - )) { + if (!(key0 === "field_names" || key0 === "writer")) { const err2 = { instancePath, schemaPath: "#/additionalProperties", @@ -4668,31 +4411,34 @@ function validate44( errors++; } } - if (data.arguments !== undefined) { - let data0 = data.arguments; - if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { - for (const key1 in data0) { - const err3 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); + if (data.field_names !== undefined) { + let data0 = data.field_names; + if (Array.isArray(data0)) { + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data0[i0] !== "string") { + const err3 = { + instancePath: instancePath + "/field_names/" + i0, + schemaPath: "#/properties/field_names/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; } - errors++; } } else { const err4 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/type", + instancePath: instancePath + "/field_names", + schemaPath: "#/properties/field_names/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { vErrors = [err4]; @@ -4702,11 +4448,30 @@ function validate44( errors++; } } - if (data.constant !== undefined) { - if (data.constant !== null) { + if (data.writer !== undefined) { + let data2 = data.writer; + const _errs7 = errors; + let valid3 = false; + const _errs8 = errors; + if ( + !validate34(data2, { + instancePath: instancePath + "/writer", + parentData: data, + parentDataProperty: "writer", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate34.errors : vErrors.concat(validate34.errors); + errors = vErrors.length; + } + var _valid0 = _errs8 === errors; + valid3 = valid3 || _valid0; + const _errs9 = errors; + if (data2 !== null) { const err5 = { - instancePath: instancePath + "/constant", - schemaPath: "#/properties/constant/type", + instancePath: instancePath + "/writer", + schemaPath: "#/properties/writer/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", @@ -4718,144 +4483,35 @@ function validate44( } errors++; } - } - if (data.expression !== undefined) { - let data2 = data.expression; - if (typeof data2 === "string") { - if (func2(data2) < 1) { - const err6 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - } else { - const err7 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", + var _valid0 = _errs9 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err6 = { + instancePath: instancePath + "/writer", + schemaPath: "#/properties/writer/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err6]; } else { - vErrors.push(err7); + vErrors.push(err6); } errors++; - } - } - if (data.function !== undefined) { - if (data.function !== null) { - const err8 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); + } else { + errors = _errs7; + if (vErrors !== null) { + if (_errs7) { + vErrors.length = _errs7; + } else { + vErrors = null; + } } - errors++; - } - } - if (data.inputs !== undefined) { - let data4 = data.inputs; - if (Array.isArray(data4)) { - const len0 = data4.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data4[i0] !== "string") { - const err9 = { - instancePath: instancePath + "/inputs/" + i0, - schemaPath: "#/properties/inputs/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } - } else { - const err10 = { - instancePath: instancePath + "/inputs", - schemaPath: "#/properties/inputs/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", - }; - if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - } - if (data.kind !== undefined) { - let data6 = data.kind; - if (typeof data6 !== "string") { - const err11 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - if ("expression" !== data6) { - const err12 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "expression" }, - message: "must be equal to constant", - }; - if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; - } - } - if (data.metadata !== undefined) { - if ( - !validate35(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); - errors = vErrors.length; } } } else { - const err13 = { + const err7 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -4863,40 +4519,24 @@ function validate44( message: "must be object", }; if (vErrors === null) { - vErrors = [err13]; + vErrors = [err7]; } else { - vErrors.push(err13); + vErrors.push(err7); } errors++; } - validate44.errors = vErrors; + validate33.errors = vErrors; return errors === 0; } -validate44.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema61 = { - additionalProperties: false, - properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { $ref: "#/$defs/JsonValue" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "constant", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind", "constant"], - title: "ConstantTransformation", - type: "object", -}; +validate33.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate47( +function validate32( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate47.evaluated; + const evaluated0 = validate32.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -4904,13 +4544,13 @@ function validate47( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { + if (data.node_id === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", + params: { missingProperty: "node_id" }, + message: "must have required property '" + "node_id" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -4919,13 +4559,13 @@ function validate47( } errors++; } - if (data.constant === undefined) { + if (data.name === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "constant" }, - message: "must have required property '" + "constant" + "'", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -4934,17 +4574,76 @@ function validate47( } errors++; } + if (data.affected === undefined) { + const err2 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "affected" }, + message: "must have required property '" + "affected" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + if (data.before === undefined) { + const err3 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "before" }, + message: "must have required property '" + "before" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + if (data.after === undefined) { + const err4 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "after" }, + message: "must have required property '" + "after" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (data.effect === undefined) { + const err5 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "effect" }, + message: "must have required property '" + "effect" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } for (const key0 in data) { if (!( - key0 === "arguments" || - key0 === "constant" || - key0 === "expression" || - key0 === "function" || - key0 === "inputs" || - key0 === "kind" || - key0 === "metadata" + key0 === "affected" || + key0 === "after" || + key0 === "before" || + key0 === "effect" || + key0 === "name" || + key0 === "node_id" )) { - const err2 = { + const err6 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -4952,167 +4651,207 @@ function validate47( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err6]; } else { - vErrors.push(err2); + vErrors.push(err6); } errors++; } } - if (data.arguments !== undefined) { - let data0 = data.arguments; - if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { - for (const key1 in data0) { - const err3 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - } else { - const err4 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/type", + if (data.affected !== undefined) { + if (typeof data.affected !== "boolean") { + const err7 = { + instancePath: instancePath + "/affected", + schemaPath: "#/properties/affected/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "boolean" }, + message: "must be boolean", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err7]; } else { - vErrors.push(err4); + vErrors.push(err7); } errors++; } } - if (data.expression !== undefined) { - if (data.expression !== null) { - const err5 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/type", + if (data.after !== undefined) { + let data1 = data.after; + const _errs5 = errors; + let valid1 = false; + const _errs6 = errors; + if ( + !validate33(data1, { + instancePath: instancePath + "/after", + parentData: data, + parentDataProperty: "after", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate33.errors : vErrors.concat(validate33.errors); + errors = vErrors.length; + } + var _valid0 = _errs6 === errors; + valid1 = valid1 || _valid0; + const _errs7 = errors; + if (data1 !== null) { + const err8 = { + instancePath: instancePath + "/after", + schemaPath: "#/properties/after/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err8]; } else { - vErrors.push(err5); + vErrors.push(err8); + } + errors++; + } + var _valid0 = _errs7 === errors; + valid1 = valid1 || _valid0; + if (!valid1) { + const err9 = { + instancePath: instancePath + "/after", + schemaPath: "#/properties/after/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); } errors++; + } else { + errors = _errs5; + if (vErrors !== null) { + if (_errs5) { + vErrors.length = _errs5; + } else { + vErrors = null; + } + } } } - if (data.function !== undefined) { - if (data.function !== null) { - const err6 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/type", + if (data.before !== undefined) { + let data2 = data.before; + const _errs10 = errors; + let valid2 = false; + const _errs11 = errors; + if ( + !validate33(data2, { + instancePath: instancePath + "/before", + parentData: data, + parentDataProperty: "before", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate33.errors : vErrors.concat(validate33.errors); + errors = vErrors.length; + } + var _valid1 = _errs11 === errors; + valid2 = valid2 || _valid1; + const _errs12 = errors; + if (data2 !== null) { + const err10 = { + instancePath: instancePath + "/before", + schemaPath: "#/properties/before/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err10]; } else { - vErrors.push(err6); + vErrors.push(err10); } errors++; } - } - if (data.inputs !== undefined) { - let data4 = data.inputs; - if (Array.isArray(data4)) { - const len0 = data4.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data4[i0] !== "string") { - const err7 = { - instancePath: instancePath + "/inputs/" + i0, - schemaPath: "#/properties/inputs/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } + var _valid1 = _errs12 === errors; + valid2 = valid2 || _valid1; + if (!valid2) { + const err11 = { + instancePath: instancePath + "/before", + schemaPath: "#/properties/before/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); } + errors++; } else { - const err8 = { - instancePath: instancePath + "/inputs", - schemaPath: "#/properties/inputs/type", + errors = _errs10; + if (vErrors !== null) { + if (_errs10) { + vErrors.length = _errs10; + } else { + vErrors = null; + } + } + } + } + if (data.effect !== undefined) { + if (typeof data.effect !== "string") { + const err12 = { + instancePath: instancePath + "/effect", + schemaPath: "#/properties/effect/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err12]; } else { - vErrors.push(err8); + vErrors.push(err12); } errors++; } } - if (data.kind !== undefined) { - let data6 = data.kind; - if (typeof data6 !== "string") { - const err9 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + if (data.name !== undefined) { + if (typeof data.name !== "string") { + const err13 = { + instancePath: instancePath + "/name", + schemaPath: "#/properties/name/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err13]; } else { - vErrors.push(err9); + vErrors.push(err13); } errors++; } - if ("constant" !== data6) { - const err10 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "constant" }, - message: "must be equal to constant", + } + if (data.node_id !== undefined) { + if (typeof data.node_id !== "string") { + const err14 = { + instancePath: instancePath + "/node_id", + schemaPath: "#/properties/node_id/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err14]; } else { - vErrors.push(err10); + vErrors.push(err14); } errors++; } } - if (data.metadata !== undefined) { - if ( - !validate35(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); - errors = vErrors.length; - } - } } else { - const err11 = { + const err15 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -5120,45 +4859,24 @@ function validate47( message: "must be object", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err15]; } else { - vErrors.push(err11); + vErrors.push(err15); } errors++; } - validate47.errors = vErrors; + validate32.errors = vErrors; return errors === 0; } -validate47.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema64 = { - additionalProperties: false, - properties: { - arguments: { $ref: "#/$defs/JsonObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { - pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$", - title: "Function", - type: "string", - }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "custom_code", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind", "function"], - title: "CustomCodeTransformation", - type: "object", -}; -const pattern7 = new RegExp("^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$", "u"); +validate32.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate50( +function validate31( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { - let vErrors = null; + /*# sourceURL="urn:dander:control:contracts:v1:graph-change-preview" */ let vErrors = null; let errors = 0; - const evaluated0 = validate50.evaluated; + const evaluated0 = validate31.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -5166,13 +4884,13 @@ function validate50( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { + if (data.baseline_content_sha256 === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", + params: { missingProperty: "baseline_content_sha256" }, + message: "must have required property '" + "baseline_content_sha256" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -5181,13 +4899,13 @@ function validate50( } errors++; } - if (data.function === undefined) { + if (data.candidate_content_sha256 === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "function" }, - message: "must have required property '" + "function" + "'", + params: { missingProperty: "candidate_content_sha256" }, + message: "must have required property '" + "candidate_content_sha256" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -5196,17 +4914,99 @@ function validate50( } errors++; } + if (data.graph_properties_changed === undefined) { + const err2 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "graph_properties_changed" }, + message: "must have required property '" + "graph_properties_changed" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + if (data.node_changes === undefined) { + const err3 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "node_changes" }, + message: "must have required property '" + "node_changes" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + if (data.connection_changes === undefined) { + const err4 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "connection_changes" }, + message: "must have required property '" + "connection_changes" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (data.affected_outputs === undefined) { + const err5 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "affected_outputs" }, + message: "must have required property '" + "affected_outputs" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + if (data.outputs === undefined) { + const err6 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "outputs" }, + message: "must have required property '" + "outputs" + "'", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + if (data.run_output_ids === undefined) { + const err7 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "run_output_ids" }, + message: "must have required property '" + "run_output_ids" + "'", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } for (const key0 in data) { - if (!( - key0 === "arguments" || - key0 === "constant" || - key0 === "expression" || - key0 === "function" || - key0 === "inputs" || - key0 === "kind" || - key0 === "metadata" - )) { - const err2 = { + if (!func1.call(schema48.properties, key0)) { + const err8 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -5214,182 +5014,770 @@ function validate50( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err8]; } else { - vErrors.push(err2); + vErrors.push(err8); } errors++; } } - if (data.arguments !== undefined) { - if ( - !validate35(data.arguments, { - instancePath: instancePath + "/arguments", - parentData: data, - parentDataProperty: "arguments", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); - errors = vErrors.length; - } - } - if (data.constant !== undefined) { - if (data.constant !== null) { - const err3 = { - instancePath: instancePath + "/constant", - schemaPath: "#/properties/constant/type", + if (data.affected_outputs !== undefined) { + let data0 = data.affected_outputs; + if (Array.isArray(data0)) { + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data0[i0] !== "string") { + const err9 = { + instancePath: instancePath + "/affected_outputs/" + i0, + schemaPath: "#/properties/affected_outputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + } else { + const err10 = { + instancePath: instancePath + "/affected_outputs", + schemaPath: "#/properties/affected_outputs/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err10]; } else { - vErrors.push(err3); + vErrors.push(err10); } errors++; } } - if (data.expression !== undefined) { - if (data.expression !== null) { - const err4 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/type", + if (data.baseline_content_sha256 !== undefined) { + let data2 = data.baseline_content_sha256; + if (typeof data2 === "string") { + if (!pattern4.test(data2)) { + const err11 = { + instancePath: instancePath + "/baseline_content_sha256", + schemaPath: "#/properties/baseline_content_sha256/pattern", + keyword: "pattern", + params: { pattern: "^[0-9a-f]{64}$" }, + message: 'must match pattern "' + "^[0-9a-f]{64}$" + '"', + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + } else { + const err12 = { + instancePath: instancePath + "/baseline_content_sha256", + schemaPath: "#/properties/baseline_content_sha256/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err12]; } else { - vErrors.push(err4); + vErrors.push(err12); } errors++; } } - if (data.function !== undefined) { - let data3 = data.function; + if (data.candidate_content_sha256 !== undefined) { + let data3 = data.candidate_content_sha256; if (typeof data3 === "string") { - if (!pattern7.test(data3)) { - const err5 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/pattern", + if (!pattern4.test(data3)) { + const err13 = { + instancePath: instancePath + "/candidate_content_sha256", + schemaPath: "#/properties/candidate_content_sha256/pattern", keyword: "pattern", - params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" }, - message: - 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + '"', + params: { pattern: "^[0-9a-f]{64}$" }, + message: 'must match pattern "' + "^[0-9a-f]{64}$" + '"', }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err13]; } else { - vErrors.push(err5); + vErrors.push(err13); } errors++; } } else { - const err6 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/type", + const err14 = { + instancePath: instancePath + "/candidate_content_sha256", + schemaPath: "#/properties/candidate_content_sha256/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err14]; } else { - vErrors.push(err6); + vErrors.push(err14); } errors++; } } - if (data.inputs !== undefined) { - let data4 = data.inputs; + if (data.connection_changes !== undefined) { + let data4 = data.connection_changes; if (Array.isArray(data4)) { - const len0 = data4.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data4[i0] !== "string") { - const err7 = { - instancePath: instancePath + "/inputs/" + i0, - schemaPath: "#/properties/inputs/items/type", + const len1 = data4.length; + for (let i1 = 0; i1 < len1; i1++) { + let data5 = data4[i1]; + if (data5 && typeof data5 == "object" && !Array.isArray(data5)) { + if (data5.source === undefined) { + const err15 = { + instancePath: instancePath + "/connection_changes/" + i1, + schemaPath: "#/$defs/GraphConnectionChange/required", + keyword: "required", + params: { missingProperty: "source" }, + message: "must have required property '" + "source" + "'", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } + if (data5.target === undefined) { + const err16 = { + instancePath: instancePath + "/connection_changes/" + i1, + schemaPath: "#/$defs/GraphConnectionChange/required", + keyword: "required", + params: { missingProperty: "target" }, + message: "must have required property '" + "target" + "'", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + if (data5.change === undefined) { + const err17 = { + instancePath: instancePath + "/connection_changes/" + i1, + schemaPath: "#/$defs/GraphConnectionChange/required", + keyword: "required", + params: { missingProperty: "change" }, + message: "must have required property '" + "change" + "'", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + for (const key1 in data5) { + if (!(key1 === "change" || key1 === "source" || key1 === "target")) { + const err18 = { + instancePath: instancePath + "/connection_changes/" + i1, + schemaPath: "#/$defs/GraphConnectionChange/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } + } + if (data5.change !== undefined) { + let data6 = data5.change; + if (typeof data6 !== "string") { + const err19 = { + instancePath: instancePath + "/connection_changes/" + i1 + "/change", + schemaPath: "#/$defs/GraphConnectionChange/properties/change/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } + if (!(data6 === "added" || data6 === "removed" || data6 === "modified")) { + const err20 = { + instancePath: instancePath + "/connection_changes/" + i1 + "/change", + schemaPath: "#/$defs/GraphConnectionChange/properties/change/enum", + keyword: "enum", + params: { allowedValues: schema49.properties.change.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); + } + errors++; + } + } + if (data5.source !== undefined) { + if (typeof data5.source !== "string") { + const err21 = { + instancePath: instancePath + "/connection_changes/" + i1 + "/source", + schemaPath: "#/$defs/GraphConnectionChange/properties/source/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err21]; + } else { + vErrors.push(err21); + } + errors++; + } + } + if (data5.target !== undefined) { + if (typeof data5.target !== "string") { + const err22 = { + instancePath: instancePath + "/connection_changes/" + i1 + "/target", + schemaPath: "#/$defs/GraphConnectionChange/properties/target/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err22]; + } else { + vErrors.push(err22); + } + errors++; + } + } + } else { + const err23 = { + instancePath: instancePath + "/connection_changes/" + i1, + schemaPath: "#/$defs/GraphConnectionChange/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err23]; + } else { + vErrors.push(err23); + } + errors++; + } + } + } else { + const err24 = { + instancePath: instancePath + "/connection_changes", + schemaPath: "#/properties/connection_changes/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err24]; + } else { + vErrors.push(err24); + } + errors++; + } + } + if (data.estimates !== undefined) { + let data9 = data.estimates; + if (data9 && typeof data9 == "object" && !Array.isArray(data9)) { + for (const key2 in data9) { + if (!(key2 === "cost_usd" || key2 === "explanation" || key2 === "rows_written")) { + const err25 = { + instancePath: instancePath + "/estimates", + schemaPath: "#/$defs/GraphChangeEstimates/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key2 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err25]; + } else { + vErrors.push(err25); + } + errors++; + } + } + if (data9.cost_usd !== undefined) { + if (data9.cost_usd !== null) { + const err26 = { + instancePath: instancePath + "/estimates/cost_usd", + schemaPath: "#/$defs/GraphChangeEstimates/properties/cost_usd/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err26]; + } else { + vErrors.push(err26); + } + errors++; + } + } + if (data9.explanation !== undefined) { + if (typeof data9.explanation !== "string") { + const err27 = { + instancePath: instancePath + "/estimates/explanation", + schemaPath: "#/$defs/GraphChangeEstimates/properties/explanation/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err27]; } else { - vErrors.push(err7); + vErrors.push(err27); + } + errors++; + } + } + if (data9.rows_written !== undefined) { + if (data9.rows_written !== null) { + const err28 = { + instancePath: instancePath + "/estimates/rows_written", + schemaPath: "#/$defs/GraphChangeEstimates/properties/rows_written/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err28]; + } else { + vErrors.push(err28); } errors++; } } } else { - const err8 = { - instancePath: instancePath + "/inputs", - schemaPath: "#/properties/inputs/type", + const err29 = { + instancePath: instancePath + "/estimates", + schemaPath: "#/$defs/GraphChangeEstimates/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err29]; + } else { + vErrors.push(err29); + } + errors++; + } + } + if (data.graph_properties_changed !== undefined) { + let data13 = data.graph_properties_changed; + if (Array.isArray(data13)) { + const len2 = data13.length; + for (let i2 = 0; i2 < len2; i2++) { + if (typeof data13[i2] !== "string") { + const err30 = { + instancePath: instancePath + "/graph_properties_changed/" + i2, + schemaPath: "#/properties/graph_properties_changed/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err30]; + } else { + vErrors.push(err30); + } + errors++; + } + } + } else { + const err31 = { + instancePath: instancePath + "/graph_properties_changed", + schemaPath: "#/properties/graph_properties_changed/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err31]; } else { - vErrors.push(err8); + vErrors.push(err31); } errors++; } } - if (data.kind !== undefined) { - let data6 = data.kind; - if (typeof data6 !== "string") { - const err9 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + if (data.limitations !== undefined) { + let data15 = data.limitations; + if (Array.isArray(data15)) { + const len3 = data15.length; + for (let i3 = 0; i3 < len3; i3++) { + if (typeof data15[i3] !== "string") { + const err32 = { + instancePath: instancePath + "/limitations/" + i3, + schemaPath: "#/properties/limitations/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err32]; + } else { + vErrors.push(err32); + } + errors++; + } + } + } else { + const err33 = { + instancePath: instancePath + "/limitations", + schemaPath: "#/properties/limitations/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err33]; } else { - vErrors.push(err9); + vErrors.push(err33); } errors++; } - if ("custom_code" !== data6) { - const err10 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "custom_code" }, - message: "must be equal to constant", + } + if (data.node_changes !== undefined) { + let data17 = data.node_changes; + if (Array.isArray(data17)) { + const len4 = data17.length; + for (let i4 = 0; i4 < len4; i4++) { + let data18 = data17[i4]; + if (data18 && typeof data18 == "object" && !Array.isArray(data18)) { + if (data18.node_id === undefined) { + const err34 = { + instancePath: instancePath + "/node_changes/" + i4, + schemaPath: "#/$defs/GraphNodeChange/required", + keyword: "required", + params: { missingProperty: "node_id" }, + message: "must have required property '" + "node_id" + "'", + }; + if (vErrors === null) { + vErrors = [err34]; + } else { + vErrors.push(err34); + } + errors++; + } + if (data18.name === undefined) { + const err35 = { + instancePath: instancePath + "/node_changes/" + i4, + schemaPath: "#/$defs/GraphNodeChange/required", + keyword: "required", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", + }; + if (vErrors === null) { + vErrors = [err35]; + } else { + vErrors.push(err35); + } + errors++; + } + if (data18.change === undefined) { + const err36 = { + instancePath: instancePath + "/node_changes/" + i4, + schemaPath: "#/$defs/GraphNodeChange/required", + keyword: "required", + params: { missingProperty: "change" }, + message: "must have required property '" + "change" + "'", + }; + if (vErrors === null) { + vErrors = [err36]; + } else { + vErrors.push(err36); + } + errors++; + } + if (data18.affects_data === undefined) { + const err37 = { + instancePath: instancePath + "/node_changes/" + i4, + schemaPath: "#/$defs/GraphNodeChange/required", + keyword: "required", + params: { missingProperty: "affects_data" }, + message: "must have required property '" + "affects_data" + "'", + }; + if (vErrors === null) { + vErrors = [err37]; + } else { + vErrors.push(err37); + } + errors++; + } + for (const key3 in data18) { + if (!( + key3 === "affects_data" || + key3 === "change" || + key3 === "changed_properties" || + key3 === "name" || + key3 === "node_id" + )) { + const err38 = { + instancePath: instancePath + "/node_changes/" + i4, + schemaPath: "#/$defs/GraphNodeChange/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key3 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err38]; + } else { + vErrors.push(err38); + } + errors++; + } + } + if (data18.affects_data !== undefined) { + if (typeof data18.affects_data !== "boolean") { + const err39 = { + instancePath: instancePath + "/node_changes/" + i4 + "/affects_data", + schemaPath: "#/$defs/GraphNodeChange/properties/affects_data/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err39]; + } else { + vErrors.push(err39); + } + errors++; + } + } + if (data18.change !== undefined) { + let data20 = data18.change; + if (typeof data20 !== "string") { + const err40 = { + instancePath: instancePath + "/node_changes/" + i4 + "/change", + schemaPath: "#/$defs/GraphNodeChange/properties/change/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err40]; + } else { + vErrors.push(err40); + } + errors++; + } + if (!( + data20 === "added" || + data20 === "removed" || + data20 === "modified" || + data20 === "layout_only" + )) { + const err41 = { + instancePath: instancePath + "/node_changes/" + i4 + "/change", + schemaPath: "#/$defs/GraphNodeChange/properties/change/enum", + keyword: "enum", + params: { allowedValues: schema51.properties.change.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err41]; + } else { + vErrors.push(err41); + } + errors++; + } + } + if (data18.changed_properties !== undefined) { + let data21 = data18.changed_properties; + if (Array.isArray(data21)) { + const len5 = data21.length; + for (let i5 = 0; i5 < len5; i5++) { + if (typeof data21[i5] !== "string") { + const err42 = { + instancePath: + instancePath + "/node_changes/" + i4 + "/changed_properties/" + i5, + schemaPath: + "#/$defs/GraphNodeChange/properties/changed_properties/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err42]; + } else { + vErrors.push(err42); + } + errors++; + } + } + } else { + const err43 = { + instancePath: instancePath + "/node_changes/" + i4 + "/changed_properties", + schemaPath: "#/$defs/GraphNodeChange/properties/changed_properties/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err43]; + } else { + vErrors.push(err43); + } + errors++; + } + } + if (data18.name !== undefined) { + if (typeof data18.name !== "string") { + const err44 = { + instancePath: instancePath + "/node_changes/" + i4 + "/name", + schemaPath: "#/$defs/GraphNodeChange/properties/name/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err44]; + } else { + vErrors.push(err44); + } + errors++; + } + } + if (data18.node_id !== undefined) { + if (typeof data18.node_id !== "string") { + const err45 = { + instancePath: instancePath + "/node_changes/" + i4 + "/node_id", + schemaPath: "#/$defs/GraphNodeChange/properties/node_id/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err45]; + } else { + vErrors.push(err45); + } + errors++; + } + } + } else { + const err46 = { + instancePath: instancePath + "/node_changes/" + i4, + schemaPath: "#/$defs/GraphNodeChange/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err46]; + } else { + vErrors.push(err46); + } + errors++; + } + } + } else { + const err47 = { + instancePath: instancePath + "/node_changes", + schemaPath: "#/properties/node_changes/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err47]; } else { - vErrors.push(err10); + vErrors.push(err47); } errors++; } } - if (data.metadata !== undefined) { - if ( - !validate35(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); - errors = vErrors.length; + if (data.outputs !== undefined) { + let data25 = data.outputs; + if (Array.isArray(data25)) { + const len6 = data25.length; + for (let i6 = 0; i6 < len6; i6++) { + if ( + !validate32(data25[i6], { + instancePath: instancePath + "/outputs/" + i6, + parentData: data25, + parentDataProperty: i6, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate32.errors : vErrors.concat(validate32.errors); + errors = vErrors.length; + } + } + } else { + const err48 = { + instancePath: instancePath + "/outputs", + schemaPath: "#/properties/outputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err48]; + } else { + vErrors.push(err48); + } + errors++; + } + } + if (data.run_output_ids !== undefined) { + let data27 = data.run_output_ids; + if (Array.isArray(data27)) { + const len7 = data27.length; + for (let i7 = 0; i7 < len7; i7++) { + if (typeof data27[i7] !== "string") { + const err49 = { + instancePath: instancePath + "/run_output_ids/" + i7, + schemaPath: "#/properties/run_output_ids/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err49]; + } else { + vErrors.push(err49); + } + errors++; + } + } + } else { + const err50 = { + instancePath: instancePath + "/run_output_ids", + schemaPath: "#/properties/run_output_ids/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err50]; + } else { + vErrors.push(err50); + } + errors++; } } } else { - const err11 = { + const err51 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -5397,52 +5785,2318 @@ function validate50( message: "must be object", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err51]; } else { - vErrors.push(err11); + vErrors.push(err51); } errors++; } - validate50.errors = vErrors; + validate31.errors = vErrors; return errors === 0; } -validate50.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate31.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate40( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate40.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - const _errs0 = errors; - let valid0 = false; - const _errs1 = errors; - if ( - !validate41(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate41.errors : vErrors.concat(validate41.errors); - errors = vErrors.length; - } - var _valid0 = _errs1 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - var props0 = true; - } - const _errs2 = errors; - if ( - !validate44(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate44.errors : vErrors.concat(validate44.errors); - errors = vErrors.length; - } - var _valid0 = _errs2 === errors; +export const validateGraphCreate = validate41; +const schema60 = { + $defs: { + AcceptedValuesFieldTest: { + additionalProperties: false, + properties: { + field: { default: null, title: "Field", type: "null" }, + kind: { const: "accepted_values", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + to: { default: null, title: "To", type: "null" }, + values: { + items: { $ref: "#/$defs/JsonValue" }, + minItems: 1, + title: "Values", + type: "array", + }, + }, + required: ["kind", "values"], + title: "AcceptedValuesFieldTest", + type: "object", + }, + ComparisonOperator: { + description: "Closed comparison grammar for ``filter_rows``.", + enum: ["eq", "ne", "gt", "gte", "lt", "lte", "in", "not_in", "is_null", "is_not_null"], + title: "ComparisonOperator", + type: "string", + }, + ConstantTransformation: { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { $ref: "#/$defs/JsonValue" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "constant", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "constant"], + title: "ConstantTransformation", + type: "object", + }, + CursorStrategyDocument: { + additionalProperties: false, + properties: { + field: { minLength: 1, title: "Field", type: "string" }, + kind: { enum: ["timestamp", "sequence", "opaque_token"], title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/JsonObject" }, + }, + required: ["field", "kind"], + title: "CursorStrategyDocument", + type: "object", + }, + CustomCodeTransformation: { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/JsonObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { + pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$", + title: "Function", + type: "string", + }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "custom_code", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "function"], + title: "CustomCodeTransformation", + type: "object", + }, + DefaultValueOperation: { + additionalProperties: false, + properties: { + kind: { const: "default_value", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/DefaultValueParamsDocument" }, + }, + required: ["kind", "params"], + title: "DefaultValueOperation", + type: "object", + }, + DefaultValueParamsDocument: { + additionalProperties: false, + properties: { + default: { + anyOf: [{ type: "string" }, { type: "integer" }, { type: "number" }, { type: "boolean" }], + title: "Default", + }, + field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, + }, + required: ["field", "default"], + title: "DefaultValueParamsDocument", + type: "object", + }, + DependencyTrigger: { + additionalProperties: false, + properties: { + cron: { default: null, title: "Cron", type: "null" }, + depends_on: { items: { type: "string" }, minItems: 1, title: "Depends On", type: "array" }, + event: { default: null, title: "Event", type: "null" }, + kind: { const: "dependency", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "depends_on"], + title: "DependencyTrigger", + type: "object", + }, + DestinationDocument: { + additionalProperties: false, + properties: { + business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, + dataset: { minLength: 1, title: "Dataset", type: "string" }, + project: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Project" }, + table: { minLength: 1, title: "Table", type: "string" }, + }, + required: ["dataset", "table"], + title: "DestinationDocument", + type: "object", + }, + DirectTransformation: { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "direct", default: "direct", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + title: "DirectTransformation", + type: "object", + }, + EdgeDocument: { + additionalProperties: false, + properties: { + from: { title: "From", type: "string" }, + join: { anyOf: [{ $ref: "#/$defs/JoinDocument" }, { type: "null" }], default: null }, + mappings: { + items: { $ref: "#/$defs/FieldMappingDocument" }, + title: "Mappings", + type: "array", + }, + metadata: { $ref: "#/$defs/JsonObject" }, + to: { title: "To", type: "string" }, + }, + required: ["from", "to"], + title: "EdgeDocument", + type: "object", + }, + EmptyObject: { + additionalProperties: false, + description: "A JSON object that must contain no properties.", + properties: {}, + title: "EmptyObject", + type: "object", + }, + ExecutableJoinKeyDocument: { + additionalProperties: false, + properties: { + left: { minLength: 1, title: "Left", type: "string" }, + right: { minLength: 1, title: "Right", type: "string" }, + }, + required: ["left", "right"], + title: "ExecutableJoinKeyDocument", + type: "object", + }, + ExecutableJoinType: { + description: "BigQuery join kinds supported by an executable transform node.", + enum: ["inner", "left", "right", "full"], + title: "ExecutableJoinType", + type: "string", + }, + ExpressionTransformation: { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { minLength: 1, title: "Expression", type: "string" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "expression", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "expression"], + title: "ExpressionTransformation", + type: "object", + }, + ExtensionNodeDocument: { + additionalProperties: false, + not: { required: ["config", "params"] }, + properties: { + config: { $ref: "#/$defs/JsonObject" }, + cursor: { + anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], + default: null, + }, + fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, + id: { title: "Id", type: "string" }, + name: { title: "Name", type: "string" }, + params: { + anyOf: [{ $ref: "#/$defs/JsonObject" }, { type: "null" }], + default: null, + deprecated: true, + "x-dander-canonical-name": "config", + }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + type: { $ref: "#/$defs/ExtensionNodeType" }, + visual: { + anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], + default: null, + }, + }, + required: ["id", "type", "name"], + title: "ExtensionNodeDocument", + type: "object", + }, + ExtensionNodeType: { not: { enum: ["source", "transform", "target"] }, type: "string" }, + FieldConditionDocument: { + additionalProperties: false, + properties: { + field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, + op: { $ref: "#/$defs/ComparisonOperator" }, + value: { + anyOf: [ + { type: "string" }, + { type: "integer" }, + { type: "number" }, + { type: "boolean" }, + { + items: { + anyOf: [ + { type: "string" }, + { type: "integer" }, + { type: "number" }, + { type: "boolean" }, + ], + }, + type: "array", + }, + { type: "null" }, + ], + default: null, + title: "Value", + }, + }, + required: ["field", "op"], + title: "FieldConditionDocument", + type: "object", + }, + FieldMappingDocument: { + additionalProperties: false, + properties: { + metadata: { $ref: "#/$defs/JsonObject" }, + source: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Source" }, + target: { title: "Target", type: "string" }, + transformation: { + anyOf: [{ $ref: "#/$defs/TransformationDocument" }, { type: "null" }], + default: null, + }, + }, + required: ["target"], + title: "FieldMappingDocument", + type: "object", + }, + FieldTestDocument: { + anyOf: [ + { $ref: "#/$defs/NotNullFieldTest" }, + { $ref: "#/$defs/UniqueFieldTest" }, + { $ref: "#/$defs/AcceptedValuesFieldTest" }, + { $ref: "#/$defs/RelationshipsFieldTest" }, + ], + }, + FilterRowsOperation: { + additionalProperties: false, + properties: { + kind: { const: "filter_rows", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/FilterRowsParamsDocument" }, + }, + required: ["kind", "params"], + title: "FilterRowsOperation", + type: "object", + }, + FilterRowsParamsDocument: { + additionalProperties: false, + properties: { + conditions: { + items: { $ref: "#/$defs/FieldConditionDocument" }, + minItems: 1, + title: "Conditions", + type: "array", + }, + logic: { $ref: "#/$defs/MatchLogic", default: "all" }, + }, + required: ["conditions"], + title: "FilterRowsParamsDocument", + type: "object", + }, + GraphNodeDocument: { + anyOf: [ + { $ref: "#/$defs/SourceNodeDocument" }, + { $ref: "#/$defs/TransformNodeDocument" }, + { $ref: "#/$defs/TargetNodeDocument" }, + { $ref: "#/$defs/ExtensionNodeDocument" }, + ], + }, + HttpMethod: { + description: + "The closed set of HTTP methods a `RequestSpec` may declare.\n\nA `StrEnum` (matching the `TransformationKind`/`JoinType` convention in `graph.py`) so callers\nget a named, importable type that still serializes to/from its plain string value stably in\nYAML and JSON. An out-of-set value fails validation with a clear error at the Pydantic\nboundary. `HEAD`/`OPTIONS` are intentionally omitted (no source currently needs them); extend\nby adding a member later without touching callers.\n\nAttributes:\n GET: Retrieve a resource. The default method (a simple GET needs no explicit spec).\n POST: Create a resource / submit a query body.\n PUT: Replace a resource.\n PATCH: Partially update a resource.\n DELETE: Remove a resource.", + enum: ["GET", "POST", "PUT", "PATCH", "DELETE"], + title: "HttpMethod", + type: "string", + }, + JoinDocument: { + additionalProperties: false, + properties: { + keys: { + items: { $ref: "#/$defs/JoinKeyPairDocument" }, + minItems: 1, + title: "Keys", + type: "array", + }, + metadata: { $ref: "#/$defs/JsonObject" }, + type: { enum: ["inner", "left", "right", "full"], title: "Type", type: "string" }, + }, + required: ["type", "keys"], + title: "JoinDocument", + type: "object", + }, + JoinKeyPairDocument: { + additionalProperties: false, + properties: { + left: { title: "Left", type: "string" }, + right: { title: "Right", type: "string" }, + }, + required: ["left", "right"], + title: "JoinKeyPairDocument", + type: "object", + }, + JsonObject: { additionalProperties: { $ref: "#/$defs/JsonValue" }, type: "object" }, + JsonValue: {}, + ManualTrigger: { + additionalProperties: false, + properties: { + cron: { default: null, title: "Cron", type: "null" }, + depends_on: { items: { type: "string" }, maxItems: 0, title: "Depends On", type: "array" }, + event: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Event" }, + kind: { const: "manual", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind"], + title: "ManualTrigger", + type: "object", + }, + MatchLogic: { + description: "How a filter's flat condition list combines.", + enum: ["all", "any"], + title: "MatchLogic", + type: "string", + }, + NodeFieldDocument: { + additionalProperties: false, + properties: { + cast_to: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Cast To" }, + description: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Description", + }, + extensions: { + items: { $ref: "#/$defs/ProviderExtension" }, + title: "Extensions", + type: "array", + }, + metadata: { $ref: "#/$defs/JsonObject" }, + name: { title: "Name", type: "string" }, + nullable: { default: true, title: "Nullable", type: "boolean" }, + tests: { items: { $ref: "#/$defs/FieldTestDocument" }, title: "Tests", type: "array" }, + type: { title: "Type", type: "string" }, + }, + required: ["name", "type"], + title: "NodeFieldDocument", + type: "object", + }, + NodeVisualDocument: { + additionalProperties: false, + properties: { + color: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Color" }, + icon: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Icon" }, + position: { + anyOf: [{ $ref: "#/$defs/PositionDocument" }, { type: "null" }], + default: null, + }, + }, + title: "NodeVisualDocument", + type: "object", + }, + NotNullFieldTest: { + additionalProperties: false, + properties: { + field: { default: null, title: "Field", type: "null" }, + kind: { const: "not_null", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + to: { default: null, title: "To", type: "null" }, + values: { + items: { $ref: "#/$defs/JsonValue" }, + maxItems: 0, + title: "Values", + type: "array", + }, + }, + required: ["kind"], + title: "NotNullFieldTest", + type: "object", + }, + OperationDocument: { + anyOf: [ + { $ref: "#/$defs/TruncateStringOperation" }, + { $ref: "#/$defs/TrimWhitespaceOperation" }, + { $ref: "#/$defs/DefaultValueOperation" }, + { $ref: "#/$defs/FilterRowsOperation" }, + ], + }, + PartitioningDocument: { + additionalProperties: false, + properties: { + field: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Field" }, + granularity: { $ref: "#/$defs/PartitioningType", default: "day" }, + require_partition_filter: { + default: false, + title: "Require Partition Filter", + type: "boolean", + }, + }, + title: "PartitioningDocument", + type: "object", + }, + PartitioningType: { + description: + "The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare.\n\nA `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in\n`dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON;\nan out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately\nlimited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future\nmember (see `steering/02-engineering.md` on avoiding speculative generality).\n\nAttributes:\n HOUR: Hourly partitions.\n DAY: Daily partitions — the common case and BigQuery's default granularity.\n MONTH: Monthly partitions.\n YEAR: Yearly partitions.", + enum: ["hour", "day", "month", "year"], + title: "PartitioningType", + type: "string", + }, + PipelineGraphDocument: { + additionalProperties: false, + description: + "Canonical graph transport whose construction reuses Dander semantic validation.", + properties: { + edges: { items: { $ref: "#/$defs/EdgeDocument" }, title: "Edges", type: "array" }, + name: { title: "Name", type: "string" }, + nodes: { items: { $ref: "#/$defs/GraphNodeDocument" }, title: "Nodes", type: "array" }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + }, + required: ["name"], + title: "PipelineGraphDocument", + type: "object", + }, + PositionDocument: { + additionalProperties: false, + properties: { x: { title: "X", type: "number" }, y: { title: "Y", type: "number" } }, + required: ["x", "y"], + title: "PositionDocument", + type: "object", + }, + ProviderExtension: { + additionalProperties: false, + description: "One deterministic provider-specific schema annotation, never a credential.", + properties: { + name: { title: "Name", type: "string" }, + provider: { title: "Provider", type: "string" }, + value: { + anyOf: [{ type: "string" }, { type: "integer" }, { type: "number" }, { type: "boolean" }], + title: "Value", + }, + }, + required: ["provider", "name", "value"], + title: "ProviderExtension", + type: "object", + }, + RelationshipsFieldTest: { + additionalProperties: false, + properties: { + field: { minLength: 1, title: "Field", type: "string" }, + kind: { const: "relationships", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + to: { minLength: 1, title: "To", type: "string" }, + values: { + items: { $ref: "#/$defs/JsonValue" }, + maxItems: 0, + title: "Values", + type: "array", + }, + }, + required: ["kind", "to", "field"], + title: "RelationshipsFieldTest", + type: "object", + }, + RequestSpecDocument: { + additionalProperties: false, + properties: { + body: { + anyOf: [{ $ref: "#/$defs/JsonObject" }, { type: "string" }, { type: "null" }], + default: null, + title: "Body", + }, + headers: { additionalProperties: { type: "string" }, title: "Headers", type: "object" }, + method: { $ref: "#/$defs/HttpMethod", default: "GET" }, + query_params: { + additionalProperties: { type: "string" }, + title: "Query Params", + type: "object", + }, + }, + title: "RequestSpecDocument", + type: "object", + }, + ScheduleTrigger: { + additionalProperties: false, + properties: { + cron: { minLength: 1, title: "Cron", type: "string" }, + depends_on: { items: { type: "string" }, maxItems: 0, title: "Depends On", type: "array" }, + event: { default: null, title: "Event", type: "null" }, + kind: { const: "schedule", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "cron"], + title: "ScheduleTrigger", + type: "object", + }, + SchemaEvolution: { + description: "How a writer handles declared columns absent from an existing target.", + enum: ["strict", "additive"], + title: "SchemaEvolution", + type: "string", + }, + SourceNodeConfigDocument: { + additionalProperties: { $ref: "#/$defs/JsonValue" }, + properties: { + connector: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Connector", + }, + endpoint: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Endpoint", + }, + request: { + anyOf: [{ $ref: "#/$defs/RequestSpecDocument" }, { type: "null" }], + default: null, + }, + }, + title: "SourceNodeConfigDocument", + type: "object", + }, + SourceNodeDocument: { + additionalProperties: false, + not: { required: ["config", "params"] }, + properties: { + config: { $ref: "#/$defs/SourceNodeConfigDocument" }, + cursor: { + anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], + default: null, + }, + fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, + id: { title: "Id", type: "string" }, + name: { title: "Name", type: "string" }, + params: { + anyOf: [{ $ref: "#/$defs/SourceNodeConfigDocument" }, { type: "null" }], + default: null, + deprecated: true, + "x-dander-canonical-name": "config", + }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + type: { const: "source", title: "Type", type: "string" }, + visual: { + anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], + default: null, + }, + }, + required: ["id", "type", "name"], + title: "SourceNodeDocument", + type: "object", + }, + TargetNodeConfigDocument: { + additionalProperties: { $ref: "#/$defs/JsonValue" }, + properties: { + writer: { anyOf: [{ $ref: "#/$defs/WriterDocument" }, { type: "null" }], default: null }, + }, + title: "TargetNodeConfigDocument", + type: "object", + }, + TargetNodeDocument: { + additionalProperties: false, + not: { required: ["config", "params"] }, + properties: { + config: { $ref: "#/$defs/TargetNodeConfigDocument" }, + cursor: { + anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], + default: null, + }, + fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, + id: { title: "Id", type: "string" }, + name: { title: "Name", type: "string" }, + params: { + anyOf: [{ $ref: "#/$defs/TargetNodeConfigDocument" }, { type: "null" }], + default: null, + deprecated: true, + "x-dander-canonical-name": "config", + }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + type: { const: "target", title: "Type", type: "string" }, + visual: { + anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], + default: null, + }, + }, + required: ["id", "type", "name"], + title: "TargetNodeDocument", + type: "object", + }, + TransformJoinDocument: { + additionalProperties: false, + properties: { + keys: { + items: { $ref: "#/$defs/ExecutableJoinKeyDocument" }, + minItems: 1, + title: "Keys", + type: "array", + }, + left_input: { minLength: 1, title: "Left Input", type: "string" }, + right_input: { minLength: 1, title: "Right Input", type: "string" }, + type: { $ref: "#/$defs/ExecutableJoinType" }, + }, + required: ["left_input", "right_input", "type", "keys"], + title: "TransformJoinDocument", + type: "object", + }, + TransformNodeConfigDocument: { + additionalProperties: { $ref: "#/$defs/JsonValue" }, + properties: { + join: { + anyOf: [{ $ref: "#/$defs/TransformJoinDocument" }, { type: "null" }], + default: null, + }, + operations: { + items: { $ref: "#/$defs/OperationDocument" }, + title: "Operations", + type: "array", + }, + }, + title: "TransformNodeConfigDocument", + type: "object", + }, + TransformNodeDocument: { + additionalProperties: false, + not: { required: ["config", "params"] }, + properties: { + config: { $ref: "#/$defs/TransformNodeConfigDocument" }, + cursor: { + anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], + default: null, + }, + fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, + id: { title: "Id", type: "string" }, + name: { title: "Name", type: "string" }, + params: { + anyOf: [{ $ref: "#/$defs/TransformNodeConfigDocument" }, { type: "null" }], + default: null, + deprecated: true, + "x-dander-canonical-name": "config", + }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + type: { const: "transform", title: "Type", type: "string" }, + visual: { + anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], + default: null, + }, + }, + required: ["id", "type", "name"], + title: "TransformNodeDocument", + type: "object", + }, + TransformationDocument: { + anyOf: [ + { $ref: "#/$defs/DirectTransformation" }, + { $ref: "#/$defs/ExpressionTransformation" }, + { $ref: "#/$defs/ConstantTransformation" }, + { $ref: "#/$defs/CustomCodeTransformation" }, + ], + }, + TriggerDocument: { + anyOf: [ + { $ref: "#/$defs/ScheduleTrigger" }, + { $ref: "#/$defs/DependencyTrigger" }, + { $ref: "#/$defs/ManualTrigger" }, + ], + }, + TrimWhitespaceOperation: { + additionalProperties: false, + properties: { + kind: { const: "trim_whitespace", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/TrimWhitespaceParamsDocument" }, + }, + required: ["kind", "params"], + title: "TrimWhitespaceOperation", + type: "object", + }, + TrimWhitespaceParamsDocument: { + additionalProperties: false, + properties: { + field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, + }, + required: ["field"], + title: "TrimWhitespaceParamsDocument", + type: "object", + }, + TruncateStringOperation: { + additionalProperties: false, + properties: { + kind: { const: "truncate_string", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/TruncateStringParamsDocument" }, + }, + required: ["kind", "params"], + title: "TruncateStringOperation", + type: "object", + }, + TruncateStringParamsDocument: { + additionalProperties: false, + properties: { + field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, + max_length: { minimum: 0, title: "Max Length", type: "integer" }, + }, + required: ["field", "max_length"], + title: "TruncateStringParamsDocument", + type: "object", + }, + UniqueFieldTest: { + additionalProperties: false, + properties: { + field: { default: null, title: "Field", type: "null" }, + kind: { const: "unique", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + to: { default: null, title: "To", type: "null" }, + values: { + items: { $ref: "#/$defs/JsonValue" }, + maxItems: 0, + title: "Values", + type: "array", + }, + }, + required: ["kind"], + title: "UniqueFieldTest", + type: "object", + }, + WriteMode: { + description: "Supported load strategies.", + enum: ["scd1", "scd2", "snapshot", "incremental", "replace"], + title: "WriteMode", + type: "string", + }, + WriterDocument: { + additionalProperties: false, + properties: { + clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, + cursor_field: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Cursor Field", + }, + destination: { $ref: "#/$defs/DestinationDocument" }, + max_batch_rows: { + default: 10000, + exclusiveMinimum: 0, + maximum: 100000, + title: "Max Batch Rows", + type: "integer", + }, + partitioning: { + anyOf: [{ $ref: "#/$defs/PartitioningDocument" }, { type: "null" }], + default: null, + }, + schema_evolution: { $ref: "#/$defs/SchemaEvolution", default: "strict" }, + transport: { + default: "load_job", + enum: ["load_job", "storage_write", "copy"], + title: "Transport", + type: "string", + }, + write_mode: { $ref: "#/$defs/WriteMode" }, + }, + required: ["write_mode", "destination"], + title: "WriterDocument", + type: "object", + }, + }, + $id: "urn:dander:control:contracts:v1:graph-create", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + description: "Create one named graph through the hosted project collection route.", + properties: { + document: { $ref: "#/$defs/PipelineGraphDocument" }, + graph: { title: "Graph", type: "string" }, + }, + required: ["graph", "document"], + title: "GraphCreateRequest", + type: "object", +}; +const schema61 = { + additionalProperties: false, + description: "Canonical graph transport whose construction reuses Dander semantic validation.", + properties: { + edges: { items: { $ref: "#/$defs/EdgeDocument" }, title: "Edges", type: "array" }, + name: { title: "Name", type: "string" }, + nodes: { items: { $ref: "#/$defs/GraphNodeDocument" }, title: "Nodes", type: "array" }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + }, + required: ["name"], + title: "PipelineGraphDocument", + type: "object", +}; +const schema62 = { + additionalProperties: false, + properties: { + from: { title: "From", type: "string" }, + join: { anyOf: [{ $ref: "#/$defs/JoinDocument" }, { type: "null" }], default: null }, + mappings: { items: { $ref: "#/$defs/FieldMappingDocument" }, title: "Mappings", type: "array" }, + metadata: { $ref: "#/$defs/JsonObject" }, + to: { title: "To", type: "string" }, + }, + required: ["from", "to"], + title: "EdgeDocument", + type: "object", +}; +const schema63 = { + additionalProperties: false, + properties: { + keys: { + items: { $ref: "#/$defs/JoinKeyPairDocument" }, + minItems: 1, + title: "Keys", + type: "array", + }, + metadata: { $ref: "#/$defs/JsonObject" }, + type: { enum: ["inner", "left", "right", "full"], title: "Type", type: "string" }, + }, + required: ["type", "keys"], + title: "JoinDocument", + type: "object", +}; +const schema64 = { + additionalProperties: false, + properties: { + left: { title: "Left", type: "string" }, + right: { title: "Right", type: "string" }, + }, + required: ["left", "right"], + title: "JoinKeyPairDocument", + type: "object", +}; +const schema65 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, type: "object" }; +const schema66 = {}; + +function validate45( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate45.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + } else { + const err0 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + validate45.errors = vErrors; + return errors === 0; +} +validate45.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate44( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate44.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.type === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "type" }, + message: "must have required property '" + "type" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.keys === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "keys" }, + message: "must have required property '" + "keys" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "keys" || key0 === "metadata" || key0 === "type")) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.keys !== undefined) { + let data0 = data.keys; + if (Array.isArray(data0)) { + if (data0.length < 1) { + const err3 = { + instancePath: instancePath + "/keys", + schemaPath: "#/properties/keys/minItems", + keyword: "minItems", + params: { limit: 1 }, + message: "must NOT have fewer than 1 items", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + let data1 = data0[i0]; + if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { + if (data1.left === undefined) { + const err4 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/JoinKeyPairDocument/required", + keyword: "required", + params: { missingProperty: "left" }, + message: "must have required property '" + "left" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (data1.right === undefined) { + const err5 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/JoinKeyPairDocument/required", + keyword: "required", + params: { missingProperty: "right" }, + message: "must have required property '" + "right" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + for (const key1 in data1) { + if (!(key1 === "left" || key1 === "right")) { + const err6 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/JoinKeyPairDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + if (data1.left !== undefined) { + if (typeof data1.left !== "string") { + const err7 = { + instancePath: instancePath + "/keys/" + i0 + "/left", + schemaPath: "#/$defs/JoinKeyPairDocument/properties/left/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data1.right !== undefined) { + if (typeof data1.right !== "string") { + const err8 = { + instancePath: instancePath + "/keys/" + i0 + "/right", + schemaPath: "#/$defs/JoinKeyPairDocument/properties/right/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + } else { + const err9 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/JoinKeyPairDocument/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + } else { + const err10 = { + instancePath: instancePath + "/keys", + schemaPath: "#/properties/keys/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate45(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); + errors = vErrors.length; + } + } + if (data.type !== undefined) { + let data5 = data.type; + if (typeof data5 !== "string") { + const err11 = { + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + if (!(data5 === "inner" || data5 === "left" || data5 === "right" || data5 === "full")) { + const err12 = { + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/enum", + keyword: "enum", + params: { allowedValues: schema63.properties.type.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + } else { + const err13 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + validate44.errors = vErrors; + return errors === 0; +} +validate44.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema67 = { + additionalProperties: false, + properties: { + metadata: { $ref: "#/$defs/JsonObject" }, + source: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Source" }, + target: { title: "Target", type: "string" }, + transformation: { + anyOf: [{ $ref: "#/$defs/TransformationDocument" }, { type: "null" }], + default: null, + }, + }, + required: ["target"], + title: "FieldMappingDocument", + type: "object", +}; +const schema68 = { + anyOf: [ + { $ref: "#/$defs/DirectTransformation" }, + { $ref: "#/$defs/ExpressionTransformation" }, + { $ref: "#/$defs/ConstantTransformation" }, + { $ref: "#/$defs/CustomCodeTransformation" }, + ], +}; +const schema69 = { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "direct", default: "direct", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + title: "DirectTransformation", + type: "object", +}; +const schema70 = { + additionalProperties: false, + description: "A JSON object that must contain no properties.", + properties: {}, + title: "EmptyObject", + type: "object", +}; + +function validate51( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate51.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + for (const key0 in data) { + if (!( + key0 === "arguments" || + key0 === "constant" || + key0 === "expression" || + key0 === "function" || + key0 === "inputs" || + key0 === "kind" || + key0 === "metadata" + )) { + const err0 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + } + if (data.arguments !== undefined) { + let data0 = data.arguments; + if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { + for (const key1 in data0) { + const err1 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + } else { + const err2 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.constant !== undefined) { + if (data.constant !== null) { + const err3 = { + instancePath: instancePath + "/constant", + schemaPath: "#/properties/constant/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.expression !== undefined) { + if (data.expression !== null) { + const err4 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.function !== undefined) { + if (data.function !== null) { + const err5 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.inputs !== undefined) { + let data4 = data.inputs; + if (Array.isArray(data4)) { + const len0 = data4.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data4[i0] !== "string") { + const err6 = { + instancePath: instancePath + "/inputs/" + i0, + schemaPath: "#/properties/inputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + } else { + const err7 = { + instancePath: instancePath + "/inputs", + schemaPath: "#/properties/inputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data.kind !== undefined) { + let data6 = data.kind; + if (typeof data6 !== "string") { + const err8 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + if ("direct" !== data6) { + const err9 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "direct" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate45(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); + errors = vErrors.length; + } + } + } else { + const err10 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + validate51.errors = vErrors; + return errors === 0; +} +validate51.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema71 = { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { minLength: 1, title: "Expression", type: "string" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "expression", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "expression"], + title: "ExpressionTransformation", + type: "object", +}; + +function validate54( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate54.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.expression === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "expression" }, + message: "must have required property '" + "expression" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!( + key0 === "arguments" || + key0 === "constant" || + key0 === "expression" || + key0 === "function" || + key0 === "inputs" || + key0 === "kind" || + key0 === "metadata" + )) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.arguments !== undefined) { + let data0 = data.arguments; + if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { + for (const key1 in data0) { + const err3 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } else { + const err4 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.constant !== undefined) { + if (data.constant !== null) { + const err5 = { + instancePath: instancePath + "/constant", + schemaPath: "#/properties/constant/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.expression !== undefined) { + let data2 = data.expression; + if (typeof data2 === "string") { + if (func3(data2) < 1) { + const err6 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } else { + const err7 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data.function !== undefined) { + if (data.function !== null) { + const err8 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + if (data.inputs !== undefined) { + let data4 = data.inputs; + if (Array.isArray(data4)) { + const len0 = data4.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data4[i0] !== "string") { + const err9 = { + instancePath: instancePath + "/inputs/" + i0, + schemaPath: "#/properties/inputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + } else { + const err10 = { + instancePath: instancePath + "/inputs", + schemaPath: "#/properties/inputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data.kind !== undefined) { + let data6 = data.kind; + if (typeof data6 !== "string") { + const err11 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + if ("expression" !== data6) { + const err12 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "expression" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate45(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); + errors = vErrors.length; + } + } + } else { + const err13 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + validate54.errors = vErrors; + return errors === 0; +} +validate54.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema73 = { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { $ref: "#/$defs/JsonValue" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "constant", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "constant"], + title: "ConstantTransformation", + type: "object", +}; + +function validate57( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate57.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.constant === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "constant" }, + message: "must have required property '" + "constant" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!( + key0 === "arguments" || + key0 === "constant" || + key0 === "expression" || + key0 === "function" || + key0 === "inputs" || + key0 === "kind" || + key0 === "metadata" + )) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.arguments !== undefined) { + let data0 = data.arguments; + if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { + for (const key1 in data0) { + const err3 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } else { + const err4 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.expression !== undefined) { + if (data.expression !== null) { + const err5 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.function !== undefined) { + if (data.function !== null) { + const err6 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + if (data.inputs !== undefined) { + let data4 = data.inputs; + if (Array.isArray(data4)) { + const len0 = data4.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data4[i0] !== "string") { + const err7 = { + instancePath: instancePath + "/inputs/" + i0, + schemaPath: "#/properties/inputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + } else { + const err8 = { + instancePath: instancePath + "/inputs", + schemaPath: "#/properties/inputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + if (data.kind !== undefined) { + let data6 = data.kind; + if (typeof data6 !== "string") { + const err9 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + if ("constant" !== data6) { + const err10 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "constant" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate45(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); + errors = vErrors.length; + } + } + } else { + const err11 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + validate57.errors = vErrors; + return errors === 0; +} +validate57.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema76 = { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/JsonObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { + pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$", + title: "Function", + type: "string", + }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "custom_code", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "function"], + title: "CustomCodeTransformation", + type: "object", +}; +const pattern9 = new RegExp("^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$", "u"); + +function validate60( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate60.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.function === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "function" }, + message: "must have required property '" + "function" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!( + key0 === "arguments" || + key0 === "constant" || + key0 === "expression" || + key0 === "function" || + key0 === "inputs" || + key0 === "kind" || + key0 === "metadata" + )) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.arguments !== undefined) { + if ( + !validate45(data.arguments, { + instancePath: instancePath + "/arguments", + parentData: data, + parentDataProperty: "arguments", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); + errors = vErrors.length; + } + } + if (data.constant !== undefined) { + if (data.constant !== null) { + const err3 = { + instancePath: instancePath + "/constant", + schemaPath: "#/properties/constant/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.expression !== undefined) { + if (data.expression !== null) { + const err4 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.function !== undefined) { + let data3 = data.function; + if (typeof data3 === "string") { + if (!pattern9.test(data3)) { + const err5 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/pattern", + keyword: "pattern", + params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" }, + message: + 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + '"', + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } else { + const err6 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + if (data.inputs !== undefined) { + let data4 = data.inputs; + if (Array.isArray(data4)) { + const len0 = data4.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data4[i0] !== "string") { + const err7 = { + instancePath: instancePath + "/inputs/" + i0, + schemaPath: "#/properties/inputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + } else { + const err8 = { + instancePath: instancePath + "/inputs", + schemaPath: "#/properties/inputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + if (data.kind !== undefined) { + let data6 = data.kind; + if (typeof data6 !== "string") { + const err9 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + if ("custom_code" !== data6) { + const err10 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "custom_code" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate45(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); + errors = vErrors.length; + } + } + } else { + const err11 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + validate60.errors = vErrors; + return errors === 0; +} +validate60.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate50( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate50.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + const _errs0 = errors; + let valid0 = false; + const _errs1 = errors; + if ( + !validate51(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate51.errors : vErrors.concat(validate51.errors); + errors = vErrors.length; + } + var _valid0 = _errs1 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + var props0 = true; + } + const _errs2 = errors; + if ( + !validate54(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate54.errors : vErrors.concat(validate54.errors); + errors = vErrors.length; + } + var _valid0 = _errs2 === errors; valid0 = valid0 || _valid0; if (_valid0) { if (props0 !== true) { @@ -5451,9 +8105,9 @@ function validate40( } const _errs3 = errors; if ( - !validate47(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate57(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate47.errors : vErrors.concat(validate47.errors); + vErrors = vErrors === null ? validate57.errors : vErrors.concat(validate57.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -5465,9 +8119,9 @@ function validate40( } const _errs4 = errors; if ( - !validate50(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate60(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate50.errors : vErrors.concat(validate50.errors); + vErrors = vErrors === null ? validate60.errors : vErrors.concat(validate60.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -5501,19 +8155,19 @@ function validate40( } } } - validate40.errors = vErrors; + validate50.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate40.evaluated = { dynamicProps: true, dynamicItems: false }; +validate50.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate38( +function validate48( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate38.evaluated; + const evaluated0 = validate48.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -5560,7 +8214,7 @@ function validate38( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -5568,7 +8222,7 @@ function validate38( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -5660,7 +8314,7 @@ function validate38( let valid2 = false; const _errs13 = errors; if ( - !validate40(data3, { + !validate50(data3, { instancePath: instancePath + "/transformation", parentData: data, parentDataProperty: "transformation", @@ -5668,7 +8322,7 @@ function validate38( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate40.errors : vErrors.concat(validate40.errors); + vErrors = vErrors === null ? validate50.errors : vErrors.concat(validate50.errors); errors = vErrors.length; } var _valid1 = _errs13 === errors; @@ -5731,18 +8385,18 @@ function validate38( } errors++; } - validate38.errors = vErrors; + validate48.errors = vErrors; return errors === 0; } -validate38.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate48.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate33( +function validate43( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate33.evaluated; + const evaluated0 = validate43.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -5826,7 +8480,7 @@ function validate33( let valid1 = false; const _errs6 = errors; if ( - !validate34(data1, { + !validate44(data1, { instancePath: instancePath + "/join", parentData: data, parentDataProperty: "join", @@ -5834,7 +8488,7 @@ function validate33( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate34.errors : vErrors.concat(validate34.errors); + vErrors = vErrors === null ? validate44.errors : vErrors.concat(validate44.errors); errors = vErrors.length; } var _valid0 = _errs6 === errors; @@ -5888,7 +8542,7 @@ function validate33( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate38(data2[i0], { + !validate48(data2[i0], { instancePath: instancePath + "/mappings/" + i0, parentData: data2, parentDataProperty: i0, @@ -5896,7 +8550,7 @@ function validate33( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate38.errors : vErrors.concat(validate38.errors); + vErrors = vErrors === null ? validate48.errors : vErrors.concat(validate48.errors); errors = vErrors.length; } } @@ -5918,7 +8572,7 @@ function validate33( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -5926,7 +8580,7 @@ function validate33( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -5962,12 +8616,12 @@ function validate33( } errors++; } - validate33.errors = vErrors; + validate43.errors = vErrors; return errors === 0; } -validate33.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate43.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema65 = { +const schema77 = { anyOf: [ { $ref: "#/$defs/SourceNodeDocument" }, { $ref: "#/$defs/TransformNodeDocument" }, @@ -5975,7 +8629,7 @@ const schema65 = { { $ref: "#/$defs/ExtensionNodeDocument" }, ], }; -const schema66 = { +const schema78 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { @@ -6001,7 +8655,7 @@ const schema66 = { title: "SourceNodeDocument", type: "object", }; -const schema67 = { +const schema79 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, properties: { connector: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Connector" }, @@ -6011,7 +8665,7 @@ const schema67 = { title: "SourceNodeConfigDocument", type: "object", }; -const schema69 = { +const schema81 = { additionalProperties: false, properties: { body: { @@ -6030,7 +8684,7 @@ const schema69 = { title: "RequestSpecDocument", type: "object", }; -const schema70 = { +const schema82 = { description: "The closed set of HTTP methods a `RequestSpec` may declare.\n\nA `StrEnum` (matching the `TransformationKind`/`JoinType` convention in `graph.py`) so callers\nget a named, importable type that still serializes to/from its plain string value stably in\nYAML and JSON. An out-of-set value fails validation with a clear error at the Pydantic\nboundary. `HEAD`/`OPTIONS` are intentionally omitted (no source currently needs them); extend\nby adding a member later without touching callers.\n\nAttributes:\n GET: Retrieve a resource. The default method (a simple GET needs no explicit spec).\n POST: Create a resource / submit a query body.\n PUT: Replace a resource.\n PATCH: Partially update a resource.\n DELETE: Remove a resource.", enum: ["GET", "POST", "PUT", "PATCH", "DELETE"], @@ -6038,13 +8692,13 @@ const schema70 = { type: "string", }; -function validate61( +function validate71( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate61.evaluated; + const evaluated0 = validate71.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -6080,7 +8734,7 @@ function validate61( let valid1 = false; const _errs4 = errors; if ( - !validate35(data0, { + !validate45(data0, { instancePath: instancePath + "/body", parentData: data, parentDataProperty: "body", @@ -6088,7 +8742,7 @@ function validate61( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -6219,7 +8873,7 @@ function validate61( instancePath: instancePath + "/method", schemaPath: "#/$defs/HttpMethod/enum", keyword: "enum", - params: { allowedValues: schema70.enum }, + params: { allowedValues: schema82.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -6282,18 +8936,18 @@ function validate61( } errors++; } - validate61.errors = vErrors; + validate71.errors = vErrors; return errors === 0; } -validate61.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate71.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate60( +function validate70( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate60.evaluated; + const evaluated0 = validate70.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -6437,7 +9091,7 @@ function validate60( let valid5 = false; const _errs17 = errors; if ( - !validate61(data3, { + !validate71(data3, { instancePath: instancePath + "/request", parentData: data, parentDataProperty: "request", @@ -6445,7 +9099,7 @@ function validate60( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate61.errors : vErrors.concat(validate61.errors); + vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors); errors = vErrors.length; } var _valid2 = _errs17 === errors; @@ -6508,12 +9162,12 @@ function validate60( } errors++; } - validate60.errors = vErrors; + validate70.errors = vErrors; return errors === 0; } -validate60.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate70.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema71 = { +const schema83 = { additionalProperties: false, properties: { field: { minLength: 1, title: "Field", type: "string" }, @@ -6526,13 +9180,13 @@ const schema71 = { type: "object", }; -function validate65( +function validate75( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate65.evaluated; + const evaluated0 = validate75.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -6590,7 +9244,7 @@ function validate65( if (data.field !== undefined) { let data0 = data.field; if (typeof data0 === "string") { - if (func2(data0) < 1) { + if (func3(data0) < 1) { const err3 = { instancePath: instancePath + "/field", schemaPath: "#/properties/field/minLength", @@ -6643,7 +9297,7 @@ function validate65( instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/enum", keyword: "enum", - params: { allowedValues: schema71.properties.kind.enum }, + params: { allowedValues: schema83.properties.kind.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -6656,7 +9310,7 @@ function validate65( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -6664,13 +9318,13 @@ function validate65( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } if (data.params !== undefined) { if ( - !validate35(data.params, { + !validate45(data.params, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -6678,7 +9332,7 @@ function validate65( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -6697,12 +9351,12 @@ function validate65( } errors++; } - validate65.errors = vErrors; + validate75.errors = vErrors; return errors === 0; } -validate65.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate75.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema72 = { +const schema84 = { additionalProperties: false, properties: { cast_to: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Cast To" }, @@ -6726,7 +9380,7 @@ const schema72 = { title: "NodeFieldDocument", type: "object", }; -const schema73 = { +const schema85 = { additionalProperties: false, description: "One deterministic provider-specific schema annotation, never a credential.", properties: { @@ -6741,7 +9395,7 @@ const schema73 = { title: "ProviderExtension", type: "object", }; -const schema74 = { +const schema86 = { anyOf: [ { $ref: "#/$defs/NotNullFieldTest" }, { $ref: "#/$defs/UniqueFieldTest" }, @@ -6749,7 +9403,7 @@ const schema74 = { { $ref: "#/$defs/RelationshipsFieldTest" }, ], }; -const schema75 = { +const schema87 = { additionalProperties: false, properties: { field: { default: null, title: "Field", type: "null" }, @@ -6763,13 +9417,13 @@ const schema75 = { type: "object", }; -function validate72( +function validate82( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate72.evaluated; + const evaluated0 = validate82.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -6867,7 +9521,7 @@ function validate72( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -6875,7 +9529,7 @@ function validate72( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -6945,12 +9599,12 @@ function validate72( } errors++; } - validate72.errors = vErrors; + validate82.errors = vErrors; return errors === 0; } -validate72.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate82.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema77 = { +const schema89 = { additionalProperties: false, properties: { field: { default: null, title: "Field", type: "null" }, @@ -6964,13 +9618,13 @@ const schema77 = { type: "object", }; -function validate75( +function validate85( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate75.evaluated; + const evaluated0 = validate85.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -7068,7 +9722,7 @@ function validate75( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -7076,7 +9730,7 @@ function validate75( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -7146,12 +9800,12 @@ function validate75( } errors++; } - validate75.errors = vErrors; + validate85.errors = vErrors; return errors === 0; } -validate75.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate85.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema79 = { +const schema91 = { additionalProperties: false, properties: { field: { default: null, title: "Field", type: "null" }, @@ -7165,13 +9819,13 @@ const schema79 = { type: "object", }; -function validate78( +function validate88( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate78.evaluated; + const evaluated0 = validate88.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -7284,7 +9938,7 @@ function validate78( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -7292,7 +9946,7 @@ function validate78( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -7362,12 +10016,12 @@ function validate78( } errors++; } - validate78.errors = vErrors; + validate88.errors = vErrors; return errors === 0; } -validate78.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate88.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema81 = { +const schema93 = { additionalProperties: false, properties: { field: { minLength: 1, title: "Field", type: "string" }, @@ -7381,13 +10035,13 @@ const schema81 = { type: "object", }; -function validate81( +function validate91( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate81.evaluated; + const evaluated0 = validate91.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -7466,7 +10120,7 @@ function validate81( if (data.field !== undefined) { let data0 = data.field; if (typeof data0 === "string") { - if (func2(data0) < 1) { + if (func3(data0) < 1) { const err4 = { instancePath: instancePath + "/field", schemaPath: "#/properties/field/minLength", @@ -7532,7 +10186,7 @@ function validate81( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -7540,14 +10194,14 @@ function validate81( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } if (data.to !== undefined) { let data3 = data.to; if (typeof data3 === "string") { - if (func2(data3) < 1) { + if (func3(data3) < 1) { const err8 = { instancePath: instancePath + "/to", schemaPath: "#/properties/to/minLength", @@ -7627,18 +10281,18 @@ function validate81( } errors++; } - validate81.errors = vErrors; + validate91.errors = vErrors; return errors === 0; } -validate81.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate91.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate71( +function validate81( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate71.evaluated; + const evaluated0 = validate81.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -7649,9 +10303,9 @@ function validate71( let valid0 = false; const _errs1 = errors; if ( - !validate72(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate82(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors); + vErrors = vErrors === null ? validate82.errors : vErrors.concat(validate82.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -7661,9 +10315,9 @@ function validate71( } const _errs2 = errors; if ( - !validate75(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate85(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate75.errors : vErrors.concat(validate75.errors); + vErrors = vErrors === null ? validate85.errors : vErrors.concat(validate85.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -7675,9 +10329,9 @@ function validate71( } const _errs3 = errors; if ( - !validate78(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate88(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate78.errors : vErrors.concat(validate78.errors); + vErrors = vErrors === null ? validate88.errors : vErrors.concat(validate88.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -7689,9 +10343,9 @@ function validate71( } const _errs4 = errors; if ( - !validate81(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate91(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate81.errors : vErrors.concat(validate81.errors); + vErrors = vErrors === null ? validate91.errors : vErrors.concat(validate91.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -7725,19 +10379,19 @@ function validate71( } } } - validate71.errors = vErrors; + validate81.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate71.evaluated = { dynamicProps: true, dynamicItems: false }; +validate81.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate69( +function validate79( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate69.evaluated; + const evaluated0 = validate79.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -8169,7 +10823,7 @@ function validate69( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -8177,7 +10831,7 @@ function validate69( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -8221,7 +10875,7 @@ function validate69( const len1 = data10.length; for (let i1 = 0; i1 < len1; i1++) { if ( - !validate71(data10[i1], { + !validate81(data10[i1], { instancePath: instancePath + "/tests/" + i1, parentData: data10, parentDataProperty: i1, @@ -8229,7 +10883,7 @@ function validate69( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors); + vErrors = vErrors === null ? validate81.errors : vErrors.concat(validate81.errors); errors = vErrors.length; } } @@ -8281,19 +10935,19 @@ function validate69( } errors++; } - validate69.errors = vErrors; + validate79.errors = vErrors; return errors === 0; } -validate69.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate79.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema83 = { +const schema95 = { anyOf: [ { $ref: "#/$defs/ScheduleTrigger" }, { $ref: "#/$defs/DependencyTrigger" }, { $ref: "#/$defs/ManualTrigger" }, ], }; -const schema84 = { +const schema96 = { additionalProperties: false, properties: { cron: { minLength: 1, title: "Cron", type: "string" }, @@ -8307,13 +10961,13 @@ const schema84 = { type: "object", }; -function validate88( +function validate98( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate88.evaluated; + const evaluated0 = validate98.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -8377,7 +11031,7 @@ function validate88( if (data.cron !== undefined) { let data0 = data.cron; if (typeof data0 === "string") { - if (func2(data0) < 1) { + if (func3(data0) < 1) { const err3 = { instancePath: instancePath + "/cron", schemaPath: "#/properties/cron/minLength", @@ -8512,7 +11166,7 @@ function validate88( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -8520,7 +11174,7 @@ function validate88( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -8539,12 +11193,12 @@ function validate88( } errors++; } - validate88.errors = vErrors; + validate98.errors = vErrors; return errors === 0; } -validate88.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate98.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema85 = { +const schema97 = { additionalProperties: false, properties: { cron: { default: null, title: "Cron", type: "null" }, @@ -8558,13 +11212,13 @@ const schema85 = { type: "object", }; -function validate91( +function validate101( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate91.evaluated; + const evaluated0 = validate101.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -8746,7 +11400,7 @@ function validate91( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -8754,7 +11408,7 @@ function validate91( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -8773,12 +11427,12 @@ function validate91( } errors++; } - validate91.errors = vErrors; + validate101.errors = vErrors; return errors === 0; } -validate91.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate101.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema86 = { +const schema98 = { additionalProperties: false, properties: { cron: { default: null, title: "Cron", type: "null" }, @@ -8792,13 +11446,13 @@ const schema86 = { type: "object", }; -function validate94( +function validate104( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate94.evaluated; + const evaluated0 = validate104.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -9013,7 +11667,7 @@ function validate94( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -9021,7 +11675,7 @@ function validate94( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -9040,18 +11694,18 @@ function validate94( } errors++; } - validate94.errors = vErrors; + validate104.errors = vErrors; return errors === 0; } -validate94.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate104.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate87( +function validate97( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate87.evaluated; + const evaluated0 = validate97.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -9062,9 +11716,9 @@ function validate87( let valid0 = false; const _errs1 = errors; if ( - !validate88(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate98(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate88.errors : vErrors.concat(validate88.errors); + vErrors = vErrors === null ? validate98.errors : vErrors.concat(validate98.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -9074,9 +11728,9 @@ function validate87( } const _errs2 = errors; if ( - !validate91(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate101(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate91.errors : vErrors.concat(validate91.errors); + vErrors = vErrors === null ? validate101.errors : vErrors.concat(validate101.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -9088,9 +11742,9 @@ function validate87( } const _errs3 = errors; if ( - !validate94(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate104(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate94.errors : vErrors.concat(validate94.errors); + vErrors = vErrors === null ? validate104.errors : vErrors.concat(validate104.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -9124,13 +11778,13 @@ function validate87( } } } - validate87.errors = vErrors; + validate97.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate87.evaluated = { dynamicProps: true, dynamicItems: false }; +validate97.evaluated = { dynamicProps: true, dynamicItems: false }; -const schema87 = { +const schema99 = { additionalProperties: false, properties: { color: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Color" }, @@ -9140,7 +11794,7 @@ const schema87 = { title: "NodeVisualDocument", type: "object", }; -const schema88 = { +const schema100 = { additionalProperties: false, properties: { x: { title: "X", type: "number" }, y: { title: "Y", type: "number" } }, required: ["x", "y"], @@ -9148,13 +11802,13 @@ const schema88 = { type: "object", }; -function validate98( +function validate108( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate98.evaluated; + const evaluated0 = validate108.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -9473,18 +12127,18 @@ function validate98( } errors++; } - validate98.errors = vErrors; + validate108.errors = vErrors; return errors === 0; } -validate98.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate108.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate59( +function validate69( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate59.evaluated; + const evaluated0 = validate69.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -9580,7 +12234,7 @@ function validate59( errors++; } for (const key0 in data) { - if (!func1.call(schema66.properties, key0)) { + if (!func1.call(schema78.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -9598,7 +12252,7 @@ function validate59( } if (data.config !== undefined) { if ( - !validate60(data.config, { + !validate70(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -9606,7 +12260,7 @@ function validate59( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate60.errors : vErrors.concat(validate60.errors); + vErrors = vErrors === null ? validate70.errors : vErrors.concat(validate70.errors); errors = vErrors.length; } } @@ -9616,7 +12270,7 @@ function validate59( let valid2 = false; const _errs7 = errors; if ( - !validate65(data1, { + !validate75(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -9624,7 +12278,7 @@ function validate59( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate65.errors : vErrors.concat(validate65.errors); + vErrors = vErrors === null ? validate75.errors : vErrors.concat(validate75.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -9678,7 +12332,7 @@ function validate59( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate69(data2[i0], { + !validate79(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -9686,7 +12340,7 @@ function validate59( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate69.errors : vErrors.concat(validate69.errors); + vErrors = vErrors === null ? validate79.errors : vErrors.concat(validate79.errors); errors = vErrors.length; } } @@ -9746,7 +12400,7 @@ function validate59( let valid5 = false; const _errs19 = errors; if ( - !validate60(data6, { + !validate70(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -9754,7 +12408,7 @@ function validate59( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate60.errors : vErrors.concat(validate60.errors); + vErrors = vErrors === null ? validate70.errors : vErrors.concat(validate70.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -9808,7 +12462,7 @@ function validate59( let valid6 = false; const _errs25 = errors; if ( - !validate87(data7, { + !validate97(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -9816,7 +12470,7 @@ function validate59( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate87.errors : vErrors.concat(validate87.errors); + vErrors = vErrors === null ? validate97.errors : vErrors.concat(validate97.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -9903,7 +12557,7 @@ function validate59( let valid7 = false; const _errs32 = errors; if ( - !validate98(data9, { + !validate108(data9, { instancePath: instancePath + "/visual", parentData: data, parentDataProperty: "visual", @@ -9911,7 +12565,7 @@ function validate59( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate98.errors : vErrors.concat(validate98.errors); + vErrors = vErrors === null ? validate108.errors : vErrors.concat(validate108.errors); errors = vErrors.length; } var _valid3 = _errs32 === errors; @@ -9974,12 +12628,12 @@ function validate59( } errors++; } - validate59.errors = vErrors; + validate69.errors = vErrors; return errors === 0; } -validate59.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate69.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema89 = { +const schema101 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { @@ -10005,7 +12659,7 @@ const schema89 = { title: "TransformNodeDocument", type: "object", }; -const schema90 = { +const schema102 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, properties: { join: { anyOf: [{ $ref: "#/$defs/TransformJoinDocument" }, { type: "null" }], default: null }, @@ -10018,7 +12672,7 @@ const schema90 = { title: "TransformNodeConfigDocument", type: "object", }; -const schema92 = { +const schema104 = { additionalProperties: false, properties: { keys: { @@ -10035,7 +12689,7 @@ const schema92 = { title: "TransformJoinDocument", type: "object", }; -const schema93 = { +const schema105 = { additionalProperties: false, properties: { left: { minLength: 1, title: "Left", type: "string" }, @@ -10045,20 +12699,20 @@ const schema93 = { title: "ExecutableJoinKeyDocument", type: "object", }; -const schema94 = { +const schema106 = { description: "BigQuery join kinds supported by an executable transform node.", enum: ["inner", "left", "right", "full"], title: "ExecutableJoinType", type: "string", }; -function validate103( +function validate113( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate103.evaluated; + const evaluated0 = validate113.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -10220,7 +12874,7 @@ function validate103( if (data1.left !== undefined) { let data2 = data1.left; if (typeof data2 === "string") { - if (func2(data2) < 1) { + if (func3(data2) < 1) { const err9 = { instancePath: instancePath + "/keys/" + i0 + "/left", schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/left/minLength", @@ -10254,7 +12908,7 @@ function validate103( if (data1.right !== undefined) { let data3 = data1.right; if (typeof data3 === "string") { - if (func2(data3) < 1) { + if (func3(data3) < 1) { const err11 = { instancePath: instancePath + "/keys/" + i0 + "/right", schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/right/minLength", @@ -10320,7 +12974,7 @@ function validate103( if (data.left_input !== undefined) { let data4 = data.left_input; if (typeof data4 === "string") { - if (func2(data4) < 1) { + if (func3(data4) < 1) { const err15 = { instancePath: instancePath + "/left_input", schemaPath: "#/properties/left_input/minLength", @@ -10354,7 +13008,7 @@ function validate103( if (data.right_input !== undefined) { let data5 = data.right_input; if (typeof data5 === "string") { - if (func2(data5) < 1) { + if (func3(data5) < 1) { const err17 = { instancePath: instancePath + "/right_input", schemaPath: "#/properties/right_input/minLength", @@ -10407,7 +13061,7 @@ function validate103( instancePath: instancePath + "/type", schemaPath: "#/$defs/ExecutableJoinType/enum", keyword: "enum", - params: { allowedValues: schema94.enum }, + params: { allowedValues: schema106.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -10433,12 +13087,12 @@ function validate103( } errors++; } - validate103.errors = vErrors; + validate113.errors = vErrors; return errors === 0; } -validate103.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate113.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema95 = { +const schema107 = { anyOf: [ { $ref: "#/$defs/TruncateStringOperation" }, { $ref: "#/$defs/TrimWhitespaceOperation" }, @@ -10446,7 +13100,7 @@ const schema95 = { { $ref: "#/$defs/FilterRowsOperation" }, ], }; -const schema96 = { +const schema108 = { additionalProperties: false, properties: { kind: { const: "truncate_string", title: "Kind", type: "string" }, @@ -10457,7 +13111,7 @@ const schema96 = { title: "TruncateStringOperation", type: "object", }; -const schema97 = { +const schema109 = { additionalProperties: false, properties: { field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, @@ -10467,15 +13121,15 @@ const schema97 = { title: "TruncateStringParamsDocument", type: "object", }; -const pattern8 = new RegExp("^[A-Za-z_][A-Za-z0-9_]*$", "u"); +const pattern10 = new RegExp("^[A-Za-z_][A-Za-z0-9_]*$", "u"); -function validate106( +function validate116( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate106.evaluated; + const evaluated0 = validate116.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -10565,7 +13219,7 @@ function validate106( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -10573,7 +13227,7 @@ function validate106( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -10630,7 +13284,7 @@ function validate106( if (data2.field !== undefined) { let data3 = data2.field; if (typeof data3 === "string") { - if (!pattern8.test(data3)) { + if (!pattern10.test(data3)) { const err8 = { instancePath: instancePath + "/params/field", schemaPath: "#/$defs/TruncateStringParamsDocument/properties/field/pattern", @@ -10727,12 +13381,12 @@ function validate106( } errors++; } - validate106.errors = vErrors; + validate116.errors = vErrors; return errors === 0; } -validate106.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate116.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema98 = { +const schema110 = { additionalProperties: false, properties: { kind: { const: "trim_whitespace", title: "Kind", type: "string" }, @@ -10743,7 +13397,7 @@ const schema98 = { title: "TrimWhitespaceOperation", type: "object", }; -const schema99 = { +const schema111 = { additionalProperties: false, properties: { field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" } }, required: ["field"], @@ -10751,13 +13405,13 @@ const schema99 = { type: "object", }; -function validate109( +function validate119( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate109.evaluated; + const evaluated0 = validate119.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -10847,7 +13501,7 @@ function validate109( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -10855,7 +13509,7 @@ function validate109( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -10897,7 +13551,7 @@ function validate109( if (data2.field !== undefined) { let data3 = data2.field; if (typeof data3 === "string") { - if (!pattern8.test(data3)) { + if (!pattern10.test(data3)) { const err7 = { instancePath: instancePath + "/params/field", schemaPath: "#/$defs/TrimWhitespaceParamsDocument/properties/field/pattern", @@ -10959,12 +13613,12 @@ function validate109( } errors++; } - validate109.errors = vErrors; + validate119.errors = vErrors; return errors === 0; } -validate109.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate119.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema100 = { +const schema112 = { additionalProperties: false, properties: { kind: { const: "default_value", title: "Kind", type: "string" }, @@ -10975,7 +13629,7 @@ const schema100 = { title: "DefaultValueOperation", type: "object", }; -const schema101 = { +const schema113 = { additionalProperties: false, properties: { default: { @@ -10989,13 +13643,13 @@ const schema101 = { type: "object", }; -function validate112( +function validate122( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate112.evaluated; + const evaluated0 = validate122.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -11085,7 +13739,7 @@ function validate112( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -11093,7 +13747,7 @@ function validate112( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -11251,7 +13905,7 @@ function validate112( if (data2.field !== undefined) { let data4 = data2.field; if (typeof data4 === "string") { - if (!pattern8.test(data4)) { + if (!pattern10.test(data4)) { const err13 = { instancePath: instancePath + "/params/field", schemaPath: "#/$defs/DefaultValueParamsDocument/properties/field/pattern", @@ -11313,12 +13967,12 @@ function validate112( } errors++; } - validate112.errors = vErrors; + validate122.errors = vErrors; return errors === 0; } -validate112.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate122.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema102 = { +const schema114 = { additionalProperties: false, properties: { kind: { const: "filter_rows", title: "Kind", type: "string" }, @@ -11329,7 +13983,7 @@ const schema102 = { title: "FilterRowsOperation", type: "object", }; -const schema103 = { +const schema115 = { additionalProperties: false, properties: { conditions: { @@ -11344,13 +13998,13 @@ const schema103 = { title: "FilterRowsParamsDocument", type: "object", }; -const schema106 = { +const schema118 = { description: "How a filter's flat condition list combines.", enum: ["all", "any"], title: "MatchLogic", type: "string", }; -const schema104 = { +const schema116 = { additionalProperties: false, properties: { field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, @@ -11382,20 +14036,20 @@ const schema104 = { title: "FieldConditionDocument", type: "object", }; -const schema105 = { +const schema117 = { description: "Closed comparison grammar for ``filter_rows``.", enum: ["eq", "ne", "gt", "gte", "lt", "lte", "in", "not_in", "is_null", "is_not_null"], title: "ComparisonOperator", type: "string", }; -function validate118( +function validate128( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate118.evaluated; + const evaluated0 = validate128.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -11453,7 +14107,7 @@ function validate118( if (data.field !== undefined) { let data0 = data.field; if (typeof data0 === "string") { - if (!pattern8.test(data0)) { + if (!pattern10.test(data0)) { const err3 = { instancePath: instancePath + "/field", schemaPath: "#/properties/field/pattern", @@ -11517,7 +14171,7 @@ function validate118( instancePath: instancePath + "/op", schemaPath: "#/$defs/ComparisonOperator/enum", keyword: "enum", - params: { allowedValues: schema105.enum }, + params: { allowedValues: schema117.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -11783,18 +14437,18 @@ function validate118( } errors++; } - validate118.errors = vErrors; + validate128.errors = vErrors; return errors === 0; } -validate118.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate128.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate117( +function validate127( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate117.evaluated; + const evaluated0 = validate127.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -11855,7 +14509,7 @@ function validate117( const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate118(data0[i0], { + !validate128(data0[i0], { instancePath: instancePath + "/conditions/" + i0, parentData: data0, parentDataProperty: i0, @@ -11863,7 +14517,7 @@ function validate117( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate118.errors : vErrors.concat(validate118.errors); + vErrors = vErrors === null ? validate128.errors : vErrors.concat(validate128.errors); errors = vErrors.length; } } @@ -11905,7 +14559,7 @@ function validate117( instancePath: instancePath + "/logic", schemaPath: "#/$defs/MatchLogic/enum", keyword: "enum", - params: { allowedValues: schema106.enum }, + params: { allowedValues: schema118.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -11931,18 +14585,18 @@ function validate117( } errors++; } - validate117.errors = vErrors; + validate127.errors = vErrors; return errors === 0; } -validate117.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate127.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate115( +function validate125( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate115.evaluated; + const evaluated0 = validate125.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -12032,7 +14686,7 @@ function validate115( } if (data.metadata !== undefined) { if ( - !validate35(data.metadata, { + !validate45(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -12040,13 +14694,13 @@ function validate115( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } if (data.params !== undefined) { if ( - !validate117(data.params, { + !validate127(data.params, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -12054,7 +14708,7 @@ function validate115( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate117.errors : vErrors.concat(validate117.errors); + vErrors = vErrors === null ? validate127.errors : vErrors.concat(validate127.errors); errors = vErrors.length; } } @@ -12073,18 +14727,18 @@ function validate115( } errors++; } - validate115.errors = vErrors; + validate125.errors = vErrors; return errors === 0; } -validate115.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate125.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate105( +function validate115( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate105.evaluated; + const evaluated0 = validate115.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -12095,9 +14749,9 @@ function validate105( let valid0 = false; const _errs1 = errors; if ( - !validate106(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate116(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate106.errors : vErrors.concat(validate106.errors); + vErrors = vErrors === null ? validate116.errors : vErrors.concat(validate116.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -12107,9 +14761,9 @@ function validate105( } const _errs2 = errors; if ( - !validate109(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate119(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate109.errors : vErrors.concat(validate109.errors); + vErrors = vErrors === null ? validate119.errors : vErrors.concat(validate119.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -12121,9 +14775,9 @@ function validate105( } const _errs3 = errors; if ( - !validate112(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate122(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate112.errors : vErrors.concat(validate112.errors); + vErrors = vErrors === null ? validate122.errors : vErrors.concat(validate122.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -12135,9 +14789,9 @@ function validate105( } const _errs4 = errors; if ( - !validate115(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate125(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate115.errors : vErrors.concat(validate115.errors); + vErrors = vErrors === null ? validate125.errors : vErrors.concat(validate125.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -12171,19 +14825,19 @@ function validate105( } } } - validate105.errors = vErrors; + validate115.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate105.evaluated = { dynamicProps: true, dynamicItems: false }; +validate115.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate102( +function validate112( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate102.evaluated; + const evaluated0 = validate112.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -12197,7 +14851,7 @@ function validate102( let valid3 = false; const _errs5 = errors; if ( - !validate103(data1, { + !validate113(data1, { instancePath: instancePath + "/join", parentData: data, parentDataProperty: "join", @@ -12205,7 +14859,7 @@ function validate102( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate103.errors : vErrors.concat(validate103.errors); + vErrors = vErrors === null ? validate113.errors : vErrors.concat(validate113.errors); errors = vErrors.length; } var _valid0 = _errs5 === errors; @@ -12259,7 +14913,7 @@ function validate102( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate105(data2[i0], { + !validate115(data2[i0], { instancePath: instancePath + "/operations/" + i0, parentData: data2, parentDataProperty: i0, @@ -12267,7 +14921,7 @@ function validate102( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate105.errors : vErrors.concat(validate105.errors); + vErrors = vErrors === null ? validate115.errors : vErrors.concat(validate115.errors); errors = vErrors.length; } } @@ -12302,18 +14956,18 @@ function validate102( } errors++; } - validate102.errors = vErrors; + validate112.errors = vErrors; return errors === 0; } -validate102.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate112.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate101( +function validate111( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate101.evaluated; + const evaluated0 = validate111.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -12409,7 +15063,7 @@ function validate101( errors++; } for (const key0 in data) { - if (!func1.call(schema89.properties, key0)) { + if (!func1.call(schema101.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -12427,7 +15081,7 @@ function validate101( } if (data.config !== undefined) { if ( - !validate102(data.config, { + !validate112(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -12435,7 +15089,7 @@ function validate101( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate102.errors : vErrors.concat(validate102.errors); + vErrors = vErrors === null ? validate112.errors : vErrors.concat(validate112.errors); errors = vErrors.length; } } @@ -12445,7 +15099,7 @@ function validate101( let valid2 = false; const _errs7 = errors; if ( - !validate65(data1, { + !validate75(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -12453,7 +15107,7 @@ function validate101( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate65.errors : vErrors.concat(validate65.errors); + vErrors = vErrors === null ? validate75.errors : vErrors.concat(validate75.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -12507,7 +15161,7 @@ function validate101( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate69(data2[i0], { + !validate79(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -12515,7 +15169,7 @@ function validate101( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate69.errors : vErrors.concat(validate69.errors); + vErrors = vErrors === null ? validate79.errors : vErrors.concat(validate79.errors); errors = vErrors.length; } } @@ -12575,7 +15229,7 @@ function validate101( let valid5 = false; const _errs19 = errors; if ( - !validate102(data6, { + !validate112(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -12583,7 +15237,7 @@ function validate101( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate102.errors : vErrors.concat(validate102.errors); + vErrors = vErrors === null ? validate112.errors : vErrors.concat(validate112.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -12637,7 +15291,7 @@ function validate101( let valid6 = false; const _errs25 = errors; if ( - !validate87(data7, { + !validate97(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -12645,7 +15299,7 @@ function validate101( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate87.errors : vErrors.concat(validate87.errors); + vErrors = vErrors === null ? validate97.errors : vErrors.concat(validate97.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -12732,7 +15386,7 @@ function validate101( let valid7 = false; const _errs32 = errors; if ( - !validate98(data9, { + !validate108(data9, { instancePath: instancePath + "/visual", parentData: data, parentDataProperty: "visual", @@ -12740,7 +15394,7 @@ function validate101( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate98.errors : vErrors.concat(validate98.errors); + vErrors = vErrors === null ? validate108.errors : vErrors.concat(validate108.errors); errors = vErrors.length; } var _valid3 = _errs32 === errors; @@ -12803,12 +15457,12 @@ function validate101( } errors++; } - validate101.errors = vErrors; + validate111.errors = vErrors; return errors === 0; } -validate101.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate111.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema107 = { +const schema119 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { @@ -12834,7 +15488,7 @@ const schema107 = { title: "TargetNodeDocument", type: "object", }; -const schema108 = { +const schema120 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, properties: { writer: { anyOf: [{ $ref: "#/$defs/WriterDocument" }, { type: "null" }], default: null }, @@ -12842,7 +15496,7 @@ const schema108 = { title: "TargetNodeConfigDocument", type: "object", }; -const schema110 = { +const schema122 = { additionalProperties: false, properties: { clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, @@ -12876,7 +15530,7 @@ const schema110 = { title: "WriterDocument", type: "object", }; -const schema111 = { +const schema123 = { additionalProperties: false, properties: { business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, @@ -12888,19 +15542,19 @@ const schema111 = { title: "DestinationDocument", type: "object", }; -const schema114 = { +const schema126 = { description: "How a writer handles declared columns absent from an existing target.", enum: ["strict", "additive"], title: "SchemaEvolution", type: "string", }; -const schema115 = { +const schema127 = { description: "Supported load strategies.", enum: ["scd1", "scd2", "snapshot", "incremental", "replace"], title: "WriteMode", type: "string", }; -const schema112 = { +const schema124 = { additionalProperties: false, properties: { field: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Field" }, @@ -12914,7 +15568,7 @@ const schema112 = { title: "PartitioningDocument", type: "object", }; -const schema113 = { +const schema125 = { description: "The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare.\n\nA `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in\n`dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON;\nan out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately\nlimited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future\nmember (see `steering/02-engineering.md` on avoiding speculative generality).\n\nAttributes:\n HOUR: Hourly partitions.\n DAY: Daily partitions — the common case and BigQuery's default granularity.\n MONTH: Monthly partitions.\n YEAR: Yearly partitions.", enum: ["hour", "day", "month", "year"], @@ -12922,13 +15576,13 @@ const schema113 = { type: "string", }; -function validate133( +function validate143( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate133.evaluated; + const evaluated0 = validate143.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -13040,7 +15694,7 @@ function validate133( instancePath: instancePath + "/granularity", schemaPath: "#/$defs/PartitioningType/enum", keyword: "enum", - params: { allowedValues: schema113.enum }, + params: { allowedValues: schema125.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -13083,18 +15737,18 @@ function validate133( } errors++; } - validate133.errors = vErrors; + validate143.errors = vErrors; return errors === 0; } -validate133.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate143.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate132( +function validate142( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate132.evaluated; + const evaluated0 = validate142.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -13370,7 +16024,7 @@ function validate132( if (data3.dataset !== undefined) { let data6 = data3.dataset; if (typeof data6 === "string") { - if (func2(data6) < 1) { + if (func3(data6) < 1) { const err14 = { instancePath: instancePath + "/destination/dataset", schemaPath: "#/$defs/DestinationDocument/properties/dataset/minLength", @@ -13469,7 +16123,7 @@ function validate132( if (data3.table !== undefined) { let data8 = data3.table; if (typeof data8 === "string") { - if (func2(data8) < 1) { + if (func3(data8) < 1) { const err19 = { instancePath: instancePath + "/destination/table", schemaPath: "#/$defs/DestinationDocument/properties/table/minLength", @@ -13572,7 +16226,7 @@ function validate132( let valid9 = false; const _errs34 = errors; if ( - !validate133(data10, { + !validate143(data10, { instancePath: instancePath + "/partitioning", parentData: data, parentDataProperty: "partitioning", @@ -13580,7 +16234,7 @@ function validate132( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate133.errors : vErrors.concat(validate133.errors); + vErrors = vErrors === null ? validate143.errors : vErrors.concat(validate143.errors); errors = vErrors.length; } var _valid2 = _errs34 === errors; @@ -13650,7 +16304,7 @@ function validate132( instancePath: instancePath + "/schema_evolution", schemaPath: "#/$defs/SchemaEvolution/enum", keyword: "enum", - params: { allowedValues: schema114.enum }, + params: { allowedValues: schema126.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -13683,7 +16337,7 @@ function validate132( instancePath: instancePath + "/transport", schemaPath: "#/properties/transport/enum", keyword: "enum", - params: { allowedValues: schema110.properties.transport.enum }, + params: { allowedValues: schema122.properties.transport.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -13722,7 +16376,7 @@ function validate132( instancePath: instancePath + "/write_mode", schemaPath: "#/$defs/WriteMode/enum", keyword: "enum", - params: { allowedValues: schema115.enum }, + params: { allowedValues: schema127.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -13748,18 +16402,18 @@ function validate132( } errors++; } - validate132.errors = vErrors; + validate142.errors = vErrors; return errors === 0; } -validate132.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate142.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate131( +function validate141( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate131.evaluated; + const evaluated0 = validate141.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -13773,7 +16427,7 @@ function validate131( let valid3 = false; const _errs5 = errors; if ( - !validate132(data1, { + !validate142(data1, { instancePath: instancePath + "/writer", parentData: data, parentDataProperty: "writer", @@ -13781,7 +16435,7 @@ function validate131( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate132.errors : vErrors.concat(validate132.errors); + vErrors = vErrors === null ? validate142.errors : vErrors.concat(validate142.errors); errors = vErrors.length; } var _valid0 = _errs5 === errors; @@ -13844,18 +16498,18 @@ function validate131( } errors++; } - validate131.errors = vErrors; + validate141.errors = vErrors; return errors === 0; } -validate131.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate141.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate130( +function validate140( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate130.evaluated; + const evaluated0 = validate140.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -13951,7 +16605,7 @@ function validate130( errors++; } for (const key0 in data) { - if (!func1.call(schema107.properties, key0)) { + if (!func1.call(schema119.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -13969,7 +16623,7 @@ function validate130( } if (data.config !== undefined) { if ( - !validate131(data.config, { + !validate141(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -13977,7 +16631,7 @@ function validate130( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate131.errors : vErrors.concat(validate131.errors); + vErrors = vErrors === null ? validate141.errors : vErrors.concat(validate141.errors); errors = vErrors.length; } } @@ -13987,7 +16641,7 @@ function validate130( let valid2 = false; const _errs7 = errors; if ( - !validate65(data1, { + !validate75(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -13995,7 +16649,7 @@ function validate130( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate65.errors : vErrors.concat(validate65.errors); + vErrors = vErrors === null ? validate75.errors : vErrors.concat(validate75.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -14049,7 +16703,7 @@ function validate130( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate69(data2[i0], { + !validate79(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -14057,7 +16711,7 @@ function validate130( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate69.errors : vErrors.concat(validate69.errors); + vErrors = vErrors === null ? validate79.errors : vErrors.concat(validate79.errors); errors = vErrors.length; } } @@ -14117,7 +16771,7 @@ function validate130( let valid5 = false; const _errs19 = errors; if ( - !validate131(data6, { + !validate141(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -14125,7 +16779,7 @@ function validate130( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate131.errors : vErrors.concat(validate131.errors); + vErrors = vErrors === null ? validate141.errors : vErrors.concat(validate141.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -14179,7 +16833,7 @@ function validate130( let valid6 = false; const _errs25 = errors; if ( - !validate87(data7, { + !validate97(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -14187,7 +16841,7 @@ function validate130( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate87.errors : vErrors.concat(validate87.errors); + vErrors = vErrors === null ? validate97.errors : vErrors.concat(validate97.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -14274,7 +16928,7 @@ function validate130( let valid7 = false; const _errs32 = errors; if ( - !validate98(data9, { + !validate108(data9, { instancePath: instancePath + "/visual", parentData: data, parentDataProperty: "visual", @@ -14282,7 +16936,7 @@ function validate130( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate98.errors : vErrors.concat(validate98.errors); + vErrors = vErrors === null ? validate108.errors : vErrors.concat(validate108.errors); errors = vErrors.length; } var _valid3 = _errs32 === errors; @@ -14345,12 +16999,12 @@ function validate130( } errors++; } - validate130.errors = vErrors; + validate140.errors = vErrors; return errors === 0; } -validate130.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate140.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema116 = { +const schema128 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { @@ -14376,15 +17030,15 @@ const schema116 = { title: "ExtensionNodeDocument", type: "object", }; -const schema117 = { not: { enum: ["source", "transform", "target"] }, type: "string" }; +const schema129 = { not: { enum: ["source", "transform", "target"] }, type: "string" }; -function validate143( +function validate153( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate143.evaluated; + const evaluated0 = validate153.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -14480,7 +17134,7 @@ function validate143( errors++; } for (const key0 in data) { - if (!func1.call(schema116.properties, key0)) { + if (!func1.call(schema128.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -14498,7 +17152,7 @@ function validate143( } if (data.config !== undefined) { if ( - !validate35(data.config, { + !validate45(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -14506,7 +17160,7 @@ function validate143( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } } @@ -14516,7 +17170,7 @@ function validate143( let valid2 = false; const _errs7 = errors; if ( - !validate65(data1, { + !validate75(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -14524,7 +17178,7 @@ function validate143( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate65.errors : vErrors.concat(validate65.errors); + vErrors = vErrors === null ? validate75.errors : vErrors.concat(validate75.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -14578,7 +17232,7 @@ function validate143( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate69(data2[i0], { + !validate79(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -14586,7 +17240,7 @@ function validate143( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate69.errors : vErrors.concat(validate69.errors); + vErrors = vErrors === null ? validate79.errors : vErrors.concat(validate79.errors); errors = vErrors.length; } } @@ -14646,7 +17300,7 @@ function validate143( let valid5 = false; const _errs19 = errors; if ( - !validate35(data6, { + !validate45(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -14654,7 +17308,7 @@ function validate143( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors); + vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -14708,7 +17362,7 @@ function validate143( let valid6 = false; const _errs25 = errors; if ( - !validate87(data7, { + !validate97(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -14716,7 +17370,7 @@ function validate143( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate87.errors : vErrors.concat(validate87.errors); + vErrors = vErrors === null ? validate97.errors : vErrors.concat(validate97.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -14802,86 +17456,510 @@ function validate143( message: "must NOT be valid", }; if (vErrors === null) { - vErrors = [err17]; + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } else { + errors = _errs31; + if (vErrors !== null) { + if (_errs31) { + vErrors.length = _errs31; + } else { + vErrors = null; + } + } + } + } + if (data.visual !== undefined) { + let data9 = data.visual; + const _errs34 = errors; + let valid9 = false; + const _errs35 = errors; + if ( + !validate108(data9, { + instancePath: instancePath + "/visual", + parentData: data, + parentDataProperty: "visual", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate108.errors : vErrors.concat(validate108.errors); + errors = vErrors.length; + } + var _valid3 = _errs35 === errors; + valid9 = valid9 || _valid3; + const _errs36 = errors; + if (data9 !== null) { + const err18 = { + instancePath: instancePath + "/visual", + schemaPath: "#/properties/visual/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } + var _valid3 = _errs36 === errors; + valid9 = valid9 || _valid3; + if (!valid9) { + const err19 = { + instancePath: instancePath + "/visual", + schemaPath: "#/properties/visual/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } else { + errors = _errs34; + if (vErrors !== null) { + if (_errs34) { + vErrors.length = _errs34; + } else { + vErrors = null; + } + } + } + } + } else { + const err20 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); + } + errors++; + } + validate153.errors = vErrors; + return errors === 0; +} +validate153.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate68( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate68.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + const _errs0 = errors; + let valid0 = false; + const _errs1 = errors; + if ( + !validate69(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate69.errors : vErrors.concat(validate69.errors); + errors = vErrors.length; + } + var _valid0 = _errs1 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + var props0 = true; + } + const _errs2 = errors; + if ( + !validate111(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate111.errors : vErrors.concat(validate111.errors); + errors = vErrors.length; + } + var _valid0 = _errs2 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } + const _errs3 = errors; + if ( + !validate140(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate140.errors : vErrors.concat(validate140.errors); + errors = vErrors.length; + } + var _valid0 = _errs3 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } + const _errs4 = errors; + if ( + !validate153(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate153.errors : vErrors.concat(validate153.errors); + errors = vErrors.length; + } + var _valid0 = _errs4 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } + if (!valid0) { + const err0 = { + instancePath, + schemaPath: "#/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } else { + errors = _errs0; + if (vErrors !== null) { + if (_errs0) { + vErrors.length = _errs0; + } else { + vErrors = null; + } + } + } + validate68.errors = vErrors; + evaluated0.props = props0; + return errors === 0; +} +validate68.evaluated = { dynamicProps: true, dynamicItems: false }; + +function validate42( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate42.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.name === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "edges" || key0 === "name" || key0 === "nodes" || key0 === "trigger")) { + const err1 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + } + if (data.edges !== undefined) { + let data0 = data.edges; + if (Array.isArray(data0)) { + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + if ( + !validate43(data0[i0], { + instancePath: instancePath + "/edges/" + i0, + parentData: data0, + parentDataProperty: i0, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate43.errors : vErrors.concat(validate43.errors); + errors = vErrors.length; + } + } + } else { + const err2 = { + instancePath: instancePath + "/edges", + schemaPath: "#/properties/edges/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.name !== undefined) { + if (typeof data.name !== "string") { + const err3 = { + instancePath: instancePath + "/name", + schemaPath: "#/properties/name/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.nodes !== undefined) { + let data3 = data.nodes; + if (Array.isArray(data3)) { + const len1 = data3.length; + for (let i1 = 0; i1 < len1; i1++) { + if ( + !validate68(data3[i1], { + instancePath: instancePath + "/nodes/" + i1, + parentData: data3, + parentDataProperty: i1, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate68.errors : vErrors.concat(validate68.errors); + errors = vErrors.length; + } + } + } else { + const err4 = { + instancePath: instancePath + "/nodes", + schemaPath: "#/properties/nodes/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.trigger !== undefined) { + let data5 = data.trigger; + const _errs11 = errors; + let valid5 = false; + const _errs12 = errors; + if ( + !validate97(data5, { + instancePath: instancePath + "/trigger", + parentData: data, + parentDataProperty: "trigger", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate97.errors : vErrors.concat(validate97.errors); + errors = vErrors.length; + } + var _valid0 = _errs12 === errors; + valid5 = valid5 || _valid0; + const _errs13 = errors; + if (data5 !== null) { + const err5 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + var _valid0 = _errs13 === errors; + valid5 = valid5 || _valid0; + if (!valid5) { + const err6 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } else { + errors = _errs11; + if (vErrors !== null) { + if (_errs11) { + vErrors.length = _errs11; + } else { + vErrors = null; + } + } + } + } + } else { + const err7 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + validate42.errors = vErrors; + return errors === 0; +} +validate42.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate41( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + /*# sourceURL="urn:dander:control:contracts:v1:graph-create" */ let vErrors = null; + let errors = 0; + const evaluated0 = validate41.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.graph === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "graph" }, + message: "must have required property '" + "graph" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.document === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "document" }, + message: "must have required property '" + "document" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "document" || key0 === "graph")) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; } else { - vErrors.push(err17); + vErrors.push(err2); } errors++; - } else { - errors = _errs31; - if (vErrors !== null) { - if (_errs31) { - vErrors.length = _errs31; - } else { - vErrors = null; - } - } } } - if (data.visual !== undefined) { - let data9 = data.visual; - const _errs34 = errors; - let valid9 = false; - const _errs35 = errors; + if (data.document !== undefined) { if ( - !validate98(data9, { - instancePath: instancePath + "/visual", + !validate42(data.document, { + instancePath: instancePath + "/document", parentData: data, - parentDataProperty: "visual", + parentDataProperty: "document", rootData, dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate98.errors : vErrors.concat(validate98.errors); + vErrors = vErrors === null ? validate42.errors : vErrors.concat(validate42.errors); errors = vErrors.length; } - var _valid3 = _errs35 === errors; - valid9 = valid9 || _valid3; - const _errs36 = errors; - if (data9 !== null) { - const err18 = { - instancePath: instancePath + "/visual", - schemaPath: "#/properties/visual/anyOf/1/type", + } + if (data.graph !== undefined) { + if (typeof data.graph !== "string") { + const err3 = { + instancePath: instancePath + "/graph", + schemaPath: "#/properties/graph/type", keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err18]; - } else { - vErrors.push(err18); - } - errors++; - } - var _valid3 = _errs36 === errors; - valid9 = valid9 || _valid3; - if (!valid9) { - const err19 = { - instancePath: instancePath + "/visual", - schemaPath: "#/properties/visual/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err19]; + vErrors = [err3]; } else { - vErrors.push(err19); + vErrors.push(err3); } errors++; - } else { - errors = _errs34; - if (vErrors !== null) { - if (_errs34) { - vErrors.length = _errs34; - } else { - vErrors = null; - } - } } } } else { - const err20 = { + const err4 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -14889,123 +17967,584 @@ function validate143( message: "must be object", }; if (vErrors === null) { - vErrors = [err20]; + vErrors = [err4]; } else { - vErrors.push(err20); + vErrors.push(err4); } errors++; } - validate143.errors = vErrors; + validate41.errors = vErrors; return errors === 0; } -validate143.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate41.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +export const validateGraphPage = validate164; +const schema130 = { + $defs: { + GraphSummaryResponse: { + additionalProperties: false, + description: "Document-free metadata for one graph in a bounded hosted list response.", + properties: { + content_sha256: { pattern: "^[0-9a-f]{64}$", title: "Content Sha256", type: "string" }, + created_at: { title: "Created At", type: "string" }, + graph: { title: "Graph", type: "string" }, + project: { title: "Project", type: "string" }, + updated_at: { title: "Updated At", type: "string" }, + }, + required: ["project", "graph", "content_sha256", "created_at", "updated_at"], + title: "GraphSummaryResponse", + type: "object", + }, + }, + $id: "urn:dander:control:contracts:v1:graph-page", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + description: "A bounded graph-summary page that never embeds full graph documents.", + properties: { + items: { + items: { $ref: "#/$defs/GraphSummaryResponse" }, + maxItems: 100, + title: "Items", + type: "array", + }, + next_cursor: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Next Cursor", + }, + }, + required: ["items"], + title: "GraphPageResponse", + type: "object", +}; +const schema131 = { + additionalProperties: false, + description: "Document-free metadata for one graph in a bounded hosted list response.", + properties: { + content_sha256: { pattern: "^[0-9a-f]{64}$", title: "Content Sha256", type: "string" }, + created_at: { title: "Created At", type: "string" }, + graph: { title: "Graph", type: "string" }, + project: { title: "Project", type: "string" }, + updated_at: { title: "Updated At", type: "string" }, + }, + required: ["project", "graph", "content_sha256", "created_at", "updated_at"], + title: "GraphSummaryResponse", + type: "object", +}; -function validate58( +function validate164( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { - let vErrors = null; + /*# sourceURL="urn:dander:control:contracts:v1:graph-page" */ let vErrors = null; let errors = 0; - const evaluated0 = validate58.evaluated; + const evaluated0 = validate164.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } if (evaluated0.dynamicItems) { evaluated0.items = undefined; } - const _errs0 = errors; - let valid0 = false; - const _errs1 = errors; - if ( - !validate59(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate59.errors : vErrors.concat(validate59.errors); - errors = vErrors.length; - } - var _valid0 = _errs1 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - var props0 = true; - } - const _errs2 = errors; - if ( - !validate101(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate101.errors : vErrors.concat(validate101.errors); - errors = vErrors.length; - } - var _valid0 = _errs2 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.items === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "items" }, + message: "must have required property '" + "items" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; } - } - const _errs3 = errors; - if ( - !validate130(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate130.errors : vErrors.concat(validate130.errors); - errors = vErrors.length; - } - var _valid0 = _errs3 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; + for (const key0 in data) { + if (!(key0 === "items" || key0 === "next_cursor")) { + const err1 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } } - } - const _errs4 = errors; - if ( - !validate143(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate143.errors : vErrors.concat(validate143.errors); - errors = vErrors.length; - } - var _valid0 = _errs4 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; + if (data.items !== undefined) { + let data0 = data.items; + if (Array.isArray(data0)) { + if (data0.length > 100) { + const err2 = { + instancePath: instancePath + "/items", + schemaPath: "#/properties/items/maxItems", + keyword: "maxItems", + params: { limit: 100 }, + message: "must NOT have more than 100 items", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + let data1 = data0[i0]; + if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { + if (data1.project === undefined) { + const err3 = { + instancePath: instancePath + "/items/" + i0, + schemaPath: "#/$defs/GraphSummaryResponse/required", + keyword: "required", + params: { missingProperty: "project" }, + message: "must have required property '" + "project" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + if (data1.graph === undefined) { + const err4 = { + instancePath: instancePath + "/items/" + i0, + schemaPath: "#/$defs/GraphSummaryResponse/required", + keyword: "required", + params: { missingProperty: "graph" }, + message: "must have required property '" + "graph" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (data1.content_sha256 === undefined) { + const err5 = { + instancePath: instancePath + "/items/" + i0, + schemaPath: "#/$defs/GraphSummaryResponse/required", + keyword: "required", + params: { missingProperty: "content_sha256" }, + message: "must have required property '" + "content_sha256" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + if (data1.created_at === undefined) { + const err6 = { + instancePath: instancePath + "/items/" + i0, + schemaPath: "#/$defs/GraphSummaryResponse/required", + keyword: "required", + params: { missingProperty: "created_at" }, + message: "must have required property '" + "created_at" + "'", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + if (data1.updated_at === undefined) { + const err7 = { + instancePath: instancePath + "/items/" + i0, + schemaPath: "#/$defs/GraphSummaryResponse/required", + keyword: "required", + params: { missingProperty: "updated_at" }, + message: "must have required property '" + "updated_at" + "'", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + for (const key1 in data1) { + if (!( + key1 === "content_sha256" || + key1 === "created_at" || + key1 === "graph" || + key1 === "project" || + key1 === "updated_at" + )) { + const err8 = { + instancePath: instancePath + "/items/" + i0, + schemaPath: "#/$defs/GraphSummaryResponse/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + if (data1.content_sha256 !== undefined) { + let data2 = data1.content_sha256; + if (typeof data2 === "string") { + if (!pattern4.test(data2)) { + const err9 = { + instancePath: instancePath + "/items/" + i0 + "/content_sha256", + schemaPath: "#/$defs/GraphSummaryResponse/properties/content_sha256/pattern", + keyword: "pattern", + params: { pattern: "^[0-9a-f]{64}$" }, + message: 'must match pattern "' + "^[0-9a-f]{64}$" + '"', + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } else { + const err10 = { + instancePath: instancePath + "/items/" + i0 + "/content_sha256", + schemaPath: "#/$defs/GraphSummaryResponse/properties/content_sha256/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data1.created_at !== undefined) { + if (typeof data1.created_at !== "string") { + const err11 = { + instancePath: instancePath + "/items/" + i0 + "/created_at", + schemaPath: "#/$defs/GraphSummaryResponse/properties/created_at/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + } + if (data1.graph !== undefined) { + if (typeof data1.graph !== "string") { + const err12 = { + instancePath: instancePath + "/items/" + i0 + "/graph", + schemaPath: "#/$defs/GraphSummaryResponse/properties/graph/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + if (data1.project !== undefined) { + if (typeof data1.project !== "string") { + const err13 = { + instancePath: instancePath + "/items/" + i0 + "/project", + schemaPath: "#/$defs/GraphSummaryResponse/properties/project/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + } + if (data1.updated_at !== undefined) { + if (typeof data1.updated_at !== "string") { + const err14 = { + instancePath: instancePath + "/items/" + i0 + "/updated_at", + schemaPath: "#/$defs/GraphSummaryResponse/properties/updated_at/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } + } + } else { + const err15 = { + instancePath: instancePath + "/items/" + i0, + schemaPath: "#/$defs/GraphSummaryResponse/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } + } + } else { + const err16 = { + instancePath: instancePath + "/items", + schemaPath: "#/properties/items/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + } + if (data.next_cursor !== undefined) { + let data7 = data.next_cursor; + const _errs19 = errors; + let valid5 = false; + const _errs20 = errors; + if (typeof data7 !== "string") { + const err17 = { + instancePath: instancePath + "/next_cursor", + schemaPath: "#/properties/next_cursor/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + var _valid0 = _errs20 === errors; + valid5 = valid5 || _valid0; + const _errs22 = errors; + if (data7 !== null) { + const err18 = { + instancePath: instancePath + "/next_cursor", + schemaPath: "#/properties/next_cursor/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } + var _valid0 = _errs22 === errors; + valid5 = valid5 || _valid0; + if (!valid5) { + const err19 = { + instancePath: instancePath + "/next_cursor", + schemaPath: "#/properties/next_cursor/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } else { + errors = _errs19; + if (vErrors !== null) { + if (_errs19) { + vErrors.length = _errs19; + } else { + vErrors = null; + } + } + } } - } - if (!valid0) { - const err0 = { + } else { + const err20 = { instancePath, - schemaPath: "#/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err20]; } else { - vErrors.push(err0); + vErrors.push(err20); } errors++; - } else { - errors = _errs0; - if (vErrors !== null) { - if (_errs0) { - vErrors.length = _errs0; - } else { - vErrors = null; - } - } } - validate58.errors = vErrors; - evaluated0.props = props0; + validate164.errors = vErrors; return errors === 0; } -validate58.evaluated = { dynamicProps: true, dynamicItems: false }; +validate164.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate32( +export const validateGraphRepairPreview = validate165; +const schema132 = { + $defs: { + DestinationDocument: { + additionalProperties: false, + properties: { + business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, + dataset: { minLength: 1, title: "Dataset", type: "string" }, + project: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Project" }, + table: { minLength: 1, title: "Table", type: "string" }, + }, + required: ["dataset", "table"], + title: "DestinationDocument", + type: "object", + }, + GraphRepairOutput: { + additionalProperties: false, + properties: { + business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, + destination: { $ref: "#/$defs/DestinationDocument" }, + name: { title: "Name", type: "string" }, + node_id: { title: "Node Id", type: "string" }, + partition_field: { title: "Partition Field", type: "string" }, + partition_type: { enum: ["DATE", "TIMESTAMP"], title: "Partition Type", type: "string" }, + }, + required: [ + "node_id", + "name", + "destination", + "partition_field", + "partition_type", + "business_key", + ], + title: "GraphRepairOutput", + type: "object", + }, + GraphRepairWindow: { + additionalProperties: false, + description: "UTC calendar dates: start is inclusive and end is exclusive.", + properties: { + end_date: { format: "date", title: "End Date", type: "string" }, + start_date: { format: "date", title: "Start Date", type: "string" }, + }, + required: ["start_date", "end_date"], + title: "GraphRepairWindow", + type: "object", + }, + }, + $id: "urn:dander:control:contracts:v1:graph-repair-preview", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + properties: { + environments: { items: { type: "string" }, title: "Environments", type: "array" }, + estimated_cost_usd: { default: null, title: "Estimated Cost Usd", type: "null" }, + estimated_rows: { default: null, title: "Estimated Rows", type: "null" }, + graph_content_sha256: { title: "Graph Content Sha256", type: "string" }, + limitations: { + default: [ + "Start date is included; end date is excluded. Timestamp fields use UTC calendar dates.", + "Source extraction and its normal saved progress are unchanged. This is not a historical snapshot.", + "Only selected output dates are published; computing them can scan data outside that range.", + "A record moving across the date boundary stops publication for that output. Choose a wider range or rebuild the full output.", + "Each output publishes atomically. Earlier successful outputs remain if a later output fails; repeating the same repair converges on the current raw data.", + "Execution requires a current repair-capable runtime with a BigQuery warehouse. Runtime validation and warehouse checks still apply.", + ], + items: { type: "string" }, + title: "Limitations", + type: "array", + }, + outputs: { items: { $ref: "#/$defs/GraphRepairOutput" }, title: "Outputs", type: "array" }, + source: { const: "retained_raw", default: "retained_raw", title: "Source", type: "string" }, + summary: { + default: + "Rebuild the selected output dates from the raw data currently stored in your warehouse.", + title: "Summary", + type: "string", + }, + window: { $ref: "#/$defs/GraphRepairWindow" }, + }, + required: ["graph_content_sha256", "window", "outputs", "environments"], + title: "GraphRepairPreviewResponse", + type: "object", +}; +const schema135 = { + additionalProperties: false, + description: "UTC calendar dates: start is inclusive and end is exclusive.", + properties: { + end_date: { format: "date", title: "End Date", type: "string" }, + start_date: { format: "date", title: "Start Date", type: "string" }, + }, + required: ["start_date", "end_date"], + title: "GraphRepairWindow", + type: "object", +}; +const schema133 = { + additionalProperties: false, + properties: { + business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, + destination: { $ref: "#/$defs/DestinationDocument" }, + name: { title: "Name", type: "string" }, + node_id: { title: "Node Id", type: "string" }, + partition_field: { title: "Partition Field", type: "string" }, + partition_type: { enum: ["DATE", "TIMESTAMP"], title: "Partition Type", type: "string" }, + }, + required: ["node_id", "name", "destination", "partition_field", "partition_type", "business_key"], + title: "GraphRepairOutput", + type: "object", +}; +const schema134 = { + additionalProperties: false, + properties: { + business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, + dataset: { minLength: 1, title: "Dataset", type: "string" }, + project: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Project" }, + table: { minLength: 1, title: "Table", type: "string" }, + }, + required: ["dataset", "table"], + title: "DestinationDocument", + type: "object", +}; + +function validate166( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate32.evaluated; + const evaluated0 = validate166.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -15013,13 +18552,13 @@ function validate32( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.name === undefined) { + if (data.node_id === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "name" }, - message: "must have required property '" + "name" + "'", + params: { missingProperty: "node_id" }, + message: "must have required property '" + "node_id" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -15028,9 +18567,91 @@ function validate32( } errors++; } + if (data.name === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + if (data.destination === undefined) { + const err2 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "destination" }, + message: "must have required property '" + "destination" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + if (data.partition_field === undefined) { + const err3 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "partition_field" }, + message: "must have required property '" + "partition_field" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + if (data.partition_type === undefined) { + const err4 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "partition_type" }, + message: "must have required property '" + "partition_type" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (data.business_key === undefined) { + const err5 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "business_key" }, + message: "must have required property '" + "business_key" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } for (const key0 in data) { - if (!(key0 === "edges" || key0 === "name" || key0 === "nodes" || key0 === "trigger")) { - const err1 = { + if (!( + key0 === "business_key" || + key0 === "destination" || + key0 === "name" || + key0 === "node_id" || + key0 === "partition_field" || + key0 === "partition_type" + )) { + const err6 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -15038,50 +18659,294 @@ function validate32( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err6]; } else { - vErrors.push(err1); + vErrors.push(err6); } errors++; } } - if (data.edges !== undefined) { - let data0 = data.edges; + if (data.business_key !== undefined) { + let data0 = data.business_key; if (Array.isArray(data0)) { const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { - if ( - !validate33(data0[i0], { - instancePath: instancePath + "/edges/" + i0, - parentData: data0, - parentDataProperty: i0, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate33.errors : vErrors.concat(validate33.errors); - errors = vErrors.length; + if (typeof data0[i0] !== "string") { + const err7 = { + instancePath: instancePath + "/business_key/" + i0, + schemaPath: "#/properties/business_key/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; } } } else { - const err2 = { - instancePath: instancePath + "/edges", - schemaPath: "#/properties/edges/type", + const err8 = { + instancePath: instancePath + "/business_key", + schemaPath: "#/properties/business_key/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err8]; } else { - vErrors.push(err2); + vErrors.push(err8); + } + errors++; + } + } + if (data.destination !== undefined) { + let data2 = data.destination; + if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { + if (data2.dataset === undefined) { + const err9 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/required", + keyword: "required", + params: { missingProperty: "dataset" }, + message: "must have required property '" + "dataset" + "'", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + if (data2.table === undefined) { + const err10 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/required", + keyword: "required", + params: { missingProperty: "table" }, + message: "must have required property '" + "table" + "'", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + for (const key1 in data2) { + if (!( + key1 === "business_key" || + key1 === "dataset" || + key1 === "project" || + key1 === "table" + )) { + const err11 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + } + if (data2.business_key !== undefined) { + let data3 = data2.business_key; + if (Array.isArray(data3)) { + const len1 = data3.length; + for (let i1 = 0; i1 < len1; i1++) { + if (typeof data3[i1] !== "string") { + const err12 = { + instancePath: instancePath + "/destination/business_key/" + i1, + schemaPath: "#/$defs/DestinationDocument/properties/business_key/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + } else { + const err13 = { + instancePath: instancePath + "/destination/business_key", + schemaPath: "#/$defs/DestinationDocument/properties/business_key/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + } + if (data2.dataset !== undefined) { + let data5 = data2.dataset; + if (typeof data5 === "string") { + if (func3(data5) < 1) { + const err14 = { + instancePath: instancePath + "/destination/dataset", + schemaPath: "#/$defs/DestinationDocument/properties/dataset/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } + } else { + const err15 = { + instancePath: instancePath + "/destination/dataset", + schemaPath: "#/$defs/DestinationDocument/properties/dataset/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } + } + if (data2.project !== undefined) { + let data6 = data2.project; + const _errs17 = errors; + let valid7 = false; + const _errs18 = errors; + if (typeof data6 !== "string") { + const err16 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + var _valid0 = _errs18 === errors; + valid7 = valid7 || _valid0; + const _errs20 = errors; + if (data6 !== null) { + const err17 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + var _valid0 = _errs20 === errors; + valid7 = valid7 || _valid0; + if (!valid7) { + const err18 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } else { + errors = _errs17; + if (vErrors !== null) { + if (_errs17) { + vErrors.length = _errs17; + } else { + vErrors = null; + } + } + } + } + if (data2.table !== undefined) { + let data7 = data2.table; + if (typeof data7 === "string") { + if (func3(data7) < 1) { + const err19 = { + instancePath: instancePath + "/destination/table", + schemaPath: "#/$defs/DestinationDocument/properties/table/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } + } else { + const err20 = { + instancePath: instancePath + "/destination/table", + schemaPath: "#/$defs/DestinationDocument/properties/table/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); + } + errors++; + } + } + } else { + const err21 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err21]; + } else { + vErrors.push(err21); } errors++; } } if (data.name !== undefined) { if (typeof data.name !== "string") { - const err3 = { + const err22 = { instancePath: instancePath + "/name", schemaPath: "#/properties/name/type", keyword: "type", @@ -15089,111 +18954,82 @@ function validate32( message: "must be string", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err22]; } else { - vErrors.push(err3); + vErrors.push(err22); } errors++; } } - if (data.nodes !== undefined) { - let data3 = data.nodes; - if (Array.isArray(data3)) { - const len1 = data3.length; - for (let i1 = 0; i1 < len1; i1++) { - if ( - !validate58(data3[i1], { - instancePath: instancePath + "/nodes/" + i1, - parentData: data3, - parentDataProperty: i1, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate58.errors : vErrors.concat(validate58.errors); - errors = vErrors.length; - } - } - } else { - const err4 = { - instancePath: instancePath + "/nodes", - schemaPath: "#/properties/nodes/type", + if (data.node_id !== undefined) { + if (typeof data.node_id !== "string") { + const err23 = { + instancePath: instancePath + "/node_id", + schemaPath: "#/properties/node_id/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - } - if (data.trigger !== undefined) { - let data5 = data.trigger; - const _errs11 = errors; - let valid5 = false; - const _errs12 = errors; - if ( - !validate87(data5, { - instancePath: instancePath + "/trigger", - parentData: data, - parentDataProperty: "trigger", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate87.errors : vErrors.concat(validate87.errors); - errors = vErrors.length; - } - var _valid0 = _errs12 === errors; - valid5 = valid5 || _valid0; - const _errs13 = errors; - if (data5 !== null) { - const err5 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf/1/type", + vErrors = [err23]; + } else { + vErrors.push(err23); + } + errors++; + } + } + if (data.partition_field !== undefined) { + if (typeof data.partition_field !== "string") { + const err24 = { + instancePath: instancePath + "/partition_field", + schemaPath: "#/properties/partition_field/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err24]; } else { - vErrors.push(err5); + vErrors.push(err24); } errors++; } - var _valid0 = _errs13 === errors; - valid5 = valid5 || _valid0; - if (!valid5) { - const err6 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + } + if (data.partition_type !== undefined) { + let data11 = data.partition_type; + if (typeof data11 !== "string") { + const err25 = { + instancePath: instancePath + "/partition_type", + schemaPath: "#/properties/partition_type/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err25]; } else { - vErrors.push(err6); + vErrors.push(err25); } errors++; - } else { - errors = _errs11; - if (vErrors !== null) { - if (_errs11) { - vErrors.length = _errs11; - } else { - vErrors = null; - } + } + if (!(data11 === "DATE" || data11 === "TIMESTAMP")) { + const err26 = { + instancePath: instancePath + "/partition_type", + schemaPath: "#/properties/partition_type/enum", + keyword: "enum", + params: { allowedValues: schema133.properties.partition_type.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err26]; + } else { + vErrors.push(err26); } + errors++; } } } else { - const err7 = { + const err27 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -15201,24 +19037,24 @@ function validate32( message: "must be object", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err27]; } else { - vErrors.push(err7); + vErrors.push(err27); } errors++; } - validate32.errors = vErrors; + validate166.errors = vErrors; return errors === 0; } -validate32.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate166.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate31( +function validate165( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { - /*# sourceURL="urn:dander:control:contracts:v1:graph-create" */ let vErrors = null; + /*# sourceURL="urn:dander:control:contracts:v1:graph-repair-preview" */ let vErrors = null; let errors = 0; - const evaluated0 = validate31.evaluated; + const evaluated0 = validate165.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -15226,13 +19062,13 @@ function validate31( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.graph === undefined) { + if (data.graph_content_sha256 === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "graph" }, - message: "must have required property '" + "graph" + "'", + params: { missingProperty: "graph_content_sha256" }, + message: "must have required property '" + "graph_content_sha256" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -15241,13 +19077,13 @@ function validate31( } errors++; } - if (data.document === undefined) { + if (data.window === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "document" }, - message: "must have required property '" + "document" + "'", + params: { missingProperty: "window" }, + message: "must have required property '" + "window" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -15256,9 +19092,39 @@ function validate31( } errors++; } + if (data.outputs === undefined) { + const err2 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "outputs" }, + message: "must have required property '" + "outputs" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + if (data.environments === undefined) { + const err3 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "environments" }, + message: "must have required property '" + "environments" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } for (const key0 in data) { - if (!(key0 === "document" || key0 === "graph")) { - const err2 = { + if (!func1.call(schema132.properties, key0)) { + const err4 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -15266,485 +19132,324 @@ function validate31( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err4]; } else { - vErrors.push(err2); + vErrors.push(err4); } errors++; } } - if (data.document !== undefined) { - if ( - !validate32(data.document, { - instancePath: instancePath + "/document", - parentData: data, - parentDataProperty: "document", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate32.errors : vErrors.concat(validate32.errors); - errors = vErrors.length; + if (data.environments !== undefined) { + let data0 = data.environments; + if (Array.isArray(data0)) { + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data0[i0] !== "string") { + const err5 = { + instancePath: instancePath + "/environments/" + i0, + schemaPath: "#/properties/environments/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + } else { + const err6 = { + instancePath: instancePath + "/environments", + schemaPath: "#/properties/environments/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; } } - if (data.graph !== undefined) { - if (typeof data.graph !== "string") { - const err3 = { - instancePath: instancePath + "/graph", - schemaPath: "#/properties/graph/type", + if (data.estimated_cost_usd !== undefined) { + if (data.estimated_cost_usd !== null) { + const err7 = { + instancePath: instancePath + "/estimated_cost_usd", + schemaPath: "#/properties/estimated_cost_usd/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err7]; } else { - vErrors.push(err3); + vErrors.push(err7); } errors++; } } - } else { - const err4 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - validate31.errors = vErrors; - return errors === 0; -} -validate31.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -export const validateGraphPage = validate154; -const schema118 = { - $defs: { - GraphSummaryResponse: { - additionalProperties: false, - description: "Document-free metadata for one graph in a bounded hosted list response.", - properties: { - content_sha256: { pattern: "^[0-9a-f]{64}$", title: "Content Sha256", type: "string" }, - created_at: { title: "Created At", type: "string" }, - graph: { title: "Graph", type: "string" }, - project: { title: "Project", type: "string" }, - updated_at: { title: "Updated At", type: "string" }, - }, - required: ["project", "graph", "content_sha256", "created_at", "updated_at"], - title: "GraphSummaryResponse", - type: "object", - }, - }, - $id: "urn:dander:control:contracts:v1:graph-page", - $schema: "https://json-schema.org/draft/2020-12/schema", - additionalProperties: false, - description: "A bounded graph-summary page that never embeds full graph documents.", - properties: { - items: { - items: { $ref: "#/$defs/GraphSummaryResponse" }, - maxItems: 100, - title: "Items", - type: "array", - }, - next_cursor: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Next Cursor", - }, - }, - required: ["items"], - title: "GraphPageResponse", - type: "object", -}; -const schema119 = { - additionalProperties: false, - description: "Document-free metadata for one graph in a bounded hosted list response.", - properties: { - content_sha256: { pattern: "^[0-9a-f]{64}$", title: "Content Sha256", type: "string" }, - created_at: { title: "Created At", type: "string" }, - graph: { title: "Graph", type: "string" }, - project: { title: "Project", type: "string" }, - updated_at: { title: "Updated At", type: "string" }, - }, - required: ["project", "graph", "content_sha256", "created_at", "updated_at"], - title: "GraphSummaryResponse", - type: "object", -}; - -function validate154( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - /*# sourceURL="urn:dander:control:contracts:v1:graph-page" */ let vErrors = null; - let errors = 0; - const evaluated0 = validate154.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.items === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "items" }, - message: "must have required property '" + "items" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); + if (data.estimated_rows !== undefined) { + if (data.estimated_rows !== null) { + const err8 = { + instancePath: instancePath + "/estimated_rows", + schemaPath: "#/properties/estimated_rows/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; } - errors++; } - for (const key0 in data) { - if (!(key0 === "items" || key0 === "next_cursor")) { - const err1 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + if (data.graph_content_sha256 !== undefined) { + if (typeof data.graph_content_sha256 !== "string") { + const err9 = { + instancePath: instancePath + "/graph_content_sha256", + schemaPath: "#/properties/graph_content_sha256/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err9]; } else { - vErrors.push(err1); + vErrors.push(err9); } errors++; } } - if (data.items !== undefined) { - let data0 = data.items; - if (Array.isArray(data0)) { - if (data0.length > 100) { - const err2 = { - instancePath: instancePath + "/items", - schemaPath: "#/properties/items/maxItems", - keyword: "maxItems", - params: { limit: 100 }, - message: "must NOT have more than 100 items", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - const len0 = data0.length; - for (let i0 = 0; i0 < len0; i0++) { - let data1 = data0[i0]; - if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { - if (data1.project === undefined) { - const err3 = { - instancePath: instancePath + "/items/" + i0, - schemaPath: "#/$defs/GraphSummaryResponse/required", - keyword: "required", - params: { missingProperty: "project" }, - message: "must have required property '" + "project" + "'", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - if (data1.graph === undefined) { - const err4 = { - instancePath: instancePath + "/items/" + i0, - schemaPath: "#/$defs/GraphSummaryResponse/required", - keyword: "required", - params: { missingProperty: "graph" }, - message: "must have required property '" + "graph" + "'", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - if (data1.content_sha256 === undefined) { - const err5 = { - instancePath: instancePath + "/items/" + i0, - schemaPath: "#/$defs/GraphSummaryResponse/required", - keyword: "required", - params: { missingProperty: "content_sha256" }, - message: "must have required property '" + "content_sha256" + "'", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - if (data1.created_at === undefined) { - const err6 = { - instancePath: instancePath + "/items/" + i0, - schemaPath: "#/$defs/GraphSummaryResponse/required", - keyword: "required", - params: { missingProperty: "created_at" }, - message: "must have required property '" + "created_at" + "'", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - if (data1.updated_at === undefined) { - const err7 = { - instancePath: instancePath + "/items/" + i0, - schemaPath: "#/$defs/GraphSummaryResponse/required", - keyword: "required", - params: { missingProperty: "updated_at" }, - message: "must have required property '" + "updated_at" + "'", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - for (const key1 in data1) { - if (!( - key1 === "content_sha256" || - key1 === "created_at" || - key1 === "graph" || - key1 === "project" || - key1 === "updated_at" - )) { - const err8 = { - instancePath: instancePath + "/items/" + i0, - schemaPath: "#/$defs/GraphSummaryResponse/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } - if (data1.content_sha256 !== undefined) { - let data2 = data1.content_sha256; - if (typeof data2 === "string") { - if (!pattern4.test(data2)) { - const err9 = { - instancePath: instancePath + "/items/" + i0 + "/content_sha256", - schemaPath: "#/$defs/GraphSummaryResponse/properties/content_sha256/pattern", - keyword: "pattern", - params: { pattern: "^[0-9a-f]{64}$" }, - message: 'must match pattern "' + "^[0-9a-f]{64}$" + '"', - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } else { - const err10 = { - instancePath: instancePath + "/items/" + i0 + "/content_sha256", - schemaPath: "#/$defs/GraphSummaryResponse/properties/content_sha256/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - } - if (data1.created_at !== undefined) { - if (typeof data1.created_at !== "string") { - const err11 = { - instancePath: instancePath + "/items/" + i0 + "/created_at", - schemaPath: "#/$defs/GraphSummaryResponse/properties/created_at/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - } - if (data1.graph !== undefined) { - if (typeof data1.graph !== "string") { - const err12 = { - instancePath: instancePath + "/items/" + i0 + "/graph", - schemaPath: "#/$defs/GraphSummaryResponse/properties/graph/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; - } - } - if (data1.project !== undefined) { - if (typeof data1.project !== "string") { - const err13 = { - instancePath: instancePath + "/items/" + i0 + "/project", - schemaPath: "#/$defs/GraphSummaryResponse/properties/project/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err13]; - } else { - vErrors.push(err13); - } - errors++; - } - } - if (data1.updated_at !== undefined) { - if (typeof data1.updated_at !== "string") { - const err14 = { - instancePath: instancePath + "/items/" + i0 + "/updated_at", - schemaPath: "#/$defs/GraphSummaryResponse/properties/updated_at/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err14]; - } else { - vErrors.push(err14); - } - errors++; - } - } - } else { - const err15 = { - instancePath: instancePath + "/items/" + i0, - schemaPath: "#/$defs/GraphSummaryResponse/type", + if (data.limitations !== undefined) { + let data5 = data.limitations; + if (Array.isArray(data5)) { + const len1 = data5.length; + for (let i1 = 0; i1 < len1; i1++) { + if (typeof data5[i1] !== "string") { + const err10 = { + instancePath: instancePath + "/limitations/" + i1, + schemaPath: "#/properties/limitations/items/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err15]; + vErrors = [err10]; } else { - vErrors.push(err15); + vErrors.push(err10); } errors++; } } } else { - const err16 = { - instancePath: instancePath + "/items", - schemaPath: "#/properties/items/type", + const err11 = { + instancePath: instancePath + "/limitations", + schemaPath: "#/properties/limitations/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err16]; + vErrors = [err11]; } else { - vErrors.push(err16); + vErrors.push(err11); } errors++; } } - if (data.next_cursor !== undefined) { - let data7 = data.next_cursor; - const _errs19 = errors; - let valid5 = false; - const _errs20 = errors; - if (typeof data7 !== "string") { - const err17 = { - instancePath: instancePath + "/next_cursor", - schemaPath: "#/properties/next_cursor/anyOf/0/type", + if (data.outputs !== undefined) { + let data7 = data.outputs; + if (Array.isArray(data7)) { + const len2 = data7.length; + for (let i2 = 0; i2 < len2; i2++) { + if ( + !validate166(data7[i2], { + instancePath: instancePath + "/outputs/" + i2, + parentData: data7, + parentDataProperty: i2, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate166.errors : vErrors.concat(validate166.errors); + errors = vErrors.length; + } + } + } else { + const err12 = { + instancePath: instancePath + "/outputs", + schemaPath: "#/properties/outputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + if (data.source !== undefined) { + let data9 = data.source; + if (typeof data9 !== "string") { + const err13 = { + instancePath: instancePath + "/source", + schemaPath: "#/properties/source/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err17]; + vErrors = [err13]; } else { - vErrors.push(err17); + vErrors.push(err13); } errors++; } - var _valid0 = _errs20 === errors; - valid5 = valid5 || _valid0; - const _errs22 = errors; - if (data7 !== null) { - const err18 = { - instancePath: instancePath + "/next_cursor", - schemaPath: "#/properties/next_cursor/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + if ("retained_raw" !== data9) { + const err14 = { + instancePath: instancePath + "/source", + schemaPath: "#/properties/source/const", + keyword: "const", + params: { allowedValue: "retained_raw" }, + message: "must be equal to constant", }; if (vErrors === null) { - vErrors = [err18]; + vErrors = [err14]; } else { - vErrors.push(err18); + vErrors.push(err14); } errors++; } - var _valid0 = _errs22 === errors; - valid5 = valid5 || _valid0; - if (!valid5) { - const err19 = { - instancePath: instancePath + "/next_cursor", - schemaPath: "#/properties/next_cursor/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + } + if (data.summary !== undefined) { + if (typeof data.summary !== "string") { + const err15 = { + instancePath: instancePath + "/summary", + schemaPath: "#/properties/summary/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err19]; + vErrors = [err15]; } else { - vErrors.push(err19); + vErrors.push(err15); } errors++; - } else { - errors = _errs19; - if (vErrors !== null) { - if (_errs19) { - vErrors.length = _errs19; + } + } + if (data.window !== undefined) { + let data11 = data.window; + if (data11 && typeof data11 == "object" && !Array.isArray(data11)) { + if (data11.start_date === undefined) { + const err16 = { + instancePath: instancePath + "/window", + schemaPath: "#/$defs/GraphRepairWindow/required", + keyword: "required", + params: { missingProperty: "start_date" }, + message: "must have required property '" + "start_date" + "'", + }; + if (vErrors === null) { + vErrors = [err16]; } else { - vErrors = null; + vErrors.push(err16); + } + errors++; + } + if (data11.end_date === undefined) { + const err17 = { + instancePath: instancePath + "/window", + schemaPath: "#/$defs/GraphRepairWindow/required", + keyword: "required", + params: { missingProperty: "end_date" }, + message: "must have required property '" + "end_date" + "'", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + for (const key1 in data11) { + if (!(key1 === "end_date" || key1 === "start_date")) { + const err18 = { + instancePath: instancePath + "/window", + schemaPath: "#/$defs/GraphRepairWindow/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } + } + if (data11.end_date !== undefined) { + if (!(typeof data11.end_date === "string")) { + const err19 = { + instancePath: instancePath + "/window/end_date", + schemaPath: "#/$defs/GraphRepairWindow/properties/end_date/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } + } + if (data11.start_date !== undefined) { + if (!(typeof data11.start_date === "string")) { + const err20 = { + instancePath: instancePath + "/window/start_date", + schemaPath: "#/$defs/GraphRepairWindow/properties/start_date/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); + } + errors++; } } + } else { + const err21 = { + instancePath: instancePath + "/window", + schemaPath: "#/$defs/GraphRepairWindow/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err21]; + } else { + vErrors.push(err21); + } + errors++; } } } else { - const err20 = { + const err22 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -15752,19 +19457,149 @@ function validate154( message: "must be object", }; if (vErrors === null) { - vErrors = [err20]; + vErrors = [err22]; } else { - vErrors.push(err20); + vErrors.push(err22); } errors++; } - validate154.errors = vErrors; + validate165.errors = vErrors; return errors === 0; } -validate154.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate165.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateGraphResource = validate155; -const schema120 = { +export const validateGraphRepairWindow = validate168; +const schema136 = { + $id: "urn:dander:control:contracts:v1:graph-repair-window", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + description: "UTC calendar dates: start is inclusive and end is exclusive.", + properties: { + end_date: { format: "date", title: "End Date", type: "string" }, + start_date: { format: "date", title: "Start Date", type: "string" }, + }, + required: ["start_date", "end_date"], + title: "GraphRepairWindow", + type: "object", +}; + +function validate168( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + /*# sourceURL="urn:dander:control:contracts:v1:graph-repair-window" */ let vErrors = null; + let errors = 0; + const evaluated0 = validate168.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.start_date === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "start_date" }, + message: "must have required property '" + "start_date" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.end_date === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "end_date" }, + message: "must have required property '" + "end_date" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "end_date" || key0 === "start_date")) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.end_date !== undefined) { + if (!(typeof data.end_date === "string")) { + const err3 = { + instancePath: instancePath + "/end_date", + schemaPath: "#/properties/end_date/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.start_date !== undefined) { + if (!(typeof data.start_date === "string")) { + const err4 = { + instancePath: instancePath + "/start_date", + schemaPath: "#/properties/start_date/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + } else { + const err5 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + validate168.errors = vErrors; + return errors === 0; +} +validate168.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +export const validateGraphResource = validate169; +const schema137 = { $defs: { AcceptedValuesFieldTest: { additionalProperties: false, @@ -16583,7 +20418,7 @@ const schema120 = { title: "GraphResourceResponse", type: "object", }; -const schema121 = { +const schema138 = { additionalProperties: false, description: "Canonical graph transport whose construction reuses Dander semantic validation.", properties: { @@ -16596,7 +20431,7 @@ const schema121 = { title: "PipelineGraphDocument", type: "object", }; -const schema122 = { +const schema139 = { additionalProperties: false, properties: { from: { title: "From", type: "string" }, @@ -16609,7 +20444,7 @@ const schema122 = { title: "EdgeDocument", type: "object", }; -const schema123 = { +const schema140 = { additionalProperties: false, properties: { keys: { @@ -16625,7 +20460,7 @@ const schema123 = { title: "JoinDocument", type: "object", }; -const schema124 = { +const schema141 = { additionalProperties: false, properties: { left: { title: "Left", type: "string" }, @@ -16635,16 +20470,16 @@ const schema124 = { title: "JoinKeyPairDocument", type: "object", }; -const schema125 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, type: "object" }; -const schema126 = {}; +const schema142 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, type: "object" }; +const schema143 = {}; -function validate159( +function validate173( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate159.evaluated; + const evaluated0 = validate173.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -16667,18 +20502,18 @@ function validate159( } errors++; } - validate159.errors = vErrors; + validate173.errors = vErrors; return errors === 0; } -validate159.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate173.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate158( +function validate172( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate158.evaluated; + const evaluated0 = validate172.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -16870,7 +20705,7 @@ function validate158( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -16878,7 +20713,7 @@ function validate158( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -16904,7 +20739,7 @@ function validate158( instancePath: instancePath + "/type", schemaPath: "#/properties/type/enum", keyword: "enum", - params: { allowedValues: schema123.properties.type.enum }, + params: { allowedValues: schema140.properties.type.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -16930,12 +20765,12 @@ function validate158( } errors++; } - validate158.errors = vErrors; + validate172.errors = vErrors; return errors === 0; } -validate158.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate172.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema127 = { +const schema144 = { additionalProperties: false, properties: { metadata: { $ref: "#/$defs/JsonObject" }, @@ -16950,7 +20785,7 @@ const schema127 = { title: "FieldMappingDocument", type: "object", }; -const schema128 = { +const schema145 = { anyOf: [ { $ref: "#/$defs/DirectTransformation" }, { $ref: "#/$defs/ExpressionTransformation" }, @@ -16958,7 +20793,7 @@ const schema128 = { { $ref: "#/$defs/CustomCodeTransformation" }, ], }; -const schema129 = { +const schema146 = { additionalProperties: false, properties: { arguments: { $ref: "#/$defs/EmptyObject" }, @@ -16972,7 +20807,7 @@ const schema129 = { title: "DirectTransformation", type: "object", }; -const schema130 = { +const schema147 = { additionalProperties: false, description: "A JSON object that must contain no properties.", properties: {}, @@ -16980,13 +20815,13 @@ const schema130 = { type: "object", }; -function validate165( +function validate179( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate165.evaluated; + const evaluated0 = validate179.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -17176,7 +21011,7 @@ function validate165( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -17184,7 +21019,7 @@ function validate165( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -17203,12 +21038,12 @@ function validate165( } errors++; } - validate165.errors = vErrors; + validate179.errors = vErrors; return errors === 0; } -validate165.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate179.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema131 = { +const schema148 = { additionalProperties: false, properties: { arguments: { $ref: "#/$defs/EmptyObject" }, @@ -17224,13 +21059,13 @@ const schema131 = { type: "object", }; -function validate168( +function validate182( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate168.evaluated; + const evaluated0 = validate182.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -17347,7 +21182,7 @@ function validate168( if (data.expression !== undefined) { let data2 = data.expression; if (typeof data2 === "string") { - if (func2(data2) < 1) { + if (func3(data2) < 1) { const err6 = { instancePath: instancePath + "/expression", schemaPath: "#/properties/expression/minLength", @@ -17467,7 +21302,7 @@ function validate168( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -17475,7 +21310,7 @@ function validate168( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -17494,12 +21329,12 @@ function validate168( } errors++; } - validate168.errors = vErrors; + validate182.errors = vErrors; return errors === 0; } -validate168.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate182.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema133 = { +const schema150 = { additionalProperties: false, properties: { arguments: { $ref: "#/$defs/EmptyObject" }, @@ -17515,13 +21350,13 @@ const schema133 = { type: "object", }; -function validate171( +function validate185( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate171.evaluated; + const evaluated0 = validate185.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -17724,7 +21559,7 @@ function validate171( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -17732,7 +21567,7 @@ function validate171( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -17751,12 +21586,12 @@ function validate171( } errors++; } - validate171.errors = vErrors; + validate185.errors = vErrors; return errors === 0; } -validate171.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate185.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema136 = { +const schema153 = { additionalProperties: false, properties: { arguments: { $ref: "#/$defs/JsonObject" }, @@ -17776,13 +21611,13 @@ const schema136 = { type: "object", }; -function validate174( +function validate188( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate174.evaluated; + const evaluated0 = validate188.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -17847,7 +21682,7 @@ function validate174( } if (data.arguments !== undefined) { if ( - !validate159(data.arguments, { + !validate173(data.arguments, { instancePath: instancePath + "/arguments", parentData: data, parentDataProperty: "arguments", @@ -17855,7 +21690,7 @@ function validate174( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -17896,7 +21731,7 @@ function validate174( if (data.function !== undefined) { let data3 = data.function; if (typeof data3 === "string") { - if (!pattern7.test(data3)) { + if (!pattern9.test(data3)) { const err5 = { instancePath: instancePath + "/function", schemaPath: "#/properties/function/pattern", @@ -18000,7 +21835,7 @@ function validate174( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -18008,7 +21843,7 @@ function validate174( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -18027,18 +21862,18 @@ function validate174( } errors++; } - validate174.errors = vErrors; + validate188.errors = vErrors; return errors === 0; } -validate174.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate188.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate164( +function validate178( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate164.evaluated; + const evaluated0 = validate178.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -18049,9 +21884,9 @@ function validate164( let valid0 = false; const _errs1 = errors; if ( - !validate165(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate179(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate165.errors : vErrors.concat(validate165.errors); + vErrors = vErrors === null ? validate179.errors : vErrors.concat(validate179.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -18061,9 +21896,9 @@ function validate164( } const _errs2 = errors; if ( - !validate168(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate182(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate168.errors : vErrors.concat(validate168.errors); + vErrors = vErrors === null ? validate182.errors : vErrors.concat(validate182.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -18075,9 +21910,9 @@ function validate164( } const _errs3 = errors; if ( - !validate171(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate185(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate171.errors : vErrors.concat(validate171.errors); + vErrors = vErrors === null ? validate185.errors : vErrors.concat(validate185.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -18089,9 +21924,9 @@ function validate164( } const _errs4 = errors; if ( - !validate174(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate188(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate174.errors : vErrors.concat(validate174.errors); + vErrors = vErrors === null ? validate188.errors : vErrors.concat(validate188.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -18125,19 +21960,19 @@ function validate164( } } } - validate164.errors = vErrors; + validate178.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate164.evaluated = { dynamicProps: true, dynamicItems: false }; +validate178.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate162( +function validate176( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate162.evaluated; + const evaluated0 = validate176.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -18184,7 +22019,7 @@ function validate162( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -18192,7 +22027,7 @@ function validate162( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -18284,7 +22119,7 @@ function validate162( let valid2 = false; const _errs13 = errors; if ( - !validate164(data3, { + !validate178(data3, { instancePath: instancePath + "/transformation", parentData: data, parentDataProperty: "transformation", @@ -18292,7 +22127,7 @@ function validate162( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate164.errors : vErrors.concat(validate164.errors); + vErrors = vErrors === null ? validate178.errors : vErrors.concat(validate178.errors); errors = vErrors.length; } var _valid1 = _errs13 === errors; @@ -18355,18 +22190,18 @@ function validate162( } errors++; } - validate162.errors = vErrors; + validate176.errors = vErrors; return errors === 0; } -validate162.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate176.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate157( +function validate171( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate157.evaluated; + const evaluated0 = validate171.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -18450,7 +22285,7 @@ function validate157( let valid1 = false; const _errs6 = errors; if ( - !validate158(data1, { + !validate172(data1, { instancePath: instancePath + "/join", parentData: data, parentDataProperty: "join", @@ -18458,7 +22293,7 @@ function validate157( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate158.errors : vErrors.concat(validate158.errors); + vErrors = vErrors === null ? validate172.errors : vErrors.concat(validate172.errors); errors = vErrors.length; } var _valid0 = _errs6 === errors; @@ -18512,7 +22347,7 @@ function validate157( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate162(data2[i0], { + !validate176(data2[i0], { instancePath: instancePath + "/mappings/" + i0, parentData: data2, parentDataProperty: i0, @@ -18520,7 +22355,7 @@ function validate157( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate162.errors : vErrors.concat(validate162.errors); + vErrors = vErrors === null ? validate176.errors : vErrors.concat(validate176.errors); errors = vErrors.length; } } @@ -18542,7 +22377,7 @@ function validate157( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -18550,7 +22385,7 @@ function validate157( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -18586,12 +22421,12 @@ function validate157( } errors++; } - validate157.errors = vErrors; + validate171.errors = vErrors; return errors === 0; } -validate157.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate171.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema137 = { +const schema154 = { anyOf: [ { $ref: "#/$defs/SourceNodeDocument" }, { $ref: "#/$defs/TransformNodeDocument" }, @@ -18599,7 +22434,7 @@ const schema137 = { { $ref: "#/$defs/ExtensionNodeDocument" }, ], }; -const schema138 = { +const schema155 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { @@ -18625,7 +22460,7 @@ const schema138 = { title: "SourceNodeDocument", type: "object", }; -const schema139 = { +const schema156 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, properties: { connector: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Connector" }, @@ -18635,7 +22470,7 @@ const schema139 = { title: "SourceNodeConfigDocument", type: "object", }; -const schema141 = { +const schema158 = { additionalProperties: false, properties: { body: { @@ -18654,7 +22489,7 @@ const schema141 = { title: "RequestSpecDocument", type: "object", }; -const schema142 = { +const schema159 = { description: "The closed set of HTTP methods a `RequestSpec` may declare.\n\nA `StrEnum` (matching the `TransformationKind`/`JoinType` convention in `graph.py`) so callers\nget a named, importable type that still serializes to/from its plain string value stably in\nYAML and JSON. An out-of-set value fails validation with a clear error at the Pydantic\nboundary. `HEAD`/`OPTIONS` are intentionally omitted (no source currently needs them); extend\nby adding a member later without touching callers.\n\nAttributes:\n GET: Retrieve a resource. The default method (a simple GET needs no explicit spec).\n POST: Create a resource / submit a query body.\n PUT: Replace a resource.\n PATCH: Partially update a resource.\n DELETE: Remove a resource.", enum: ["GET", "POST", "PUT", "PATCH", "DELETE"], @@ -18662,13 +22497,13 @@ const schema142 = { type: "string", }; -function validate185( +function validate199( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate185.evaluated; + const evaluated0 = validate199.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -18704,7 +22539,7 @@ function validate185( let valid1 = false; const _errs4 = errors; if ( - !validate159(data0, { + !validate173(data0, { instancePath: instancePath + "/body", parentData: data, parentDataProperty: "body", @@ -18712,7 +22547,7 @@ function validate185( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -18843,7 +22678,7 @@ function validate185( instancePath: instancePath + "/method", schemaPath: "#/$defs/HttpMethod/enum", keyword: "enum", - params: { allowedValues: schema142.enum }, + params: { allowedValues: schema159.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -18906,18 +22741,18 @@ function validate185( } errors++; } - validate185.errors = vErrors; + validate199.errors = vErrors; return errors === 0; } -validate185.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate199.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate184( +function validate198( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate184.evaluated; + const evaluated0 = validate198.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -19061,7 +22896,7 @@ function validate184( let valid5 = false; const _errs17 = errors; if ( - !validate185(data3, { + !validate199(data3, { instancePath: instancePath + "/request", parentData: data, parentDataProperty: "request", @@ -19069,7 +22904,7 @@ function validate184( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate185.errors : vErrors.concat(validate185.errors); + vErrors = vErrors === null ? validate199.errors : vErrors.concat(validate199.errors); errors = vErrors.length; } var _valid2 = _errs17 === errors; @@ -19132,12 +22967,12 @@ function validate184( } errors++; } - validate184.errors = vErrors; + validate198.errors = vErrors; return errors === 0; } -validate184.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate198.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema143 = { +const schema160 = { additionalProperties: false, properties: { field: { minLength: 1, title: "Field", type: "string" }, @@ -19150,13 +22985,13 @@ const schema143 = { type: "object", }; -function validate189( +function validate203( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate189.evaluated; + const evaluated0 = validate203.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -19214,7 +23049,7 @@ function validate189( if (data.field !== undefined) { let data0 = data.field; if (typeof data0 === "string") { - if (func2(data0) < 1) { + if (func3(data0) < 1) { const err3 = { instancePath: instancePath + "/field", schemaPath: "#/properties/field/minLength", @@ -19267,7 +23102,7 @@ function validate189( instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/enum", keyword: "enum", - params: { allowedValues: schema143.properties.kind.enum }, + params: { allowedValues: schema160.properties.kind.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -19280,7 +23115,7 @@ function validate189( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -19288,13 +23123,13 @@ function validate189( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } if (data.params !== undefined) { if ( - !validate159(data.params, { + !validate173(data.params, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -19302,7 +23137,7 @@ function validate189( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -19321,12 +23156,12 @@ function validate189( } errors++; } - validate189.errors = vErrors; + validate203.errors = vErrors; return errors === 0; } -validate189.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate203.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema144 = { +const schema161 = { additionalProperties: false, properties: { cast_to: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Cast To" }, @@ -19350,7 +23185,7 @@ const schema144 = { title: "NodeFieldDocument", type: "object", }; -const schema145 = { +const schema162 = { additionalProperties: false, description: "One deterministic provider-specific schema annotation, never a credential.", properties: { @@ -19365,7 +23200,7 @@ const schema145 = { title: "ProviderExtension", type: "object", }; -const schema146 = { +const schema163 = { anyOf: [ { $ref: "#/$defs/NotNullFieldTest" }, { $ref: "#/$defs/UniqueFieldTest" }, @@ -19373,7 +23208,7 @@ const schema146 = { { $ref: "#/$defs/RelationshipsFieldTest" }, ], }; -const schema147 = { +const schema164 = { additionalProperties: false, properties: { field: { default: null, title: "Field", type: "null" }, @@ -19387,13 +23222,13 @@ const schema147 = { type: "object", }; -function validate196( +function validate210( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate196.evaluated; + const evaluated0 = validate210.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -19491,7 +23326,7 @@ function validate196( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -19499,7 +23334,7 @@ function validate196( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -19569,12 +23404,12 @@ function validate196( } errors++; } - validate196.errors = vErrors; + validate210.errors = vErrors; return errors === 0; } -validate196.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate210.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema149 = { +const schema166 = { additionalProperties: false, properties: { field: { default: null, title: "Field", type: "null" }, @@ -19588,13 +23423,13 @@ const schema149 = { type: "object", }; -function validate199( +function validate213( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate199.evaluated; + const evaluated0 = validate213.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -19692,7 +23527,7 @@ function validate199( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -19700,7 +23535,7 @@ function validate199( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -19770,12 +23605,12 @@ function validate199( } errors++; } - validate199.errors = vErrors; + validate213.errors = vErrors; return errors === 0; } -validate199.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate213.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema151 = { +const schema168 = { additionalProperties: false, properties: { field: { default: null, title: "Field", type: "null" }, @@ -19789,13 +23624,13 @@ const schema151 = { type: "object", }; -function validate202( +function validate216( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate202.evaluated; + const evaluated0 = validate216.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -19908,7 +23743,7 @@ function validate202( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -19916,7 +23751,7 @@ function validate202( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -19986,12 +23821,12 @@ function validate202( } errors++; } - validate202.errors = vErrors; + validate216.errors = vErrors; return errors === 0; } -validate202.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate216.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema153 = { +const schema170 = { additionalProperties: false, properties: { field: { minLength: 1, title: "Field", type: "string" }, @@ -20005,13 +23840,13 @@ const schema153 = { type: "object", }; -function validate205( +function validate219( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate205.evaluated; + const evaluated0 = validate219.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -20090,7 +23925,7 @@ function validate205( if (data.field !== undefined) { let data0 = data.field; if (typeof data0 === "string") { - if (func2(data0) < 1) { + if (func3(data0) < 1) { const err4 = { instancePath: instancePath + "/field", schemaPath: "#/properties/field/minLength", @@ -20156,7 +23991,7 @@ function validate205( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -20164,14 +23999,14 @@ function validate205( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } if (data.to !== undefined) { let data3 = data.to; if (typeof data3 === "string") { - if (func2(data3) < 1) { + if (func3(data3) < 1) { const err8 = { instancePath: instancePath + "/to", schemaPath: "#/properties/to/minLength", @@ -20251,18 +24086,18 @@ function validate205( } errors++; } - validate205.errors = vErrors; + validate219.errors = vErrors; return errors === 0; } -validate205.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate219.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate195( +function validate209( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate195.evaluated; + const evaluated0 = validate209.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -20273,9 +24108,9 @@ function validate195( let valid0 = false; const _errs1 = errors; if ( - !validate196(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate210(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate196.errors : vErrors.concat(validate196.errors); + vErrors = vErrors === null ? validate210.errors : vErrors.concat(validate210.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -20285,9 +24120,9 @@ function validate195( } const _errs2 = errors; if ( - !validate199(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate213(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate199.errors : vErrors.concat(validate199.errors); + vErrors = vErrors === null ? validate213.errors : vErrors.concat(validate213.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -20299,9 +24134,9 @@ function validate195( } const _errs3 = errors; if ( - !validate202(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate216(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate202.errors : vErrors.concat(validate202.errors); + vErrors = vErrors === null ? validate216.errors : vErrors.concat(validate216.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -20313,9 +24148,9 @@ function validate195( } const _errs4 = errors; if ( - !validate205(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate219(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate205.errors : vErrors.concat(validate205.errors); + vErrors = vErrors === null ? validate219.errors : vErrors.concat(validate219.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -20349,19 +24184,19 @@ function validate195( } } } - validate195.errors = vErrors; + validate209.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate195.evaluated = { dynamicProps: true, dynamicItems: false }; +validate209.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate193( +function validate207( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate193.evaluated; + const evaluated0 = validate207.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -20793,7 +24628,7 @@ function validate193( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -20801,7 +24636,7 @@ function validate193( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -20845,7 +24680,7 @@ function validate193( const len1 = data10.length; for (let i1 = 0; i1 < len1; i1++) { if ( - !validate195(data10[i1], { + !validate209(data10[i1], { instancePath: instancePath + "/tests/" + i1, parentData: data10, parentDataProperty: i1, @@ -20853,7 +24688,7 @@ function validate193( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate195.errors : vErrors.concat(validate195.errors); + vErrors = vErrors === null ? validate209.errors : vErrors.concat(validate209.errors); errors = vErrors.length; } } @@ -20905,19 +24740,19 @@ function validate193( } errors++; } - validate193.errors = vErrors; + validate207.errors = vErrors; return errors === 0; } -validate193.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate207.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema155 = { +const schema172 = { anyOf: [ { $ref: "#/$defs/ScheduleTrigger" }, { $ref: "#/$defs/DependencyTrigger" }, { $ref: "#/$defs/ManualTrigger" }, ], }; -const schema156 = { +const schema173 = { additionalProperties: false, properties: { cron: { minLength: 1, title: "Cron", type: "string" }, @@ -20931,13 +24766,13 @@ const schema156 = { type: "object", }; -function validate212( +function validate226( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate212.evaluated; + const evaluated0 = validate226.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -21001,7 +24836,7 @@ function validate212( if (data.cron !== undefined) { let data0 = data.cron; if (typeof data0 === "string") { - if (func2(data0) < 1) { + if (func3(data0) < 1) { const err3 = { instancePath: instancePath + "/cron", schemaPath: "#/properties/cron/minLength", @@ -21136,7 +24971,7 @@ function validate212( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -21144,7 +24979,7 @@ function validate212( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -21163,12 +24998,12 @@ function validate212( } errors++; } - validate212.errors = vErrors; + validate226.errors = vErrors; return errors === 0; } -validate212.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate226.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema157 = { +const schema174 = { additionalProperties: false, properties: { cron: { default: null, title: "Cron", type: "null" }, @@ -21182,13 +25017,13 @@ const schema157 = { type: "object", }; -function validate215( +function validate229( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate215.evaluated; + const evaluated0 = validate229.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -21370,7 +25205,7 @@ function validate215( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -21378,7 +25213,7 @@ function validate215( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -21397,12 +25232,12 @@ function validate215( } errors++; } - validate215.errors = vErrors; + validate229.errors = vErrors; return errors === 0; } -validate215.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate229.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema158 = { +const schema175 = { additionalProperties: false, properties: { cron: { default: null, title: "Cron", type: "null" }, @@ -21416,13 +25251,13 @@ const schema158 = { type: "object", }; -function validate218( +function validate232( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate218.evaluated; + const evaluated0 = validate232.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -21637,7 +25472,7 @@ function validate218( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -21645,7 +25480,7 @@ function validate218( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -21664,18 +25499,18 @@ function validate218( } errors++; } - validate218.errors = vErrors; + validate232.errors = vErrors; return errors === 0; } -validate218.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate232.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate211( +function validate225( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate211.evaluated; + const evaluated0 = validate225.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -21686,9 +25521,9 @@ function validate211( let valid0 = false; const _errs1 = errors; if ( - !validate212(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate226(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate212.errors : vErrors.concat(validate212.errors); + vErrors = vErrors === null ? validate226.errors : vErrors.concat(validate226.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -21698,9 +25533,9 @@ function validate211( } const _errs2 = errors; if ( - !validate215(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate229(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate215.errors : vErrors.concat(validate215.errors); + vErrors = vErrors === null ? validate229.errors : vErrors.concat(validate229.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -21712,9 +25547,9 @@ function validate211( } const _errs3 = errors; if ( - !validate218(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate232(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate218.errors : vErrors.concat(validate218.errors); + vErrors = vErrors === null ? validate232.errors : vErrors.concat(validate232.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -21748,13 +25583,13 @@ function validate211( } } } - validate211.errors = vErrors; + validate225.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate211.evaluated = { dynamicProps: true, dynamicItems: false }; +validate225.evaluated = { dynamicProps: true, dynamicItems: false }; -const schema159 = { +const schema176 = { additionalProperties: false, properties: { color: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Color" }, @@ -21764,7 +25599,7 @@ const schema159 = { title: "NodeVisualDocument", type: "object", }; -const schema160 = { +const schema177 = { additionalProperties: false, properties: { x: { title: "X", type: "number" }, y: { title: "Y", type: "number" } }, required: ["x", "y"], @@ -21772,13 +25607,13 @@ const schema160 = { type: "object", }; -function validate222( +function validate236( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate222.evaluated; + const evaluated0 = validate236.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -22097,18 +25932,18 @@ function validate222( } errors++; } - validate222.errors = vErrors; + validate236.errors = vErrors; return errors === 0; } -validate222.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate236.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate183( +function validate197( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate183.evaluated; + const evaluated0 = validate197.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -22204,7 +26039,7 @@ function validate183( errors++; } for (const key0 in data) { - if (!func1.call(schema138.properties, key0)) { + if (!func1.call(schema155.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -22222,7 +26057,7 @@ function validate183( } if (data.config !== undefined) { if ( - !validate184(data.config, { + !validate198(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -22230,7 +26065,7 @@ function validate183( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate184.errors : vErrors.concat(validate184.errors); + vErrors = vErrors === null ? validate198.errors : vErrors.concat(validate198.errors); errors = vErrors.length; } } @@ -22240,7 +26075,7 @@ function validate183( let valid2 = false; const _errs7 = errors; if ( - !validate189(data1, { + !validate203(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -22248,7 +26083,7 @@ function validate183( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate189.errors : vErrors.concat(validate189.errors); + vErrors = vErrors === null ? validate203.errors : vErrors.concat(validate203.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -22302,7 +26137,7 @@ function validate183( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate193(data2[i0], { + !validate207(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -22310,7 +26145,7 @@ function validate183( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate193.errors : vErrors.concat(validate193.errors); + vErrors = vErrors === null ? validate207.errors : vErrors.concat(validate207.errors); errors = vErrors.length; } } @@ -22370,7 +26205,7 @@ function validate183( let valid5 = false; const _errs19 = errors; if ( - !validate184(data6, { + !validate198(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -22378,7 +26213,7 @@ function validate183( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate184.errors : vErrors.concat(validate184.errors); + vErrors = vErrors === null ? validate198.errors : vErrors.concat(validate198.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -22432,7 +26267,7 @@ function validate183( let valid6 = false; const _errs25 = errors; if ( - !validate211(data7, { + !validate225(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -22440,7 +26275,7 @@ function validate183( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate211.errors : vErrors.concat(validate211.errors); + vErrors = vErrors === null ? validate225.errors : vErrors.concat(validate225.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -22527,7 +26362,7 @@ function validate183( let valid7 = false; const _errs32 = errors; if ( - !validate222(data9, { + !validate236(data9, { instancePath: instancePath + "/visual", parentData: data, parentDataProperty: "visual", @@ -22535,7 +26370,7 @@ function validate183( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate222.errors : vErrors.concat(validate222.errors); + vErrors = vErrors === null ? validate236.errors : vErrors.concat(validate236.errors); errors = vErrors.length; } var _valid3 = _errs32 === errors; @@ -22598,12 +26433,12 @@ function validate183( } errors++; } - validate183.errors = vErrors; + validate197.errors = vErrors; return errors === 0; } -validate183.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate197.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema161 = { +const schema178 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { @@ -22629,7 +26464,7 @@ const schema161 = { title: "TransformNodeDocument", type: "object", }; -const schema162 = { +const schema179 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, properties: { join: { anyOf: [{ $ref: "#/$defs/TransformJoinDocument" }, { type: "null" }], default: null }, @@ -22642,7 +26477,7 @@ const schema162 = { title: "TransformNodeConfigDocument", type: "object", }; -const schema164 = { +const schema181 = { additionalProperties: false, properties: { keys: { @@ -22659,7 +26494,7 @@ const schema164 = { title: "TransformJoinDocument", type: "object", }; -const schema165 = { +const schema182 = { additionalProperties: false, properties: { left: { minLength: 1, title: "Left", type: "string" }, @@ -22669,20 +26504,20 @@ const schema165 = { title: "ExecutableJoinKeyDocument", type: "object", }; -const schema166 = { +const schema183 = { description: "BigQuery join kinds supported by an executable transform node.", enum: ["inner", "left", "right", "full"], title: "ExecutableJoinType", type: "string", }; -function validate227( +function validate241( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate227.evaluated; + const evaluated0 = validate241.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -22844,7 +26679,7 @@ function validate227( if (data1.left !== undefined) { let data2 = data1.left; if (typeof data2 === "string") { - if (func2(data2) < 1) { + if (func3(data2) < 1) { const err9 = { instancePath: instancePath + "/keys/" + i0 + "/left", schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/left/minLength", @@ -22878,7 +26713,7 @@ function validate227( if (data1.right !== undefined) { let data3 = data1.right; if (typeof data3 === "string") { - if (func2(data3) < 1) { + if (func3(data3) < 1) { const err11 = { instancePath: instancePath + "/keys/" + i0 + "/right", schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/right/minLength", @@ -22944,7 +26779,7 @@ function validate227( if (data.left_input !== undefined) { let data4 = data.left_input; if (typeof data4 === "string") { - if (func2(data4) < 1) { + if (func3(data4) < 1) { const err15 = { instancePath: instancePath + "/left_input", schemaPath: "#/properties/left_input/minLength", @@ -22978,7 +26813,7 @@ function validate227( if (data.right_input !== undefined) { let data5 = data.right_input; if (typeof data5 === "string") { - if (func2(data5) < 1) { + if (func3(data5) < 1) { const err17 = { instancePath: instancePath + "/right_input", schemaPath: "#/properties/right_input/minLength", @@ -23031,7 +26866,7 @@ function validate227( instancePath: instancePath + "/type", schemaPath: "#/$defs/ExecutableJoinType/enum", keyword: "enum", - params: { allowedValues: schema166.enum }, + params: { allowedValues: schema183.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -23057,12 +26892,12 @@ function validate227( } errors++; } - validate227.errors = vErrors; + validate241.errors = vErrors; return errors === 0; } -validate227.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate241.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema167 = { +const schema184 = { anyOf: [ { $ref: "#/$defs/TruncateStringOperation" }, { $ref: "#/$defs/TrimWhitespaceOperation" }, @@ -23070,7 +26905,7 @@ const schema167 = { { $ref: "#/$defs/FilterRowsOperation" }, ], }; -const schema168 = { +const schema185 = { additionalProperties: false, properties: { kind: { const: "truncate_string", title: "Kind", type: "string" }, @@ -23081,7 +26916,7 @@ const schema168 = { title: "TruncateStringOperation", type: "object", }; -const schema169 = { +const schema186 = { additionalProperties: false, properties: { field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, @@ -23092,13 +26927,13 @@ const schema169 = { type: "object", }; -function validate230( +function validate244( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate230.evaluated; + const evaluated0 = validate244.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -23188,7 +27023,7 @@ function validate230( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -23196,7 +27031,7 @@ function validate230( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -23253,7 +27088,7 @@ function validate230( if (data2.field !== undefined) { let data3 = data2.field; if (typeof data3 === "string") { - if (!pattern8.test(data3)) { + if (!pattern10.test(data3)) { const err8 = { instancePath: instancePath + "/params/field", schemaPath: "#/$defs/TruncateStringParamsDocument/properties/field/pattern", @@ -23350,12 +27185,12 @@ function validate230( } errors++; } - validate230.errors = vErrors; + validate244.errors = vErrors; return errors === 0; } -validate230.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate244.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema170 = { +const schema187 = { additionalProperties: false, properties: { kind: { const: "trim_whitespace", title: "Kind", type: "string" }, @@ -23366,7 +27201,7 @@ const schema170 = { title: "TrimWhitespaceOperation", type: "object", }; -const schema171 = { +const schema188 = { additionalProperties: false, properties: { field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" } }, required: ["field"], @@ -23374,13 +27209,13 @@ const schema171 = { type: "object", }; -function validate233( +function validate247( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate233.evaluated; + const evaluated0 = validate247.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -23470,7 +27305,7 @@ function validate233( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -23478,7 +27313,7 @@ function validate233( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -23520,7 +27355,7 @@ function validate233( if (data2.field !== undefined) { let data3 = data2.field; if (typeof data3 === "string") { - if (!pattern8.test(data3)) { + if (!pattern10.test(data3)) { const err7 = { instancePath: instancePath + "/params/field", schemaPath: "#/$defs/TrimWhitespaceParamsDocument/properties/field/pattern", @@ -23582,12 +27417,12 @@ function validate233( } errors++; } - validate233.errors = vErrors; + validate247.errors = vErrors; return errors === 0; } -validate233.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate247.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema172 = { +const schema189 = { additionalProperties: false, properties: { kind: { const: "default_value", title: "Kind", type: "string" }, @@ -23598,7 +27433,7 @@ const schema172 = { title: "DefaultValueOperation", type: "object", }; -const schema173 = { +const schema190 = { additionalProperties: false, properties: { default: { @@ -23612,13 +27447,13 @@ const schema173 = { type: "object", }; -function validate236( +function validate250( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate236.evaluated; + const evaluated0 = validate250.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -23708,7 +27543,7 @@ function validate236( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -23716,7 +27551,7 @@ function validate236( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -23874,7 +27709,7 @@ function validate236( if (data2.field !== undefined) { let data4 = data2.field; if (typeof data4 === "string") { - if (!pattern8.test(data4)) { + if (!pattern10.test(data4)) { const err13 = { instancePath: instancePath + "/params/field", schemaPath: "#/$defs/DefaultValueParamsDocument/properties/field/pattern", @@ -23936,12 +27771,12 @@ function validate236( } errors++; } - validate236.errors = vErrors; + validate250.errors = vErrors; return errors === 0; } -validate236.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate250.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema174 = { +const schema191 = { additionalProperties: false, properties: { kind: { const: "filter_rows", title: "Kind", type: "string" }, @@ -23952,7 +27787,7 @@ const schema174 = { title: "FilterRowsOperation", type: "object", }; -const schema175 = { +const schema192 = { additionalProperties: false, properties: { conditions: { @@ -23967,13 +27802,13 @@ const schema175 = { title: "FilterRowsParamsDocument", type: "object", }; -const schema178 = { +const schema195 = { description: "How a filter's flat condition list combines.", enum: ["all", "any"], title: "MatchLogic", type: "string", }; -const schema176 = { +const schema193 = { additionalProperties: false, properties: { field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, @@ -24005,20 +27840,20 @@ const schema176 = { title: "FieldConditionDocument", type: "object", }; -const schema177 = { +const schema194 = { description: "Closed comparison grammar for ``filter_rows``.", enum: ["eq", "ne", "gt", "gte", "lt", "lte", "in", "not_in", "is_null", "is_not_null"], title: "ComparisonOperator", type: "string", }; -function validate242( +function validate256( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate242.evaluated; + const evaluated0 = validate256.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -24076,7 +27911,7 @@ function validate242( if (data.field !== undefined) { let data0 = data.field; if (typeof data0 === "string") { - if (!pattern8.test(data0)) { + if (!pattern10.test(data0)) { const err3 = { instancePath: instancePath + "/field", schemaPath: "#/properties/field/pattern", @@ -24140,7 +27975,7 @@ function validate242( instancePath: instancePath + "/op", schemaPath: "#/$defs/ComparisonOperator/enum", keyword: "enum", - params: { allowedValues: schema177.enum }, + params: { allowedValues: schema194.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -24406,18 +28241,18 @@ function validate242( } errors++; } - validate242.errors = vErrors; + validate256.errors = vErrors; return errors === 0; } -validate242.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate256.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate241( +function validate255( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate241.evaluated; + const evaluated0 = validate255.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -24478,7 +28313,7 @@ function validate241( const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate242(data0[i0], { + !validate256(data0[i0], { instancePath: instancePath + "/conditions/" + i0, parentData: data0, parentDataProperty: i0, @@ -24486,7 +28321,7 @@ function validate241( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate242.errors : vErrors.concat(validate242.errors); + vErrors = vErrors === null ? validate256.errors : vErrors.concat(validate256.errors); errors = vErrors.length; } } @@ -24528,7 +28363,7 @@ function validate241( instancePath: instancePath + "/logic", schemaPath: "#/$defs/MatchLogic/enum", keyword: "enum", - params: { allowedValues: schema178.enum }, + params: { allowedValues: schema195.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -24554,18 +28389,18 @@ function validate241( } errors++; } - validate241.errors = vErrors; + validate255.errors = vErrors; return errors === 0; } -validate241.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate255.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate239( +function validate253( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate239.evaluated; + const evaluated0 = validate253.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -24655,7 +28490,7 @@ function validate239( } if (data.metadata !== undefined) { if ( - !validate159(data.metadata, { + !validate173(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -24663,13 +28498,13 @@ function validate239( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } if (data.params !== undefined) { if ( - !validate241(data.params, { + !validate255(data.params, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -24677,7 +28512,7 @@ function validate239( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate241.errors : vErrors.concat(validate241.errors); + vErrors = vErrors === null ? validate255.errors : vErrors.concat(validate255.errors); errors = vErrors.length; } } @@ -24696,18 +28531,18 @@ function validate239( } errors++; } - validate239.errors = vErrors; + validate253.errors = vErrors; return errors === 0; } -validate239.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate253.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate229( +function validate243( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate229.evaluated; + const evaluated0 = validate243.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -24718,9 +28553,9 @@ function validate229( let valid0 = false; const _errs1 = errors; if ( - !validate230(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate244(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate230.errors : vErrors.concat(validate230.errors); + vErrors = vErrors === null ? validate244.errors : vErrors.concat(validate244.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -24730,9 +28565,9 @@ function validate229( } const _errs2 = errors; if ( - !validate233(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate247(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate233.errors : vErrors.concat(validate233.errors); + vErrors = vErrors === null ? validate247.errors : vErrors.concat(validate247.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -24744,9 +28579,9 @@ function validate229( } const _errs3 = errors; if ( - !validate236(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate250(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate236.errors : vErrors.concat(validate236.errors); + vErrors = vErrors === null ? validate250.errors : vErrors.concat(validate250.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -24758,9 +28593,9 @@ function validate229( } const _errs4 = errors; if ( - !validate239(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate253(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate239.errors : vErrors.concat(validate239.errors); + vErrors = vErrors === null ? validate253.errors : vErrors.concat(validate253.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -24794,19 +28629,19 @@ function validate229( } } } - validate229.errors = vErrors; + validate243.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate229.evaluated = { dynamicProps: true, dynamicItems: false }; +validate243.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate226( +function validate240( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate226.evaluated; + const evaluated0 = validate240.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -24820,7 +28655,7 @@ function validate226( let valid3 = false; const _errs5 = errors; if ( - !validate227(data1, { + !validate241(data1, { instancePath: instancePath + "/join", parentData: data, parentDataProperty: "join", @@ -24828,7 +28663,7 @@ function validate226( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate227.errors : vErrors.concat(validate227.errors); + vErrors = vErrors === null ? validate241.errors : vErrors.concat(validate241.errors); errors = vErrors.length; } var _valid0 = _errs5 === errors; @@ -24882,7 +28717,7 @@ function validate226( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate229(data2[i0], { + !validate243(data2[i0], { instancePath: instancePath + "/operations/" + i0, parentData: data2, parentDataProperty: i0, @@ -24890,7 +28725,7 @@ function validate226( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate229.errors : vErrors.concat(validate229.errors); + vErrors = vErrors === null ? validate243.errors : vErrors.concat(validate243.errors); errors = vErrors.length; } } @@ -24925,18 +28760,18 @@ function validate226( } errors++; } - validate226.errors = vErrors; + validate240.errors = vErrors; return errors === 0; } -validate226.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate240.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate225( +function validate239( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate225.evaluated; + const evaluated0 = validate239.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -25032,7 +28867,7 @@ function validate225( errors++; } for (const key0 in data) { - if (!func1.call(schema161.properties, key0)) { + if (!func1.call(schema178.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -25050,7 +28885,7 @@ function validate225( } if (data.config !== undefined) { if ( - !validate226(data.config, { + !validate240(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -25058,7 +28893,7 @@ function validate225( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate226.errors : vErrors.concat(validate226.errors); + vErrors = vErrors === null ? validate240.errors : vErrors.concat(validate240.errors); errors = vErrors.length; } } @@ -25068,7 +28903,7 @@ function validate225( let valid2 = false; const _errs7 = errors; if ( - !validate189(data1, { + !validate203(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -25076,7 +28911,7 @@ function validate225( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate189.errors : vErrors.concat(validate189.errors); + vErrors = vErrors === null ? validate203.errors : vErrors.concat(validate203.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -25130,7 +28965,7 @@ function validate225( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate193(data2[i0], { + !validate207(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -25138,7 +28973,7 @@ function validate225( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate193.errors : vErrors.concat(validate193.errors); + vErrors = vErrors === null ? validate207.errors : vErrors.concat(validate207.errors); errors = vErrors.length; } } @@ -25198,7 +29033,7 @@ function validate225( let valid5 = false; const _errs19 = errors; if ( - !validate226(data6, { + !validate240(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -25206,7 +29041,7 @@ function validate225( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate226.errors : vErrors.concat(validate226.errors); + vErrors = vErrors === null ? validate240.errors : vErrors.concat(validate240.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -25260,7 +29095,7 @@ function validate225( let valid6 = false; const _errs25 = errors; if ( - !validate211(data7, { + !validate225(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -25268,7 +29103,7 @@ function validate225( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate211.errors : vErrors.concat(validate211.errors); + vErrors = vErrors === null ? validate225.errors : vErrors.concat(validate225.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -25355,7 +29190,7 @@ function validate225( let valid7 = false; const _errs32 = errors; if ( - !validate222(data9, { + !validate236(data9, { instancePath: instancePath + "/visual", parentData: data, parentDataProperty: "visual", @@ -25363,7 +29198,7 @@ function validate225( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate222.errors : vErrors.concat(validate222.errors); + vErrors = vErrors === null ? validate236.errors : vErrors.concat(validate236.errors); errors = vErrors.length; } var _valid3 = _errs32 === errors; @@ -25426,12 +29261,12 @@ function validate225( } errors++; } - validate225.errors = vErrors; + validate239.errors = vErrors; return errors === 0; } -validate225.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate239.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema179 = { +const schema196 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { @@ -25457,7 +29292,7 @@ const schema179 = { title: "TargetNodeDocument", type: "object", }; -const schema180 = { +const schema197 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, properties: { writer: { anyOf: [{ $ref: "#/$defs/WriterDocument" }, { type: "null" }], default: null }, @@ -25465,7 +29300,7 @@ const schema180 = { title: "TargetNodeConfigDocument", type: "object", }; -const schema182 = { +const schema199 = { additionalProperties: false, properties: { clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, @@ -25499,7 +29334,7 @@ const schema182 = { title: "WriterDocument", type: "object", }; -const schema183 = { +const schema200 = { additionalProperties: false, properties: { business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, @@ -25511,19 +29346,19 @@ const schema183 = { title: "DestinationDocument", type: "object", }; -const schema186 = { +const schema203 = { description: "How a writer handles declared columns absent from an existing target.", enum: ["strict", "additive"], title: "SchemaEvolution", type: "string", }; -const schema187 = { +const schema204 = { description: "Supported load strategies.", enum: ["scd1", "scd2", "snapshot", "incremental", "replace"], title: "WriteMode", type: "string", }; -const schema184 = { +const schema201 = { additionalProperties: false, properties: { field: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Field" }, @@ -25537,7 +29372,7 @@ const schema184 = { title: "PartitioningDocument", type: "object", }; -const schema185 = { +const schema202 = { description: "The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare.\n\nA `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in\n`dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON;\nan out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately\nlimited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future\nmember (see `steering/02-engineering.md` on avoiding speculative generality).\n\nAttributes:\n HOUR: Hourly partitions.\n DAY: Daily partitions — the common case and BigQuery's default granularity.\n MONTH: Monthly partitions.\n YEAR: Yearly partitions.", enum: ["hour", "day", "month", "year"], @@ -25545,13 +29380,13 @@ const schema185 = { type: "string", }; -function validate257( +function validate271( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate257.evaluated; + const evaluated0 = validate271.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -25663,7 +29498,7 @@ function validate257( instancePath: instancePath + "/granularity", schemaPath: "#/$defs/PartitioningType/enum", keyword: "enum", - params: { allowedValues: schema185.enum }, + params: { allowedValues: schema202.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -25706,18 +29541,18 @@ function validate257( } errors++; } - validate257.errors = vErrors; + validate271.errors = vErrors; return errors === 0; } -validate257.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate271.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate256( +function validate270( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate256.evaluated; + const evaluated0 = validate270.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -25993,7 +29828,7 @@ function validate256( if (data3.dataset !== undefined) { let data6 = data3.dataset; if (typeof data6 === "string") { - if (func2(data6) < 1) { + if (func3(data6) < 1) { const err14 = { instancePath: instancePath + "/destination/dataset", schemaPath: "#/$defs/DestinationDocument/properties/dataset/minLength", @@ -26092,7 +29927,7 @@ function validate256( if (data3.table !== undefined) { let data8 = data3.table; if (typeof data8 === "string") { - if (func2(data8) < 1) { + if (func3(data8) < 1) { const err19 = { instancePath: instancePath + "/destination/table", schemaPath: "#/$defs/DestinationDocument/properties/table/minLength", @@ -26195,7 +30030,7 @@ function validate256( let valid9 = false; const _errs34 = errors; if ( - !validate257(data10, { + !validate271(data10, { instancePath: instancePath + "/partitioning", parentData: data, parentDataProperty: "partitioning", @@ -26203,7 +30038,7 @@ function validate256( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate257.errors : vErrors.concat(validate257.errors); + vErrors = vErrors === null ? validate271.errors : vErrors.concat(validate271.errors); errors = vErrors.length; } var _valid2 = _errs34 === errors; @@ -26273,7 +30108,7 @@ function validate256( instancePath: instancePath + "/schema_evolution", schemaPath: "#/$defs/SchemaEvolution/enum", keyword: "enum", - params: { allowedValues: schema186.enum }, + params: { allowedValues: schema203.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -26306,7 +30141,7 @@ function validate256( instancePath: instancePath + "/transport", schemaPath: "#/properties/transport/enum", keyword: "enum", - params: { allowedValues: schema182.properties.transport.enum }, + params: { allowedValues: schema199.properties.transport.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -26345,7 +30180,7 @@ function validate256( instancePath: instancePath + "/write_mode", schemaPath: "#/$defs/WriteMode/enum", keyword: "enum", - params: { allowedValues: schema187.enum }, + params: { allowedValues: schema204.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -26371,18 +30206,18 @@ function validate256( } errors++; } - validate256.errors = vErrors; + validate270.errors = vErrors; return errors === 0; } -validate256.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate270.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate255( +function validate269( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate255.evaluated; + const evaluated0 = validate269.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -26396,7 +30231,7 @@ function validate255( let valid3 = false; const _errs5 = errors; if ( - !validate256(data1, { + !validate270(data1, { instancePath: instancePath + "/writer", parentData: data, parentDataProperty: "writer", @@ -26404,7 +30239,7 @@ function validate255( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate256.errors : vErrors.concat(validate256.errors); + vErrors = vErrors === null ? validate270.errors : vErrors.concat(validate270.errors); errors = vErrors.length; } var _valid0 = _errs5 === errors; @@ -26467,18 +30302,18 @@ function validate255( } errors++; } - validate255.errors = vErrors; + validate269.errors = vErrors; return errors === 0; } -validate255.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate269.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate254( +function validate268( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate254.evaluated; + const evaluated0 = validate268.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -26574,7 +30409,7 @@ function validate254( errors++; } for (const key0 in data) { - if (!func1.call(schema179.properties, key0)) { + if (!func1.call(schema196.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -26592,7 +30427,7 @@ function validate254( } if (data.config !== undefined) { if ( - !validate255(data.config, { + !validate269(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -26600,7 +30435,7 @@ function validate254( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate255.errors : vErrors.concat(validate255.errors); + vErrors = vErrors === null ? validate269.errors : vErrors.concat(validate269.errors); errors = vErrors.length; } } @@ -26610,7 +30445,7 @@ function validate254( let valid2 = false; const _errs7 = errors; if ( - !validate189(data1, { + !validate203(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -26618,7 +30453,7 @@ function validate254( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate189.errors : vErrors.concat(validate189.errors); + vErrors = vErrors === null ? validate203.errors : vErrors.concat(validate203.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -26672,7 +30507,7 @@ function validate254( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate193(data2[i0], { + !validate207(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -26680,7 +30515,7 @@ function validate254( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate193.errors : vErrors.concat(validate193.errors); + vErrors = vErrors === null ? validate207.errors : vErrors.concat(validate207.errors); errors = vErrors.length; } } @@ -26740,7 +30575,7 @@ function validate254( let valid5 = false; const _errs19 = errors; if ( - !validate255(data6, { + !validate269(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -26748,7 +30583,7 @@ function validate254( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate255.errors : vErrors.concat(validate255.errors); + vErrors = vErrors === null ? validate269.errors : vErrors.concat(validate269.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -26802,7 +30637,7 @@ function validate254( let valid6 = false; const _errs25 = errors; if ( - !validate211(data7, { + !validate225(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -26810,7 +30645,7 @@ function validate254( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate211.errors : vErrors.concat(validate211.errors); + vErrors = vErrors === null ? validate225.errors : vErrors.concat(validate225.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -26897,7 +30732,7 @@ function validate254( let valid7 = false; const _errs32 = errors; if ( - !validate222(data9, { + !validate236(data9, { instancePath: instancePath + "/visual", parentData: data, parentDataProperty: "visual", @@ -26905,7 +30740,7 @@ function validate254( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate222.errors : vErrors.concat(validate222.errors); + vErrors = vErrors === null ? validate236.errors : vErrors.concat(validate236.errors); errors = vErrors.length; } var _valid3 = _errs32 === errors; @@ -26968,12 +30803,12 @@ function validate254( } errors++; } - validate254.errors = vErrors; + validate268.errors = vErrors; return errors === 0; } -validate254.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate268.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema188 = { +const schema205 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { @@ -26999,15 +30834,15 @@ const schema188 = { title: "ExtensionNodeDocument", type: "object", }; -const schema189 = { not: { enum: ["source", "transform", "target"] }, type: "string" }; +const schema206 = { not: { enum: ["source", "transform", "target"] }, type: "string" }; -function validate267( +function validate281( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate267.evaluated; + const evaluated0 = validate281.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -27103,7 +30938,7 @@ function validate267( errors++; } for (const key0 in data) { - if (!func1.call(schema188.properties, key0)) { + if (!func1.call(schema205.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -27121,7 +30956,7 @@ function validate267( } if (data.config !== undefined) { if ( - !validate159(data.config, { + !validate173(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -27129,7 +30964,7 @@ function validate267( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } } @@ -27139,7 +30974,7 @@ function validate267( let valid2 = false; const _errs7 = errors; if ( - !validate189(data1, { + !validate203(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -27147,7 +30982,7 @@ function validate267( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate189.errors : vErrors.concat(validate189.errors); + vErrors = vErrors === null ? validate203.errors : vErrors.concat(validate203.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -27201,7 +31036,7 @@ function validate267( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate193(data2[i0], { + !validate207(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -27209,7 +31044,7 @@ function validate267( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate193.errors : vErrors.concat(validate193.errors); + vErrors = vErrors === null ? validate207.errors : vErrors.concat(validate207.errors); errors = vErrors.length; } } @@ -27269,7 +31104,7 @@ function validate267( let valid5 = false; const _errs19 = errors; if ( - !validate159(data6, { + !validate173(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -27277,7 +31112,7 @@ function validate267( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate159.errors : vErrors.concat(validate159.errors); + vErrors = vErrors === null ? validate173.errors : vErrors.concat(validate173.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -27331,7 +31166,7 @@ function validate267( let valid6 = false; const _errs25 = errors; if ( - !validate211(data7, { + !validate225(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -27339,7 +31174,7 @@ function validate267( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate211.errors : vErrors.concat(validate211.errors); + vErrors = vErrors === null ? validate225.errors : vErrors.concat(validate225.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -27447,7 +31282,7 @@ function validate267( let valid9 = false; const _errs35 = errors; if ( - !validate222(data9, { + !validate236(data9, { instancePath: instancePath + "/visual", parentData: data, parentDataProperty: "visual", @@ -27455,7 +31290,7 @@ function validate267( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate222.errors : vErrors.concat(validate222.errors); + vErrors = vErrors === null ? validate236.errors : vErrors.concat(validate236.errors); errors = vErrors.length; } var _valid3 = _errs35 === errors; @@ -27518,18 +31353,18 @@ function validate267( } errors++; } - validate267.errors = vErrors; + validate281.errors = vErrors; return errors === 0; } -validate267.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate281.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate182( +function validate196( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate182.evaluated; + const evaluated0 = validate196.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -27540,9 +31375,9 @@ function validate182( let valid0 = false; const _errs1 = errors; if ( - !validate183(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate197(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate183.errors : vErrors.concat(validate183.errors); + vErrors = vErrors === null ? validate197.errors : vErrors.concat(validate197.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -27552,9 +31387,9 @@ function validate182( } const _errs2 = errors; if ( - !validate225(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate239(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate225.errors : vErrors.concat(validate225.errors); + vErrors = vErrors === null ? validate239.errors : vErrors.concat(validate239.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -27566,9 +31401,9 @@ function validate182( } const _errs3 = errors; if ( - !validate254(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate268(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate254.errors : vErrors.concat(validate254.errors); + vErrors = vErrors === null ? validate268.errors : vErrors.concat(validate268.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -27580,9 +31415,9 @@ function validate182( } const _errs4 = errors; if ( - !validate267(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate281(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate267.errors : vErrors.concat(validate267.errors); + vErrors = vErrors === null ? validate281.errors : vErrors.concat(validate281.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -27616,19 +31451,19 @@ function validate182( } } } - validate182.errors = vErrors; + validate196.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate182.evaluated = { dynamicProps: true, dynamicItems: false }; +validate196.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate156( +function validate170( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate156.evaluated; + const evaluated0 = validate170.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -27674,7 +31509,7 @@ function validate156( const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate157(data0[i0], { + !validate171(data0[i0], { instancePath: instancePath + "/edges/" + i0, parentData: data0, parentDataProperty: i0, @@ -27682,7 +31517,7 @@ function validate156( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate157.errors : vErrors.concat(validate157.errors); + vErrors = vErrors === null ? validate171.errors : vErrors.concat(validate171.errors); errors = vErrors.length; } } @@ -27725,7 +31560,7 @@ function validate156( const len1 = data3.length; for (let i1 = 0; i1 < len1; i1++) { if ( - !validate182(data3[i1], { + !validate196(data3[i1], { instancePath: instancePath + "/nodes/" + i1, parentData: data3, parentDataProperty: i1, @@ -27733,7 +31568,7 @@ function validate156( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate182.errors : vErrors.concat(validate182.errors); + vErrors = vErrors === null ? validate196.errors : vErrors.concat(validate196.errors); errors = vErrors.length; } } @@ -27759,7 +31594,7 @@ function validate156( let valid5 = false; const _errs12 = errors; if ( - !validate211(data5, { + !validate225(data5, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -27767,7 +31602,7 @@ function validate156( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate211.errors : vErrors.concat(validate211.errors); + vErrors = vErrors === null ? validate225.errors : vErrors.concat(validate225.errors); errors = vErrors.length; } var _valid0 = _errs12 === errors; @@ -27830,18 +31665,18 @@ function validate156( } errors++; } - validate156.errors = vErrors; + validate170.errors = vErrors; return errors === 0; } -validate156.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate170.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate155( +function validate169( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:dander:control:contracts:v1:graph-resource" */ let vErrors = null; let errors = 0; - const evaluated0 = validate155.evaluated; + const evaluated0 = validate169.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -28016,7 +31851,7 @@ function validate155( } if (data.document !== undefined) { if ( - !validate156(data.document, { + !validate170(data.document, { instancePath: instancePath + "/document", parentData: data, parentDataProperty: "document", @@ -28024,7 +31859,7 @@ function validate155( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate156.errors : vErrors.concat(validate156.errors); + vErrors = vErrors === null ? validate170.errors : vErrors.concat(validate170.errors); errors = vErrors.length; } } @@ -28094,13 +31929,13 @@ function validate155( } errors++; } - validate155.errors = vErrors; + validate169.errors = vErrors; return errors === 0; } -validate155.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate169.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateGraphValidation = validate278; -const schema190 = { +export const validateGraphValidation = validate292; +const schema207 = { $defs: { GraphValidationDetail: { additionalProperties: false, @@ -28127,7 +31962,7 @@ const schema190 = { title: "GraphValidationResponse", type: "object", }; -const schema191 = { +const schema208 = { additionalProperties: false, properties: { location: { title: "Location", type: "string" }, @@ -28139,13 +31974,13 @@ const schema191 = { type: "object", }; -function validate278( +function validate292( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:dander:control:contracts:v1:graph-validation" */ let vErrors = null; let errors = 0; - const evaluated0 = validate278.evaluated; + const evaluated0 = validate292.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -28455,13 +32290,13 @@ function validate278( } errors++; } - validate278.errors = vErrors; + validate292.errors = vErrors; return errors === 0; } -validate278.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate292.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateLogPage = validate279; -const schema192 = { +export const validateLogPage = validate293; +const schema209 = { $defs: { LogLevel: { enum: ["debug", "info", "warning", "error"], title: "LogLevel", type: "string" }, LogRecord: { @@ -28493,7 +32328,7 @@ const schema192 = { title: "LogPageResponse", type: "object", }; -const schema193 = { +const schema210 = { additionalProperties: false, properties: { code: { title: "Code", type: "string" }, @@ -28506,19 +32341,19 @@ const schema193 = { title: "LogRecord", type: "object", }; -const schema194 = { +const schema211 = { enum: ["debug", "info", "warning", "error"], title: "LogLevel", type: "string", }; -function validate280( +function validate294( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate280.evaluated; + const evaluated0 = validate294.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -28680,7 +32515,7 @@ function validate280( instancePath: instancePath + "/level", schemaPath: "#/$defs/LogLevel/enum", keyword: "enum", - params: { allowedValues: schema194.enum }, + params: { allowedValues: schema211.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -28740,18 +32575,18 @@ function validate280( } errors++; } - validate280.errors = vErrors; + validate294.errors = vErrors; return errors === 0; } -validate280.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate294.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate279( +function validate293( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:dander:control:contracts:v1:log-page" */ let vErrors = null; let errors = 0; - const evaluated0 = validate279.evaluated; + const evaluated0 = validate293.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -28862,7 +32697,7 @@ function validate279( const len0 = data1.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate280(data1[i0], { + !validate294(data1[i0], { instancePath: instancePath + "/records/" + i0, parentData: data1, parentDataProperty: i0, @@ -28870,7 +32705,7 @@ function validate279( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate280.errors : vErrors.concat(validate280.errors); + vErrors = vErrors === null ? validate294.errors : vErrors.concat(validate294.errors); errors = vErrors.length; } } @@ -28905,13 +32740,13 @@ function validate279( } errors++; } - validate279.errors = vErrors; + validate293.errors = vErrors; return errors === 0; } -validate279.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate293.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateMutationResult = validate282; -const schema195 = { +export const validateMutationResult = validate296; +const schema212 = { $defs: { RunState: { enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], @@ -28937,19 +32772,19 @@ const schema195 = { title: "MutationResult", type: "object", }; -const schema196 = { +const schema213 = { enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], title: "RunState", type: "string", }; -function validate282( +function validate296( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:dander:control:contracts:v1:mutation-result" */ let vErrors = null; let errors = 0; - const evaluated0 = validate282.evaluated; + const evaluated0 = validate296.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -29079,7 +32914,7 @@ function validate282( instancePath: instancePath + "/operation", schemaPath: "#/properties/operation/enum", keyword: "enum", - params: { allowedValues: schema195.properties.operation.enum }, + params: { allowedValues: schema212.properties.operation.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -29202,7 +33037,7 @@ function validate282( instancePath: instancePath + "/state", schemaPath: "#/$defs/RunState/enum", keyword: "enum", - params: { allowedValues: schema196.enum }, + params: { allowedValues: schema213.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -29228,13 +33063,13 @@ function validate282( } errors++; } - validate282.errors = vErrors; + validate296.errors = vErrors; return errors === 0; } -validate282.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate296.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateOperationCatalog = validate283; -const schema197 = { +export const validateOperationCatalog = validate297; +const schema214 = { $defs: { JsonValue: {}, OperationDescriptor: { @@ -29293,7 +33128,7 @@ const schema197 = { title: "OperationCatalogResponse", type: "object", }; -const schema198 = { +const schema215 = { additionalProperties: false, properties: { description: { title: "Description", type: "string" }, @@ -29313,7 +33148,7 @@ const schema198 = { title: "OperationDescriptor", type: "object", }; -const schema199 = { +const schema216 = { additionalProperties: false, properties: { control: { title: "Control", type: "string" }, @@ -29329,15 +33164,15 @@ const schema199 = { title: "OperationParameter", type: "object", }; -const schema200 = {}; +const schema217 = {}; -function validate285( +function validate299( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate285.evaluated; + const evaluated0 = validate299.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -29634,18 +33469,18 @@ function validate285( } errors++; } - validate285.errors = vErrors; + validate299.errors = vErrors; return errors === 0; } -validate285.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate299.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate284( +function validate298( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate284.evaluated; + const evaluated0 = validate298.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -29781,7 +33616,7 @@ function validate284( instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/enum", keyword: "enum", - params: { allowedValues: schema198.properties.kind.enum }, + params: { allowedValues: schema215.properties.kind.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -29798,7 +33633,7 @@ function validate284( const len0 = data3.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate285(data3[i0], { + !validate299(data3[i0], { instancePath: instancePath + "/parameters/" + i0, parentData: data3, parentDataProperty: i0, @@ -29806,7 +33641,7 @@ function validate284( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate285.errors : vErrors.concat(validate285.errors); + vErrors = vErrors === null ? validate299.errors : vErrors.concat(validate299.errors); errors = vErrors.length; } } @@ -29841,18 +33676,18 @@ function validate284( } errors++; } - validate284.errors = vErrors; + validate298.errors = vErrors; return errors === 0; } -validate284.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate298.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate283( +function validate297( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:dander:control:contracts:v1:operation-catalog" */ let vErrors = null; let errors = 0; - const evaluated0 = validate283.evaluated; + const evaluated0 = validate297.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -29898,7 +33733,7 @@ function validate283( const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate284(data0[i0], { + !validate298(data0[i0], { instancePath: instancePath + "/operations/" + i0, parentData: data0, parentDataProperty: i0, @@ -29906,7 +33741,7 @@ function validate283( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate284.errors : vErrors.concat(validate284.errors); + vErrors = vErrors === null ? validate298.errors : vErrors.concat(validate298.errors); errors = vErrors.length; } } @@ -29974,13 +33809,13 @@ function validate283( } errors++; } - validate283.errors = vErrors; + validate297.errors = vErrors; return errors === 0; } -validate283.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate297.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validatePipelineGraph = validate288; -const schema202 = { +export const validatePipelineGraph = validate302; +const schema219 = { $defs: { AcceptedValuesFieldTest: { additionalProperties: false, @@ -30734,104 +34569,2377 @@ const schema202 = { title: "WriteMode", type: "string", }, - WriterDocument: { - additionalProperties: false, - properties: { - clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, - cursor_field: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Cursor Field", - }, - destination: { $ref: "#/$defs/DestinationDocument" }, - max_batch_rows: { - default: 10000, - exclusiveMinimum: 0, - maximum: 100000, - title: "Max Batch Rows", - type: "integer", - }, - partitioning: { - anyOf: [{ $ref: "#/$defs/PartitioningDocument" }, { type: "null" }], - default: null, - }, - schema_evolution: { $ref: "#/$defs/SchemaEvolution", default: "strict" }, - transport: { - default: "load_job", - enum: ["load_job", "storage_write", "copy"], - title: "Transport", - type: "string", - }, - write_mode: { $ref: "#/$defs/WriteMode" }, - }, - required: ["write_mode", "destination"], - title: "WriterDocument", - type: "object", - }, + WriterDocument: { + additionalProperties: false, + properties: { + clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, + cursor_field: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Cursor Field", + }, + destination: { $ref: "#/$defs/DestinationDocument" }, + max_batch_rows: { + default: 10000, + exclusiveMinimum: 0, + maximum: 100000, + title: "Max Batch Rows", + type: "integer", + }, + partitioning: { + anyOf: [{ $ref: "#/$defs/PartitioningDocument" }, { type: "null" }], + default: null, + }, + schema_evolution: { $ref: "#/$defs/SchemaEvolution", default: "strict" }, + transport: { + default: "load_job", + enum: ["load_job", "storage_write", "copy"], + title: "Transport", + type: "string", + }, + write_mode: { $ref: "#/$defs/WriteMode" }, + }, + required: ["write_mode", "destination"], + title: "WriterDocument", + type: "object", + }, + }, + $id: "urn:dander:control:contracts:v1:pipeline-graph", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + description: "Canonical graph transport whose construction reuses Dander semantic validation.", + properties: { + edges: { items: { $ref: "#/$defs/EdgeDocument" }, title: "Edges", type: "array" }, + name: { title: "Name", type: "string" }, + nodes: { items: { $ref: "#/$defs/GraphNodeDocument" }, title: "Nodes", type: "array" }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + }, + required: ["name"], + title: "PipelineGraphDocument", + type: "object", +}; +const schema220 = { + additionalProperties: false, + properties: { + from: { title: "From", type: "string" }, + join: { anyOf: [{ $ref: "#/$defs/JoinDocument" }, { type: "null" }], default: null }, + mappings: { items: { $ref: "#/$defs/FieldMappingDocument" }, title: "Mappings", type: "array" }, + metadata: { $ref: "#/$defs/JsonObject" }, + to: { title: "To", type: "string" }, + }, + required: ["from", "to"], + title: "EdgeDocument", + type: "object", +}; +const schema221 = { + additionalProperties: false, + properties: { + keys: { + items: { $ref: "#/$defs/JoinKeyPairDocument" }, + minItems: 1, + title: "Keys", + type: "array", + }, + metadata: { $ref: "#/$defs/JsonObject" }, + type: { enum: ["inner", "left", "right", "full"], title: "Type", type: "string" }, + }, + required: ["type", "keys"], + title: "JoinDocument", + type: "object", +}; +const schema222 = { + additionalProperties: false, + properties: { + left: { title: "Left", type: "string" }, + right: { title: "Right", type: "string" }, + }, + required: ["left", "right"], + title: "JoinKeyPairDocument", + type: "object", +}; +const schema223 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, type: "object" }; +const schema224 = {}; + +function validate305( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate305.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + } else { + const err0 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + validate305.errors = vErrors; + return errors === 0; +} +validate305.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate304( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate304.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.type === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "type" }, + message: "must have required property '" + "type" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.keys === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "keys" }, + message: "must have required property '" + "keys" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "keys" || key0 === "metadata" || key0 === "type")) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.keys !== undefined) { + let data0 = data.keys; + if (Array.isArray(data0)) { + if (data0.length < 1) { + const err3 = { + instancePath: instancePath + "/keys", + schemaPath: "#/properties/keys/minItems", + keyword: "minItems", + params: { limit: 1 }, + message: "must NOT have fewer than 1 items", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + let data1 = data0[i0]; + if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { + if (data1.left === undefined) { + const err4 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/JoinKeyPairDocument/required", + keyword: "required", + params: { missingProperty: "left" }, + message: "must have required property '" + "left" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (data1.right === undefined) { + const err5 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/JoinKeyPairDocument/required", + keyword: "required", + params: { missingProperty: "right" }, + message: "must have required property '" + "right" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + for (const key1 in data1) { + if (!(key1 === "left" || key1 === "right")) { + const err6 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/JoinKeyPairDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + if (data1.left !== undefined) { + if (typeof data1.left !== "string") { + const err7 = { + instancePath: instancePath + "/keys/" + i0 + "/left", + schemaPath: "#/$defs/JoinKeyPairDocument/properties/left/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data1.right !== undefined) { + if (typeof data1.right !== "string") { + const err8 = { + instancePath: instancePath + "/keys/" + i0 + "/right", + schemaPath: "#/$defs/JoinKeyPairDocument/properties/right/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + } else { + const err9 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/JoinKeyPairDocument/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + } else { + const err10 = { + instancePath: instancePath + "/keys", + schemaPath: "#/properties/keys/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.type !== undefined) { + let data5 = data.type; + if (typeof data5 !== "string") { + const err11 = { + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + if (!(data5 === "inner" || data5 === "left" || data5 === "right" || data5 === "full")) { + const err12 = { + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/enum", + keyword: "enum", + params: { allowedValues: schema221.properties.type.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + } else { + const err13 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + validate304.errors = vErrors; + return errors === 0; +} +validate304.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema225 = { + additionalProperties: false, + properties: { + metadata: { $ref: "#/$defs/JsonObject" }, + source: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Source" }, + target: { title: "Target", type: "string" }, + transformation: { + anyOf: [{ $ref: "#/$defs/TransformationDocument" }, { type: "null" }], + default: null, + }, + }, + required: ["target"], + title: "FieldMappingDocument", + type: "object", +}; +const schema226 = { + anyOf: [ + { $ref: "#/$defs/DirectTransformation" }, + { $ref: "#/$defs/ExpressionTransformation" }, + { $ref: "#/$defs/ConstantTransformation" }, + { $ref: "#/$defs/CustomCodeTransformation" }, + ], +}; +const schema227 = { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "direct", default: "direct", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + title: "DirectTransformation", + type: "object", +}; +const schema228 = { + additionalProperties: false, + description: "A JSON object that must contain no properties.", + properties: {}, + title: "EmptyObject", + type: "object", +}; + +function validate311( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate311.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + for (const key0 in data) { + if (!( + key0 === "arguments" || + key0 === "constant" || + key0 === "expression" || + key0 === "function" || + key0 === "inputs" || + key0 === "kind" || + key0 === "metadata" + )) { + const err0 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + } + if (data.arguments !== undefined) { + let data0 = data.arguments; + if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { + for (const key1 in data0) { + const err1 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + } else { + const err2 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.constant !== undefined) { + if (data.constant !== null) { + const err3 = { + instancePath: instancePath + "/constant", + schemaPath: "#/properties/constant/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.expression !== undefined) { + if (data.expression !== null) { + const err4 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.function !== undefined) { + if (data.function !== null) { + const err5 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.inputs !== undefined) { + let data4 = data.inputs; + if (Array.isArray(data4)) { + const len0 = data4.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data4[i0] !== "string") { + const err6 = { + instancePath: instancePath + "/inputs/" + i0, + schemaPath: "#/properties/inputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + } else { + const err7 = { + instancePath: instancePath + "/inputs", + schemaPath: "#/properties/inputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data.kind !== undefined) { + let data6 = data.kind; + if (typeof data6 !== "string") { + const err8 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + if ("direct" !== data6) { + const err9 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "direct" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + } else { + const err10 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + validate311.errors = vErrors; + return errors === 0; +} +validate311.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema229 = { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { minLength: 1, title: "Expression", type: "string" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "expression", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "expression"], + title: "ExpressionTransformation", + type: "object", +}; + +function validate314( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate314.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.expression === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "expression" }, + message: "must have required property '" + "expression" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!( + key0 === "arguments" || + key0 === "constant" || + key0 === "expression" || + key0 === "function" || + key0 === "inputs" || + key0 === "kind" || + key0 === "metadata" + )) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.arguments !== undefined) { + let data0 = data.arguments; + if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { + for (const key1 in data0) { + const err3 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } else { + const err4 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.constant !== undefined) { + if (data.constant !== null) { + const err5 = { + instancePath: instancePath + "/constant", + schemaPath: "#/properties/constant/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.expression !== undefined) { + let data2 = data.expression; + if (typeof data2 === "string") { + if (func3(data2) < 1) { + const err6 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } else { + const err7 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data.function !== undefined) { + if (data.function !== null) { + const err8 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + if (data.inputs !== undefined) { + let data4 = data.inputs; + if (Array.isArray(data4)) { + const len0 = data4.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data4[i0] !== "string") { + const err9 = { + instancePath: instancePath + "/inputs/" + i0, + schemaPath: "#/properties/inputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + } else { + const err10 = { + instancePath: instancePath + "/inputs", + schemaPath: "#/properties/inputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data.kind !== undefined) { + let data6 = data.kind; + if (typeof data6 !== "string") { + const err11 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + if ("expression" !== data6) { + const err12 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "expression" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + } else { + const err13 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + validate314.errors = vErrors; + return errors === 0; +} +validate314.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema231 = { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/EmptyObject" }, + constant: { $ref: "#/$defs/JsonValue" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { default: null, title: "Function", type: "null" }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "constant", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "constant"], + title: "ConstantTransformation", + type: "object", +}; + +function validate317( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate317.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.constant === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "constant" }, + message: "must have required property '" + "constant" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!( + key0 === "arguments" || + key0 === "constant" || + key0 === "expression" || + key0 === "function" || + key0 === "inputs" || + key0 === "kind" || + key0 === "metadata" + )) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.arguments !== undefined) { + let data0 = data.arguments; + if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { + for (const key1 in data0) { + const err3 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } else { + const err4 = { + instancePath: instancePath + "/arguments", + schemaPath: "#/$defs/EmptyObject/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.expression !== undefined) { + if (data.expression !== null) { + const err5 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.function !== undefined) { + if (data.function !== null) { + const err6 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + if (data.inputs !== undefined) { + let data4 = data.inputs; + if (Array.isArray(data4)) { + const len0 = data4.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data4[i0] !== "string") { + const err7 = { + instancePath: instancePath + "/inputs/" + i0, + schemaPath: "#/properties/inputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + } else { + const err8 = { + instancePath: instancePath + "/inputs", + schemaPath: "#/properties/inputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + if (data.kind !== undefined) { + let data6 = data.kind; + if (typeof data6 !== "string") { + const err9 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + if ("constant" !== data6) { + const err10 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "constant" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + } else { + const err11 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + validate317.errors = vErrors; + return errors === 0; +} +validate317.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema234 = { + additionalProperties: false, + properties: { + arguments: { $ref: "#/$defs/JsonObject" }, + constant: { default: null, title: "Constant", type: "null" }, + expression: { default: null, title: "Expression", type: "null" }, + function: { + pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$", + title: "Function", + type: "string", + }, + inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, + kind: { const: "custom_code", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, }, - $id: "urn:dander:control:contracts:v1:pipeline-graph", - $schema: "https://json-schema.org/draft/2020-12/schema", + required: ["kind", "function"], + title: "CustomCodeTransformation", + type: "object", +}; + +function validate320( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate320.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.function === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "function" }, + message: "must have required property '" + "function" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!( + key0 === "arguments" || + key0 === "constant" || + key0 === "expression" || + key0 === "function" || + key0 === "inputs" || + key0 === "kind" || + key0 === "metadata" + )) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.arguments !== undefined) { + if ( + !validate305(data.arguments, { + instancePath: instancePath + "/arguments", + parentData: data, + parentDataProperty: "arguments", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.constant !== undefined) { + if (data.constant !== null) { + const err3 = { + instancePath: instancePath + "/constant", + schemaPath: "#/properties/constant/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.expression !== undefined) { + if (data.expression !== null) { + const err4 = { + instancePath: instancePath + "/expression", + schemaPath: "#/properties/expression/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.function !== undefined) { + let data3 = data.function; + if (typeof data3 === "string") { + if (!pattern9.test(data3)) { + const err5 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/pattern", + keyword: "pattern", + params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" }, + message: + 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + '"', + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } else { + const err6 = { + instancePath: instancePath + "/function", + schemaPath: "#/properties/function/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + if (data.inputs !== undefined) { + let data4 = data.inputs; + if (Array.isArray(data4)) { + const len0 = data4.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data4[i0] !== "string") { + const err7 = { + instancePath: instancePath + "/inputs/" + i0, + schemaPath: "#/properties/inputs/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + } else { + const err8 = { + instancePath: instancePath + "/inputs", + schemaPath: "#/properties/inputs/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + if (data.kind !== undefined) { + let data6 = data.kind; + if (typeof data6 !== "string") { + const err9 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + if ("custom_code" !== data6) { + const err10 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "custom_code" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + } else { + const err11 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + validate320.errors = vErrors; + return errors === 0; +} +validate320.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate310( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate310.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + const _errs0 = errors; + let valid0 = false; + const _errs1 = errors; + if ( + !validate311(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate311.errors : vErrors.concat(validate311.errors); + errors = vErrors.length; + } + var _valid0 = _errs1 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + var props0 = true; + } + const _errs2 = errors; + if ( + !validate314(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate314.errors : vErrors.concat(validate314.errors); + errors = vErrors.length; + } + var _valid0 = _errs2 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } + const _errs3 = errors; + if ( + !validate317(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate317.errors : vErrors.concat(validate317.errors); + errors = vErrors.length; + } + var _valid0 = _errs3 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } + const _errs4 = errors; + if ( + !validate320(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate320.errors : vErrors.concat(validate320.errors); + errors = vErrors.length; + } + var _valid0 = _errs4 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } + if (!valid0) { + const err0 = { + instancePath, + schemaPath: "#/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } else { + errors = _errs0; + if (vErrors !== null) { + if (_errs0) { + vErrors.length = _errs0; + } else { + vErrors = null; + } + } + } + validate310.errors = vErrors; + evaluated0.props = props0; + return errors === 0; +} +validate310.evaluated = { dynamicProps: true, dynamicItems: false }; + +function validate308( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate308.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.target === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "target" }, + message: "must have required property '" + "target" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + for (const key0 in data) { + if (!( + key0 === "metadata" || + key0 === "source" || + key0 === "target" || + key0 === "transformation" + )) { + const err1 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.source !== undefined) { + let data1 = data.source; + const _errs4 = errors; + let valid1 = false; + const _errs5 = errors; + if (typeof data1 !== "string") { + const err2 = { + instancePath: instancePath + "/source", + schemaPath: "#/properties/source/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + var _valid0 = _errs5 === errors; + valid1 = valid1 || _valid0; + const _errs7 = errors; + if (data1 !== null) { + const err3 = { + instancePath: instancePath + "/source", + schemaPath: "#/properties/source/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + var _valid0 = _errs7 === errors; + valid1 = valid1 || _valid0; + if (!valid1) { + const err4 = { + instancePath: instancePath + "/source", + schemaPath: "#/properties/source/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } else { + errors = _errs4; + if (vErrors !== null) { + if (_errs4) { + vErrors.length = _errs4; + } else { + vErrors = null; + } + } + } + } + if (data.target !== undefined) { + if (typeof data.target !== "string") { + const err5 = { + instancePath: instancePath + "/target", + schemaPath: "#/properties/target/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.transformation !== undefined) { + let data3 = data.transformation; + const _errs12 = errors; + let valid2 = false; + const _errs13 = errors; + if ( + !validate310(data3, { + instancePath: instancePath + "/transformation", + parentData: data, + parentDataProperty: "transformation", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate310.errors : vErrors.concat(validate310.errors); + errors = vErrors.length; + } + var _valid1 = _errs13 === errors; + valid2 = valid2 || _valid1; + const _errs14 = errors; + if (data3 !== null) { + const err6 = { + instancePath: instancePath + "/transformation", + schemaPath: "#/properties/transformation/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + var _valid1 = _errs14 === errors; + valid2 = valid2 || _valid1; + if (!valid2) { + const err7 = { + instancePath: instancePath + "/transformation", + schemaPath: "#/properties/transformation/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } else { + errors = _errs12; + if (vErrors !== null) { + if (_errs12) { + vErrors.length = _errs12; + } else { + vErrors = null; + } + } + } + } + } else { + const err8 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + validate308.errors = vErrors; + return errors === 0; +} +validate308.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate303( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate303.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.from === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "from" }, + message: "must have required property '" + "from" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.to === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "to" }, + message: "must have required property '" + "to" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!( + key0 === "from" || + key0 === "join" || + key0 === "mappings" || + key0 === "metadata" || + key0 === "to" + )) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + } + if (data.from !== undefined) { + if (typeof data.from !== "string") { + const err3 = { + instancePath: instancePath + "/from", + schemaPath: "#/properties/from/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.join !== undefined) { + let data1 = data.join; + const _errs5 = errors; + let valid1 = false; + const _errs6 = errors; + if ( + !validate304(data1, { + instancePath: instancePath + "/join", + parentData: data, + parentDataProperty: "join", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate304.errors : vErrors.concat(validate304.errors); + errors = vErrors.length; + } + var _valid0 = _errs6 === errors; + valid1 = valid1 || _valid0; + const _errs7 = errors; + if (data1 !== null) { + const err4 = { + instancePath: instancePath + "/join", + schemaPath: "#/properties/join/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + var _valid0 = _errs7 === errors; + valid1 = valid1 || _valid0; + if (!valid1) { + const err5 = { + instancePath: instancePath + "/join", + schemaPath: "#/properties/join/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } else { + errors = _errs5; + if (vErrors !== null) { + if (_errs5) { + vErrors.length = _errs5; + } else { + vErrors = null; + } + } + } + } + if (data.mappings !== undefined) { + let data2 = data.mappings; + if (Array.isArray(data2)) { + const len0 = data2.length; + for (let i0 = 0; i0 < len0; i0++) { + if ( + !validate308(data2[i0], { + instancePath: instancePath + "/mappings/" + i0, + parentData: data2, + parentDataProperty: i0, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate308.errors : vErrors.concat(validate308.errors); + errors = vErrors.length; + } + } + } else { + const err6 = { + instancePath: instancePath + "/mappings", + schemaPath: "#/properties/mappings/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.to !== undefined) { + if (typeof data.to !== "string") { + const err7 = { + instancePath: instancePath + "/to", + schemaPath: "#/properties/to/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + } else { + const err8 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + validate303.errors = vErrors; + return errors === 0; +} +validate303.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema235 = { + anyOf: [ + { $ref: "#/$defs/SourceNodeDocument" }, + { $ref: "#/$defs/TransformNodeDocument" }, + { $ref: "#/$defs/TargetNodeDocument" }, + { $ref: "#/$defs/ExtensionNodeDocument" }, + ], +}; +const schema236 = { additionalProperties: false, - description: "Canonical graph transport whose construction reuses Dander semantic validation.", + not: { required: ["config", "params"] }, properties: { - edges: { items: { $ref: "#/$defs/EdgeDocument" }, title: "Edges", type: "array" }, + config: { $ref: "#/$defs/SourceNodeConfigDocument" }, + cursor: { + anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], + default: null, + }, + fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, + id: { title: "Id", type: "string" }, name: { title: "Name", type: "string" }, - nodes: { items: { $ref: "#/$defs/GraphNodeDocument" }, title: "Nodes", type: "array" }, + params: { + anyOf: [{ $ref: "#/$defs/SourceNodeConfigDocument" }, { type: "null" }], + default: null, + deprecated: true, + "x-dander-canonical-name": "config", + }, trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + type: { const: "source", title: "Type", type: "string" }, + visual: { anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], default: null }, }, - required: ["name"], - title: "PipelineGraphDocument", + required: ["id", "type", "name"], + title: "SourceNodeDocument", type: "object", }; -const schema203 = { - additionalProperties: false, +const schema237 = { + additionalProperties: { $ref: "#/$defs/JsonValue" }, properties: { - from: { title: "From", type: "string" }, - join: { anyOf: [{ $ref: "#/$defs/JoinDocument" }, { type: "null" }], default: null }, - mappings: { items: { $ref: "#/$defs/FieldMappingDocument" }, title: "Mappings", type: "array" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { title: "To", type: "string" }, + connector: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Connector" }, + endpoint: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Endpoint" }, + request: { anyOf: [{ $ref: "#/$defs/RequestSpecDocument" }, { type: "null" }], default: null }, }, - required: ["from", "to"], - title: "EdgeDocument", + title: "SourceNodeConfigDocument", type: "object", }; -const schema204 = { +const schema239 = { additionalProperties: false, properties: { - keys: { - items: { $ref: "#/$defs/JoinKeyPairDocument" }, - minItems: 1, - title: "Keys", - type: "array", + body: { + anyOf: [{ $ref: "#/$defs/JsonObject" }, { type: "string" }, { type: "null" }], + default: null, + title: "Body", + }, + headers: { additionalProperties: { type: "string" }, title: "Headers", type: "object" }, + method: { $ref: "#/$defs/HttpMethod", default: "GET" }, + query_params: { + additionalProperties: { type: "string" }, + title: "Query Params", + type: "object", }, - metadata: { $ref: "#/$defs/JsonObject" }, - type: { enum: ["inner", "left", "right", "full"], title: "Type", type: "string" }, }, - required: ["type", "keys"], - title: "JoinDocument", + title: "RequestSpecDocument", type: "object", }; -const schema205 = { - additionalProperties: false, - properties: { - left: { title: "Left", type: "string" }, - right: { title: "Right", type: "string" }, - }, - required: ["left", "right"], - title: "JoinKeyPairDocument", - type: "object", +const schema240 = { + description: + "The closed set of HTTP methods a `RequestSpec` may declare.\n\nA `StrEnum` (matching the `TransformationKind`/`JoinType` convention in `graph.py`) so callers\nget a named, importable type that still serializes to/from its plain string value stably in\nYAML and JSON. An out-of-set value fails validation with a clear error at the Pydantic\nboundary. `HEAD`/`OPTIONS` are intentionally omitted (no source currently needs them); extend\nby adding a member later without touching callers.\n\nAttributes:\n GET: Retrieve a resource. The default method (a simple GET needs no explicit spec).\n POST: Create a resource / submit a query body.\n PUT: Replace a resource.\n PATCH: Partially update a resource.\n DELETE: Remove a resource.", + enum: ["GET", "POST", "PUT", "PATCH", "DELETE"], + title: "HttpMethod", + type: "string", }; -const schema206 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, type: "object" }; -const schema207 = {}; -function validate291( +function validate331( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate331.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + for (const key0 in data) { + if (!( + key0 === "body" || + key0 === "headers" || + key0 === "method" || + key0 === "query_params" + )) { + const err0 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + } + if (data.body !== undefined) { + let data0 = data.body; + const _errs3 = errors; + let valid1 = false; + const _errs4 = errors; + if ( + !validate305(data0, { + instancePath: instancePath + "/body", + parentData: data, + parentDataProperty: "body", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + var _valid0 = _errs4 === errors; + valid1 = valid1 || _valid0; + const _errs5 = errors; + if (typeof data0 !== "string") { + const err1 = { + instancePath: instancePath + "/body", + schemaPath: "#/properties/body/anyOf/1/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + var _valid0 = _errs5 === errors; + valid1 = valid1 || _valid0; + const _errs7 = errors; + if (data0 !== null) { + const err2 = { + instancePath: instancePath + "/body", + schemaPath: "#/properties/body/anyOf/2/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + var _valid0 = _errs7 === errors; + valid1 = valid1 || _valid0; + if (!valid1) { + const err3 = { + instancePath: instancePath + "/body", + schemaPath: "#/properties/body/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } else { + errors = _errs3; + if (vErrors !== null) { + if (_errs3) { + vErrors.length = _errs3; + } else { + vErrors = null; + } + } + } + } + if (data.headers !== undefined) { + let data1 = data.headers; + if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { + for (const key1 in data1) { + if (typeof data1[key1] !== "string") { + const err4 = { + instancePath: + instancePath + "/headers/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"), + schemaPath: "#/properties/headers/additionalProperties/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + } else { + const err5 = { + instancePath: instancePath + "/headers", + schemaPath: "#/properties/headers/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.method !== undefined) { + let data3 = data.method; + if (typeof data3 !== "string") { + const err6 = { + instancePath: instancePath + "/method", + schemaPath: "#/$defs/HttpMethod/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + if (!( + data3 === "GET" || + data3 === "POST" || + data3 === "PUT" || + data3 === "PATCH" || + data3 === "DELETE" + )) { + const err7 = { + instancePath: instancePath + "/method", + schemaPath: "#/$defs/HttpMethod/enum", + keyword: "enum", + params: { allowedValues: schema240.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data.query_params !== undefined) { + let data4 = data.query_params; + if (data4 && typeof data4 == "object" && !Array.isArray(data4)) { + for (const key2 in data4) { + if (typeof data4[key2] !== "string") { + const err8 = { + instancePath: + instancePath + "/query_params/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"), + schemaPath: "#/properties/query_params/additionalProperties/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + } else { + const err9 = { + instancePath: instancePath + "/query_params", + schemaPath: "#/properties/query_params/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + } else { + const err10 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + validate331.errors = vErrors; + return errors === 0; +} +validate331.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate330( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate291.evaluated; + const evaluated0 = validate330.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -30839,8 +36947,200 @@ function validate291( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.connector !== undefined) { + let data1 = data.connector; + const _errs4 = errors; + let valid3 = false; + const _errs5 = errors; + if (typeof data1 !== "string") { + const err0 = { + instancePath: instancePath + "/connector", + schemaPath: "#/properties/connector/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + var _valid0 = _errs5 === errors; + valid3 = valid3 || _valid0; + const _errs7 = errors; + if (data1 !== null) { + const err1 = { + instancePath: instancePath + "/connector", + schemaPath: "#/properties/connector/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + var _valid0 = _errs7 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err2 = { + instancePath: instancePath + "/connector", + schemaPath: "#/properties/connector/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } else { + errors = _errs4; + if (vErrors !== null) { + if (_errs4) { + vErrors.length = _errs4; + } else { + vErrors = null; + } + } + } + } + if (data.endpoint !== undefined) { + let data2 = data.endpoint; + const _errs10 = errors; + let valid4 = false; + const _errs11 = errors; + if (typeof data2 !== "string") { + const err3 = { + instancePath: instancePath + "/endpoint", + schemaPath: "#/properties/endpoint/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + var _valid1 = _errs11 === errors; + valid4 = valid4 || _valid1; + const _errs13 = errors; + if (data2 !== null) { + const err4 = { + instancePath: instancePath + "/endpoint", + schemaPath: "#/properties/endpoint/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + var _valid1 = _errs13 === errors; + valid4 = valid4 || _valid1; + if (!valid4) { + const err5 = { + instancePath: instancePath + "/endpoint", + schemaPath: "#/properties/endpoint/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } else { + errors = _errs10; + if (vErrors !== null) { + if (_errs10) { + vErrors.length = _errs10; + } else { + vErrors = null; + } + } + } + } + if (data.request !== undefined) { + let data3 = data.request; + const _errs16 = errors; + let valid5 = false; + const _errs17 = errors; + if ( + !validate331(data3, { + instancePath: instancePath + "/request", + parentData: data, + parentDataProperty: "request", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate331.errors : vErrors.concat(validate331.errors); + errors = vErrors.length; + } + var _valid2 = _errs17 === errors; + valid5 = valid5 || _valid2; + const _errs18 = errors; + if (data3 !== null) { + const err6 = { + instancePath: instancePath + "/request", + schemaPath: "#/properties/request/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + var _valid2 = _errs18 === errors; + valid5 = valid5 || _valid2; + if (!valid5) { + const err7 = { + instancePath: instancePath + "/request", + schemaPath: "#/properties/request/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } else { + errors = _errs16; + if (vErrors !== null) { + if (_errs16) { + vErrors.length = _errs16; + } else { + vErrors = null; + } + } + } + } } else { - const err0 = { + const err8 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -30848,24 +37148,37 @@ function validate291( message: "must be object", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err8]; } else { - vErrors.push(err0); + vErrors.push(err8); } errors++; } - validate291.errors = vErrors; + validate330.errors = vErrors; return errors === 0; } -validate291.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate330.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema241 = { + additionalProperties: false, + properties: { + field: { minLength: 1, title: "Field", type: "string" }, + kind: { enum: ["timestamp", "sequence", "opaque_token"], title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/JsonObject" }, + }, + required: ["field", "kind"], + title: "CursorStrategyDocument", + type: "object", +}; -function validate290( +function validate335( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate290.evaluated; + const evaluated0 = validate335.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -30873,13 +37186,13 @@ function validate290( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.type === undefined) { + if (data.field === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "type" }, - message: "must have required property '" + "type" + "'", + params: { missingProperty: "field" }, + message: "must have required property '" + "field" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -30888,13 +37201,13 @@ function validate290( } errors++; } - if (data.keys === undefined) { + if (data.kind === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "keys" }, - message: "must have required property '" + "keys" + "'", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -30904,7 +37217,7 @@ function validate290( errors++; } for (const key0 in data) { - if (!(key0 === "keys" || key0 === "metadata" || key0 === "type")) { + if (!(key0 === "field" || key0 === "kind" || key0 === "metadata" || key0 === "params")) { const err2 = { instancePath, schemaPath: "#/additionalProperties", @@ -30920,16 +37233,16 @@ function validate290( errors++; } } - if (data.keys !== undefined) { - let data0 = data.keys; - if (Array.isArray(data0)) { - if (data0.length < 1) { + if (data.field !== undefined) { + let data0 = data.field; + if (typeof data0 === "string") { + if (func3(data0) < 1) { const err3 = { - instancePath: instancePath + "/keys", - schemaPath: "#/properties/keys/minItems", - keyword: "minItems", + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/minLength", + keyword: "minLength", params: { limit: 1 }, - message: "must NOT have fewer than 1 items", + message: "must NOT have fewer than 1 characters", }; if (vErrors === null) { vErrors = [err3]; @@ -30938,172 +37251,85 @@ function validate290( } errors++; } - const len0 = data0.length; - for (let i0 = 0; i0 < len0; i0++) { - let data1 = data0[i0]; - if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { - if (data1.left === undefined) { - const err4 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/JoinKeyPairDocument/required", - keyword: "required", - params: { missingProperty: "left" }, - message: "must have required property '" + "left" + "'", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - if (data1.right === undefined) { - const err5 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/JoinKeyPairDocument/required", - keyword: "required", - params: { missingProperty: "right" }, - message: "must have required property '" + "right" + "'", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - for (const key1 in data1) { - if (!(key1 === "left" || key1 === "right")) { - const err6 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/JoinKeyPairDocument/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - } - if (data1.left !== undefined) { - if (typeof data1.left !== "string") { - const err7 = { - instancePath: instancePath + "/keys/" + i0 + "/left", - schemaPath: "#/$defs/JoinKeyPairDocument/properties/left/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - } - if (data1.right !== undefined) { - if (typeof data1.right !== "string") { - const err8 = { - instancePath: instancePath + "/keys/" + i0 + "/right", - schemaPath: "#/$defs/JoinKeyPairDocument/properties/right/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } - } else { - const err9 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/JoinKeyPairDocument/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } } else { - const err10 = { - instancePath: instancePath + "/keys", - schemaPath: "#/properties/keys/type", + const err4 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err4]; } else { - vErrors.push(err10); + vErrors.push(err4); } errors++; } } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.type !== undefined) { - let data5 = data.type; - if (typeof data5 !== "string") { - const err11 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/type", + if (data.kind !== undefined) { + let data1 = data.kind; + if (typeof data1 !== "string") { + const err5 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err5]; } else { - vErrors.push(err11); + vErrors.push(err5); } errors++; } - if (!(data5 === "inner" || data5 === "left" || data5 === "right" || data5 === "full")) { - const err12 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/enum", + if (!(data1 === "timestamp" || data1 === "sequence" || data1 === "opaque_token")) { + const err6 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/enum", keyword: "enum", - params: { allowedValues: schema204.properties.type.enum }, + params: { allowedValues: schema241.properties.kind.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { - vErrors = [err12]; + vErrors = [err6]; } else { - vErrors.push(err12); + vErrors.push(err6); } errors++; } } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.params !== undefined) { + if ( + !validate305(data.params, { + instancePath: instancePath + "/params", + parentData: data, + parentDataProperty: "params", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } } else { - const err13 = { + const err7 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -31111,69 +37337,85 @@ function validate290( message: "must be object", }; if (vErrors === null) { - vErrors = [err13]; + vErrors = [err7]; } else { - vErrors.push(err13); + vErrors.push(err7); } errors++; } - validate290.errors = vErrors; + validate335.errors = vErrors; return errors === 0; } -validate290.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate335.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema208 = { +const schema242 = { additionalProperties: false, properties: { - metadata: { $ref: "#/$defs/JsonObject" }, - source: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Source" }, - target: { title: "Target", type: "string" }, - transformation: { - anyOf: [{ $ref: "#/$defs/TransformationDocument" }, { type: "null" }], + cast_to: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Cast To" }, + description: { + anyOf: [{ type: "string" }, { type: "null" }], default: null, + title: "Description", + }, + extensions: { + items: { $ref: "#/$defs/ProviderExtension" }, + title: "Extensions", + type: "array", + }, + metadata: { $ref: "#/$defs/JsonObject" }, + name: { title: "Name", type: "string" }, + nullable: { default: true, title: "Nullable", type: "boolean" }, + tests: { items: { $ref: "#/$defs/FieldTestDocument" }, title: "Tests", type: "array" }, + type: { title: "Type", type: "string" }, + }, + required: ["name", "type"], + title: "NodeFieldDocument", + type: "object", +}; +const schema243 = { + additionalProperties: false, + description: "One deterministic provider-specific schema annotation, never a credential.", + properties: { + name: { title: "Name", type: "string" }, + provider: { title: "Provider", type: "string" }, + value: { + anyOf: [{ type: "string" }, { type: "integer" }, { type: "number" }, { type: "boolean" }], + title: "Value", }, }, - required: ["target"], - title: "FieldMappingDocument", + required: ["provider", "name", "value"], + title: "ProviderExtension", type: "object", }; -const schema209 = { +const schema244 = { anyOf: [ - { $ref: "#/$defs/DirectTransformation" }, - { $ref: "#/$defs/ExpressionTransformation" }, - { $ref: "#/$defs/ConstantTransformation" }, - { $ref: "#/$defs/CustomCodeTransformation" }, + { $ref: "#/$defs/NotNullFieldTest" }, + { $ref: "#/$defs/UniqueFieldTest" }, + { $ref: "#/$defs/AcceptedValuesFieldTest" }, + { $ref: "#/$defs/RelationshipsFieldTest" }, ], }; -const schema210 = { +const schema245 = { additionalProperties: false, properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "direct", default: "direct", title: "Kind", type: "string" }, + field: { default: null, title: "Field", type: "null" }, + kind: { const: "not_null", title: "Kind", type: "string" }, metadata: { $ref: "#/$defs/JsonObject" }, + to: { default: null, title: "To", type: "null" }, + values: { items: { $ref: "#/$defs/JsonValue" }, maxItems: 0, title: "Values", type: "array" }, }, - title: "DirectTransformation", - type: "object", -}; -const schema211 = { - additionalProperties: false, - description: "A JSON object that must contain no properties.", - properties: {}, - title: "EmptyObject", + required: ["kind"], + title: "NotNullFieldTest", type: "object", }; -function validate297( +function validate342( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate297.evaluated; + const evaluated0 = validate342.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -31181,17 +37423,30 @@ function validate297( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } for (const key0 in data) { if (!( - key0 === "arguments" || - key0 === "constant" || - key0 === "expression" || - key0 === "function" || - key0 === "inputs" || + key0 === "field" || key0 === "kind" || - key0 === "metadata" + key0 === "metadata" || + key0 === "to" || + key0 === "values" )) { - const err0 = { + const err1 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -31199,38 +37454,21 @@ function validate297( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err1]; } else { - vErrors.push(err0); + vErrors.push(err1); } errors++; } } - if (data.arguments !== undefined) { - let data0 = data.arguments; - if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { - for (const key1 in data0) { - const err1 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } - } else { + if (data.field !== undefined) { + if (data.field !== null) { const err2 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/type", + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { vErrors = [err2]; @@ -31240,14 +37478,15 @@ function validate297( errors++; } } - if (data.constant !== undefined) { - if (data.constant !== null) { + if (data.kind !== undefined) { + let data1 = data.kind; + if (typeof data1 !== "string") { const err3 = { - instancePath: instancePath + "/constant", - schemaPath: "#/properties/constant/type", + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { vErrors = [err3]; @@ -31256,15 +37495,13 @@ function validate297( } errors++; } - } - if (data.expression !== undefined) { - if (data.expression !== null) { + if ("not_null" !== data1) { const err4 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "not_null" }, + message: "must be equal to constant", }; if (vErrors === null) { vErrors = [err4]; @@ -31274,11 +37511,25 @@ function validate297( errors++; } } - if (data.function !== undefined) { - if (data.function !== null) { + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.to !== undefined) { + if (data.to !== null) { const err5 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/type", + instancePath: instancePath + "/to", + schemaPath: "#/properties/to/type", keyword: "type", params: { type: "null" }, message: "must be null", @@ -31291,31 +37542,28 @@ function validate297( errors++; } } - if (data.inputs !== undefined) { - let data4 = data.inputs; + if (data.values !== undefined) { + let data4 = data.values; if (Array.isArray(data4)) { - const len0 = data4.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data4[i0] !== "string") { - const err6 = { - instancePath: instancePath + "/inputs/" + i0, - schemaPath: "#/properties/inputs/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; + if (data4.length > 0) { + const err6 = { + instancePath: instancePath + "/values", + schemaPath: "#/properties/values/maxItems", + keyword: "maxItems", + params: { limit: 0 }, + message: "must NOT have more than 0 items", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); } + errors++; } } else { const err7 = { - instancePath: instancePath + "/inputs", - schemaPath: "#/properties/inputs/type", + instancePath: instancePath + "/values", + schemaPath: "#/properties/values/type", keyword: "type", params: { type: "array" }, message: "must be array", @@ -31328,55 +37576,8 @@ function validate297( errors++; } } - if (data.kind !== undefined) { - let data6 = data.kind; - if (typeof data6 !== "string") { - const err8 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - if ("direct" !== data6) { - const err9 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "direct" }, - message: "must be equal to constant", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } } else { - const err10 = { + const err8 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -31384,40 +37585,38 @@ function validate297( message: "must be object", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err8]; } else { - vErrors.push(err10); + vErrors.push(err8); } errors++; } - validate297.errors = vErrors; + validate342.errors = vErrors; return errors === 0; } -validate297.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate342.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema212 = { +const schema247 = { additionalProperties: false, properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { minLength: 1, title: "Expression", type: "string" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "expression", title: "Kind", type: "string" }, + field: { default: null, title: "Field", type: "null" }, + kind: { const: "unique", title: "Kind", type: "string" }, metadata: { $ref: "#/$defs/JsonObject" }, + to: { default: null, title: "To", type: "null" }, + values: { items: { $ref: "#/$defs/JsonValue" }, maxItems: 0, title: "Values", type: "array" }, }, - required: ["kind", "expression"], - title: "ExpressionTransformation", + required: ["kind"], + title: "UniqueFieldTest", type: "object", }; -function validate300( +function validate345( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate300.evaluated; + const evaluated0 = validate345.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -31440,38 +37639,38 @@ function validate300( } errors++; } - if (data.expression === undefined) { - const err1 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "expression" }, - message: "must have required property '" + "expression" + "'", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } for (const key0 in data) { if (!( - key0 === "arguments" || - key0 === "constant" || - key0 === "expression" || - key0 === "function" || - key0 === "inputs" || + key0 === "field" || key0 === "kind" || - key0 === "metadata" + key0 === "metadata" || + key0 === "to" || + key0 === "values" )) { - const err2 = { + const err1 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties", }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + } + if (data.field !== undefined) { + if (data.field !== null) { + const err2 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; if (vErrors === null) { vErrors = [err2]; } else { @@ -31480,31 +37679,30 @@ function validate300( errors++; } } - if (data.arguments !== undefined) { - let data0 = data.arguments; - if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { - for (const key1 in data0) { - const err3 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; + if (data.kind !== undefined) { + let data1 = data.kind; + if (typeof data1 !== "string") { + const err3 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); } - } else { + errors++; + } + if ("unique" !== data1) { const err4 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "unique" }, + message: "must be equal to constant", }; if (vErrors === null) { vErrors = [err4]; @@ -31514,11 +37712,25 @@ function validate300( errors++; } } - if (data.constant !== undefined) { - if (data.constant !== null) { + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.to !== undefined) { + if (data.to !== null) { const err5 = { - instancePath: instancePath + "/constant", - schemaPath: "#/properties/constant/type", + instancePath: instancePath + "/to", + schemaPath: "#/properties/to/type", keyword: "type", params: { type: "null" }, message: "must be null", @@ -31531,16 +37743,16 @@ function validate300( errors++; } } - if (data.expression !== undefined) { - let data2 = data.expression; - if (typeof data2 === "string") { - if (func2(data2) < 1) { + if (data.values !== undefined) { + let data4 = data.values; + if (Array.isArray(data4)) { + if (data4.length > 0) { const err6 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", + instancePath: instancePath + "/values", + schemaPath: "#/properties/values/maxItems", + keyword: "maxItems", + params: { limit: 0 }, + message: "must NOT have more than 0 items", }; if (vErrors === null) { vErrors = [err6]; @@ -31551,123 +37763,22 @@ function validate300( } } else { const err7 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - } - if (data.function !== undefined) { - if (data.function !== null) { - const err8 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } - if (data.inputs !== undefined) { - let data4 = data.inputs; - if (Array.isArray(data4)) { - const len0 = data4.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data4[i0] !== "string") { - const err9 = { - instancePath: instancePath + "/inputs/" + i0, - schemaPath: "#/properties/inputs/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } - } else { - const err10 = { - instancePath: instancePath + "/inputs", - schemaPath: "#/properties/inputs/type", + instancePath: instancePath + "/values", + schemaPath: "#/properties/values/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - } - if (data.kind !== undefined) { - let data6 = data.kind; - if (typeof data6 !== "string") { - const err11 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - if ("expression" !== data6) { - const err12 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "expression" }, - message: "must be equal to constant", - }; - if (vErrors === null) { - vErrors = [err12]; + vErrors = [err7]; } else { - vErrors.push(err12); + vErrors.push(err7); } errors++; } } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } } else { - const err13 = { + const err8 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -31675,40 +37786,38 @@ function validate300( message: "must be object", }; if (vErrors === null) { - vErrors = [err13]; + vErrors = [err8]; } else { - vErrors.push(err13); + vErrors.push(err8); } errors++; } - validate300.errors = vErrors; + validate345.errors = vErrors; return errors === 0; } -validate300.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate345.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema214 = { +const schema249 = { additionalProperties: false, properties: { - arguments: { $ref: "#/$defs/EmptyObject" }, - constant: { $ref: "#/$defs/JsonValue" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { default: null, title: "Function", type: "null" }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "constant", title: "Kind", type: "string" }, + field: { default: null, title: "Field", type: "null" }, + kind: { const: "accepted_values", title: "Kind", type: "string" }, metadata: { $ref: "#/$defs/JsonObject" }, + to: { default: null, title: "To", type: "null" }, + values: { items: { $ref: "#/$defs/JsonValue" }, minItems: 1, title: "Values", type: "array" }, }, - required: ["kind", "constant"], - title: "ConstantTransformation", + required: ["kind", "values"], + title: "AcceptedValuesFieldTest", type: "object", }; -function validate303( +function validate348( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate303.evaluated; + const evaluated0 = validate348.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -31731,13 +37840,13 @@ function validate303( } errors++; } - if (data.constant === undefined) { + if (data.values === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "constant" }, - message: "must have required property '" + "constant" + "'", + params: { missingProperty: "values" }, + message: "must have required property '" + "values" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -31748,13 +37857,11 @@ function validate303( } for (const key0 in data) { if (!( - key0 === "arguments" || - key0 === "constant" || - key0 === "expression" || - key0 === "function" || - key0 === "inputs" || + key0 === "field" || key0 === "kind" || - key0 === "metadata" + key0 === "metadata" || + key0 === "to" || + key0 === "values" )) { const err2 = { instancePath, @@ -31771,31 +37878,32 @@ function validate303( errors++; } } - if (data.arguments !== undefined) { - let data0 = data.arguments; - if (data0 && typeof data0 == "object" && !Array.isArray(data0)) { - for (const key1 in data0) { - const err3 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; + if (data.field !== undefined) { + if (data.field !== null) { + const err3 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); } - } else { + errors++; + } + } + if (data.kind !== undefined) { + let data1 = data.kind; + if (typeof data1 !== "string") { const err4 = { - instancePath: instancePath + "/arguments", - schemaPath: "#/$defs/EmptyObject/type", + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { vErrors = [err4]; @@ -31804,15 +37912,13 @@ function validate303( } errors++; } - } - if (data.expression !== undefined) { - if (data.expression !== null) { + if ("accepted_values" !== data1) { const err5 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "accepted_values" }, + message: "must be equal to constant", }; if (vErrors === null) { vErrors = [err5]; @@ -31822,11 +37928,25 @@ function validate303( errors++; } } - if (data.function !== undefined) { - if (data.function !== null) { + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.to !== undefined) { + if (data.to !== null) { const err6 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/type", + instancePath: instancePath + "/to", + schemaPath: "#/properties/to/type", keyword: "type", params: { type: "null" }, message: "must be null", @@ -31839,92 +37959,42 @@ function validate303( errors++; } } - if (data.inputs !== undefined) { - let data4 = data.inputs; + if (data.values !== undefined) { + let data4 = data.values; if (Array.isArray(data4)) { - const len0 = data4.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data4[i0] !== "string") { - const err7 = { - instancePath: instancePath + "/inputs/" + i0, - schemaPath: "#/properties/inputs/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; + if (data4.length < 1) { + const err7 = { + instancePath: instancePath + "/values", + schemaPath: "#/properties/values/minItems", + keyword: "minItems", + params: { limit: 1 }, + message: "must NOT have fewer than 1 items", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); } + errors++; } } else { const err8 = { - instancePath: instancePath + "/inputs", - schemaPath: "#/properties/inputs/type", + instancePath: instancePath + "/values", + schemaPath: "#/properties/values/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } - if (data.kind !== undefined) { - let data6 = data.kind; - if (typeof data6 !== "string") { - const err9 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - if ("constant" !== data6) { - const err10 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "constant" }, - message: "must be equal to constant", - }; - if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; } } } else { - const err11 = { + const err9 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -31932,44 +38002,38 @@ function validate303( message: "must be object", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err9]; } else { - vErrors.push(err11); + vErrors.push(err9); } errors++; } - validate303.errors = vErrors; + validate348.errors = vErrors; return errors === 0; } -validate303.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate348.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema217 = { +const schema251 = { additionalProperties: false, properties: { - arguments: { $ref: "#/$defs/JsonObject" }, - constant: { default: null, title: "Constant", type: "null" }, - expression: { default: null, title: "Expression", type: "null" }, - function: { - pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$", - title: "Function", - type: "string", - }, - inputs: { items: { type: "string" }, title: "Inputs", type: "array" }, - kind: { const: "custom_code", title: "Kind", type: "string" }, + field: { minLength: 1, title: "Field", type: "string" }, + kind: { const: "relationships", title: "Kind", type: "string" }, metadata: { $ref: "#/$defs/JsonObject" }, + to: { minLength: 1, title: "To", type: "string" }, + values: { items: { $ref: "#/$defs/JsonValue" }, maxItems: 0, title: "Values", type: "array" }, }, - required: ["kind", "function"], - title: "CustomCodeTransformation", + required: ["kind", "to", "field"], + title: "RelationshipsFieldTest", type: "object", }; -function validate306( +function validate351( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate306.evaluated; + const evaluated0 = validate351.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -31992,13 +38056,13 @@ function validate306( } errors++; } - if (data.function === undefined) { + if (data.to === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "function" }, - message: "must have required property '" + "function" + "'", + params: { missingProperty: "to" }, + message: "must have required property '" + "to" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -32007,54 +38071,36 @@ function validate306( } errors++; } + if (data.field === undefined) { + const err2 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "field" }, + message: "must have required property '" + "field" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } for (const key0 in data) { if (!( - key0 === "arguments" || - key0 === "constant" || - key0 === "expression" || - key0 === "function" || - key0 === "inputs" || + key0 === "field" || key0 === "kind" || - key0 === "metadata" + key0 === "metadata" || + key0 === "to" || + key0 === "values" )) { - const err2 = { + const err3 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties", }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - } - if (data.arguments !== undefined) { - if ( - !validate291(data.arguments, { - instancePath: instancePath + "/arguments", - parentData: data, - parentDataProperty: "arguments", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.constant !== undefined) { - if (data.constant !== null) { - const err3 = { - instancePath: instancePath + "/constant", - schemaPath: "#/properties/constant/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; if (vErrors === null) { vErrors = [err3]; } else { @@ -32063,99 +38109,44 @@ function validate306( errors++; } } - if (data.expression !== undefined) { - if (data.expression !== null) { - const err4 = { - instancePath: instancePath + "/expression", - schemaPath: "#/properties/expression/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - } - if (data.function !== undefined) { - let data3 = data.function; - if (typeof data3 === "string") { - if (!pattern7.test(data3)) { - const err5 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/pattern", - keyword: "pattern", - params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" }, - message: - 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$" + '"', + if (data.field !== undefined) { + let data0 = data.field; + if (typeof data0 === "string") { + if (func3(data0) < 1) { + const err4 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err4]; } else { - vErrors.push(err5); + vErrors.push(err4); } errors++; } } else { - const err6 = { - instancePath: instancePath + "/function", - schemaPath: "#/properties/function/type", + const err5 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - } - if (data.inputs !== undefined) { - let data4 = data.inputs; - if (Array.isArray(data4)) { - const len0 = data4.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data4[i0] !== "string") { - const err7 = { - instancePath: instancePath + "/inputs/" + i0, - schemaPath: "#/properties/inputs/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - } - } else { - const err8 = { - instancePath: instancePath + "/inputs", - schemaPath: "#/properties/inputs/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", - }; - if (vErrors === null) { - vErrors = [err8]; + vErrors = [err5]; } else { - vErrors.push(err8); + vErrors.push(err5); } errors++; } } if (data.kind !== undefined) { - let data6 = data.kind; - if (typeof data6 !== "string") { - const err9 = { + let data1 = data.kind; + if (typeof data1 !== "string") { + const err6 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/type", keyword: "type", @@ -32163,31 +38154,31 @@ function validate306( message: "must be string", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err6]; } else { - vErrors.push(err9); + vErrors.push(err6); } errors++; } - if ("custom_code" !== data6) { - const err10 = { + if ("relationships" !== data1) { + const err7 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/const", keyword: "const", - params: { allowedValue: "custom_code" }, + params: { allowedValue: "relationships" }, message: "must be equal to constant", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err7]; } else { - vErrors.push(err10); + vErrors.push(err7); } errors++; } } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -32195,12 +38186,80 @@ function validate306( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } + if (data.to !== undefined) { + let data3 = data.to; + if (typeof data3 === "string") { + if (func3(data3) < 1) { + const err8 = { + instancePath: instancePath + "/to", + schemaPath: "#/properties/to/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } else { + const err9 = { + instancePath: instancePath + "/to", + schemaPath: "#/properties/to/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + if (data.values !== undefined) { + let data4 = data.values; + if (Array.isArray(data4)) { + if (data4.length > 0) { + const err10 = { + instancePath: instancePath + "/values", + schemaPath: "#/properties/values/maxItems", + keyword: "maxItems", + params: { limit: 0 }, + message: "must NOT have more than 0 items", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } else { + const err11 = { + instancePath: instancePath + "/values", + schemaPath: "#/properties/values/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + } } else { - const err11 = { + const err12 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -32208,24 +38267,24 @@ function validate306( message: "must be object", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err12]; } else { - vErrors.push(err11); + vErrors.push(err12); } errors++; } - validate306.errors = vErrors; + validate351.errors = vErrors; return errors === 0; } -validate306.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate351.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate296( +function validate341( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate296.evaluated; + const evaluated0 = validate341.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -32236,9 +38295,9 @@ function validate296( let valid0 = false; const _errs1 = errors; if ( - !validate297(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate342(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate297.errors : vErrors.concat(validate297.errors); + vErrors = vErrors === null ? validate342.errors : vErrors.concat(validate342.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -32248,9 +38307,9 @@ function validate296( } const _errs2 = errors; if ( - !validate300(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate345(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate300.errors : vErrors.concat(validate300.errors); + vErrors = vErrors === null ? validate345.errors : vErrors.concat(validate345.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -32262,9 +38321,9 @@ function validate296( } const _errs3 = errors; if ( - !validate303(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate348(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate303.errors : vErrors.concat(validate303.errors); + vErrors = vErrors === null ? validate348.errors : vErrors.concat(validate348.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -32276,9 +38335,9 @@ function validate296( } const _errs4 = errors; if ( - !validate306(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate351(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate306.errors : vErrors.concat(validate306.errors); + vErrors = vErrors === null ? validate351.errors : vErrors.concat(validate351.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -32293,267 +38352,38 @@ function validate296( instancePath, schemaPath: "#/anyOf", keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } else { - errors = _errs0; - if (vErrors !== null) { - if (_errs0) { - vErrors.length = _errs0; - } else { - vErrors = null; - } - } - } - validate296.errors = vErrors; - evaluated0.props = props0; - return errors === 0; -} -validate296.evaluated = { dynamicProps: true, dynamicItems: false }; - -function validate294( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate294.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.target === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "target" }, - message: "must have required property '" + "target" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - for (const key0 in data) { - if (!( - key0 === "metadata" || - key0 === "source" || - key0 === "target" || - key0 === "transformation" - )) { - const err1 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } - } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.source !== undefined) { - let data1 = data.source; - const _errs4 = errors; - let valid1 = false; - const _errs5 = errors; - if (typeof data1 !== "string") { - const err2 = { - instancePath: instancePath + "/source", - schemaPath: "#/properties/source/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - var _valid0 = _errs5 === errors; - valid1 = valid1 || _valid0; - const _errs7 = errors; - if (data1 !== null) { - const err3 = { - instancePath: instancePath + "/source", - schemaPath: "#/properties/source/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - var _valid0 = _errs7 === errors; - valid1 = valid1 || _valid0; - if (!valid1) { - const err4 = { - instancePath: instancePath + "/source", - schemaPath: "#/properties/source/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } else { - errors = _errs4; - if (vErrors !== null) { - if (_errs4) { - vErrors.length = _errs4; - } else { - vErrors = null; - } - } - } - } - if (data.target !== undefined) { - if (typeof data.target !== "string") { - const err5 = { - instancePath: instancePath + "/target", - schemaPath: "#/properties/target/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - } - if (data.transformation !== undefined) { - let data3 = data.transformation; - const _errs12 = errors; - let valid2 = false; - const _errs13 = errors; - if ( - !validate296(data3, { - instancePath: instancePath + "/transformation", - parentData: data, - parentDataProperty: "transformation", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate296.errors : vErrors.concat(validate296.errors); - errors = vErrors.length; - } - var _valid1 = _errs13 === errors; - valid2 = valid2 || _valid1; - const _errs14 = errors; - if (data3 !== null) { - const err6 = { - instancePath: instancePath + "/transformation", - schemaPath: "#/properties/transformation/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - var _valid1 = _errs14 === errors; - valid2 = valid2 || _valid1; - if (!valid2) { - const err7 = { - instancePath: instancePath + "/transformation", - schemaPath: "#/properties/transformation/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } else { - errors = _errs12; - if (vErrors !== null) { - if (_errs12) { - vErrors.length = _errs12; - } else { - vErrors = null; - } - } - } - } - } else { - const err8 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", + params: {}, + message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err0]; } else { - vErrors.push(err8); + vErrors.push(err0); } errors++; + } else { + errors = _errs0; + if (vErrors !== null) { + if (_errs0) { + vErrors.length = _errs0; + } else { + vErrors = null; + } + } } - validate294.errors = vErrors; + validate341.errors = vErrors; + evaluated0.props = props0; return errors === 0; } -validate294.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate341.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate289( +function validate339( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate289.evaluated; + const evaluated0 = validate339.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -32561,13 +38391,13 @@ function validate289( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.from === undefined) { + if (data.name === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "from" }, - message: "must have required property '" + "from" + "'", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -32576,13 +38406,13 @@ function validate289( } errors++; } - if (data.to === undefined) { + if (data.type === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "to" }, - message: "must have required property '" + "to" + "'", + params: { missingProperty: "type" }, + message: "must have required property '" + "type" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -32593,11 +38423,14 @@ function validate289( } for (const key0 in data) { if (!( - key0 === "from" || - key0 === "join" || - key0 === "mappings" || + key0 === "cast_to" || + key0 === "description" || + key0 === "extensions" || key0 === "metadata" || - key0 === "to" + key0 === "name" || + key0 === "nullable" || + key0 === "tests" || + key0 === "type" )) { const err2 = { instancePath, @@ -32614,11 +38447,15 @@ function validate289( errors++; } } - if (data.from !== undefined) { - if (typeof data.from !== "string") { + if (data.cast_to !== undefined) { + let data0 = data.cast_to; + const _errs3 = errors; + let valid1 = false; + const _errs4 = errors; + if (typeof data0 !== "string") { const err3 = { - instancePath: instancePath + "/from", - schemaPath: "#/properties/from/type", + instancePath: instancePath + "/cast_to", + schemaPath: "#/properties/cast_to/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", @@ -32630,31 +38467,13 @@ function validate289( } errors++; } - } - if (data.join !== undefined) { - let data1 = data.join; - const _errs5 = errors; - let valid1 = false; - const _errs6 = errors; - if ( - !validate290(data1, { - instancePath: instancePath + "/join", - parentData: data, - parentDataProperty: "join", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate290.errors : vErrors.concat(validate290.errors); - errors = vErrors.length; - } - var _valid0 = _errs6 === errors; + var _valid0 = _errs4 === errors; valid1 = valid1 || _valid0; - const _errs7 = errors; - if (data1 !== null) { + const _errs6 = errors; + if (data0 !== null) { const err4 = { - instancePath: instancePath + "/join", - schemaPath: "#/properties/join/anyOf/1/type", + instancePath: instancePath + "/cast_to", + schemaPath: "#/properties/cast_to/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", @@ -32666,12 +38485,12 @@ function validate289( } errors++; } - var _valid0 = _errs7 === errors; + var _valid0 = _errs6 === errors; valid1 = valid1 || _valid0; if (!valid1) { const err5 = { - instancePath: instancePath + "/join", - schemaPath: "#/properties/join/anyOf", + instancePath: instancePath + "/cast_to", + schemaPath: "#/properties/cast_to/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", @@ -32683,41 +38502,28 @@ function validate289( } errors++; } else { - errors = _errs5; + errors = _errs3; if (vErrors !== null) { - if (_errs5) { - vErrors.length = _errs5; + if (_errs3) { + vErrors.length = _errs3; } else { vErrors = null; } } } } - if (data.mappings !== undefined) { - let data2 = data.mappings; - if (Array.isArray(data2)) { - const len0 = data2.length; - for (let i0 = 0; i0 < len0; i0++) { - if ( - !validate294(data2[i0], { - instancePath: instancePath + "/mappings/" + i0, - parentData: data2, - parentDataProperty: i0, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate294.errors : vErrors.concat(validate294.errors); - errors = vErrors.length; - } - } - } else { + if (data.description !== undefined) { + let data1 = data.description; + const _errs9 = errors; + let valid2 = false; + const _errs10 = errors; + if (typeof data1 !== "string") { const err6 = { - instancePath: instancePath + "/mappings", - schemaPath: "#/properties/mappings/type", + instancePath: instancePath + "/description", + schemaPath: "#/properties/description/anyOf/0/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { vErrors = [err6]; @@ -32726,29 +38532,16 @@ function validate289( } errors++; } - } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.to !== undefined) { - if (typeof data.to !== "string") { + var _valid1 = _errs10 === errors; + valid2 = valid2 || _valid1; + const _errs12 = errors; + if (data1 !== null) { const err7 = { - instancePath: instancePath + "/to", - schemaPath: "#/properties/to/type", + instancePath: instancePath + "/description", + schemaPath: "#/properties/description/anyOf/1/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { vErrors = [err7]; @@ -32757,329 +38550,370 @@ function validate289( } errors++; } + var _valid1 = _errs12 === errors; + valid2 = valid2 || _valid1; + if (!valid2) { + const err8 = { + instancePath: instancePath + "/description", + schemaPath: "#/properties/description/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } else { + errors = _errs9; + if (vErrors !== null) { + if (_errs9) { + vErrors.length = _errs9; + } else { + vErrors = null; + } + } + } } - } else { - const err8 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - validate289.errors = vErrors; - return errors === 0; -} -validate289.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema218 = { - anyOf: [ - { $ref: "#/$defs/SourceNodeDocument" }, - { $ref: "#/$defs/TransformNodeDocument" }, - { $ref: "#/$defs/TargetNodeDocument" }, - { $ref: "#/$defs/ExtensionNodeDocument" }, - ], -}; -const schema219 = { - additionalProperties: false, - not: { required: ["config", "params"] }, - properties: { - config: { $ref: "#/$defs/SourceNodeConfigDocument" }, - cursor: { - anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], - default: null, - }, - fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, - id: { title: "Id", type: "string" }, - name: { title: "Name", type: "string" }, - params: { - anyOf: [{ $ref: "#/$defs/SourceNodeConfigDocument" }, { type: "null" }], - default: null, - deprecated: true, - "x-dander-canonical-name": "config", - }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - type: { const: "source", title: "Type", type: "string" }, - visual: { anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], default: null }, - }, - required: ["id", "type", "name"], - title: "SourceNodeDocument", - type: "object", -}; -const schema220 = { - additionalProperties: { $ref: "#/$defs/JsonValue" }, - properties: { - connector: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Connector" }, - endpoint: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Endpoint" }, - request: { anyOf: [{ $ref: "#/$defs/RequestSpecDocument" }, { type: "null" }], default: null }, - }, - title: "SourceNodeConfigDocument", - type: "object", -}; -const schema222 = { - additionalProperties: false, - properties: { - body: { - anyOf: [{ $ref: "#/$defs/JsonObject" }, { type: "string" }, { type: "null" }], - default: null, - title: "Body", - }, - headers: { additionalProperties: { type: "string" }, title: "Headers", type: "object" }, - method: { $ref: "#/$defs/HttpMethod", default: "GET" }, - query_params: { - additionalProperties: { type: "string" }, - title: "Query Params", - type: "object", - }, - }, - title: "RequestSpecDocument", - type: "object", -}; -const schema223 = { - description: - "The closed set of HTTP methods a `RequestSpec` may declare.\n\nA `StrEnum` (matching the `TransformationKind`/`JoinType` convention in `graph.py`) so callers\nget a named, importable type that still serializes to/from its plain string value stably in\nYAML and JSON. An out-of-set value fails validation with a clear error at the Pydantic\nboundary. `HEAD`/`OPTIONS` are intentionally omitted (no source currently needs them); extend\nby adding a member later without touching callers.\n\nAttributes:\n GET: Retrieve a resource. The default method (a simple GET needs no explicit spec).\n POST: Create a resource / submit a query body.\n PUT: Replace a resource.\n PATCH: Partially update a resource.\n DELETE: Remove a resource.", - enum: ["GET", "POST", "PUT", "PATCH", "DELETE"], - title: "HttpMethod", - type: "string", -}; - -function validate317( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate317.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - for (const key0 in data) { - if (!( - key0 === "body" || - key0 === "headers" || - key0 === "method" || - key0 === "query_params" - )) { - const err0 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + if (data.extensions !== undefined) { + let data2 = data.extensions; + if (Array.isArray(data2)) { + const len0 = data2.length; + for (let i0 = 0; i0 < len0; i0++) { + let data3 = data2[i0]; + if (data3 && typeof data3 == "object" && !Array.isArray(data3)) { + if (data3.provider === undefined) { + const err9 = { + instancePath: instancePath + "/extensions/" + i0, + schemaPath: "#/$defs/ProviderExtension/required", + keyword: "required", + params: { missingProperty: "provider" }, + message: "must have required property '" + "provider" + "'", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + if (data3.name === undefined) { + const err10 = { + instancePath: instancePath + "/extensions/" + i0, + schemaPath: "#/$defs/ProviderExtension/required", + keyword: "required", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + if (data3.value === undefined) { + const err11 = { + instancePath: instancePath + "/extensions/" + i0, + schemaPath: "#/$defs/ProviderExtension/required", + keyword: "required", + params: { missingProperty: "value" }, + message: "must have required property '" + "value" + "'", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + for (const key1 in data3) { + if (!(key1 === "name" || key1 === "provider" || key1 === "value")) { + const err12 = { + instancePath: instancePath + "/extensions/" + i0, + schemaPath: "#/$defs/ProviderExtension/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + } + if (data3.name !== undefined) { + if (typeof data3.name !== "string") { + const err13 = { + instancePath: instancePath + "/extensions/" + i0 + "/name", + schemaPath: "#/$defs/ProviderExtension/properties/name/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + } + if (data3.provider !== undefined) { + if (typeof data3.provider !== "string") { + const err14 = { + instancePath: instancePath + "/extensions/" + i0 + "/provider", + schemaPath: "#/$defs/ProviderExtension/properties/provider/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } + } + if (data3.value !== undefined) { + let data6 = data3.value; + const _errs25 = errors; + let valid7 = false; + const _errs26 = errors; + if (typeof data6 !== "string") { + const err15 = { + instancePath: instancePath + "/extensions/" + i0 + "/value", + schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } + var _valid2 = _errs26 === errors; + valid7 = valid7 || _valid2; + const _errs28 = errors; + if (!(typeof data6 == "number" && !(data6 % 1) && !isNaN(data6) && isFinite(data6))) { + const err16 = { + instancePath: instancePath + "/extensions/" + i0 + "/value", + schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf/1/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + var _valid2 = _errs28 === errors; + valid7 = valid7 || _valid2; + const _errs30 = errors; + if (!(typeof data6 == "number" && isFinite(data6))) { + const err17 = { + instancePath: instancePath + "/extensions/" + i0 + "/value", + schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf/2/type", + keyword: "type", + params: { type: "number" }, + message: "must be number", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + var _valid2 = _errs30 === errors; + valid7 = valid7 || _valid2; + const _errs32 = errors; + if (typeof data6 !== "boolean") { + const err18 = { + instancePath: instancePath + "/extensions/" + i0 + "/value", + schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf/3/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } + var _valid2 = _errs32 === errors; + valid7 = valid7 || _valid2; + if (!valid7) { + const err19 = { + instancePath: instancePath + "/extensions/" + i0 + "/value", + schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } else { + errors = _errs25; + if (vErrors !== null) { + if (_errs25) { + vErrors.length = _errs25; + } else { + vErrors = null; + } + } + } + } + } else { + const err20 = { + instancePath: instancePath + "/extensions/" + i0, + schemaPath: "#/$defs/ProviderExtension/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); + } + errors++; + } + } + } else { + const err21 = { + instancePath: instancePath + "/extensions", + schemaPath: "#/properties/extensions/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err21]; } else { - vErrors.push(err0); + vErrors.push(err21); } errors++; } } - if (data.body !== undefined) { - let data0 = data.body; - const _errs3 = errors; - let valid1 = false; - const _errs4 = errors; + if (data.metadata !== undefined) { if ( - !validate291(data0, { - instancePath: instancePath + "/body", + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", parentData: data, - parentDataProperty: "body", + parentDataProperty: "metadata", rootData, dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } - var _valid0 = _errs4 === errors; - valid1 = valid1 || _valid0; - const _errs5 = errors; - if (typeof data0 !== "string") { - const err1 = { - instancePath: instancePath + "/body", - schemaPath: "#/properties/body/anyOf/1/type", + } + if (data.name !== undefined) { + if (typeof data.name !== "string") { + const err22 = { + instancePath: instancePath + "/name", + schemaPath: "#/properties/name/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err22]; } else { - vErrors.push(err1); + vErrors.push(err22); } errors++; } - var _valid0 = _errs5 === errors; - valid1 = valid1 || _valid0; - const _errs7 = errors; - if (data0 !== null) { - const err2 = { - instancePath: instancePath + "/body", - schemaPath: "#/properties/body/anyOf/2/type", + } + if (data.nullable !== undefined) { + if (typeof data.nullable !== "boolean") { + const err23 = { + instancePath: instancePath + "/nullable", + schemaPath: "#/properties/nullable/type", keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - var _valid0 = _errs7 === errors; - valid1 = valid1 || _valid0; - if (!valid1) { - const err3 = { - instancePath: instancePath + "/body", - schemaPath: "#/properties/body/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + params: { type: "boolean" }, + message: "must be boolean", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err23]; } else { - vErrors.push(err3); + vErrors.push(err23); } errors++; - } else { - errors = _errs3; - if (vErrors !== null) { - if (_errs3) { - vErrors.length = _errs3; - } else { - vErrors = null; - } - } } } - if (data.headers !== undefined) { - let data1 = data.headers; - if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { - for (const key1 in data1) { - if (typeof data1[key1] !== "string") { - const err4 = { - instancePath: - instancePath + "/headers/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"), - schemaPath: "#/properties/headers/additionalProperties/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; + if (data.tests !== undefined) { + let data10 = data.tests; + if (Array.isArray(data10)) { + const len1 = data10.length; + for (let i1 = 0; i1 < len1; i1++) { + if ( + !validate341(data10[i1], { + instancePath: instancePath + "/tests/" + i1, + parentData: data10, + parentDataProperty: i1, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate341.errors : vErrors.concat(validate341.errors); + errors = vErrors.length; } } } else { - const err5 = { - instancePath: instancePath + "/headers", - schemaPath: "#/properties/headers/type", + const err24 = { + instancePath: instancePath + "/tests", + schemaPath: "#/properties/tests/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err24]; } else { - vErrors.push(err5); + vErrors.push(err24); } errors++; } } - if (data.method !== undefined) { - let data3 = data.method; - if (typeof data3 !== "string") { - const err6 = { - instancePath: instancePath + "/method", - schemaPath: "#/$defs/HttpMethod/type", + if (data.type !== undefined) { + if (typeof data.type !== "string") { + const err25 = { + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - if (!( - data3 === "GET" || - data3 === "POST" || - data3 === "PUT" || - data3 === "PATCH" || - data3 === "DELETE" - )) { - const err7 = { - instancePath: instancePath + "/method", - schemaPath: "#/$defs/HttpMethod/enum", - keyword: "enum", - params: { allowedValues: schema223.enum }, - message: "must be equal to one of the allowed values", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - } - if (data.query_params !== undefined) { - let data4 = data.query_params; - if (data4 && typeof data4 == "object" && !Array.isArray(data4)) { - for (const key2 in data4) { - if (typeof data4[key2] !== "string") { - const err8 = { - instancePath: - instancePath + "/query_params/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"), - schemaPath: "#/properties/query_params/additionalProperties/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } - } else { - const err9 = { - instancePath: instancePath + "/query_params", - schemaPath: "#/properties/query_params/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err9]; + vErrors = [err25]; } else { - vErrors.push(err9); + vErrors.push(err25); } errors++; } } } else { - const err10 = { + const err26 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -33087,24 +38921,45 @@ function validate317( message: "must be object", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err26]; } else { - vErrors.push(err10); + vErrors.push(err26); } errors++; } - validate317.errors = vErrors; + validate339.errors = vErrors; return errors === 0; } -validate317.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate339.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema253 = { + anyOf: [ + { $ref: "#/$defs/ScheduleTrigger" }, + { $ref: "#/$defs/DependencyTrigger" }, + { $ref: "#/$defs/ManualTrigger" }, + ], +}; +const schema254 = { + additionalProperties: false, + properties: { + cron: { minLength: 1, title: "Cron", type: "string" }, + depends_on: { items: { type: "string" }, maxItems: 0, title: "Depends On", type: "array" }, + event: { default: null, title: "Event", type: "null" }, + kind: { const: "schedule", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + }, + required: ["kind", "cron"], + title: "ScheduleTrigger", + type: "object", +}; -function validate316( +function validate358( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate316.evaluated; + const evaluated0 = validate358.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -33112,53 +38967,50 @@ function validate316( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.connector !== undefined) { - let data1 = data.connector; - const _errs4 = errors; - let valid3 = false; - const _errs5 = errors; - if (typeof data1 !== "string") { - const err0 = { - instancePath: instancePath + "/connector", - schemaPath: "#/properties/connector/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); } - var _valid0 = _errs5 === errors; - valid3 = valid3 || _valid0; - const _errs7 = errors; - if (data1 !== null) { - const err1 = { - instancePath: instancePath + "/connector", - schemaPath: "#/properties/connector/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; + errors++; + } + if (data.cron === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "cron" }, + message: "must have required property '" + "cron" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); } - var _valid0 = _errs7 === errors; - valid3 = valid3 || _valid0; - if (!valid3) { + errors++; + } + for (const key0 in data) { + if (!( + key0 === "cron" || + key0 === "depends_on" || + key0 === "event" || + key0 === "kind" || + key0 === "metadata" + )) { const err2 = { - instancePath: instancePath + "/connector", - schemaPath: "#/properties/connector/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", }; if (vErrors === null) { vErrors = [err2]; @@ -33166,48 +39018,34 @@ function validate316( vErrors.push(err2); } errors++; - } else { - errors = _errs4; - if (vErrors !== null) { - if (_errs4) { - vErrors.length = _errs4; + } + } + if (data.cron !== undefined) { + let data0 = data.cron; + if (typeof data0 === "string") { + if (func3(data0) < 1) { + const err3 = { + instancePath: instancePath + "/cron", + schemaPath: "#/properties/cron/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err3]; } else { - vErrors = null; + vErrors.push(err3); } + errors++; } - } - } - if (data.endpoint !== undefined) { - let data2 = data.endpoint; - const _errs10 = errors; - let valid4 = false; - const _errs11 = errors; - if (typeof data2 !== "string") { - const err3 = { - instancePath: instancePath + "/endpoint", - schemaPath: "#/properties/endpoint/anyOf/0/type", + } else { + const err4 = { + instancePath: instancePath + "/cron", + schemaPath: "#/properties/cron/type", keyword: "type", params: { type: "string" }, message: "must be string", }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - var _valid1 = _errs11 === errors; - valid4 = valid4 || _valid1; - const _errs13 = errors; - if (data2 !== null) { - const err4 = { - instancePath: instancePath + "/endpoint", - schemaPath: "#/properties/endpoint/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; if (vErrors === null) { vErrors = [err4]; } else { @@ -33215,97 +39053,125 @@ function validate316( } errors++; } - var _valid1 = _errs13 === errors; - valid4 = valid4 || _valid1; - if (!valid4) { - const err5 = { - instancePath: instancePath + "/endpoint", - schemaPath: "#/properties/endpoint/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + } + if (data.depends_on !== undefined) { + let data1 = data.depends_on; + if (Array.isArray(data1)) { + if (data1.length > 0) { + const err5 = { + instancePath: instancePath + "/depends_on", + schemaPath: "#/properties/depends_on/maxItems", + keyword: "maxItems", + params: { limit: 0 }, + message: "must NOT have more than 0 items", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + const len0 = data1.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data1[i0] !== "string") { + const err6 = { + instancePath: instancePath + "/depends_on/" + i0, + schemaPath: "#/properties/depends_on/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + } else { + const err7 = { + instancePath: instancePath + "/depends_on", + schemaPath: "#/properties/depends_on/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err7]; } else { - vErrors.push(err5); + vErrors.push(err7); } errors++; - } else { - errors = _errs10; - if (vErrors !== null) { - if (_errs10) { - vErrors.length = _errs10; - } else { - vErrors = null; - } - } } } - if (data.request !== undefined) { - let data3 = data.request; - const _errs16 = errors; - let valid5 = false; - const _errs17 = errors; - if ( - !validate317(data3, { - instancePath: instancePath + "/request", - parentData: data, - parentDataProperty: "request", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate317.errors : vErrors.concat(validate317.errors); - errors = vErrors.length; - } - var _valid2 = _errs17 === errors; - valid5 = valid5 || _valid2; - const _errs18 = errors; - if (data3 !== null) { - const err6 = { - instancePath: instancePath + "/request", - schemaPath: "#/properties/request/anyOf/1/type", + if (data.event !== undefined) { + if (data.event !== null) { + const err8 = { + instancePath: instancePath + "/event", + schemaPath: "#/properties/event/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err8]; } else { - vErrors.push(err6); + vErrors.push(err8); } errors++; } - var _valid2 = _errs18 === errors; - valid5 = valid5 || _valid2; - if (!valid5) { - const err7 = { - instancePath: instancePath + "/request", - schemaPath: "#/properties/request/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + } + if (data.kind !== undefined) { + let data4 = data.kind; + if (typeof data4 !== "string") { + const err9 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err9]; } else { - vErrors.push(err7); + vErrors.push(err9); } errors++; - } else { - errors = _errs16; - if (vErrors !== null) { - if (_errs16) { - vErrors.length = _errs16; - } else { - vErrors = null; - } + } + if ("schedule" !== data4) { + const err10 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "schedule" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; } } } else { - const err8 = { + const err11 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -33313,37 +39179,38 @@ function validate316( message: "must be object", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err11]; } else { - vErrors.push(err8); + vErrors.push(err11); } errors++; } - validate316.errors = vErrors; + validate358.errors = vErrors; return errors === 0; } -validate316.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate358.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema224 = { +const schema255 = { additionalProperties: false, properties: { - field: { minLength: 1, title: "Field", type: "string" }, - kind: { enum: ["timestamp", "sequence", "opaque_token"], title: "Kind", type: "string" }, + cron: { default: null, title: "Cron", type: "null" }, + depends_on: { items: { type: "string" }, minItems: 1, title: "Depends On", type: "array" }, + event: { default: null, title: "Event", type: "null" }, + kind: { const: "dependency", title: "Kind", type: "string" }, metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/JsonObject" }, }, - required: ["field", "kind"], - title: "CursorStrategyDocument", + required: ["kind", "depends_on"], + title: "DependencyTrigger", type: "object", }; -function validate321( +function validate361( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate321.evaluated; + const evaluated0 = validate361.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -33351,13 +39218,13 @@ function validate321( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.field === undefined) { + if (data.kind === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "field" }, - message: "must have required property '" + "field" + "'", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -33366,13 +39233,13 @@ function validate321( } errors++; } - if (data.kind === undefined) { + if (data.depends_on === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", + params: { missingProperty: "depends_on" }, + message: "must have required property '" + "depends_on" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -33382,7 +39249,13 @@ function validate321( errors++; } for (const key0 in data) { - if (!(key0 === "field" || key0 === "kind" || key0 === "metadata" || key0 === "params")) { + if (!( + key0 === "cron" || + key0 === "depends_on" || + key0 === "event" || + key0 === "kind" || + key0 === "metadata" + )) { const err2 = { instancePath, schemaPath: "#/additionalProperties", @@ -33398,44 +39271,96 @@ function validate321( errors++; } } - if (data.field !== undefined) { - let data0 = data.field; - if (typeof data0 === "string") { - if (func2(data0) < 1) { - const err3 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/minLength", - keyword: "minLength", + if (data.cron !== undefined) { + if (data.cron !== null) { + const err3 = { + instancePath: instancePath + "/cron", + schemaPath: "#/properties/cron/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.depends_on !== undefined) { + let data1 = data.depends_on; + if (Array.isArray(data1)) { + if (data1.length < 1) { + const err4 = { + instancePath: instancePath + "/depends_on", + schemaPath: "#/properties/depends_on/minItems", + keyword: "minItems", params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", + message: "must NOT have fewer than 1 items", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err4]; } else { - vErrors.push(err3); + vErrors.push(err4); } errors++; } + const len0 = data1.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data1[i0] !== "string") { + const err5 = { + instancePath: instancePath + "/depends_on/" + i0, + schemaPath: "#/properties/depends_on/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } } else { - const err4 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/type", + const err6 = { + instancePath: instancePath + "/depends_on", + schemaPath: "#/properties/depends_on/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err6]; } else { - vErrors.push(err4); + vErrors.push(err6); + } + errors++; + } + } + if (data.event !== undefined) { + if (data.event !== null) { + const err7 = { + instancePath: instancePath + "/event", + schemaPath: "#/properties/event/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); } errors++; } } if (data.kind !== undefined) { - let data1 = data.kind; - if (typeof data1 !== "string") { - const err5 = { + let data4 = data.kind; + if (typeof data4 !== "string") { + const err8 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/type", keyword: "type", @@ -33443,31 +39368,31 @@ function validate321( message: "must be string", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err8]; } else { - vErrors.push(err5); + vErrors.push(err8); } errors++; } - if (!(data1 === "timestamp" || data1 === "sequence" || data1 === "opaque_token")) { - const err6 = { + if ("dependency" !== data4) { + const err9 = { instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/enum", - keyword: "enum", - params: { allowedValues: schema224.properties.kind.enum }, - message: "must be equal to one of the allowed values", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "dependency" }, + message: "must be equal to constant", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err9]; } else { - vErrors.push(err6); + vErrors.push(err9); } errors++; } } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -33475,26 +39400,12 @@ function validate321( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.params !== undefined) { - if ( - !validate291(data.params, { - instancePath: instancePath + "/params", - parentData: data, - parentDataProperty: "params", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } } else { - const err7 = { + const err10 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -33502,85 +39413,38 @@ function validate321( message: "must be object", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err10]; } else { - vErrors.push(err7); + vErrors.push(err10); } errors++; } - validate321.errors = vErrors; + validate361.errors = vErrors; return errors === 0; } -validate321.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate361.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema225 = { - additionalProperties: false, - properties: { - cast_to: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Cast To" }, - description: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Description", - }, - extensions: { - items: { $ref: "#/$defs/ProviderExtension" }, - title: "Extensions", - type: "array", - }, - metadata: { $ref: "#/$defs/JsonObject" }, - name: { title: "Name", type: "string" }, - nullable: { default: true, title: "Nullable", type: "boolean" }, - tests: { items: { $ref: "#/$defs/FieldTestDocument" }, title: "Tests", type: "array" }, - type: { title: "Type", type: "string" }, - }, - required: ["name", "type"], - title: "NodeFieldDocument", - type: "object", -}; -const schema226 = { - additionalProperties: false, - description: "One deterministic provider-specific schema annotation, never a credential.", - properties: { - name: { title: "Name", type: "string" }, - provider: { title: "Provider", type: "string" }, - value: { - anyOf: [{ type: "string" }, { type: "integer" }, { type: "number" }, { type: "boolean" }], - title: "Value", - }, - }, - required: ["provider", "name", "value"], - title: "ProviderExtension", - type: "object", -}; -const schema227 = { - anyOf: [ - { $ref: "#/$defs/NotNullFieldTest" }, - { $ref: "#/$defs/UniqueFieldTest" }, - { $ref: "#/$defs/AcceptedValuesFieldTest" }, - { $ref: "#/$defs/RelationshipsFieldTest" }, - ], -}; -const schema228 = { +const schema256 = { additionalProperties: false, properties: { - field: { default: null, title: "Field", type: "null" }, - kind: { const: "not_null", title: "Kind", type: "string" }, + cron: { default: null, title: "Cron", type: "null" }, + depends_on: { items: { type: "string" }, maxItems: 0, title: "Depends On", type: "array" }, + event: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Event" }, + kind: { const: "manual", title: "Kind", type: "string" }, metadata: { $ref: "#/$defs/JsonObject" }, - to: { default: null, title: "To", type: "null" }, - values: { items: { $ref: "#/$defs/JsonValue" }, maxItems: 0, title: "Values", type: "array" }, }, required: ["kind"], - title: "NotNullFieldTest", + title: "ManualTrigger", type: "object", }; -function validate328( +function validate364( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate328.evaluated; + const evaluated0 = validate364.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -33605,11 +39469,11 @@ function validate328( } for (const key0 in data) { if (!( - key0 === "field" || + key0 === "cron" || + key0 === "depends_on" || + key0 === "event" || key0 === "kind" || - key0 === "metadata" || - key0 === "to" || - key0 === "values" + key0 === "metadata" )) { const err1 = { instancePath, @@ -33626,11 +39490,11 @@ function validate328( errors++; } } - if (data.field !== undefined) { - if (data.field !== null) { + if (data.cron !== undefined) { + if (data.cron !== null) { const err2 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/type", + instancePath: instancePath + "/cron", + schemaPath: "#/properties/cron/type", keyword: "type", params: { type: "null" }, message: "must be null", @@ -33643,211 +39507,127 @@ function validate328( errors++; } } - if (data.kind !== undefined) { - let data1 = data.kind; - if (typeof data1 !== "string") { - const err3 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - if ("not_null" !== data1) { - const err4 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "not_null" }, - message: "must be equal to constant", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.to !== undefined) { - if (data.to !== null) { - const err5 = { - instancePath: instancePath + "/to", - schemaPath: "#/properties/to/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - } - if (data.values !== undefined) { - let data4 = data.values; - if (Array.isArray(data4)) { - if (data4.length > 0) { - const err6 = { - instancePath: instancePath + "/values", - schemaPath: "#/properties/values/maxItems", + if (data.depends_on !== undefined) { + let data1 = data.depends_on; + if (Array.isArray(data1)) { + if (data1.length > 0) { + const err3 = { + instancePath: instancePath + "/depends_on", + schemaPath: "#/properties/depends_on/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err3]; } else { - vErrors.push(err6); + vErrors.push(err3); } errors++; } + const len0 = data1.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data1[i0] !== "string") { + const err4 = { + instancePath: instancePath + "/depends_on/" + i0, + schemaPath: "#/properties/depends_on/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } } else { - const err7 = { - instancePath: instancePath + "/values", - schemaPath: "#/properties/values/type", + const err5 = { + instancePath: instancePath + "/depends_on", + schemaPath: "#/properties/depends_on/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err5]; } else { - vErrors.push(err7); + vErrors.push(err5); } errors++; } } - } else { - const err8 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - validate328.errors = vErrors; - return errors === 0; -} -validate328.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema230 = { - additionalProperties: false, - properties: { - field: { default: null, title: "Field", type: "null" }, - kind: { const: "unique", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { default: null, title: "To", type: "null" }, - values: { items: { $ref: "#/$defs/JsonValue" }, maxItems: 0, title: "Values", type: "array" }, - }, - required: ["kind"], - title: "UniqueFieldTest", - type: "object", -}; - -function validate331( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate331.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - for (const key0 in data) { - if (!( - key0 === "field" || - key0 === "kind" || - key0 === "metadata" || - key0 === "to" || - key0 === "values" - )) { - const err1 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + if (data.event !== undefined) { + let data3 = data.event; + const _errs9 = errors; + let valid3 = false; + const _errs10 = errors; + if (typeof data3 !== "string") { + const err6 = { + instancePath: instancePath + "/event", + schemaPath: "#/properties/event/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err6]; } else { - vErrors.push(err1); + vErrors.push(err6); } errors++; } - } - if (data.field !== undefined) { - if (data.field !== null) { - const err2 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/type", + var _valid0 = _errs10 === errors; + valid3 = valid3 || _valid0; + const _errs12 = errors; + if (data3 !== null) { + const err7 = { + instancePath: instancePath + "/event", + schemaPath: "#/properties/event/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err7]; } else { - vErrors.push(err2); + vErrors.push(err7); } errors++; } - } - if (data.kind !== undefined) { - let data1 = data.kind; - if (typeof data1 !== "string") { - const err3 = { + var _valid0 = _errs12 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err8 = { + instancePath: instancePath + "/event", + schemaPath: "#/properties/event/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } else { + errors = _errs9; + if (vErrors !== null) { + if (_errs9) { + vErrors.length = _errs9; + } else { + vErrors = null; + } + } + } + } + if (data.kind !== undefined) { + let data4 = data.kind; + if (typeof data4 !== "string") { + const err9 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/type", keyword: "type", @@ -33855,31 +39635,31 @@ function validate331( message: "must be string", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err9]; } else { - vErrors.push(err3); + vErrors.push(err9); } errors++; } - if ("unique" !== data1) { - const err4 = { + if ("manual" !== data4) { + const err10 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/const", keyword: "const", - params: { allowedValue: "unique" }, + params: { allowedValue: "manual" }, message: "must be equal to constant", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err10]; } else { - vErrors.push(err4); + vErrors.push(err10); } errors++; } } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -33887,63 +39667,12 @@ function validate331( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } - if (data.to !== undefined) { - if (data.to !== null) { - const err5 = { - instancePath: instancePath + "/to", - schemaPath: "#/properties/to/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - } - if (data.values !== undefined) { - let data4 = data.values; - if (Array.isArray(data4)) { - if (data4.length > 0) { - const err6 = { - instancePath: instancePath + "/values", - schemaPath: "#/properties/values/maxItems", - keyword: "maxItems", - params: { limit: 0 }, - message: "must NOT have more than 0 items", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - } else { - const err7 = { - instancePath: instancePath + "/values", - schemaPath: "#/properties/values/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - } } else { - const err8 = { + const err11 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -33951,38 +39680,127 @@ function validate331( message: "must be object", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err11]; } else { - vErrors.push(err8); + vErrors.push(err11); } errors++; } - validate331.errors = vErrors; + validate364.errors = vErrors; return errors === 0; } -validate331.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate364.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate357( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate357.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + const _errs0 = errors; + let valid0 = false; + const _errs1 = errors; + if ( + !validate358(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate358.errors : vErrors.concat(validate358.errors); + errors = vErrors.length; + } + var _valid0 = _errs1 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + var props0 = true; + } + const _errs2 = errors; + if ( + !validate361(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate361.errors : vErrors.concat(validate361.errors); + errors = vErrors.length; + } + var _valid0 = _errs2 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } + const _errs3 = errors; + if ( + !validate364(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate364.errors : vErrors.concat(validate364.errors); + errors = vErrors.length; + } + var _valid0 = _errs3 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } + if (!valid0) { + const err0 = { + instancePath, + schemaPath: "#/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } else { + errors = _errs0; + if (vErrors !== null) { + if (_errs0) { + vErrors.length = _errs0; + } else { + vErrors = null; + } + } + } + validate357.errors = vErrors; + evaluated0.props = props0; + return errors === 0; +} +validate357.evaluated = { dynamicProps: true, dynamicItems: false }; -const schema232 = { +const schema257 = { additionalProperties: false, properties: { - field: { default: null, title: "Field", type: "null" }, - kind: { const: "accepted_values", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { default: null, title: "To", type: "null" }, - values: { items: { $ref: "#/$defs/JsonValue" }, minItems: 1, title: "Values", type: "array" }, + color: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Color" }, + icon: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Icon" }, + position: { anyOf: [{ $ref: "#/$defs/PositionDocument" }, { type: "null" }], default: null }, }, - required: ["kind", "values"], - title: "AcceptedValuesFieldTest", + title: "NodeVisualDocument", + type: "object", +}; +const schema258 = { + additionalProperties: false, + properties: { x: { title: "X", type: "number" }, y: { title: "Y", type: "number" } }, + required: ["x", "y"], + title: "PositionDocument", type: "object", }; -function validate334( +function validate368( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate334.evaluated; + const evaluated0 = validate368.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -33990,45 +39808,9 @@ function validate334( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - if (data.values === undefined) { - const err1 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "values" }, - message: "must have required property '" + "values" + "'", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } for (const key0 in data) { - if (!( - key0 === "field" || - key0 === "kind" || - key0 === "metadata" || - key0 === "to" || - key0 === "values" - )) { - const err2 = { + if (!(key0 === "color" || key0 === "icon" || key0 === "position")) { + const err0 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -34036,36 +39818,87 @@ function validate334( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err0]; } else { - vErrors.push(err2); + vErrors.push(err0); } errors++; } } - if (data.field !== undefined) { - if (data.field !== null) { - const err3 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/type", + if (data.color !== undefined) { + let data0 = data.color; + const _errs3 = errors; + let valid1 = false; + const _errs4 = errors; + if (typeof data0 !== "string") { + const err1 = { + instancePath: instancePath + "/color", + schemaPath: "#/properties/color/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + var _valid0 = _errs4 === errors; + valid1 = valid1 || _valid0; + const _errs6 = errors; + if (data0 !== null) { + const err2 = { + instancePath: instancePath + "/color", + schemaPath: "#/properties/color/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + var _valid0 = _errs6 === errors; + valid1 = valid1 || _valid0; + if (!valid1) { + const err3 = { + instancePath: instancePath + "/color", + schemaPath: "#/properties/color/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; if (vErrors === null) { vErrors = [err3]; } else { vErrors.push(err3); } errors++; + } else { + errors = _errs3; + if (vErrors !== null) { + if (_errs3) { + vErrors.length = _errs3; + } else { + vErrors = null; + } + } } } - if (data.kind !== undefined) { - let data1 = data.kind; + if (data.icon !== undefined) { + let data1 = data.icon; + const _errs9 = errors; + let valid2 = false; + const _errs10 = errors; if (typeof data1 !== "string") { const err4 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + instancePath: instancePath + "/icon", + schemaPath: "#/properties/icon/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", @@ -34077,13 +39910,16 @@ function validate334( } errors++; } - if ("accepted_values" !== data1) { + var _valid1 = _errs10 === errors; + valid2 = valid2 || _valid1; + const _errs12 = errors; + if (data1 !== null) { const err5 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "accepted_values" }, - message: "must be equal to constant", + instancePath: instancePath + "/icon", + schemaPath: "#/properties/icon/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { vErrors = [err5]; @@ -34092,29 +39928,15 @@ function validate334( } errors++; } - } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.to !== undefined) { - if (data.to !== null) { + var _valid1 = _errs12 === errors; + valid2 = valid2 || _valid1; + if (!valid2) { const err6 = { - instancePath: instancePath + "/to", - schemaPath: "#/properties/to/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + instancePath: instancePath + "/icon", + schemaPath: "#/properties/icon/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", }; if (vErrors === null) { vErrors = [err6]; @@ -34122,18 +39944,30 @@ function validate334( vErrors.push(err6); } errors++; + } else { + errors = _errs9; + if (vErrors !== null) { + if (_errs9) { + vErrors.length = _errs9; + } else { + vErrors = null; + } + } } } - if (data.values !== undefined) { - let data4 = data.values; - if (Array.isArray(data4)) { - if (data4.length < 1) { + if (data.position !== undefined) { + let data2 = data.position; + const _errs15 = errors; + let valid3 = false; + const _errs16 = errors; + if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { + if (data2.x === undefined) { const err7 = { - instancePath: instancePath + "/values", - schemaPath: "#/properties/values/minItems", - keyword: "minItems", - params: { limit: 1 }, - message: "must NOT have fewer than 1 items", + instancePath: instancePath + "/position", + schemaPath: "#/$defs/PositionDocument/required", + keyword: "required", + params: { missingProperty: "x" }, + message: "must have required property '" + "x" + "'", }; if (vErrors === null) { vErrors = [err7]; @@ -34142,24 +39976,136 @@ function validate334( } errors++; } + if (data2.y === undefined) { + const err8 = { + instancePath: instancePath + "/position", + schemaPath: "#/$defs/PositionDocument/required", + keyword: "required", + params: { missingProperty: "y" }, + message: "must have required property '" + "y" + "'", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + for (const key1 in data2) { + if (!(key1 === "x" || key1 === "y")) { + const err9 = { + instancePath: instancePath + "/position", + schemaPath: "#/$defs/PositionDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + if (data2.x !== undefined) { + let data3 = data2.x; + if (!(typeof data3 == "number" && isFinite(data3))) { + const err10 = { + instancePath: instancePath + "/position/x", + schemaPath: "#/$defs/PositionDocument/properties/x/type", + keyword: "type", + params: { type: "number" }, + message: "must be number", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + } + if (data2.y !== undefined) { + let data4 = data2.y; + if (!(typeof data4 == "number" && isFinite(data4))) { + const err11 = { + instancePath: instancePath + "/position/y", + schemaPath: "#/$defs/PositionDocument/properties/y/type", + keyword: "type", + params: { type: "number" }, + message: "must be number", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + } } else { - const err8 = { - instancePath: instancePath + "/values", - schemaPath: "#/properties/values/type", + const err12 = { + instancePath: instancePath + "/position", + schemaPath: "#/$defs/PositionDocument/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err12]; } else { - vErrors.push(err8); + vErrors.push(err12); + } + errors++; + } + var _valid2 = _errs16 === errors; + valid3 = valid3 || _valid2; + const _errs24 = errors; + if (data2 !== null) { + const err13 = { + instancePath: instancePath + "/position", + schemaPath: "#/properties/position/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + var _valid2 = _errs24 === errors; + valid3 = valid3 || _valid2; + if (!valid3) { + const err14 = { + instancePath: instancePath + "/position", + schemaPath: "#/properties/position/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); } errors++; + } else { + errors = _errs15; + if (vErrors !== null) { + if (_errs15) { + vErrors.length = _errs15; + } else { + vErrors = null; + } + } } } } else { - const err9 = { + const err15 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -34167,99 +40113,121 @@ function validate334( message: "must be object", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err15]; } else { - vErrors.push(err9); + vErrors.push(err15); } errors++; } - validate334.errors = vErrors; - return errors === 0; -} -validate334.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema234 = { - additionalProperties: false, - properties: { - field: { minLength: 1, title: "Field", type: "string" }, - kind: { const: "relationships", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - to: { minLength: 1, title: "To", type: "string" }, - values: { items: { $ref: "#/$defs/JsonValue" }, maxItems: 0, title: "Values", type: "array" }, - }, - required: ["kind", "to", "field"], - title: "RelationshipsFieldTest", - type: "object", -}; + validate368.errors = vErrors; + return errors === 0; +} +validate368.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate337( +function validate329( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate337.evaluated; + const evaluated0 = validate329.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } if (evaluated0.dynamicItems) { evaluated0.items = undefined; } + const _errs1 = errors; + const _errs2 = errors; if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { - const err0 = { + let missing0; + if ( + (data.config === undefined && (missing0 = "config")) || + (data.params === undefined && (missing0 = "params")) + ) { + const err0 = {}; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + } + var valid0 = _errs2 === errors; + if (valid0) { + const err1 = { + instancePath, + schemaPath: "#/not", + keyword: "not", + params: {}, + message: "must NOT be valid", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } else { + errors = _errs1; + if (vErrors !== null) { + if (_errs1) { + vErrors.length = _errs1; + } else { + vErrors = null; + } + } + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.id === undefined) { + const err2 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", + params: { missingProperty: "id" }, + message: "must have required property '" + "id" + "'", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err2]; } else { - vErrors.push(err0); + vErrors.push(err2); } errors++; } - if (data.to === undefined) { - const err1 = { + if (data.type === undefined) { + const err3 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "to" }, - message: "must have required property '" + "to" + "'", + params: { missingProperty: "type" }, + message: "must have required property '" + "type" + "'", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err3]; } else { - vErrors.push(err1); + vErrors.push(err3); } errors++; } - if (data.field === undefined) { - const err2 = { + if (data.name === undefined) { + const err4 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "field" }, - message: "must have required property '" + "field" + "'", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err4]; } else { - vErrors.push(err2); + vErrors.push(err4); } errors++; } for (const key0 in data) { - if (!( - key0 === "field" || - key0 === "kind" || - key0 === "metadata" || - key0 === "to" || - key0 === "values" - )) { - const err3 = { + if (!func1.call(schema236.properties, key0)) { + const err5 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -34267,288 +40235,476 @@ function validate337( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err5]; } else { - vErrors.push(err3); + vErrors.push(err5); } errors++; } } - if (data.field !== undefined) { - let data0 = data.field; - if (typeof data0 === "string") { - if (func2(data0) < 1) { - const err4 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err4]; + if (data.config !== undefined) { + if ( + !validate330(data.config, { + instancePath: instancePath + "/config", + parentData: data, + parentDataProperty: "config", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate330.errors : vErrors.concat(validate330.errors); + errors = vErrors.length; + } + } + if (data.cursor !== undefined) { + let data1 = data.cursor; + const _errs6 = errors; + let valid2 = false; + const _errs7 = errors; + if ( + !validate335(data1, { + instancePath: instancePath + "/cursor", + parentData: data, + parentDataProperty: "cursor", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate335.errors : vErrors.concat(validate335.errors); + errors = vErrors.length; + } + var _valid0 = _errs7 === errors; + valid2 = valid2 || _valid0; + const _errs8 = errors; + if (data1 !== null) { + const err6 = { + instancePath: instancePath + "/cursor", + schemaPath: "#/properties/cursor/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + var _valid0 = _errs8 === errors; + valid2 = valid2 || _valid0; + if (!valid2) { + const err7 = { + instancePath: instancePath + "/cursor", + schemaPath: "#/properties/cursor/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } else { + errors = _errs6; + if (vErrors !== null) { + if (_errs6) { + vErrors.length = _errs6; } else { - vErrors.push(err4); + vErrors = null; + } + } + } + } + if (data.fields !== undefined) { + let data2 = data.fields; + if (Array.isArray(data2)) { + const len0 = data2.length; + for (let i0 = 0; i0 < len0; i0++) { + if ( + !validate339(data2[i0], { + instancePath: instancePath + "/fields/" + i0, + parentData: data2, + parentDataProperty: i0, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate339.errors : vErrors.concat(validate339.errors); + errors = vErrors.length; } - errors++; } } else { - const err5 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/type", + const err8 = { + instancePath: instancePath + "/fields", + schemaPath: "#/properties/fields/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err8]; } else { - vErrors.push(err5); + vErrors.push(err8); } errors++; } } - if (data.kind !== undefined) { - let data1 = data.kind; - if (typeof data1 !== "string") { - const err6 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + if (data.id !== undefined) { + if (typeof data.id !== "string") { + const err9 = { + instancePath: instancePath + "/id", + schemaPath: "#/properties/id/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err9]; } else { - vErrors.push(err6); + vErrors.push(err9); } errors++; } - if ("relationships" !== data1) { - const err7 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "relationships" }, - message: "must be equal to constant", + } + if (data.name !== undefined) { + if (typeof data.name !== "string") { + const err10 = { + instancePath: instancePath + "/name", + schemaPath: "#/properties/name/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err10]; } else { - vErrors.push(err7); + vErrors.push(err10); } errors++; } } - if (data.metadata !== undefined) { + if (data.params !== undefined) { + let data6 = data.params; + const _errs18 = errors; + let valid5 = false; + const _errs19 = errors; if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", + !validate330(data6, { + instancePath: instancePath + "/params", parentData: data, - parentDataProperty: "metadata", + parentDataProperty: "params", rootData, dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate330.errors : vErrors.concat(validate330.errors); errors = vErrors.length; } - } - if (data.to !== undefined) { - let data3 = data.to; - if (typeof data3 === "string") { - if (func2(data3) < 1) { - const err8 = { - instancePath: instancePath + "/to", - schemaPath: "#/properties/to/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err8]; + var _valid1 = _errs19 === errors; + valid5 = valid5 || _valid1; + const _errs20 = errors; + if (data6 !== null) { + const err11 = { + instancePath: instancePath + "/params", + schemaPath: "#/properties/params/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + var _valid1 = _errs20 === errors; + valid5 = valid5 || _valid1; + if (!valid5) { + const err12 = { + instancePath: instancePath + "/params", + schemaPath: "#/properties/params/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } else { + errors = _errs18; + if (vErrors !== null) { + if (_errs18) { + vErrors.length = _errs18; } else { - vErrors.push(err8); + vErrors = null; } - errors++; } - } else { - const err9 = { - instancePath: instancePath + "/to", - schemaPath: "#/properties/to/type", + } + } + if (data.trigger !== undefined) { + let data7 = data.trigger; + const _errs24 = errors; + let valid6 = false; + const _errs25 = errors; + if ( + !validate357(data7, { + instancePath: instancePath + "/trigger", + parentData: data, + parentDataProperty: "trigger", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate357.errors : vErrors.concat(validate357.errors); + errors = vErrors.length; + } + var _valid2 = _errs25 === errors; + valid6 = valid6 || _valid2; + const _errs26 = errors; + if (data7 !== null) { + const err13 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf/1/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err13]; } else { - vErrors.push(err9); + vErrors.push(err13); } errors++; } - } - if (data.values !== undefined) { - let data4 = data.values; - if (Array.isArray(data4)) { - if (data4.length > 0) { - const err10 = { - instancePath: instancePath + "/values", - schemaPath: "#/properties/values/maxItems", - keyword: "maxItems", - params: { limit: 0 }, - message: "must NOT have more than 0 items", - }; - if (vErrors === null) { - vErrors = [err10]; + var _valid2 = _errs26 === errors; + valid6 = valid6 || _valid2; + if (!valid6) { + const err14 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } else { + errors = _errs24; + if (vErrors !== null) { + if (_errs24) { + vErrors.length = _errs24; } else { - vErrors.push(err10); + vErrors = null; } - errors++; } - } else { - const err11 = { - instancePath: instancePath + "/values", - schemaPath: "#/properties/values/type", + } + } + if (data.type !== undefined) { + let data8 = data.type; + if (typeof data8 !== "string") { + const err15 = { + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err15]; } else { - vErrors.push(err11); + vErrors.push(err15); + } + errors++; + } + if ("source" !== data8) { + const err16 = { + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/const", + keyword: "const", + params: { allowedValue: "source" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); } errors++; } } - } else { - const err12 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; - } - validate337.errors = vErrors; - return errors === 0; -} -validate337.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -function validate327( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate327.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - const _errs0 = errors; - let valid0 = false; - const _errs1 = errors; - if ( - !validate328(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate328.errors : vErrors.concat(validate328.errors); - errors = vErrors.length; - } - var _valid0 = _errs1 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - var props0 = true; - } - const _errs2 = errors; - if ( - !validate331(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate331.errors : vErrors.concat(validate331.errors); - errors = vErrors.length; - } - var _valid0 = _errs2 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; - } - } - const _errs3 = errors; - if ( - !validate334(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate334.errors : vErrors.concat(validate334.errors); - errors = vErrors.length; - } - var _valid0 = _errs3 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; - } - } - const _errs4 = errors; - if ( - !validate337(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate337.errors : vErrors.concat(validate337.errors); - errors = vErrors.length; - } - var _valid0 = _errs4 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; + if (data.visual !== undefined) { + let data9 = data.visual; + const _errs31 = errors; + let valid7 = false; + const _errs32 = errors; + if ( + !validate368(data9, { + instancePath: instancePath + "/visual", + parentData: data, + parentDataProperty: "visual", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate368.errors : vErrors.concat(validate368.errors); + errors = vErrors.length; + } + var _valid3 = _errs32 === errors; + valid7 = valid7 || _valid3; + const _errs33 = errors; + if (data9 !== null) { + const err17 = { + instancePath: instancePath + "/visual", + schemaPath: "#/properties/visual/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + var _valid3 = _errs33 === errors; + valid7 = valid7 || _valid3; + if (!valid7) { + const err18 = { + instancePath: instancePath + "/visual", + schemaPath: "#/properties/visual/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } else { + errors = _errs31; + if (vErrors !== null) { + if (_errs31) { + vErrors.length = _errs31; + } else { + vErrors = null; + } + } + } } - } - if (!valid0) { - const err0 = { + } else { + const err19 = { instancePath, - schemaPath: "#/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err19]; } else { - vErrors.push(err0); + vErrors.push(err19); } errors++; - } else { - errors = _errs0; - if (vErrors !== null) { - if (_errs0) { - vErrors.length = _errs0; - } else { - vErrors = null; - } - } } - validate327.errors = vErrors; - evaluated0.props = props0; + validate329.errors = vErrors; return errors === 0; } -validate327.evaluated = { dynamicProps: true, dynamicItems: false }; +validate329.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema259 = { + additionalProperties: false, + not: { required: ["config", "params"] }, + properties: { + config: { $ref: "#/$defs/TransformNodeConfigDocument" }, + cursor: { + anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], + default: null, + }, + fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, + id: { title: "Id", type: "string" }, + name: { title: "Name", type: "string" }, + params: { + anyOf: [{ $ref: "#/$defs/TransformNodeConfigDocument" }, { type: "null" }], + default: null, + deprecated: true, + "x-dander-canonical-name": "config", + }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + type: { const: "transform", title: "Type", type: "string" }, + visual: { anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], default: null }, + }, + required: ["id", "type", "name"], + title: "TransformNodeDocument", + type: "object", +}; +const schema260 = { + additionalProperties: { $ref: "#/$defs/JsonValue" }, + properties: { + join: { anyOf: [{ $ref: "#/$defs/TransformJoinDocument" }, { type: "null" }], default: null }, + operations: { + items: { $ref: "#/$defs/OperationDocument" }, + title: "Operations", + type: "array", + }, + }, + title: "TransformNodeConfigDocument", + type: "object", +}; +const schema262 = { + additionalProperties: false, + properties: { + keys: { + items: { $ref: "#/$defs/ExecutableJoinKeyDocument" }, + minItems: 1, + title: "Keys", + type: "array", + }, + left_input: { minLength: 1, title: "Left Input", type: "string" }, + right_input: { minLength: 1, title: "Right Input", type: "string" }, + type: { $ref: "#/$defs/ExecutableJoinType" }, + }, + required: ["left_input", "right_input", "type", "keys"], + title: "TransformJoinDocument", + type: "object", +}; +const schema263 = { + additionalProperties: false, + properties: { + left: { minLength: 1, title: "Left", type: "string" }, + right: { minLength: 1, title: "Right", type: "string" }, + }, + required: ["left", "right"], + title: "ExecutableJoinKeyDocument", + type: "object", +}; +const schema264 = { + description: "BigQuery join kinds supported by an executable transform node.", + enum: ["inner", "left", "right", "full"], + title: "ExecutableJoinType", + type: "string", +}; -function validate325( +function validate373( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate325.evaluated; + const evaluated0 = validate373.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -34556,13 +40712,13 @@ function validate325( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.name === undefined) { + if (data.left_input === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "name" }, - message: "must have required property '" + "name" + "'", + params: { missingProperty: "left_input" }, + message: "must have required property '" + "left_input" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -34571,13 +40727,13 @@ function validate325( } errors++; } - if (data.type === undefined) { + if (data.right_input === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "type" }, - message: "must have required property '" + "type" + "'", + params: { missingProperty: "right_input" }, + message: "must have required property '" + "right_input" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -34586,63 +40742,50 @@ function validate325( } errors++; } + if (data.type === undefined) { + const err2 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "type" }, + message: "must have required property '" + "type" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + if (data.keys === undefined) { + const err3 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "keys" }, + message: "must have required property '" + "keys" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } for (const key0 in data) { if (!( - key0 === "cast_to" || - key0 === "description" || - key0 === "extensions" || - key0 === "metadata" || - key0 === "name" || - key0 === "nullable" || - key0 === "tests" || + key0 === "keys" || + key0 === "left_input" || + key0 === "right_input" || key0 === "type" )) { - const err2 = { + const err4 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties", }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - } - if (data.cast_to !== undefined) { - let data0 = data.cast_to; - const _errs3 = errors; - let valid1 = false; - const _errs4 = errors; - if (typeof data0 !== "string") { - const err3 = { - instancePath: instancePath + "/cast_to", - schemaPath: "#/properties/cast_to/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - var _valid0 = _errs4 === errors; - valid1 = valid1 || _valid0; - const _errs6 = errors; - if (data0 !== null) { - const err4 = { - instancePath: instancePath + "/cast_to", - schemaPath: "#/properties/cast_to/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; if (vErrors === null) { vErrors = [err4]; } else { @@ -34650,435 +40793,572 @@ function validate325( } errors++; } - var _valid0 = _errs6 === errors; - valid1 = valid1 || _valid0; - if (!valid1) { - const err5 = { - instancePath: instancePath + "/cast_to", - schemaPath: "#/properties/cast_to/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } else { - errors = _errs3; - if (vErrors !== null) { - if (_errs3) { - vErrors.length = _errs3; - } else { - vErrors = null; - } - } - } } - if (data.description !== undefined) { - let data1 = data.description; - const _errs9 = errors; - let valid2 = false; - const _errs10 = errors; - if (typeof data1 !== "string") { - const err6 = { - instancePath: instancePath + "/description", - schemaPath: "#/properties/description/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - var _valid1 = _errs10 === errors; - valid2 = valid2 || _valid1; - const _errs12 = errors; - if (data1 !== null) { - const err7 = { - instancePath: instancePath + "/description", - schemaPath: "#/properties/description/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - var _valid1 = _errs12 === errors; - valid2 = valid2 || _valid1; - if (!valid2) { - const err8 = { - instancePath: instancePath + "/description", - schemaPath: "#/properties/description/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } else { - errors = _errs9; - if (vErrors !== null) { - if (_errs9) { - vErrors.length = _errs9; + if (data.keys !== undefined) { + let data0 = data.keys; + if (Array.isArray(data0)) { + if (data0.length < 1) { + const err5 = { + instancePath: instancePath + "/keys", + schemaPath: "#/properties/keys/minItems", + keyword: "minItems", + params: { limit: 1 }, + message: "must NOT have fewer than 1 items", + }; + if (vErrors === null) { + vErrors = [err5]; } else { - vErrors = null; + vErrors.push(err5); } + errors++; } - } - } - if (data.extensions !== undefined) { - let data2 = data.extensions; - if (Array.isArray(data2)) { - const len0 = data2.length; + const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { - let data3 = data2[i0]; - if (data3 && typeof data3 == "object" && !Array.isArray(data3)) { - if (data3.provider === undefined) { - const err9 = { - instancePath: instancePath + "/extensions/" + i0, - schemaPath: "#/$defs/ProviderExtension/required", - keyword: "required", - params: { missingProperty: "provider" }, - message: "must have required property '" + "provider" + "'", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - if (data3.name === undefined) { - const err10 = { - instancePath: instancePath + "/extensions/" + i0, - schemaPath: "#/$defs/ProviderExtension/required", + let data1 = data0[i0]; + if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { + if (data1.left === undefined) { + const err6 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/ExecutableJoinKeyDocument/required", keyword: "required", - params: { missingProperty: "name" }, - message: "must have required property '" + "name" + "'", + params: { missingProperty: "left" }, + message: "must have required property '" + "left" + "'", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err6]; } else { - vErrors.push(err10); + vErrors.push(err6); } errors++; } - if (data3.value === undefined) { - const err11 = { - instancePath: instancePath + "/extensions/" + i0, - schemaPath: "#/$defs/ProviderExtension/required", + if (data1.right === undefined) { + const err7 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/ExecutableJoinKeyDocument/required", keyword: "required", - params: { missingProperty: "value" }, - message: "must have required property '" + "value" + "'", + params: { missingProperty: "right" }, + message: "must have required property '" + "right" + "'", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err7]; } else { - vErrors.push(err11); + vErrors.push(err7); } errors++; } - for (const key1 in data3) { - if (!(key1 === "name" || key1 === "provider" || key1 === "value")) { - const err12 = { - instancePath: instancePath + "/extensions/" + i0, - schemaPath: "#/$defs/ProviderExtension/additionalProperties", + for (const key1 in data1) { + if (!(key1 === "left" || key1 === "right")) { + const err8 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/ExecutableJoinKeyDocument/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; - } - } - if (data3.name !== undefined) { - if (typeof data3.name !== "string") { - const err13 = { - instancePath: instancePath + "/extensions/" + i0 + "/name", - schemaPath: "#/$defs/ProviderExtension/properties/name/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err13]; - } else { - vErrors.push(err13); - } - errors++; - } - } - if (data3.provider !== undefined) { - if (typeof data3.provider !== "string") { - const err14 = { - instancePath: instancePath + "/extensions/" + i0 + "/provider", - schemaPath: "#/$defs/ProviderExtension/properties/provider/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err14]; + vErrors = [err8]; } else { - vErrors.push(err14); + vErrors.push(err8); } errors++; } } - if (data3.value !== undefined) { - let data6 = data3.value; - const _errs25 = errors; - let valid7 = false; - const _errs26 = errors; - if (typeof data6 !== "string") { - const err15 = { - instancePath: instancePath + "/extensions/" + i0 + "/value", - schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err15]; - } else { - vErrors.push(err15); - } - errors++; - } - var _valid2 = _errs26 === errors; - valid7 = valid7 || _valid2; - const _errs28 = errors; - if (!(typeof data6 == "number" && !(data6 % 1) && !isNaN(data6) && isFinite(data6))) { - const err16 = { - instancePath: instancePath + "/extensions/" + i0 + "/value", - schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf/1/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err16]; - } else { - vErrors.push(err16); - } - errors++; - } - var _valid2 = _errs28 === errors; - valid7 = valid7 || _valid2; - const _errs30 = errors; - if (!(typeof data6 == "number" && isFinite(data6))) { - const err17 = { - instancePath: instancePath + "/extensions/" + i0 + "/value", - schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf/2/type", - keyword: "type", - params: { type: "number" }, - message: "must be number", - }; - if (vErrors === null) { - vErrors = [err17]; - } else { - vErrors.push(err17); - } - errors++; - } - var _valid2 = _errs30 === errors; - valid7 = valid7 || _valid2; - const _errs32 = errors; - if (typeof data6 !== "boolean") { - const err18 = { - instancePath: instancePath + "/extensions/" + i0 + "/value", - schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf/3/type", + if (data1.left !== undefined) { + let data2 = data1.left; + if (typeof data2 === "string") { + if (func3(data2) < 1) { + const err9 = { + instancePath: instancePath + "/keys/" + i0 + "/left", + schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/left/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } else { + const err10 = { + instancePath: instancePath + "/keys/" + i0 + "/left", + schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/left/type", keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err18]; + vErrors = [err10]; } else { - vErrors.push(err18); + vErrors.push(err10); } errors++; } - var _valid2 = _errs32 === errors; - valid7 = valid7 || _valid2; - if (!valid7) { - const err19 = { - instancePath: instancePath + "/extensions/" + i0 + "/value", - schemaPath: "#/$defs/ProviderExtension/properties/value/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + } + if (data1.right !== undefined) { + let data3 = data1.right; + if (typeof data3 === "string") { + if (func3(data3) < 1) { + const err11 = { + instancePath: instancePath + "/keys/" + i0 + "/right", + schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/right/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + } else { + const err12 = { + instancePath: instancePath + "/keys/" + i0 + "/right", + schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/right/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err19]; + vErrors = [err12]; } else { - vErrors.push(err19); + vErrors.push(err12); } errors++; - } else { - errors = _errs25; - if (vErrors !== null) { - if (_errs25) { - vErrors.length = _errs25; - } else { - vErrors = null; - } - } } } } else { - const err20 = { - instancePath: instancePath + "/extensions/" + i0, - schemaPath: "#/$defs/ProviderExtension/type", + const err13 = { + instancePath: instancePath + "/keys/" + i0, + schemaPath: "#/$defs/ExecutableJoinKeyDocument/type", keyword: "type", params: { type: "object" }, message: "must be object", }; if (vErrors === null) { - vErrors = [err20]; + vErrors = [err13]; } else { - vErrors.push(err20); + vErrors.push(err13); } errors++; } } } else { - const err21 = { - instancePath: instancePath + "/extensions", - schemaPath: "#/properties/extensions/type", + const err14 = { + instancePath: instancePath + "/keys", + schemaPath: "#/properties/keys/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err21]; + vErrors = [err14]; } else { - vErrors.push(err21); + vErrors.push(err14); } errors++; } } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; + if (data.left_input !== undefined) { + let data4 = data.left_input; + if (typeof data4 === "string") { + if (func3(data4) < 1) { + const err15 = { + instancePath: instancePath + "/left_input", + schemaPath: "#/properties/left_input/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } + } else { + const err16 = { + instancePath: instancePath + "/left_input", + schemaPath: "#/properties/left_input/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; } } - if (data.name !== undefined) { - if (typeof data.name !== "string") { - const err22 = { - instancePath: instancePath + "/name", - schemaPath: "#/properties/name/type", + if (data.right_input !== undefined) { + let data5 = data.right_input; + if (typeof data5 === "string") { + if (func3(data5) < 1) { + const err17 = { + instancePath: instancePath + "/right_input", + schemaPath: "#/properties/right_input/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + } else { + const err18 = { + instancePath: instancePath + "/right_input", + schemaPath: "#/properties/right_input/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err22]; + vErrors = [err18]; } else { - vErrors.push(err22); + vErrors.push(err18); } errors++; } } - if (data.nullable !== undefined) { - if (typeof data.nullable !== "boolean") { - const err23 = { - instancePath: instancePath + "/nullable", - schemaPath: "#/properties/nullable/type", + if (data.type !== undefined) { + let data6 = data.type; + if (typeof data6 !== "string") { + const err19 = { + instancePath: instancePath + "/type", + schemaPath: "#/$defs/ExecutableJoinType/type", keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err23]; + vErrors = [err19]; } else { - vErrors.push(err23); + vErrors.push(err19); } errors++; } - } - if (data.tests !== undefined) { - let data10 = data.tests; - if (Array.isArray(data10)) { - const len1 = data10.length; - for (let i1 = 0; i1 < len1; i1++) { - if ( - !validate327(data10[i1], { - instancePath: instancePath + "/tests/" + i1, - parentData: data10, - parentDataProperty: i1, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate327.errors : vErrors.concat(validate327.errors); - errors = vErrors.length; - } + if (!(data6 === "inner" || data6 === "left" || data6 === "right" || data6 === "full")) { + const err20 = { + instancePath: instancePath + "/type", + schemaPath: "#/$defs/ExecutableJoinType/enum", + keyword: "enum", + params: { allowedValues: schema264.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); } + errors++; + } + } + } else { + const err21 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err21]; + } else { + vErrors.push(err21); + } + errors++; + } + validate373.errors = vErrors; + return errors === 0; +} +validate373.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema265 = { + anyOf: [ + { $ref: "#/$defs/TruncateStringOperation" }, + { $ref: "#/$defs/TrimWhitespaceOperation" }, + { $ref: "#/$defs/DefaultValueOperation" }, + { $ref: "#/$defs/FilterRowsOperation" }, + ], +}; +const schema266 = { + additionalProperties: false, + properties: { + kind: { const: "truncate_string", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/TruncateStringParamsDocument" }, + }, + required: ["kind", "params"], + title: "TruncateStringOperation", + type: "object", +}; +const schema267 = { + additionalProperties: false, + properties: { + field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, + max_length: { minimum: 0, title: "Max Length", type: "integer" }, + }, + required: ["field", "max_length"], + title: "TruncateStringParamsDocument", + type: "object", +}; + +function validate376( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate376.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; } else { - const err24 = { - instancePath: instancePath + "/tests", - schemaPath: "#/properties/tests/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", + vErrors.push(err0); + } + errors++; + } + if (data.params === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "params" }, + message: "must have required property '" + "params" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "kind" || key0 === "metadata" || key0 === "params")) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err24]; + vErrors = [err2]; } else { - vErrors.push(err24); + vErrors.push(err2); } errors++; } } - if (data.type !== undefined) { - if (typeof data.type !== "string") { - const err25 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/type", + if (data.kind !== undefined) { + let data0 = data.kind; + if (typeof data0 !== "string") { + const err3 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err25]; + vErrors = [err3]; } else { - vErrors.push(err25); + vErrors.push(err3); + } + errors++; + } + if ("truncate_string" !== data0) { + const err4 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "truncate_string" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.params !== undefined) { + let data2 = data.params; + if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { + if (data2.field === undefined) { + const err5 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/TruncateStringParamsDocument/required", + keyword: "required", + params: { missingProperty: "field" }, + message: "must have required property '" + "field" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + if (data2.max_length === undefined) { + const err6 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/TruncateStringParamsDocument/required", + keyword: "required", + params: { missingProperty: "max_length" }, + message: "must have required property '" + "max_length" + "'", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + for (const key1 in data2) { + if (!(key1 === "field" || key1 === "max_length")) { + const err7 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/TruncateStringParamsDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data2.field !== undefined) { + let data3 = data2.field; + if (typeof data3 === "string") { + if (!pattern10.test(data3)) { + const err8 = { + instancePath: instancePath + "/params/field", + schemaPath: "#/$defs/TruncateStringParamsDocument/properties/field/pattern", + keyword: "pattern", + params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" }, + message: 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*$" + '"', + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } else { + const err9 = { + instancePath: instancePath + "/params/field", + schemaPath: "#/$defs/TruncateStringParamsDocument/properties/field/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + if (data2.max_length !== undefined) { + let data4 = data2.max_length; + if (!(typeof data4 == "number" && !(data4 % 1) && !isNaN(data4) && isFinite(data4))) { + const err10 = { + instancePath: instancePath + "/params/max_length", + schemaPath: "#/$defs/TruncateStringParamsDocument/properties/max_length/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + if (typeof data4 == "number" && isFinite(data4)) { + if (data4 < 0 || isNaN(data4)) { + const err11 = { + instancePath: instancePath + "/params/max_length", + schemaPath: "#/$defs/TruncateStringParamsDocument/properties/max_length/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + } + } + } else { + const err12 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/TruncateStringParamsDocument/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); } errors++; } } } else { - const err26 = { + const err13 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -35086,45 +41366,43 @@ function validate325( message: "must be object", }; if (vErrors === null) { - vErrors = [err26]; + vErrors = [err13]; } else { - vErrors.push(err26); + vErrors.push(err13); } errors++; } - validate325.errors = vErrors; + validate376.errors = vErrors; return errors === 0; } -validate325.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate376.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema236 = { - anyOf: [ - { $ref: "#/$defs/ScheduleTrigger" }, - { $ref: "#/$defs/DependencyTrigger" }, - { $ref: "#/$defs/ManualTrigger" }, - ], -}; -const schema237 = { +const schema268 = { additionalProperties: false, properties: { - cron: { minLength: 1, title: "Cron", type: "string" }, - depends_on: { items: { type: "string" }, maxItems: 0, title: "Depends On", type: "array" }, - event: { default: null, title: "Event", type: "null" }, - kind: { const: "schedule", title: "Kind", type: "string" }, + kind: { const: "trim_whitespace", title: "Kind", type: "string" }, metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/TrimWhitespaceParamsDocument" }, }, - required: ["kind", "cron"], - title: "ScheduleTrigger", + required: ["kind", "params"], + title: "TrimWhitespaceOperation", + type: "object", +}; +const schema269 = { + additionalProperties: false, + properties: { field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" } }, + required: ["field"], + title: "TrimWhitespaceParamsDocument", type: "object", }; -function validate344( +function validate379( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate344.evaluated; + const evaluated0 = validate379.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -35147,13 +41425,13 @@ function validate344( } errors++; } - if (data.cron === undefined) { + if (data.params === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "cron" }, - message: "must have required property '" + "cron" + "'", + params: { missingProperty: "params" }, + message: "must have required property '" + "params" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -35163,13 +41441,7 @@ function validate344( errors++; } for (const key0 in data) { - if (!( - key0 === "cron" || - key0 === "depends_on" || - key0 === "event" || - key0 === "kind" || - key0 === "metadata" - )) { + if (!(key0 === "kind" || key0 === "metadata" || key0 === "params")) { const err2 = { instancePath, schemaPath: "#/additionalProperties", @@ -35185,32 +41457,31 @@ function validate344( errors++; } } - if (data.cron !== undefined) { - let data0 = data.cron; - if (typeof data0 === "string") { - if (func2(data0) < 1) { - const err3 = { - instancePath: instancePath + "/cron", - schemaPath: "#/properties/cron/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - } else { - const err4 = { - instancePath: instancePath + "/cron", - schemaPath: "#/properties/cron/type", + if (data.kind !== undefined) { + let data0 = data.kind; + if (typeof data0 !== "string") { + const err3 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/type", keyword: "type", params: { type: "string" }, message: "must be string", }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + if ("trim_whitespace" !== data0) { + const err4 = { + instancePath: instancePath + "/kind", + schemaPath: "#/properties/kind/const", + keyword: "const", + params: { allowedValue: "trim_whitespace" }, + message: "must be equal to constant", + }; if (vErrors === null) { vErrors = [err4]; } else { @@ -35219,16 +41490,30 @@ function validate344( errors++; } } - if (data.depends_on !== undefined) { - let data1 = data.depends_on; - if (Array.isArray(data1)) { - if (data1.length > 0) { + if (data.metadata !== undefined) { + if ( + !validate305(data.metadata, { + instancePath: instancePath + "/metadata", + parentData: data, + parentDataProperty: "metadata", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.params !== undefined) { + let data2 = data.params; + if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { + if (data2.field === undefined) { const err5 = { - instancePath: instancePath + "/depends_on", - schemaPath: "#/properties/depends_on/maxItems", - keyword: "maxItems", - params: { limit: 0 }, - message: "must NOT have more than 0 items", + instancePath: instancePath + "/params", + schemaPath: "#/$defs/TrimWhitespaceParamsDocument/required", + keyword: "required", + params: { missingProperty: "field" }, + message: "must have required property '" + "field" + "'", }; if (vErrors === null) { vErrors = [err5]; @@ -35237,61 +41522,183 @@ function validate344( } errors++; } - const len0 = data1.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data1[i0] !== "string") { + for (const key1 in data2) { + if (!(key1 === "field")) { const err6 = { - instancePath: instancePath + "/depends_on/" + i0, - schemaPath: "#/properties/depends_on/items/type", + instancePath: instancePath + "/params", + schemaPath: "#/$defs/TrimWhitespaceParamsDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + if (data2.field !== undefined) { + let data3 = data2.field; + if (typeof data3 === "string") { + if (!pattern10.test(data3)) { + const err7 = { + instancePath: instancePath + "/params/field", + schemaPath: "#/$defs/TrimWhitespaceParamsDocument/properties/field/pattern", + keyword: "pattern", + params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" }, + message: 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*$" + '"', + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } else { + const err8 = { + instancePath: instancePath + "/params/field", + schemaPath: "#/$defs/TrimWhitespaceParamsDocument/properties/field/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err8]; } else { - vErrors.push(err6); + vErrors.push(err8); } errors++; } } } else { - const err7 = { - instancePath: instancePath + "/depends_on", - schemaPath: "#/properties/depends_on/type", + const err9 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/TrimWhitespaceParamsDocument/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err9]; } else { - vErrors.push(err7); + vErrors.push(err9); } errors++; } } - if (data.event !== undefined) { - if (data.event !== null) { - const err8 = { - instancePath: instancePath + "/event", - schemaPath: "#/properties/event/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + } else { + const err10 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + validate379.errors = vErrors; + return errors === 0; +} +validate379.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +const schema270 = { + additionalProperties: false, + properties: { + kind: { const: "default_value", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/DefaultValueParamsDocument" }, + }, + required: ["kind", "params"], + title: "DefaultValueOperation", + type: "object", +}; +const schema271 = { + additionalProperties: false, + properties: { + default: { + anyOf: [{ type: "string" }, { type: "integer" }, { type: "number" }, { type: "boolean" }], + title: "Default", + }, + field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, + }, + required: ["field", "default"], + title: "DefaultValueParamsDocument", + type: "object", +}; + +function validate382( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate382.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.params === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "params" }, + message: "must have required property '" + "params" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "kind" || key0 === "metadata" || key0 === "params")) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err2]; } else { - vErrors.push(err8); + vErrors.push(err2); } errors++; } } if (data.kind !== undefined) { - let data4 = data.kind; - if (typeof data4 !== "string") { - const err9 = { + let data0 = data.kind; + if (typeof data0 !== "string") { + const err3 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/type", keyword: "type", @@ -35299,31 +41706,31 @@ function validate344( message: "must be string", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err3]; } else { - vErrors.push(err9); + vErrors.push(err3); } errors++; } - if ("schedule" !== data4) { - const err10 = { + if ("default_value" !== data0) { + const err4 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/const", keyword: "const", - params: { allowedValue: "schedule" }, + params: { allowedValue: "default_value" }, message: "must be equal to constant", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err4]; } else { - vErrors.push(err10); + vErrors.push(err4); } errors++; } } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -35331,12 +41738,213 @@ function validate344( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } + if (data.params !== undefined) { + let data2 = data.params; + if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { + if (data2.field === undefined) { + const err5 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/DefaultValueParamsDocument/required", + keyword: "required", + params: { missingProperty: "field" }, + message: "must have required property '" + "field" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + if (data2.default === undefined) { + const err6 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/DefaultValueParamsDocument/required", + keyword: "required", + params: { missingProperty: "default" }, + message: "must have required property '" + "default" + "'", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + for (const key1 in data2) { + if (!(key1 === "default" || key1 === "field")) { + const err7 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/DefaultValueParamsDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } + if (data2.default !== undefined) { + let data3 = data2.default; + const _errs10 = errors; + let valid3 = false; + const _errs11 = errors; + if (typeof data3 !== "string") { + const err8 = { + instancePath: instancePath + "/params/default", + schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + var _valid0 = _errs11 === errors; + valid3 = valid3 || _valid0; + const _errs13 = errors; + if (!(typeof data3 == "number" && !(data3 % 1) && !isNaN(data3) && isFinite(data3))) { + const err9 = { + instancePath: instancePath + "/params/default", + schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf/1/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + var _valid0 = _errs13 === errors; + valid3 = valid3 || _valid0; + const _errs15 = errors; + if (!(typeof data3 == "number" && isFinite(data3))) { + const err10 = { + instancePath: instancePath + "/params/default", + schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf/2/type", + keyword: "type", + params: { type: "number" }, + message: "must be number", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + var _valid0 = _errs15 === errors; + valid3 = valid3 || _valid0; + const _errs17 = errors; + if (typeof data3 !== "boolean") { + const err11 = { + instancePath: instancePath + "/params/default", + schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf/3/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + var _valid0 = _errs17 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err12 = { + instancePath: instancePath + "/params/default", + schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } else { + errors = _errs10; + if (vErrors !== null) { + if (_errs10) { + vErrors.length = _errs10; + } else { + vErrors = null; + } + } + } + } + if (data2.field !== undefined) { + let data4 = data2.field; + if (typeof data4 === "string") { + if (!pattern10.test(data4)) { + const err13 = { + instancePath: instancePath + "/params/field", + schemaPath: "#/$defs/DefaultValueParamsDocument/properties/field/pattern", + keyword: "pattern", + params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" }, + message: 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*$" + '"', + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + } else { + const err14 = { + instancePath: instancePath + "/params/field", + schemaPath: "#/$defs/DefaultValueParamsDocument/properties/field/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } + } + } else { + const err15 = { + instancePath: instancePath + "/params", + schemaPath: "#/$defs/DefaultValueParamsDocument/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } + } } else { - const err11 = { + const err16 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -35344,38 +41952,95 @@ function validate344( message: "must be object", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err16]; } else { - vErrors.push(err11); + vErrors.push(err16); } errors++; } - validate344.errors = vErrors; + validate382.errors = vErrors; return errors === 0; } -validate344.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate382.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema238 = { +const schema272 = { + additionalProperties: false, + properties: { + kind: { const: "filter_rows", title: "Kind", type: "string" }, + metadata: { $ref: "#/$defs/JsonObject" }, + params: { $ref: "#/$defs/FilterRowsParamsDocument" }, + }, + required: ["kind", "params"], + title: "FilterRowsOperation", + type: "object", +}; +const schema273 = { + additionalProperties: false, + properties: { + conditions: { + items: { $ref: "#/$defs/FieldConditionDocument" }, + minItems: 1, + title: "Conditions", + type: "array", + }, + logic: { $ref: "#/$defs/MatchLogic", default: "all" }, + }, + required: ["conditions"], + title: "FilterRowsParamsDocument", + type: "object", +}; +const schema276 = { + description: "How a filter's flat condition list combines.", + enum: ["all", "any"], + title: "MatchLogic", + type: "string", +}; +const schema274 = { additionalProperties: false, properties: { - cron: { default: null, title: "Cron", type: "null" }, - depends_on: { items: { type: "string" }, minItems: 1, title: "Depends On", type: "array" }, - event: { default: null, title: "Event", type: "null" }, - kind: { const: "dependency", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, + field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, + op: { $ref: "#/$defs/ComparisonOperator" }, + value: { + anyOf: [ + { type: "string" }, + { type: "integer" }, + { type: "number" }, + { type: "boolean" }, + { + items: { + anyOf: [ + { type: "string" }, + { type: "integer" }, + { type: "number" }, + { type: "boolean" }, + ], + }, + type: "array", + }, + { type: "null" }, + ], + default: null, + title: "Value", + }, }, - required: ["kind", "depends_on"], - title: "DependencyTrigger", + required: ["field", "op"], + title: "FieldConditionDocument", type: "object", }; +const schema275 = { + description: "Closed comparison grammar for ``filter_rows``.", + enum: ["eq", "ne", "gt", "gte", "lt", "lte", "in", "not_in", "is_null", "is_not_null"], + title: "ComparisonOperator", + type: "string", +}; -function validate347( +function validate388( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate347.evaluated; + const evaluated0 = validate388.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -35383,13 +42048,13 @@ function validate347( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { + if (data.field === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", + params: { missingProperty: "field" }, + message: "must have required property '" + "field" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -35398,13 +42063,13 @@ function validate347( } errors++; } - if (data.depends_on === undefined) { + if (data.op === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "depends_on" }, - message: "must have required property '" + "depends_on" + "'", + params: { missingProperty: "op" }, + message: "must have required property '" + "op" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -35414,13 +42079,7 @@ function validate347( errors++; } for (const key0 in data) { - if (!( - key0 === "cron" || - key0 === "depends_on" || - key0 === "event" || - key0 === "kind" || - key0 === "metadata" - )) { + if (!(key0 === "field" || key0 === "op" || key0 === "value")) { const err2 = { instancePath, schemaPath: "#/additionalProperties", @@ -35436,66 +42095,75 @@ function validate347( errors++; } } - if (data.cron !== undefined) { - if (data.cron !== null) { - const err3 = { - instancePath: instancePath + "/cron", - schemaPath: "#/properties/cron/type", + if (data.field !== undefined) { + let data0 = data.field; + if (typeof data0 === "string") { + if (!pattern10.test(data0)) { + const err3 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/pattern", + keyword: "pattern", + params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" }, + message: 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*$" + '"', + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } else { + const err4 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err4]; } else { - vErrors.push(err3); + vErrors.push(err4); } errors++; } } - if (data.depends_on !== undefined) { - let data1 = data.depends_on; - if (Array.isArray(data1)) { - if (data1.length < 1) { - const err4 = { - instancePath: instancePath + "/depends_on", - schemaPath: "#/properties/depends_on/minItems", - keyword: "minItems", - params: { limit: 1 }, - message: "must NOT have fewer than 1 items", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - const len0 = data1.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data1[i0] !== "string") { - const err5 = { - instancePath: instancePath + "/depends_on/" + i0, - schemaPath: "#/properties/depends_on/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } + if (data.op !== undefined) { + let data1 = data.op; + if (typeof data1 !== "string") { + const err5 = { + instancePath: instancePath + "/op", + schemaPath: "#/$defs/ComparisonOperator/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); } - } else { + errors++; + } + if (!( + data1 === "eq" || + data1 === "ne" || + data1 === "gt" || + data1 === "gte" || + data1 === "lt" || + data1 === "lte" || + data1 === "in" || + data1 === "not_in" || + data1 === "is_null" || + data1 === "is_not_null" + )) { const err6 = { - instancePath: instancePath + "/depends_on", - schemaPath: "#/properties/depends_on/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", + instancePath: instancePath + "/op", + schemaPath: "#/$defs/ComparisonOperator/enum", + keyword: "enum", + params: { allowedValues: schema275.enum }, + message: "must be equal to one of the allowed values", }; if (vErrors === null) { vErrors = [err6]; @@ -35505,14 +42173,18 @@ function validate347( errors++; } } - if (data.event !== undefined) { - if (data.event !== null) { + if (data.value !== undefined) { + let data2 = data.value; + const _errs8 = errors; + let valid2 = false; + const _errs9 = errors; + if (typeof data2 !== "string") { const err7 = { - instancePath: instancePath + "/event", - schemaPath: "#/properties/event/type", + instancePath: instancePath + "/value", + schemaPath: "#/properties/value/anyOf/0/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { vErrors = [err7]; @@ -35521,16 +42193,16 @@ function validate347( } errors++; } - } - if (data.kind !== undefined) { - let data4 = data.kind; - if (typeof data4 !== "string") { + var _valid0 = _errs9 === errors; + valid2 = valid2 || _valid0; + const _errs11 = errors; + if (!(typeof data2 == "number" && !(data2 % 1) && !isNaN(data2) && isFinite(data2))) { const err8 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + instancePath: instancePath + "/value", + schemaPath: "#/properties/value/anyOf/1/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { vErrors = [err8]; @@ -35539,13 +42211,16 @@ function validate347( } errors++; } - if ("dependency" !== data4) { + var _valid0 = _errs11 === errors; + valid2 = valid2 || _valid0; + const _errs13 = errors; + if (!(typeof data2 == "number" && isFinite(data2))) { const err9 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "dependency" }, - message: "must be equal to constant", + instancePath: instancePath + "/value", + schemaPath: "#/properties/value/anyOf/2/type", + keyword: "type", + params: { type: "number" }, + message: "must be number", }; if (vErrors === null) { vErrors = [err9]; @@ -35554,23 +42229,192 @@ function validate347( } errors++; } - } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; + var _valid0 = _errs13 === errors; + valid2 = valid2 || _valid0; + const _errs15 = errors; + if (typeof data2 !== "boolean") { + const err10 = { + instancePath: instancePath + "/value", + schemaPath: "#/properties/value/anyOf/3/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + var _valid0 = _errs15 === errors; + valid2 = valid2 || _valid0; + const _errs17 = errors; + if (Array.isArray(data2)) { + const len0 = data2.length; + for (let i0 = 0; i0 < len0; i0++) { + let data3 = data2[i0]; + const _errs20 = errors; + let valid5 = false; + const _errs21 = errors; + if (typeof data3 !== "string") { + const err11 = { + instancePath: instancePath + "/value/" + i0, + schemaPath: "#/properties/value/anyOf/4/items/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + var _valid1 = _errs21 === errors; + valid5 = valid5 || _valid1; + const _errs23 = errors; + if (!(typeof data3 == "number" && !(data3 % 1) && !isNaN(data3) && isFinite(data3))) { + const err12 = { + instancePath: instancePath + "/value/" + i0, + schemaPath: "#/properties/value/anyOf/4/items/anyOf/1/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + var _valid1 = _errs23 === errors; + valid5 = valid5 || _valid1; + const _errs25 = errors; + if (!(typeof data3 == "number" && isFinite(data3))) { + const err13 = { + instancePath: instancePath + "/value/" + i0, + schemaPath: "#/properties/value/anyOf/4/items/anyOf/2/type", + keyword: "type", + params: { type: "number" }, + message: "must be number", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + var _valid1 = _errs25 === errors; + valid5 = valid5 || _valid1; + const _errs27 = errors; + if (typeof data3 !== "boolean") { + const err14 = { + instancePath: instancePath + "/value/" + i0, + schemaPath: "#/properties/value/anyOf/4/items/anyOf/3/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } + var _valid1 = _errs27 === errors; + valid5 = valid5 || _valid1; + if (!valid5) { + const err15 = { + instancePath: instancePath + "/value/" + i0, + schemaPath: "#/properties/value/anyOf/4/items/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } else { + errors = _errs20; + if (vErrors !== null) { + if (_errs20) { + vErrors.length = _errs20; + } else { + vErrors = null; + } + } + } + } + } else { + const err16 = { + instancePath: instancePath + "/value", + schemaPath: "#/properties/value/anyOf/4/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + var _valid0 = _errs17 === errors; + valid2 = valid2 || _valid0; + const _errs29 = errors; + if (data2 !== null) { + const err17 = { + instancePath: instancePath + "/value", + schemaPath: "#/properties/value/anyOf/5/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + var _valid0 = _errs29 === errors; + valid2 = valid2 || _valid0; + if (!valid2) { + const err18 = { + instancePath: instancePath + "/value", + schemaPath: "#/properties/value/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } else { + errors = _errs8; + if (vErrors !== null) { + if (_errs8) { + vErrors.length = _errs8; + } else { + vErrors = null; + } + } } } } else { - const err10 = { + const err19 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -35578,38 +42422,24 @@ function validate347( message: "must be object", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err19]; } else { - vErrors.push(err10); + vErrors.push(err19); } errors++; } - validate347.errors = vErrors; + validate388.errors = vErrors; return errors === 0; } -validate347.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema239 = { - additionalProperties: false, - properties: { - cron: { default: null, title: "Cron", type: "null" }, - depends_on: { items: { type: "string" }, maxItems: 0, title: "Depends On", type: "array" }, - event: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Event" }, - kind: { const: "manual", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - }, - required: ["kind"], - title: "ManualTrigger", - type: "object", -}; +validate388.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate350( +function validate387( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate350.evaluated; + const evaluated0 = validate387.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -35617,13 +42447,13 @@ function validate350( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { + if (data.conditions === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", + params: { missingProperty: "conditions" }, + message: "must have required property '" + "conditions" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -35633,13 +42463,7 @@ function validate350( errors++; } for (const key0 in data) { - if (!( - key0 === "cron" || - key0 === "depends_on" || - key0 === "event" || - key0 === "kind" || - key0 === "metadata" - )) { + if (!(key0 === "conditions" || key0 === "logic")) { const err1 = { instancePath, schemaPath: "#/additionalProperties", @@ -35655,144 +42479,173 @@ function validate350( errors++; } } - if (data.cron !== undefined) { - if (data.cron !== null) { - const err2 = { - instancePath: instancePath + "/cron", - schemaPath: "#/properties/cron/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - } - if (data.depends_on !== undefined) { - let data1 = data.depends_on; - if (Array.isArray(data1)) { - if (data1.length > 0) { - const err3 = { - instancePath: instancePath + "/depends_on", - schemaPath: "#/properties/depends_on/maxItems", - keyword: "maxItems", - params: { limit: 0 }, - message: "must NOT have more than 0 items", + if (data.conditions !== undefined) { + let data0 = data.conditions; + if (Array.isArray(data0)) { + if (data0.length < 1) { + const err2 = { + instancePath: instancePath + "/conditions", + schemaPath: "#/properties/conditions/minItems", + keyword: "minItems", + params: { limit: 1 }, + message: "must NOT have fewer than 1 items", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err2]; } else { - vErrors.push(err3); + vErrors.push(err2); } errors++; } - const len0 = data1.length; + const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { - if (typeof data1[i0] !== "string") { - const err4 = { - instancePath: instancePath + "/depends_on/" + i0, - schemaPath: "#/properties/depends_on/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; + if ( + !validate388(data0[i0], { + instancePath: instancePath + "/conditions/" + i0, + parentData: data0, + parentDataProperty: i0, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate388.errors : vErrors.concat(validate388.errors); + errors = vErrors.length; } } } else { - const err5 = { - instancePath: instancePath + "/depends_on", - schemaPath: "#/properties/depends_on/type", + const err3 = { + instancePath: instancePath + "/conditions", + schemaPath: "#/properties/conditions/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err3]; } else { - vErrors.push(err5); + vErrors.push(err3); } errors++; } } - if (data.event !== undefined) { - let data3 = data.event; - const _errs9 = errors; - let valid3 = false; - const _errs10 = errors; - if (typeof data3 !== "string") { - const err6 = { - instancePath: instancePath + "/event", - schemaPath: "#/properties/event/anyOf/0/type", + if (data.logic !== undefined) { + let data2 = data.logic; + if (typeof data2 !== "string") { + const err4 = { + instancePath: instancePath + "/logic", + schemaPath: "#/$defs/MatchLogic/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err4]; } else { - vErrors.push(err6); + vErrors.push(err4); } errors++; } - var _valid0 = _errs10 === errors; - valid3 = valid3 || _valid0; - const _errs12 = errors; - if (data3 !== null) { - const err7 = { - instancePath: instancePath + "/event", - schemaPath: "#/properties/event/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + if (!(data2 === "all" || data2 === "any")) { + const err5 = { + instancePath: instancePath + "/logic", + schemaPath: "#/$defs/MatchLogic/enum", + keyword: "enum", + params: { allowedValues: schema276.enum }, + message: "must be equal to one of the allowed values", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err5]; } else { - vErrors.push(err7); + vErrors.push(err5); } errors++; } - var _valid0 = _errs12 === errors; - valid3 = valid3 || _valid0; - if (!valid3) { - const err8 = { - instancePath: instancePath + "/event", - schemaPath: "#/properties/event/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + } + } else { + const err6 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + validate387.errors = vErrors; + return errors === 0; +} +validate387.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate385( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate385.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.params === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "params" }, + message: "must have required property '" + "params" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "kind" || key0 === "metadata" || key0 === "params")) { + const err2 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err2]; } else { - vErrors.push(err8); + vErrors.push(err2); } errors++; - } else { - errors = _errs9; - if (vErrors !== null) { - if (_errs9) { - vErrors.length = _errs9; - } else { - vErrors = null; - } - } } } if (data.kind !== undefined) { - let data4 = data.kind; - if (typeof data4 !== "string") { - const err9 = { + let data0 = data.kind; + if (typeof data0 !== "string") { + const err3 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/type", keyword: "type", @@ -35800,31 +42653,31 @@ function validate350( message: "must be string", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err3]; } else { - vErrors.push(err9); + vErrors.push(err3); } errors++; } - if ("manual" !== data4) { - const err10 = { + if ("filter_rows" !== data0) { + const err4 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/const", keyword: "const", - params: { allowedValue: "manual" }, + params: { allowedValue: "filter_rows" }, message: "must be equal to constant", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err4]; } else { - vErrors.push(err10); + vErrors.push(err4); } errors++; } } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -35832,12 +42685,26 @@ function validate350( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.params !== undefined) { + if ( + !validate387(data.params, { + instancePath: instancePath + "/params", + parentData: data, + parentDataProperty: "params", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate387.errors : vErrors.concat(validate387.errors); errors = vErrors.length; } } } else { - const err11 = { + const err5 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -35845,24 +42712,24 @@ function validate350( message: "must be object", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err5]; } else { - vErrors.push(err11); + vErrors.push(err5); } errors++; } - validate350.errors = vErrors; + validate385.errors = vErrors; return errors === 0; } -validate350.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate385.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate343( +function validate375( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate343.evaluated; + const evaluated0 = validate375.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -35873,9 +42740,9 @@ function validate343( let valid0 = false; const _errs1 = errors; if ( - !validate344(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate376(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate344.errors : vErrors.concat(validate344.errors); + vErrors = vErrors === null ? validate376.errors : vErrors.concat(validate376.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -35885,9 +42752,9 @@ function validate343( } const _errs2 = errors; if ( - !validate347(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate379(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate347.errors : vErrors.concat(validate347.errors); + vErrors = vErrors === null ? validate379.errors : vErrors.concat(validate379.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -35899,9 +42766,9 @@ function validate343( } const _errs3 = errors; if ( - !validate350(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate382(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate350.errors : vErrors.concat(validate350.errors); + vErrors = vErrors === null ? validate382.errors : vErrors.concat(validate382.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -35911,6 +42778,20 @@ function validate343( props0 = true; } } + const _errs4 = errors; + if ( + !validate385(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + ) { + vErrors = vErrors === null ? validate385.errors : vErrors.concat(validate385.errors); + errors = vErrors.length; + } + var _valid0 = _errs4 === errors; + valid0 = valid0 || _valid0; + if (_valid0) { + if (props0 !== true) { + props0 = true; + } + } if (!valid0) { const err0 = { instancePath, @@ -35935,37 +42816,19 @@ function validate343( } } } - validate343.errors = vErrors; + validate375.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate343.evaluated = { dynamicProps: true, dynamicItems: false }; - -const schema240 = { - additionalProperties: false, - properties: { - color: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Color" }, - icon: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Icon" }, - position: { anyOf: [{ $ref: "#/$defs/PositionDocument" }, { type: "null" }], default: null }, - }, - title: "NodeVisualDocument", - type: "object", -}; -const schema241 = { - additionalProperties: false, - properties: { x: { title: "X", type: "number" }, y: { title: "Y", type: "number" } }, - required: ["x", "y"], - title: "PositionDocument", - type: "object", -}; +validate375.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate354( +function validate372( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate354.evaluated; + const evaluated0 = validate372.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -35973,304 +42836,104 @@ function validate354( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - for (const key0 in data) { - if (!(key0 === "color" || key0 === "icon" || key0 === "position")) { - const err0 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - } - if (data.color !== undefined) { - let data0 = data.color; - const _errs3 = errors; - let valid1 = false; + if (data.join !== undefined) { + let data1 = data.join; const _errs4 = errors; - if (typeof data0 !== "string") { - const err1 = { - instancePath: instancePath + "/color", - schemaPath: "#/properties/color/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; + let valid3 = false; + const _errs5 = errors; + if ( + !validate373(data1, { + instancePath: instancePath + "/join", + parentData: data, + parentDataProperty: "join", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate373.errors : vErrors.concat(validate373.errors); + errors = vErrors.length; } - var _valid0 = _errs4 === errors; - valid1 = valid1 || _valid0; + var _valid0 = _errs5 === errors; + valid3 = valid3 || _valid0; const _errs6 = errors; - if (data0 !== null) { - const err2 = { - instancePath: instancePath + "/color", - schemaPath: "#/properties/color/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - var _valid0 = _errs6 === errors; - valid1 = valid1 || _valid0; - if (!valid1) { - const err3 = { - instancePath: instancePath + "/color", - schemaPath: "#/properties/color/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } else { - errors = _errs3; - if (vErrors !== null) { - if (_errs3) { - vErrors.length = _errs3; - } else { - vErrors = null; - } - } - } - } - if (data.icon !== undefined) { - let data1 = data.icon; - const _errs9 = errors; - let valid2 = false; - const _errs10 = errors; - if (typeof data1 !== "string") { - const err4 = { - instancePath: instancePath + "/icon", - schemaPath: "#/properties/icon/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - var _valid1 = _errs10 === errors; - valid2 = valid2 || _valid1; - const _errs12 = errors; if (data1 !== null) { - const err5 = { - instancePath: instancePath + "/icon", - schemaPath: "#/properties/icon/anyOf/1/type", + const err0 = { + instancePath: instancePath + "/join", + schemaPath: "#/properties/join/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err0]; } else { - vErrors.push(err5); + vErrors.push(err0); } errors++; } - var _valid1 = _errs12 === errors; - valid2 = valid2 || _valid1; - if (!valid2) { - const err6 = { - instancePath: instancePath + "/icon", - schemaPath: "#/properties/icon/anyOf", + var _valid0 = _errs6 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err1 = { + instancePath: instancePath + "/join", + schemaPath: "#/properties/join/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err1]; } else { - vErrors.push(err6); + vErrors.push(err1); } errors++; } else { - errors = _errs9; + errors = _errs4; if (vErrors !== null) { - if (_errs9) { - vErrors.length = _errs9; + if (_errs4) { + vErrors.length = _errs4; } else { vErrors = null; } } } } - if (data.position !== undefined) { - let data2 = data.position; - const _errs15 = errors; - let valid3 = false; - const _errs16 = errors; - if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { - if (data2.x === undefined) { - const err7 = { - instancePath: instancePath + "/position", - schemaPath: "#/$defs/PositionDocument/required", - keyword: "required", - params: { missingProperty: "x" }, - message: "must have required property '" + "x" + "'", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - if (data2.y === undefined) { - const err8 = { - instancePath: instancePath + "/position", - schemaPath: "#/$defs/PositionDocument/required", - keyword: "required", - params: { missingProperty: "y" }, - message: "must have required property '" + "y" + "'", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - for (const key1 in data2) { - if (!(key1 === "x" || key1 === "y")) { - const err9 = { - instancePath: instancePath + "/position", - schemaPath: "#/$defs/PositionDocument/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } - if (data2.x !== undefined) { - let data3 = data2.x; - if (!(typeof data3 == "number" && isFinite(data3))) { - const err10 = { - instancePath: instancePath + "/position/x", - schemaPath: "#/$defs/PositionDocument/properties/x/type", - keyword: "type", - params: { type: "number" }, - message: "must be number", - }; - if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - } - if (data2.y !== undefined) { - let data4 = data2.y; - if (!(typeof data4 == "number" && isFinite(data4))) { - const err11 = { - instancePath: instancePath + "/position/y", - schemaPath: "#/$defs/PositionDocument/properties/y/type", - keyword: "type", - params: { type: "number" }, - message: "must be number", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - } - } else { - const err12 = { - instancePath: instancePath + "/position", - schemaPath: "#/$defs/PositionDocument/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; - } - var _valid2 = _errs16 === errors; - valid3 = valid3 || _valid2; - const _errs24 = errors; - if (data2 !== null) { - const err13 = { - instancePath: instancePath + "/position", - schemaPath: "#/properties/position/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err13]; - } else { - vErrors.push(err13); - } - errors++; - } - var _valid2 = _errs24 === errors; - valid3 = valid3 || _valid2; - if (!valid3) { - const err14 = { - instancePath: instancePath + "/position", - schemaPath: "#/properties/position/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + if (data.operations !== undefined) { + let data2 = data.operations; + if (Array.isArray(data2)) { + const len0 = data2.length; + for (let i0 = 0; i0 < len0; i0++) { + if ( + !validate375(data2[i0], { + instancePath: instancePath + "/operations/" + i0, + parentData: data2, + parentDataProperty: i0, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate375.errors : vErrors.concat(validate375.errors); + errors = vErrors.length; + } + } + } else { + const err2 = { + instancePath: instancePath + "/operations", + schemaPath: "#/properties/operations/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err14]; + vErrors = [err2]; } else { - vErrors.push(err14); + vErrors.push(err2); } errors++; - } else { - errors = _errs15; - if (vErrors !== null) { - if (_errs15) { - vErrors.length = _errs15; - } else { - vErrors = null; - } - } } } } else { - const err15 = { + const err3 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -36278,24 +42941,24 @@ function validate354( message: "must be object", }; if (vErrors === null) { - vErrors = [err15]; + vErrors = [err3]; } else { - vErrors.push(err15); + vErrors.push(err3); } errors++; } - validate354.errors = vErrors; + validate372.errors = vErrors; return errors === 0; } -validate354.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate372.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate315( +function validate371( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate315.evaluated; + const evaluated0 = validate371.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -36391,7 +43054,7 @@ function validate315( errors++; } for (const key0 in data) { - if (!func1.call(schema219.properties, key0)) { + if (!func1.call(schema259.properties, key0)) { const err5 = { instancePath, schemaPath: "#/additionalProperties", @@ -36409,7 +43072,7 @@ function validate315( } if (data.config !== undefined) { if ( - !validate316(data.config, { + !validate372(data.config, { instancePath: instancePath + "/config", parentData: data, parentDataProperty: "config", @@ -36417,7 +43080,7 @@ function validate315( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate316.errors : vErrors.concat(validate316.errors); + vErrors = vErrors === null ? validate372.errors : vErrors.concat(validate372.errors); errors = vErrors.length; } } @@ -36427,7 +43090,7 @@ function validate315( let valid2 = false; const _errs7 = errors; if ( - !validate321(data1, { + !validate335(data1, { instancePath: instancePath + "/cursor", parentData: data, parentDataProperty: "cursor", @@ -36435,7 +43098,7 @@ function validate315( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate321.errors : vErrors.concat(validate321.errors); + vErrors = vErrors === null ? validate335.errors : vErrors.concat(validate335.errors); errors = vErrors.length; } var _valid0 = _errs7 === errors; @@ -36489,7 +43152,7 @@ function validate315( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate325(data2[i0], { + !validate339(data2[i0], { instancePath: instancePath + "/fields/" + i0, parentData: data2, parentDataProperty: i0, @@ -36497,7 +43160,7 @@ function validate315( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate325.errors : vErrors.concat(validate325.errors); + vErrors = vErrors === null ? validate339.errors : vErrors.concat(validate339.errors); errors = vErrors.length; } } @@ -36557,7 +43220,7 @@ function validate315( let valid5 = false; const _errs19 = errors; if ( - !validate316(data6, { + !validate372(data6, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -36565,7 +43228,7 @@ function validate315( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate316.errors : vErrors.concat(validate316.errors); + vErrors = vErrors === null ? validate372.errors : vErrors.concat(validate372.errors); errors = vErrors.length; } var _valid1 = _errs19 === errors; @@ -36619,7 +43282,7 @@ function validate315( let valid6 = false; const _errs25 = errors; if ( - !validate343(data7, { + !validate357(data7, { instancePath: instancePath + "/trigger", parentData: data, parentDataProperty: "trigger", @@ -36627,7 +43290,7 @@ function validate315( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate343.errors : vErrors.concat(validate343.errors); + vErrors = vErrors === null ? validate357.errors : vErrors.concat(validate357.errors); errors = vErrors.length; } var _valid2 = _errs25 === errors; @@ -36692,12 +43355,12 @@ function validate315( } errors++; } - if ("source" !== data8) { + if ("transform" !== data8) { const err16 = { instancePath: instancePath + "/type", schemaPath: "#/properties/type/const", keyword: "const", - params: { allowedValue: "source" }, + params: { allowedValue: "transform" }, message: "must be equal to constant", }; if (vErrors === null) { @@ -36714,7 +43377,7 @@ function validate315( let valid7 = false; const _errs32 = errors; if ( - !validate354(data9, { + !validate368(data9, { instancePath: instancePath + "/visual", parentData: data, parentDataProperty: "visual", @@ -36722,7 +43385,7 @@ function validate315( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate354.errors : vErrors.concat(validate354.errors); + vErrors = vErrors === null ? validate368.errors : vErrors.concat(validate368.errors); errors = vErrors.length; } var _valid3 = _errs32 === errors; @@ -36785,16 +43448,16 @@ function validate315( } errors++; } - validate315.errors = vErrors; + validate371.errors = vErrors; return errors === 0; } -validate315.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate371.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema242 = { +const schema277 = { additionalProperties: false, not: { required: ["config", "params"] }, properties: { - config: { $ref: "#/$defs/TransformNodeConfigDocument" }, + config: { $ref: "#/$defs/TargetNodeConfigDocument" }, cursor: { anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], default: null, @@ -36803,73 +43466,114 @@ const schema242 = { id: { title: "Id", type: "string" }, name: { title: "Name", type: "string" }, params: { - anyOf: [{ $ref: "#/$defs/TransformNodeConfigDocument" }, { type: "null" }], + anyOf: [{ $ref: "#/$defs/TargetNodeConfigDocument" }, { type: "null" }], default: null, deprecated: true, "x-dander-canonical-name": "config", }, trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - type: { const: "transform", title: "Type", type: "string" }, + type: { const: "target", title: "Type", type: "string" }, visual: { anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], default: null }, }, required: ["id", "type", "name"], - title: "TransformNodeDocument", + title: "TargetNodeDocument", type: "object", }; -const schema243 = { +const schema278 = { additionalProperties: { $ref: "#/$defs/JsonValue" }, properties: { - join: { anyOf: [{ $ref: "#/$defs/TransformJoinDocument" }, { type: "null" }], default: null }, - operations: { - items: { $ref: "#/$defs/OperationDocument" }, - title: "Operations", - type: "array", - }, + writer: { anyOf: [{ $ref: "#/$defs/WriterDocument" }, { type: "null" }], default: null }, }, - title: "TransformNodeConfigDocument", + title: "TargetNodeConfigDocument", type: "object", }; -const schema245 = { +const schema280 = { additionalProperties: false, properties: { - keys: { - items: { $ref: "#/$defs/ExecutableJoinKeyDocument" }, - minItems: 1, - title: "Keys", - type: "array", + clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, + cursor_field: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Cursor Field", }, - left_input: { minLength: 1, title: "Left Input", type: "string" }, - right_input: { minLength: 1, title: "Right Input", type: "string" }, - type: { $ref: "#/$defs/ExecutableJoinType" }, + destination: { $ref: "#/$defs/DestinationDocument" }, + max_batch_rows: { + default: 10000, + exclusiveMinimum: 0, + maximum: 100000, + title: "Max Batch Rows", + type: "integer", + }, + partitioning: { + anyOf: [{ $ref: "#/$defs/PartitioningDocument" }, { type: "null" }], + default: null, + }, + schema_evolution: { $ref: "#/$defs/SchemaEvolution", default: "strict" }, + transport: { + default: "load_job", + enum: ["load_job", "storage_write", "copy"], + title: "Transport", + type: "string", + }, + write_mode: { $ref: "#/$defs/WriteMode" }, }, - required: ["left_input", "right_input", "type", "keys"], - title: "TransformJoinDocument", + required: ["write_mode", "destination"], + title: "WriterDocument", type: "object", }; -const schema246 = { +const schema281 = { additionalProperties: false, properties: { - left: { minLength: 1, title: "Left", type: "string" }, - right: { minLength: 1, title: "Right", type: "string" }, + business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, + dataset: { minLength: 1, title: "Dataset", type: "string" }, + project: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Project" }, + table: { minLength: 1, title: "Table", type: "string" }, }, - required: ["left", "right"], - title: "ExecutableJoinKeyDocument", + required: ["dataset", "table"], + title: "DestinationDocument", type: "object", }; -const schema247 = { - description: "BigQuery join kinds supported by an executable transform node.", - enum: ["inner", "left", "right", "full"], - title: "ExecutableJoinType", +const schema284 = { + description: "How a writer handles declared columns absent from an existing target.", + enum: ["strict", "additive"], + title: "SchemaEvolution", + type: "string", +}; +const schema285 = { + description: "Supported load strategies.", + enum: ["scd1", "scd2", "snapshot", "incremental", "replace"], + title: "WriteMode", + type: "string", +}; +const schema282 = { + additionalProperties: false, + properties: { + field: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Field" }, + granularity: { $ref: "#/$defs/PartitioningType", default: "day" }, + require_partition_filter: { + default: false, + title: "Require Partition Filter", + type: "boolean", + }, + }, + title: "PartitioningDocument", + type: "object", +}; +const schema283 = { + description: + "The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare.\n\nA `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in\n`dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON;\nan out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately\nlimited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future\nmember (see `steering/02-engineering.md` on avoiding speculative generality).\n\nAttributes:\n HOUR: Hourly partitions.\n DAY: Daily partitions — the common case and BigQuery's default granularity.\n MONTH: Monthly partitions.\n YEAR: Yearly partitions.", + enum: ["hour", "day", "month", "year"], + title: "PartitioningType", type: "string", }; -function validate359( +function validate403( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate359.evaluated; + const evaluated0 = validate403.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -36877,13 +43581,179 @@ function validate359( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.left_input === undefined) { + for (const key0 in data) { + if (!(key0 === "field" || key0 === "granularity" || key0 === "require_partition_filter")) { + const err0 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + } + if (data.field !== undefined) { + let data0 = data.field; + const _errs3 = errors; + let valid1 = false; + const _errs4 = errors; + if (typeof data0 !== "string") { + const err1 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + var _valid0 = _errs4 === errors; + valid1 = valid1 || _valid0; + const _errs6 = errors; + if (data0 !== null) { + const err2 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + var _valid0 = _errs6 === errors; + valid1 = valid1 || _valid0; + if (!valid1) { + const err3 = { + instancePath: instancePath + "/field", + schemaPath: "#/properties/field/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } else { + errors = _errs3; + if (vErrors !== null) { + if (_errs3) { + vErrors.length = _errs3; + } else { + vErrors = null; + } + } + } + } + if (data.granularity !== undefined) { + let data1 = data.granularity; + if (typeof data1 !== "string") { + const err4 = { + instancePath: instancePath + "/granularity", + schemaPath: "#/$defs/PartitioningType/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (!(data1 === "hour" || data1 === "day" || data1 === "month" || data1 === "year")) { + const err5 = { + instancePath: instancePath + "/granularity", + schemaPath: "#/$defs/PartitioningType/enum", + keyword: "enum", + params: { allowedValues: schema283.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.require_partition_filter !== undefined) { + if (typeof data.require_partition_filter !== "boolean") { + const err6 = { + instancePath: instancePath + "/require_partition_filter", + schemaPath: "#/properties/require_partition_filter/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } + } else { + const err7 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + validate403.errors = vErrors; + return errors === 0; +} +validate403.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate402( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + let vErrors = null; + let errors = 0; + const evaluated0 = validate402.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.write_mode === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "left_input" }, - message: "must have required property '" + "left_input" + "'", + params: { missingProperty: "write_mode" }, + message: "must have required property '" + "write_mode" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -36892,13 +43762,13 @@ function validate359( } errors++; } - if (data.right_input === undefined) { + if (data.destination === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "right_input" }, - message: "must have required property '" + "right_input" + "'", + params: { missingProperty: "destination" }, + message: "must have required property '" + "destination" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -36907,44 +43777,18 @@ function validate359( } errors++; } - if (data.type === undefined) { - const err2 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "type" }, - message: "must have required property '" + "type" + "'", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - if (data.keys === undefined) { - const err3 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "keys" }, - message: "must have required property '" + "keys" + "'", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } for (const key0 in data) { if (!( - key0 === "keys" || - key0 === "left_input" || - key0 === "right_input" || - key0 === "type" + key0 === "clustering" || + key0 === "cursor_field" || + key0 === "destination" || + key0 === "max_batch_rows" || + key0 === "partitioning" || + key0 === "schema_evolution" || + key0 === "transport" || + key0 === "write_mode" )) { - const err4 = { + const err2 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -36952,138 +43796,194 @@ function validate359( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err2]; } else { - vErrors.push(err4); + vErrors.push(err2); } errors++; } } - if (data.keys !== undefined) { - let data0 = data.keys; + if (data.clustering !== undefined) { + let data0 = data.clustering; if (Array.isArray(data0)) { - if (data0.length < 1) { - const err5 = { - instancePath: instancePath + "/keys", - schemaPath: "#/properties/keys/minItems", - keyword: "minItems", - params: { limit: 1 }, - message: "must NOT have fewer than 1 items", + if (data0.length > 4) { + const err3 = { + instancePath: instancePath + "/clustering", + schemaPath: "#/properties/clustering/maxItems", + keyword: "maxItems", + params: { limit: 4 }, + message: "must NOT have more than 4 items", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + if (typeof data0[i0] !== "string") { + const err4 = { + instancePath: instancePath + "/clustering/" + i0, + schemaPath: "#/properties/clustering/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + } else { + const err5 = { + instancePath: instancePath + "/clustering", + schemaPath: "#/properties/clustering/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + if (data.cursor_field !== undefined) { + let data2 = data.cursor_field; + const _errs7 = errors; + let valid3 = false; + const _errs8 = errors; + if (typeof data2 !== "string") { + const err6 = { + instancePath: instancePath + "/cursor_field", + schemaPath: "#/properties/cursor_field/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + var _valid0 = _errs8 === errors; + valid3 = valid3 || _valid0; + const _errs10 = errors; + if (data2 !== null) { + const err7 = { + instancePath: instancePath + "/cursor_field", + schemaPath: "#/properties/cursor_field/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + var _valid0 = _errs10 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err8 = { + instancePath: instancePath + "/cursor_field", + schemaPath: "#/properties/cursor_field/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } else { + errors = _errs7; + if (vErrors !== null) { + if (_errs7) { + vErrors.length = _errs7; + } else { + vErrors = null; + } + } + } + } + if (data.destination !== undefined) { + let data3 = data.destination; + if (data3 && typeof data3 == "object" && !Array.isArray(data3)) { + if (data3.dataset === undefined) { + const err9 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/required", + keyword: "required", + params: { missingProperty: "dataset" }, + message: "must have required property '" + "dataset" + "'", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + if (data3.table === undefined) { + const err10 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/required", + keyword: "required", + params: { missingProperty: "table" }, + message: "must have required property '" + "table" + "'", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err10]; } else { - vErrors.push(err5); + vErrors.push(err10); } errors++; } - const len0 = data0.length; - for (let i0 = 0; i0 < len0; i0++) { - let data1 = data0[i0]; - if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { - if (data1.left === undefined) { - const err6 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/ExecutableJoinKeyDocument/required", - keyword: "required", - params: { missingProperty: "left" }, - message: "must have required property '" + "left" + "'", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - if (data1.right === undefined) { - const err7 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/ExecutableJoinKeyDocument/required", - keyword: "required", - params: { missingProperty: "right" }, - message: "must have required property '" + "right" + "'", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - for (const key1 in data1) { - if (!(key1 === "left" || key1 === "right")) { - const err8 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/ExecutableJoinKeyDocument/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } - if (data1.left !== undefined) { - let data2 = data1.left; - if (typeof data2 === "string") { - if (func2(data2) < 1) { - const err9 = { - instancePath: instancePath + "/keys/" + i0 + "/left", - schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/left/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } else { - const err10 = { - instancePath: instancePath + "/keys/" + i0 + "/left", - schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/left/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } + for (const key1 in data3) { + if (!( + key1 === "business_key" || + key1 === "dataset" || + key1 === "project" || + key1 === "table" + )) { + const err11 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); } - if (data1.right !== undefined) { - let data3 = data1.right; - if (typeof data3 === "string") { - if (func2(data3) < 1) { - const err11 = { - instancePath: instancePath + "/keys/" + i0 + "/right", - schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/right/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - } else { + errors++; + } + } + if (data3.business_key !== undefined) { + let data4 = data3.business_key; + if (Array.isArray(data4)) { + const len1 = data4.length; + for (let i1 = 0; i1 < len1; i1++) { + if (typeof data4[i1] !== "string") { const err12 = { - instancePath: instancePath + "/keys/" + i0 + "/right", - schemaPath: "#/$defs/ExecutableJoinKeyDocument/properties/right/type", + instancePath: instancePath + "/destination/business_key/" + i1, + schemaPath: "#/$defs/DestinationDocument/properties/business_key/items/type", keyword: "type", params: { type: "string" }, message: "must be string", @@ -37098,11 +43998,11 @@ function validate359( } } else { const err13 = { - instancePath: instancePath + "/keys/" + i0, - schemaPath: "#/$defs/ExecutableJoinKeyDocument/type", + instancePath: instancePath + "/destination/business_key", + schemaPath: "#/$defs/DestinationDocument/properties/business_key/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { vErrors = [err13]; @@ -37112,418 +44012,374 @@ function validate359( errors++; } } + if (data3.dataset !== undefined) { + let data6 = data3.dataset; + if (typeof data6 === "string") { + if (func3(data6) < 1) { + const err14 = { + instancePath: instancePath + "/destination/dataset", + schemaPath: "#/$defs/DestinationDocument/properties/dataset/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } + } else { + const err15 = { + instancePath: instancePath + "/destination/dataset", + schemaPath: "#/$defs/DestinationDocument/properties/dataset/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } + } + if (data3.project !== undefined) { + let data7 = data3.project; + const _errs23 = errors; + let valid8 = false; + const _errs24 = errors; + if (typeof data7 !== "string") { + const err16 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + var _valid1 = _errs24 === errors; + valid8 = valid8 || _valid1; + const _errs26 = errors; + if (data7 !== null) { + const err17 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + var _valid1 = _errs26 === errors; + valid8 = valid8 || _valid1; + if (!valid8) { + const err18 = { + instancePath: instancePath + "/destination/project", + schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } else { + errors = _errs23; + if (vErrors !== null) { + if (_errs23) { + vErrors.length = _errs23; + } else { + vErrors = null; + } + } + } + } + if (data3.table !== undefined) { + let data8 = data3.table; + if (typeof data8 === "string") { + if (func3(data8) < 1) { + const err19 = { + instancePath: instancePath + "/destination/table", + schemaPath: "#/$defs/DestinationDocument/properties/table/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } + } else { + const err20 = { + instancePath: instancePath + "/destination/table", + schemaPath: "#/$defs/DestinationDocument/properties/table/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); + } + errors++; + } + } } else { - const err14 = { - instancePath: instancePath + "/keys", - schemaPath: "#/properties/keys/type", + const err21 = { + instancePath: instancePath + "/destination", + schemaPath: "#/$defs/DestinationDocument/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err14]; + vErrors = [err21]; } else { - vErrors.push(err14); + vErrors.push(err21); } errors++; } } - if (data.left_input !== undefined) { - let data4 = data.left_input; - if (typeof data4 === "string") { - if (func2(data4) < 1) { - const err15 = { - instancePath: instancePath + "/left_input", - schemaPath: "#/properties/left_input/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err15]; - } else { - vErrors.push(err15); - } - errors++; - } - } else { - const err16 = { - instancePath: instancePath + "/left_input", - schemaPath: "#/properties/left_input/type", + if (data.max_batch_rows !== undefined) { + let data9 = data.max_batch_rows; + if (!(typeof data9 == "number" && !(data9 % 1) && !isNaN(data9) && isFinite(data9))) { + const err22 = { + instancePath: instancePath + "/max_batch_rows", + schemaPath: "#/properties/max_batch_rows/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { - vErrors = [err16]; + vErrors = [err22]; } else { - vErrors.push(err16); + vErrors.push(err22); } errors++; } - } - if (data.right_input !== undefined) { - let data5 = data.right_input; - if (typeof data5 === "string") { - if (func2(data5) < 1) { - const err17 = { - instancePath: instancePath + "/right_input", - schemaPath: "#/properties/right_input/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", + if (typeof data9 == "number" && isFinite(data9)) { + if (data9 > 100000 || isNaN(data9)) { + const err23 = { + instancePath: instancePath + "/max_batch_rows", + schemaPath: "#/properties/max_batch_rows/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 100000 }, + message: "must be <= 100000", }; if (vErrors === null) { - vErrors = [err17]; + vErrors = [err23]; } else { - vErrors.push(err17); + vErrors.push(err23); } errors++; } - } else { - const err18 = { - instancePath: instancePath + "/right_input", - schemaPath: "#/properties/right_input/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err18]; - } else { - vErrors.push(err18); + if (data9 <= 0 || isNaN(data9)) { + const err24 = { + instancePath: instancePath + "/max_batch_rows", + schemaPath: "#/properties/max_batch_rows/exclusiveMinimum", + keyword: "exclusiveMinimum", + params: { comparison: ">", limit: 0 }, + message: "must be > 0", + }; + if (vErrors === null) { + vErrors = [err24]; + } else { + vErrors.push(err24); + } + errors++; } - errors++; } } - if (data.type !== undefined) { - let data6 = data.type; - if (typeof data6 !== "string") { - const err19 = { - instancePath: instancePath + "/type", - schemaPath: "#/$defs/ExecutableJoinType/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err19]; - } else { - vErrors.push(err19); - } - errors++; + if (data.partitioning !== undefined) { + let data10 = data.partitioning; + const _errs33 = errors; + let valid9 = false; + const _errs34 = errors; + if ( + !validate403(data10, { + instancePath: instancePath + "/partitioning", + parentData: data, + parentDataProperty: "partitioning", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate403.errors : vErrors.concat(validate403.errors); + errors = vErrors.length; } - if (!(data6 === "inner" || data6 === "left" || data6 === "right" || data6 === "full")) { - const err20 = { - instancePath: instancePath + "/type", - schemaPath: "#/$defs/ExecutableJoinType/enum", - keyword: "enum", - params: { allowedValues: schema247.enum }, - message: "must be equal to one of the allowed values", + var _valid2 = _errs34 === errors; + valid9 = valid9 || _valid2; + const _errs35 = errors; + if (data10 !== null) { + const err25 = { + instancePath: instancePath + "/partitioning", + schemaPath: "#/properties/partitioning/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err20]; + vErrors = [err25]; } else { - vErrors.push(err20); + vErrors.push(err25); } errors++; } - } - } else { - const err21 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err21]; - } else { - vErrors.push(err21); - } - errors++; - } - validate359.errors = vErrors; - return errors === 0; -} -validate359.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema248 = { - anyOf: [ - { $ref: "#/$defs/TruncateStringOperation" }, - { $ref: "#/$defs/TrimWhitespaceOperation" }, - { $ref: "#/$defs/DefaultValueOperation" }, - { $ref: "#/$defs/FilterRowsOperation" }, - ], -}; -const schema249 = { - additionalProperties: false, - properties: { - kind: { const: "truncate_string", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/TruncateStringParamsDocument" }, - }, - required: ["kind", "params"], - title: "TruncateStringOperation", - type: "object", -}; -const schema250 = { - additionalProperties: false, - properties: { - field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, - max_length: { minimum: 0, title: "Max Length", type: "integer" }, - }, - required: ["field", "max_length"], - title: "TruncateStringParamsDocument", - type: "object", -}; - -function validate362( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate362.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - if (data.params === undefined) { - const err1 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "params" }, - message: "must have required property '" + "params" + "'", - }; - if (vErrors === null) { - vErrors = [err1]; + var _valid2 = _errs35 === errors; + valid9 = valid9 || _valid2; + if (!valid9) { + const err26 = { + instancePath: instancePath + "/partitioning", + schemaPath: "#/properties/partitioning/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err26]; + } else { + vErrors.push(err26); + } + errors++; } else { - vErrors.push(err1); + errors = _errs33; + if (vErrors !== null) { + if (_errs33) { + vErrors.length = _errs33; + } else { + vErrors = null; + } + } } - errors++; } - for (const key0 in data) { - if (!(key0 === "kind" || key0 === "metadata" || key0 === "params")) { - const err2 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + if (data.schema_evolution !== undefined) { + let data11 = data.schema_evolution; + if (typeof data11 !== "string") { + const err27 = { + instancePath: instancePath + "/schema_evolution", + schemaPath: "#/$defs/SchemaEvolution/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err27]; } else { - vErrors.push(err2); + vErrors.push(err27); + } + errors++; + } + if (!(data11 === "strict" || data11 === "additive")) { + const err28 = { + instancePath: instancePath + "/schema_evolution", + schemaPath: "#/$defs/SchemaEvolution/enum", + keyword: "enum", + params: { allowedValues: schema284.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err28]; + } else { + vErrors.push(err28); } errors++; } } - if (data.kind !== undefined) { - let data0 = data.kind; - if (typeof data0 !== "string") { - const err3 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + if (data.transport !== undefined) { + let data12 = data.transport; + if (typeof data12 !== "string") { + const err29 = { + instancePath: instancePath + "/transport", + schemaPath: "#/properties/transport/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err29]; } else { - vErrors.push(err3); + vErrors.push(err29); } errors++; } - if ("truncate_string" !== data0) { - const err4 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "truncate_string" }, - message: "must be equal to constant", + if (!(data12 === "load_job" || data12 === "storage_write" || data12 === "copy")) { + const err30 = { + instancePath: instancePath + "/transport", + schemaPath: "#/properties/transport/enum", + keyword: "enum", + params: { allowedValues: schema280.properties.transport.enum }, + message: "must be equal to one of the allowed values", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err30]; } else { - vErrors.push(err4); + vErrors.push(err30); } errors++; } } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.params !== undefined) { - let data2 = data.params; - if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { - if (data2.field === undefined) { - const err5 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/TruncateStringParamsDocument/required", - keyword: "required", - params: { missingProperty: "field" }, - message: "must have required property '" + "field" + "'", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - if (data2.max_length === undefined) { - const err6 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/TruncateStringParamsDocument/required", - keyword: "required", - params: { missingProperty: "max_length" }, - message: "must have required property '" + "max_length" + "'", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - for (const key1 in data2) { - if (!(key1 === "field" || key1 === "max_length")) { - const err7 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/TruncateStringParamsDocument/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - } - if (data2.field !== undefined) { - let data3 = data2.field; - if (typeof data3 === "string") { - if (!pattern8.test(data3)) { - const err8 = { - instancePath: instancePath + "/params/field", - schemaPath: "#/$defs/TruncateStringParamsDocument/properties/field/pattern", - keyword: "pattern", - params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" }, - message: 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*$" + '"', - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } else { - const err9 = { - instancePath: instancePath + "/params/field", - schemaPath: "#/$defs/TruncateStringParamsDocument/properties/field/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } - if (data2.max_length !== undefined) { - let data4 = data2.max_length; - if (!(typeof data4 == "number" && !(data4 % 1) && !isNaN(data4) && isFinite(data4))) { - const err10 = { - instancePath: instancePath + "/params/max_length", - schemaPath: "#/$defs/TruncateStringParamsDocument/properties/max_length/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - if (typeof data4 == "number" && isFinite(data4)) { - if (data4 < 0 || isNaN(data4)) { - const err11 = { - instancePath: instancePath + "/params/max_length", - schemaPath: "#/$defs/TruncateStringParamsDocument/properties/max_length/minimum", - keyword: "minimum", - params: { comparison: ">=", limit: 0 }, - message: "must be >= 0", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - } - } - } else { - const err12 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/TruncateStringParamsDocument/type", + if (data.write_mode !== undefined) { + let data13 = data.write_mode; + if (typeof data13 !== "string") { + const err31 = { + instancePath: instancePath + "/write_mode", + schemaPath: "#/$defs/WriteMode/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err12]; + vErrors = [err31]; } else { - vErrors.push(err12); + vErrors.push(err31); + } + errors++; + } + if (!( + data13 === "scd1" || + data13 === "scd2" || + data13 === "snapshot" || + data13 === "incremental" || + data13 === "replace" + )) { + const err32 = { + instancePath: instancePath + "/write_mode", + schemaPath: "#/$defs/WriteMode/enum", + keyword: "enum", + params: { allowedValues: schema285.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err32]; + } else { + vErrors.push(err32); } errors++; } } } else { - const err13 = { + const err33 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -37531,43 +44387,24 @@ function validate362( message: "must be object", }; if (vErrors === null) { - vErrors = [err13]; + vErrors = [err33]; } else { - vErrors.push(err13); + vErrors.push(err33); } errors++; } - validate362.errors = vErrors; + validate402.errors = vErrors; return errors === 0; } -validate362.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema251 = { - additionalProperties: false, - properties: { - kind: { const: "trim_whitespace", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/TrimWhitespaceParamsDocument" }, - }, - required: ["kind", "params"], - title: "TrimWhitespaceOperation", - type: "object", -}; -const schema252 = { - additionalProperties: false, - properties: { field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" } }, - required: ["field"], - title: "TrimWhitespaceParamsDocument", - type: "object", -}; +validate402.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate365( +function validate401( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate365.evaluated; + const evaluated0 = validate401.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -37575,187 +44412,70 @@ function validate365( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - if (data.params === undefined) { - const err1 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "params" }, - message: "must have required property '" + "params" + "'", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } - for (const key0 in data) { - if (!(key0 === "kind" || key0 === "metadata" || key0 === "params")) { - const err2 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; + if (data.writer !== undefined) { + let data1 = data.writer; + const _errs4 = errors; + let valid3 = false; + const _errs5 = errors; + if ( + !validate402(data1, { + instancePath: instancePath + "/writer", + parentData: data, + parentDataProperty: "writer", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate402.errors : vErrors.concat(validate402.errors); + errors = vErrors.length; } - } - if (data.kind !== undefined) { - let data0 = data.kind; - if (typeof data0 !== "string") { - const err3 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + var _valid0 = _errs5 === errors; + valid3 = valid3 || _valid0; + const _errs6 = errors; + if (data1 !== null) { + const err0 = { + instancePath: instancePath + "/writer", + schemaPath: "#/properties/writer/anyOf/1/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err0]; } else { - vErrors.push(err3); + vErrors.push(err0); } errors++; } - if ("trim_whitespace" !== data0) { - const err4 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "trim_whitespace" }, - message: "must be equal to constant", + var _valid0 = _errs6 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err1 = { + instancePath: instancePath + "/writer", + schemaPath: "#/properties/writer/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err1]; } else { - vErrors.push(err4); + vErrors.push(err1); } errors++; - } - } - if (data.metadata !== undefined) { - if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", - parentData: data, - parentDataProperty: "metadata", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.params !== undefined) { - let data2 = data.params; - if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { - if (data2.field === undefined) { - const err5 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/TrimWhitespaceParamsDocument/required", - keyword: "required", - params: { missingProperty: "field" }, - message: "must have required property '" + "field" + "'", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - for (const key1 in data2) { - if (!(key1 === "field")) { - const err6 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/TrimWhitespaceParamsDocument/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - } - if (data2.field !== undefined) { - let data3 = data2.field; - if (typeof data3 === "string") { - if (!pattern8.test(data3)) { - const err7 = { - instancePath: instancePath + "/params/field", - schemaPath: "#/$defs/TrimWhitespaceParamsDocument/properties/field/pattern", - keyword: "pattern", - params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" }, - message: 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*$" + '"', - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } + } else { + errors = _errs4; + if (vErrors !== null) { + if (_errs4) { + vErrors.length = _errs4; } else { - const err8 = { - instancePath: instancePath + "/params/field", - schemaPath: "#/$defs/TrimWhitespaceParamsDocument/properties/field/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; + vErrors = null; } } - } else { - const err9 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/TrimWhitespaceParamsDocument/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; } } } else { - const err10 = { + const err2 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -37763,89 +44483,121 @@ function validate365( message: "must be object", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err2]; } else { - vErrors.push(err10); + vErrors.push(err2); } errors++; } - validate365.errors = vErrors; + validate401.errors = vErrors; return errors === 0; } -validate365.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema253 = { - additionalProperties: false, - properties: { - kind: { const: "default_value", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/DefaultValueParamsDocument" }, - }, - required: ["kind", "params"], - title: "DefaultValueOperation", - type: "object", -}; -const schema254 = { - additionalProperties: false, - properties: { - default: { - anyOf: [{ type: "string" }, { type: "integer" }, { type: "number" }, { type: "boolean" }], - title: "Default", - }, - field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, - }, - required: ["field", "default"], - title: "DefaultValueParamsDocument", - type: "object", -}; +validate401.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate368( +function validate400( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate368.evaluated; + const evaluated0 = validate400.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } if (evaluated0.dynamicItems) { evaluated0.items = undefined; } + const _errs1 = errors; + const _errs2 = errors; if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { - const err0 = { + let missing0; + if ( + (data.config === undefined && (missing0 = "config")) || + (data.params === undefined && (missing0 = "params")) + ) { + const err0 = {}; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + } + var valid0 = _errs2 === errors; + if (valid0) { + const err1 = { + instancePath, + schemaPath: "#/not", + keyword: "not", + params: {}, + message: "must NOT be valid", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } else { + errors = _errs1; + if (vErrors !== null) { + if (_errs1) { + vErrors.length = _errs1; + } else { + vErrors = null; + } + } + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.id === undefined) { + const err2 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", + params: { missingProperty: "id" }, + message: "must have required property '" + "id" + "'", }; if (vErrors === null) { - vErrors = [err0]; + vErrors = [err2]; } else { - vErrors.push(err0); + vErrors.push(err2); } errors++; } - if (data.params === undefined) { - const err1 = { + if (data.type === undefined) { + const err3 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "params" }, - message: "must have required property '" + "params" + "'", + params: { missingProperty: "type" }, + message: "must have required property '" + "type" + "'", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err3]; } else { - vErrors.push(err1); + vErrors.push(err3); + } + errors++; + } + if (data.name === undefined) { + const err4 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); } errors++; } for (const key0 in data) { - if (!(key0 === "kind" || key0 === "metadata" || key0 === "params")) { - const err2 = { + if (!func1.call(schema277.properties, key0)) { + const err5 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -37853,252 +44605,290 @@ function validate368( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err5]; } else { - vErrors.push(err2); + vErrors.push(err5); } errors++; } } - if (data.kind !== undefined) { - let data0 = data.kind; - if (typeof data0 !== "string") { - const err3 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + if (data.config !== undefined) { + if ( + !validate401(data.config, { + instancePath: instancePath + "/config", + parentData: data, + parentDataProperty: "config", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate401.errors : vErrors.concat(validate401.errors); + errors = vErrors.length; + } + } + if (data.cursor !== undefined) { + let data1 = data.cursor; + const _errs6 = errors; + let valid2 = false; + const _errs7 = errors; + if ( + !validate335(data1, { + instancePath: instancePath + "/cursor", + parentData: data, + parentDataProperty: "cursor", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate335.errors : vErrors.concat(validate335.errors); + errors = vErrors.length; + } + var _valid0 = _errs7 === errors; + valid2 = valid2 || _valid0; + const _errs8 = errors; + if (data1 !== null) { + const err6 = { + instancePath: instancePath + "/cursor", + schemaPath: "#/properties/cursor/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + var _valid0 = _errs8 === errors; + valid2 = valid2 || _valid0; + if (!valid2) { + const err7 = { + instancePath: instancePath + "/cursor", + schemaPath: "#/properties/cursor/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } else { + errors = _errs6; + if (vErrors !== null) { + if (_errs6) { + vErrors.length = _errs6; + } else { + vErrors = null; + } + } + } + } + if (data.fields !== undefined) { + let data2 = data.fields; + if (Array.isArray(data2)) { + const len0 = data2.length; + for (let i0 = 0; i0 < len0; i0++) { + if ( + !validate339(data2[i0], { + instancePath: instancePath + "/fields/" + i0, + parentData: data2, + parentDataProperty: i0, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate339.errors : vErrors.concat(validate339.errors); + errors = vErrors.length; + } + } + } else { + const err8 = { + instancePath: instancePath + "/fields", + schemaPath: "#/properties/fields/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } + if (data.id !== undefined) { + if (typeof data.id !== "string") { + const err9 = { + instancePath: instancePath + "/id", + schemaPath: "#/properties/id/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err9]; } else { - vErrors.push(err3); + vErrors.push(err9); } errors++; } - if ("default_value" !== data0) { - const err4 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "default_value" }, - message: "must be equal to constant", + } + if (data.name !== undefined) { + if (typeof data.name !== "string") { + const err10 = { + instancePath: instancePath + "/name", + schemaPath: "#/properties/name/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err10]; } else { - vErrors.push(err4); + vErrors.push(err10); } errors++; } } - if (data.metadata !== undefined) { + if (data.params !== undefined) { + let data6 = data.params; + const _errs18 = errors; + let valid5 = false; + const _errs19 = errors; if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", + !validate401(data6, { + instancePath: instancePath + "/params", parentData: data, - parentDataProperty: "metadata", + parentDataProperty: "params", rootData, dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate401.errors : vErrors.concat(validate401.errors); errors = vErrors.length; } - } - if (data.params !== undefined) { - let data2 = data.params; - if (data2 && typeof data2 == "object" && !Array.isArray(data2)) { - if (data2.field === undefined) { - const err5 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/DefaultValueParamsDocument/required", - keyword: "required", - params: { missingProperty: "field" }, - message: "must have required property '" + "field" + "'", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; + var _valid1 = _errs19 === errors; + valid5 = valid5 || _valid1; + const _errs20 = errors; + if (data6 !== null) { + const err11 = { + instancePath: instancePath + "/params", + schemaPath: "#/properties/params/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); } - if (data2.default === undefined) { - const err6 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/DefaultValueParamsDocument/required", - keyword: "required", - params: { missingProperty: "default" }, - message: "must have required property '" + "default" + "'", - }; - if (vErrors === null) { - vErrors = [err6]; + errors++; + } + var _valid1 = _errs20 === errors; + valid5 = valid5 || _valid1; + if (!valid5) { + const err12 = { + instancePath: instancePath + "/params", + schemaPath: "#/properties/params/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } else { + errors = _errs18; + if (vErrors !== null) { + if (_errs18) { + vErrors.length = _errs18; } else { - vErrors.push(err6); + vErrors = null; } - errors++; } - for (const key1 in data2) { - if (!(key1 === "default" || key1 === "field")) { - const err7 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/DefaultValueParamsDocument/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } + } + } + if (data.trigger !== undefined) { + let data7 = data.trigger; + const _errs24 = errors; + let valid6 = false; + const _errs25 = errors; + if ( + !validate357(data7, { + instancePath: instancePath + "/trigger", + parentData: data, + parentDataProperty: "trigger", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate357.errors : vErrors.concat(validate357.errors); + errors = vErrors.length; + } + var _valid2 = _errs25 === errors; + valid6 = valid6 || _valid2; + const _errs26 = errors; + if (data7 !== null) { + const err13 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); } - if (data2.default !== undefined) { - let data3 = data2.default; - const _errs10 = errors; - let valid3 = false; - const _errs11 = errors; - if (typeof data3 !== "string") { - const err8 = { - instancePath: instancePath + "/params/default", - schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - var _valid0 = _errs11 === errors; - valid3 = valid3 || _valid0; - const _errs13 = errors; - if (!(typeof data3 == "number" && !(data3 % 1) && !isNaN(data3) && isFinite(data3))) { - const err9 = { - instancePath: instancePath + "/params/default", - schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf/1/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - var _valid0 = _errs13 === errors; - valid3 = valid3 || _valid0; - const _errs15 = errors; - if (!(typeof data3 == "number" && isFinite(data3))) { - const err10 = { - instancePath: instancePath + "/params/default", - schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf/2/type", - keyword: "type", - params: { type: "number" }, - message: "must be number", - }; - if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - var _valid0 = _errs15 === errors; - valid3 = valid3 || _valid0; - const _errs17 = errors; - if (typeof data3 !== "boolean") { - const err11 = { - instancePath: instancePath + "/params/default", - schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf/3/type", - keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - var _valid0 = _errs17 === errors; - valid3 = valid3 || _valid0; - if (!valid3) { - const err12 = { - instancePath: instancePath + "/params/default", - schemaPath: "#/$defs/DefaultValueParamsDocument/properties/default/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; - } else { - errors = _errs10; - if (vErrors !== null) { - if (_errs10) { - vErrors.length = _errs10; - } else { - vErrors = null; - } - } - } + errors++; + } + var _valid2 = _errs26 === errors; + valid6 = valid6 || _valid2; + if (!valid6) { + const err14 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); } - if (data2.field !== undefined) { - let data4 = data2.field; - if (typeof data4 === "string") { - if (!pattern8.test(data4)) { - const err13 = { - instancePath: instancePath + "/params/field", - schemaPath: "#/$defs/DefaultValueParamsDocument/properties/field/pattern", - keyword: "pattern", - params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" }, - message: 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*$" + '"', - }; - if (vErrors === null) { - vErrors = [err13]; - } else { - vErrors.push(err13); - } - errors++; - } + errors++; + } else { + errors = _errs24; + if (vErrors !== null) { + if (_errs24) { + vErrors.length = _errs24; } else { - const err14 = { - instancePath: instancePath + "/params/field", - schemaPath: "#/$defs/DefaultValueParamsDocument/properties/field/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err14]; - } else { - vErrors.push(err14); - } - errors++; + vErrors = null; } } - } else { + } + } + if (data.type !== undefined) { + let data8 = data.type; + if (typeof data8 !== "string") { const err15 = { - instancePath: instancePath + "/params", - schemaPath: "#/$defs/DefaultValueParamsDocument/type", + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { vErrors = [err15]; @@ -38107,9 +44897,86 @@ function validate368( } errors++; } + if ("target" !== data8) { + const err16 = { + instancePath: instancePath + "/type", + schemaPath: "#/properties/type/const", + keyword: "const", + params: { allowedValue: "target" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + } + if (data.visual !== undefined) { + let data9 = data.visual; + const _errs31 = errors; + let valid7 = false; + const _errs32 = errors; + if ( + !validate368(data9, { + instancePath: instancePath + "/visual", + parentData: data, + parentDataProperty: "visual", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate368.errors : vErrors.concat(validate368.errors); + errors = vErrors.length; + } + var _valid3 = _errs32 === errors; + valid7 = valid7 || _valid3; + const _errs33 = errors; + if (data9 !== null) { + const err17 = { + instancePath: instancePath + "/visual", + schemaPath: "#/properties/visual/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + var _valid3 = _errs33 === errors; + valid7 = valid7 || _valid3; + if (!valid7) { + const err18 = { + instancePath: instancePath + "/visual", + schemaPath: "#/properties/visual/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } else { + errors = _errs31; + if (vErrors !== null) { + if (_errs31) { + vErrors.length = _errs31; + } else { + vErrors = null; + } + } + } } } else { - const err16 = { + const err19 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -38117,110 +44984,67 @@ function validate368( message: "must be object", }; if (vErrors === null) { - vErrors = [err16]; + vErrors = [err19]; } else { - vErrors.push(err16); + vErrors.push(err19); } errors++; } - validate368.errors = vErrors; + validate400.errors = vErrors; return errors === 0; } -validate368.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate400.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema255 = { - additionalProperties: false, - properties: { - kind: { const: "filter_rows", title: "Kind", type: "string" }, - metadata: { $ref: "#/$defs/JsonObject" }, - params: { $ref: "#/$defs/FilterRowsParamsDocument" }, - }, - required: ["kind", "params"], - title: "FilterRowsOperation", - type: "object", -}; -const schema256 = { +const schema286 = { additionalProperties: false, + not: { required: ["config", "params"] }, properties: { - conditions: { - items: { $ref: "#/$defs/FieldConditionDocument" }, - minItems: 1, - title: "Conditions", - type: "array", + config: { $ref: "#/$defs/JsonObject" }, + cursor: { + anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], + default: null, }, - logic: { $ref: "#/$defs/MatchLogic", default: "all" }, - }, - required: ["conditions"], - title: "FilterRowsParamsDocument", - type: "object", -}; -const schema259 = { - description: "How a filter's flat condition list combines.", - enum: ["all", "any"], - title: "MatchLogic", - type: "string", -}; -const schema257 = { - additionalProperties: false, - properties: { - field: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$", title: "Field", type: "string" }, - op: { $ref: "#/$defs/ComparisonOperator" }, - value: { - anyOf: [ - { type: "string" }, - { type: "integer" }, - { type: "number" }, - { type: "boolean" }, - { - items: { - anyOf: [ - { type: "string" }, - { type: "integer" }, - { type: "number" }, - { type: "boolean" }, - ], - }, - type: "array", - }, - { type: "null" }, - ], + fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, + id: { title: "Id", type: "string" }, + name: { title: "Name", type: "string" }, + params: { + anyOf: [{ $ref: "#/$defs/JsonObject" }, { type: "null" }], default: null, - title: "Value", + deprecated: true, + "x-dander-canonical-name": "config", }, + trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, + type: { $ref: "#/$defs/ExtensionNodeType" }, + visual: { anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], default: null }, }, - required: ["field", "op"], - title: "FieldConditionDocument", + required: ["id", "type", "name"], + title: "ExtensionNodeDocument", type: "object", }; -const schema258 = { - description: "Closed comparison grammar for ``filter_rows``.", - enum: ["eq", "ne", "gt", "gte", "lt", "lte", "in", "not_in", "is_null", "is_not_null"], - title: "ComparisonOperator", - type: "string", -}; +const schema287 = { not: { enum: ["source", "transform", "target"] }, type: "string" }; -function validate374( +function validate413( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate374.evaluated; + const evaluated0 = validate413.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } if (evaluated0.dynamicItems) { evaluated0.items = undefined; } + const _errs1 = errors; + const _errs2 = errors; if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.field === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "field" }, - message: "must have required property '" + "field" + "'", - }; + let missing0; + if ( + (data.config === undefined && (missing0 = "config")) || + (data.params === undefined && (missing0 = "params")) + ) { + const err0 = {}; if (vErrors === null) { vErrors = [err0]; } else { @@ -38228,648 +45052,481 @@ function validate374( } errors++; } - if (data.op === undefined) { - const err1 = { + } + var valid0 = _errs2 === errors; + if (valid0) { + const err1 = { + instancePath, + schemaPath: "#/not", + keyword: "not", + params: {}, + message: "must NOT be valid", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } else { + errors = _errs1; + if (vErrors !== null) { + if (_errs1) { + vErrors.length = _errs1; + } else { + vErrors = null; + } + } + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.id === undefined) { + const err2 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "op" }, - message: "must have required property '" + "op" + "'", + params: { missingProperty: "id" }, + message: "must have required property '" + "id" + "'", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err2]; } else { - vErrors.push(err1); + vErrors.push(err2); } errors++; } - for (const key0 in data) { - if (!(key0 === "field" || key0 === "op" || key0 === "value")) { - const err2 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - } - if (data.field !== undefined) { - let data0 = data.field; - if (typeof data0 === "string") { - if (!pattern8.test(data0)) { - const err3 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/pattern", - keyword: "pattern", - params: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" }, - message: 'must match pattern "' + "^[A-Za-z_][A-Za-z0-9_]*$" + '"', - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } + if (data.type === undefined) { + const err3 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "type" }, + message: "must have required property '" + "type" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; } else { - const err4 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - } - if (data.op !== undefined) { - let data1 = data.op; - if (typeof data1 !== "string") { - const err5 = { - instancePath: instancePath + "/op", - schemaPath: "#/$defs/ComparisonOperator/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - if (!( - data1 === "eq" || - data1 === "ne" || - data1 === "gt" || - data1 === "gte" || - data1 === "lt" || - data1 === "lte" || - data1 === "in" || - data1 === "not_in" || - data1 === "is_null" || - data1 === "is_not_null" - )) { - const err6 = { - instancePath: instancePath + "/op", - schemaPath: "#/$defs/ComparisonOperator/enum", - keyword: "enum", - params: { allowedValues: schema258.enum }, - message: "must be equal to one of the allowed values", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; + vErrors.push(err3); } + errors++; } - if (data.value !== undefined) { - let data2 = data.value; - const _errs8 = errors; - let valid2 = false; - const _errs9 = errors; - if (typeof data2 !== "string") { - const err7 = { - instancePath: instancePath + "/value", - schemaPath: "#/properties/value/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - var _valid0 = _errs9 === errors; - valid2 = valid2 || _valid0; - const _errs11 = errors; - if (!(typeof data2 == "number" && !(data2 % 1) && !isNaN(data2) && isFinite(data2))) { - const err8 = { - instancePath: instancePath + "/value", - schemaPath: "#/properties/value/anyOf/1/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - var _valid0 = _errs11 === errors; - valid2 = valid2 || _valid0; - const _errs13 = errors; - if (!(typeof data2 == "number" && isFinite(data2))) { - const err9 = { - instancePath: instancePath + "/value", - schemaPath: "#/properties/value/anyOf/2/type", - keyword: "type", - params: { type: "number" }, - message: "must be number", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - var _valid0 = _errs13 === errors; - valid2 = valid2 || _valid0; - const _errs15 = errors; - if (typeof data2 !== "boolean") { - const err10 = { - instancePath: instancePath + "/value", - schemaPath: "#/properties/value/anyOf/3/type", - keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", - }; - if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - var _valid0 = _errs15 === errors; - valid2 = valid2 || _valid0; - const _errs17 = errors; - if (Array.isArray(data2)) { - const len0 = data2.length; - for (let i0 = 0; i0 < len0; i0++) { - let data3 = data2[i0]; - const _errs20 = errors; - let valid5 = false; - const _errs21 = errors; - if (typeof data3 !== "string") { - const err11 = { - instancePath: instancePath + "/value/" + i0, - schemaPath: "#/properties/value/anyOf/4/items/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - var _valid1 = _errs21 === errors; - valid5 = valid5 || _valid1; - const _errs23 = errors; - if (!(typeof data3 == "number" && !(data3 % 1) && !isNaN(data3) && isFinite(data3))) { - const err12 = { - instancePath: instancePath + "/value/" + i0, - schemaPath: "#/properties/value/anyOf/4/items/anyOf/1/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; - } - var _valid1 = _errs23 === errors; - valid5 = valid5 || _valid1; - const _errs25 = errors; - if (!(typeof data3 == "number" && isFinite(data3))) { - const err13 = { - instancePath: instancePath + "/value/" + i0, - schemaPath: "#/properties/value/anyOf/4/items/anyOf/2/type", - keyword: "type", - params: { type: "number" }, - message: "must be number", - }; - if (vErrors === null) { - vErrors = [err13]; - } else { - vErrors.push(err13); - } - errors++; - } - var _valid1 = _errs25 === errors; - valid5 = valid5 || _valid1; - const _errs27 = errors; - if (typeof data3 !== "boolean") { - const err14 = { - instancePath: instancePath + "/value/" + i0, - schemaPath: "#/properties/value/anyOf/4/items/anyOf/3/type", - keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", - }; - if (vErrors === null) { - vErrors = [err14]; - } else { - vErrors.push(err14); - } - errors++; - } - var _valid1 = _errs27 === errors; - valid5 = valid5 || _valid1; - if (!valid5) { - const err15 = { - instancePath: instancePath + "/value/" + i0, - schemaPath: "#/properties/value/anyOf/4/items/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err15]; - } else { - vErrors.push(err15); - } - errors++; - } else { - errors = _errs20; - if (vErrors !== null) { - if (_errs20) { - vErrors.length = _errs20; - } else { - vErrors = null; - } - } - } - } + if (data.name === undefined) { + const err4 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; } else { - const err16 = { - instancePath: instancePath + "/value", - schemaPath: "#/properties/value/anyOf/4/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", + vErrors.push(err4); + } + errors++; + } + for (const key0 in data) { + if (!func1.call(schema286.properties, key0)) { + const err5 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err16]; + vErrors = [err5]; } else { - vErrors.push(err16); + vErrors.push(err5); } errors++; } - var _valid0 = _errs17 === errors; + } + if (data.config !== undefined) { + if ( + !validate305(data.config, { + instancePath: instancePath + "/config", + parentData: data, + parentDataProperty: "config", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; + } + } + if (data.cursor !== undefined) { + let data1 = data.cursor; + const _errs6 = errors; + let valid2 = false; + const _errs7 = errors; + if ( + !validate335(data1, { + instancePath: instancePath + "/cursor", + parentData: data, + parentDataProperty: "cursor", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate335.errors : vErrors.concat(validate335.errors); + errors = vErrors.length; + } + var _valid0 = _errs7 === errors; valid2 = valid2 || _valid0; - const _errs29 = errors; - if (data2 !== null) { - const err17 = { - instancePath: instancePath + "/value", - schemaPath: "#/properties/value/anyOf/5/type", + const _errs8 = errors; + if (data1 !== null) { + const err6 = { + instancePath: instancePath + "/cursor", + schemaPath: "#/properties/cursor/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err17]; + vErrors = [err6]; } else { - vErrors.push(err17); + vErrors.push(err6); } errors++; } - var _valid0 = _errs29 === errors; + var _valid0 = _errs8 === errors; valid2 = valid2 || _valid0; if (!valid2) { - const err18 = { - instancePath: instancePath + "/value", - schemaPath: "#/properties/value/anyOf", + const err7 = { + instancePath: instancePath + "/cursor", + schemaPath: "#/properties/cursor/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err18]; + vErrors = [err7]; } else { - vErrors.push(err18); + vErrors.push(err7); } errors++; } else { - errors = _errs8; + errors = _errs6; if (vErrors !== null) { - if (_errs8) { - vErrors.length = _errs8; + if (_errs6) { + vErrors.length = _errs6; } else { vErrors = null; } } } } - } else { - const err19 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err19]; - } else { - vErrors.push(err19); - } - errors++; - } - validate374.errors = vErrors; - return errors === 0; -} -validate374.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -function validate373( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate373.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.conditions === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "conditions" }, - message: "must have required property '" + "conditions" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - for (const key0 in data) { - if (!(key0 === "conditions" || key0 === "logic")) { - const err1 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } - } - if (data.conditions !== undefined) { - let data0 = data.conditions; - if (Array.isArray(data0)) { - if (data0.length < 1) { - const err2 = { - instancePath: instancePath + "/conditions", - schemaPath: "#/properties/conditions/minItems", - keyword: "minItems", - params: { limit: 1 }, - message: "must NOT have fewer than 1 items", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - const len0 = data0.length; + if (data.fields !== undefined) { + let data2 = data.fields; + if (Array.isArray(data2)) { + const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate374(data0[i0], { - instancePath: instancePath + "/conditions/" + i0, - parentData: data0, + !validate339(data2[i0], { + instancePath: instancePath + "/fields/" + i0, + parentData: data2, parentDataProperty: i0, rootData, dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate374.errors : vErrors.concat(validate374.errors); + vErrors = vErrors === null ? validate339.errors : vErrors.concat(validate339.errors); errors = vErrors.length; } } } else { - const err3 = { - instancePath: instancePath + "/conditions", - schemaPath: "#/properties/conditions/type", + const err8 = { + instancePath: instancePath + "/fields", + schemaPath: "#/properties/fields/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err8]; } else { - vErrors.push(err3); + vErrors.push(err8); } errors++; } } - if (data.logic !== undefined) { - let data2 = data.logic; - if (typeof data2 !== "string") { - const err4 = { - instancePath: instancePath + "/logic", - schemaPath: "#/$defs/MatchLogic/type", + if (data.id !== undefined) { + if (typeof data.id !== "string") { + const err9 = { + instancePath: instancePath + "/id", + schemaPath: "#/properties/id/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err9]; } else { - vErrors.push(err4); + vErrors.push(err9); } errors++; } - if (!(data2 === "all" || data2 === "any")) { - const err5 = { - instancePath: instancePath + "/logic", - schemaPath: "#/$defs/MatchLogic/enum", - keyword: "enum", - params: { allowedValues: schema259.enum }, - message: "must be equal to one of the allowed values", + } + if (data.name !== undefined) { + if (typeof data.name !== "string") { + const err10 = { + instancePath: instancePath + "/name", + schemaPath: "#/properties/name/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err10]; } else { - vErrors.push(err5); + vErrors.push(err10); } errors++; } } - } else { - const err6 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - validate373.errors = vErrors; - return errors === 0; -} -validate373.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -function validate371( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate371.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.kind === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "kind" }, - message: "must have required property '" + "kind" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); + if (data.params !== undefined) { + let data6 = data.params; + const _errs18 = errors; + let valid5 = false; + const _errs19 = errors; + if ( + !validate305(data6, { + instancePath: instancePath + "/params", + parentData: data, + parentDataProperty: "params", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); + errors = vErrors.length; } - errors++; - } - if (data.params === undefined) { - const err1 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "params" }, - message: "must have required property '" + "params" + "'", - }; - if (vErrors === null) { - vErrors = [err1]; + var _valid1 = _errs19 === errors; + valid5 = valid5 || _valid1; + const _errs20 = errors; + if (data6 !== null) { + const err11 = { + instancePath: instancePath + "/params", + schemaPath: "#/properties/params/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + var _valid1 = _errs20 === errors; + valid5 = valid5 || _valid1; + if (!valid5) { + const err12 = { + instancePath: instancePath + "/params", + schemaPath: "#/properties/params/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; } else { - vErrors.push(err1); + errors = _errs18; + if (vErrors !== null) { + if (_errs18) { + vErrors.length = _errs18; + } else { + vErrors = null; + } + } } - errors++; } - for (const key0 in data) { - if (!(key0 === "kind" || key0 === "metadata" || key0 === "params")) { - const err2 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + if (data.trigger !== undefined) { + let data7 = data.trigger; + const _errs24 = errors; + let valid6 = false; + const _errs25 = errors; + if ( + !validate357(data7, { + instancePath: instancePath + "/trigger", + parentData: data, + parentDataProperty: "trigger", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate357.errors : vErrors.concat(validate357.errors); + errors = vErrors.length; + } + var _valid2 = _errs25 === errors; + valid6 = valid6 || _valid2; + const _errs26 = errors; + if (data7 !== null) { + const err13 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err13]; } else { - vErrors.push(err2); + vErrors.push(err13); + } + errors++; + } + var _valid2 = _errs26 === errors; + valid6 = valid6 || _valid2; + if (!valid6) { + const err14 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); } errors++; + } else { + errors = _errs24; + if (vErrors !== null) { + if (_errs24) { + vErrors.length = _errs24; + } else { + vErrors = null; + } + } } } - if (data.kind !== undefined) { - let data0 = data.kind; - if (typeof data0 !== "string") { - const err3 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/type", + if (data.type !== undefined) { + let data8 = data.type; + if (typeof data8 !== "string") { + const err15 = { + instancePath: instancePath + "/type", + schemaPath: "#/$defs/ExtensionNodeType/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err15]; } else { - vErrors.push(err3); + vErrors.push(err15); } errors++; } - if ("filter_rows" !== data0) { - const err4 = { - instancePath: instancePath + "/kind", - schemaPath: "#/properties/kind/const", - keyword: "const", - params: { allowedValue: "filter_rows" }, - message: "must be equal to constant", + const _errs31 = errors; + const _errs32 = errors; + if (!(data8 === "source" || data8 === "transform" || data8 === "target")) { + const err16 = {}; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + var valid8 = _errs32 === errors; + if (valid8) { + const err17 = { + instancePath: instancePath + "/type", + schemaPath: "#/$defs/ExtensionNodeType/not", + keyword: "not", + params: {}, + message: "must NOT be valid", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err17]; } else { - vErrors.push(err4); + vErrors.push(err17); } errors++; + } else { + errors = _errs31; + if (vErrors !== null) { + if (_errs31) { + vErrors.length = _errs31; + } else { + vErrors = null; + } + } } } - if (data.metadata !== undefined) { + if (data.visual !== undefined) { + let data9 = data.visual; + const _errs34 = errors; + let valid9 = false; + const _errs35 = errors; if ( - !validate291(data.metadata, { - instancePath: instancePath + "/metadata", + !validate368(data9, { + instancePath: instancePath + "/visual", parentData: data, - parentDataProperty: "metadata", + parentDataProperty: "visual", rootData, dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate368.errors : vErrors.concat(validate368.errors); errors = vErrors.length; } - } - if (data.params !== undefined) { - if ( - !validate373(data.params, { - instancePath: instancePath + "/params", - parentData: data, - parentDataProperty: "params", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate373.errors : vErrors.concat(validate373.errors); - errors = vErrors.length; + var _valid3 = _errs35 === errors; + valid9 = valid9 || _valid3; + const _errs36 = errors; + if (data9 !== null) { + const err18 = { + instancePath: instancePath + "/visual", + schemaPath: "#/properties/visual/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } + var _valid3 = _errs36 === errors; + valid9 = valid9 || _valid3; + if (!valid9) { + const err19 = { + instancePath: instancePath + "/visual", + schemaPath: "#/properties/visual/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } else { + errors = _errs34; + if (vErrors !== null) { + if (_errs34) { + vErrors.length = _errs34; + } else { + vErrors = null; + } + } } } } else { - const err5 = { + const err20 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -38877,24 +45534,24 @@ function validate371( message: "must be object", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err20]; } else { - vErrors.push(err5); + vErrors.push(err20); } errors++; } - validate371.errors = vErrors; + validate413.errors = vErrors; return errors === 0; } -validate371.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate413.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate361( +function validate328( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate361.evaluated; + const evaluated0 = validate328.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -38905,9 +45562,9 @@ function validate361( let valid0 = false; const _errs1 = errors; if ( - !validate362(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate329(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate362.errors : vErrors.concat(validate362.errors); + vErrors = vErrors === null ? validate329.errors : vErrors.concat(validate329.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -38917,9 +45574,9 @@ function validate361( } const _errs2 = errors; if ( - !validate365(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate371(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate365.errors : vErrors.concat(validate365.errors); + vErrors = vErrors === null ? validate371.errors : vErrors.concat(validate371.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -38931,9 +45588,9 @@ function validate361( } const _errs3 = errors; if ( - !validate368(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate400(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate368.errors : vErrors.concat(validate368.errors); + vErrors = vErrors === null ? validate400.errors : vErrors.concat(validate400.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -38945,9 +45602,9 @@ function validate361( } const _errs4 = errors; if ( - !validate371(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate413(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate371.errors : vErrors.concat(validate371.errors); + vErrors = vErrors === null ? validate413.errors : vErrors.concat(validate413.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -38981,19 +45638,19 @@ function validate361( } } } - validate361.errors = vErrors; + validate328.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate361.evaluated = { dynamicProps: true, dynamicItems: false }; +validate328.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate358( +function validate302( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { - let vErrors = null; + /*# sourceURL="urn:dander:control:contracts:v1:pipeline-graph" */ let vErrors = null; let errors = 0; - const evaluated0 = validate358.evaluated; + const evaluated0 = validate302.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -39001,50 +45658,29 @@ function validate358( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.join !== undefined) { - let data1 = data.join; - const _errs4 = errors; - let valid3 = false; - const _errs5 = errors; - if ( - !validate359(data1, { - instancePath: instancePath + "/join", - parentData: data, - parentDataProperty: "join", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate359.errors : vErrors.concat(validate359.errors); - errors = vErrors.length; - } - var _valid0 = _errs5 === errors; - valid3 = valid3 || _valid0; - const _errs6 = errors; - if (data1 !== null) { - const err0 = { - instancePath: instancePath + "/join", - schemaPath: "#/properties/join/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; + if (data.name === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "name" }, + message: "must have required property '" + "name" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); } - var _valid0 = _errs6 === errors; - valid3 = valid3 || _valid0; - if (!valid3) { + errors++; + } + for (const key0 in data) { + if (!(key0 === "edges" || key0 === "name" || key0 === "nodes" || key0 === "trigger")) { const err1 = { - instancePath: instancePath + "/join", - schemaPath: "#/properties/join/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", }; if (vErrors === null) { vErrors = [err1]; @@ -39052,39 +45688,30 @@ function validate358( vErrors.push(err1); } errors++; - } else { - errors = _errs4; - if (vErrors !== null) { - if (_errs4) { - vErrors.length = _errs4; - } else { - vErrors = null; - } - } } } - if (data.operations !== undefined) { - let data2 = data.operations; - if (Array.isArray(data2)) { - const len0 = data2.length; + if (data.edges !== undefined) { + let data0 = data.edges; + if (Array.isArray(data0)) { + const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate361(data2[i0], { - instancePath: instancePath + "/operations/" + i0, - parentData: data2, + !validate303(data0[i0], { + instancePath: instancePath + "/edges/" + i0, + parentData: data0, parentDataProperty: i0, rootData, dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate361.errors : vErrors.concat(validate361.errors); + vErrors = vErrors === null ? validate303.errors : vErrors.concat(validate303.errors); errors = vErrors.length; } } } else { const err2 = { - instancePath: instancePath + "/operations", - schemaPath: "#/properties/operations/type", + instancePath: instancePath + "/edges", + schemaPath: "#/properties/edges/type", keyword: "type", params: { type: "array" }, message: "must be array", @@ -39097,8 +45724,121 @@ function validate358( errors++; } } + if (data.name !== undefined) { + if (typeof data.name !== "string") { + const err3 = { + instancePath: instancePath + "/name", + schemaPath: "#/properties/name/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.nodes !== undefined) { + let data3 = data.nodes; + if (Array.isArray(data3)) { + const len1 = data3.length; + for (let i1 = 0; i1 < len1; i1++) { + if ( + !validate328(data3[i1], { + instancePath: instancePath + "/nodes/" + i1, + parentData: data3, + parentDataProperty: i1, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate328.errors : vErrors.concat(validate328.errors); + errors = vErrors.length; + } + } + } else { + const err4 = { + instancePath: instancePath + "/nodes", + schemaPath: "#/properties/nodes/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data.trigger !== undefined) { + let data5 = data.trigger; + const _errs11 = errors; + let valid5 = false; + const _errs12 = errors; + if ( + !validate357(data5, { + instancePath: instancePath + "/trigger", + parentData: data, + parentDataProperty: "trigger", + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate357.errors : vErrors.concat(validate357.errors); + errors = vErrors.length; + } + var _valid0 = _errs12 === errors; + valid5 = valid5 || _valid0; + const _errs13 = errors; + if (data5 !== null) { + const err5 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + var _valid0 = _errs13 === errors; + valid5 = valid5 || _valid0; + if (!valid5) { + const err6 = { + instancePath: instancePath + "/trigger", + schemaPath: "#/properties/trigger/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } else { + errors = _errs11; + if (vErrors !== null) { + if (_errs11) { + vErrors.length = _errs11; + } else { + vErrors = null; + } + } + } + } } else { - const err3 = { + const err7 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -39106,121 +45846,150 @@ function validate358( message: "must be object", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err7]; } else { - vErrors.push(err3); + vErrors.push(err7); } errors++; } - validate358.errors = vErrors; + validate302.errors = vErrors; return errors === 0; } -validate358.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate302.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate357( +export const validatePluginCatalog = validate423; +const schema288 = { + $defs: { + PluginCatalogRecord: { + additionalProperties: false, + properties: { + compatible: { title: "Compatible", type: "boolean" }, + dander_specifier: { title: "Dander Specifier", type: "string" }, + description: { title: "Description", type: "string" }, + display_name: { title: "Display Name", type: "string" }, + distribution: { title: "Distribution", type: "string" }, + documentation_url: { title: "Documentation Url", type: "string" }, + id: { title: "Id", type: "string" }, + installed: { title: "Installed", type: "boolean" }, + installed_version: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Installed Version", + }, + pypi_url: { title: "Pypi Url", type: "string" }, + repository_url: { title: "Repository Url", type: "string" }, + support_status: { title: "Support Status", type: "string" }, + validation_status: { title: "Validation Status", type: "string" }, + version: { title: "Version", type: "string" }, + }, + required: [ + "id", + "display_name", + "description", + "distribution", + "version", + "dander_specifier", + "compatible", + "support_status", + "validation_status", + "documentation_url", + "pypi_url", + "repository_url", + "installed", + ], + title: "PluginCatalogRecord", + type: "object", + }, + }, + $id: "urn:dander:control:contracts:v1:plugin-catalog", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + properties: { + connectors: { + items: { $ref: "#/$defs/PluginCatalogRecord" }, + title: "Connectors", + type: "array", + }, + dander_version: { title: "Dander Version", type: "string" }, + schema_version: { const: 1, default: 1, title: "Schema Version", type: "integer" }, + }, + required: ["dander_version"], + title: "PluginCatalogResponse", + type: "object", +}; +const schema289 = { + additionalProperties: false, + properties: { + compatible: { title: "Compatible", type: "boolean" }, + dander_specifier: { title: "Dander Specifier", type: "string" }, + description: { title: "Description", type: "string" }, + display_name: { title: "Display Name", type: "string" }, + distribution: { title: "Distribution", type: "string" }, + documentation_url: { title: "Documentation Url", type: "string" }, + id: { title: "Id", type: "string" }, + installed: { title: "Installed", type: "boolean" }, + installed_version: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Installed Version", + }, + pypi_url: { title: "Pypi Url", type: "string" }, + repository_url: { title: "Repository Url", type: "string" }, + support_status: { title: "Support Status", type: "string" }, + validation_status: { title: "Validation Status", type: "string" }, + version: { title: "Version", type: "string" }, + }, + required: [ + "id", + "display_name", + "description", + "distribution", + "version", + "dander_specifier", + "compatible", + "support_status", + "validation_status", + "documentation_url", + "pypi_url", + "repository_url", + "installed", + ], + title: "PluginCatalogRecord", + type: "object", +}; + +function validate423( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { - let vErrors = null; + /*# sourceURL="urn:dander:control:contracts:v1:plugin-catalog" */ let vErrors = null; let errors = 0; - const evaluated0 = validate357.evaluated; + const evaluated0 = validate423.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } if (evaluated0.dynamicItems) { evaluated0.items = undefined; } - const _errs1 = errors; - const _errs2 = errors; - if (data && typeof data == "object" && !Array.isArray(data)) { - let missing0; - if ( - (data.config === undefined && (missing0 = "config")) || - (data.params === undefined && (missing0 = "params")) - ) { - const err0 = {}; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - } - var valid0 = _errs2 === errors; - if (valid0) { - const err1 = { - instancePath, - schemaPath: "#/not", - keyword: "not", - params: {}, - message: "must NOT be valid", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } else { - errors = _errs1; - if (vErrors !== null) { - if (_errs1) { - vErrors.length = _errs1; - } else { - vErrors = null; - } - } - } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.id === undefined) { - const err2 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "id" }, - message: "must have required property '" + "id" + "'", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - if (data.type === undefined) { - const err3 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "type" }, - message: "must have required property '" + "type" + "'", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - if (data.name === undefined) { - const err4 = { + if (data.dander_version === undefined) { + const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "name" }, - message: "must have required property '" + "name" + "'", + params: { missingProperty: "dander_version" }, + message: "must have required property '" + "dander_version" + "'", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err0]; } else { - vErrors.push(err4); + vErrors.push(err0); } errors++; } for (const key0 in data) { - if (!func1.call(schema242.properties, key0)) { - const err5 = { + if (!(key0 === "connectors" || key0 === "dander_version" || key0 === "schema_version")) { + const err1 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -39228,378 +45997,810 @@ function validate357( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - } - if (data.config !== undefined) { - if ( - !validate358(data.config, { - instancePath: instancePath + "/config", - parentData: data, - parentDataProperty: "config", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate358.errors : vErrors.concat(validate358.errors); - errors = vErrors.length; - } - } - if (data.cursor !== undefined) { - let data1 = data.cursor; - const _errs6 = errors; - let valid2 = false; - const _errs7 = errors; - if ( - !validate321(data1, { - instancePath: instancePath + "/cursor", - parentData: data, - parentDataProperty: "cursor", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate321.errors : vErrors.concat(validate321.errors); - errors = vErrors.length; - } - var _valid0 = _errs7 === errors; - valid2 = valid2 || _valid0; - const _errs8 = errors; - if (data1 !== null) { - const err6 = { - instancePath: instancePath + "/cursor", - schemaPath: "#/properties/cursor/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - var _valid0 = _errs8 === errors; - valid2 = valid2 || _valid0; - if (!valid2) { - const err7 = { - instancePath: instancePath + "/cursor", - schemaPath: "#/properties/cursor/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err7]; + vErrors = [err1]; } else { - vErrors.push(err7); + vErrors.push(err1); } errors++; - } else { - errors = _errs6; - if (vErrors !== null) { - if (_errs6) { - vErrors.length = _errs6; - } else { - vErrors = null; - } - } } } - if (data.fields !== undefined) { - let data2 = data.fields; - if (Array.isArray(data2)) { - const len0 = data2.length; + if (data.connectors !== undefined) { + let data0 = data.connectors; + if (Array.isArray(data0)) { + const len0 = data0.length; for (let i0 = 0; i0 < len0; i0++) { - if ( - !validate325(data2[i0], { - instancePath: instancePath + "/fields/" + i0, - parentData: data2, - parentDataProperty: i0, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate325.errors : vErrors.concat(validate325.errors); - errors = vErrors.length; + let data1 = data0[i0]; + if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { + if (data1.id === undefined) { + const err2 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "id" }, + message: "must have required property '" + "id" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + if (data1.display_name === undefined) { + const err3 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "display_name" }, + message: "must have required property '" + "display_name" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + if (data1.description === undefined) { + const err4 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "description" }, + message: "must have required property '" + "description" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + if (data1.distribution === undefined) { + const err5 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "distribution" }, + message: "must have required property '" + "distribution" + "'", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + if (data1.version === undefined) { + const err6 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "version" }, + message: "must have required property '" + "version" + "'", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + if (data1.dander_specifier === undefined) { + const err7 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "dander_specifier" }, + message: "must have required property '" + "dander_specifier" + "'", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + if (data1.compatible === undefined) { + const err8 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "compatible" }, + message: "must have required property '" + "compatible" + "'", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + if (data1.support_status === undefined) { + const err9 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "support_status" }, + message: "must have required property '" + "support_status" + "'", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + if (data1.validation_status === undefined) { + const err10 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "validation_status" }, + message: "must have required property '" + "validation_status" + "'", + }; + if (vErrors === null) { + vErrors = [err10]; + } else { + vErrors.push(err10); + } + errors++; + } + if (data1.documentation_url === undefined) { + const err11 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "documentation_url" }, + message: "must have required property '" + "documentation_url" + "'", + }; + if (vErrors === null) { + vErrors = [err11]; + } else { + vErrors.push(err11); + } + errors++; + } + if (data1.pypi_url === undefined) { + const err12 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "pypi_url" }, + message: "must have required property '" + "pypi_url" + "'", + }; + if (vErrors === null) { + vErrors = [err12]; + } else { + vErrors.push(err12); + } + errors++; + } + if (data1.repository_url === undefined) { + const err13 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "repository_url" }, + message: "must have required property '" + "repository_url" + "'", + }; + if (vErrors === null) { + vErrors = [err13]; + } else { + vErrors.push(err13); + } + errors++; + } + if (data1.installed === undefined) { + const err14 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/required", + keyword: "required", + params: { missingProperty: "installed" }, + message: "must have required property '" + "installed" + "'", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; + } + for (const key1 in data1) { + if (!func1.call(schema289.properties, key1)) { + const err15 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; + } + } + if (data1.compatible !== undefined) { + if (typeof data1.compatible !== "boolean") { + const err16 = { + instancePath: instancePath + "/connectors/" + i0 + "/compatible", + schemaPath: "#/$defs/PluginCatalogRecord/properties/compatible/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err16]; + } else { + vErrors.push(err16); + } + errors++; + } + } + if (data1.dander_specifier !== undefined) { + if (typeof data1.dander_specifier !== "string") { + const err17 = { + instancePath: instancePath + "/connectors/" + i0 + "/dander_specifier", + schemaPath: "#/$defs/PluginCatalogRecord/properties/dander_specifier/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err17]; + } else { + vErrors.push(err17); + } + errors++; + } + } + if (data1.description !== undefined) { + if (typeof data1.description !== "string") { + const err18 = { + instancePath: instancePath + "/connectors/" + i0 + "/description", + schemaPath: "#/$defs/PluginCatalogRecord/properties/description/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err18]; + } else { + vErrors.push(err18); + } + errors++; + } + } + if (data1.display_name !== undefined) { + if (typeof data1.display_name !== "string") { + const err19 = { + instancePath: instancePath + "/connectors/" + i0 + "/display_name", + schemaPath: "#/$defs/PluginCatalogRecord/properties/display_name/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err19]; + } else { + vErrors.push(err19); + } + errors++; + } + } + if (data1.distribution !== undefined) { + if (typeof data1.distribution !== "string") { + const err20 = { + instancePath: instancePath + "/connectors/" + i0 + "/distribution", + schemaPath: "#/$defs/PluginCatalogRecord/properties/distribution/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err20]; + } else { + vErrors.push(err20); + } + errors++; + } + } + if (data1.documentation_url !== undefined) { + if (typeof data1.documentation_url !== "string") { + const err21 = { + instancePath: instancePath + "/connectors/" + i0 + "/documentation_url", + schemaPath: "#/$defs/PluginCatalogRecord/properties/documentation_url/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err21]; + } else { + vErrors.push(err21); + } + errors++; + } + } + if (data1.id !== undefined) { + if (typeof data1.id !== "string") { + const err22 = { + instancePath: instancePath + "/connectors/" + i0 + "/id", + schemaPath: "#/$defs/PluginCatalogRecord/properties/id/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err22]; + } else { + vErrors.push(err22); + } + errors++; + } + } + if (data1.installed !== undefined) { + if (typeof data1.installed !== "boolean") { + const err23 = { + instancePath: instancePath + "/connectors/" + i0 + "/installed", + schemaPath: "#/$defs/PluginCatalogRecord/properties/installed/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err23]; + } else { + vErrors.push(err23); + } + errors++; + } + } + if (data1.installed_version !== undefined) { + let data10 = data1.installed_version; + const _errs25 = errors; + let valid5 = false; + const _errs26 = errors; + if (typeof data10 !== "string") { + const err24 = { + instancePath: instancePath + "/connectors/" + i0 + "/installed_version", + schemaPath: + "#/$defs/PluginCatalogRecord/properties/installed_version/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err24]; + } else { + vErrors.push(err24); + } + errors++; + } + var _valid0 = _errs26 === errors; + valid5 = valid5 || _valid0; + const _errs28 = errors; + if (data10 !== null) { + const err25 = { + instancePath: instancePath + "/connectors/" + i0 + "/installed_version", + schemaPath: + "#/$defs/PluginCatalogRecord/properties/installed_version/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err25]; + } else { + vErrors.push(err25); + } + errors++; + } + var _valid0 = _errs28 === errors; + valid5 = valid5 || _valid0; + if (!valid5) { + const err26 = { + instancePath: instancePath + "/connectors/" + i0 + "/installed_version", + schemaPath: "#/$defs/PluginCatalogRecord/properties/installed_version/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err26]; + } else { + vErrors.push(err26); + } + errors++; + } else { + errors = _errs25; + if (vErrors !== null) { + if (_errs25) { + vErrors.length = _errs25; + } else { + vErrors = null; + } + } + } + } + if (data1.pypi_url !== undefined) { + if (typeof data1.pypi_url !== "string") { + const err27 = { + instancePath: instancePath + "/connectors/" + i0 + "/pypi_url", + schemaPath: "#/$defs/PluginCatalogRecord/properties/pypi_url/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err27]; + } else { + vErrors.push(err27); + } + errors++; + } + } + if (data1.repository_url !== undefined) { + if (typeof data1.repository_url !== "string") { + const err28 = { + instancePath: instancePath + "/connectors/" + i0 + "/repository_url", + schemaPath: "#/$defs/PluginCatalogRecord/properties/repository_url/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err28]; + } else { + vErrors.push(err28); + } + errors++; + } + } + if (data1.support_status !== undefined) { + if (typeof data1.support_status !== "string") { + const err29 = { + instancePath: instancePath + "/connectors/" + i0 + "/support_status", + schemaPath: "#/$defs/PluginCatalogRecord/properties/support_status/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err29]; + } else { + vErrors.push(err29); + } + errors++; + } + } + if (data1.validation_status !== undefined) { + if (typeof data1.validation_status !== "string") { + const err30 = { + instancePath: instancePath + "/connectors/" + i0 + "/validation_status", + schemaPath: "#/$defs/PluginCatalogRecord/properties/validation_status/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err30]; + } else { + vErrors.push(err30); + } + errors++; + } + } + if (data1.version !== undefined) { + if (typeof data1.version !== "string") { + const err31 = { + instancePath: instancePath + "/connectors/" + i0 + "/version", + schemaPath: "#/$defs/PluginCatalogRecord/properties/version/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err31]; + } else { + vErrors.push(err31); + } + errors++; + } + } + } else { + const err32 = { + instancePath: instancePath + "/connectors/" + i0, + schemaPath: "#/$defs/PluginCatalogRecord/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err32]; + } else { + vErrors.push(err32); + } + errors++; } } } else { - const err8 = { - instancePath: instancePath + "/fields", - schemaPath: "#/properties/fields/type", + const err33 = { + instancePath: instancePath + "/connectors", + schemaPath: "#/properties/connectors/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err33]; } else { - vErrors.push(err8); + vErrors.push(err33); } errors++; } } - if (data.id !== undefined) { - if (typeof data.id !== "string") { - const err9 = { - instancePath: instancePath + "/id", - schemaPath: "#/properties/id/type", + if (data.dander_version !== undefined) { + if (typeof data.dander_version !== "string") { + const err34 = { + instancePath: instancePath + "/dander_version", + schemaPath: "#/properties/dander_version/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err34]; } else { - vErrors.push(err9); + vErrors.push(err34); } errors++; } } - if (data.name !== undefined) { - if (typeof data.name !== "string") { - const err10 = { - instancePath: instancePath + "/name", - schemaPath: "#/properties/name/type", + if (data.schema_version !== undefined) { + let data17 = data.schema_version; + if (!(typeof data17 == "number" && !(data17 % 1) && !isNaN(data17) && isFinite(data17))) { + const err35 = { + instancePath: instancePath + "/schema_version", + schemaPath: "#/properties/schema_version/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err35]; } else { - vErrors.push(err10); + vErrors.push(err35); } errors++; } - } - if (data.params !== undefined) { - let data6 = data.params; - const _errs18 = errors; - let valid5 = false; - const _errs19 = errors; - if ( - !validate358(data6, { - instancePath: instancePath + "/params", - parentData: data, - parentDataProperty: "params", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate358.errors : vErrors.concat(validate358.errors); - errors = vErrors.length; - } - var _valid1 = _errs19 === errors; - valid5 = valid5 || _valid1; - const _errs20 = errors; - if (data6 !== null) { - const err11 = { - instancePath: instancePath + "/params", - schemaPath: "#/properties/params/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + if (1 !== data17) { + const err36 = { + instancePath: instancePath + "/schema_version", + schemaPath: "#/properties/schema_version/const", + keyword: "const", + params: { allowedValue: 1 }, + message: "must be equal to constant", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err36]; } else { - vErrors.push(err11); + vErrors.push(err36); } errors++; } - var _valid1 = _errs20 === errors; - valid5 = valid5 || _valid1; - if (!valid5) { - const err12 = { - instancePath: instancePath + "/params", - schemaPath: "#/properties/params/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; + } + } else { + const err37 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err37]; + } else { + vErrors.push(err37); + } + errors++; + } + validate423.errors = vErrors; + return errors === 0; +} +validate423.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +export const validateProjectList = validate424; +const schema290 = { + $defs: { + ProjectSummaryResponse: { + additionalProperties: false, + description: "One configured logical project, never a provider project payload.", + properties: { id: { title: "Id", type: "string" } }, + required: ["id"], + title: "ProjectSummaryResponse", + type: "object", + }, + }, + $id: "urn:dander:control:contracts:v1:project-list", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + description: "The bounded logical projects configured for this Dander installation.", + properties: { + projects: { + items: { $ref: "#/$defs/ProjectSummaryResponse" }, + maxItems: 100, + title: "Projects", + type: "array", + }, + }, + required: ["projects"], + title: "ProjectListResponse", + type: "object", +}; +const schema291 = { + additionalProperties: false, + description: "One configured logical project, never a provider project payload.", + properties: { id: { title: "Id", type: "string" } }, + required: ["id"], + title: "ProjectSummaryResponse", + type: "object", +}; + +function validate424( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + /*# sourceURL="urn:dander:control:contracts:v1:project-list" */ let vErrors = null; + let errors = 0; + const evaluated0 = validate424.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.projects === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "projects" }, + message: "must have required property '" + "projects" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; } else { - errors = _errs18; - if (vErrors !== null) { - if (_errs18) { - vErrors.length = _errs18; - } else { - vErrors = null; - } - } + vErrors.push(err0); } + errors++; } - if (data.trigger !== undefined) { - let data7 = data.trigger; - const _errs24 = errors; - let valid6 = false; - const _errs25 = errors; - if ( - !validate343(data7, { - instancePath: instancePath + "/trigger", - parentData: data, - parentDataProperty: "trigger", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate343.errors : vErrors.concat(validate343.errors); - errors = vErrors.length; - } - var _valid2 = _errs25 === errors; - valid6 = valid6 || _valid2; - const _errs26 = errors; - if (data7 !== null) { - const err13 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + for (const key0 in data) { + if (!(key0 === "projects")) { + const err1 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err13]; + vErrors = [err1]; } else { - vErrors.push(err13); + vErrors.push(err1); } errors++; } - var _valid2 = _errs26 === errors; - valid6 = valid6 || _valid2; - if (!valid6) { - const err14 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err14]; - } else { - vErrors.push(err14); - } - errors++; - } else { - errors = _errs24; - if (vErrors !== null) { - if (_errs24) { - vErrors.length = _errs24; + } + if (data.projects !== undefined) { + let data0 = data.projects; + if (Array.isArray(data0)) { + if (data0.length > 100) { + const err2 = { + instancePath: instancePath + "/projects", + schemaPath: "#/properties/projects/maxItems", + keyword: "maxItems", + params: { limit: 100 }, + message: "must NOT have more than 100 items", + }; + if (vErrors === null) { + vErrors = [err2]; } else { - vErrors = null; + vErrors.push(err2); } + errors++; } - } - } - if (data.type !== undefined) { - let data8 = data.type; - if (typeof data8 !== "string") { - const err15 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err15]; - } else { - vErrors.push(err15); - } - errors++; - } - if ("transform" !== data8) { - const err16 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/const", - keyword: "const", - params: { allowedValue: "transform" }, - message: "must be equal to constant", - }; - if (vErrors === null) { - vErrors = [err16]; - } else { - vErrors.push(err16); + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + let data1 = data0[i0]; + if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { + if (data1.id === undefined) { + const err3 = { + instancePath: instancePath + "/projects/" + i0, + schemaPath: "#/$defs/ProjectSummaryResponse/required", + keyword: "required", + params: { missingProperty: "id" }, + message: "must have required property '" + "id" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + for (const key1 in data1) { + if (!(key1 === "id")) { + const err4 = { + instancePath: instancePath + "/projects/" + i0, + schemaPath: "#/$defs/ProjectSummaryResponse/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } + } + if (data1.id !== undefined) { + if (typeof data1.id !== "string") { + const err5 = { + instancePath: instancePath + "/projects/" + i0 + "/id", + schemaPath: "#/$defs/ProjectSummaryResponse/properties/id/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err5]; + } else { + vErrors.push(err5); + } + errors++; + } + } + } else { + const err6 = { + instancePath: instancePath + "/projects/" + i0, + schemaPath: "#/$defs/ProjectSummaryResponse/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } } - errors++; - } - } - if (data.visual !== undefined) { - let data9 = data.visual; - const _errs31 = errors; - let valid7 = false; - const _errs32 = errors; - if ( - !validate354(data9, { - instancePath: instancePath + "/visual", - parentData: data, - parentDataProperty: "visual", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate354.errors : vErrors.concat(validate354.errors); - errors = vErrors.length; - } - var _valid3 = _errs32 === errors; - valid7 = valid7 || _valid3; - const _errs33 = errors; - if (data9 !== null) { - const err17 = { - instancePath: instancePath + "/visual", - schemaPath: "#/properties/visual/anyOf/1/type", + } else { + const err7 = { + instancePath: instancePath + "/projects", + schemaPath: "#/properties/projects/type", keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err17]; - } else { - vErrors.push(err17); - } - errors++; - } - var _valid3 = _errs33 === errors; - valid7 = valid7 || _valid3; - if (!valid7) { - const err18 = { - instancePath: instancePath + "/visual", - schemaPath: "#/properties/visual/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err18]; + vErrors = [err7]; } else { - vErrors.push(err18); + vErrors.push(err7); } errors++; - } else { - errors = _errs31; - if (vErrors !== null) { - if (_errs31) { - vErrors.length = _errs31; - } else { - vErrors = null; - } - } } } } else { - const err19 = { + const err8 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -39607,138 +46808,102 @@ function validate357( message: "must be object", }; if (vErrors === null) { - vErrors = [err19]; + vErrors = [err8]; } else { - vErrors.push(err19); + vErrors.push(err8); } errors++; } - validate357.errors = vErrors; + validate424.errors = vErrors; return errors === 0; } -validate357.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate424.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -const schema260 = { - additionalProperties: false, - not: { required: ["config", "params"] }, - properties: { - config: { $ref: "#/$defs/TargetNodeConfigDocument" }, - cursor: { - anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], - default: null, - }, - fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, - id: { title: "Id", type: "string" }, - name: { title: "Name", type: "string" }, - params: { - anyOf: [{ $ref: "#/$defs/TargetNodeConfigDocument" }, { type: "null" }], - default: null, - deprecated: true, - "x-dander-canonical-name": "config", - }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - type: { const: "target", title: "Type", type: "string" }, - visual: { anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], default: null }, - }, - required: ["id", "type", "name"], - title: "TargetNodeDocument", - type: "object", -}; -const schema261 = { - additionalProperties: { $ref: "#/$defs/JsonValue" }, - properties: { - writer: { anyOf: [{ $ref: "#/$defs/WriterDocument" }, { type: "null" }], default: null }, - }, - title: "TargetNodeConfigDocument", - type: "object", -}; -const schema263 = { - additionalProperties: false, - properties: { - clustering: { items: { type: "string" }, maxItems: 4, title: "Clustering", type: "array" }, - cursor_field: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Cursor Field", - }, - destination: { $ref: "#/$defs/DestinationDocument" }, - max_batch_rows: { - default: 10000, - exclusiveMinimum: 0, - maximum: 100000, - title: "Max Batch Rows", - type: "integer", - }, - partitioning: { - anyOf: [{ $ref: "#/$defs/PartitioningDocument" }, { type: "null" }], - default: null, +export const validateRunExplanation = validate425; +const schema292 = { + $defs: { + RunActionKind: { + enum: [ + "refresh", + "logs", + "replay", + "cancel", + "inspect_outputs", + "review_configuration", + "none", + ], + type: "string", }, - schema_evolution: { $ref: "#/$defs/SchemaEvolution", default: "strict" }, - transport: { - default: "load_job", - enum: ["load_job", "storage_write", "copy"], - title: "Transport", + RunExplanationAction: { + additionalProperties: false, + description: "One suggested next step, without performing a run mutation.", + properties: { + kind: { $ref: "#/$defs/RunActionKind" }, + label: { title: "Label", type: "string" }, + reason: { title: "Reason", type: "string" }, + }, + required: ["kind", "label", "reason"], + title: "RunExplanationAction", + type: "object", + }, + RunState: { + enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], + title: "RunState", type: "string", }, - write_mode: { $ref: "#/$defs/WriteMode" }, }, - required: ["write_mode", "destination"], - title: "WriterDocument", - type: "object", -}; -const schema264 = { + $id: "urn:dander:control:contracts:v1:run-explanation", + $schema: "https://json-schema.org/draft/2020-12/schema", additionalProperties: false, + description: "A bounded explanation derived only from the current normalized run status.", properties: { - business_key: { items: { type: "string" }, title: "Business Key", type: "array" }, - dataset: { minLength: 1, title: "Dataset", type: "string" }, - project: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Project" }, - table: { minLength: 1, title: "Table", type: "string" }, + available_actions: { + items: { $ref: "#/$defs/RunActionKind" }, + maxItems: 7, + title: "Available Actions", + type: "array", + }, + caveats: { items: { type: "string" }, maxItems: 8, title: "Caveats", type: "array" }, + details: { items: { type: "string" }, maxItems: 8, title: "Details", type: "array" }, + next_action: { $ref: "#/$defs/RunExplanationAction" }, + results_available: { title: "Results Available", type: "boolean" }, + run_id: { title: "Run Id", type: "string" }, + state: { $ref: "#/$defs/RunState" }, + summary: { title: "Summary", type: "string" }, }, - required: ["dataset", "table"], - title: "DestinationDocument", + required: ["run_id", "state", "results_available", "summary", "next_action"], + title: "RunExplanationResponse", type: "object", }; -const schema267 = { - description: "How a writer handles declared columns absent from an existing target.", - enum: ["strict", "additive"], - title: "SchemaEvolution", +const schema293 = { + enum: ["refresh", "logs", "replay", "cancel", "inspect_outputs", "review_configuration", "none"], type: "string", }; -const schema268 = { - description: "Supported load strategies.", - enum: ["scd1", "scd2", "snapshot", "incremental", "replace"], - title: "WriteMode", +const schema296 = { + enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], + title: "RunState", type: "string", }; -const schema265 = { +const schema294 = { additionalProperties: false, + description: "One suggested next step, without performing a run mutation.", properties: { - field: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Field" }, - granularity: { $ref: "#/$defs/PartitioningType", default: "day" }, - require_partition_filter: { - default: false, - title: "Require Partition Filter", - type: "boolean", - }, + kind: { $ref: "#/$defs/RunActionKind" }, + label: { title: "Label", type: "string" }, + reason: { title: "Reason", type: "string" }, }, - title: "PartitioningDocument", + required: ["kind", "label", "reason"], + title: "RunExplanationAction", type: "object", }; -const schema266 = { - description: - "The closed set of time-unit partitioning granularities a `PartitioningSpec` may declare.\n\nA `StrEnum` (matching the `WriteMode`/`TransformationKind`/`JoinType` convention elsewhere in\n`dander.pipeline`), so it serializes to/from its plain string value stably in YAML and JSON;\nan out-of-set value fails validation with a clear `ValidationError`. Scope is deliberately\nlimited to BigQuery time-unit partitioning — integer-range partitioning is a deferred future\nmember (see `steering/02-engineering.md` on avoiding speculative generality).\n\nAttributes:\n HOUR: Hourly partitions.\n DAY: Daily partitions — the common case and BigQuery's default granularity.\n MONTH: Monthly partitions.\n YEAR: Yearly partitions.", - enum: ["hour", "day", "month", "year"], - title: "PartitioningType", - type: "string", -}; -function validate389( +function validate426( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate389.evaluated; + const evaluated0 = validate426.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -39746,94 +46911,74 @@ function validate389( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.kind === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "kind" }, + message: "must have required property '" + "kind" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + if (data.label === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "label" }, + message: "must have required property '" + "label" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + if (data.reason === undefined) { + const err2 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "reason" }, + message: "must have required property '" + "reason" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } for (const key0 in data) { - if (!(key0 === "field" || key0 === "granularity" || key0 === "require_partition_filter")) { - const err0 = { + if (!(key0 === "kind" || key0 === "label" || key0 === "reason")) { + const err3 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties", }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - } - if (data.field !== undefined) { - let data0 = data.field; - const _errs3 = errors; - let valid1 = false; - const _errs4 = errors; - if (typeof data0 !== "string") { - const err1 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } - var _valid0 = _errs4 === errors; - valid1 = valid1 || _valid0; - const _errs6 = errors; - if (data0 !== null) { - const err2 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - var _valid0 = _errs6 === errors; - valid1 = valid1 || _valid0; - if (!valid1) { - const err3 = { - instancePath: instancePath + "/field", - schemaPath: "#/properties/field/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; if (vErrors === null) { vErrors = [err3]; } else { vErrors.push(err3); } errors++; - } else { - errors = _errs3; - if (vErrors !== null) { - if (_errs3) { - vErrors.length = _errs3; - } else { - vErrors = null; - } - } } } - if (data.granularity !== undefined) { - let data1 = data.granularity; - if (typeof data1 !== "string") { + if (data.kind !== undefined) { + let data0 = data.kind; + if (typeof data0 !== "string") { const err4 = { - instancePath: instancePath + "/granularity", - schemaPath: "#/$defs/PartitioningType/type", + instancePath: instancePath + "/kind", + schemaPath: "#/$defs/RunActionKind/type", keyword: "type", params: { type: "string" }, message: "must be string", @@ -39845,12 +46990,20 @@ function validate389( } errors++; } - if (!(data1 === "hour" || data1 === "day" || data1 === "month" || data1 === "year")) { + if (!( + data0 === "refresh" || + data0 === "logs" || + data0 === "replay" || + data0 === "cancel" || + data0 === "inspect_outputs" || + data0 === "review_configuration" || + data0 === "none" + )) { const err5 = { - instancePath: instancePath + "/granularity", - schemaPath: "#/$defs/PartitioningType/enum", + instancePath: instancePath + "/kind", + schemaPath: "#/$defs/RunActionKind/enum", keyword: "enum", - params: { allowedValues: schema266.enum }, + params: { allowedValues: schema293.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -39861,14 +47014,14 @@ function validate389( errors++; } } - if (data.require_partition_filter !== undefined) { - if (typeof data.require_partition_filter !== "boolean") { + if (data.label !== undefined) { + if (typeof data.label !== "string") { const err6 = { - instancePath: instancePath + "/require_partition_filter", - schemaPath: "#/properties/require_partition_filter/type", + instancePath: instancePath + "/label", + schemaPath: "#/properties/label/type", keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { vErrors = [err6]; @@ -39878,8 +47031,25 @@ function validate389( errors++; } } + if (data.reason !== undefined) { + if (typeof data.reason !== "string") { + const err7 = { + instancePath: instancePath + "/reason", + schemaPath: "#/properties/reason/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err7]; + } else { + vErrors.push(err7); + } + errors++; + } + } } else { - const err7 = { + const err8 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -39887,24 +47057,24 @@ function validate389( message: "must be object", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err8]; } else { - vErrors.push(err7); + vErrors.push(err8); } errors++; } - validate389.errors = vErrors; + validate426.errors = vErrors; return errors === 0; } -validate389.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate426.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate388( +function validate425( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { - let vErrors = null; + /*# sourceURL="urn:dander:control:contracts:v1:run-explanation" */ let vErrors = null; let errors = 0; - const evaluated0 = validate388.evaluated; + const evaluated0 = validate425.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -39912,13 +47082,13 @@ function validate388( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.write_mode === undefined) { + if (data.run_id === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "write_mode" }, - message: "must have required property '" + "write_mode" + "'", + params: { missingProperty: "run_id" }, + message: "must have required property '" + "run_id" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -39927,13 +47097,13 @@ function validate388( } errors++; } - if (data.destination === undefined) { + if (data.state === undefined) { const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "destination" }, - message: "must have required property '" + "destination" + "'", + params: { missingProperty: "state" }, + message: "must have required property '" + "state" + "'", }; if (vErrors === null) { vErrors = [err1]; @@ -39942,76 +47112,69 @@ function validate388( } errors++; } + if (data.results_available === undefined) { + const err2 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "results_available" }, + message: "must have required property '" + "results_available" + "'", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + if (data.summary === undefined) { + const err3 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "summary" }, + message: "must have required property '" + "summary" + "'", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + if (data.next_action === undefined) { + const err4 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "next_action" }, + message: "must have required property '" + "next_action" + "'", + }; + if (vErrors === null) { + vErrors = [err4]; + } else { + vErrors.push(err4); + } + errors++; + } for (const key0 in data) { if (!( - key0 === "clustering" || - key0 === "cursor_field" || - key0 === "destination" || - key0 === "max_batch_rows" || - key0 === "partitioning" || - key0 === "schema_evolution" || - key0 === "transport" || - key0 === "write_mode" + key0 === "available_actions" || + key0 === "caveats" || + key0 === "details" || + key0 === "next_action" || + key0 === "results_available" || + key0 === "run_id" || + key0 === "state" || + key0 === "summary" )) { - const err2 = { + const err5 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties", }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - } - if (data.clustering !== undefined) { - let data0 = data.clustering; - if (Array.isArray(data0)) { - if (data0.length > 4) { - const err3 = { - instancePath: instancePath + "/clustering", - schemaPath: "#/properties/clustering/maxItems", - keyword: "maxItems", - params: { limit: 4 }, - message: "must NOT have more than 4 items", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - const len0 = data0.length; - for (let i0 = 0; i0 < len0; i0++) { - if (typeof data0[i0] !== "string") { - const err4 = { - instancePath: instancePath + "/clustering/" + i0, - schemaPath: "#/properties/clustering/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - } - } else { - const err5 = { - instancePath: instancePath + "/clustering", - schemaPath: "#/properties/clustering/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", - }; if (vErrors === null) { vErrors = [err5]; } else { @@ -40020,627 +47183,294 @@ function validate388( errors++; } } - if (data.cursor_field !== undefined) { - let data2 = data.cursor_field; - const _errs7 = errors; - let valid3 = false; - const _errs8 = errors; - if (typeof data2 !== "string") { - const err6 = { - instancePath: instancePath + "/cursor_field", - schemaPath: "#/properties/cursor_field/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } - var _valid0 = _errs8 === errors; - valid3 = valid3 || _valid0; - const _errs10 = errors; - if (data2 !== null) { - const err7 = { - instancePath: instancePath + "/cursor_field", - schemaPath: "#/properties/cursor_field/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - var _valid0 = _errs10 === errors; - valid3 = valid3 || _valid0; - if (!valid3) { - const err8 = { - instancePath: instancePath + "/cursor_field", - schemaPath: "#/properties/cursor_field/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } else { - errors = _errs7; - if (vErrors !== null) { - if (_errs7) { - vErrors.length = _errs7; - } else { - vErrors = null; - } - } - } - } - if (data.destination !== undefined) { - let data3 = data.destination; - if (data3 && typeof data3 == "object" && !Array.isArray(data3)) { - if (data3.dataset === undefined) { - const err9 = { - instancePath: instancePath + "/destination", - schemaPath: "#/$defs/DestinationDocument/required", - keyword: "required", - params: { missingProperty: "dataset" }, - message: "must have required property '" + "dataset" + "'", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - if (data3.table === undefined) { - const err10 = { - instancePath: instancePath + "/destination", - schemaPath: "#/$defs/DestinationDocument/required", - keyword: "required", - params: { missingProperty: "table" }, - message: "must have required property '" + "table" + "'", + if (data.available_actions !== undefined) { + let data0 = data.available_actions; + if (Array.isArray(data0)) { + if (data0.length > 7) { + const err6 = { + instancePath: instancePath + "/available_actions", + schemaPath: "#/properties/available_actions/maxItems", + keyword: "maxItems", + params: { limit: 7 }, + message: "must NOT have more than 7 items", }; if (vErrors === null) { - vErrors = [err10]; - } else { - vErrors.push(err10); - } - errors++; - } - for (const key1 in data3) { - if (!( - key1 === "business_key" || - key1 === "dataset" || - key1 === "project" || - key1 === "table" - )) { - const err11 = { - instancePath: instancePath + "/destination", - schemaPath: "#/$defs/DestinationDocument/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err11]; - } else { - vErrors.push(err11); - } - errors++; - } - } - if (data3.business_key !== undefined) { - let data4 = data3.business_key; - if (Array.isArray(data4)) { - const len1 = data4.length; - for (let i1 = 0; i1 < len1; i1++) { - if (typeof data4[i1] !== "string") { - const err12 = { - instancePath: instancePath + "/destination/business_key/" + i1, - schemaPath: "#/$defs/DestinationDocument/properties/business_key/items/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err12]; - } else { - vErrors.push(err12); - } - errors++; - } - } - } else { - const err13 = { - instancePath: instancePath + "/destination/business_key", - schemaPath: "#/$defs/DestinationDocument/properties/business_key/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", - }; - if (vErrors === null) { - vErrors = [err13]; - } else { - vErrors.push(err13); - } - errors++; - } - } - if (data3.dataset !== undefined) { - let data6 = data3.dataset; - if (typeof data6 === "string") { - if (func2(data6) < 1) { - const err14 = { - instancePath: instancePath + "/destination/dataset", - schemaPath: "#/$defs/DestinationDocument/properties/dataset/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err14]; - } else { - vErrors.push(err14); - } - errors++; - } - } else { - const err15 = { - instancePath: instancePath + "/destination/dataset", - schemaPath: "#/$defs/DestinationDocument/properties/dataset/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err15]; - } else { - vErrors.push(err15); - } - errors++; - } - } - if (data3.project !== undefined) { - let data7 = data3.project; - const _errs23 = errors; - let valid8 = false; - const _errs24 = errors; - if (typeof data7 !== "string") { - const err16 = { - instancePath: instancePath + "/destination/project", - schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf/0/type", + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + let data1 = data0[i0]; + if (typeof data1 !== "string") { + const err7 = { + instancePath: instancePath + "/available_actions/" + i0, + schemaPath: "#/$defs/RunActionKind/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err16]; + vErrors = [err7]; } else { - vErrors.push(err16); + vErrors.push(err7); } errors++; } - var _valid1 = _errs24 === errors; - valid8 = valid8 || _valid1; - const _errs26 = errors; - if (data7 !== null) { - const err17 = { - instancePath: instancePath + "/destination/project", - schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + if (!( + data1 === "refresh" || + data1 === "logs" || + data1 === "replay" || + data1 === "cancel" || + data1 === "inspect_outputs" || + data1 === "review_configuration" || + data1 === "none" + )) { + const err8 = { + instancePath: instancePath + "/available_actions/" + i0, + schemaPath: "#/$defs/RunActionKind/enum", + keyword: "enum", + params: { allowedValues: schema293.enum }, + message: "must be equal to one of the allowed values", }; if (vErrors === null) { - vErrors = [err17]; + vErrors = [err8]; } else { - vErrors.push(err17); + vErrors.push(err8); } errors++; } - var _valid1 = _errs26 === errors; - valid8 = valid8 || _valid1; - if (!valid8) { - const err18 = { - instancePath: instancePath + "/destination/project", - schemaPath: "#/$defs/DestinationDocument/properties/project/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err18]; - } else { - vErrors.push(err18); - } - errors++; + } + } else { + const err9 = { + instancePath: instancePath + "/available_actions", + schemaPath: "#/properties/available_actions/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err9]; + } else { + vErrors.push(err9); + } + errors++; + } + } + if (data.caveats !== undefined) { + let data2 = data.caveats; + if (Array.isArray(data2)) { + if (data2.length > 8) { + const err10 = { + instancePath: instancePath + "/caveats", + schemaPath: "#/properties/caveats/maxItems", + keyword: "maxItems", + params: { limit: 8 }, + message: "must NOT have more than 8 items", + }; + if (vErrors === null) { + vErrors = [err10]; } else { - errors = _errs23; - if (vErrors !== null) { - if (_errs23) { - vErrors.length = _errs23; - } else { - vErrors = null; - } - } + vErrors.push(err10); } + errors++; } - if (data3.table !== undefined) { - let data8 = data3.table; - if (typeof data8 === "string") { - if (func2(data8) < 1) { - const err19 = { - instancePath: instancePath + "/destination/table", - schemaPath: "#/$defs/DestinationDocument/properties/table/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err19]; - } else { - vErrors.push(err19); - } - errors++; - } - } else { - const err20 = { - instancePath: instancePath + "/destination/table", - schemaPath: "#/$defs/DestinationDocument/properties/table/type", + const len1 = data2.length; + for (let i1 = 0; i1 < len1; i1++) { + if (typeof data2[i1] !== "string") { + const err11 = { + instancePath: instancePath + "/caveats/" + i1, + schemaPath: "#/properties/caveats/items/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err20]; + vErrors = [err11]; } else { - vErrors.push(err20); + vErrors.push(err11); } errors++; } } } else { - const err21 = { - instancePath: instancePath + "/destination", - schemaPath: "#/$defs/DestinationDocument/type", + const err12 = { + instancePath: instancePath + "/caveats", + schemaPath: "#/properties/caveats/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "array" }, + message: "must be array", }; if (vErrors === null) { - vErrors = [err21]; + vErrors = [err12]; } else { - vErrors.push(err21); + vErrors.push(err12); } errors++; } } - if (data.max_batch_rows !== undefined) { - let data9 = data.max_batch_rows; - if (!(typeof data9 == "number" && !(data9 % 1) && !isNaN(data9) && isFinite(data9))) { - const err22 = { - instancePath: instancePath + "/max_batch_rows", - schemaPath: "#/properties/max_batch_rows/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err22]; - } else { - vErrors.push(err22); - } - errors++; - } - if (typeof data9 == "number" && isFinite(data9)) { - if (data9 > 100000 || isNaN(data9)) { - const err23 = { - instancePath: instancePath + "/max_batch_rows", - schemaPath: "#/properties/max_batch_rows/maximum", - keyword: "maximum", - params: { comparison: "<=", limit: 100000 }, - message: "must be <= 100000", + if (data.details !== undefined) { + let data4 = data.details; + if (Array.isArray(data4)) { + if (data4.length > 8) { + const err13 = { + instancePath: instancePath + "/details", + schemaPath: "#/properties/details/maxItems", + keyword: "maxItems", + params: { limit: 8 }, + message: "must NOT have more than 8 items", }; if (vErrors === null) { - vErrors = [err23]; + vErrors = [err13]; } else { - vErrors.push(err23); + vErrors.push(err13); } errors++; } - if (data9 <= 0 || isNaN(data9)) { - const err24 = { - instancePath: instancePath + "/max_batch_rows", - schemaPath: "#/properties/max_batch_rows/exclusiveMinimum", - keyword: "exclusiveMinimum", - params: { comparison: ">", limit: 0 }, - message: "must be > 0", - }; - if (vErrors === null) { - vErrors = [err24]; - } else { - vErrors.push(err24); + const len2 = data4.length; + for (let i2 = 0; i2 < len2; i2++) { + if (typeof data4[i2] !== "string") { + const err14 = { + instancePath: instancePath + "/details/" + i2, + schemaPath: "#/properties/details/items/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err14]; + } else { + vErrors.push(err14); + } + errors++; } - errors++; } + } else { + const err15 = { + instancePath: instancePath + "/details", + schemaPath: "#/properties/details/type", + keyword: "type", + params: { type: "array" }, + message: "must be array", + }; + if (vErrors === null) { + vErrors = [err15]; + } else { + vErrors.push(err15); + } + errors++; } } - if (data.partitioning !== undefined) { - let data10 = data.partitioning; - const _errs33 = errors; - let valid9 = false; - const _errs34 = errors; + if (data.next_action !== undefined) { if ( - !validate389(data10, { - instancePath: instancePath + "/partitioning", + !validate426(data.next_action, { + instancePath: instancePath + "/next_action", parentData: data, - parentDataProperty: "partitioning", + parentDataProperty: "next_action", rootData, dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate389.errors : vErrors.concat(validate389.errors); + vErrors = vErrors === null ? validate426.errors : vErrors.concat(validate426.errors); errors = vErrors.length; } - var _valid2 = _errs34 === errors; - valid9 = valid9 || _valid2; - const _errs35 = errors; - if (data10 !== null) { - const err25 = { - instancePath: instancePath + "/partitioning", - schemaPath: "#/properties/partitioning/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err25]; - } else { - vErrors.push(err25); - } - errors++; - } - var _valid2 = _errs35 === errors; - valid9 = valid9 || _valid2; - if (!valid9) { - const err26 = { - instancePath: instancePath + "/partitioning", - schemaPath: "#/properties/partitioning/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err26]; - } else { - vErrors.push(err26); - } - errors++; - } else { - errors = _errs33; - if (vErrors !== null) { - if (_errs33) { - vErrors.length = _errs33; - } else { - vErrors = null; - } - } - } } - if (data.schema_evolution !== undefined) { - let data11 = data.schema_evolution; - if (typeof data11 !== "string") { - const err27 = { - instancePath: instancePath + "/schema_evolution", - schemaPath: "#/$defs/SchemaEvolution/type", + if (data.results_available !== undefined) { + if (typeof data.results_available !== "boolean") { + const err16 = { + instancePath: instancePath + "/results_available", + schemaPath: "#/properties/results_available/type", keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err27]; - } else { - vErrors.push(err27); - } - errors++; - } - if (!(data11 === "strict" || data11 === "additive")) { - const err28 = { - instancePath: instancePath + "/schema_evolution", - schemaPath: "#/$defs/SchemaEvolution/enum", - keyword: "enum", - params: { allowedValues: schema267.enum }, - message: "must be equal to one of the allowed values", + params: { type: "boolean" }, + message: "must be boolean", }; if (vErrors === null) { - vErrors = [err28]; + vErrors = [err16]; } else { - vErrors.push(err28); + vErrors.push(err16); } errors++; } } - if (data.transport !== undefined) { - let data12 = data.transport; - if (typeof data12 !== "string") { - const err29 = { - instancePath: instancePath + "/transport", - schemaPath: "#/properties/transport/type", + if (data.run_id !== undefined) { + if (typeof data.run_id !== "string") { + const err17 = { + instancePath: instancePath + "/run_id", + schemaPath: "#/properties/run_id/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err29]; - } else { - vErrors.push(err29); - } - errors++; - } - if (!(data12 === "load_job" || data12 === "storage_write" || data12 === "copy")) { - const err30 = { - instancePath: instancePath + "/transport", - schemaPath: "#/properties/transport/enum", - keyword: "enum", - params: { allowedValues: schema263.properties.transport.enum }, - message: "must be equal to one of the allowed values", - }; - if (vErrors === null) { - vErrors = [err30]; + vErrors = [err17]; } else { - vErrors.push(err30); + vErrors.push(err17); } errors++; } } - if (data.write_mode !== undefined) { - let data13 = data.write_mode; - if (typeof data13 !== "string") { - const err31 = { - instancePath: instancePath + "/write_mode", - schemaPath: "#/$defs/WriteMode/type", + if (data.state !== undefined) { + let data9 = data.state; + if (typeof data9 !== "string") { + const err18 = { + instancePath: instancePath + "/state", + schemaPath: "#/$defs/RunState/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err31]; + vErrors = [err18]; } else { - vErrors.push(err31); + vErrors.push(err18); } errors++; } if (!( - data13 === "scd1" || - data13 === "scd2" || - data13 === "snapshot" || - data13 === "incremental" || - data13 === "replace" + data9 === "queued" || + data9 === "running" || + data9 === "succeeded" || + data9 === "failed" || + data9 === "canceling" || + data9 === "canceled" || + data9 === "retrying" )) { - const err32 = { - instancePath: instancePath + "/write_mode", - schemaPath: "#/$defs/WriteMode/enum", + const err19 = { + instancePath: instancePath + "/state", + schemaPath: "#/$defs/RunState/enum", keyword: "enum", - params: { allowedValues: schema268.enum }, + params: { allowedValues: schema296.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { - vErrors = [err32]; + vErrors = [err19]; } else { - vErrors.push(err32); + vErrors.push(err19); } errors++; } } - } else { - const err33 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err33]; - } else { - vErrors.push(err33); - } - errors++; - } - validate388.errors = vErrors; - return errors === 0; -} -validate388.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -function validate387( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate387.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.writer !== undefined) { - let data1 = data.writer; - const _errs4 = errors; - let valid3 = false; - const _errs5 = errors; - if ( - !validate388(data1, { - instancePath: instancePath + "/writer", - parentData: data, - parentDataProperty: "writer", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate388.errors : vErrors.concat(validate388.errors); - errors = vErrors.length; - } - var _valid0 = _errs5 === errors; - valid3 = valid3 || _valid0; - const _errs6 = errors; - if (data1 !== null) { - const err0 = { - instancePath: instancePath + "/writer", - schemaPath: "#/properties/writer/anyOf/1/type", + if (data.summary !== undefined) { + if (typeof data.summary !== "string") { + const err20 = { + instancePath: instancePath + "/summary", + schemaPath: "#/properties/summary/type", keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - var _valid0 = _errs6 === errors; - valid3 = valid3 || _valid0; - if (!valid3) { - const err1 = { - instancePath: instancePath + "/writer", - schemaPath: "#/properties/writer/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err20]; } else { - vErrors.push(err1); + vErrors.push(err20); } errors++; - } else { - errors = _errs4; - if (vErrors !== null) { - if (_errs4) { - vErrors.length = _errs4; - } else { - vErrors = null; - } - } } } } else { - const err2 = { + const err21 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -40648,121 +47478,657 @@ function validate387( message: "must be object", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err21]; } else { - vErrors.push(err2); + vErrors.push(err21); } errors++; } - validate387.errors = vErrors; + validate425.errors = vErrors; return errors === 0; } -validate387.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate425.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +export const validateRunPage = validate428; +const schema297 = { + $defs: { + GraphRepairWindow: { + additionalProperties: false, + description: "UTC calendar dates: start is inclusive and end is exclusive.", + properties: { + end_date: { format: "date", title: "End Date", type: "string" }, + start_date: { format: "date", title: "Start Date", type: "string" }, + }, + required: ["start_date", "end_date"], + title: "GraphRepairWindow", + type: "object", + }, + RunPlacementDecision: { + additionalProperties: false, + description: "Fixed-size explanation of the execution-plan selection used by Control.", + properties: { + decision_schema: { + const: "io.dander.control.placement-decision/v1", + title: "Decision Schema", + type: "string", + }, + eligible_plan_count: { + maximum: 100, + minimum: 1, + title: "Eligible Plan Count", + type: "integer", + }, + estimated_cost_microusd: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Estimated Cost Microusd", + }, + max_cost_microusd: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Max Cost Microusd", + }, + mode: { + enum: ["automatic", "manual_override", "configured_default", "scheduled", "replay"], + title: "Mode", + type: "string", + }, + preferred_locality: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Preferred Locality", + }, + selected_environment: { title: "Selected Environment", type: "string" }, + selected_locality: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Selected Locality", + }, + }, + required: ["decision_schema", "mode", "selected_environment", "eligible_plan_count"], + title: "RunPlacementDecision", + type: "object", + }, + RunSizeClassDecision: { + additionalProperties: false, + description: "Fixed-size explanation of the selected execution resource class.", + properties: { + cpu_millis: { minimum: 1, title: "Cpu Millis", type: "integer" }, + decision_schema: { + const: "io.dander.control.size-class-decision/v2", + title: "Decision Schema", + type: "string", + }, + eligible_plan_count: { + maximum: 100, + minimum: 1, + title: "Eligible Plan Count", + type: "integer", + }, + ephemeral_storage_mib: { + anyOf: [{ minimum: 1, type: "integer" }, { type: "null" }], + default: null, + title: "Ephemeral Storage Mib", + }, + estimate_observed_at: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Estimate Observed At", + }, + estimate_source: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Estimate Source", + }, + estimated_input_bytes: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Estimated Input Bytes", + }, + max_input_bytes: { + maximum: 9223372036854776000, + minimum: 0, + title: "Max Input Bytes", + type: "integer", + }, + memory_mib: { minimum: 1, title: "Memory Mib", type: "integer" }, + mode: { + enum: ["automatic_input", "manual_override", "configured_default", "scheduled", "replay"], + title: "Mode", + type: "string", + }, + selected_size_class: { title: "Selected Size Class", type: "string" }, + }, + required: [ + "decision_schema", + "mode", + "selected_size_class", + "max_input_bytes", + "cpu_millis", + "memory_mib", + "eligible_plan_count", + ], + title: "RunSizeClassDecision", + type: "object", + }, + RunState: { + enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], + title: "RunState", + type: "string", + }, + RunStatusResponse: { + additionalProperties: false, + properties: { + affected: { default: 0, minimum: 0, title: "Affected", type: "integer" }, + assertions: { default: 0, minimum: 0, title: "Assertions", type: "integer" }, + assets: { default: 0, minimum: 0, title: "Assets", type: "integer" }, + can_cancel: { default: false, title: "Can Cancel", type: "boolean" }, + can_replay: { default: false, title: "Can Replay", type: "boolean" }, + endpoints: { default: 0, minimum: 0, title: "Endpoints", type: "integer" }, + extracted: { default: 0, minimum: 0, title: "Extracted", type: "integer" }, + failure_code: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Failure Code", + }, + failure_summary: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Failure Summary", + }, + finished_at: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Finished At", + }, + logs_available: { default: false, title: "Logs Available", type: "boolean" }, + models: { default: 0, minimum: 0, title: "Models", type: "integer" }, + placement: { + anyOf: [{ $ref: "#/$defs/RunPlacementDecision" }, { type: "null" }], + default: null, + }, + repair_window: { + anyOf: [{ $ref: "#/$defs/GraphRepairWindow" }, { type: "null" }], + default: null, + }, + result_schema: { + anyOf: [ + { const: "io.dander.control.execution-result-summary/v1", type: "string" }, + { type: "null" }, + ], + default: null, + title: "Result Schema", + }, + run_id: { title: "Run Id", type: "string" }, + sizing: { + anyOf: [{ $ref: "#/$defs/RunSizeClassDecision" }, { type: "null" }], + default: null, + }, + skipped: { default: false, title: "Skipped", type: "boolean" }, + stage: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Stage" }, + started_at: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Started At", + }, + state: { $ref: "#/$defs/RunState" }, + telemetry: { + anyOf: [{ $ref: "#/$defs/RunTelemetrySummary" }, { type: "null" }], + default: null, + }, + }, + required: ["run_id", "state"], + title: "RunStatusResponse", + type: "object", + }, + RunTelemetrySummary: { + additionalProperties: false, + description: "Fixed-size telemetry totals; provider operation details remain in logs.", + properties: { + bytes_billed: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Billed", + type: "integer", + }, + bytes_processed: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Processed", + type: "integer", + }, + bytes_read: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Read", + type: "integer", + }, + bytes_written: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Written", + type: "integer", + }, + duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Duration Ms", + type: "integer", + }, + execution_duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Execution Duration Ms", + type: "integer", + }, + operation_count: { + maximum: 9223372036854776000, + minimum: 0, + title: "Operation Count", + type: "integer", + }, + queue_duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Queue Duration Ms", + type: "integer", + }, + retry_count: { + maximum: 9223372036854776000, + minimum: 0, + title: "Retry Count", + type: "integer", + }, + rows_affected: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Affected", + type: "integer", + }, + rows_read: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Read", + type: "integer", + }, + rows_written: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Written", + type: "integer", + }, + spill_bytes: { + maximum: 9223372036854776000, + minimum: 0, + title: "Spill Bytes", + type: "integer", + }, + }, + required: [ + "duration_ms", + "operation_count", + "retry_count", + "rows_read", + "rows_written", + "rows_affected", + "bytes_read", + "bytes_written", + "bytes_processed", + "bytes_billed", + "queue_duration_ms", + "execution_duration_ms", + "spill_bytes", + ], + title: "RunTelemetrySummary", + type: "object", + }, + }, + $id: "urn:dander:control:contracts:v1:run-page", + $schema: "https://json-schema.org/draft/2020-12/schema", + additionalProperties: false, + description: "A bounded page of normalized, non-sensitive run summaries.", + properties: { + items: { + items: { $ref: "#/$defs/RunStatusResponse" }, + maxItems: 100, + title: "Items", + type: "array", + }, + next_cursor: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Next Cursor", + }, + }, + required: ["items"], + title: "RunPageResponse", + type: "object", +}; +const schema298 = { + additionalProperties: false, + properties: { + affected: { default: 0, minimum: 0, title: "Affected", type: "integer" }, + assertions: { default: 0, minimum: 0, title: "Assertions", type: "integer" }, + assets: { default: 0, minimum: 0, title: "Assets", type: "integer" }, + can_cancel: { default: false, title: "Can Cancel", type: "boolean" }, + can_replay: { default: false, title: "Can Replay", type: "boolean" }, + endpoints: { default: 0, minimum: 0, title: "Endpoints", type: "integer" }, + extracted: { default: 0, minimum: 0, title: "Extracted", type: "integer" }, + failure_code: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Failure Code", + }, + failure_summary: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Failure Summary", + }, + finished_at: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Finished At", + }, + logs_available: { default: false, title: "Logs Available", type: "boolean" }, + models: { default: 0, minimum: 0, title: "Models", type: "integer" }, + placement: { + anyOf: [{ $ref: "#/$defs/RunPlacementDecision" }, { type: "null" }], + default: null, + }, + repair_window: { + anyOf: [{ $ref: "#/$defs/GraphRepairWindow" }, { type: "null" }], + default: null, + }, + result_schema: { + anyOf: [ + { const: "io.dander.control.execution-result-summary/v1", type: "string" }, + { type: "null" }, + ], + default: null, + title: "Result Schema", + }, + run_id: { title: "Run Id", type: "string" }, + sizing: { anyOf: [{ $ref: "#/$defs/RunSizeClassDecision" }, { type: "null" }], default: null }, + skipped: { default: false, title: "Skipped", type: "boolean" }, + stage: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Stage" }, + started_at: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Started At", + }, + state: { $ref: "#/$defs/RunState" }, + telemetry: { + anyOf: [{ $ref: "#/$defs/RunTelemetrySummary" }, { type: "null" }], + default: null, + }, + }, + required: ["run_id", "state"], + title: "RunStatusResponse", + type: "object", +}; +const schema299 = { + additionalProperties: false, + description: "Fixed-size explanation of the execution-plan selection used by Control.", + properties: { + decision_schema: { + const: "io.dander.control.placement-decision/v1", + title: "Decision Schema", + type: "string", + }, + eligible_plan_count: { + maximum: 100, + minimum: 1, + title: "Eligible Plan Count", + type: "integer", + }, + estimated_cost_microusd: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Estimated Cost Microusd", + }, + max_cost_microusd: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Max Cost Microusd", + }, + mode: { + enum: ["automatic", "manual_override", "configured_default", "scheduled", "replay"], + title: "Mode", + type: "string", + }, + preferred_locality: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Preferred Locality", + }, + selected_environment: { title: "Selected Environment", type: "string" }, + selected_locality: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Selected Locality", + }, + }, + required: ["decision_schema", "mode", "selected_environment", "eligible_plan_count"], + title: "RunPlacementDecision", + type: "object", +}; +const schema300 = { + additionalProperties: false, + description: "UTC calendar dates: start is inclusive and end is exclusive.", + properties: { + end_date: { format: "date", title: "End Date", type: "string" }, + start_date: { format: "date", title: "Start Date", type: "string" }, + }, + required: ["start_date", "end_date"], + title: "GraphRepairWindow", + type: "object", +}; +const schema301 = { + additionalProperties: false, + description: "Fixed-size explanation of the selected execution resource class.", + properties: { + cpu_millis: { minimum: 1, title: "Cpu Millis", type: "integer" }, + decision_schema: { + const: "io.dander.control.size-class-decision/v2", + title: "Decision Schema", + type: "string", + }, + eligible_plan_count: { + maximum: 100, + minimum: 1, + title: "Eligible Plan Count", + type: "integer", + }, + ephemeral_storage_mib: { + anyOf: [{ minimum: 1, type: "integer" }, { type: "null" }], + default: null, + title: "Ephemeral Storage Mib", + }, + estimate_observed_at: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Estimate Observed At", + }, + estimate_source: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Estimate Source", + }, + estimated_input_bytes: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Estimated Input Bytes", + }, + max_input_bytes: { + maximum: 9223372036854776000, + minimum: 0, + title: "Max Input Bytes", + type: "integer", + }, + memory_mib: { minimum: 1, title: "Memory Mib", type: "integer" }, + mode: { + enum: ["automatic_input", "manual_override", "configured_default", "scheduled", "replay"], + title: "Mode", + type: "string", + }, + selected_size_class: { title: "Selected Size Class", type: "string" }, + }, + required: [ + "decision_schema", + "mode", + "selected_size_class", + "max_input_bytes", + "cpu_millis", + "memory_mib", + "eligible_plan_count", + ], + title: "RunSizeClassDecision", + type: "object", +}; +const schema302 = { + enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], + title: "RunState", + type: "string", +}; +const schema303 = { + additionalProperties: false, + description: "Fixed-size telemetry totals; provider operation details remain in logs.", + properties: { + bytes_billed: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Billed", + type: "integer", + }, + bytes_processed: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Processed", + type: "integer", + }, + bytes_read: { maximum: 9223372036854776000, minimum: 0, title: "Bytes Read", type: "integer" }, + bytes_written: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Written", + type: "integer", + }, + duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Duration Ms", + type: "integer", + }, + execution_duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Execution Duration Ms", + type: "integer", + }, + operation_count: { + maximum: 9223372036854776000, + minimum: 0, + title: "Operation Count", + type: "integer", + }, + queue_duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Queue Duration Ms", + type: "integer", + }, + retry_count: { + maximum: 9223372036854776000, + minimum: 0, + title: "Retry Count", + type: "integer", + }, + rows_affected: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Affected", + type: "integer", + }, + rows_read: { maximum: 9223372036854776000, minimum: 0, title: "Rows Read", type: "integer" }, + rows_written: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Written", + type: "integer", + }, + spill_bytes: { + maximum: 9223372036854776000, + minimum: 0, + title: "Spill Bytes", + type: "integer", + }, + }, + required: [ + "duration_ms", + "operation_count", + "retry_count", + "rows_read", + "rows_written", + "rows_affected", + "bytes_read", + "bytes_written", + "bytes_processed", + "bytes_billed", + "queue_duration_ms", + "execution_duration_ms", + "spill_bytes", + ], + title: "RunTelemetrySummary", + type: "object", +}; -function validate386( +function validate429( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate386.evaluated; + const evaluated0 = validate429.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } if (evaluated0.dynamicItems) { evaluated0.items = undefined; } - const _errs1 = errors; - const _errs2 = errors; - if (data && typeof data == "object" && !Array.isArray(data)) { - let missing0; - if ( - (data.config === undefined && (missing0 = "config")) || - (data.params === undefined && (missing0 = "params")) - ) { - const err0 = {}; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - } - var valid0 = _errs2 === errors; - if (valid0) { - const err1 = { - instancePath, - schemaPath: "#/not", - keyword: "not", - params: {}, - message: "must NOT be valid", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } else { - errors = _errs1; - if (vErrors !== null) { - if (_errs1) { - vErrors.length = _errs1; - } else { - vErrors = null; - } - } - } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.id === undefined) { - const err2 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "id" }, - message: "must have required property '" + "id" + "'", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - if (data.type === undefined) { - const err3 = { + if (data.run_id === undefined) { + const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "type" }, - message: "must have required property '" + "type" + "'", + params: { missingProperty: "run_id" }, + message: "must have required property '" + "run_id" + "'", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err0]; } else { - vErrors.push(err3); + vErrors.push(err0); } errors++; } - if (data.name === undefined) { - const err4 = { + if (data.state === undefined) { + const err1 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "name" }, - message: "must have required property '" + "name" + "'", + params: { missingProperty: "state" }, + message: "must have required property '" + "state" + "'", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err1]; } else { - vErrors.push(err4); + vErrors.push(err1); } errors++; } for (const key0 in data) { - if (!func1.call(schema260.properties, key0)) { - const err5 = { + if (!func1.call(schema298.properties, key0)) { + const err2 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -40770,246 +48136,196 @@ function validate386( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err2]; } else { - vErrors.push(err5); + vErrors.push(err2); } errors++; } } - if (data.config !== undefined) { - if ( - !validate387(data.config, { - instancePath: instancePath + "/config", - parentData: data, - parentDataProperty: "config", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate387.errors : vErrors.concat(validate387.errors); - errors = vErrors.length; - } - } - if (data.cursor !== undefined) { - let data1 = data.cursor; - const _errs6 = errors; - let valid2 = false; - const _errs7 = errors; - if ( - !validate321(data1, { - instancePath: instancePath + "/cursor", - parentData: data, - parentDataProperty: "cursor", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate321.errors : vErrors.concat(validate321.errors); - errors = vErrors.length; - } - var _valid0 = _errs7 === errors; - valid2 = valid2 || _valid0; - const _errs8 = errors; - if (data1 !== null) { - const err6 = { - instancePath: instancePath + "/cursor", - schemaPath: "#/properties/cursor/anyOf/1/type", + if (data.affected !== undefined) { + let data0 = data.affected; + if (!(typeof data0 == "number" && !(data0 % 1) && !isNaN(data0) && isFinite(data0))) { + const err3 = { + instancePath: instancePath + "/affected", + schemaPath: "#/properties/affected/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err3]; } else { - vErrors.push(err6); + vErrors.push(err3); } errors++; } - var _valid0 = _errs8 === errors; - valid2 = valid2 || _valid0; - if (!valid2) { - const err7 = { - instancePath: instancePath + "/cursor", - schemaPath: "#/properties/cursor/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } else { - errors = _errs6; - if (vErrors !== null) { - if (_errs6) { - vErrors.length = _errs6; + if (typeof data0 == "number" && isFinite(data0)) { + if (data0 < 0 || isNaN(data0)) { + const err4 = { + instancePath: instancePath + "/affected", + schemaPath: "#/properties/affected/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err4]; } else { - vErrors = null; + vErrors.push(err4); } + errors++; } } } - if (data.fields !== undefined) { - let data2 = data.fields; - if (Array.isArray(data2)) { - const len0 = data2.length; - for (let i0 = 0; i0 < len0; i0++) { - if ( - !validate325(data2[i0], { - instancePath: instancePath + "/fields/" + i0, - parentData: data2, - parentDataProperty: i0, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate325.errors : vErrors.concat(validate325.errors); - errors = vErrors.length; - } - } - } else { - const err8 = { - instancePath: instancePath + "/fields", - schemaPath: "#/properties/fields/type", + if (data.assertions !== undefined) { + let data1 = data.assertions; + if (!(typeof data1 == "number" && !(data1 % 1) && !isNaN(data1) && isFinite(data1))) { + const err5 = { + instancePath: instancePath + "/assertions", + schemaPath: "#/properties/assertions/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err5]; } else { - vErrors.push(err8); + vErrors.push(err5); } errors++; } + if (typeof data1 == "number" && isFinite(data1)) { + if (data1 < 0 || isNaN(data1)) { + const err6 = { + instancePath: instancePath + "/assertions", + schemaPath: "#/properties/assertions/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err6]; + } else { + vErrors.push(err6); + } + errors++; + } + } } - if (data.id !== undefined) { - if (typeof data.id !== "string") { - const err9 = { - instancePath: instancePath + "/id", - schemaPath: "#/properties/id/type", + if (data.assets !== undefined) { + let data2 = data.assets; + if (!(typeof data2 == "number" && !(data2 % 1) && !isNaN(data2) && isFinite(data2))) { + const err7 = { + instancePath: instancePath + "/assets", + schemaPath: "#/properties/assets/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err7]; } else { - vErrors.push(err9); + vErrors.push(err7); } errors++; } + if (typeof data2 == "number" && isFinite(data2)) { + if (data2 < 0 || isNaN(data2)) { + const err8 = { + instancePath: instancePath + "/assets", + schemaPath: "#/properties/assets/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err8]; + } else { + vErrors.push(err8); + } + errors++; + } + } } - if (data.name !== undefined) { - if (typeof data.name !== "string") { - const err10 = { - instancePath: instancePath + "/name", - schemaPath: "#/properties/name/type", + if (data.can_cancel !== undefined) { + if (typeof data.can_cancel !== "boolean") { + const err9 = { + instancePath: instancePath + "/can_cancel", + schemaPath: "#/properties/can_cancel/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "boolean" }, + message: "must be boolean", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err9]; } else { - vErrors.push(err10); + vErrors.push(err9); } - errors++; - } - } - if (data.params !== undefined) { - let data6 = data.params; - const _errs18 = errors; - let valid5 = false; - const _errs19 = errors; - if ( - !validate387(data6, { - instancePath: instancePath + "/params", - parentData: data, - parentDataProperty: "params", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate387.errors : vErrors.concat(validate387.errors); - errors = vErrors.length; + errors++; } - var _valid1 = _errs19 === errors; - valid5 = valid5 || _valid1; - const _errs20 = errors; - if (data6 !== null) { - const err11 = { - instancePath: instancePath + "/params", - schemaPath: "#/properties/params/anyOf/1/type", + } + if (data.can_replay !== undefined) { + if (typeof data.can_replay !== "boolean") { + const err10 = { + instancePath: instancePath + "/can_replay", + schemaPath: "#/properties/can_replay/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "boolean" }, + message: "must be boolean", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err10]; } else { - vErrors.push(err11); + vErrors.push(err10); } errors++; } - var _valid1 = _errs20 === errors; - valid5 = valid5 || _valid1; - if (!valid5) { - const err12 = { - instancePath: instancePath + "/params", - schemaPath: "#/properties/params/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", + } + if (data.endpoints !== undefined) { + let data5 = data.endpoints; + if (!(typeof data5 == "number" && !(data5 % 1) && !isNaN(data5) && isFinite(data5))) { + const err11 = { + instancePath: instancePath + "/endpoints", + schemaPath: "#/properties/endpoints/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { - vErrors = [err12]; + vErrors = [err11]; } else { - vErrors.push(err12); + vErrors.push(err11); } errors++; - } else { - errors = _errs18; - if (vErrors !== null) { - if (_errs18) { - vErrors.length = _errs18; + } + if (typeof data5 == "number" && isFinite(data5)) { + if (data5 < 0 || isNaN(data5)) { + const err12 = { + instancePath: instancePath + "/endpoints", + schemaPath: "#/properties/endpoints/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err12]; } else { - vErrors = null; + vErrors.push(err12); } + errors++; } } } - if (data.trigger !== undefined) { - let data7 = data.trigger; - const _errs24 = errors; - let valid6 = false; - const _errs25 = errors; - if ( - !validate343(data7, { - instancePath: instancePath + "/trigger", - parentData: data, - parentDataProperty: "trigger", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate343.errors : vErrors.concat(validate343.errors); - errors = vErrors.length; - } - var _valid2 = _errs25 === errors; - valid6 = valid6 || _valid2; - const _errs26 = errors; - if (data7 !== null) { + if (data.extracted !== undefined) { + let data6 = data.extracted; + if (!(typeof data6 == "number" && !(data6 % 1) && !isNaN(data6) && isFinite(data6))) { const err13 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf/1/type", + instancePath: instancePath + "/extracted", + schemaPath: "#/properties/extracted/type", keyword: "type", - params: { type: "null" }, - message: "must be null", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { vErrors = [err13]; @@ -41018,39 +48334,33 @@ function validate386( } errors++; } - var _valid2 = _errs26 === errors; - valid6 = valid6 || _valid2; - if (!valid6) { - const err14 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err14]; - } else { - vErrors.push(err14); - } - errors++; - } else { - errors = _errs24; - if (vErrors !== null) { - if (_errs24) { - vErrors.length = _errs24; + if (typeof data6 == "number" && isFinite(data6)) { + if (data6 < 0 || isNaN(data6)) { + const err14 = { + instancePath: instancePath + "/extracted", + schemaPath: "#/properties/extracted/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err14]; } else { - vErrors = null; + vErrors.push(err14); } + errors++; } } } - if (data.type !== undefined) { - let data8 = data.type; - if (typeof data8 !== "string") { + if (data.failure_code !== undefined) { + let data7 = data.failure_code; + const _errs17 = errors; + let valid1 = false; + const _errs18 = errors; + if (typeof data7 !== "string") { const err15 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/type", + instancePath: instancePath + "/failure_code", + schemaPath: "#/properties/failure_code/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", @@ -41062,1704 +48372,3161 @@ function validate386( } errors++; } - if ("target" !== data8) { + var _valid0 = _errs18 === errors; + valid1 = valid1 || _valid0; + const _errs20 = errors; + if (data7 !== null) { const err16 = { - instancePath: instancePath + "/type", - schemaPath: "#/properties/type/const", - keyword: "const", - params: { allowedValue: "target" }, - message: "must be equal to constant", - }; - if (vErrors === null) { - vErrors = [err16]; - } else { - vErrors.push(err16); - } - errors++; - } - } - if (data.visual !== undefined) { - let data9 = data.visual; - const _errs31 = errors; - let valid7 = false; - const _errs32 = errors; - if ( - !validate354(data9, { - instancePath: instancePath + "/visual", - parentData: data, - parentDataProperty: "visual", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate354.errors : vErrors.concat(validate354.errors); - errors = vErrors.length; - } - var _valid3 = _errs32 === errors; - valid7 = valid7 || _valid3; - const _errs33 = errors; - if (data9 !== null) { - const err17 = { - instancePath: instancePath + "/visual", - schemaPath: "#/properties/visual/anyOf/1/type", + instancePath: instancePath + "/failure_code", + schemaPath: "#/properties/failure_code/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err17]; + vErrors = [err16]; } else { - vErrors.push(err17); + vErrors.push(err16); } errors++; } - var _valid3 = _errs33 === errors; - valid7 = valid7 || _valid3; - if (!valid7) { - const err18 = { - instancePath: instancePath + "/visual", - schemaPath: "#/properties/visual/anyOf", + var _valid0 = _errs20 === errors; + valid1 = valid1 || _valid0; + if (!valid1) { + const err17 = { + instancePath: instancePath + "/failure_code", + schemaPath: "#/properties/failure_code/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err18]; + vErrors = [err17]; } else { - vErrors.push(err18); + vErrors.push(err17); } errors++; } else { - errors = _errs31; + errors = _errs17; if (vErrors !== null) { - if (_errs31) { - vErrors.length = _errs31; + if (_errs17) { + vErrors.length = _errs17; } else { vErrors = null; } } } } - } else { - const err19 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err19]; - } else { - vErrors.push(err19); - } - errors++; - } - validate386.errors = vErrors; - return errors === 0; -} -validate386.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -const schema269 = { - additionalProperties: false, - not: { required: ["config", "params"] }, - properties: { - config: { $ref: "#/$defs/JsonObject" }, - cursor: { - anyOf: [{ $ref: "#/$defs/CursorStrategyDocument" }, { type: "null" }], - default: null, - }, - fields: { items: { $ref: "#/$defs/NodeFieldDocument" }, title: "Fields", type: "array" }, - id: { title: "Id", type: "string" }, - name: { title: "Name", type: "string" }, - params: { - anyOf: [{ $ref: "#/$defs/JsonObject" }, { type: "null" }], - default: null, - deprecated: true, - "x-dander-canonical-name": "config", - }, - trigger: { anyOf: [{ $ref: "#/$defs/TriggerDocument" }, { type: "null" }], default: null }, - type: { $ref: "#/$defs/ExtensionNodeType" }, - visual: { anyOf: [{ $ref: "#/$defs/NodeVisualDocument" }, { type: "null" }], default: null }, - }, - required: ["id", "type", "name"], - title: "ExtensionNodeDocument", - type: "object", -}; -const schema270 = { not: { enum: ["source", "transform", "target"] }, type: "string" }; - -function validate399( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate399.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - const _errs1 = errors; - const _errs2 = errors; - if (data && typeof data == "object" && !Array.isArray(data)) { - let missing0; - if ( - (data.config === undefined && (missing0 = "config")) || - (data.params === undefined && (missing0 = "params")) - ) { - const err0 = {}; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - } - var valid0 = _errs2 === errors; - if (valid0) { - const err1 = { - instancePath, - schemaPath: "#/not", - keyword: "not", - params: {}, - message: "must NOT be valid", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } else { - errors = _errs1; - if (vErrors !== null) { - if (_errs1) { - vErrors.length = _errs1; - } else { - vErrors = null; - } - } - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.id === undefined) { - const err2 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "id" }, - message: "must have required property '" + "id" + "'", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - if (data.type === undefined) { - const err3 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "type" }, - message: "must have required property '" + "type" + "'", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - if (data.name === undefined) { - const err4 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "name" }, - message: "must have required property '" + "name" + "'", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - for (const key0 in data) { - if (!func1.call(schema269.properties, key0)) { - const err5 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + if (data.failure_summary !== undefined) { + let data8 = data.failure_summary; + const _errs23 = errors; + let valid2 = false; + const _errs24 = errors; + if (typeof data8 !== "string") { + const err18 = { + instancePath: instancePath + "/failure_summary", + schemaPath: "#/properties/failure_summary/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err18]; } else { - vErrors.push(err5); + vErrors.push(err18); } errors++; } - } - if (data.config !== undefined) { - if ( - !validate291(data.config, { - instancePath: instancePath + "/config", - parentData: data, - parentDataProperty: "config", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - } - if (data.cursor !== undefined) { - let data1 = data.cursor; - const _errs6 = errors; - let valid2 = false; - const _errs7 = errors; - if ( - !validate321(data1, { - instancePath: instancePath + "/cursor", - parentData: data, - parentDataProperty: "cursor", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate321.errors : vErrors.concat(validate321.errors); - errors = vErrors.length; - } - var _valid0 = _errs7 === errors; - valid2 = valid2 || _valid0; - const _errs8 = errors; - if (data1 !== null) { - const err6 = { - instancePath: instancePath + "/cursor", - schemaPath: "#/properties/cursor/anyOf/1/type", + var _valid1 = _errs24 === errors; + valid2 = valid2 || _valid1; + const _errs26 = errors; + if (data8 !== null) { + const err19 = { + instancePath: instancePath + "/failure_summary", + schemaPath: "#/properties/failure_summary/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err19]; } else { - vErrors.push(err6); + vErrors.push(err19); } errors++; } - var _valid0 = _errs8 === errors; - valid2 = valid2 || _valid0; + var _valid1 = _errs26 === errors; + valid2 = valid2 || _valid1; if (!valid2) { - const err7 = { - instancePath: instancePath + "/cursor", - schemaPath: "#/properties/cursor/anyOf", + const err20 = { + instancePath: instancePath + "/failure_summary", + schemaPath: "#/properties/failure_summary/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err20]; } else { - vErrors.push(err7); + vErrors.push(err20); } errors++; } else { - errors = _errs6; + errors = _errs23; if (vErrors !== null) { - if (_errs6) { - vErrors.length = _errs6; + if (_errs23) { + vErrors.length = _errs23; } else { vErrors = null; } } } } - if (data.fields !== undefined) { - let data2 = data.fields; - if (Array.isArray(data2)) { - const len0 = data2.length; - for (let i0 = 0; i0 < len0; i0++) { - if ( - !validate325(data2[i0], { - instancePath: instancePath + "/fields/" + i0, - parentData: data2, - parentDataProperty: i0, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate325.errors : vErrors.concat(validate325.errors); - errors = vErrors.length; - } - } - } else { - const err8 = { - instancePath: instancePath + "/fields", - schemaPath: "#/properties/fields/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); - } - errors++; - } - } - if (data.id !== undefined) { - if (typeof data.id !== "string") { - const err9 = { - instancePath: instancePath + "/id", - schemaPath: "#/properties/id/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err9]; - } else { - vErrors.push(err9); - } - errors++; - } - } - if (data.name !== undefined) { - if (typeof data.name !== "string") { - const err10 = { - instancePath: instancePath + "/name", - schemaPath: "#/properties/name/type", + if (data.finished_at !== undefined) { + let data9 = data.finished_at; + const _errs29 = errors; + let valid3 = false; + const _errs30 = errors; + if (typeof data9 !== "string") { + const err21 = { + instancePath: instancePath + "/finished_at", + schemaPath: "#/properties/finished_at/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err21]; } else { - vErrors.push(err10); + vErrors.push(err21); } errors++; } - } - if (data.params !== undefined) { - let data6 = data.params; - const _errs18 = errors; - let valid5 = false; - const _errs19 = errors; - if ( - !validate291(data6, { - instancePath: instancePath + "/params", - parentData: data, - parentDataProperty: "params", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); - errors = vErrors.length; - } - var _valid1 = _errs19 === errors; - valid5 = valid5 || _valid1; - const _errs20 = errors; - if (data6 !== null) { - const err11 = { - instancePath: instancePath + "/params", - schemaPath: "#/properties/params/anyOf/1/type", + var _valid2 = _errs30 === errors; + valid3 = valid3 || _valid2; + const _errs32 = errors; + if (data9 !== null) { + const err22 = { + instancePath: instancePath + "/finished_at", + schemaPath: "#/properties/finished_at/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err22]; } else { - vErrors.push(err11); + vErrors.push(err22); } errors++; } - var _valid1 = _errs20 === errors; - valid5 = valid5 || _valid1; - if (!valid5) { - const err12 = { - instancePath: instancePath + "/params", - schemaPath: "#/properties/params/anyOf", + var _valid2 = _errs32 === errors; + valid3 = valid3 || _valid2; + if (!valid3) { + const err23 = { + instancePath: instancePath + "/finished_at", + schemaPath: "#/properties/finished_at/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err12]; + vErrors = [err23]; } else { - vErrors.push(err12); + vErrors.push(err23); } errors++; } else { - errors = _errs18; + errors = _errs29; if (vErrors !== null) { - if (_errs18) { - vErrors.length = _errs18; + if (_errs29) { + vErrors.length = _errs29; } else { vErrors = null; } } } } - if (data.trigger !== undefined) { - let data7 = data.trigger; - const _errs24 = errors; - let valid6 = false; - const _errs25 = errors; - if ( - !validate343(data7, { - instancePath: instancePath + "/trigger", - parentData: data, - parentDataProperty: "trigger", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate343.errors : vErrors.concat(validate343.errors); - errors = vErrors.length; + if (data.logs_available !== undefined) { + if (typeof data.logs_available !== "boolean") { + const err24 = { + instancePath: instancePath + "/logs_available", + schemaPath: "#/properties/logs_available/type", + keyword: "type", + params: { type: "boolean" }, + message: "must be boolean", + }; + if (vErrors === null) { + vErrors = [err24]; + } else { + vErrors.push(err24); + } + errors++; } - var _valid2 = _errs25 === errors; - valid6 = valid6 || _valid2; - const _errs26 = errors; - if (data7 !== null) { - const err13 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf/1/type", + } + if (data.models !== undefined) { + let data11 = data.models; + if (!(typeof data11 == "number" && !(data11 % 1) && !isNaN(data11) && isFinite(data11))) { + const err25 = { + instancePath: instancePath + "/models", + schemaPath: "#/properties/models/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err25]; + } else { + vErrors.push(err25); + } + errors++; + } + if (typeof data11 == "number" && isFinite(data11)) { + if (data11 < 0 || isNaN(data11)) { + const err26 = { + instancePath: instancePath + "/models", + schemaPath: "#/properties/models/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err26]; + } else { + vErrors.push(err26); + } + errors++; + } + } + } + if (data.placement !== undefined) { + let data12 = data.placement; + const _errs39 = errors; + let valid4 = false; + const _errs40 = errors; + if (data12 && typeof data12 == "object" && !Array.isArray(data12)) { + if (data12.decision_schema === undefined) { + const err27 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/required", + keyword: "required", + params: { missingProperty: "decision_schema" }, + message: "must have required property '" + "decision_schema" + "'", + }; + if (vErrors === null) { + vErrors = [err27]; + } else { + vErrors.push(err27); + } + errors++; + } + if (data12.mode === undefined) { + const err28 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/required", + keyword: "required", + params: { missingProperty: "mode" }, + message: "must have required property '" + "mode" + "'", + }; + if (vErrors === null) { + vErrors = [err28]; + } else { + vErrors.push(err28); + } + errors++; + } + if (data12.selected_environment === undefined) { + const err29 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/required", + keyword: "required", + params: { missingProperty: "selected_environment" }, + message: "must have required property '" + "selected_environment" + "'", + }; + if (vErrors === null) { + vErrors = [err29]; + } else { + vErrors.push(err29); + } + errors++; + } + if (data12.eligible_plan_count === undefined) { + const err30 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/required", + keyword: "required", + params: { missingProperty: "eligible_plan_count" }, + message: "must have required property '" + "eligible_plan_count" + "'", + }; + if (vErrors === null) { + vErrors = [err30]; + } else { + vErrors.push(err30); + } + errors++; + } + for (const key1 in data12) { + if (!( + key1 === "decision_schema" || + key1 === "eligible_plan_count" || + key1 === "estimated_cost_microusd" || + key1 === "max_cost_microusd" || + key1 === "mode" || + key1 === "preferred_locality" || + key1 === "selected_environment" || + key1 === "selected_locality" + )) { + const err31 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err31]; + } else { + vErrors.push(err31); + } + errors++; + } + } + if (data12.decision_schema !== undefined) { + let data13 = data12.decision_schema; + if (typeof data13 !== "string") { + const err32 = { + instancePath: instancePath + "/placement/decision_schema", + schemaPath: "#/$defs/RunPlacementDecision/properties/decision_schema/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err32]; + } else { + vErrors.push(err32); + } + errors++; + } + if ("io.dander.control.placement-decision/v1" !== data13) { + const err33 = { + instancePath: instancePath + "/placement/decision_schema", + schemaPath: "#/$defs/RunPlacementDecision/properties/decision_schema/const", + keyword: "const", + params: { allowedValue: "io.dander.control.placement-decision/v1" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err33]; + } else { + vErrors.push(err33); + } + errors++; + } + } + if (data12.eligible_plan_count !== undefined) { + let data14 = data12.eligible_plan_count; + if (!(typeof data14 == "number" && !(data14 % 1) && !isNaN(data14) && isFinite(data14))) { + const err34 = { + instancePath: instancePath + "/placement/eligible_plan_count", + schemaPath: "#/$defs/RunPlacementDecision/properties/eligible_plan_count/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err34]; + } else { + vErrors.push(err34); + } + errors++; + } + if (typeof data14 == "number" && isFinite(data14)) { + if (data14 > 100 || isNaN(data14)) { + const err35 = { + instancePath: instancePath + "/placement/eligible_plan_count", + schemaPath: "#/$defs/RunPlacementDecision/properties/eligible_plan_count/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 100 }, + message: "must be <= 100", + }; + if (vErrors === null) { + vErrors = [err35]; + } else { + vErrors.push(err35); + } + errors++; + } + if (data14 < 1 || isNaN(data14)) { + const err36 = { + instancePath: instancePath + "/placement/eligible_plan_count", + schemaPath: "#/$defs/RunPlacementDecision/properties/eligible_plan_count/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err36]; + } else { + vErrors.push(err36); + } + errors++; + } + } + } + if (data12.estimated_cost_microusd !== undefined) { + let data15 = data12.estimated_cost_microusd; + const _errs49 = errors; + let valid7 = false; + const _errs50 = errors; + if (!(typeof data15 == "number" && !(data15 % 1) && !isNaN(data15) && isFinite(data15))) { + const err37 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf/0/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err37]; + } else { + vErrors.push(err37); + } + errors++; + } + if (typeof data15 == "number" && isFinite(data15)) { + if (data15 > 9223372036854776000 || isNaN(data15)) { + const err38 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf/0/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err38]; + } else { + vErrors.push(err38); + } + errors++; + } + if (data15 < 0 || isNaN(data15)) { + const err39 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf/0/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err39]; + } else { + vErrors.push(err39); + } + errors++; + } + } + var _valid4 = _errs50 === errors; + valid7 = valid7 || _valid4; + const _errs52 = errors; + if (data15 !== null) { + const err40 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err40]; + } else { + vErrors.push(err40); + } + errors++; + } + var _valid4 = _errs52 === errors; + valid7 = valid7 || _valid4; + if (!valid7) { + const err41 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err41]; + } else { + vErrors.push(err41); + } + errors++; + } else { + errors = _errs49; + if (vErrors !== null) { + if (_errs49) { + vErrors.length = _errs49; + } else { + vErrors = null; + } + } + } + } + if (data12.max_cost_microusd !== undefined) { + let data16 = data12.max_cost_microusd; + const _errs55 = errors; + let valid8 = false; + const _errs56 = errors; + if (!(typeof data16 == "number" && !(data16 % 1) && !isNaN(data16) && isFinite(data16))) { + const err42 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf/0/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err42]; + } else { + vErrors.push(err42); + } + errors++; + } + if (typeof data16 == "number" && isFinite(data16)) { + if (data16 > 9223372036854776000 || isNaN(data16)) { + const err43 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf/0/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err43]; + } else { + vErrors.push(err43); + } + errors++; + } + if (data16 < 0 || isNaN(data16)) { + const err44 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf/0/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err44]; + } else { + vErrors.push(err44); + } + errors++; + } + } + var _valid5 = _errs56 === errors; + valid8 = valid8 || _valid5; + const _errs58 = errors; + if (data16 !== null) { + const err45 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err45]; + } else { + vErrors.push(err45); + } + errors++; + } + var _valid5 = _errs58 === errors; + valid8 = valid8 || _valid5; + if (!valid8) { + const err46 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err46]; + } else { + vErrors.push(err46); + } + errors++; + } else { + errors = _errs55; + if (vErrors !== null) { + if (_errs55) { + vErrors.length = _errs55; + } else { + vErrors = null; + } + } + } + } + if (data12.mode !== undefined) { + let data17 = data12.mode; + if (typeof data17 !== "string") { + const err47 = { + instancePath: instancePath + "/placement/mode", + schemaPath: "#/$defs/RunPlacementDecision/properties/mode/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err47]; + } else { + vErrors.push(err47); + } + errors++; + } + if (!( + data17 === "automatic" || + data17 === "manual_override" || + data17 === "configured_default" || + data17 === "scheduled" || + data17 === "replay" + )) { + const err48 = { + instancePath: instancePath + "/placement/mode", + schemaPath: "#/$defs/RunPlacementDecision/properties/mode/enum", + keyword: "enum", + params: { allowedValues: schema299.properties.mode.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err48]; + } else { + vErrors.push(err48); + } + errors++; + } + } + if (data12.preferred_locality !== undefined) { + let data18 = data12.preferred_locality; + const _errs63 = errors; + let valid9 = false; + const _errs64 = errors; + if (typeof data18 !== "string") { + const err49 = { + instancePath: instancePath + "/placement/preferred_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/preferred_locality/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err49]; + } else { + vErrors.push(err49); + } + errors++; + } + var _valid6 = _errs64 === errors; + valid9 = valid9 || _valid6; + const _errs66 = errors; + if (data18 !== null) { + const err50 = { + instancePath: instancePath + "/placement/preferred_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/preferred_locality/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err50]; + } else { + vErrors.push(err50); + } + errors++; + } + var _valid6 = _errs66 === errors; + valid9 = valid9 || _valid6; + if (!valid9) { + const err51 = { + instancePath: instancePath + "/placement/preferred_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/preferred_locality/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err51]; + } else { + vErrors.push(err51); + } + errors++; + } else { + errors = _errs63; + if (vErrors !== null) { + if (_errs63) { + vErrors.length = _errs63; + } else { + vErrors = null; + } + } + } + } + if (data12.selected_environment !== undefined) { + if (typeof data12.selected_environment !== "string") { + const err52 = { + instancePath: instancePath + "/placement/selected_environment", + schemaPath: "#/$defs/RunPlacementDecision/properties/selected_environment/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err52]; + } else { + vErrors.push(err52); + } + errors++; + } + } + if (data12.selected_locality !== undefined) { + let data20 = data12.selected_locality; + const _errs71 = errors; + let valid10 = false; + const _errs72 = errors; + if (typeof data20 !== "string") { + const err53 = { + instancePath: instancePath + "/placement/selected_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/selected_locality/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err53]; + } else { + vErrors.push(err53); + } + errors++; + } + var _valid7 = _errs72 === errors; + valid10 = valid10 || _valid7; + const _errs74 = errors; + if (data20 !== null) { + const err54 = { + instancePath: instancePath + "/placement/selected_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/selected_locality/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err54]; + } else { + vErrors.push(err54); + } + errors++; + } + var _valid7 = _errs74 === errors; + valid10 = valid10 || _valid7; + if (!valid10) { + const err55 = { + instancePath: instancePath + "/placement/selected_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/selected_locality/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err55]; + } else { + vErrors.push(err55); + } + errors++; + } else { + errors = _errs71; + if (vErrors !== null) { + if (_errs71) { + vErrors.length = _errs71; + } else { + vErrors = null; + } + } + } + } + } else { + const err56 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err56]; + } else { + vErrors.push(err56); + } + errors++; + } + var _valid3 = _errs40 === errors; + valid4 = valid4 || _valid3; + const _errs76 = errors; + if (data12 !== null) { + const err57 = { + instancePath: instancePath + "/placement", + schemaPath: "#/properties/placement/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err13]; + vErrors = [err57]; } else { - vErrors.push(err13); + vErrors.push(err57); } errors++; } - var _valid2 = _errs26 === errors; - valid6 = valid6 || _valid2; - if (!valid6) { - const err14 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf", + var _valid3 = _errs76 === errors; + valid4 = valid4 || _valid3; + if (!valid4) { + const err58 = { + instancePath: instancePath + "/placement", + schemaPath: "#/properties/placement/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err14]; + vErrors = [err58]; } else { - vErrors.push(err14); + vErrors.push(err58); } errors++; } else { - errors = _errs24; + errors = _errs39; if (vErrors !== null) { - if (_errs24) { - vErrors.length = _errs24; + if (_errs39) { + vErrors.length = _errs39; } else { vErrors = null; } } } } - if (data.type !== undefined) { - let data8 = data.type; - if (typeof data8 !== "string") { - const err15 = { - instancePath: instancePath + "/type", - schemaPath: "#/$defs/ExtensionNodeType/type", + if (data.repair_window !== undefined) { + let data21 = data.repair_window; + const _errs79 = errors; + let valid11 = false; + const _errs80 = errors; + if (data21 && typeof data21 == "object" && !Array.isArray(data21)) { + if (data21.start_date === undefined) { + const err59 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/$defs/GraphRepairWindow/required", + keyword: "required", + params: { missingProperty: "start_date" }, + message: "must have required property '" + "start_date" + "'", + }; + if (vErrors === null) { + vErrors = [err59]; + } else { + vErrors.push(err59); + } + errors++; + } + if (data21.end_date === undefined) { + const err60 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/$defs/GraphRepairWindow/required", + keyword: "required", + params: { missingProperty: "end_date" }, + message: "must have required property '" + "end_date" + "'", + }; + if (vErrors === null) { + vErrors = [err60]; + } else { + vErrors.push(err60); + } + errors++; + } + for (const key2 in data21) { + if (!(key2 === "end_date" || key2 === "start_date")) { + const err61 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/$defs/GraphRepairWindow/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key2 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err61]; + } else { + vErrors.push(err61); + } + errors++; + } + } + if (data21.end_date !== undefined) { + if (!(typeof data21.end_date === "string")) { + const err62 = { + instancePath: instancePath + "/repair_window/end_date", + schemaPath: "#/$defs/GraphRepairWindow/properties/end_date/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err62]; + } else { + vErrors.push(err62); + } + errors++; + } + } + if (data21.start_date !== undefined) { + if (!(typeof data21.start_date === "string")) { + const err63 = { + instancePath: instancePath + "/repair_window/start_date", + schemaPath: "#/$defs/GraphRepairWindow/properties/start_date/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err63]; + } else { + vErrors.push(err63); + } + errors++; + } + } + } else { + const err64 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/$defs/GraphRepairWindow/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err15]; + vErrors = [err64]; } else { - vErrors.push(err15); + vErrors.push(err64); } - errors++; - } - const _errs31 = errors; - const _errs32 = errors; - if (!(data8 === "source" || data8 === "transform" || data8 === "target")) { - const err16 = {}; + errors++; + } + var _valid8 = _errs80 === errors; + valid11 = valid11 || _valid8; + const _errs88 = errors; + if (data21 !== null) { + const err65 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/properties/repair_window/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; if (vErrors === null) { - vErrors = [err16]; + vErrors = [err65]; } else { - vErrors.push(err16); + vErrors.push(err65); } errors++; } - var valid8 = _errs32 === errors; - if (valid8) { - const err17 = { - instancePath: instancePath + "/type", - schemaPath: "#/$defs/ExtensionNodeType/not", - keyword: "not", + var _valid8 = _errs88 === errors; + valid11 = valid11 || _valid8; + if (!valid11) { + const err66 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/properties/repair_window/anyOf", + keyword: "anyOf", params: {}, - message: "must NOT be valid", + message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err17]; + vErrors = [err66]; } else { - vErrors.push(err17); + vErrors.push(err66); } errors++; } else { - errors = _errs31; + errors = _errs79; if (vErrors !== null) { - if (_errs31) { - vErrors.length = _errs31; + if (_errs79) { + vErrors.length = _errs79; } else { vErrors = null; } } } } - if (data.visual !== undefined) { - let data9 = data.visual; - const _errs34 = errors; - let valid9 = false; - const _errs35 = errors; - if ( - !validate354(data9, { - instancePath: instancePath + "/visual", - parentData: data, - parentDataProperty: "visual", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate354.errors : vErrors.concat(validate354.errors); - errors = vErrors.length; + if (data.result_schema !== undefined) { + let data24 = data.result_schema; + const _errs91 = errors; + let valid14 = false; + const _errs92 = errors; + if (typeof data24 !== "string") { + const err67 = { + instancePath: instancePath + "/result_schema", + schemaPath: "#/properties/result_schema/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err67]; + } else { + vErrors.push(err67); + } + errors++; } - var _valid3 = _errs35 === errors; - valid9 = valid9 || _valid3; - const _errs36 = errors; - if (data9 !== null) { - const err18 = { - instancePath: instancePath + "/visual", - schemaPath: "#/properties/visual/anyOf/1/type", + if ("io.dander.control.execution-result-summary/v1" !== data24) { + const err68 = { + instancePath: instancePath + "/result_schema", + schemaPath: "#/properties/result_schema/anyOf/0/const", + keyword: "const", + params: { allowedValue: "io.dander.control.execution-result-summary/v1" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err68]; + } else { + vErrors.push(err68); + } + errors++; + } + var _valid9 = _errs92 === errors; + valid14 = valid14 || _valid9; + const _errs94 = errors; + if (data24 !== null) { + const err69 = { + instancePath: instancePath + "/result_schema", + schemaPath: "#/properties/result_schema/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err18]; + vErrors = [err69]; } else { - vErrors.push(err18); + vErrors.push(err69); } errors++; } - var _valid3 = _errs36 === errors; - valid9 = valid9 || _valid3; - if (!valid9) { - const err19 = { - instancePath: instancePath + "/visual", - schemaPath: "#/properties/visual/anyOf", + var _valid9 = _errs94 === errors; + valid14 = valid14 || _valid9; + if (!valid14) { + const err70 = { + instancePath: instancePath + "/result_schema", + schemaPath: "#/properties/result_schema/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err19]; + vErrors = [err70]; } else { - vErrors.push(err19); + vErrors.push(err70); } errors++; } else { - errors = _errs34; + errors = _errs91; if (vErrors !== null) { - if (_errs34) { - vErrors.length = _errs34; + if (_errs91) { + vErrors.length = _errs91; } else { vErrors = null; } } } } - } else { - const err20 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err20]; - } else { - vErrors.push(err20); - } - errors++; - } - validate399.errors = vErrors; - return errors === 0; -} -validate399.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -function validate314( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - let vErrors = null; - let errors = 0; - const evaluated0 = validate314.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - const _errs0 = errors; - let valid0 = false; - const _errs1 = errors; - if ( - !validate315(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate315.errors : vErrors.concat(validate315.errors); - errors = vErrors.length; - } - var _valid0 = _errs1 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - var props0 = true; - } - const _errs2 = errors; - if ( - !validate357(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate357.errors : vErrors.concat(validate357.errors); - errors = vErrors.length; - } - var _valid0 = _errs2 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; - } - } - const _errs3 = errors; - if ( - !validate386(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate386.errors : vErrors.concat(validate386.errors); - errors = vErrors.length; - } - var _valid0 = _errs3 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; - } - } - const _errs4 = errors; - if ( - !validate399(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) - ) { - vErrors = vErrors === null ? validate399.errors : vErrors.concat(validate399.errors); - errors = vErrors.length; - } - var _valid0 = _errs4 === errors; - valid0 = valid0 || _valid0; - if (_valid0) { - if (props0 !== true) { - props0 = true; - } - } - if (!valid0) { - const err0 = { - instancePath, - schemaPath: "#/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } else { - errors = _errs0; - if (vErrors !== null) { - if (_errs0) { - vErrors.length = _errs0; - } else { - vErrors = null; + if (data.run_id !== undefined) { + if (typeof data.run_id !== "string") { + const err71 = { + instancePath: instancePath + "/run_id", + schemaPath: "#/properties/run_id/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err71]; + } else { + vErrors.push(err71); + } + errors++; } } - } - validate314.errors = vErrors; - evaluated0.props = props0; - return errors === 0; -} -validate314.evaluated = { dynamicProps: true, dynamicItems: false }; - -function validate288( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - /*# sourceURL="urn:dander:control:contracts:v1:pipeline-graph" */ let vErrors = null; - let errors = 0; - const evaluated0 = validate288.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.name === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "name" }, - message: "must have required property '" + "name" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; + if (data.sizing !== undefined) { + let data26 = data.sizing; + const _errs99 = errors; + let valid15 = false; + const _errs100 = errors; + if (data26 && typeof data26 == "object" && !Array.isArray(data26)) { + if (data26.decision_schema === undefined) { + const err72 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "decision_schema" }, + message: "must have required property '" + "decision_schema" + "'", + }; + if (vErrors === null) { + vErrors = [err72]; + } else { + vErrors.push(err72); + } + errors++; + } + if (data26.mode === undefined) { + const err73 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "mode" }, + message: "must have required property '" + "mode" + "'", + }; + if (vErrors === null) { + vErrors = [err73]; + } else { + vErrors.push(err73); + } + errors++; + } + if (data26.selected_size_class === undefined) { + const err74 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "selected_size_class" }, + message: "must have required property '" + "selected_size_class" + "'", + }; + if (vErrors === null) { + vErrors = [err74]; + } else { + vErrors.push(err74); + } + errors++; + } + if (data26.max_input_bytes === undefined) { + const err75 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "max_input_bytes" }, + message: "must have required property '" + "max_input_bytes" + "'", + }; + if (vErrors === null) { + vErrors = [err75]; + } else { + vErrors.push(err75); + } + errors++; + } + if (data26.cpu_millis === undefined) { + const err76 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "cpu_millis" }, + message: "must have required property '" + "cpu_millis" + "'", + }; + if (vErrors === null) { + vErrors = [err76]; + } else { + vErrors.push(err76); + } + errors++; + } + if (data26.memory_mib === undefined) { + const err77 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "memory_mib" }, + message: "must have required property '" + "memory_mib" + "'", + }; + if (vErrors === null) { + vErrors = [err77]; + } else { + vErrors.push(err77); + } + errors++; + } + if (data26.eligible_plan_count === undefined) { + const err78 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "eligible_plan_count" }, + message: "must have required property '" + "eligible_plan_count" + "'", + }; + if (vErrors === null) { + vErrors = [err78]; + } else { + vErrors.push(err78); + } + errors++; + } + for (const key3 in data26) { + if (!func1.call(schema301.properties, key3)) { + const err79 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key3 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err79]; + } else { + vErrors.push(err79); + } + errors++; + } + } + if (data26.cpu_millis !== undefined) { + let data27 = data26.cpu_millis; + if (!(typeof data27 == "number" && !(data27 % 1) && !isNaN(data27) && isFinite(data27))) { + const err80 = { + instancePath: instancePath + "/sizing/cpu_millis", + schemaPath: "#/$defs/RunSizeClassDecision/properties/cpu_millis/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err80]; + } else { + vErrors.push(err80); + } + errors++; + } + if (typeof data27 == "number" && isFinite(data27)) { + if (data27 < 1 || isNaN(data27)) { + const err81 = { + instancePath: instancePath + "/sizing/cpu_millis", + schemaPath: "#/$defs/RunSizeClassDecision/properties/cpu_millis/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err81]; + } else { + vErrors.push(err81); + } + errors++; + } + } + } + if (data26.decision_schema !== undefined) { + let data28 = data26.decision_schema; + if (typeof data28 !== "string") { + const err82 = { + instancePath: instancePath + "/sizing/decision_schema", + schemaPath: "#/$defs/RunSizeClassDecision/properties/decision_schema/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err82]; + } else { + vErrors.push(err82); + } + errors++; + } + if ("io.dander.control.size-class-decision/v2" !== data28) { + const err83 = { + instancePath: instancePath + "/sizing/decision_schema", + schemaPath: "#/$defs/RunSizeClassDecision/properties/decision_schema/const", + keyword: "const", + params: { allowedValue: "io.dander.control.size-class-decision/v2" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err83]; + } else { + vErrors.push(err83); + } + errors++; + } + } + if (data26.eligible_plan_count !== undefined) { + let data29 = data26.eligible_plan_count; + if (!(typeof data29 == "number" && !(data29 % 1) && !isNaN(data29) && isFinite(data29))) { + const err84 = { + instancePath: instancePath + "/sizing/eligible_plan_count", + schemaPath: "#/$defs/RunSizeClassDecision/properties/eligible_plan_count/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err84]; + } else { + vErrors.push(err84); + } + errors++; + } + if (typeof data29 == "number" && isFinite(data29)) { + if (data29 > 100 || isNaN(data29)) { + const err85 = { + instancePath: instancePath + "/sizing/eligible_plan_count", + schemaPath: "#/$defs/RunSizeClassDecision/properties/eligible_plan_count/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 100 }, + message: "must be <= 100", + }; + if (vErrors === null) { + vErrors = [err85]; + } else { + vErrors.push(err85); + } + errors++; + } + if (data29 < 1 || isNaN(data29)) { + const err86 = { + instancePath: instancePath + "/sizing/eligible_plan_count", + schemaPath: "#/$defs/RunSizeClassDecision/properties/eligible_plan_count/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err86]; + } else { + vErrors.push(err86); + } + errors++; + } + } + } + if (data26.ephemeral_storage_mib !== undefined) { + let data30 = data26.ephemeral_storage_mib; + const _errs111 = errors; + let valid18 = false; + const _errs112 = errors; + if (!(typeof data30 == "number" && !(data30 % 1) && !isNaN(data30) && isFinite(data30))) { + const err87 = { + instancePath: instancePath + "/sizing/ephemeral_storage_mib", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/ephemeral_storage_mib/anyOf/0/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err87]; + } else { + vErrors.push(err87); + } + errors++; + } + if (typeof data30 == "number" && isFinite(data30)) { + if (data30 < 1 || isNaN(data30)) { + const err88 = { + instancePath: instancePath + "/sizing/ephemeral_storage_mib", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/ephemeral_storage_mib/anyOf/0/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err88]; + } else { + vErrors.push(err88); + } + errors++; + } + } + var _valid11 = _errs112 === errors; + valid18 = valid18 || _valid11; + const _errs114 = errors; + if (data30 !== null) { + const err89 = { + instancePath: instancePath + "/sizing/ephemeral_storage_mib", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/ephemeral_storage_mib/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err89]; + } else { + vErrors.push(err89); + } + errors++; + } + var _valid11 = _errs114 === errors; + valid18 = valid18 || _valid11; + if (!valid18) { + const err90 = { + instancePath: instancePath + "/sizing/ephemeral_storage_mib", + schemaPath: "#/$defs/RunSizeClassDecision/properties/ephemeral_storage_mib/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err90]; + } else { + vErrors.push(err90); + } + errors++; + } else { + errors = _errs111; + if (vErrors !== null) { + if (_errs111) { + vErrors.length = _errs111; + } else { + vErrors = null; + } + } + } + } + if (data26.estimate_observed_at !== undefined) { + let data31 = data26.estimate_observed_at; + const _errs117 = errors; + let valid19 = false; + const _errs118 = errors; + if (typeof data31 !== "string") { + const err91 = { + instancePath: instancePath + "/sizing/estimate_observed_at", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimate_observed_at/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err91]; + } else { + vErrors.push(err91); + } + errors++; + } + var _valid12 = _errs118 === errors; + valid19 = valid19 || _valid12; + const _errs120 = errors; + if (data31 !== null) { + const err92 = { + instancePath: instancePath + "/sizing/estimate_observed_at", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimate_observed_at/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err92]; + } else { + vErrors.push(err92); + } + errors++; + } + var _valid12 = _errs120 === errors; + valid19 = valid19 || _valid12; + if (!valid19) { + const err93 = { + instancePath: instancePath + "/sizing/estimate_observed_at", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimate_observed_at/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err93]; + } else { + vErrors.push(err93); + } + errors++; + } else { + errors = _errs117; + if (vErrors !== null) { + if (_errs117) { + vErrors.length = _errs117; + } else { + vErrors = null; + } + } + } + } + if (data26.estimate_source !== undefined) { + let data32 = data26.estimate_source; + const _errs123 = errors; + let valid20 = false; + const _errs124 = errors; + if (typeof data32 !== "string") { + const err94 = { + instancePath: instancePath + "/sizing/estimate_source", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimate_source/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err94]; + } else { + vErrors.push(err94); + } + errors++; + } + var _valid13 = _errs124 === errors; + valid20 = valid20 || _valid13; + const _errs126 = errors; + if (data32 !== null) { + const err95 = { + instancePath: instancePath + "/sizing/estimate_source", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimate_source/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err95]; + } else { + vErrors.push(err95); + } + errors++; + } + var _valid13 = _errs126 === errors; + valid20 = valid20 || _valid13; + if (!valid20) { + const err96 = { + instancePath: instancePath + "/sizing/estimate_source", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimate_source/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err96]; + } else { + vErrors.push(err96); + } + errors++; + } else { + errors = _errs123; + if (vErrors !== null) { + if (_errs123) { + vErrors.length = _errs123; + } else { + vErrors = null; + } + } + } + } + if (data26.estimated_input_bytes !== undefined) { + let data33 = data26.estimated_input_bytes; + const _errs129 = errors; + let valid21 = false; + const _errs130 = errors; + if (!(typeof data33 == "number" && !(data33 % 1) && !isNaN(data33) && isFinite(data33))) { + const err97 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf/0/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err97]; + } else { + vErrors.push(err97); + } + errors++; + } + if (typeof data33 == "number" && isFinite(data33)) { + if (data33 > 9223372036854776000 || isNaN(data33)) { + const err98 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf/0/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err98]; + } else { + vErrors.push(err98); + } + errors++; + } + if (data33 < 0 || isNaN(data33)) { + const err99 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf/0/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err99]; + } else { + vErrors.push(err99); + } + errors++; + } + } + var _valid14 = _errs130 === errors; + valid21 = valid21 || _valid14; + const _errs132 = errors; + if (data33 !== null) { + const err100 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err100]; + } else { + vErrors.push(err100); + } + errors++; + } + var _valid14 = _errs132 === errors; + valid21 = valid21 || _valid14; + if (!valid21) { + const err101 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err101]; + } else { + vErrors.push(err101); + } + errors++; + } else { + errors = _errs129; + if (vErrors !== null) { + if (_errs129) { + vErrors.length = _errs129; + } else { + vErrors = null; + } + } + } + } + if (data26.max_input_bytes !== undefined) { + let data34 = data26.max_input_bytes; + if (!(typeof data34 == "number" && !(data34 % 1) && !isNaN(data34) && isFinite(data34))) { + const err102 = { + instancePath: instancePath + "/sizing/max_input_bytes", + schemaPath: "#/$defs/RunSizeClassDecision/properties/max_input_bytes/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err102]; + } else { + vErrors.push(err102); + } + errors++; + } + if (typeof data34 == "number" && isFinite(data34)) { + if (data34 > 9223372036854776000 || isNaN(data34)) { + const err103 = { + instancePath: instancePath + "/sizing/max_input_bytes", + schemaPath: "#/$defs/RunSizeClassDecision/properties/max_input_bytes/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err103]; + } else { + vErrors.push(err103); + } + errors++; + } + if (data34 < 0 || isNaN(data34)) { + const err104 = { + instancePath: instancePath + "/sizing/max_input_bytes", + schemaPath: "#/$defs/RunSizeClassDecision/properties/max_input_bytes/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err104]; + } else { + vErrors.push(err104); + } + errors++; + } + } + } + if (data26.memory_mib !== undefined) { + let data35 = data26.memory_mib; + if (!(typeof data35 == "number" && !(data35 % 1) && !isNaN(data35) && isFinite(data35))) { + const err105 = { + instancePath: instancePath + "/sizing/memory_mib", + schemaPath: "#/$defs/RunSizeClassDecision/properties/memory_mib/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err105]; + } else { + vErrors.push(err105); + } + errors++; + } + if (typeof data35 == "number" && isFinite(data35)) { + if (data35 < 1 || isNaN(data35)) { + const err106 = { + instancePath: instancePath + "/sizing/memory_mib", + schemaPath: "#/$defs/RunSizeClassDecision/properties/memory_mib/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err106]; + } else { + vErrors.push(err106); + } + errors++; + } + } + } + if (data26.mode !== undefined) { + let data36 = data26.mode; + if (typeof data36 !== "string") { + const err107 = { + instancePath: instancePath + "/sizing/mode", + schemaPath: "#/$defs/RunSizeClassDecision/properties/mode/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err107]; + } else { + vErrors.push(err107); + } + errors++; + } + if (!( + data36 === "automatic_input" || + data36 === "manual_override" || + data36 === "configured_default" || + data36 === "scheduled" || + data36 === "replay" + )) { + const err108 = { + instancePath: instancePath + "/sizing/mode", + schemaPath: "#/$defs/RunSizeClassDecision/properties/mode/enum", + keyword: "enum", + params: { allowedValues: schema301.properties.mode.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err108]; + } else { + vErrors.push(err108); + } + errors++; + } + } + if (data26.selected_size_class !== undefined) { + if (typeof data26.selected_size_class !== "string") { + const err109 = { + instancePath: instancePath + "/sizing/selected_size_class", + schemaPath: "#/$defs/RunSizeClassDecision/properties/selected_size_class/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err109]; + } else { + vErrors.push(err109); + } + errors++; + } + } } else { - vErrors.push(err0); + const err110 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err110]; + } else { + vErrors.push(err110); + } + errors++; } - errors++; - } - for (const key0 in data) { - if (!(key0 === "edges" || key0 === "name" || key0 === "nodes" || key0 === "trigger")) { - const err1 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + var _valid10 = _errs100 === errors; + valid15 = valid15 || _valid10; + const _errs142 = errors; + if (data26 !== null) { + const err111 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/properties/sizing/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err111]; } else { - vErrors.push(err1); + vErrors.push(err111); } errors++; } - } - if (data.edges !== undefined) { - let data0 = data.edges; - if (Array.isArray(data0)) { - const len0 = data0.length; - for (let i0 = 0; i0 < len0; i0++) { - if ( - !validate289(data0[i0], { - instancePath: instancePath + "/edges/" + i0, - parentData: data0, - parentDataProperty: i0, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate289.errors : vErrors.concat(validate289.errors); - errors = vErrors.length; - } + var _valid10 = _errs142 === errors; + valid15 = valid15 || _valid10; + if (!valid15) { + const err112 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/properties/sizing/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err112]; + } else { + vErrors.push(err112); } + errors++; } else { - const err2 = { - instancePath: instancePath + "/edges", - schemaPath: "#/properties/edges/type", + errors = _errs99; + if (vErrors !== null) { + if (_errs99) { + vErrors.length = _errs99; + } else { + vErrors = null; + } + } + } + } + if (data.skipped !== undefined) { + if (typeof data.skipped !== "boolean") { + const err113 = { + instancePath: instancePath + "/skipped", + schemaPath: "#/properties/skipped/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "boolean" }, + message: "must be boolean", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err113]; } else { - vErrors.push(err2); + vErrors.push(err113); } errors++; } } - if (data.name !== undefined) { - if (typeof data.name !== "string") { - const err3 = { - instancePath: instancePath + "/name", - schemaPath: "#/properties/name/type", + if (data.stage !== undefined) { + let data39 = data.stage; + const _errs147 = errors; + let valid22 = false; + const _errs148 = errors; + if (typeof data39 !== "string") { + const err114 = { + instancePath: instancePath + "/stage", + schemaPath: "#/properties/stage/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err114]; } else { - vErrors.push(err3); + vErrors.push(err114); } errors++; } - } - if (data.nodes !== undefined) { - let data3 = data.nodes; - if (Array.isArray(data3)) { - const len1 = data3.length; - for (let i1 = 0; i1 < len1; i1++) { - if ( - !validate314(data3[i1], { - instancePath: instancePath + "/nodes/" + i1, - parentData: data3, - parentDataProperty: i1, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate314.errors : vErrors.concat(validate314.errors); - errors = vErrors.length; - } - } - } else { - const err4 = { - instancePath: instancePath + "/nodes", - schemaPath: "#/properties/nodes/type", + var _valid15 = _errs148 === errors; + valid22 = valid22 || _valid15; + const _errs150 = errors; + if (data39 !== null) { + const err115 = { + instancePath: instancePath + "/stage", + schemaPath: "#/properties/stage/anyOf/1/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err115]; } else { - vErrors.push(err4); + vErrors.push(err115); + } + errors++; + } + var _valid15 = _errs150 === errors; + valid22 = valid22 || _valid15; + if (!valid22) { + const err116 = { + instancePath: instancePath + "/stage", + schemaPath: "#/properties/stage/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err116]; + } else { + vErrors.push(err116); } errors++; + } else { + errors = _errs147; + if (vErrors !== null) { + if (_errs147) { + vErrors.length = _errs147; + } else { + vErrors = null; + } + } } } - if (data.trigger !== undefined) { - let data5 = data.trigger; - const _errs11 = errors; - let valid5 = false; - const _errs12 = errors; - if ( - !validate343(data5, { - instancePath: instancePath + "/trigger", - parentData: data, - parentDataProperty: "trigger", - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate343.errors : vErrors.concat(validate343.errors); - errors = vErrors.length; + if (data.started_at !== undefined) { + let data40 = data.started_at; + const _errs153 = errors; + let valid23 = false; + const _errs154 = errors; + if (typeof data40 !== "string") { + const err117 = { + instancePath: instancePath + "/started_at", + schemaPath: "#/properties/started_at/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err117]; + } else { + vErrors.push(err117); + } + errors++; } - var _valid0 = _errs12 === errors; - valid5 = valid5 || _valid0; - const _errs13 = errors; - if (data5 !== null) { - const err5 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf/1/type", + var _valid16 = _errs154 === errors; + valid23 = valid23 || _valid16; + const _errs156 = errors; + if (data40 !== null) { + const err118 = { + instancePath: instancePath + "/started_at", + schemaPath: "#/properties/started_at/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err118]; } else { - vErrors.push(err5); + vErrors.push(err118); } errors++; } - var _valid0 = _errs13 === errors; - valid5 = valid5 || _valid0; - if (!valid5) { - const err6 = { - instancePath: instancePath + "/trigger", - schemaPath: "#/properties/trigger/anyOf", + var _valid16 = _errs156 === errors; + valid23 = valid23 || _valid16; + if (!valid23) { + const err119 = { + instancePath: instancePath + "/started_at", + schemaPath: "#/properties/started_at/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err119]; } else { - vErrors.push(err6); + vErrors.push(err119); } errors++; } else { - errors = _errs11; + errors = _errs153; if (vErrors !== null) { - if (_errs11) { - vErrors.length = _errs11; + if (_errs153) { + vErrors.length = _errs153; } else { vErrors = null; } } } } - } else { - const err7 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - validate288.errors = vErrors; - return errors === 0; -} -validate288.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -export const validatePluginCatalog = validate409; -const schema271 = { - $defs: { - PluginCatalogRecord: { - additionalProperties: false, - properties: { - compatible: { title: "Compatible", type: "boolean" }, - dander_specifier: { title: "Dander Specifier", type: "string" }, - description: { title: "Description", type: "string" }, - display_name: { title: "Display Name", type: "string" }, - distribution: { title: "Distribution", type: "string" }, - documentation_url: { title: "Documentation Url", type: "string" }, - id: { title: "Id", type: "string" }, - installed: { title: "Installed", type: "boolean" }, - installed_version: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Installed Version", - }, - pypi_url: { title: "Pypi Url", type: "string" }, - repository_url: { title: "Repository Url", type: "string" }, - support_status: { title: "Support Status", type: "string" }, - validation_status: { title: "Validation Status", type: "string" }, - version: { title: "Version", type: "string" }, - }, - required: [ - "id", - "display_name", - "description", - "distribution", - "version", - "dander_specifier", - "compatible", - "support_status", - "validation_status", - "documentation_url", - "pypi_url", - "repository_url", - "installed", - ], - title: "PluginCatalogRecord", - type: "object", - }, - }, - $id: "urn:dander:control:contracts:v1:plugin-catalog", - $schema: "https://json-schema.org/draft/2020-12/schema", - additionalProperties: false, - properties: { - connectors: { - items: { $ref: "#/$defs/PluginCatalogRecord" }, - title: "Connectors", - type: "array", - }, - dander_version: { title: "Dander Version", type: "string" }, - schema_version: { const: 1, default: 1, title: "Schema Version", type: "integer" }, - }, - required: ["dander_version"], - title: "PluginCatalogResponse", - type: "object", -}; -const schema272 = { - additionalProperties: false, - properties: { - compatible: { title: "Compatible", type: "boolean" }, - dander_specifier: { title: "Dander Specifier", type: "string" }, - description: { title: "Description", type: "string" }, - display_name: { title: "Display Name", type: "string" }, - distribution: { title: "Distribution", type: "string" }, - documentation_url: { title: "Documentation Url", type: "string" }, - id: { title: "Id", type: "string" }, - installed: { title: "Installed", type: "boolean" }, - installed_version: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Installed Version", - }, - pypi_url: { title: "Pypi Url", type: "string" }, - repository_url: { title: "Repository Url", type: "string" }, - support_status: { title: "Support Status", type: "string" }, - validation_status: { title: "Validation Status", type: "string" }, - version: { title: "Version", type: "string" }, - }, - required: [ - "id", - "display_name", - "description", - "distribution", - "version", - "dander_specifier", - "compatible", - "support_status", - "validation_status", - "documentation_url", - "pypi_url", - "repository_url", - "installed", - ], - title: "PluginCatalogRecord", - type: "object", -}; - -function validate409( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - /*# sourceURL="urn:dander:control:contracts:v1:plugin-catalog" */ let vErrors = null; - let errors = 0; - const evaluated0 = validate409.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.dander_version === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "dander_version" }, - message: "must have required property '" + "dander_version" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); + if (data.state !== undefined) { + let data41 = data.state; + if (typeof data41 !== "string") { + const err120 = { + instancePath: instancePath + "/state", + schemaPath: "#/$defs/RunState/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err120]; + } else { + vErrors.push(err120); + } + errors++; } - errors++; - } - for (const key0 in data) { - if (!(key0 === "connectors" || key0 === "dander_version" || key0 === "schema_version")) { - const err1 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + if (!( + data41 === "queued" || + data41 === "running" || + data41 === "succeeded" || + data41 === "failed" || + data41 === "canceling" || + data41 === "canceled" || + data41 === "retrying" + )) { + const err121 = { + instancePath: instancePath + "/state", + schemaPath: "#/$defs/RunState/enum", + keyword: "enum", + params: { allowedValues: schema302.enum }, + message: "must be equal to one of the allowed values", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err121]; } else { - vErrors.push(err1); + vErrors.push(err121); } errors++; } } - if (data.connectors !== undefined) { - let data0 = data.connectors; - if (Array.isArray(data0)) { - const len0 = data0.length; - for (let i0 = 0; i0 < len0; i0++) { - let data1 = data0[i0]; - if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { - if (data1.id === undefined) { - const err2 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "id" }, - message: "must have required property '" + "id" + "'", + if (data.telemetry !== undefined) { + let data42 = data.telemetry; + const _errs162 = errors; + let valid25 = false; + const _errs163 = errors; + if (data42 && typeof data42 == "object" && !Array.isArray(data42)) { + if (data42.duration_ms === undefined) { + const err122 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "duration_ms" }, + message: "must have required property '" + "duration_ms" + "'", + }; + if (vErrors === null) { + vErrors = [err122]; + } else { + vErrors.push(err122); + } + errors++; + } + if (data42.operation_count === undefined) { + const err123 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "operation_count" }, + message: "must have required property '" + "operation_count" + "'", + }; + if (vErrors === null) { + vErrors = [err123]; + } else { + vErrors.push(err123); + } + errors++; + } + if (data42.retry_count === undefined) { + const err124 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "retry_count" }, + message: "must have required property '" + "retry_count" + "'", + }; + if (vErrors === null) { + vErrors = [err124]; + } else { + vErrors.push(err124); + } + errors++; + } + if (data42.rows_read === undefined) { + const err125 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "rows_read" }, + message: "must have required property '" + "rows_read" + "'", + }; + if (vErrors === null) { + vErrors = [err125]; + } else { + vErrors.push(err125); + } + errors++; + } + if (data42.rows_written === undefined) { + const err126 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "rows_written" }, + message: "must have required property '" + "rows_written" + "'", + }; + if (vErrors === null) { + vErrors = [err126]; + } else { + vErrors.push(err126); + } + errors++; + } + if (data42.rows_affected === undefined) { + const err127 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "rows_affected" }, + message: "must have required property '" + "rows_affected" + "'", + }; + if (vErrors === null) { + vErrors = [err127]; + } else { + vErrors.push(err127); + } + errors++; + } + if (data42.bytes_read === undefined) { + const err128 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "bytes_read" }, + message: "must have required property '" + "bytes_read" + "'", + }; + if (vErrors === null) { + vErrors = [err128]; + } else { + vErrors.push(err128); + } + errors++; + } + if (data42.bytes_written === undefined) { + const err129 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "bytes_written" }, + message: "must have required property '" + "bytes_written" + "'", + }; + if (vErrors === null) { + vErrors = [err129]; + } else { + vErrors.push(err129); + } + errors++; + } + if (data42.bytes_processed === undefined) { + const err130 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "bytes_processed" }, + message: "must have required property '" + "bytes_processed" + "'", + }; + if (vErrors === null) { + vErrors = [err130]; + } else { + vErrors.push(err130); + } + errors++; + } + if (data42.bytes_billed === undefined) { + const err131 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "bytes_billed" }, + message: "must have required property '" + "bytes_billed" + "'", + }; + if (vErrors === null) { + vErrors = [err131]; + } else { + vErrors.push(err131); + } + errors++; + } + if (data42.queue_duration_ms === undefined) { + const err132 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "queue_duration_ms" }, + message: "must have required property '" + "queue_duration_ms" + "'", + }; + if (vErrors === null) { + vErrors = [err132]; + } else { + vErrors.push(err132); + } + errors++; + } + if (data42.execution_duration_ms === undefined) { + const err133 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "execution_duration_ms" }, + message: "must have required property '" + "execution_duration_ms" + "'", + }; + if (vErrors === null) { + vErrors = [err133]; + } else { + vErrors.push(err133); + } + errors++; + } + if (data42.spill_bytes === undefined) { + const err134 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "spill_bytes" }, + message: "must have required property '" + "spill_bytes" + "'", + }; + if (vErrors === null) { + vErrors = [err134]; + } else { + vErrors.push(err134); + } + errors++; + } + for (const key4 in data42) { + if (!func1.call(schema303.properties, key4)) { + const err135 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key4 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err135]; + } else { + vErrors.push(err135); + } + errors++; + } + } + if (data42.bytes_billed !== undefined) { + let data43 = data42.bytes_billed; + if (!(typeof data43 == "number" && !(data43 % 1) && !isNaN(data43) && isFinite(data43))) { + const err136 = { + instancePath: instancePath + "/telemetry/bytes_billed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_billed/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err136]; + } else { + vErrors.push(err136); + } + errors++; + } + if (typeof data43 == "number" && isFinite(data43)) { + if (data43 > 9223372036854776000 || isNaN(data43)) { + const err137 = { + instancePath: instancePath + "/telemetry/bytes_billed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_billed/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err137]; } else { - vErrors.push(err2); + vErrors.push(err137); } errors++; } - if (data1.display_name === undefined) { - const err3 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "display_name" }, - message: "must have required property '" + "display_name" + "'", + if (data43 < 0 || isNaN(data43)) { + const err138 = { + instancePath: instancePath + "/telemetry/bytes_billed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_billed/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err138]; } else { - vErrors.push(err3); + vErrors.push(err138); } errors++; } - if (data1.description === undefined) { - const err4 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "description" }, - message: "must have required property '" + "description" + "'", + } + } + if (data42.bytes_processed !== undefined) { + let data44 = data42.bytes_processed; + if (!(typeof data44 == "number" && !(data44 % 1) && !isNaN(data44) && isFinite(data44))) { + const err139 = { + instancePath: instancePath + "/telemetry/bytes_processed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_processed/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err139]; + } else { + vErrors.push(err139); + } + errors++; + } + if (typeof data44 == "number" && isFinite(data44)) { + if (data44 > 9223372036854776000 || isNaN(data44)) { + const err140 = { + instancePath: instancePath + "/telemetry/bytes_processed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_processed/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err140]; } else { - vErrors.push(err4); + vErrors.push(err140); } errors++; } - if (data1.distribution === undefined) { - const err5 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "distribution" }, - message: "must have required property '" + "distribution" + "'", + if (data44 < 0 || isNaN(data44)) { + const err141 = { + instancePath: instancePath + "/telemetry/bytes_processed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_processed/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err141]; } else { - vErrors.push(err5); + vErrors.push(err141); } errors++; } - if (data1.version === undefined) { - const err6 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "version" }, - message: "must have required property '" + "version" + "'", + } + } + if (data42.bytes_read !== undefined) { + let data45 = data42.bytes_read; + if (!(typeof data45 == "number" && !(data45 % 1) && !isNaN(data45) && isFinite(data45))) { + const err142 = { + instancePath: instancePath + "/telemetry/bytes_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_read/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err142]; + } else { + vErrors.push(err142); + } + errors++; + } + if (typeof data45 == "number" && isFinite(data45)) { + if (data45 > 9223372036854776000 || isNaN(data45)) { + const err143 = { + instancePath: instancePath + "/telemetry/bytes_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_read/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err143]; } else { - vErrors.push(err6); + vErrors.push(err143); } errors++; } - if (data1.dander_specifier === undefined) { - const err7 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "dander_specifier" }, - message: "must have required property '" + "dander_specifier" + "'", + if (data45 < 0 || isNaN(data45)) { + const err144 = { + instancePath: instancePath + "/telemetry/bytes_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_read/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err144]; } else { - vErrors.push(err7); + vErrors.push(err144); } errors++; } - if (data1.compatible === undefined) { - const err8 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "compatible" }, - message: "must have required property '" + "compatible" + "'", + } + } + if (data42.bytes_written !== undefined) { + let data46 = data42.bytes_written; + if (!(typeof data46 == "number" && !(data46 % 1) && !isNaN(data46) && isFinite(data46))) { + const err145 = { + instancePath: instancePath + "/telemetry/bytes_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_written/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err145]; + } else { + vErrors.push(err145); + } + errors++; + } + if (typeof data46 == "number" && isFinite(data46)) { + if (data46 > 9223372036854776000 || isNaN(data46)) { + const err146 = { + instancePath: instancePath + "/telemetry/bytes_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_written/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err146]; } else { - vErrors.push(err8); + vErrors.push(err146); } errors++; } - if (data1.support_status === undefined) { - const err9 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "support_status" }, - message: "must have required property '" + "support_status" + "'", + if (data46 < 0 || isNaN(data46)) { + const err147 = { + instancePath: instancePath + "/telemetry/bytes_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_written/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err147]; } else { - vErrors.push(err9); + vErrors.push(err147); } errors++; } - if (data1.validation_status === undefined) { - const err10 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "validation_status" }, - message: "must have required property '" + "validation_status" + "'", + } + } + if (data42.duration_ms !== undefined) { + let data47 = data42.duration_ms; + if (!(typeof data47 == "number" && !(data47 % 1) && !isNaN(data47) && isFinite(data47))) { + const err148 = { + instancePath: instancePath + "/telemetry/duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/duration_ms/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err148]; + } else { + vErrors.push(err148); + } + errors++; + } + if (typeof data47 == "number" && isFinite(data47)) { + if (data47 > 9223372036854776000 || isNaN(data47)) { + const err149 = { + instancePath: instancePath + "/telemetry/duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/duration_ms/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err149]; } else { - vErrors.push(err10); + vErrors.push(err149); } errors++; } - if (data1.documentation_url === undefined) { - const err11 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "documentation_url" }, - message: "must have required property '" + "documentation_url" + "'", + if (data47 < 0 || isNaN(data47)) { + const err150 = { + instancePath: instancePath + "/telemetry/duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/duration_ms/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err150]; } else { - vErrors.push(err11); + vErrors.push(err150); } errors++; } - if (data1.pypi_url === undefined) { - const err12 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "pypi_url" }, - message: "must have required property '" + "pypi_url" + "'", + } + } + if (data42.execution_duration_ms !== undefined) { + let data48 = data42.execution_duration_ms; + if (!(typeof data48 == "number" && !(data48 % 1) && !isNaN(data48) && isFinite(data48))) { + const err151 = { + instancePath: instancePath + "/telemetry/execution_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/execution_duration_ms/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err151]; + } else { + vErrors.push(err151); + } + errors++; + } + if (typeof data48 == "number" && isFinite(data48)) { + if (data48 > 9223372036854776000 || isNaN(data48)) { + const err152 = { + instancePath: instancePath + "/telemetry/execution_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/execution_duration_ms/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", }; if (vErrors === null) { - vErrors = [err12]; + vErrors = [err152]; } else { - vErrors.push(err12); + vErrors.push(err152); } errors++; } - if (data1.repository_url === undefined) { - const err13 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "repository_url" }, - message: "must have required property '" + "repository_url" + "'", + if (data48 < 0 || isNaN(data48)) { + const err153 = { + instancePath: instancePath + "/telemetry/execution_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/execution_duration_ms/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", }; if (vErrors === null) { - vErrors = [err13]; + vErrors = [err153]; } else { - vErrors.push(err13); + vErrors.push(err153); } errors++; } - if (data1.installed === undefined) { - const err14 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/required", - keyword: "required", - params: { missingProperty: "installed" }, - message: "must have required property '" + "installed" + "'", + } + } + if (data42.operation_count !== undefined) { + let data49 = data42.operation_count; + if (!(typeof data49 == "number" && !(data49 % 1) && !isNaN(data49) && isFinite(data49))) { + const err154 = { + instancePath: instancePath + "/telemetry/operation_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/operation_count/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err154]; + } else { + vErrors.push(err154); + } + errors++; + } + if (typeof data49 == "number" && isFinite(data49)) { + if (data49 > 9223372036854776000 || isNaN(data49)) { + const err155 = { + instancePath: instancePath + "/telemetry/operation_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/operation_count/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", }; if (vErrors === null) { - vErrors = [err14]; + vErrors = [err155]; } else { - vErrors.push(err14); + vErrors.push(err155); } errors++; } - for (const key1 in data1) { - if (!func1.call(schema272.properties, key1)) { - const err15 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err15]; - } else { - vErrors.push(err15); - } - errors++; - } - } - if (data1.compatible !== undefined) { - if (typeof data1.compatible !== "boolean") { - const err16 = { - instancePath: instancePath + "/connectors/" + i0 + "/compatible", - schemaPath: "#/$defs/PluginCatalogRecord/properties/compatible/type", - keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", - }; - if (vErrors === null) { - vErrors = [err16]; - } else { - vErrors.push(err16); - } - errors++; + if (data49 < 0 || isNaN(data49)) { + const err156 = { + instancePath: instancePath + "/telemetry/operation_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/operation_count/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err156]; + } else { + vErrors.push(err156); } + errors++; } - if (data1.dander_specifier !== undefined) { - if (typeof data1.dander_specifier !== "string") { - const err17 = { - instancePath: instancePath + "/connectors/" + i0 + "/dander_specifier", - schemaPath: "#/$defs/PluginCatalogRecord/properties/dander_specifier/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err17]; - } else { - vErrors.push(err17); - } - errors++; - } + } + } + if (data42.queue_duration_ms !== undefined) { + let data50 = data42.queue_duration_ms; + if (!(typeof data50 == "number" && !(data50 % 1) && !isNaN(data50) && isFinite(data50))) { + const err157 = { + instancePath: instancePath + "/telemetry/queue_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/queue_duration_ms/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err157]; + } else { + vErrors.push(err157); } - if (data1.description !== undefined) { - if (typeof data1.description !== "string") { - const err18 = { - instancePath: instancePath + "/connectors/" + i0 + "/description", - schemaPath: "#/$defs/PluginCatalogRecord/properties/description/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err18]; - } else { - vErrors.push(err18); - } - errors++; + errors++; + } + if (typeof data50 == "number" && isFinite(data50)) { + if (data50 > 9223372036854776000 || isNaN(data50)) { + const err158 = { + instancePath: instancePath + "/telemetry/queue_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/queue_duration_ms/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err158]; + } else { + vErrors.push(err158); } + errors++; } - if (data1.display_name !== undefined) { - if (typeof data1.display_name !== "string") { - const err19 = { - instancePath: instancePath + "/connectors/" + i0 + "/display_name", - schemaPath: "#/$defs/PluginCatalogRecord/properties/display_name/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err19]; - } else { - vErrors.push(err19); - } - errors++; + if (data50 < 0 || isNaN(data50)) { + const err159 = { + instancePath: instancePath + "/telemetry/queue_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/queue_duration_ms/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err159]; + } else { + vErrors.push(err159); } + errors++; } - if (data1.distribution !== undefined) { - if (typeof data1.distribution !== "string") { - const err20 = { - instancePath: instancePath + "/connectors/" + i0 + "/distribution", - schemaPath: "#/$defs/PluginCatalogRecord/properties/distribution/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err20]; - } else { - vErrors.push(err20); - } - errors++; - } + } + } + if (data42.retry_count !== undefined) { + let data51 = data42.retry_count; + if (!(typeof data51 == "number" && !(data51 % 1) && !isNaN(data51) && isFinite(data51))) { + const err160 = { + instancePath: instancePath + "/telemetry/retry_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/retry_count/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err160]; + } else { + vErrors.push(err160); } - if (data1.documentation_url !== undefined) { - if (typeof data1.documentation_url !== "string") { - const err21 = { - instancePath: instancePath + "/connectors/" + i0 + "/documentation_url", - schemaPath: "#/$defs/PluginCatalogRecord/properties/documentation_url/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err21]; - } else { - vErrors.push(err21); - } - errors++; + errors++; + } + if (typeof data51 == "number" && isFinite(data51)) { + if (data51 > 9223372036854776000 || isNaN(data51)) { + const err161 = { + instancePath: instancePath + "/telemetry/retry_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/retry_count/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err161]; + } else { + vErrors.push(err161); } + errors++; } - if (data1.id !== undefined) { - if (typeof data1.id !== "string") { - const err22 = { - instancePath: instancePath + "/connectors/" + i0 + "/id", - schemaPath: "#/$defs/PluginCatalogRecord/properties/id/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err22]; - } else { - vErrors.push(err22); - } - errors++; + if (data51 < 0 || isNaN(data51)) { + const err162 = { + instancePath: instancePath + "/telemetry/retry_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/retry_count/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err162]; + } else { + vErrors.push(err162); } + errors++; } - if (data1.installed !== undefined) { - if (typeof data1.installed !== "boolean") { - const err23 = { - instancePath: instancePath + "/connectors/" + i0 + "/installed", - schemaPath: "#/$defs/PluginCatalogRecord/properties/installed/type", - keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", - }; - if (vErrors === null) { - vErrors = [err23]; - } else { - vErrors.push(err23); - } - errors++; - } + } + } + if (data42.rows_affected !== undefined) { + let data52 = data42.rows_affected; + if (!(typeof data52 == "number" && !(data52 % 1) && !isNaN(data52) && isFinite(data52))) { + const err163 = { + instancePath: instancePath + "/telemetry/rows_affected", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_affected/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err163]; + } else { + vErrors.push(err163); } - if (data1.installed_version !== undefined) { - let data10 = data1.installed_version; - const _errs25 = errors; - let valid5 = false; - const _errs26 = errors; - if (typeof data10 !== "string") { - const err24 = { - instancePath: instancePath + "/connectors/" + i0 + "/installed_version", - schemaPath: - "#/$defs/PluginCatalogRecord/properties/installed_version/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err24]; - } else { - vErrors.push(err24); - } - errors++; - } - var _valid0 = _errs26 === errors; - valid5 = valid5 || _valid0; - const _errs28 = errors; - if (data10 !== null) { - const err25 = { - instancePath: instancePath + "/connectors/" + i0 + "/installed_version", - schemaPath: - "#/$defs/PluginCatalogRecord/properties/installed_version/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err25]; - } else { - vErrors.push(err25); - } - errors++; - } - var _valid0 = _errs28 === errors; - valid5 = valid5 || _valid0; - if (!valid5) { - const err26 = { - instancePath: instancePath + "/connectors/" + i0 + "/installed_version", - schemaPath: "#/$defs/PluginCatalogRecord/properties/installed_version/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err26]; - } else { - vErrors.push(err26); - } - errors++; + errors++; + } + if (typeof data52 == "number" && isFinite(data52)) { + if (data52 > 9223372036854776000 || isNaN(data52)) { + const err164 = { + instancePath: instancePath + "/telemetry/rows_affected", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_affected/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err164]; } else { - errors = _errs25; - if (vErrors !== null) { - if (_errs25) { - vErrors.length = _errs25; - } else { - vErrors = null; - } - } + vErrors.push(err164); } + errors++; } - if (data1.pypi_url !== undefined) { - if (typeof data1.pypi_url !== "string") { - const err27 = { - instancePath: instancePath + "/connectors/" + i0 + "/pypi_url", - schemaPath: "#/$defs/PluginCatalogRecord/properties/pypi_url/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err27]; - } else { - vErrors.push(err27); - } - errors++; + if (data52 < 0 || isNaN(data52)) { + const err165 = { + instancePath: instancePath + "/telemetry/rows_affected", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_affected/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err165]; + } else { + vErrors.push(err165); } + errors++; } - if (data1.repository_url !== undefined) { - if (typeof data1.repository_url !== "string") { - const err28 = { - instancePath: instancePath + "/connectors/" + i0 + "/repository_url", - schemaPath: "#/$defs/PluginCatalogRecord/properties/repository_url/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err28]; - } else { - vErrors.push(err28); - } - errors++; + } + } + if (data42.rows_read !== undefined) { + let data53 = data42.rows_read; + if (!(typeof data53 == "number" && !(data53 % 1) && !isNaN(data53) && isFinite(data53))) { + const err166 = { + instancePath: instancePath + "/telemetry/rows_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_read/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err166]; + } else { + vErrors.push(err166); + } + errors++; + } + if (typeof data53 == "number" && isFinite(data53)) { + if (data53 > 9223372036854776000 || isNaN(data53)) { + const err167 = { + instancePath: instancePath + "/telemetry/rows_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_read/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err167]; + } else { + vErrors.push(err167); } + errors++; } - if (data1.support_status !== undefined) { - if (typeof data1.support_status !== "string") { - const err29 = { - instancePath: instancePath + "/connectors/" + i0 + "/support_status", - schemaPath: "#/$defs/PluginCatalogRecord/properties/support_status/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err29]; - } else { - vErrors.push(err29); - } - errors++; + if (data53 < 0 || isNaN(data53)) { + const err168 = { + instancePath: instancePath + "/telemetry/rows_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_read/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err168]; + } else { + vErrors.push(err168); } + errors++; } - if (data1.validation_status !== undefined) { - if (typeof data1.validation_status !== "string") { - const err30 = { - instancePath: instancePath + "/connectors/" + i0 + "/validation_status", - schemaPath: "#/$defs/PluginCatalogRecord/properties/validation_status/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err30]; - } else { - vErrors.push(err30); - } - errors++; + } + } + if (data42.rows_written !== undefined) { + let data54 = data42.rows_written; + if (!(typeof data54 == "number" && !(data54 % 1) && !isNaN(data54) && isFinite(data54))) { + const err169 = { + instancePath: instancePath + "/telemetry/rows_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_written/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err169]; + } else { + vErrors.push(err169); + } + errors++; + } + if (typeof data54 == "number" && isFinite(data54)) { + if (data54 > 9223372036854776000 || isNaN(data54)) { + const err170 = { + instancePath: instancePath + "/telemetry/rows_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_written/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err170]; + } else { + vErrors.push(err170); } + errors++; } - if (data1.version !== undefined) { - if (typeof data1.version !== "string") { - const err31 = { - instancePath: instancePath + "/connectors/" + i0 + "/version", - schemaPath: "#/$defs/PluginCatalogRecord/properties/version/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err31]; - } else { - vErrors.push(err31); - } - errors++; + if (data54 < 0 || isNaN(data54)) { + const err171 = { + instancePath: instancePath + "/telemetry/rows_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_written/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err171]; + } else { + vErrors.push(err171); } + errors++; } - } else { - const err32 = { - instancePath: instancePath + "/connectors/" + i0, - schemaPath: "#/$defs/PluginCatalogRecord/type", + } + } + if (data42.spill_bytes !== undefined) { + let data55 = data42.spill_bytes; + if (!(typeof data55 == "number" && !(data55 % 1) && !isNaN(data55) && isFinite(data55))) { + const err172 = { + instancePath: instancePath + "/telemetry/spill_bytes", + schemaPath: "#/$defs/RunTelemetrySummary/properties/spill_bytes/type", keyword: "type", - params: { type: "object" }, - message: "must be object", + params: { type: "integer" }, + message: "must be integer", }; if (vErrors === null) { - vErrors = [err32]; + vErrors = [err172]; } else { - vErrors.push(err32); + vErrors.push(err172); } errors++; } + if (typeof data55 == "number" && isFinite(data55)) { + if (data55 > 9223372036854776000 || isNaN(data55)) { + const err173 = { + instancePath: instancePath + "/telemetry/spill_bytes", + schemaPath: "#/$defs/RunTelemetrySummary/properties/spill_bytes/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err173]; + } else { + vErrors.push(err173); + } + errors++; + } + if (data55 < 0 || isNaN(data55)) { + const err174 = { + instancePath: instancePath + "/telemetry/spill_bytes", + schemaPath: "#/$defs/RunTelemetrySummary/properties/spill_bytes/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err174]; + } else { + vErrors.push(err174); + } + errors++; + } + } } } else { - const err33 = { - instancePath: instancePath + "/connectors", - schemaPath: "#/properties/connectors/type", + const err175 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err175]; + } else { + vErrors.push(err175); + } + errors++; + } + var _valid17 = _errs163 === errors; + valid25 = valid25 || _valid17; + const _errs193 = errors; + if (data42 !== null) { + const err176 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/properties/telemetry/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err176]; + } else { + vErrors.push(err176); + } + errors++; + } + var _valid17 = _errs193 === errors; + valid25 = valid25 || _valid17; + if (!valid25) { + const err177 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/properties/telemetry/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err177]; + } else { + vErrors.push(err177); + } + errors++; + } else { + errors = _errs162; + if (vErrors !== null) { + if (_errs162) { + vErrors.length = _errs162; + } else { + vErrors = null; + } + } + } + } + } else { + const err178 = { + instancePath, + schemaPath: "#/type", + keyword: "type", + params: { type: "object" }, + message: "must be object", + }; + if (vErrors === null) { + vErrors = [err178]; + } else { + vErrors.push(err178); + } + errors++; + } + validate429.errors = vErrors; + return errors === 0; +} +validate429.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; + +function validate428( + data, + { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, +) { + /*# sourceURL="urn:dander:control:contracts:v1:run-page" */ let vErrors = null; + let errors = 0; + const evaluated0 = validate428.evaluated; + if (evaluated0.dynamicProps) { + evaluated0.props = undefined; + } + if (evaluated0.dynamicItems) { + evaluated0.items = undefined; + } + if (data && typeof data == "object" && !Array.isArray(data)) { + if (data.items === undefined) { + const err0 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "items" }, + message: "must have required property '" + "items" + "'", + }; + if (vErrors === null) { + vErrors = [err0]; + } else { + vErrors.push(err0); + } + errors++; + } + for (const key0 in data) { + if (!(key0 === "items" || key0 === "next_cursor")) { + const err1 = { + instancePath, + schemaPath: "#/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key0 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } + } + if (data.items !== undefined) { + let data0 = data.items; + if (Array.isArray(data0)) { + if (data0.length > 100) { + const err2 = { + instancePath: instancePath + "/items", + schemaPath: "#/properties/items/maxItems", + keyword: "maxItems", + params: { limit: 100 }, + message: "must NOT have more than 100 items", + }; + if (vErrors === null) { + vErrors = [err2]; + } else { + vErrors.push(err2); + } + errors++; + } + const len0 = data0.length; + for (let i0 = 0; i0 < len0; i0++) { + if ( + !validate429(data0[i0], { + instancePath: instancePath + "/items/" + i0, + parentData: data0, + parentDataProperty: i0, + rootData, + dynamicAnchors, + }) + ) { + vErrors = vErrors === null ? validate429.errors : vErrors.concat(validate429.errors); + errors = vErrors.length; + } + } + } else { + const err3 = { + instancePath: instancePath + "/items", + schemaPath: "#/properties/items/type", keyword: "type", params: { type: "array" }, message: "must be array", }; if (vErrors === null) { - vErrors = [err33]; + vErrors = [err3]; } else { - vErrors.push(err33); + vErrors.push(err3); } errors++; } } - if (data.dander_version !== undefined) { - if (typeof data.dander_version !== "string") { - const err34 = { - instancePath: instancePath + "/dander_version", - schemaPath: "#/properties/dander_version/type", + if (data.next_cursor !== undefined) { + let data2 = data.next_cursor; + const _errs6 = errors; + let valid3 = false; + const _errs7 = errors; + if (typeof data2 !== "string") { + const err4 = { + instancePath: instancePath + "/next_cursor", + schemaPath: "#/properties/next_cursor/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err34]; + vErrors = [err4]; } else { - vErrors.push(err34); + vErrors.push(err4); } errors++; } - } - if (data.schema_version !== undefined) { - let data17 = data.schema_version; - if (!(typeof data17 == "number" && !(data17 % 1) && !isNaN(data17) && isFinite(data17))) { - const err35 = { - instancePath: instancePath + "/schema_version", - schemaPath: "#/properties/schema_version/type", + var _valid0 = _errs7 === errors; + valid3 = valid3 || _valid0; + const _errs9 = errors; + if (data2 !== null) { + const err5 = { + instancePath: instancePath + "/next_cursor", + schemaPath: "#/properties/next_cursor/anyOf/1/type", keyword: "type", - params: { type: "integer" }, - message: "must be integer", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err35]; + vErrors = [err5]; } else { - vErrors.push(err35); + vErrors.push(err5); } errors++; } - if (1 !== data17) { - const err36 = { - instancePath: instancePath + "/schema_version", - schemaPath: "#/properties/schema_version/const", - keyword: "const", - params: { allowedValue: 1 }, - message: "must be equal to constant", + var _valid0 = _errs9 === errors; + valid3 = valid3 || _valid0; + if (!valid3) { + const err6 = { + instancePath: instancePath + "/next_cursor", + schemaPath: "#/properties/next_cursor/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err36]; + vErrors = [err6]; } else { - vErrors.push(err36); + vErrors.push(err6); } errors++; + } else { + errors = _errs6; + if (vErrors !== null) { + if (_errs6) { + vErrors.length = _errs6; + } else { + vErrors = null; + } + } } } } else { - const err37 = { + const err7 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -42767,61 +51534,38 @@ function validate409( message: "must be object", }; if (vErrors === null) { - vErrors = [err37]; + vErrors = [err7]; } else { - vErrors.push(err37); + vErrors.push(err7); } errors++; } - validate409.errors = vErrors; + validate428.errors = vErrors; return errors === 0; } -validate409.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate428.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateProjectList = validate410; -const schema273 = { - $defs: { - ProjectSummaryResponse: { - additionalProperties: false, - description: "One configured logical project, never a provider project payload.", - properties: { id: { title: "Id", type: "string" } }, - required: ["id"], - title: "ProjectSummaryResponse", - type: "object", - }, - }, - $id: "urn:dander:control:contracts:v1:project-list", +export const validateRunRequest = validate431; +const schema304 = { + $id: "urn:dander:control:contracts:v1:run-request", $schema: "https://json-schema.org/draft/2020-12/schema", additionalProperties: false, - description: "The bounded logical projects configured for this Dander installation.", properties: { - projects: { - items: { $ref: "#/$defs/ProjectSummaryResponse" }, - maxItems: 100, - title: "Projects", - type: "array", - }, + expected_revision: { title: "Expected Revision", type: "string" }, + idempotency_key: { maxLength: 128, minLength: 1, title: "Idempotency Key", type: "string" }, }, - required: ["projects"], - title: "ProjectListResponse", - type: "object", -}; -const schema274 = { - additionalProperties: false, - description: "One configured logical project, never a provider project payload.", - properties: { id: { title: "Id", type: "string" } }, - required: ["id"], - title: "ProjectSummaryResponse", + required: ["expected_revision", "idempotency_key"], + title: "RunRequest", type: "object", }; -function validate410( +function validate431( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { - /*# sourceURL="urn:dander:control:contracts:v1:project-list" */ let vErrors = null; + /*# sourceURL="urn:dander:control:contracts:v1:run-request" */ let vErrors = null; let errors = 0; - const evaluated0 = validate410.evaluated; + const evaluated0 = validate431.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -42829,13 +51573,13 @@ function validate410( evaluated0.items = undefined; } if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.projects === undefined) { + if (data.expected_revision === undefined) { const err0 = { instancePath, schemaPath: "#/required", keyword: "required", - params: { missingProperty: "projects" }, - message: "must have required property '" + "projects" + "'", + params: { missingProperty: "expected_revision" }, + message: "must have required property '" + "expected_revision" + "'", }; if (vErrors === null) { vErrors = [err0]; @@ -42844,9 +51588,24 @@ function validate410( } errors++; } + if (data.idempotency_key === undefined) { + const err1 = { + instancePath, + schemaPath: "#/required", + keyword: "required", + params: { missingProperty: "idempotency_key" }, + message: "must have required property '" + "idempotency_key" + "'", + }; + if (vErrors === null) { + vErrors = [err1]; + } else { + vErrors.push(err1); + } + errors++; + } for (const key0 in data) { - if (!(key0 === "projects")) { - const err1 = { + if (!(key0 === "expected_revision" || key0 === "idempotency_key")) { + const err2 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", @@ -42854,118 +51613,81 @@ function validate410( message: "must NOT have additional properties", }; if (vErrors === null) { - vErrors = [err1]; + vErrors = [err2]; } else { - vErrors.push(err1); + vErrors.push(err2); } errors++; } } - if (data.projects !== undefined) { - let data0 = data.projects; - if (Array.isArray(data0)) { - if (data0.length > 100) { - const err2 = { - instancePath: instancePath + "/projects", - schemaPath: "#/properties/projects/maxItems", - keyword: "maxItems", - params: { limit: 100 }, - message: "must NOT have more than 100 items", + if (data.expected_revision !== undefined) { + if (typeof data.expected_revision !== "string") { + const err3 = { + instancePath: instancePath + "/expected_revision", + schemaPath: "#/properties/expected_revision/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err3]; + } else { + vErrors.push(err3); + } + errors++; + } + } + if (data.idempotency_key !== undefined) { + let data1 = data.idempotency_key; + if (typeof data1 === "string") { + if (func3(data1) > 128) { + const err4 = { + instancePath: instancePath + "/idempotency_key", + schemaPath: "#/properties/idempotency_key/maxLength", + keyword: "maxLength", + params: { limit: 128 }, + message: "must NOT have more than 128 characters", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err4]; } else { - vErrors.push(err2); + vErrors.push(err4); } errors++; } - const len0 = data0.length; - for (let i0 = 0; i0 < len0; i0++) { - let data1 = data0[i0]; - if (data1 && typeof data1 == "object" && !Array.isArray(data1)) { - if (data1.id === undefined) { - const err3 = { - instancePath: instancePath + "/projects/" + i0, - schemaPath: "#/$defs/ProjectSummaryResponse/required", - keyword: "required", - params: { missingProperty: "id" }, - message: "must have required property '" + "id" + "'", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); - } - errors++; - } - for (const key1 in data1) { - if (!(key1 === "id")) { - const err4 = { - instancePath: instancePath + "/projects/" + i0, - schemaPath: "#/$defs/ProjectSummaryResponse/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key1 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - } - if (data1.id !== undefined) { - if (typeof data1.id !== "string") { - const err5 = { - instancePath: instancePath + "/projects/" + i0 + "/id", - schemaPath: "#/$defs/ProjectSummaryResponse/properties/id/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err5]; - } else { - vErrors.push(err5); - } - errors++; - } - } + if (func3(data1) < 1) { + const err5 = { + instancePath: instancePath + "/idempotency_key", + schemaPath: "#/properties/idempotency_key/minLength", + keyword: "minLength", + params: { limit: 1 }, + message: "must NOT have fewer than 1 characters", + }; + if (vErrors === null) { + vErrors = [err5]; } else { - const err6 = { - instancePath: instancePath + "/projects/" + i0, - schemaPath: "#/$defs/ProjectSummaryResponse/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; + vErrors.push(err5); } - } - } else { - const err7 = { - instancePath: instancePath + "/projects", - schemaPath: "#/properties/projects/type", + errors++; + } + } else { + const err6 = { + instancePath: instancePath + "/idempotency_key", + schemaPath: "#/properties/idempotency_key/type", keyword: "type", - params: { type: "array" }, - message: "must be array", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err7]; + vErrors = [err6]; } else { - vErrors.push(err7); + vErrors.push(err6); } errors++; } } } else { - const err8 = { + const err7 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -42973,88 +51695,248 @@ function validate410( message: "must be object", }; if (vErrors === null) { - vErrors = [err8]; + vErrors = [err7]; } else { - vErrors.push(err8); + vErrors.push(err7); } errors++; } - validate410.errors = vErrors; + validate431.errors = vErrors; return errors === 0; } -validate410.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate431.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateRunPage = validate411; -const schema275 = { +export const validateRunStatus = validate432; +const schema305 = { $defs: { - RunState: { - enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], - title: "RunState", - type: "string", + GraphRepairWindow: { + additionalProperties: false, + description: "UTC calendar dates: start is inclusive and end is exclusive.", + properties: { + end_date: { format: "date", title: "End Date", type: "string" }, + start_date: { format: "date", title: "Start Date", type: "string" }, + }, + required: ["start_date", "end_date"], + title: "GraphRepairWindow", + type: "object", }, - RunStatusResponse: { + RunPlacementDecision: { additionalProperties: false, + description: "Fixed-size explanation of the execution-plan selection used by Control.", properties: { - affected: { default: 0, minimum: 0, title: "Affected", type: "integer" }, - assertions: { default: 0, minimum: 0, title: "Assertions", type: "integer" }, - assets: { default: 0, minimum: 0, title: "Assets", type: "integer" }, - can_cancel: { default: false, title: "Can Cancel", type: "boolean" }, - can_replay: { default: false, title: "Can Replay", type: "boolean" }, - endpoints: { default: 0, minimum: 0, title: "Endpoints", type: "integer" }, - extracted: { default: 0, minimum: 0, title: "Extracted", type: "integer" }, - failure_code: { + decision_schema: { + const: "io.dander.control.placement-decision/v1", + title: "Decision Schema", + type: "string", + }, + eligible_plan_count: { + maximum: 100, + minimum: 1, + title: "Eligible Plan Count", + type: "integer", + }, + estimated_cost_microusd: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Estimated Cost Microusd", + }, + max_cost_microusd: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Max Cost Microusd", + }, + mode: { + enum: ["automatic", "manual_override", "configured_default", "scheduled", "replay"], + title: "Mode", + type: "string", + }, + preferred_locality: { anyOf: [{ type: "string" }, { type: "null" }], default: null, - title: "Failure Code", + title: "Preferred Locality", }, - failure_summary: { + selected_environment: { title: "Selected Environment", type: "string" }, + selected_locality: { anyOf: [{ type: "string" }, { type: "null" }], default: null, - title: "Failure Summary", + title: "Selected Locality", }, - finished_at: { + }, + required: ["decision_schema", "mode", "selected_environment", "eligible_plan_count"], + title: "RunPlacementDecision", + type: "object", + }, + RunSizeClassDecision: { + additionalProperties: false, + description: "Fixed-size explanation of the selected execution resource class.", + properties: { + cpu_millis: { minimum: 1, title: "Cpu Millis", type: "integer" }, + decision_schema: { + const: "io.dander.control.size-class-decision/v2", + title: "Decision Schema", + type: "string", + }, + eligible_plan_count: { + maximum: 100, + minimum: 1, + title: "Eligible Plan Count", + type: "integer", + }, + ephemeral_storage_mib: { + anyOf: [{ minimum: 1, type: "integer" }, { type: "null" }], + default: null, + title: "Ephemeral Storage Mib", + }, + estimate_observed_at: { anyOf: [{ type: "string" }, { type: "null" }], default: null, - title: "Finished At", + title: "Estimate Observed At", }, - logs_available: { default: false, title: "Logs Available", type: "boolean" }, - models: { default: 0, minimum: 0, title: "Models", type: "integer" }, - run_id: { title: "Run Id", type: "string" }, - stage: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Stage" }, - started_at: { + estimate_source: { anyOf: [{ type: "string" }, { type: "null" }], default: null, - title: "Started At", + title: "Estimate Source", }, - state: { $ref: "#/$defs/RunState" }, + estimated_input_bytes: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Estimated Input Bytes", + }, + max_input_bytes: { + maximum: 9223372036854776000, + minimum: 0, + title: "Max Input Bytes", + type: "integer", + }, + memory_mib: { minimum: 1, title: "Memory Mib", type: "integer" }, + mode: { + enum: ["automatic_input", "manual_override", "configured_default", "scheduled", "replay"], + title: "Mode", + type: "string", + }, + selected_size_class: { title: "Selected Size Class", type: "string" }, }, - required: ["run_id", "state"], - title: "RunStatusResponse", + required: [ + "decision_schema", + "mode", + "selected_size_class", + "max_input_bytes", + "cpu_millis", + "memory_mib", + "eligible_plan_count", + ], + title: "RunSizeClassDecision", type: "object", }, - }, - $id: "urn:dander:control:contracts:v1:run-page", - $schema: "https://json-schema.org/draft/2020-12/schema", - additionalProperties: false, - description: "A bounded page of normalized, non-sensitive run summaries.", - properties: { - items: { - items: { $ref: "#/$defs/RunStatusResponse" }, - maxItems: 100, - title: "Items", - type: "array", + RunState: { + enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], + title: "RunState", + type: "string", }, - next_cursor: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Next Cursor", + RunTelemetrySummary: { + additionalProperties: false, + description: "Fixed-size telemetry totals; provider operation details remain in logs.", + properties: { + bytes_billed: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Billed", + type: "integer", + }, + bytes_processed: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Processed", + type: "integer", + }, + bytes_read: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Read", + type: "integer", + }, + bytes_written: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Written", + type: "integer", + }, + duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Duration Ms", + type: "integer", + }, + execution_duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Execution Duration Ms", + type: "integer", + }, + operation_count: { + maximum: 9223372036854776000, + minimum: 0, + title: "Operation Count", + type: "integer", + }, + queue_duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Queue Duration Ms", + type: "integer", + }, + retry_count: { + maximum: 9223372036854776000, + minimum: 0, + title: "Retry Count", + type: "integer", + }, + rows_affected: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Affected", + type: "integer", + }, + rows_read: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Read", + type: "integer", + }, + rows_written: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Written", + type: "integer", + }, + spill_bytes: { + maximum: 9223372036854776000, + minimum: 0, + title: "Spill Bytes", + type: "integer", + }, + }, + required: [ + "duration_ms", + "operation_count", + "retry_count", + "rows_read", + "rows_written", + "rows_affected", + "bytes_read", + "bytes_written", + "bytes_processed", + "bytes_billed", + "queue_duration_ms", + "execution_duration_ms", + "spill_bytes", + ], + title: "RunTelemetrySummary", + type: "object", }, }, - required: ["items"], - title: "RunPageResponse", - type: "object", -}; -const schema276 = { + $id: "urn:dander:control:contracts:v1:run-status", + $schema: "https://json-schema.org/draft/2020-12/schema", additionalProperties: false, properties: { affected: { default: 0, minimum: 0, title: "Affected", type: "integer" }, @@ -43081,7 +51963,25 @@ const schema276 = { }, logs_available: { default: false, title: "Logs Available", type: "boolean" }, models: { default: 0, minimum: 0, title: "Models", type: "integer" }, + placement: { + anyOf: [{ $ref: "#/$defs/RunPlacementDecision" }, { type: "null" }], + default: null, + }, + repair_window: { + anyOf: [{ $ref: "#/$defs/GraphRepairWindow" }, { type: "null" }], + default: null, + }, + result_schema: { + anyOf: [ + { const: "io.dander.control.execution-result-summary/v1", type: "string" }, + { type: "null" }, + ], + default: null, + title: "Result Schema", + }, run_id: { title: "Run Id", type: "string" }, + sizing: { anyOf: [{ $ref: "#/$defs/RunSizeClassDecision" }, { type: "null" }], default: null }, + skipped: { default: false, title: "Skipped", type: "boolean" }, stage: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Stage" }, started_at: { anyOf: [{ type: "string" }, { type: "null" }], @@ -43089,24 +51989,238 @@ const schema276 = { title: "Started At", }, state: { $ref: "#/$defs/RunState" }, + telemetry: { + anyOf: [{ $ref: "#/$defs/RunTelemetrySummary" }, { type: "null" }], + default: null, + }, }, required: ["run_id", "state"], title: "RunStatusResponse", type: "object", }; -const schema277 = { +const schema306 = { + additionalProperties: false, + description: "Fixed-size explanation of the execution-plan selection used by Control.", + properties: { + decision_schema: { + const: "io.dander.control.placement-decision/v1", + title: "Decision Schema", + type: "string", + }, + eligible_plan_count: { + maximum: 100, + minimum: 1, + title: "Eligible Plan Count", + type: "integer", + }, + estimated_cost_microusd: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Estimated Cost Microusd", + }, + max_cost_microusd: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Max Cost Microusd", + }, + mode: { + enum: ["automatic", "manual_override", "configured_default", "scheduled", "replay"], + title: "Mode", + type: "string", + }, + preferred_locality: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Preferred Locality", + }, + selected_environment: { title: "Selected Environment", type: "string" }, + selected_locality: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Selected Locality", + }, + }, + required: ["decision_schema", "mode", "selected_environment", "eligible_plan_count"], + title: "RunPlacementDecision", + type: "object", +}; +const schema307 = { + additionalProperties: false, + description: "UTC calendar dates: start is inclusive and end is exclusive.", + properties: { + end_date: { format: "date", title: "End Date", type: "string" }, + start_date: { format: "date", title: "Start Date", type: "string" }, + }, + required: ["start_date", "end_date"], + title: "GraphRepairWindow", + type: "object", +}; +const schema308 = { + additionalProperties: false, + description: "Fixed-size explanation of the selected execution resource class.", + properties: { + cpu_millis: { minimum: 1, title: "Cpu Millis", type: "integer" }, + decision_schema: { + const: "io.dander.control.size-class-decision/v2", + title: "Decision Schema", + type: "string", + }, + eligible_plan_count: { + maximum: 100, + minimum: 1, + title: "Eligible Plan Count", + type: "integer", + }, + ephemeral_storage_mib: { + anyOf: [{ minimum: 1, type: "integer" }, { type: "null" }], + default: null, + title: "Ephemeral Storage Mib", + }, + estimate_observed_at: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Estimate Observed At", + }, + estimate_source: { + anyOf: [{ type: "string" }, { type: "null" }], + default: null, + title: "Estimate Source", + }, + estimated_input_bytes: { + anyOf: [{ maximum: 9223372036854776000, minimum: 0, type: "integer" }, { type: "null" }], + default: null, + title: "Estimated Input Bytes", + }, + max_input_bytes: { + maximum: 9223372036854776000, + minimum: 0, + title: "Max Input Bytes", + type: "integer", + }, + memory_mib: { minimum: 1, title: "Memory Mib", type: "integer" }, + mode: { + enum: ["automatic_input", "manual_override", "configured_default", "scheduled", "replay"], + title: "Mode", + type: "string", + }, + selected_size_class: { title: "Selected Size Class", type: "string" }, + }, + required: [ + "decision_schema", + "mode", + "selected_size_class", + "max_input_bytes", + "cpu_millis", + "memory_mib", + "eligible_plan_count", + ], + title: "RunSizeClassDecision", + type: "object", +}; +const schema309 = { enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], title: "RunState", type: "string", }; +const schema310 = { + additionalProperties: false, + description: "Fixed-size telemetry totals; provider operation details remain in logs.", + properties: { + bytes_billed: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Billed", + type: "integer", + }, + bytes_processed: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Processed", + type: "integer", + }, + bytes_read: { maximum: 9223372036854776000, minimum: 0, title: "Bytes Read", type: "integer" }, + bytes_written: { + maximum: 9223372036854776000, + minimum: 0, + title: "Bytes Written", + type: "integer", + }, + duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Duration Ms", + type: "integer", + }, + execution_duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Execution Duration Ms", + type: "integer", + }, + operation_count: { + maximum: 9223372036854776000, + minimum: 0, + title: "Operation Count", + type: "integer", + }, + queue_duration_ms: { + maximum: 9223372036854776000, + minimum: 0, + title: "Queue Duration Ms", + type: "integer", + }, + retry_count: { + maximum: 9223372036854776000, + minimum: 0, + title: "Retry Count", + type: "integer", + }, + rows_affected: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Affected", + type: "integer", + }, + rows_read: { maximum: 9223372036854776000, minimum: 0, title: "Rows Read", type: "integer" }, + rows_written: { + maximum: 9223372036854776000, + minimum: 0, + title: "Rows Written", + type: "integer", + }, + spill_bytes: { + maximum: 9223372036854776000, + minimum: 0, + title: "Spill Bytes", + type: "integer", + }, + }, + required: [ + "duration_ms", + "operation_count", + "retry_count", + "rows_read", + "rows_written", + "rows_affected", + "bytes_read", + "bytes_written", + "bytes_processed", + "bytes_billed", + "queue_duration_ms", + "execution_duration_ms", + "spill_bytes", + ], + title: "RunTelemetrySummary", + type: "object", +}; -function validate412( +function validate432( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { - let vErrors = null; + /*# sourceURL="urn:dander:control:contracts:v1:run-status" */ let vErrors = null; let errors = 0; - const evaluated0 = validate412.evaluated; + const evaluated0 = validate432.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -43145,7 +52259,7 @@ function validate412( errors++; } for (const key0 in data) { - if (!func1.call(schema276.properties, key0)) { + if (!func1.call(schema305.properties, key0)) { const err2 = { instancePath, schemaPath: "#/additionalProperties", @@ -43579,1356 +52693,2792 @@ function validate412( } else { vErrors.push(err24); } - errors++; - } - } - if (data.models !== undefined) { - let data11 = data.models; - if (!(typeof data11 == "number" && !(data11 % 1) && !isNaN(data11) && isFinite(data11))) { - const err25 = { - instancePath: instancePath + "/models", - schemaPath: "#/properties/models/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err25]; - } else { - vErrors.push(err25); + errors++; + } + } + if (data.models !== undefined) { + let data11 = data.models; + if (!(typeof data11 == "number" && !(data11 % 1) && !isNaN(data11) && isFinite(data11))) { + const err25 = { + instancePath: instancePath + "/models", + schemaPath: "#/properties/models/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err25]; + } else { + vErrors.push(err25); + } + errors++; + } + if (typeof data11 == "number" && isFinite(data11)) { + if (data11 < 0 || isNaN(data11)) { + const err26 = { + instancePath: instancePath + "/models", + schemaPath: "#/properties/models/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err26]; + } else { + vErrors.push(err26); + } + errors++; + } + } + } + if (data.placement !== undefined) { + let data12 = data.placement; + const _errs39 = errors; + let valid4 = false; + const _errs40 = errors; + if (data12 && typeof data12 == "object" && !Array.isArray(data12)) { + if (data12.decision_schema === undefined) { + const err27 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/required", + keyword: "required", + params: { missingProperty: "decision_schema" }, + message: "must have required property '" + "decision_schema" + "'", + }; + if (vErrors === null) { + vErrors = [err27]; + } else { + vErrors.push(err27); + } + errors++; + } + if (data12.mode === undefined) { + const err28 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/required", + keyword: "required", + params: { missingProperty: "mode" }, + message: "must have required property '" + "mode" + "'", + }; + if (vErrors === null) { + vErrors = [err28]; + } else { + vErrors.push(err28); + } + errors++; + } + if (data12.selected_environment === undefined) { + const err29 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/required", + keyword: "required", + params: { missingProperty: "selected_environment" }, + message: "must have required property '" + "selected_environment" + "'", + }; + if (vErrors === null) { + vErrors = [err29]; + } else { + vErrors.push(err29); + } + errors++; + } + if (data12.eligible_plan_count === undefined) { + const err30 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/required", + keyword: "required", + params: { missingProperty: "eligible_plan_count" }, + message: "must have required property '" + "eligible_plan_count" + "'", + }; + if (vErrors === null) { + vErrors = [err30]; + } else { + vErrors.push(err30); + } + errors++; + } + for (const key1 in data12) { + if (!( + key1 === "decision_schema" || + key1 === "eligible_plan_count" || + key1 === "estimated_cost_microusd" || + key1 === "max_cost_microusd" || + key1 === "mode" || + key1 === "preferred_locality" || + key1 === "selected_environment" || + key1 === "selected_locality" + )) { + const err31 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key1 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err31]; + } else { + vErrors.push(err31); + } + errors++; + } + } + if (data12.decision_schema !== undefined) { + let data13 = data12.decision_schema; + if (typeof data13 !== "string") { + const err32 = { + instancePath: instancePath + "/placement/decision_schema", + schemaPath: "#/$defs/RunPlacementDecision/properties/decision_schema/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err32]; + } else { + vErrors.push(err32); + } + errors++; + } + if ("io.dander.control.placement-decision/v1" !== data13) { + const err33 = { + instancePath: instancePath + "/placement/decision_schema", + schemaPath: "#/$defs/RunPlacementDecision/properties/decision_schema/const", + keyword: "const", + params: { allowedValue: "io.dander.control.placement-decision/v1" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err33]; + } else { + vErrors.push(err33); + } + errors++; + } + } + if (data12.eligible_plan_count !== undefined) { + let data14 = data12.eligible_plan_count; + if (!(typeof data14 == "number" && !(data14 % 1) && !isNaN(data14) && isFinite(data14))) { + const err34 = { + instancePath: instancePath + "/placement/eligible_plan_count", + schemaPath: "#/$defs/RunPlacementDecision/properties/eligible_plan_count/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err34]; + } else { + vErrors.push(err34); + } + errors++; + } + if (typeof data14 == "number" && isFinite(data14)) { + if (data14 > 100 || isNaN(data14)) { + const err35 = { + instancePath: instancePath + "/placement/eligible_plan_count", + schemaPath: "#/$defs/RunPlacementDecision/properties/eligible_plan_count/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 100 }, + message: "must be <= 100", + }; + if (vErrors === null) { + vErrors = [err35]; + } else { + vErrors.push(err35); + } + errors++; + } + if (data14 < 1 || isNaN(data14)) { + const err36 = { + instancePath: instancePath + "/placement/eligible_plan_count", + schemaPath: "#/$defs/RunPlacementDecision/properties/eligible_plan_count/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err36]; + } else { + vErrors.push(err36); + } + errors++; + } + } + } + if (data12.estimated_cost_microusd !== undefined) { + let data15 = data12.estimated_cost_microusd; + const _errs49 = errors; + let valid7 = false; + const _errs50 = errors; + if (!(typeof data15 == "number" && !(data15 % 1) && !isNaN(data15) && isFinite(data15))) { + const err37 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf/0/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err37]; + } else { + vErrors.push(err37); + } + errors++; + } + if (typeof data15 == "number" && isFinite(data15)) { + if (data15 > 9223372036854776000 || isNaN(data15)) { + const err38 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf/0/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err38]; + } else { + vErrors.push(err38); + } + errors++; + } + if (data15 < 0 || isNaN(data15)) { + const err39 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf/0/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err39]; + } else { + vErrors.push(err39); + } + errors++; + } + } + var _valid4 = _errs50 === errors; + valid7 = valid7 || _valid4; + const _errs52 = errors; + if (data15 !== null) { + const err40 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err40]; + } else { + vErrors.push(err40); + } + errors++; + } + var _valid4 = _errs52 === errors; + valid7 = valid7 || _valid4; + if (!valid7) { + const err41 = { + instancePath: instancePath + "/placement/estimated_cost_microusd", + schemaPath: "#/$defs/RunPlacementDecision/properties/estimated_cost_microusd/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err41]; + } else { + vErrors.push(err41); + } + errors++; + } else { + errors = _errs49; + if (vErrors !== null) { + if (_errs49) { + vErrors.length = _errs49; + } else { + vErrors = null; + } + } + } + } + if (data12.max_cost_microusd !== undefined) { + let data16 = data12.max_cost_microusd; + const _errs55 = errors; + let valid8 = false; + const _errs56 = errors; + if (!(typeof data16 == "number" && !(data16 % 1) && !isNaN(data16) && isFinite(data16))) { + const err42 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf/0/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err42]; + } else { + vErrors.push(err42); + } + errors++; + } + if (typeof data16 == "number" && isFinite(data16)) { + if (data16 > 9223372036854776000 || isNaN(data16)) { + const err43 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf/0/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err43]; + } else { + vErrors.push(err43); + } + errors++; + } + if (data16 < 0 || isNaN(data16)) { + const err44 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: + "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf/0/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err44]; + } else { + vErrors.push(err44); + } + errors++; + } + } + var _valid5 = _errs56 === errors; + valid8 = valid8 || _valid5; + const _errs58 = errors; + if (data16 !== null) { + const err45 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err45]; + } else { + vErrors.push(err45); + } + errors++; + } + var _valid5 = _errs58 === errors; + valid8 = valid8 || _valid5; + if (!valid8) { + const err46 = { + instancePath: instancePath + "/placement/max_cost_microusd", + schemaPath: "#/$defs/RunPlacementDecision/properties/max_cost_microusd/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err46]; + } else { + vErrors.push(err46); + } + errors++; + } else { + errors = _errs55; + if (vErrors !== null) { + if (_errs55) { + vErrors.length = _errs55; + } else { + vErrors = null; + } + } + } + } + if (data12.mode !== undefined) { + let data17 = data12.mode; + if (typeof data17 !== "string") { + const err47 = { + instancePath: instancePath + "/placement/mode", + schemaPath: "#/$defs/RunPlacementDecision/properties/mode/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err47]; + } else { + vErrors.push(err47); + } + errors++; + } + if (!( + data17 === "automatic" || + data17 === "manual_override" || + data17 === "configured_default" || + data17 === "scheduled" || + data17 === "replay" + )) { + const err48 = { + instancePath: instancePath + "/placement/mode", + schemaPath: "#/$defs/RunPlacementDecision/properties/mode/enum", + keyword: "enum", + params: { allowedValues: schema306.properties.mode.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err48]; + } else { + vErrors.push(err48); + } + errors++; + } + } + if (data12.preferred_locality !== undefined) { + let data18 = data12.preferred_locality; + const _errs63 = errors; + let valid9 = false; + const _errs64 = errors; + if (typeof data18 !== "string") { + const err49 = { + instancePath: instancePath + "/placement/preferred_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/preferred_locality/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err49]; + } else { + vErrors.push(err49); + } + errors++; + } + var _valid6 = _errs64 === errors; + valid9 = valid9 || _valid6; + const _errs66 = errors; + if (data18 !== null) { + const err50 = { + instancePath: instancePath + "/placement/preferred_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/preferred_locality/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err50]; + } else { + vErrors.push(err50); + } + errors++; + } + var _valid6 = _errs66 === errors; + valid9 = valid9 || _valid6; + if (!valid9) { + const err51 = { + instancePath: instancePath + "/placement/preferred_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/preferred_locality/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err51]; + } else { + vErrors.push(err51); + } + errors++; + } else { + errors = _errs63; + if (vErrors !== null) { + if (_errs63) { + vErrors.length = _errs63; + } else { + vErrors = null; + } + } + } + } + if (data12.selected_environment !== undefined) { + if (typeof data12.selected_environment !== "string") { + const err52 = { + instancePath: instancePath + "/placement/selected_environment", + schemaPath: "#/$defs/RunPlacementDecision/properties/selected_environment/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err52]; + } else { + vErrors.push(err52); + } + errors++; + } } - errors++; - } - if (typeof data11 == "number" && isFinite(data11)) { - if (data11 < 0 || isNaN(data11)) { - const err26 = { - instancePath: instancePath + "/models", - schemaPath: "#/properties/models/minimum", - keyword: "minimum", - params: { comparison: ">=", limit: 0 }, - message: "must be >= 0", - }; - if (vErrors === null) { - vErrors = [err26]; + if (data12.selected_locality !== undefined) { + let data20 = data12.selected_locality; + const _errs71 = errors; + let valid10 = false; + const _errs72 = errors; + if (typeof data20 !== "string") { + const err53 = { + instancePath: instancePath + "/placement/selected_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/selected_locality/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err53]; + } else { + vErrors.push(err53); + } + errors++; + } + var _valid7 = _errs72 === errors; + valid10 = valid10 || _valid7; + const _errs74 = errors; + if (data20 !== null) { + const err54 = { + instancePath: instancePath + "/placement/selected_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/selected_locality/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err54]; + } else { + vErrors.push(err54); + } + errors++; + } + var _valid7 = _errs74 === errors; + valid10 = valid10 || _valid7; + if (!valid10) { + const err55 = { + instancePath: instancePath + "/placement/selected_locality", + schemaPath: "#/$defs/RunPlacementDecision/properties/selected_locality/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err55]; + } else { + vErrors.push(err55); + } + errors++; } else { - vErrors.push(err26); + errors = _errs71; + if (vErrors !== null) { + if (_errs71) { + vErrors.length = _errs71; + } else { + vErrors = null; + } + } } - errors++; - } - } - } - if (data.run_id !== undefined) { - if (typeof data.run_id !== "string") { - const err27 = { - instancePath: instancePath + "/run_id", - schemaPath: "#/properties/run_id/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err27]; - } else { - vErrors.push(err27); } - errors++; - } - } - if (data.stage !== undefined) { - let data13 = data.stage; - const _errs41 = errors; - let valid4 = false; - const _errs42 = errors; - if (typeof data13 !== "string") { - const err28 = { - instancePath: instancePath + "/stage", - schemaPath: "#/properties/stage/anyOf/0/type", + } else { + const err56 = { + instancePath: instancePath + "/placement", + schemaPath: "#/$defs/RunPlacementDecision/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err28]; + vErrors = [err56]; } else { - vErrors.push(err28); + vErrors.push(err56); } errors++; } - var _valid3 = _errs42 === errors; + var _valid3 = _errs40 === errors; valid4 = valid4 || _valid3; - const _errs44 = errors; - if (data13 !== null) { - const err29 = { - instancePath: instancePath + "/stage", - schemaPath: "#/properties/stage/anyOf/1/type", + const _errs76 = errors; + if (data12 !== null) { + const err57 = { + instancePath: instancePath + "/placement", + schemaPath: "#/properties/placement/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err29]; + vErrors = [err57]; } else { - vErrors.push(err29); + vErrors.push(err57); } errors++; } - var _valid3 = _errs44 === errors; + var _valid3 = _errs76 === errors; valid4 = valid4 || _valid3; if (!valid4) { - const err30 = { - instancePath: instancePath + "/stage", - schemaPath: "#/properties/stage/anyOf", + const err58 = { + instancePath: instancePath + "/placement", + schemaPath: "#/properties/placement/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err30]; + vErrors = [err58]; } else { - vErrors.push(err30); + vErrors.push(err58); } errors++; } else { - errors = _errs41; + errors = _errs39; if (vErrors !== null) { - if (_errs41) { - vErrors.length = _errs41; + if (_errs39) { + vErrors.length = _errs39; } else { vErrors = null; } } } } - if (data.started_at !== undefined) { - let data14 = data.started_at; - const _errs47 = errors; - let valid5 = false; - const _errs48 = errors; - if (typeof data14 !== "string") { - const err31 = { - instancePath: instancePath + "/started_at", - schemaPath: "#/properties/started_at/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err31]; - } else { - vErrors.push(err31); - } - errors++; - } - var _valid4 = _errs48 === errors; - valid5 = valid5 || _valid4; - const _errs50 = errors; - if (data14 !== null) { - const err32 = { - instancePath: instancePath + "/started_at", - schemaPath: "#/properties/started_at/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err32]; - } else { - vErrors.push(err32); - } - errors++; - } - var _valid4 = _errs50 === errors; - valid5 = valid5 || _valid4; - if (!valid5) { - const err33 = { - instancePath: instancePath + "/started_at", - schemaPath: "#/properties/started_at/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err33]; - } else { - vErrors.push(err33); - } - errors++; - } else { - errors = _errs47; - if (vErrors !== null) { - if (_errs47) { - vErrors.length = _errs47; + if (data.repair_window !== undefined) { + let data21 = data.repair_window; + const _errs79 = errors; + let valid11 = false; + const _errs80 = errors; + if (data21 && typeof data21 == "object" && !Array.isArray(data21)) { + if (data21.start_date === undefined) { + const err59 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/$defs/GraphRepairWindow/required", + keyword: "required", + params: { missingProperty: "start_date" }, + message: "must have required property '" + "start_date" + "'", + }; + if (vErrors === null) { + vErrors = [err59]; } else { - vErrors = null; + vErrors.push(err59); } + errors++; } - } - } - if (data.state !== undefined) { - let data15 = data.state; - if (typeof data15 !== "string") { - const err34 = { - instancePath: instancePath + "/state", - schemaPath: "#/$defs/RunState/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err34]; - } else { - vErrors.push(err34); - } - errors++; - } - if (!( - data15 === "queued" || - data15 === "running" || - data15 === "succeeded" || - data15 === "failed" || - data15 === "canceling" || - data15 === "canceled" || - data15 === "retrying" - )) { - const err35 = { - instancePath: instancePath + "/state", - schemaPath: "#/$defs/RunState/enum", - keyword: "enum", - params: { allowedValues: schema277.enum }, - message: "must be equal to one of the allowed values", - }; - if (vErrors === null) { - vErrors = [err35]; - } else { - vErrors.push(err35); - } - errors++; - } - } - } else { - const err36 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err36]; - } else { - vErrors.push(err36); - } - errors++; - } - validate412.errors = vErrors; - return errors === 0; -} -validate412.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -function validate411( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - /*# sourceURL="urn:dander:control:contracts:v1:run-page" */ let vErrors = null; - let errors = 0; - const evaluated0 = validate411.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.items === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "items" }, - message: "must have required property '" + "items" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - for (const key0 in data) { - if (!(key0 === "items" || key0 === "next_cursor")) { - const err1 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } - } - if (data.items !== undefined) { - let data0 = data.items; - if (Array.isArray(data0)) { - if (data0.length > 100) { - const err2 = { - instancePath: instancePath + "/items", - schemaPath: "#/properties/items/maxItems", - keyword: "maxItems", - params: { limit: 100 }, - message: "must NOT have more than 100 items", + if (data21.end_date === undefined) { + const err60 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/$defs/GraphRepairWindow/required", + keyword: "required", + params: { missingProperty: "end_date" }, + message: "must have required property '" + "end_date" + "'", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err60]; } else { - vErrors.push(err2); + vErrors.push(err60); } errors++; } - const len0 = data0.length; - for (let i0 = 0; i0 < len0; i0++) { - if ( - !validate412(data0[i0], { - instancePath: instancePath + "/items/" + i0, - parentData: data0, - parentDataProperty: i0, - rootData, - dynamicAnchors, - }) - ) { - vErrors = vErrors === null ? validate412.errors : vErrors.concat(validate412.errors); - errors = vErrors.length; + for (const key2 in data21) { + if (!(key2 === "end_date" || key2 === "start_date")) { + const err61 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/$defs/GraphRepairWindow/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key2 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err61]; + } else { + vErrors.push(err61); + } + errors++; } } - } else { - const err3 = { - instancePath: instancePath + "/items", - schemaPath: "#/properties/items/type", - keyword: "type", - params: { type: "array" }, - message: "must be array", - }; - if (vErrors === null) { - vErrors = [err3]; - } else { - vErrors.push(err3); + if (data21.end_date !== undefined) { + if (!(typeof data21.end_date === "string")) { + const err62 = { + instancePath: instancePath + "/repair_window/end_date", + schemaPath: "#/$defs/GraphRepairWindow/properties/end_date/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err62]; + } else { + vErrors.push(err62); + } + errors++; + } } - errors++; - } - } - if (data.next_cursor !== undefined) { - let data2 = data.next_cursor; - const _errs6 = errors; - let valid3 = false; - const _errs7 = errors; - if (typeof data2 !== "string") { - const err4 = { - instancePath: instancePath + "/next_cursor", - schemaPath: "#/properties/next_cursor/anyOf/0/type", + if (data21.start_date !== undefined) { + if (!(typeof data21.start_date === "string")) { + const err63 = { + instancePath: instancePath + "/repair_window/start_date", + schemaPath: "#/$defs/GraphRepairWindow/properties/start_date/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err63]; + } else { + vErrors.push(err63); + } + errors++; + } + } + } else { + const err64 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/$defs/GraphRepairWindow/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err4]; + vErrors = [err64]; } else { - vErrors.push(err4); + vErrors.push(err64); } errors++; } - var _valid0 = _errs7 === errors; - valid3 = valid3 || _valid0; - const _errs9 = errors; - if (data2 !== null) { - const err5 = { - instancePath: instancePath + "/next_cursor", - schemaPath: "#/properties/next_cursor/anyOf/1/type", + var _valid8 = _errs80 === errors; + valid11 = valid11 || _valid8; + const _errs88 = errors; + if (data21 !== null) { + const err65 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/properties/repair_window/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err65]; } else { - vErrors.push(err5); + vErrors.push(err65); } errors++; } - var _valid0 = _errs9 === errors; - valid3 = valid3 || _valid0; - if (!valid3) { - const err6 = { - instancePath: instancePath + "/next_cursor", - schemaPath: "#/properties/next_cursor/anyOf", + var _valid8 = _errs88 === errors; + valid11 = valid11 || _valid8; + if (!valid11) { + const err66 = { + instancePath: instancePath + "/repair_window", + schemaPath: "#/properties/repair_window/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err6]; - } else { - vErrors.push(err6); - } - errors++; - } else { - errors = _errs6; - if (vErrors !== null) { - if (_errs6) { - vErrors.length = _errs6; - } else { - vErrors = null; - } - } - } - } - } else { - const err7 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - validate411.errors = vErrors; - return errors === 0; -} -validate411.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -export const validateRunRequest = validate414; -const schema278 = { - $id: "urn:dander:control:contracts:v1:run-request", - $schema: "https://json-schema.org/draft/2020-12/schema", - additionalProperties: false, - properties: { - expected_revision: { title: "Expected Revision", type: "string" }, - idempotency_key: { maxLength: 128, minLength: 1, title: "Idempotency Key", type: "string" }, - }, - required: ["expected_revision", "idempotency_key"], - title: "RunRequest", - type: "object", -}; - -function validate414( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - /*# sourceURL="urn:dander:control:contracts:v1:run-request" */ let vErrors = null; - let errors = 0; - const evaluated0 = validate414.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.expected_revision === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "expected_revision" }, - message: "must have required property '" + "expected_revision" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - if (data.idempotency_key === undefined) { - const err1 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "idempotency_key" }, - message: "must have required property '" + "idempotency_key" + "'", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } - for (const key0 in data) { - if (!(key0 === "expected_revision" || key0 === "idempotency_key")) { - const err2 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", - }; - if (vErrors === null) { - vErrors = [err2]; - } else { - vErrors.push(err2); - } - errors++; - } - } - if (data.expected_revision !== undefined) { - if (typeof data.expected_revision !== "string") { - const err3 = { - instancePath: instancePath + "/expected_revision", - schemaPath: "#/properties/expected_revision/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err3]; + vErrors = [err66]; } else { - vErrors.push(err3); + vErrors.push(err66); } errors++; - } - } - if (data.idempotency_key !== undefined) { - let data1 = data.idempotency_key; - if (typeof data1 === "string") { - if (func2(data1) > 128) { - const err4 = { - instancePath: instancePath + "/idempotency_key", - schemaPath: "#/properties/idempotency_key/maxLength", - keyword: "maxLength", - params: { limit: 128 }, - message: "must NOT have more than 128 characters", - }; - if (vErrors === null) { - vErrors = [err4]; - } else { - vErrors.push(err4); - } - errors++; - } - if (func2(data1) < 1) { - const err5 = { - instancePath: instancePath + "/idempotency_key", - schemaPath: "#/properties/idempotency_key/minLength", - keyword: "minLength", - params: { limit: 1 }, - message: "must NOT have fewer than 1 characters", - }; - if (vErrors === null) { - vErrors = [err5]; + } else { + errors = _errs79; + if (vErrors !== null) { + if (_errs79) { + vErrors.length = _errs79; } else { - vErrors.push(err5); + vErrors = null; } - errors++; } - } else { - const err6 = { - instancePath: instancePath + "/idempotency_key", - schemaPath: "#/properties/idempotency_key/type", + } + } + if (data.result_schema !== undefined) { + let data24 = data.result_schema; + const _errs91 = errors; + let valid14 = false; + const _errs92 = errors; + if (typeof data24 !== "string") { + const err67 = { + instancePath: instancePath + "/result_schema", + schemaPath: "#/properties/result_schema/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err67]; } else { - vErrors.push(err6); + vErrors.push(err67); } errors++; } - } - } else { - const err7 = { - instancePath, - schemaPath: "#/type", - keyword: "type", - params: { type: "object" }, - message: "must be object", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); - } - errors++; - } - validate414.errors = vErrors; - return errors === 0; -} -validate414.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; - -export const validateRunStatus = validate415; -const schema279 = { - $defs: { - RunState: { - enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], - title: "RunState", - type: "string", - }, - }, - $id: "urn:dander:control:contracts:v1:run-status", - $schema: "https://json-schema.org/draft/2020-12/schema", - additionalProperties: false, - properties: { - affected: { default: 0, minimum: 0, title: "Affected", type: "integer" }, - assertions: { default: 0, minimum: 0, title: "Assertions", type: "integer" }, - assets: { default: 0, minimum: 0, title: "Assets", type: "integer" }, - can_cancel: { default: false, title: "Can Cancel", type: "boolean" }, - can_replay: { default: false, title: "Can Replay", type: "boolean" }, - endpoints: { default: 0, minimum: 0, title: "Endpoints", type: "integer" }, - extracted: { default: 0, minimum: 0, title: "Extracted", type: "integer" }, - failure_code: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Failure Code", - }, - failure_summary: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Failure Summary", - }, - finished_at: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Finished At", - }, - logs_available: { default: false, title: "Logs Available", type: "boolean" }, - models: { default: 0, minimum: 0, title: "Models", type: "integer" }, - run_id: { title: "Run Id", type: "string" }, - stage: { anyOf: [{ type: "string" }, { type: "null" }], default: null, title: "Stage" }, - started_at: { - anyOf: [{ type: "string" }, { type: "null" }], - default: null, - title: "Started At", - }, - state: { $ref: "#/$defs/RunState" }, - }, - required: ["run_id", "state"], - title: "RunStatusResponse", - type: "object", -}; -const schema280 = { - enum: ["queued", "running", "succeeded", "failed", "canceling", "canceled", "retrying"], - title: "RunState", - type: "string", -}; - -function validate415( - data, - { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, -) { - /*# sourceURL="urn:dander:control:contracts:v1:run-status" */ let vErrors = null; - let errors = 0; - const evaluated0 = validate415.evaluated; - if (evaluated0.dynamicProps) { - evaluated0.props = undefined; - } - if (evaluated0.dynamicItems) { - evaluated0.items = undefined; - } - if (data && typeof data == "object" && !Array.isArray(data)) { - if (data.run_id === undefined) { - const err0 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "run_id" }, - message: "must have required property '" + "run_id" + "'", - }; - if (vErrors === null) { - vErrors = [err0]; - } else { - vErrors.push(err0); - } - errors++; - } - if (data.state === undefined) { - const err1 = { - instancePath, - schemaPath: "#/required", - keyword: "required", - params: { missingProperty: "state" }, - message: "must have required property '" + "state" + "'", - }; - if (vErrors === null) { - vErrors = [err1]; - } else { - vErrors.push(err1); - } - errors++; - } - for (const key0 in data) { - if (!func1.call(schema279.properties, key0)) { - const err2 = { - instancePath, - schemaPath: "#/additionalProperties", - keyword: "additionalProperties", - params: { additionalProperty: key0 }, - message: "must NOT have additional properties", + if ("io.dander.control.execution-result-summary/v1" !== data24) { + const err68 = { + instancePath: instancePath + "/result_schema", + schemaPath: "#/properties/result_schema/anyOf/0/const", + keyword: "const", + params: { allowedValue: "io.dander.control.execution-result-summary/v1" }, + message: "must be equal to constant", }; if (vErrors === null) { - vErrors = [err2]; + vErrors = [err68]; } else { - vErrors.push(err2); + vErrors.push(err68); } errors++; } - } - if (data.affected !== undefined) { - let data0 = data.affected; - if (!(typeof data0 == "number" && !(data0 % 1) && !isNaN(data0) && isFinite(data0))) { - const err3 = { - instancePath: instancePath + "/affected", - schemaPath: "#/properties/affected/type", + var _valid9 = _errs92 === errors; + valid14 = valid14 || _valid9; + const _errs94 = errors; + if (data24 !== null) { + const err69 = { + instancePath: instancePath + "/result_schema", + schemaPath: "#/properties/result_schema/anyOf/1/type", keyword: "type", - params: { type: "integer" }, - message: "must be integer", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err3]; + vErrors = [err69]; } else { - vErrors.push(err3); + vErrors.push(err69); } errors++; } - if (typeof data0 == "number" && isFinite(data0)) { - if (data0 < 0 || isNaN(data0)) { - const err4 = { - instancePath: instancePath + "/affected", - schemaPath: "#/properties/affected/minimum", - keyword: "minimum", - params: { comparison: ">=", limit: 0 }, - message: "must be >= 0", - }; - if (vErrors === null) { - vErrors = [err4]; + var _valid9 = _errs94 === errors; + valid14 = valid14 || _valid9; + if (!valid14) { + const err70 = { + instancePath: instancePath + "/result_schema", + schemaPath: "#/properties/result_schema/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err70]; + } else { + vErrors.push(err70); + } + errors++; + } else { + errors = _errs91; + if (vErrors !== null) { + if (_errs91) { + vErrors.length = _errs91; } else { - vErrors.push(err4); + vErrors = null; } - errors++; } } } - if (data.assertions !== undefined) { - let data1 = data.assertions; - if (!(typeof data1 == "number" && !(data1 % 1) && !isNaN(data1) && isFinite(data1))) { - const err5 = { - instancePath: instancePath + "/assertions", - schemaPath: "#/properties/assertions/type", + if (data.run_id !== undefined) { + if (typeof data.run_id !== "string") { + const err71 = { + instancePath: instancePath + "/run_id", + schemaPath: "#/properties/run_id/type", keyword: "type", - params: { type: "integer" }, - message: "must be integer", + params: { type: "string" }, + message: "must be string", }; if (vErrors === null) { - vErrors = [err5]; + vErrors = [err71]; } else { - vErrors.push(err5); + vErrors.push(err71); } errors++; } - if (typeof data1 == "number" && isFinite(data1)) { - if (data1 < 0 || isNaN(data1)) { - const err6 = { - instancePath: instancePath + "/assertions", - schemaPath: "#/properties/assertions/minimum", - keyword: "minimum", - params: { comparison: ">=", limit: 0 }, - message: "must be >= 0", + } + if (data.sizing !== undefined) { + let data26 = data.sizing; + const _errs99 = errors; + let valid15 = false; + const _errs100 = errors; + if (data26 && typeof data26 == "object" && !Array.isArray(data26)) { + if (data26.decision_schema === undefined) { + const err72 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "decision_schema" }, + message: "must have required property '" + "decision_schema" + "'", }; if (vErrors === null) { - vErrors = [err6]; + vErrors = [err72]; } else { - vErrors.push(err6); + vErrors.push(err72); + } + errors++; + } + if (data26.mode === undefined) { + const err73 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "mode" }, + message: "must have required property '" + "mode" + "'", + }; + if (vErrors === null) { + vErrors = [err73]; + } else { + vErrors.push(err73); + } + errors++; + } + if (data26.selected_size_class === undefined) { + const err74 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "selected_size_class" }, + message: "must have required property '" + "selected_size_class" + "'", + }; + if (vErrors === null) { + vErrors = [err74]; + } else { + vErrors.push(err74); + } + errors++; + } + if (data26.max_input_bytes === undefined) { + const err75 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "max_input_bytes" }, + message: "must have required property '" + "max_input_bytes" + "'", + }; + if (vErrors === null) { + vErrors = [err75]; + } else { + vErrors.push(err75); + } + errors++; + } + if (data26.cpu_millis === undefined) { + const err76 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "cpu_millis" }, + message: "must have required property '" + "cpu_millis" + "'", + }; + if (vErrors === null) { + vErrors = [err76]; + } else { + vErrors.push(err76); + } + errors++; + } + if (data26.memory_mib === undefined) { + const err77 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "memory_mib" }, + message: "must have required property '" + "memory_mib" + "'", + }; + if (vErrors === null) { + vErrors = [err77]; + } else { + vErrors.push(err77); + } + errors++; + } + if (data26.eligible_plan_count === undefined) { + const err78 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/required", + keyword: "required", + params: { missingProperty: "eligible_plan_count" }, + message: "must have required property '" + "eligible_plan_count" + "'", + }; + if (vErrors === null) { + vErrors = [err78]; + } else { + vErrors.push(err78); + } + errors++; + } + for (const key3 in data26) { + if (!func1.call(schema308.properties, key3)) { + const err79 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key3 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err79]; + } else { + vErrors.push(err79); + } + errors++; + } + } + if (data26.cpu_millis !== undefined) { + let data27 = data26.cpu_millis; + if (!(typeof data27 == "number" && !(data27 % 1) && !isNaN(data27) && isFinite(data27))) { + const err80 = { + instancePath: instancePath + "/sizing/cpu_millis", + schemaPath: "#/$defs/RunSizeClassDecision/properties/cpu_millis/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err80]; + } else { + vErrors.push(err80); + } + errors++; + } + if (typeof data27 == "number" && isFinite(data27)) { + if (data27 < 1 || isNaN(data27)) { + const err81 = { + instancePath: instancePath + "/sizing/cpu_millis", + schemaPath: "#/$defs/RunSizeClassDecision/properties/cpu_millis/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err81]; + } else { + vErrors.push(err81); + } + errors++; + } + } + } + if (data26.decision_schema !== undefined) { + let data28 = data26.decision_schema; + if (typeof data28 !== "string") { + const err82 = { + instancePath: instancePath + "/sizing/decision_schema", + schemaPath: "#/$defs/RunSizeClassDecision/properties/decision_schema/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err82]; + } else { + vErrors.push(err82); + } + errors++; + } + if ("io.dander.control.size-class-decision/v2" !== data28) { + const err83 = { + instancePath: instancePath + "/sizing/decision_schema", + schemaPath: "#/$defs/RunSizeClassDecision/properties/decision_schema/const", + keyword: "const", + params: { allowedValue: "io.dander.control.size-class-decision/v2" }, + message: "must be equal to constant", + }; + if (vErrors === null) { + vErrors = [err83]; + } else { + vErrors.push(err83); + } + errors++; + } + } + if (data26.eligible_plan_count !== undefined) { + let data29 = data26.eligible_plan_count; + if (!(typeof data29 == "number" && !(data29 % 1) && !isNaN(data29) && isFinite(data29))) { + const err84 = { + instancePath: instancePath + "/sizing/eligible_plan_count", + schemaPath: "#/$defs/RunSizeClassDecision/properties/eligible_plan_count/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err84]; + } else { + vErrors.push(err84); + } + errors++; + } + if (typeof data29 == "number" && isFinite(data29)) { + if (data29 > 100 || isNaN(data29)) { + const err85 = { + instancePath: instancePath + "/sizing/eligible_plan_count", + schemaPath: "#/$defs/RunSizeClassDecision/properties/eligible_plan_count/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 100 }, + message: "must be <= 100", + }; + if (vErrors === null) { + vErrors = [err85]; + } else { + vErrors.push(err85); + } + errors++; + } + if (data29 < 1 || isNaN(data29)) { + const err86 = { + instancePath: instancePath + "/sizing/eligible_plan_count", + schemaPath: "#/$defs/RunSizeClassDecision/properties/eligible_plan_count/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err86]; + } else { + vErrors.push(err86); + } + errors++; + } + } + } + if (data26.ephemeral_storage_mib !== undefined) { + let data30 = data26.ephemeral_storage_mib; + const _errs111 = errors; + let valid18 = false; + const _errs112 = errors; + if (!(typeof data30 == "number" && !(data30 % 1) && !isNaN(data30) && isFinite(data30))) { + const err87 = { + instancePath: instancePath + "/sizing/ephemeral_storage_mib", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/ephemeral_storage_mib/anyOf/0/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err87]; + } else { + vErrors.push(err87); + } + errors++; + } + if (typeof data30 == "number" && isFinite(data30)) { + if (data30 < 1 || isNaN(data30)) { + const err88 = { + instancePath: instancePath + "/sizing/ephemeral_storage_mib", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/ephemeral_storage_mib/anyOf/0/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err88]; + } else { + vErrors.push(err88); + } + errors++; + } + } + var _valid11 = _errs112 === errors; + valid18 = valid18 || _valid11; + const _errs114 = errors; + if (data30 !== null) { + const err89 = { + instancePath: instancePath + "/sizing/ephemeral_storage_mib", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/ephemeral_storage_mib/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err89]; + } else { + vErrors.push(err89); + } + errors++; + } + var _valid11 = _errs114 === errors; + valid18 = valid18 || _valid11; + if (!valid18) { + const err90 = { + instancePath: instancePath + "/sizing/ephemeral_storage_mib", + schemaPath: "#/$defs/RunSizeClassDecision/properties/ephemeral_storage_mib/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err90]; + } else { + vErrors.push(err90); + } + errors++; + } else { + errors = _errs111; + if (vErrors !== null) { + if (_errs111) { + vErrors.length = _errs111; + } else { + vErrors = null; + } + } + } + } + if (data26.estimate_observed_at !== undefined) { + let data31 = data26.estimate_observed_at; + const _errs117 = errors; + let valid19 = false; + const _errs118 = errors; + if (typeof data31 !== "string") { + const err91 = { + instancePath: instancePath + "/sizing/estimate_observed_at", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimate_observed_at/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err91]; + } else { + vErrors.push(err91); + } + errors++; + } + var _valid12 = _errs118 === errors; + valid19 = valid19 || _valid12; + const _errs120 = errors; + if (data31 !== null) { + const err92 = { + instancePath: instancePath + "/sizing/estimate_observed_at", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimate_observed_at/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err92]; + } else { + vErrors.push(err92); + } + errors++; + } + var _valid12 = _errs120 === errors; + valid19 = valid19 || _valid12; + if (!valid19) { + const err93 = { + instancePath: instancePath + "/sizing/estimate_observed_at", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimate_observed_at/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err93]; + } else { + vErrors.push(err93); + } + errors++; + } else { + errors = _errs117; + if (vErrors !== null) { + if (_errs117) { + vErrors.length = _errs117; + } else { + vErrors = null; + } + } + } + } + if (data26.estimate_source !== undefined) { + let data32 = data26.estimate_source; + const _errs123 = errors; + let valid20 = false; + const _errs124 = errors; + if (typeof data32 !== "string") { + const err94 = { + instancePath: instancePath + "/sizing/estimate_source", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimate_source/anyOf/0/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err94]; + } else { + vErrors.push(err94); + } + errors++; + } + var _valid13 = _errs124 === errors; + valid20 = valid20 || _valid13; + const _errs126 = errors; + if (data32 !== null) { + const err95 = { + instancePath: instancePath + "/sizing/estimate_source", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimate_source/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err95]; + } else { + vErrors.push(err95); + } + errors++; + } + var _valid13 = _errs126 === errors; + valid20 = valid20 || _valid13; + if (!valid20) { + const err96 = { + instancePath: instancePath + "/sizing/estimate_source", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimate_source/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err96]; + } else { + vErrors.push(err96); + } + errors++; + } else { + errors = _errs123; + if (vErrors !== null) { + if (_errs123) { + vErrors.length = _errs123; + } else { + vErrors = null; + } + } + } + } + if (data26.estimated_input_bytes !== undefined) { + let data33 = data26.estimated_input_bytes; + const _errs129 = errors; + let valid21 = false; + const _errs130 = errors; + if (!(typeof data33 == "number" && !(data33 % 1) && !isNaN(data33) && isFinite(data33))) { + const err97 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf/0/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err97]; + } else { + vErrors.push(err97); + } + errors++; + } + if (typeof data33 == "number" && isFinite(data33)) { + if (data33 > 9223372036854776000 || isNaN(data33)) { + const err98 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf/0/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err98]; + } else { + vErrors.push(err98); + } + errors++; + } + if (data33 < 0 || isNaN(data33)) { + const err99 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf/0/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err99]; + } else { + vErrors.push(err99); + } + errors++; + } + } + var _valid14 = _errs130 === errors; + valid21 = valid21 || _valid14; + const _errs132 = errors; + if (data33 !== null) { + const err100 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: + "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf/1/type", + keyword: "type", + params: { type: "null" }, + message: "must be null", + }; + if (vErrors === null) { + vErrors = [err100]; + } else { + vErrors.push(err100); + } + errors++; + } + var _valid14 = _errs132 === errors; + valid21 = valid21 || _valid14; + if (!valid21) { + const err101 = { + instancePath: instancePath + "/sizing/estimated_input_bytes", + schemaPath: "#/$defs/RunSizeClassDecision/properties/estimated_input_bytes/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", + }; + if (vErrors === null) { + vErrors = [err101]; + } else { + vErrors.push(err101); + } + errors++; + } else { + errors = _errs129; + if (vErrors !== null) { + if (_errs129) { + vErrors.length = _errs129; + } else { + vErrors = null; + } + } + } + } + if (data26.max_input_bytes !== undefined) { + let data34 = data26.max_input_bytes; + if (!(typeof data34 == "number" && !(data34 % 1) && !isNaN(data34) && isFinite(data34))) { + const err102 = { + instancePath: instancePath + "/sizing/max_input_bytes", + schemaPath: "#/$defs/RunSizeClassDecision/properties/max_input_bytes/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err102]; + } else { + vErrors.push(err102); + } + errors++; + } + if (typeof data34 == "number" && isFinite(data34)) { + if (data34 > 9223372036854776000 || isNaN(data34)) { + const err103 = { + instancePath: instancePath + "/sizing/max_input_bytes", + schemaPath: "#/$defs/RunSizeClassDecision/properties/max_input_bytes/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err103]; + } else { + vErrors.push(err103); + } + errors++; + } + if (data34 < 0 || isNaN(data34)) { + const err104 = { + instancePath: instancePath + "/sizing/max_input_bytes", + schemaPath: "#/$defs/RunSizeClassDecision/properties/max_input_bytes/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err104]; + } else { + vErrors.push(err104); + } + errors++; + } + } + } + if (data26.memory_mib !== undefined) { + let data35 = data26.memory_mib; + if (!(typeof data35 == "number" && !(data35 % 1) && !isNaN(data35) && isFinite(data35))) { + const err105 = { + instancePath: instancePath + "/sizing/memory_mib", + schemaPath: "#/$defs/RunSizeClassDecision/properties/memory_mib/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err105]; + } else { + vErrors.push(err105); + } + errors++; + } + if (typeof data35 == "number" && isFinite(data35)) { + if (data35 < 1 || isNaN(data35)) { + const err106 = { + instancePath: instancePath + "/sizing/memory_mib", + schemaPath: "#/$defs/RunSizeClassDecision/properties/memory_mib/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 1 }, + message: "must be >= 1", + }; + if (vErrors === null) { + vErrors = [err106]; + } else { + vErrors.push(err106); + } + errors++; + } } - errors++; } - } - } - if (data.assets !== undefined) { - let data2 = data.assets; - if (!(typeof data2 == "number" && !(data2 % 1) && !isNaN(data2) && isFinite(data2))) { - const err7 = { - instancePath: instancePath + "/assets", - schemaPath: "#/properties/assets/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err7]; - } else { - vErrors.push(err7); + if (data26.mode !== undefined) { + let data36 = data26.mode; + if (typeof data36 !== "string") { + const err107 = { + instancePath: instancePath + "/sizing/mode", + schemaPath: "#/$defs/RunSizeClassDecision/properties/mode/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err107]; + } else { + vErrors.push(err107); + } + errors++; + } + if (!( + data36 === "automatic_input" || + data36 === "manual_override" || + data36 === "configured_default" || + data36 === "scheduled" || + data36 === "replay" + )) { + const err108 = { + instancePath: instancePath + "/sizing/mode", + schemaPath: "#/$defs/RunSizeClassDecision/properties/mode/enum", + keyword: "enum", + params: { allowedValues: schema308.properties.mode.enum }, + message: "must be equal to one of the allowed values", + }; + if (vErrors === null) { + vErrors = [err108]; + } else { + vErrors.push(err108); + } + errors++; + } } - errors++; - } - if (typeof data2 == "number" && isFinite(data2)) { - if (data2 < 0 || isNaN(data2)) { - const err8 = { - instancePath: instancePath + "/assets", - schemaPath: "#/properties/assets/minimum", - keyword: "minimum", - params: { comparison: ">=", limit: 0 }, - message: "must be >= 0", - }; - if (vErrors === null) { - vErrors = [err8]; - } else { - vErrors.push(err8); + if (data26.selected_size_class !== undefined) { + if (typeof data26.selected_size_class !== "string") { + const err109 = { + instancePath: instancePath + "/sizing/selected_size_class", + schemaPath: "#/$defs/RunSizeClassDecision/properties/selected_size_class/type", + keyword: "type", + params: { type: "string" }, + message: "must be string", + }; + if (vErrors === null) { + vErrors = [err109]; + } else { + vErrors.push(err109); + } + errors++; } - errors++; } - } - } - if (data.can_cancel !== undefined) { - if (typeof data.can_cancel !== "boolean") { - const err9 = { - instancePath: instancePath + "/can_cancel", - schemaPath: "#/properties/can_cancel/type", + } else { + const err110 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/$defs/RunSizeClassDecision/type", keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err9]; + vErrors = [err110]; } else { - vErrors.push(err9); + vErrors.push(err110); } errors++; } - } - if (data.can_replay !== undefined) { - if (typeof data.can_replay !== "boolean") { - const err10 = { - instancePath: instancePath + "/can_replay", - schemaPath: "#/properties/can_replay/type", + var _valid10 = _errs100 === errors; + valid15 = valid15 || _valid10; + const _errs142 = errors; + if (data26 !== null) { + const err111 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/properties/sizing/anyOf/1/type", keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", + params: { type: "null" }, + message: "must be null", }; if (vErrors === null) { - vErrors = [err10]; + vErrors = [err111]; } else { - vErrors.push(err10); + vErrors.push(err111); } errors++; } - } - if (data.endpoints !== undefined) { - let data5 = data.endpoints; - if (!(typeof data5 == "number" && !(data5 % 1) && !isNaN(data5) && isFinite(data5))) { - const err11 = { - instancePath: instancePath + "/endpoints", - schemaPath: "#/properties/endpoints/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", + var _valid10 = _errs142 === errors; + valid15 = valid15 || _valid10; + if (!valid15) { + const err112 = { + instancePath: instancePath + "/sizing", + schemaPath: "#/properties/sizing/anyOf", + keyword: "anyOf", + params: {}, + message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err11]; + vErrors = [err112]; } else { - vErrors.push(err11); + vErrors.push(err112); } errors++; - } - if (typeof data5 == "number" && isFinite(data5)) { - if (data5 < 0 || isNaN(data5)) { - const err12 = { - instancePath: instancePath + "/endpoints", - schemaPath: "#/properties/endpoints/minimum", - keyword: "minimum", - params: { comparison: ">=", limit: 0 }, - message: "must be >= 0", - }; - if (vErrors === null) { - vErrors = [err12]; + } else { + errors = _errs99; + if (vErrors !== null) { + if (_errs99) { + vErrors.length = _errs99; } else { - vErrors.push(err12); + vErrors = null; } - errors++; } } } - if (data.extracted !== undefined) { - let data6 = data.extracted; - if (!(typeof data6 == "number" && !(data6 % 1) && !isNaN(data6) && isFinite(data6))) { - const err13 = { - instancePath: instancePath + "/extracted", - schemaPath: "#/properties/extracted/type", + if (data.skipped !== undefined) { + if (typeof data.skipped !== "boolean") { + const err113 = { + instancePath: instancePath + "/skipped", + schemaPath: "#/properties/skipped/type", keyword: "type", - params: { type: "integer" }, - message: "must be integer", + params: { type: "boolean" }, + message: "must be boolean", }; if (vErrors === null) { - vErrors = [err13]; + vErrors = [err113]; } else { - vErrors.push(err13); + vErrors.push(err113); } errors++; } - if (typeof data6 == "number" && isFinite(data6)) { - if (data6 < 0 || isNaN(data6)) { - const err14 = { - instancePath: instancePath + "/extracted", - schemaPath: "#/properties/extracted/minimum", - keyword: "minimum", - params: { comparison: ">=", limit: 0 }, - message: "must be >= 0", - }; - if (vErrors === null) { - vErrors = [err14]; - } else { - vErrors.push(err14); - } - errors++; - } - } } - if (data.failure_code !== undefined) { - let data7 = data.failure_code; - const _errs17 = errors; - let valid1 = false; - const _errs18 = errors; - if (typeof data7 !== "string") { - const err15 = { - instancePath: instancePath + "/failure_code", - schemaPath: "#/properties/failure_code/anyOf/0/type", + if (data.stage !== undefined) { + let data39 = data.stage; + const _errs147 = errors; + let valid22 = false; + const _errs148 = errors; + if (typeof data39 !== "string") { + const err114 = { + instancePath: instancePath + "/stage", + schemaPath: "#/properties/stage/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err15]; + vErrors = [err114]; } else { - vErrors.push(err15); + vErrors.push(err114); } errors++; } - var _valid0 = _errs18 === errors; - valid1 = valid1 || _valid0; - const _errs20 = errors; - if (data7 !== null) { - const err16 = { - instancePath: instancePath + "/failure_code", - schemaPath: "#/properties/failure_code/anyOf/1/type", + var _valid15 = _errs148 === errors; + valid22 = valid22 || _valid15; + const _errs150 = errors; + if (data39 !== null) { + const err115 = { + instancePath: instancePath + "/stage", + schemaPath: "#/properties/stage/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err16]; + vErrors = [err115]; } else { - vErrors.push(err16); + vErrors.push(err115); } errors++; } - var _valid0 = _errs20 === errors; - valid1 = valid1 || _valid0; - if (!valid1) { - const err17 = { - instancePath: instancePath + "/failure_code", - schemaPath: "#/properties/failure_code/anyOf", + var _valid15 = _errs150 === errors; + valid22 = valid22 || _valid15; + if (!valid22) { + const err116 = { + instancePath: instancePath + "/stage", + schemaPath: "#/properties/stage/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err17]; + vErrors = [err116]; } else { - vErrors.push(err17); + vErrors.push(err116); } errors++; } else { - errors = _errs17; + errors = _errs147; if (vErrors !== null) { - if (_errs17) { - vErrors.length = _errs17; + if (_errs147) { + vErrors.length = _errs147; } else { vErrors = null; } } } } - if (data.failure_summary !== undefined) { - let data8 = data.failure_summary; - const _errs23 = errors; - let valid2 = false; - const _errs24 = errors; - if (typeof data8 !== "string") { - const err18 = { - instancePath: instancePath + "/failure_summary", - schemaPath: "#/properties/failure_summary/anyOf/0/type", + if (data.started_at !== undefined) { + let data40 = data.started_at; + const _errs153 = errors; + let valid23 = false; + const _errs154 = errors; + if (typeof data40 !== "string") { + const err117 = { + instancePath: instancePath + "/started_at", + schemaPath: "#/properties/started_at/anyOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err18]; + vErrors = [err117]; } else { - vErrors.push(err18); + vErrors.push(err117); } errors++; } - var _valid1 = _errs24 === errors; - valid2 = valid2 || _valid1; - const _errs26 = errors; - if (data8 !== null) { - const err19 = { - instancePath: instancePath + "/failure_summary", - schemaPath: "#/properties/failure_summary/anyOf/1/type", + var _valid16 = _errs154 === errors; + valid23 = valid23 || _valid16; + const _errs156 = errors; + if (data40 !== null) { + const err118 = { + instancePath: instancePath + "/started_at", + schemaPath: "#/properties/started_at/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err19]; + vErrors = [err118]; } else { - vErrors.push(err19); + vErrors.push(err118); } errors++; } - var _valid1 = _errs26 === errors; - valid2 = valid2 || _valid1; - if (!valid2) { - const err20 = { - instancePath: instancePath + "/failure_summary", - schemaPath: "#/properties/failure_summary/anyOf", + var _valid16 = _errs156 === errors; + valid23 = valid23 || _valid16; + if (!valid23) { + const err119 = { + instancePath: instancePath + "/started_at", + schemaPath: "#/properties/started_at/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err20]; + vErrors = [err119]; } else { - vErrors.push(err20); + vErrors.push(err119); } errors++; } else { - errors = _errs23; + errors = _errs153; if (vErrors !== null) { - if (_errs23) { - vErrors.length = _errs23; + if (_errs153) { + vErrors.length = _errs153; } else { vErrors = null; } } } } - if (data.finished_at !== undefined) { - let data9 = data.finished_at; - const _errs29 = errors; - let valid3 = false; - const _errs30 = errors; - if (typeof data9 !== "string") { - const err21 = { - instancePath: instancePath + "/finished_at", - schemaPath: "#/properties/finished_at/anyOf/0/type", + if (data.state !== undefined) { + let data41 = data.state; + if (typeof data41 !== "string") { + const err120 = { + instancePath: instancePath + "/state", + schemaPath: "#/$defs/RunState/type", keyword: "type", params: { type: "string" }, message: "must be string", }; if (vErrors === null) { - vErrors = [err21]; + vErrors = [err120]; } else { - vErrors.push(err21); + vErrors.push(err120); } errors++; } - var _valid2 = _errs30 === errors; - valid3 = valid3 || _valid2; - const _errs32 = errors; - if (data9 !== null) { - const err22 = { - instancePath: instancePath + "/finished_at", - schemaPath: "#/properties/finished_at/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", + if (!( + data41 === "queued" || + data41 === "running" || + data41 === "succeeded" || + data41 === "failed" || + data41 === "canceling" || + data41 === "canceled" || + data41 === "retrying" + )) { + const err121 = { + instancePath: instancePath + "/state", + schemaPath: "#/$defs/RunState/enum", + keyword: "enum", + params: { allowedValues: schema309.enum }, + message: "must be equal to one of the allowed values", }; if (vErrors === null) { - vErrors = [err22]; + vErrors = [err121]; } else { - vErrors.push(err22); + vErrors.push(err121); } errors++; } - var _valid2 = _errs32 === errors; - valid3 = valid3 || _valid2; - if (!valid3) { - const err23 = { - instancePath: instancePath + "/finished_at", - schemaPath: "#/properties/finished_at/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err23]; - } else { - vErrors.push(err23); + } + if (data.telemetry !== undefined) { + let data42 = data.telemetry; + const _errs162 = errors; + let valid25 = false; + const _errs163 = errors; + if (data42 && typeof data42 == "object" && !Array.isArray(data42)) { + if (data42.duration_ms === undefined) { + const err122 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "duration_ms" }, + message: "must have required property '" + "duration_ms" + "'", + }; + if (vErrors === null) { + vErrors = [err122]; + } else { + vErrors.push(err122); + } + errors++; } - errors++; - } else { - errors = _errs29; - if (vErrors !== null) { - if (_errs29) { - vErrors.length = _errs29; + if (data42.operation_count === undefined) { + const err123 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "operation_count" }, + message: "must have required property '" + "operation_count" + "'", + }; + if (vErrors === null) { + vErrors = [err123]; } else { - vErrors = null; + vErrors.push(err123); + } + errors++; + } + if (data42.retry_count === undefined) { + const err124 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "retry_count" }, + message: "must have required property '" + "retry_count" + "'", + }; + if (vErrors === null) { + vErrors = [err124]; + } else { + vErrors.push(err124); + } + errors++; + } + if (data42.rows_read === undefined) { + const err125 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "rows_read" }, + message: "must have required property '" + "rows_read" + "'", + }; + if (vErrors === null) { + vErrors = [err125]; + } else { + vErrors.push(err125); + } + errors++; + } + if (data42.rows_written === undefined) { + const err126 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "rows_written" }, + message: "must have required property '" + "rows_written" + "'", + }; + if (vErrors === null) { + vErrors = [err126]; + } else { + vErrors.push(err126); + } + errors++; + } + if (data42.rows_affected === undefined) { + const err127 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "rows_affected" }, + message: "must have required property '" + "rows_affected" + "'", + }; + if (vErrors === null) { + vErrors = [err127]; + } else { + vErrors.push(err127); + } + errors++; + } + if (data42.bytes_read === undefined) { + const err128 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "bytes_read" }, + message: "must have required property '" + "bytes_read" + "'", + }; + if (vErrors === null) { + vErrors = [err128]; + } else { + vErrors.push(err128); + } + errors++; + } + if (data42.bytes_written === undefined) { + const err129 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "bytes_written" }, + message: "must have required property '" + "bytes_written" + "'", + }; + if (vErrors === null) { + vErrors = [err129]; + } else { + vErrors.push(err129); + } + errors++; + } + if (data42.bytes_processed === undefined) { + const err130 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "bytes_processed" }, + message: "must have required property '" + "bytes_processed" + "'", + }; + if (vErrors === null) { + vErrors = [err130]; + } else { + vErrors.push(err130); + } + errors++; + } + if (data42.bytes_billed === undefined) { + const err131 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "bytes_billed" }, + message: "must have required property '" + "bytes_billed" + "'", + }; + if (vErrors === null) { + vErrors = [err131]; + } else { + vErrors.push(err131); + } + errors++; + } + if (data42.queue_duration_ms === undefined) { + const err132 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "queue_duration_ms" }, + message: "must have required property '" + "queue_duration_ms" + "'", + }; + if (vErrors === null) { + vErrors = [err132]; + } else { + vErrors.push(err132); + } + errors++; + } + if (data42.execution_duration_ms === undefined) { + const err133 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "execution_duration_ms" }, + message: "must have required property '" + "execution_duration_ms" + "'", + }; + if (vErrors === null) { + vErrors = [err133]; + } else { + vErrors.push(err133); + } + errors++; + } + if (data42.spill_bytes === undefined) { + const err134 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/required", + keyword: "required", + params: { missingProperty: "spill_bytes" }, + message: "must have required property '" + "spill_bytes" + "'", + }; + if (vErrors === null) { + vErrors = [err134]; + } else { + vErrors.push(err134); + } + errors++; + } + for (const key4 in data42) { + if (!func1.call(schema310.properties, key4)) { + const err135 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/additionalProperties", + keyword: "additionalProperties", + params: { additionalProperty: key4 }, + message: "must NOT have additional properties", + }; + if (vErrors === null) { + vErrors = [err135]; + } else { + vErrors.push(err135); + } + errors++; + } + } + if (data42.bytes_billed !== undefined) { + let data43 = data42.bytes_billed; + if (!(typeof data43 == "number" && !(data43 % 1) && !isNaN(data43) && isFinite(data43))) { + const err136 = { + instancePath: instancePath + "/telemetry/bytes_billed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_billed/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err136]; + } else { + vErrors.push(err136); + } + errors++; + } + if (typeof data43 == "number" && isFinite(data43)) { + if (data43 > 9223372036854776000 || isNaN(data43)) { + const err137 = { + instancePath: instancePath + "/telemetry/bytes_billed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_billed/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err137]; + } else { + vErrors.push(err137); + } + errors++; + } + if (data43 < 0 || isNaN(data43)) { + const err138 = { + instancePath: instancePath + "/telemetry/bytes_billed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_billed/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err138]; + } else { + vErrors.push(err138); + } + errors++; + } + } + } + if (data42.bytes_processed !== undefined) { + let data44 = data42.bytes_processed; + if (!(typeof data44 == "number" && !(data44 % 1) && !isNaN(data44) && isFinite(data44))) { + const err139 = { + instancePath: instancePath + "/telemetry/bytes_processed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_processed/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err139]; + } else { + vErrors.push(err139); + } + errors++; + } + if (typeof data44 == "number" && isFinite(data44)) { + if (data44 > 9223372036854776000 || isNaN(data44)) { + const err140 = { + instancePath: instancePath + "/telemetry/bytes_processed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_processed/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err140]; + } else { + vErrors.push(err140); + } + errors++; + } + if (data44 < 0 || isNaN(data44)) { + const err141 = { + instancePath: instancePath + "/telemetry/bytes_processed", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_processed/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err141]; + } else { + vErrors.push(err141); + } + errors++; + } + } + } + if (data42.bytes_read !== undefined) { + let data45 = data42.bytes_read; + if (!(typeof data45 == "number" && !(data45 % 1) && !isNaN(data45) && isFinite(data45))) { + const err142 = { + instancePath: instancePath + "/telemetry/bytes_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_read/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err142]; + } else { + vErrors.push(err142); + } + errors++; + } + if (typeof data45 == "number" && isFinite(data45)) { + if (data45 > 9223372036854776000 || isNaN(data45)) { + const err143 = { + instancePath: instancePath + "/telemetry/bytes_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_read/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err143]; + } else { + vErrors.push(err143); + } + errors++; + } + if (data45 < 0 || isNaN(data45)) { + const err144 = { + instancePath: instancePath + "/telemetry/bytes_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_read/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err144]; + } else { + vErrors.push(err144); + } + errors++; + } + } + } + if (data42.bytes_written !== undefined) { + let data46 = data42.bytes_written; + if (!(typeof data46 == "number" && !(data46 % 1) && !isNaN(data46) && isFinite(data46))) { + const err145 = { + instancePath: instancePath + "/telemetry/bytes_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_written/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err145]; + } else { + vErrors.push(err145); + } + errors++; + } + if (typeof data46 == "number" && isFinite(data46)) { + if (data46 > 9223372036854776000 || isNaN(data46)) { + const err146 = { + instancePath: instancePath + "/telemetry/bytes_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_written/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err146]; + } else { + vErrors.push(err146); + } + errors++; + } + if (data46 < 0 || isNaN(data46)) { + const err147 = { + instancePath: instancePath + "/telemetry/bytes_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/bytes_written/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err147]; + } else { + vErrors.push(err147); + } + errors++; + } + } + } + if (data42.duration_ms !== undefined) { + let data47 = data42.duration_ms; + if (!(typeof data47 == "number" && !(data47 % 1) && !isNaN(data47) && isFinite(data47))) { + const err148 = { + instancePath: instancePath + "/telemetry/duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/duration_ms/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err148]; + } else { + vErrors.push(err148); + } + errors++; + } + if (typeof data47 == "number" && isFinite(data47)) { + if (data47 > 9223372036854776000 || isNaN(data47)) { + const err149 = { + instancePath: instancePath + "/telemetry/duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/duration_ms/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err149]; + } else { + vErrors.push(err149); + } + errors++; + } + if (data47 < 0 || isNaN(data47)) { + const err150 = { + instancePath: instancePath + "/telemetry/duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/duration_ms/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err150]; + } else { + vErrors.push(err150); + } + errors++; + } } } - } - } - if (data.logs_available !== undefined) { - if (typeof data.logs_available !== "boolean") { - const err24 = { - instancePath: instancePath + "/logs_available", - schemaPath: "#/properties/logs_available/type", - keyword: "type", - params: { type: "boolean" }, - message: "must be boolean", - }; - if (vErrors === null) { - vErrors = [err24]; - } else { - vErrors.push(err24); + if (data42.execution_duration_ms !== undefined) { + let data48 = data42.execution_duration_ms; + if (!(typeof data48 == "number" && !(data48 % 1) && !isNaN(data48) && isFinite(data48))) { + const err151 = { + instancePath: instancePath + "/telemetry/execution_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/execution_duration_ms/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err151]; + } else { + vErrors.push(err151); + } + errors++; + } + if (typeof data48 == "number" && isFinite(data48)) { + if (data48 > 9223372036854776000 || isNaN(data48)) { + const err152 = { + instancePath: instancePath + "/telemetry/execution_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/execution_duration_ms/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err152]; + } else { + vErrors.push(err152); + } + errors++; + } + if (data48 < 0 || isNaN(data48)) { + const err153 = { + instancePath: instancePath + "/telemetry/execution_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/execution_duration_ms/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err153]; + } else { + vErrors.push(err153); + } + errors++; + } + } } - errors++; - } - } - if (data.models !== undefined) { - let data11 = data.models; - if (!(typeof data11 == "number" && !(data11 % 1) && !isNaN(data11) && isFinite(data11))) { - const err25 = { - instancePath: instancePath + "/models", - schemaPath: "#/properties/models/type", - keyword: "type", - params: { type: "integer" }, - message: "must be integer", - }; - if (vErrors === null) { - vErrors = [err25]; - } else { - vErrors.push(err25); + if (data42.operation_count !== undefined) { + let data49 = data42.operation_count; + if (!(typeof data49 == "number" && !(data49 % 1) && !isNaN(data49) && isFinite(data49))) { + const err154 = { + instancePath: instancePath + "/telemetry/operation_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/operation_count/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err154]; + } else { + vErrors.push(err154); + } + errors++; + } + if (typeof data49 == "number" && isFinite(data49)) { + if (data49 > 9223372036854776000 || isNaN(data49)) { + const err155 = { + instancePath: instancePath + "/telemetry/operation_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/operation_count/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err155]; + } else { + vErrors.push(err155); + } + errors++; + } + if (data49 < 0 || isNaN(data49)) { + const err156 = { + instancePath: instancePath + "/telemetry/operation_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/operation_count/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err156]; + } else { + vErrors.push(err156); + } + errors++; + } + } } - errors++; - } - if (typeof data11 == "number" && isFinite(data11)) { - if (data11 < 0 || isNaN(data11)) { - const err26 = { - instancePath: instancePath + "/models", - schemaPath: "#/properties/models/minimum", - keyword: "minimum", - params: { comparison: ">=", limit: 0 }, - message: "must be >= 0", - }; - if (vErrors === null) { - vErrors = [err26]; - } else { - vErrors.push(err26); + if (data42.queue_duration_ms !== undefined) { + let data50 = data42.queue_duration_ms; + if (!(typeof data50 == "number" && !(data50 % 1) && !isNaN(data50) && isFinite(data50))) { + const err157 = { + instancePath: instancePath + "/telemetry/queue_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/queue_duration_ms/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err157]; + } else { + vErrors.push(err157); + } + errors++; + } + if (typeof data50 == "number" && isFinite(data50)) { + if (data50 > 9223372036854776000 || isNaN(data50)) { + const err158 = { + instancePath: instancePath + "/telemetry/queue_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/queue_duration_ms/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err158]; + } else { + vErrors.push(err158); + } + errors++; + } + if (data50 < 0 || isNaN(data50)) { + const err159 = { + instancePath: instancePath + "/telemetry/queue_duration_ms", + schemaPath: "#/$defs/RunTelemetrySummary/properties/queue_duration_ms/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err159]; + } else { + vErrors.push(err159); + } + errors++; + } } - errors++; } - } - } - if (data.run_id !== undefined) { - if (typeof data.run_id !== "string") { - const err27 = { - instancePath: instancePath + "/run_id", - schemaPath: "#/properties/run_id/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err27]; - } else { - vErrors.push(err27); + if (data42.retry_count !== undefined) { + let data51 = data42.retry_count; + if (!(typeof data51 == "number" && !(data51 % 1) && !isNaN(data51) && isFinite(data51))) { + const err160 = { + instancePath: instancePath + "/telemetry/retry_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/retry_count/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err160]; + } else { + vErrors.push(err160); + } + errors++; + } + if (typeof data51 == "number" && isFinite(data51)) { + if (data51 > 9223372036854776000 || isNaN(data51)) { + const err161 = { + instancePath: instancePath + "/telemetry/retry_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/retry_count/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err161]; + } else { + vErrors.push(err161); + } + errors++; + } + if (data51 < 0 || isNaN(data51)) { + const err162 = { + instancePath: instancePath + "/telemetry/retry_count", + schemaPath: "#/$defs/RunTelemetrySummary/properties/retry_count/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err162]; + } else { + vErrors.push(err162); + } + errors++; + } + } } - errors++; - } - } - if (data.stage !== undefined) { - let data13 = data.stage; - const _errs41 = errors; - let valid4 = false; - const _errs42 = errors; - if (typeof data13 !== "string") { - const err28 = { - instancePath: instancePath + "/stage", - schemaPath: "#/properties/stage/anyOf/0/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err28]; - } else { - vErrors.push(err28); + if (data42.rows_affected !== undefined) { + let data52 = data42.rows_affected; + if (!(typeof data52 == "number" && !(data52 % 1) && !isNaN(data52) && isFinite(data52))) { + const err163 = { + instancePath: instancePath + "/telemetry/rows_affected", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_affected/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err163]; + } else { + vErrors.push(err163); + } + errors++; + } + if (typeof data52 == "number" && isFinite(data52)) { + if (data52 > 9223372036854776000 || isNaN(data52)) { + const err164 = { + instancePath: instancePath + "/telemetry/rows_affected", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_affected/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err164]; + } else { + vErrors.push(err164); + } + errors++; + } + if (data52 < 0 || isNaN(data52)) { + const err165 = { + instancePath: instancePath + "/telemetry/rows_affected", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_affected/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err165]; + } else { + vErrors.push(err165); + } + errors++; + } + } } - errors++; - } - var _valid3 = _errs42 === errors; - valid4 = valid4 || _valid3; - const _errs44 = errors; - if (data13 !== null) { - const err29 = { - instancePath: instancePath + "/stage", - schemaPath: "#/properties/stage/anyOf/1/type", - keyword: "type", - params: { type: "null" }, - message: "must be null", - }; - if (vErrors === null) { - vErrors = [err29]; - } else { - vErrors.push(err29); + if (data42.rows_read !== undefined) { + let data53 = data42.rows_read; + if (!(typeof data53 == "number" && !(data53 % 1) && !isNaN(data53) && isFinite(data53))) { + const err166 = { + instancePath: instancePath + "/telemetry/rows_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_read/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err166]; + } else { + vErrors.push(err166); + } + errors++; + } + if (typeof data53 == "number" && isFinite(data53)) { + if (data53 > 9223372036854776000 || isNaN(data53)) { + const err167 = { + instancePath: instancePath + "/telemetry/rows_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_read/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err167]; + } else { + vErrors.push(err167); + } + errors++; + } + if (data53 < 0 || isNaN(data53)) { + const err168 = { + instancePath: instancePath + "/telemetry/rows_read", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_read/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err168]; + } else { + vErrors.push(err168); + } + errors++; + } + } } - errors++; - } - var _valid3 = _errs44 === errors; - valid4 = valid4 || _valid3; - if (!valid4) { - const err30 = { - instancePath: instancePath + "/stage", - schemaPath: "#/properties/stage/anyOf", - keyword: "anyOf", - params: {}, - message: "must match a schema in anyOf", - }; - if (vErrors === null) { - vErrors = [err30]; - } else { - vErrors.push(err30); + if (data42.rows_written !== undefined) { + let data54 = data42.rows_written; + if (!(typeof data54 == "number" && !(data54 % 1) && !isNaN(data54) && isFinite(data54))) { + const err169 = { + instancePath: instancePath + "/telemetry/rows_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_written/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err169]; + } else { + vErrors.push(err169); + } + errors++; + } + if (typeof data54 == "number" && isFinite(data54)) { + if (data54 > 9223372036854776000 || isNaN(data54)) { + const err170 = { + instancePath: instancePath + "/telemetry/rows_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_written/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err170]; + } else { + vErrors.push(err170); + } + errors++; + } + if (data54 < 0 || isNaN(data54)) { + const err171 = { + instancePath: instancePath + "/telemetry/rows_written", + schemaPath: "#/$defs/RunTelemetrySummary/properties/rows_written/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err171]; + } else { + vErrors.push(err171); + } + errors++; + } + } } - errors++; - } else { - errors = _errs41; - if (vErrors !== null) { - if (_errs41) { - vErrors.length = _errs41; - } else { - vErrors = null; + if (data42.spill_bytes !== undefined) { + let data55 = data42.spill_bytes; + if (!(typeof data55 == "number" && !(data55 % 1) && !isNaN(data55) && isFinite(data55))) { + const err172 = { + instancePath: instancePath + "/telemetry/spill_bytes", + schemaPath: "#/$defs/RunTelemetrySummary/properties/spill_bytes/type", + keyword: "type", + params: { type: "integer" }, + message: "must be integer", + }; + if (vErrors === null) { + vErrors = [err172]; + } else { + vErrors.push(err172); + } + errors++; + } + if (typeof data55 == "number" && isFinite(data55)) { + if (data55 > 9223372036854776000 || isNaN(data55)) { + const err173 = { + instancePath: instancePath + "/telemetry/spill_bytes", + schemaPath: "#/$defs/RunTelemetrySummary/properties/spill_bytes/maximum", + keyword: "maximum", + params: { comparison: "<=", limit: 9223372036854776000 }, + message: "must be <= 9223372036854776000", + }; + if (vErrors === null) { + vErrors = [err173]; + } else { + vErrors.push(err173); + } + errors++; + } + if (data55 < 0 || isNaN(data55)) { + const err174 = { + instancePath: instancePath + "/telemetry/spill_bytes", + schemaPath: "#/$defs/RunTelemetrySummary/properties/spill_bytes/minimum", + keyword: "minimum", + params: { comparison: ">=", limit: 0 }, + message: "must be >= 0", + }; + if (vErrors === null) { + vErrors = [err174]; + } else { + vErrors.push(err174); + } + errors++; + } } } - } - } - if (data.started_at !== undefined) { - let data14 = data.started_at; - const _errs47 = errors; - let valid5 = false; - const _errs48 = errors; - if (typeof data14 !== "string") { - const err31 = { - instancePath: instancePath + "/started_at", - schemaPath: "#/properties/started_at/anyOf/0/type", + } else { + const err175 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/$defs/RunTelemetrySummary/type", keyword: "type", - params: { type: "string" }, - message: "must be string", + params: { type: "object" }, + message: "must be object", }; if (vErrors === null) { - vErrors = [err31]; + vErrors = [err175]; } else { - vErrors.push(err31); + vErrors.push(err175); } errors++; } - var _valid4 = _errs48 === errors; - valid5 = valid5 || _valid4; - const _errs50 = errors; - if (data14 !== null) { - const err32 = { - instancePath: instancePath + "/started_at", - schemaPath: "#/properties/started_at/anyOf/1/type", + var _valid17 = _errs163 === errors; + valid25 = valid25 || _valid17; + const _errs193 = errors; + if (data42 !== null) { + const err176 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/properties/telemetry/anyOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null", }; if (vErrors === null) { - vErrors = [err32]; + vErrors = [err176]; } else { - vErrors.push(err32); + vErrors.push(err176); } errors++; } - var _valid4 = _errs50 === errors; - valid5 = valid5 || _valid4; - if (!valid5) { - const err33 = { - instancePath: instancePath + "/started_at", - schemaPath: "#/properties/started_at/anyOf", + var _valid17 = _errs193 === errors; + valid25 = valid25 || _valid17; + if (!valid25) { + const err177 = { + instancePath: instancePath + "/telemetry", + schemaPath: "#/properties/telemetry/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf", }; if (vErrors === null) { - vErrors = [err33]; + vErrors = [err177]; } else { - vErrors.push(err33); + vErrors.push(err177); } errors++; } else { - errors = _errs47; + errors = _errs162; if (vErrors !== null) { - if (_errs47) { - vErrors.length = _errs47; + if (_errs162) { + vErrors.length = _errs162; } else { vErrors = null; } } } } - if (data.state !== undefined) { - let data15 = data.state; - if (typeof data15 !== "string") { - const err34 = { - instancePath: instancePath + "/state", - schemaPath: "#/$defs/RunState/type", - keyword: "type", - params: { type: "string" }, - message: "must be string", - }; - if (vErrors === null) { - vErrors = [err34]; - } else { - vErrors.push(err34); - } - errors++; - } - if (!( - data15 === "queued" || - data15 === "running" || - data15 === "succeeded" || - data15 === "failed" || - data15 === "canceling" || - data15 === "canceled" || - data15 === "retrying" - )) { - const err35 = { - instancePath: instancePath + "/state", - schemaPath: "#/$defs/RunState/enum", - keyword: "enum", - params: { allowedValues: schema280.enum }, - message: "must be equal to one of the allowed values", - }; - if (vErrors === null) { - vErrors = [err35]; - } else { - vErrors.push(err35); - } - errors++; - } - } } else { - const err36 = { + const err178 = { instancePath, schemaPath: "#/type", keyword: "type", @@ -44936,30 +55486,30 @@ function validate415( message: "must be object", }; if (vErrors === null) { - vErrors = [err36]; + vErrors = [err178]; } else { - vErrors.push(err36); + vErrors.push(err178); } errors++; } - validate415.errors = vErrors; + validate432.errors = vErrors; return errors === 0; } -validate415.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate432.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validatePipelineNode = validate416; -const schema281 = { +export const validatePipelineNode = validate433; +const schema311 = { $id: "urn:druff:generated:GraphNodeDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/GraphNodeDocument", }; -function validate417( +function validate434( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate417.evaluated; + const evaluated0 = validate434.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -44970,9 +55520,9 @@ function validate417( let valid0 = false; const _errs1 = errors; if ( - !validate315(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate329(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate315.errors : vErrors.concat(validate315.errors); + vErrors = vErrors === null ? validate329.errors : vErrors.concat(validate329.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -44982,9 +55532,9 @@ function validate417( } const _errs2 = errors; if ( - !validate357(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate371(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate357.errors : vErrors.concat(validate357.errors); + vErrors = vErrors === null ? validate371.errors : vErrors.concat(validate371.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -44996,9 +55546,9 @@ function validate417( } const _errs3 = errors; if ( - !validate386(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate400(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate386.errors : vErrors.concat(validate386.errors); + vErrors = vErrors === null ? validate400.errors : vErrors.concat(validate400.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -45010,9 +55560,9 @@ function validate417( } const _errs4 = errors; if ( - !validate399(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate413(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate399.errors : vErrors.concat(validate399.errors); + vErrors = vErrors === null ? validate413.errors : vErrors.concat(validate413.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -45046,19 +55596,19 @@ function validate417( } } } - validate417.errors = vErrors; + validate434.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate417.evaluated = { dynamicProps: true, dynamicItems: false }; +validate434.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate416( +function validate433( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:GraphNodeDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate416.evaluated; + const evaluated0 = validate433.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -45066,32 +55616,32 @@ function validate416( evaluated0.items = undefined; } if ( - !validate417(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate434(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate417.errors : vErrors.concat(validate417.errors); + vErrors = vErrors === null ? validate434.errors : vErrors.concat(validate434.errors); errors = vErrors.length; } else { - var props0 = validate417.evaluated.props; + var props0 = validate434.evaluated.props; } - validate416.errors = vErrors; + validate433.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate416.evaluated = { dynamicProps: true, dynamicItems: false }; +validate433.evaluated = { dynamicProps: true, dynamicItems: false }; -export const validateNodeField = validate423; -const schema283 = { +export const validateNodeField = validate440; +const schema313 = { $id: "urn:druff:generated:NodeFieldDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/NodeFieldDocument", }; -function validate424( +function validate441( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate424.evaluated; + const evaluated0 = validate441.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -45523,7 +56073,7 @@ function validate424( } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -45531,7 +56081,7 @@ function validate424( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } @@ -45575,7 +56125,7 @@ function validate424( const len1 = data10.length; for (let i1 = 0; i1 < len1; i1++) { if ( - !validate327(data10[i1], { + !validate341(data10[i1], { instancePath: instancePath + "/tests/" + i1, parentData: data10, parentDataProperty: i1, @@ -45583,7 +56133,7 @@ function validate424( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate327.errors : vErrors.concat(validate327.errors); + vErrors = vErrors === null ? validate341.errors : vErrors.concat(validate341.errors); errors = vErrors.length; } } @@ -45635,18 +56185,18 @@ function validate424( } errors++; } - validate424.errors = vErrors; + validate441.errors = vErrors; return errors === 0; } -validate424.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate441.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate423( +function validate440( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:NodeFieldDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate423.evaluated; + const evaluated0 = validate440.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -45654,29 +56204,29 @@ function validate423( evaluated0.items = undefined; } if ( - !validate424(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate441(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate424.errors : vErrors.concat(validate424.errors); + vErrors = vErrors === null ? validate441.errors : vErrors.concat(validate441.errors); errors = vErrors.length; } - validate423.errors = vErrors; + validate440.errors = vErrors; return errors === 0; } -validate423.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate440.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateFieldTest = validate428; -const schema286 = { +export const validateFieldTest = validate445; +const schema316 = { $id: "urn:druff:generated:FieldTestDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/FieldTestDocument", }; -function validate429( +function validate446( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate429.evaluated; + const evaluated0 = validate446.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -45687,9 +56237,9 @@ function validate429( let valid0 = false; const _errs1 = errors; if ( - !validate328(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate342(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate328.errors : vErrors.concat(validate328.errors); + vErrors = vErrors === null ? validate342.errors : vErrors.concat(validate342.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -45699,9 +56249,9 @@ function validate429( } const _errs2 = errors; if ( - !validate331(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate345(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate331.errors : vErrors.concat(validate331.errors); + vErrors = vErrors === null ? validate345.errors : vErrors.concat(validate345.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -45713,9 +56263,9 @@ function validate429( } const _errs3 = errors; if ( - !validate334(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate348(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate334.errors : vErrors.concat(validate334.errors); + vErrors = vErrors === null ? validate348.errors : vErrors.concat(validate348.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -45727,9 +56277,9 @@ function validate429( } const _errs4 = errors; if ( - !validate337(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate351(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate337.errors : vErrors.concat(validate337.errors); + vErrors = vErrors === null ? validate351.errors : vErrors.concat(validate351.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -45763,19 +56313,19 @@ function validate429( } } } - validate429.errors = vErrors; + validate446.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate429.evaluated = { dynamicProps: true, dynamicItems: false }; +validate446.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate428( +function validate445( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:FieldTestDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate428.evaluated; + const evaluated0 = validate445.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -45783,32 +56333,32 @@ function validate428( evaluated0.items = undefined; } if ( - !validate429(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate446(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate429.errors : vErrors.concat(validate429.errors); + vErrors = vErrors === null ? validate446.errors : vErrors.concat(validate446.errors); errors = vErrors.length; } else { - var props0 = validate429.evaluated.props; + var props0 = validate446.evaluated.props; } - validate428.errors = vErrors; + validate445.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate428.evaluated = { dynamicProps: true, dynamicItems: false }; +validate445.evaluated = { dynamicProps: true, dynamicItems: false }; -export const validateCursorStrategy = validate435; -const schema288 = { +export const validateCursorStrategy = validate452; +const schema318 = { $id: "urn:druff:generated:CursorStrategyDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/CursorStrategyDocument", }; -function validate436( +function validate453( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate436.evaluated; + const evaluated0 = validate453.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -45866,7 +56416,7 @@ function validate436( if (data.field !== undefined) { let data0 = data.field; if (typeof data0 === "string") { - if (func2(data0) < 1) { + if (func3(data0) < 1) { const err3 = { instancePath: instancePath + "/field", schemaPath: "#/properties/field/minLength", @@ -45919,7 +56469,7 @@ function validate436( instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/enum", keyword: "enum", - params: { allowedValues: schema224.properties.kind.enum }, + params: { allowedValues: schema241.properties.kind.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -45932,7 +56482,7 @@ function validate436( } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -45940,13 +56490,13 @@ function validate436( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } if (data.params !== undefined) { if ( - !validate291(data.params, { + !validate305(data.params, { instancePath: instancePath + "/params", parentData: data, parentDataProperty: "params", @@ -45954,7 +56504,7 @@ function validate436( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } @@ -45973,18 +56523,18 @@ function validate436( } errors++; } - validate436.errors = vErrors; + validate453.errors = vErrors; return errors === 0; } -validate436.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate453.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate435( +function validate452( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:CursorStrategyDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate435.evaluated; + const evaluated0 = validate452.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -45992,29 +56542,29 @@ function validate435( evaluated0.items = undefined; } if ( - !validate436(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate453(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate436.errors : vErrors.concat(validate436.errors); + vErrors = vErrors === null ? validate453.errors : vErrors.concat(validate453.errors); errors = vErrors.length; } - validate435.errors = vErrors; + validate452.errors = vErrors; return errors === 0; } -validate435.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate452.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validatePosition = validate440; -const schema290 = { +export const validatePosition = validate457; +const schema320 = { $id: "urn:druff:generated:PositionDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/PositionDocument", }; -function validate440( +function validate457( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:PositionDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate440.evaluated; + const evaluated0 = validate457.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -46125,24 +56675,24 @@ function validate440( } errors++; } - validate440.errors = vErrors; + validate457.errors = vErrors; return errors === 0; } -validate440.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate457.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateNodeVisual = validate441; -const schema292 = { +export const validateNodeVisual = validate458; +const schema322 = { $id: "urn:druff:generated:NodeVisualDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/NodeVisualDocument", }; -function validate442( +function validate459( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate442.evaluated; + const evaluated0 = validate459.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -46461,18 +57011,18 @@ function validate442( } errors++; } - validate442.errors = vErrors; + validate459.errors = vErrors; return errors === 0; } -validate442.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate459.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate441( +function validate458( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:NodeVisualDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate441.evaluated; + const evaluated0 = validate458.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -46480,29 +57030,29 @@ function validate441( evaluated0.items = undefined; } if ( - !validate442(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate459(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate442.errors : vErrors.concat(validate442.errors); + vErrors = vErrors === null ? validate459.errors : vErrors.concat(validate459.errors); errors = vErrors.length; } - validate441.errors = vErrors; + validate458.errors = vErrors; return errors === 0; } -validate441.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate458.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateTransformation = validate444; -const schema295 = { +export const validateTransformation = validate461; +const schema325 = { $id: "urn:druff:generated:TransformationDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/TransformationDocument", }; -function validate445( +function validate462( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate445.evaluated; + const evaluated0 = validate462.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -46513,9 +57063,9 @@ function validate445( let valid0 = false; const _errs1 = errors; if ( - !validate297(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate311(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate297.errors : vErrors.concat(validate297.errors); + vErrors = vErrors === null ? validate311.errors : vErrors.concat(validate311.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -46525,9 +57075,9 @@ function validate445( } const _errs2 = errors; if ( - !validate300(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate314(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate300.errors : vErrors.concat(validate300.errors); + vErrors = vErrors === null ? validate314.errors : vErrors.concat(validate314.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -46539,9 +57089,9 @@ function validate445( } const _errs3 = errors; if ( - !validate303(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate317(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate303.errors : vErrors.concat(validate303.errors); + vErrors = vErrors === null ? validate317.errors : vErrors.concat(validate317.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -46553,9 +57103,9 @@ function validate445( } const _errs4 = errors; if ( - !validate306(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate320(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate306.errors : vErrors.concat(validate306.errors); + vErrors = vErrors === null ? validate320.errors : vErrors.concat(validate320.errors); errors = vErrors.length; } var _valid0 = _errs4 === errors; @@ -46589,19 +57139,19 @@ function validate445( } } } - validate445.errors = vErrors; + validate462.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate445.evaluated = { dynamicProps: true, dynamicItems: false }; +validate462.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate444( +function validate461( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:TransformationDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate444.evaluated; + const evaluated0 = validate461.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -46609,32 +57159,32 @@ function validate444( evaluated0.items = undefined; } if ( - !validate445(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate462(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate445.errors : vErrors.concat(validate445.errors); + vErrors = vErrors === null ? validate462.errors : vErrors.concat(validate462.errors); errors = vErrors.length; } else { - var props0 = validate445.evaluated.props; + var props0 = validate462.evaluated.props; } - validate444.errors = vErrors; + validate461.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate444.evaluated = { dynamicProps: true, dynamicItems: false }; +validate461.evaluated = { dynamicProps: true, dynamicItems: false }; -export const validateFieldMapping = validate451; -const schema297 = { +export const validateFieldMapping = validate468; +const schema327 = { $id: "urn:druff:generated:FieldMappingDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/FieldMappingDocument", }; -function validate452( +function validate469( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate452.evaluated; + const evaluated0 = validate469.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -46681,7 +57231,7 @@ function validate452( } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -46689,7 +57239,7 @@ function validate452( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } @@ -46781,7 +57331,7 @@ function validate452( let valid2 = false; const _errs13 = errors; if ( - !validate296(data3, { + !validate310(data3, { instancePath: instancePath + "/transformation", parentData: data, parentDataProperty: "transformation", @@ -46789,7 +57339,7 @@ function validate452( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate296.errors : vErrors.concat(validate296.errors); + vErrors = vErrors === null ? validate310.errors : vErrors.concat(validate310.errors); errors = vErrors.length; } var _valid1 = _errs13 === errors; @@ -46852,18 +57402,18 @@ function validate452( } errors++; } - validate452.errors = vErrors; + validate469.errors = vErrors; return errors === 0; } -validate452.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate469.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate451( +function validate468( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:FieldMappingDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate451.evaluated; + const evaluated0 = validate468.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -46871,29 +57421,29 @@ function validate451( evaluated0.items = undefined; } if ( - !validate452(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate469(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate452.errors : vErrors.concat(validate452.errors); + vErrors = vErrors === null ? validate469.errors : vErrors.concat(validate469.errors); errors = vErrors.length; } - validate451.errors = vErrors; + validate468.errors = vErrors; return errors === 0; } -validate451.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate468.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateJoinKeyPair = validate456; -const schema299 = { +export const validateJoinKeyPair = validate473; +const schema329 = { $id: "urn:druff:generated:JoinKeyPairDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/JoinKeyPairDocument", }; -function validate456( +function validate473( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:JoinKeyPairDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate456.evaluated; + const evaluated0 = validate473.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -47002,24 +57552,24 @@ function validate456( } errors++; } - validate456.errors = vErrors; + validate473.errors = vErrors; return errors === 0; } -validate456.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate473.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateJoin = validate457; -const schema301 = { +export const validateJoin = validate474; +const schema331 = { $id: "urn:druff:generated:JoinDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/JoinDocument", }; -function validate458( +function validate475( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate458.evaluated; + const evaluated0 = validate475.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -47211,7 +57761,7 @@ function validate458( } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -47219,7 +57769,7 @@ function validate458( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } @@ -47245,7 +57795,7 @@ function validate458( instancePath: instancePath + "/type", schemaPath: "#/properties/type/enum", keyword: "enum", - params: { allowedValues: schema204.properties.type.enum }, + params: { allowedValues: schema221.properties.type.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -47271,18 +57821,18 @@ function validate458( } errors++; } - validate458.errors = vErrors; + validate475.errors = vErrors; return errors === 0; } -validate458.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate475.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate457( +function validate474( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:JoinDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate457.evaluated; + const evaluated0 = validate474.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -47290,29 +57840,29 @@ function validate457( evaluated0.items = undefined; } if ( - !validate458(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate475(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate458.errors : vErrors.concat(validate458.errors); + vErrors = vErrors === null ? validate475.errors : vErrors.concat(validate475.errors); errors = vErrors.length; } - validate457.errors = vErrors; + validate474.errors = vErrors; return errors === 0; } -validate457.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate474.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validatePipelineEdge = validate461; -const schema304 = { +export const validatePipelineEdge = validate478; +const schema334 = { $id: "urn:druff:generated:EdgeDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/EdgeDocument", }; -function validate462( +function validate479( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate462.evaluated; + const evaluated0 = validate479.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -47396,7 +57946,7 @@ function validate462( let valid1 = false; const _errs6 = errors; if ( - !validate290(data1, { + !validate304(data1, { instancePath: instancePath + "/join", parentData: data, parentDataProperty: "join", @@ -47404,7 +57954,7 @@ function validate462( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate290.errors : vErrors.concat(validate290.errors); + vErrors = vErrors === null ? validate304.errors : vErrors.concat(validate304.errors); errors = vErrors.length; } var _valid0 = _errs6 === errors; @@ -47458,7 +58008,7 @@ function validate462( const len0 = data2.length; for (let i0 = 0; i0 < len0; i0++) { if ( - !validate294(data2[i0], { + !validate308(data2[i0], { instancePath: instancePath + "/mappings/" + i0, parentData: data2, parentDataProperty: i0, @@ -47466,7 +58016,7 @@ function validate462( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate294.errors : vErrors.concat(validate294.errors); + vErrors = vErrors === null ? validate308.errors : vErrors.concat(validate308.errors); errors = vErrors.length; } } @@ -47488,7 +58038,7 @@ function validate462( } if (data.metadata !== undefined) { if ( - !validate291(data.metadata, { + !validate305(data.metadata, { instancePath: instancePath + "/metadata", parentData: data, parentDataProperty: "metadata", @@ -47496,7 +58046,7 @@ function validate462( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate291.errors : vErrors.concat(validate291.errors); + vErrors = vErrors === null ? validate305.errors : vErrors.concat(validate305.errors); errors = vErrors.length; } } @@ -47532,18 +58082,18 @@ function validate462( } errors++; } - validate462.errors = vErrors; + validate479.errors = vErrors; return errors === 0; } -validate462.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate479.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate461( +function validate478( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:EdgeDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate461.evaluated; + const evaluated0 = validate478.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -47551,29 +58101,29 @@ function validate461( evaluated0.items = undefined; } if ( - !validate462(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate479(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate462.errors : vErrors.concat(validate462.errors); + vErrors = vErrors === null ? validate479.errors : vErrors.concat(validate479.errors); errors = vErrors.length; } - validate461.errors = vErrors; + validate478.errors = vErrors; return errors === 0; } -validate461.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate478.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateTrigger = validate467; -const schema306 = { +export const validateTrigger = validate484; +const schema336 = { $id: "urn:druff:generated:TriggerDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/TriggerDocument", }; -function validate468( +function validate485( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate468.evaluated; + const evaluated0 = validate485.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -47584,9 +58134,9 @@ function validate468( let valid0 = false; const _errs1 = errors; if ( - !validate344(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate358(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate344.errors : vErrors.concat(validate344.errors); + vErrors = vErrors === null ? validate358.errors : vErrors.concat(validate358.errors); errors = vErrors.length; } var _valid0 = _errs1 === errors; @@ -47596,9 +58146,9 @@ function validate468( } const _errs2 = errors; if ( - !validate347(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate361(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate347.errors : vErrors.concat(validate347.errors); + vErrors = vErrors === null ? validate361.errors : vErrors.concat(validate361.errors); errors = vErrors.length; } var _valid0 = _errs2 === errors; @@ -47610,9 +58160,9 @@ function validate468( } const _errs3 = errors; if ( - !validate350(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate364(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate350.errors : vErrors.concat(validate350.errors); + vErrors = vErrors === null ? validate364.errors : vErrors.concat(validate364.errors); errors = vErrors.length; } var _valid0 = _errs3 === errors; @@ -47646,19 +58196,19 @@ function validate468( } } } - validate468.errors = vErrors; + validate485.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate468.evaluated = { dynamicProps: true, dynamicItems: false }; +validate485.evaluated = { dynamicProps: true, dynamicItems: false }; -function validate467( +function validate484( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:TriggerDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate467.evaluated; + const evaluated0 = validate484.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -47666,32 +58216,32 @@ function validate467( evaluated0.items = undefined; } if ( - !validate468(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate485(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate468.errors : vErrors.concat(validate468.errors); + vErrors = vErrors === null ? validate485.errors : vErrors.concat(validate485.errors); errors = vErrors.length; } else { - var props0 = validate468.evaluated.props; + var props0 = validate485.evaluated.props; } - validate467.errors = vErrors; + validate484.errors = vErrors; evaluated0.props = props0; return errors === 0; } -validate467.evaluated = { dynamicProps: true, dynamicItems: false }; +validate484.evaluated = { dynamicProps: true, dynamicItems: false }; -export const validateDestination = validate473; -const schema308 = { +export const validateDestination = validate490; +const schema338 = { $id: "urn:druff:generated:DestinationDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/DestinationDocument", }; -function validate473( +function validate490( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:DestinationDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate473.evaluated; + const evaluated0 = validate490.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -47796,7 +58346,7 @@ function validate473( if (data.dataset !== undefined) { let data2 = data.dataset; if (typeof data2 === "string") { - if (func2(data2) < 1) { + if (func3(data2) < 1) { const err5 = { instancePath: instancePath + "/dataset", schemaPath: @@ -47900,7 +58450,7 @@ function validate473( if (data.table !== undefined) { let data4 = data.table; if (typeof data4 === "string") { - if (func2(data4) < 1) { + if (func3(data4) < 1) { const err10 = { instancePath: instancePath + "/table", schemaPath: @@ -47948,24 +58498,24 @@ function validate473( } errors++; } - validate473.errors = vErrors; + validate490.errors = vErrors; return errors === 0; } -validate473.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate490.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validatePartitioning = validate474; -const schema310 = { +export const validatePartitioning = validate491; +const schema340 = { $id: "urn:druff:generated:PartitioningDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/PartitioningDocument", }; -function validate475( +function validate492( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate475.evaluated; + const evaluated0 = validate492.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -48077,7 +58627,7 @@ function validate475( instancePath: instancePath + "/granularity", schemaPath: "#/$defs/PartitioningType/enum", keyword: "enum", - params: { allowedValues: schema266.enum }, + params: { allowedValues: schema283.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -48120,18 +58670,18 @@ function validate475( } errors++; } - validate475.errors = vErrors; + validate492.errors = vErrors; return errors === 0; } -validate475.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate492.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate474( +function validate491( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:PartitioningDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate474.evaluated; + const evaluated0 = validate491.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -48139,29 +58689,29 @@ function validate474( evaluated0.items = undefined; } if ( - !validate475(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate492(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate475.errors : vErrors.concat(validate475.errors); + vErrors = vErrors === null ? validate492.errors : vErrors.concat(validate492.errors); errors = vErrors.length; } - validate474.errors = vErrors; + validate491.errors = vErrors; return errors === 0; } -validate474.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate491.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -export const validateWriter = validate477; -const schema313 = { +export const validateWriter = validate494; +const schema343 = { $id: "urn:druff:generated:WriterDocument", $ref: "urn:dander:control:contracts:v1:pipeline-graph#/$defs/WriterDocument", }; -function validate478( +function validate495( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { let vErrors = null; let errors = 0; - const evaluated0 = validate478.evaluated; + const evaluated0 = validate495.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -48437,7 +58987,7 @@ function validate478( if (data3.dataset !== undefined) { let data6 = data3.dataset; if (typeof data6 === "string") { - if (func2(data6) < 1) { + if (func3(data6) < 1) { const err14 = { instancePath: instancePath + "/destination/dataset", schemaPath: "#/$defs/DestinationDocument/properties/dataset/minLength", @@ -48536,7 +59086,7 @@ function validate478( if (data3.table !== undefined) { let data8 = data3.table; if (typeof data8 === "string") { - if (func2(data8) < 1) { + if (func3(data8) < 1) { const err19 = { instancePath: instancePath + "/destination/table", schemaPath: "#/$defs/DestinationDocument/properties/table/minLength", @@ -48639,7 +59189,7 @@ function validate478( let valid9 = false; const _errs34 = errors; if ( - !validate389(data10, { + !validate403(data10, { instancePath: instancePath + "/partitioning", parentData: data, parentDataProperty: "partitioning", @@ -48647,7 +59197,7 @@ function validate478( dynamicAnchors, }) ) { - vErrors = vErrors === null ? validate389.errors : vErrors.concat(validate389.errors); + vErrors = vErrors === null ? validate403.errors : vErrors.concat(validate403.errors); errors = vErrors.length; } var _valid2 = _errs34 === errors; @@ -48717,7 +59267,7 @@ function validate478( instancePath: instancePath + "/schema_evolution", schemaPath: "#/$defs/SchemaEvolution/enum", keyword: "enum", - params: { allowedValues: schema267.enum }, + params: { allowedValues: schema284.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -48750,7 +59300,7 @@ function validate478( instancePath: instancePath + "/transport", schemaPath: "#/properties/transport/enum", keyword: "enum", - params: { allowedValues: schema263.properties.transport.enum }, + params: { allowedValues: schema280.properties.transport.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -48789,7 +59339,7 @@ function validate478( instancePath: instancePath + "/write_mode", schemaPath: "#/$defs/WriteMode/enum", keyword: "enum", - params: { allowedValues: schema268.enum }, + params: { allowedValues: schema285.enum }, message: "must be equal to one of the allowed values", }; if (vErrors === null) { @@ -48815,18 +59365,18 @@ function validate478( } errors++; } - validate478.errors = vErrors; + validate495.errors = vErrors; return errors === 0; } -validate478.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate495.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; -function validate477( +function validate494( data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}, ) { /*# sourceURL="urn:druff:generated:WriterDocument" */ let vErrors = null; let errors = 0; - const evaluated0 = validate477.evaluated; + const evaluated0 = validate494.evaluated; if (evaluated0.dynamicProps) { evaluated0.props = undefined; } @@ -48834,12 +59384,12 @@ function validate477( evaluated0.items = undefined; } if ( - !validate478(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) + !validate495(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) ) { - vErrors = vErrors === null ? validate478.errors : vErrors.concat(validate478.errors); + vErrors = vErrors === null ? validate495.errors : vErrors.concat(validate495.errors); errors = vErrors.length; } - validate477.errors = vErrors; + validate494.errors = vErrors; return errors === 0; } -validate477.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; +validate494.evaluated = { props: true, dynamicProps: false, dynamicItems: false }; diff --git a/src/lib/dander-contracts/generated-contracts.test.ts b/src/lib/dander-contracts/generated-contracts.test.ts index c08386a..4e9ff9a 100644 --- a/src/lib/dander-contracts/generated-contracts.test.ts +++ b/src/lib/dander-contracts/generated-contracts.test.ts @@ -5,7 +5,10 @@ import connectorCatalogFixture from "@/generated/dander-contracts/bundle/fixture import controlBootstrapFixture from "@/generated/dander-contracts/bundle/fixtures/control-bootstrap.json"; import deploymentPreviewFixture from "@/generated/dander-contracts/bundle/fixtures/deployment-preview.json"; import graphCreateFixture from "@/generated/dander-contracts/bundle/fixtures/graph-create.json"; +import graphChangePreviewFixture from "@/generated/dander-contracts/bundle/fixtures/graph-change-preview.json"; import graphPageFixture from "@/generated/dander-contracts/bundle/fixtures/graph-page.json"; +import graphRepairPreviewFixture from "@/generated/dander-contracts/bundle/fixtures/graph-repair-preview.json"; +import graphRepairWindowFixture from "@/generated/dander-contracts/bundle/fixtures/graph-repair-window.json"; import graphResourceFixture from "@/generated/dander-contracts/bundle/fixtures/graph-resource.json"; import graphValidationFixture from "@/generated/dander-contracts/bundle/fixtures/graph-validation.json"; import logPageFixture from "@/generated/dander-contracts/bundle/fixtures/log-page.json"; @@ -16,6 +19,7 @@ import pipelineGraphFixture from "@/generated/dander-contracts/bundle/fixtures/p import pluginCatalogFixture from "@/generated/dander-contracts/bundle/fixtures/plugin-catalog.json"; import projectListFixture from "@/generated/dander-contracts/bundle/fixtures/project-list.json"; import runPageFixture from "@/generated/dander-contracts/bundle/fixtures/run-page.json"; +import runExplanationFixture from "@/generated/dander-contracts/bundle/fixtures/run-explanation.json"; import runRequestFixture from "@/generated/dander-contracts/bundle/fixtures/run-request.json"; import runStatusFixture from "@/generated/dander-contracts/bundle/fixtures/run-status.json"; import { @@ -26,7 +30,10 @@ import { DeploymentPreviewResponseSchema, DANDER_CONTRACT_BUNDLE_SHA256, GraphCreateRequestSchema, + GraphChangePreviewResponseSchema, GraphPageResponseSchema, + GraphRepairPreviewResponseSchema, + GraphRepairWindowSchema, GraphResourceResponseSchema, GraphValidationResponseSchema, IncompatibleDanderContractError, @@ -37,6 +44,7 @@ import { PluginCatalogResponseSchema, ProjectListResponseSchema, RunPageResponseSchema, + RunExplanationResponseSchema, RunRequestSchema, RunStatusResponseSchema, assertCompatibleCapabilities, @@ -51,7 +59,10 @@ const rootFixtures: [string, { parse(value: unknown): unknown }, unknown][] = [ ["Control bootstrap", ControlBootstrapDescriptorSchema, controlBootstrapFixture], ["deployment preview", DeploymentPreviewResponseSchema, deploymentPreviewFixture], ["graph create", GraphCreateRequestSchema, graphCreateFixture], + ["graph change preview", GraphChangePreviewResponseSchema, graphChangePreviewFixture], ["graph page", GraphPageResponseSchema, graphPageFixture], + ["graph repair preview", GraphRepairPreviewResponseSchema, graphRepairPreviewFixture], + ["graph repair window", GraphRepairWindowSchema, graphRepairWindowFixture], ["graph resource", GraphResourceResponseSchema, graphResourceFixture], ["graph validation", GraphValidationResponseSchema, graphValidationFixture], ["bounded log page", LogPageResponseSchema, logPageFixture], @@ -61,6 +72,7 @@ const rootFixtures: [string, { parse(value: unknown): unknown }, unknown][] = [ ["plugin catalog", PluginCatalogResponseSchema, pluginCatalogFixture], ["project list", ProjectListResponseSchema, projectListFixture], ["run page", RunPageResponseSchema, runPageFixture], + ["run explanation", RunExplanationResponseSchema, runExplanationFixture], ["run request", RunRequestSchema, runRequestFixture], ["run status", RunStatusResponseSchema, runStatusFixture], ]; @@ -79,6 +91,22 @@ describe("published Dander contract bundle", () => { expect(() => PipelineGraphDocumentSchema.parse({ ...minimal, provider: "gcp" })).toThrow(); }); + it("preserves repair boundaries and unknown estimates without inventing defaults", () => { + const preview = structuredClone(graphRepairPreviewFixture); + expect(GraphRepairPreviewResponseSchema.parse(preview)).toEqual(preview); + expect(preview.estimated_rows).toBeNull(); + expect(preview.estimated_cost_usd).toBeNull(); + expect(() => + GraphRepairWindowSchema.parse({ ...graphRepairWindowFixture, extract_source: true }), + ).toThrow(); + expect(() => + RunExplanationResponseSchema.parse({ + ...runExplanationFixture, + next_action: { ...runExplanationFixture.next_action, command: "unexpected-command" }, + }), + ).toThrow(); + }); + it("round-trips Dander's representative graph without semantic field loss", () => { const input = structuredClone(pipelineGraphFixture); const graph = PipelineGraphSchema.parse(input); diff --git a/src/lib/dander-contracts/index.ts b/src/lib/dander-contracts/index.ts index 9d33e51..13eebb9 100644 --- a/src/lib/dander-contracts/index.ts +++ b/src/lib/dander-contracts/index.ts @@ -10,8 +10,11 @@ export type { } from "@/generated/dander-contracts/types/connector-catalog"; export type { ControlBootstrapDescriptor } from "@/generated/dander-contracts/types/control-bootstrap"; export type { DeploymentPreviewResponse } from "@/generated/dander-contracts/types/deployment-preview"; +export type { GraphChangePreviewResponse } from "@/generated/dander-contracts/types/graph-change-preview"; export type { GraphCreateRequest } from "@/generated/dander-contracts/types/graph-create"; export type { GraphPageResponse } from "@/generated/dander-contracts/types/graph-page"; +export type { GraphRepairPreviewResponse } from "@/generated/dander-contracts/types/graph-repair-preview"; +export type { GraphRepairWindow } from "@/generated/dander-contracts/types/graph-repair-window"; export type { GraphResourceResponse } from "@/generated/dander-contracts/types/graph-resource"; export type { GraphValidationResponse } from "@/generated/dander-contracts/types/graph-validation"; export type { LogPageResponse } from "@/generated/dander-contracts/types/log-page"; @@ -20,6 +23,7 @@ export type { OperationCatalogResponse } from "@/generated/dander-contracts/type export type { PipelineGraphDocument } from "@/generated/dander-contracts/types/pipeline-graph"; export type { PluginCatalogResponse } from "@/generated/dander-contracts/types/plugin-catalog"; export type { ProjectListResponse } from "@/generated/dander-contracts/types/project-list"; +export type { RunExplanationResponse } from "@/generated/dander-contracts/types/run-explanation"; export type { RunPageResponse } from "@/generated/dander-contracts/types/run-page"; export type { RunRequest } from "@/generated/dander-contracts/types/run-request"; export type { RunStatusResponse } from "@/generated/dander-contracts/types/run-status"; diff --git a/src/lib/dander-contracts/runtime.ts b/src/lib/dander-contracts/runtime.ts index bc563af..804a191 100644 --- a/src/lib/dander-contracts/runtime.ts +++ b/src/lib/dander-contracts/runtime.ts @@ -11,7 +11,10 @@ import { validateFieldMapping, validateFieldTest, validateGraphCreate, + validateGraphChangePreview, validateGraphPage, + validateGraphRepairPreview, + validateGraphRepairWindow, validateGraphResource, validateGraphValidation, validateJoin, @@ -29,6 +32,7 @@ import { validatePosition, validateProjectList, validateRunPage, + validateRunExplanation, validateRunRequest, validateRunStatus, validateTransformation, @@ -101,6 +105,18 @@ export const GraphCreateRequestSchema = generatedContractSchema( "graph create request", validateGraphCreate, ); +export const GraphChangePreviewResponseSchema = generatedContractSchema( + "graph change preview", + validateGraphChangePreview, +); +export const GraphRepairPreviewResponseSchema = generatedContractSchema( + "graph repair preview", + validateGraphRepairPreview, +); +export const GraphRepairWindowSchema = generatedContractSchema( + "graph repair window", + validateGraphRepairWindow, +); export const GraphPageResponseSchema = generatedContractSchema("graph page", validateGraphPage); export const GraphResourceResponseSchema = generatedContractSchema( "graph resource", @@ -132,6 +148,10 @@ export const ProjectListResponseSchema = generatedContractSchema( validateProjectList, ); export const RunPageResponseSchema = generatedContractSchema("run page", validateRunPage); +export const RunExplanationResponseSchema = generatedContractSchema( + "run explanation", + validateRunExplanation, +); export const RunRequestSchema = generatedContractSchema("run request", validateRunRequest); export const RunStatusResponseSchema = generatedContractSchema("run status", validateRunStatus); diff --git a/steering/00-project-overview.md b/steering/00-project-overview.md index 334af02..bf4c0e2 100644 --- a/steering/00-project-overview.md +++ b/steering/00-project-overview.md @@ -80,6 +80,14 @@ execute in the browser; Druff produces/edits the pipeline-graph YAML/JSON and Da Append newest at top. Format: `- YYYY-MM-DD — decision — rationale`. +- 2026-10-01 — **One reviewed journey uses the existing Control boundary** — Hosted authoring + presents one primary action and keeps technical controls under advanced details. Unsaved + change review is bound to the exact draft and saved revision; a saved content hash must match + before the primary run action is available. Date repair is a separate, explicitly scoped + retained-raw output operation, with dates and revision invalidating stale previews. Dander + owns eligibility, execution, atomic output publication and recorded explanations; Druff neither + reimplements these semantics nor guesses missing result counts. See DRUFF-32. + - 2026-08-13 — **Druff 1.0 remains a static generated client of one Dander Control API** — Dander keeps graph and operation semantics, authorization, storage, execution, providers, state, and deployment. Druff uses an external-OIDC public client with authorization code plus PKCE and diff --git a/tickets/DRUFF-32-guided-pipeline-journey.md b/tickets/DRUFF-32-guided-pipeline-journey.md new file mode 100644 index 0000000..03429a3 --- /dev/null +++ b/tickets/DRUFF-32-guided-pipeline-journey.md @@ -0,0 +1,56 @@ +--- +id: DRUFF-32 +title: Guide graph configuration, reviewed runs and date repair +status: in-review +component: frontend +created: 2026-10-01 +--- + +## Context + +The existing editor exposes persistence, validation and run commands in parallel. Connect those +capabilities into a first-success journey using Dander's published transport contracts, without +adding a browser runtime, provider clients or a second planner. + +## Acceptance Criteria + +- [x] Keep hosted sign-in, capability checks and loopback behavior intact. +- [x] Guide graph selection and configuration to an unsaved change preview, explicit save and run + of the exact reviewed saved graph; draft or saved-content changes invalidate review, and + submissions retain the saved graph's exact opaque revision precondition. +- [x] Show recorded run explanations and unknown measurements truthfully; preserve cancellation, + replay and logs with their existing permissions and idempotency semantics. +- [x] Preview and submit retained-raw date repair with the exact saved revision, date window and + advertised execution environment; explain its limits and never imply historical recovery. +- [x] Preserve existing editing and advanced controls. Verify new state transitions and API + contracts, exercise the browser with synthetic OIDC/API fixtures, and exercise the production + client against Dander's actual Control API. Record native provider proof separately. + +## Design + +One hosted journey panel composes the existing graph, validation and run hooks. A review is bound +to the graph address, draft content and opaque baseline revision, and survives only an exact save. +Date repair is a deliberate preview/start operation. Outcomes come from Dander's deterministic +explanation endpoint. The loopback editor remains separate. + +## Verification + +Published RC33 contract checks passed: 685 unit/component tests; TypeScript, ESLint, Prettier, static build; all +11 Playwright journeys; real HTTP acceptance against an ephemeral published-wheel Dander RC33 Control +API. Browser OIDC/API fixtures are synthetic. The actual HTTP test covers canonical canvas hash +identity, unsaved preview, exact save and stale preview rejection without a provider backend. + +Contracts were finally regenerated from the published RC34 GitHub wheel, with exact wheel/bundle +hashes and independent drift verification. RC34 fixes Control's native image identity reconciliation; +the contract bundle is unchanged. Final real HTTP acceptance against RC34, 29 contract tests, +18 journey/API tests, TypeScript and focused lint passed. This GitHub candidate does not promote +the RC20 PyPI beta. +Native repair success and cleanup remain separate operator qualification; +`pnpm test:repair-observation` reads an accepted run without launching another workload. + +Protected PR run `36869153273` passed frontend and secret checks but found three fixed high +vulnerabilities in the existing Caddy binary dependencies. Pin `golang.org/x/crypto` to `v0.55.0` +for CVE-2026-56854 and `google.golang.org/grpc` to `v1.83.2` for CVE-2026-84304 and +CVE-2026-84445. The existing Caddy version, image pins and scan policy remain intact. Protected +run `36870826744` passed both architecture scans, reproducibility, runtime/routes/headers and +frontend/secret checks with those replacements. diff --git a/vitest.native-repair.config.ts b/vitest.native-repair.config.ts new file mode 100644 index 0000000..b026dda --- /dev/null +++ b/vitest.native-repair.config.ts @@ -0,0 +1,11 @@ +import path from "node:path"; +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + environment: "node", + include: ["integration/native-repair-observation.test.ts"], + testTimeout: 15_000, + }, + resolve: { alias: { "@": path.resolve(__dirname, "./src") } }, +});