yaml-flow 7.1.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/asset-integrity.json +8 -4
- package/browser/board-livecards-client.js +1 -1
- package/browser/board-livecards-localstorage.js +5 -5
- package/browser/live-cards.js +19 -3309
- package/cli/board-live-cards-lib-tjYsPt5U.d.ts +321 -0
- package/{dist/cli → cli}/browser-api/board-live-cards-browser-adapter.d.ts +3 -5
- package/{dist/cli → cli}/browser-api/card-store-browser-api.d.ts +1 -2
- package/{dist/cli → cli}/browser-api/card-store-browser-api.js +1 -1
- package/cli/execution-interface-C_A6WCiK.d.ts +284 -0
- package/{dist/cli → cli}/node/artifacts-store-cli.js +2 -2
- package/cli/node/batch-runner-cli.js +3 -0
- package/cli/node/board-live-cards-cli.js +15 -0
- package/{dist/cli → cli}/node/execution-adapter.d.ts +3 -3
- package/cli/node/execution-adapter.js +3 -0
- package/{dist/cli → cli}/node/fs-board-adapter.d.ts +24 -11
- package/cli/node/fs-board-adapter.js +14 -0
- package/cli/node/step-machine-cli.d.ts +7 -0
- package/cli/node/step-machine-cli.js +5 -0
- package/{dist/board-live-cards-public-5n1-syA3.d.cts → cli/types-CziUxkiv.d.ts} +68 -5
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.config/card-store-ref.json +1 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.config/chat-handler.json +1 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.config/outputs-store-ref.json +1 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.config/task-executor.json +1 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.state-snapshot/board/graph.json +29 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.state-snapshot/board/lastJournalProcessedId.json +1 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime-out/.outputs/status.json +25 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/cards/card-market-prices/computed_values.json +67 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/cards/card-portfolio/computed_values.json +1 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/cards/card-portfolio-value/computed_values.json +52 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/data-objects/holdings.json +22 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/data-objects/positions.json +46 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/data-objects/quotes.json +35 -0
- package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/status.json +113 -0
- package/examples/{example-board → board}/demo-server-config.json +0 -1
- package/examples/{example-board → board}/demo-server.js +23 -48
- package/examples/{example-board → board}/demo-shell-with-server.html +3 -3
- package/examples/{example-board → board}/demo-task-executor.js +71 -24
- package/examples/board/gandalf-cards/card-source-kinds.json +36 -0
- package/examples/board/gandalf-cards/cards/_index.json +7 -0
- package/examples/board/gandalf-cards/cards/card-source-kinds.json +64 -0
- package/examples/board/source-def-flows/copilot.flow.json +33 -0
- package/examples/board/source-def-flows/mock.flow.json +35 -0
- package/examples/board/source-def-flows/url-list.flow.json +33 -0
- package/examples/board/source-def-flows/url.flow.json +33 -0
- package/examples/board/source-def-flows/workiq.flow.json +34 -0
- package/examples/board/source-def-handlers/copilot-source-handler.js +141 -0
- package/examples/board/source-def-handlers/http-source-handler.js +145 -0
- package/examples/board/source_def_flows.json +249 -0
- package/examples/board/test/demo-http-test.js +317 -0
- package/examples/{example-board → board-local}/demo-shell-localstorage.html +4 -4
- package/examples/{browser/boards/portfolio-tracker → portfolio-tracker/handlers}/portfolio-tracker-fetch-prices.js +1 -1
- package/examples/{browser/boards/portfolio-tracker/portfolio-tracker-public.js → portfolio-tracker/portfolio-tracker.js} +11 -14
- package/examples/{browser/boards/portfolio-tracker → portfolio-tracker/test}/portfolio-t4.js +32 -50
- package/lib/artifacts-store-lib-public-BABrgFkV.d.ts +119 -0
- package/lib/artifacts-store-lib-public-DGa8BpJT.d.cts +119 -0
- package/lib/artifacts-store-public.cjs +2 -0
- package/lib/artifacts-store-public.d.cts +5 -0
- package/lib/artifacts-store-public.d.ts +5 -0
- package/lib/artifacts-store-public.js +2 -0
- package/lib/board-live-cards-node.cjs +14 -0
- package/{dist/cli/node/execution-adapter.d.cts → lib/board-live-cards-node.d.cts} +45 -85
- package/lib/board-live-cards-node.d.ts +134 -0
- package/lib/board-live-cards-node.js +14 -0
- package/lib/board-live-cards-public-BnmRAbQV.d.cts +383 -0
- package/{dist/board-live-cards-public-CK_J8uv0.d.ts → lib/board-live-cards-public-CsmYrvpd.d.ts} +142 -76
- package/lib/board-live-cards-public.cjs +3 -0
- package/lib/board-live-cards-public.d.cts +4 -0
- package/lib/board-live-cards-public.d.ts +4 -0
- package/lib/board-live-cards-public.js +3 -0
- package/lib/board-live-cards-server-runtime.cjs +9 -0
- package/lib/board-live-cards-server-runtime.d.cts +6 -0
- package/lib/board-live-cards-server-runtime.d.ts +6 -0
- package/lib/board-live-cards-server-runtime.js +9 -0
- package/lib/board-livegraph-runtime/index.cjs +3 -0
- package/{dist → lib}/board-livegraph-runtime/index.d.cts +1 -2
- package/{dist → lib}/board-livegraph-runtime/index.d.ts +1 -2
- package/lib/board-livegraph-runtime/index.js +3 -0
- package/{dist/storage-refs.cjs → lib/board-worker-adapter.cjs} +2 -2
- package/{dist/storage-refs.d.cts → lib/board-worker-adapter.d.cts} +4 -3
- package/{dist/storage-refs.d.ts → lib/board-worker-adapter.d.ts} +4 -3
- package/{dist/storage-refs.js → lib/board-worker-adapter.js} +2 -2
- package/{dist → lib}/card-compute/index.cjs +1 -1
- package/{dist → lib}/card-compute/index.js +1 -1
- package/lib/card-store-public.cjs +2 -0
- package/lib/card-store-public.d.cts +61 -0
- package/lib/card-store-public.d.ts +61 -0
- package/lib/card-store-public.js +2 -0
- package/lib/card-validation.cjs +10 -0
- package/lib/card-validation.d.cts +35 -0
- package/lib/card-validation.d.ts +35 -0
- package/lib/card-validation.js +10 -0
- package/{dist/constants-oCEbNpul.d.ts → lib/constants-BPVLb3Es.d.ts} +1 -1
- package/{dist/constants-BzZUyYlp.d.cts → lib/constants-DXxsRN9y.d.cts} +1 -1
- package/{dist → lib}/continuous-event-graph/index.cjs +2 -2
- package/{dist → lib}/continuous-event-graph/index.d.cts +3 -5
- package/{dist → lib}/continuous-event-graph/index.d.ts +3 -5
- package/{dist → lib}/continuous-event-graph/index.js +2 -2
- package/{dist → lib}/event-graph/index.d.cts +2 -2
- package/{dist → lib}/event-graph/index.d.ts +2 -2
- package/{dist → lib}/execution-refs.d.cts +29 -10
- package/{dist → lib}/execution-refs.d.ts +29 -10
- package/lib/index.cjs +25 -0
- package/{dist → lib}/index.d.cts +7 -8
- package/{dist → lib}/index.d.ts +7 -8
- package/lib/index.js +25 -0
- package/{dist/live-cards-bridge-BXbVTsna.d.cts → lib/live-cards-bridge-DC_ZU0eS.d.ts} +134 -3
- package/{dist/live-cards-bridge-Ds28XR15.d.ts → lib/live-cards-bridge-b25aAVvE.d.cts} +134 -3
- package/lib/loader-CuuLjxVA.d.cts +42 -0
- package/lib/loader-Zborm2pq.d.ts +42 -0
- package/lib/server-runtime/index.cjs +9 -0
- package/{dist → lib}/server-runtime/index.d.cts +4 -4
- package/{dist → lib}/server-runtime/index.d.ts +4 -4
- package/lib/server-runtime/index.js +9 -0
- package/lib/step-machine/index.d.cts +64 -0
- package/lib/step-machine/index.d.ts +64 -0
- package/lib/step-machine-public/index.cjs +5 -0
- package/{dist → lib}/step-machine-public/index.d.cts +14 -1
- package/{dist → lib}/step-machine-public/index.d.ts +14 -1
- package/lib/step-machine-public/index.js +5 -0
- package/lib/storage-interface-BhAON-gW.d.cts +84 -0
- package/lib/storage-interface-BhAON-gW.d.ts +84 -0
- package/lib/stores/index.cjs +3 -0
- package/lib/stores/index.d.cts +4 -0
- package/lib/stores/index.d.ts +4 -0
- package/lib/stores/index.js +3 -0
- package/lib/stores/kv.cjs +3 -0
- package/lib/stores/kv.d.cts +32 -0
- package/lib/stores/kv.d.ts +32 -0
- package/lib/stores/kv.js +3 -0
- package/{dist → lib}/stores/memory.d.cts +1 -1
- package/{dist → lib}/stores/memory.d.ts +1 -1
- package/{dist/types-HGDTWIun.d.ts → lib/types-CBxkYuLY.d.ts} +2 -1
- package/{dist/types-ycun84cq.d.cts → lib/types-DQ1bKuB1.d.cts} +11 -0
- package/{dist/types-ycun84cq.d.ts → lib/types-DQ1bKuB1.d.ts} +11 -0
- package/{dist/types-CU3DjTKL.d.cts → lib/types-DkFvgxwq.d.cts} +2 -1
- package/package.json +79 -119
- package/board-live-cards-cli.js +0 -37
- package/browser/board-livecards-client.js.map +0 -1
- package/browser/board-livecards-localstorage.js.map +0 -1
- package/browser/board-livegraph-engine.js +0 -3
- package/browser/board-livegraph-engine.js.map +0 -1
- package/browser/card-compute.js +0 -266
- package/browser/compute-jsonata.js.map +0 -1
- package/card-store.js +0 -37
- package/dist/batch/index.cjs.map +0 -1
- package/dist/batch/index.js.map +0 -1
- package/dist/board-live-cards-lib-Bg6EvCo5.d.cts +0 -136
- package/dist/board-live-cards-lib-jM2uYG1v.d.ts +0 -136
- package/dist/board-livegraph-runtime/index.cjs +0 -3
- package/dist/board-livegraph-runtime/index.cjs.map +0 -1
- package/dist/board-livegraph-runtime/index.js +0 -3
- package/dist/board-livegraph-runtime/index.js.map +0 -1
- package/dist/card-compute/index.cjs.map +0 -1
- package/dist/card-compute/index.js.map +0 -1
- package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs +0 -3
- package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs.map +0 -1
- package/dist/cli/browser-api/board-live-cards-browser-adapter.d.cts +0 -37
- package/dist/cli/browser-api/board-live-cards-browser-adapter.js.map +0 -1
- package/dist/cli/browser-api/card-store-browser-api.cjs +0 -2
- package/dist/cli/browser-api/card-store-browser-api.cjs.map +0 -1
- package/dist/cli/browser-api/card-store-browser-api.d.cts +0 -26
- package/dist/cli/browser-api/card-store-browser-api.js.map +0 -1
- package/dist/cli/node/artifacts-store-cli.cjs +0 -11
- package/dist/cli/node/artifacts-store-cli.cjs.map +0 -1
- package/dist/cli/node/artifacts-store-cli.d.cts +0 -8
- package/dist/cli/node/artifacts-store-cli.js.map +0 -1
- package/dist/cli/node/board-live-cards-cli.cjs +0 -15
- package/dist/cli/node/board-live-cards-cli.cjs.map +0 -1
- package/dist/cli/node/board-live-cards-cli.d.cts +0 -20
- package/dist/cli/node/board-live-cards-cli.js +0 -15
- package/dist/cli/node/board-live-cards-cli.js.map +0 -1
- package/dist/cli/node/card-store-cli.cjs +0 -8
- package/dist/cli/node/card-store-cli.cjs.map +0 -1
- package/dist/cli/node/card-store-cli.d.cts +0 -15
- package/dist/cli/node/card-store-cli.js.map +0 -1
- package/dist/cli/node/execution-adapter.cjs +0 -3
- package/dist/cli/node/execution-adapter.cjs.map +0 -1
- package/dist/cli/node/execution-adapter.js +0 -3
- package/dist/cli/node/execution-adapter.js.map +0 -1
- package/dist/cli/node/fs-board-adapter.cjs +0 -14
- package/dist/cli/node/fs-board-adapter.cjs.map +0 -1
- package/dist/cli/node/fs-board-adapter.d.cts +0 -204
- package/dist/cli/node/fs-board-adapter.js +0 -14
- package/dist/cli/node/fs-board-adapter.js.map +0 -1
- package/dist/cli/node/source-cli-task-executor.cjs +0 -11
- package/dist/cli/node/source-cli-task-executor.cjs.map +0 -1
- package/dist/cli/node/source-cli-task-executor.js.map +0 -1
- package/dist/config/index.cjs.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/continuous-event-graph/index.cjs.map +0 -1
- package/dist/continuous-event-graph/index.js.map +0 -1
- package/dist/event-graph/index.cjs.map +0 -1
- package/dist/event-graph/index.js.map +0 -1
- package/dist/execution-refs.cjs.map +0 -1
- package/dist/execution-refs.js.map +0 -1
- package/dist/index.cjs +0 -30
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -30
- package/dist/index.js.map +0 -1
- package/dist/inference/index.cjs +0 -7
- package/dist/inference/index.cjs.map +0 -1
- package/dist/inference/index.d.cts +0 -229
- package/dist/inference/index.d.ts +0 -229
- package/dist/inference/index.js +0 -7
- package/dist/inference/index.js.map +0 -1
- package/dist/server-runtime/index.cjs +0 -9
- package/dist/server-runtime/index.cjs.map +0 -1
- package/dist/server-runtime/index.js +0 -9
- package/dist/server-runtime/index.js.map +0 -1
- package/dist/step-machine/index.cjs.map +0 -1
- package/dist/step-machine/index.d.cts +0 -102
- package/dist/step-machine/index.d.ts +0 -102
- package/dist/step-machine/index.js.map +0 -1
- package/dist/step-machine-public/index.cjs +0 -3
- package/dist/step-machine-public/index.cjs.map +0 -1
- package/dist/step-machine-public/index.js +0 -3
- package/dist/step-machine-public/index.js.map +0 -1
- package/dist/storage-refs.cjs.map +0 -1
- package/dist/storage-refs.js.map +0 -1
- package/dist/stores/file.cjs +0 -2
- package/dist/stores/file.cjs.map +0 -1
- package/dist/stores/file.d.cts +0 -36
- package/dist/stores/file.d.ts +0 -36
- package/dist/stores/file.js +0 -2
- package/dist/stores/file.js.map +0 -1
- package/dist/stores/index.cjs +0 -2
- package/dist/stores/index.cjs.map +0 -1
- package/dist/stores/index.d.cts +0 -4
- package/dist/stores/index.d.ts +0 -4
- package/dist/stores/index.js +0 -2
- package/dist/stores/index.js.map +0 -1
- package/dist/stores/localStorage.cjs +0 -2
- package/dist/stores/localStorage.cjs.map +0 -1
- package/dist/stores/localStorage.d.cts +0 -34
- package/dist/stores/localStorage.d.ts +0 -34
- package/dist/stores/localStorage.js +0 -2
- package/dist/stores/localStorage.js.map +0 -1
- package/dist/stores/memory.cjs.map +0 -1
- package/dist/stores/memory.js.map +0 -1
- package/dist/types-CHSdoAAA.d.cts +0 -135
- package/dist/types-CoW0gQl3.d.ts +0 -135
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.py +0 -201
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-http-test.js +0 -370
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-http-test.py +0 -398
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-inference-adapter.js +0 -196
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.js +0 -300
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.py +0 -617
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker.py +0 -366
- package/examples/browser/livecards-browser/index.html +0 -41
- package/examples/browser/step-machine-browser/index.html +0 -367
- package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/.runtime-out +0 -1
- package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/board-graph.json +0 -32
- package/examples/cli/step-machine-cli/portfolio-tracker/cards/holdings-table.json +0 -22
- package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +0 -43
- package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +0 -15
- package/examples/cli/step-machine-cli/portfolio-tracker/cards/price-fetch.json +0 -15
- package/examples/cli/step-machine-cli/portfolio-tracker/fetch-prices.js +0 -48
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -125
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +0 -32
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +0 -26
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/poll-status-cli.js +0 -49
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +0 -25
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +0 -23
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +0 -21
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +0 -38
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +0 -48
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +0 -31
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/_board_pycli.py +0 -107
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/add-cards.py +0 -51
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/init-board.py +0 -45
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/poll-status.py +0 -71
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/reset-board-dir.py +0 -36
- package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-demo.flow.yaml +0 -26
- package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-handlers.py +0 -39
- package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker-pycli.flow.yaml +0 -80
- package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +0 -76
- package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +0 -44
- package/examples/cli/step-machine-cli/portfolio-tracker/run-inline-python-demo-pycli.py +0 -43
- package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker-pycli.py +0 -77
- package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +0 -28
- package/examples/cli/step-machine-demo/jsonata-init-board-cli.js +0 -31
- package/examples/cli/step-machine-demo/jsonata-init-board.flow.yaml +0 -54
- package/examples/cli/step-machine-demo/one-step-cli-only.flow.yaml +0 -21
- package/examples/cli/step-machine-demo/step-cli-echo-y.js +0 -15
- package/examples/cli/step-machine-demo/step2-double-cli.js +0 -33
- package/examples/cli/step-machine-demo/two-step-math.flow.yaml +0 -93
- package/examples/cli/step-machine-demo/two-step-mixed.flow.yaml +0 -43
- package/examples/example-board/agent-instructions-cardlayout.md +0 -56
- package/examples/example-board/agent-instructions.md +0 -834
- package/examples/example-board/demo-shell.html +0 -63
- package/examples/index.html +0 -785
- package/examples/npm-libs/batch/batch-step-machine.ts +0 -121
- package/examples/npm-libs/continuous-event-graph/live-cards-board.ts +0 -215
- package/examples/npm-libs/continuous-event-graph/live-portfolio-dashboard.ts +0 -555
- package/examples/npm-libs/continuous-event-graph/portfolio-tracker.ts +0 -287
- package/examples/npm-libs/continuous-event-graph/reactive-monitoring.ts +0 -265
- package/examples/npm-libs/continuous-event-graph/reactive-pipeline.ts +0 -168
- package/examples/npm-libs/continuous-event-graph/soc-incident-board.ts +0 -287
- package/examples/npm-libs/continuous-event-graph/stock-dashboard.ts +0 -229
- package/examples/npm-libs/event-graph/ci-cd-pipeline.ts +0 -243
- package/examples/npm-libs/event-graph/executor-diamond.ts +0 -165
- package/examples/npm-libs/event-graph/executor-pipeline.ts +0 -161
- package/examples/npm-libs/event-graph/research-pipeline.ts +0 -137
- package/examples/npm-libs/flows/ai-conversation.yaml +0 -116
- package/examples/npm-libs/flows/order-processing.yaml +0 -143
- package/examples/npm-libs/flows/simple-greeting.yaml +0 -54
- package/examples/npm-libs/graph-of-graphs/multi-stage-etl.ts +0 -307
- package/examples/npm-libs/graph-of-graphs/url-processing-pipeline.ts +0 -254
- package/examples/npm-libs/inference/azure-deployment.ts +0 -149
- package/examples/npm-libs/inference/copilot-cli.ts +0 -138
- package/examples/npm-libs/inference/data-pipeline.ts +0 -145
- package/examples/npm-libs/inference/pluggable-adapters.ts +0 -254
- package/examples/npm-libs/node/ai-conversation.ts +0 -195
- package/examples/npm-libs/node/simple-greeting.ts +0 -101
- package/examples/step-machine-cli/portfolio-tracker/cards/holdings-table.json +0 -22
- package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +0 -43
- package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +0 -15
- package/examples/step-machine-cli/portfolio-tracker/cards/price-fetch.json +0 -15
- package/examples/step-machine-cli/portfolio-tracker/fetch-prices.js +0 -48
- package/examples/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -57
- package/examples/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +0 -27
- package/examples/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +0 -25
- package/examples/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +0 -29
- package/examples/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +0 -27
- package/examples/step-machine-cli/portfolio-tracker/handlers/status-cli.js +0 -25
- package/examples/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +0 -37
- package/examples/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +0 -53
- package/examples/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +0 -35
- package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker-task-executor.cjs +0 -96
- package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +0 -227
- package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +0 -38
- package/examples/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +0 -28
- package/step-machine-cli.js +0 -407
- /package/{dist/cli → cli}/browser-api/board-live-cards-browser-adapter.js +0 -0
- /package/{dist/board-livegraph-runtime → cli/browser-api}/jsonata-sync.cjs +0 -0
- /package/{dist/cli → cli}/node/artifacts-store-cli.d.ts +0 -0
- /package/{dist/cli/node/source-cli-task-executor.d.cts → cli/node/batch-runner-cli.d.ts} +0 -0
- /package/{dist/cli → cli}/node/board-live-cards-cli.d.ts +0 -0
- /package/{dist/cli → cli}/node/card-store-cli.d.ts +0 -0
- /package/{dist/cli → cli}/node/card-store-cli.js +0 -0
- /package/{dist/card-compute → cli/node}/jsonata-sync.cjs +0 -0
- /package/{dist/cli → cli}/node/source-cli-task-executor.d.ts +0 -0
- /package/{dist/cli → cli}/node/source-cli-task-executor.js +0 -0
- /package/examples/{example-board → board}/cards/card-concentration.json +0 -0
- /package/examples/{example-board → board}/cards/card-my-identity.json +0 -0
- /package/examples/{example-board → board}/cards/card-portfolio-action.json +0 -0
- /package/examples/{example-board → board}/cards/card-portfolio-intelligence.json +0 -0
- /package/examples/{example-board → board}/cards/card-portfolio-risks.json +0 -0
- /package/examples/{example-board → board}/cards/card-rebalance-impact.json +0 -0
- /package/examples/{example-board → board}/cards/card-rebalance-sim.json +0 -0
- /package/examples/{example-board → board}/cards/cardT-market-prices.json +0 -0
- /package/examples/{example-board → board}/cards/cardT-portfolio-value.json +0 -0
- /package/examples/{example-board → board}/cards/cardT-portfolio.json +0 -0
- /package/examples/{example-board → board}/demo-chat-handler.js +0 -0
- /package/examples/{example-board → board}/scripts/copilot_wrapper.bat +0 -0
- /package/examples/{example-board → board}/scripts/copilot_wrapper_helper.ps1 +0 -0
- /package/examples/{example-board → board}/scripts/workiq_wrapper.mjs +0 -0
- /package/examples/{browser/boards/portfolio-tracker → board/test}/portfolio-tracker-sse-worker.js +0 -0
- /package/{dist → lib}/batch/index.cjs +0 -0
- /package/{dist → lib}/batch/index.d.cts +0 -0
- /package/{dist → lib}/batch/index.d.ts +0 -0
- /package/{dist → lib}/batch/index.js +0 -0
- /package/{dist/cli/browser-api → lib/board-livegraph-runtime}/jsonata-sync.cjs +0 -0
- /package/{dist → lib}/card-compute/index.d.cts +0 -0
- /package/{dist → lib}/card-compute/index.d.ts +0 -0
- /package/{dist/cli/node → lib/card-compute}/jsonata-sync.cjs +0 -0
- /package/{dist → lib}/config/index.cjs +0 -0
- /package/{dist → lib}/config/index.d.cts +0 -0
- /package/{dist → lib}/config/index.d.ts +0 -0
- /package/{dist → lib}/config/index.js +0 -0
- /package/{dist → lib}/continuous-event-graph/jsonata-sync.cjs +0 -0
- /package/{dist → lib}/event-graph/index.cjs +0 -0
- /package/{dist → lib}/event-graph/index.js +0 -0
- /package/{dist → lib}/execution-refs.cjs +0 -0
- /package/{dist → lib}/execution-refs.js +0 -0
- /package/{dist → lib}/jsonata-sync.cjs +0 -0
- /package/{dist → lib}/server-runtime/jsonata-sync.cjs +0 -0
- /package/{dist → lib}/step-machine/index.cjs +0 -0
- /package/{dist → lib}/step-machine/index.js +0 -0
- /package/{dist → lib}/step-machine-public/jsonata-sync.cjs +0 -0
- /package/{dist → lib}/stores/memory.cjs +0 -0
- /package/{dist → lib}/stores/memory.js +0 -0
- /package/{dist → lib}/types-BBhqYGhE.d.cts +0 -0
- /package/{dist → lib}/types-BBhqYGhE.d.ts +0 -0
- /package/{dist → lib}/validate-BAVzUJWa.d.ts +0 -0
- /package/{dist → lib}/validate-Dbu7ygys.d.cts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/ajv/lib/compile/codegen/code.ts","../../node_modules/ajv/lib/compile/codegen/scope.ts","../../node_modules/ajv/lib/compile/codegen/index.ts","../../node_modules/ajv/lib/compile/util.ts","../../node_modules/ajv/lib/compile/names.ts","../../node_modules/ajv/lib/compile/errors.ts","../../node_modules/ajv/lib/compile/validate/boolSchema.ts","../../node_modules/ajv/lib/compile/rules.ts","../../node_modules/ajv/lib/compile/validate/applicability.ts","../../node_modules/ajv/lib/compile/validate/dataType.ts","../../node_modules/ajv/lib/compile/validate/defaults.ts","../../node_modules/ajv/lib/vocabularies/code.ts","../../node_modules/ajv/lib/compile/validate/keyword.ts","../../node_modules/ajv/lib/compile/validate/subschema.ts","../../node_modules/fast-deep-equal/index.js","../../node_modules/json-schema-traverse/index.js","../../node_modules/ajv/lib/compile/resolve.ts","../../node_modules/ajv/lib/compile/validate/index.ts","../../node_modules/ajv/lib/runtime/validation_error.ts","../../node_modules/ajv/lib/compile/ref_error.ts","../../node_modules/ajv/lib/compile/index.ts","../../node_modules/ajv/dist/refs/data.json","../../node_modules/fast-uri/lib/utils.js","../../node_modules/fast-uri/lib/schemes.js","../../node_modules/fast-uri/index.js","../../node_modules/ajv/lib/runtime/uri.ts","../../node_modules/ajv/lib/core.ts","../../node_modules/ajv/lib/vocabularies/core/id.ts","../../node_modules/ajv/lib/vocabularies/core/ref.ts","../../node_modules/ajv/lib/vocabularies/core/index.ts","../../node_modules/ajv/lib/vocabularies/validation/limitNumber.ts","../../node_modules/ajv/lib/vocabularies/validation/multipleOf.ts","../../node_modules/ajv/lib/runtime/ucs2length.ts","../../node_modules/ajv/lib/vocabularies/validation/limitLength.ts","../../node_modules/ajv/lib/vocabularies/validation/pattern.ts","../../node_modules/ajv/lib/vocabularies/validation/limitProperties.ts","../../node_modules/ajv/lib/vocabularies/validation/required.ts","../../node_modules/ajv/lib/vocabularies/validation/limitItems.ts","../../node_modules/ajv/lib/runtime/equal.ts","../../node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts","../../node_modules/ajv/lib/vocabularies/validation/const.ts","../../node_modules/ajv/lib/vocabularies/validation/enum.ts","../../node_modules/ajv/lib/vocabularies/validation/index.ts","../../node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts","../../node_modules/ajv/lib/vocabularies/applicator/items.ts","../../node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts","../../node_modules/ajv/lib/vocabularies/applicator/items2020.ts","../../node_modules/ajv/lib/vocabularies/applicator/contains.ts","../../node_modules/ajv/lib/vocabularies/applicator/dependencies.ts","../../node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts","../../node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts","../../node_modules/ajv/lib/vocabularies/applicator/properties.ts","../../node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts","../../node_modules/ajv/lib/vocabularies/applicator/not.ts","../../node_modules/ajv/lib/vocabularies/applicator/anyOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/oneOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/allOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/if.ts","../../node_modules/ajv/lib/vocabularies/applicator/thenElse.ts","../../node_modules/ajv/lib/vocabularies/applicator/index.ts","../../node_modules/ajv/lib/vocabularies/format/format.ts","../../node_modules/ajv/lib/vocabularies/format/index.ts","../../node_modules/ajv/lib/vocabularies/metadata.ts","../../node_modules/ajv/lib/vocabularies/draft7.ts","../../node_modules/ajv/lib/vocabularies/discriminator/types.ts","../../node_modules/ajv/lib/vocabularies/discriminator/index.ts","../../node_modules/ajv/dist/refs/json-schema-draft-07.json","../../node_modules/ajv/lib/ajv.ts","../../src/step-machine/reducer.ts","../../src/stores/memory.ts","../../src/step-machine/StepMachine.ts","../../src/step-machine/loader.ts","../../schema/flow.schema.json","../../src/step-machine/schema-validator.ts"],"names":["_CodeOrName","exports","Name","s","_Code","code","item","_a","c","names","_","strs","args","i","addCodeArg","plus","str","expr","safeStringify","optimize","arg","interpolate","res","mergeExprItems","a","b","strConcat","c1","c2","x","stringify","getProperty","key","getEsmExportName","regexpCode","rx","code_1","ValueError","name","UsedValueState","Scope","prefixes","parent","nameOrPrefix","prefix","ng","_b","ValueScopeName","nameStr","value","property","itemIndex","line","ValueScope","opts","valueKey","vs","_name","keyOrRef","scopeName","values","usedValues","getCode","valueCode","nameSet","def","scope_1","code_2","scope_2","Node","_names","_constants","Def","varKind","rhs","es5","_n","constants","optimizeExpr","Assign","lhs","sideEffects","addExprNames","AssignOp","op","Label","label","Break","Throw","error","AnyCode","ParentNode","nodes","n","subtractNames","addNames","BlockNode","Root","Else","If","_If","condition","cond","e","ns","not","For","ForLoop","iteration","ForRange","from","to","ForIter","loop","iterable","Func","async","Return","Try","Catch","Finally","CodeGen","extScope","prefixOrName","constant","_constant","keyValues","thenBody","elseBody","node","forBody","arr","obj","tryBody","catchCode","finallyCode","body","nodeCount","len","toClose","funcBody","N1","N2","replaceName","canOptimize","items","par","andCode","mappend","and","orCode","or","y","codegen_1","toHash","hash","alwaysValidSchema","it","schema","checkUnknownRules","schemaHasRules","self","rules","checkStrictMode","schemaHasRulesButRef","RULES","schemaRefOrVal","topSchemaRef","schemaPath","keyword","$data","unescapeFragment","unescapeJsonPointer","escapeFragment","escapeJsonPointer","eachItem","xs","f","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","gen","toName","setEvaluated","evaluatedPropsToName","ps","props","p","snippets","useFunc","Type","getErrorPath","dataProp","dataPropType","jsPropertySyntax","isNumber","msg","mode","util_1","names_1","schemaType","reportError","cxt","errorPaths","overrideAllErrors","compositeRule","allErrors","errObj","errorObjectCode","addError","returnErrors","reportExtraError","resetErrorsCount","errsCount","extendErrors","schemaValue","data","err","errs","validateName","schemaEnv","E","createErrors","errorObject","errorInstancePath","errorSchemaPath","extraErrorProps","errorPath","instancePath","instPath","errSchemaPath","parentSchema","schPath","params","message","propertyName","errors_1","boolError","topBoolOrEmptySchema","falseSchemaError","boolOrEmptySchema","valid","_jsonTypes","jsonTypes","isJSONType","getRules","groups","schemaHasRulesForType","type","group","shouldUseGroup","rule","shouldUseRule","kwd","rules_1","applicability_1","DataType","getSchemaTypes","types","getJSONTypes","ts","coerceAndCheckDataType","coerceTo","coerceToTypes","checkTypes","wrongType","checkDataTypes","coerceData","reportTypeError","COERCIBLE","coerceTypes","t","dataType","coerced","coerceSpecificType","assignParentData","parentData","parentDataProperty","checkDataType","strictNums","correct","EQ","numCond","_cond","dataTypes","notObj","typeError","getTypeErrorContext","schemaCode","assignDefaults","ty","properties","assignDefault","sch","prop","defaultValue","childData","util_2","checkReportMissingProp","noPropertyInData","checkMissingProp","missing","reportMissingProp","hasPropFunc","isOwnProperty","propertyInData","ownProperties","allSchemaProperties","schemaMap","schemaProperties","callValidateCode","func","context","passSchema","dataAndSchema","valCxt","newRegExp","usePattern","pattern","u","regExp","validateArray","validArr","validateItems","notValid","validateUnion","schValid","_sch","schCxt","macroKeywordCode","macroSchema","schemaRef","useKeyword","funcKeywordCode","checkAsyncKeyword","validate","validateRef","validateKeyword","assignValid","modifyData","reportErrs","ruleErrs","validateAsync","validateSync","addErrs","validateErrs","_await","passCxt","errors","result","validSchemaType","allowUndefined","st","validateKeywordUsage","deps","getSubschema","schemaProp","extendSubschemaData","subschema","dpType","dataPathArr","nextData","dataContextProps","_nextData","extendSubschemaMode","jtdDiscriminator","jtdMetadata","require_fast_deep_equal","__commonJSMin","module","equal","length","keys","require_json_schema_traverse","traverse","cb","pre","post","_traverse","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeJsonPtr","SIMPLE_INLINED","inlineRef","limit","hasRef","countKeys","REF_KEYWORDS","count","getFullPath","resolver","id","normalize","normalizeId","_getFullPath","TRAILING_SLASH_HASH","resolveUrl","baseId","ANCHOR","getSchemaRefs","schemaId","uriResolver","schId","baseIds","pathPrefix","localRefs","schemaRefs","fullPath","innerBaseId","addRef","addAnchor","ref","_resolve","ambiguos","schOrRef","checkAmbiguosRef","anchor","sch1","sch2","boolSchema_1","dataType_1","dataType_2","defaults_1","keyword_1","subschema_1","resolve_1","validateFunctionCode","isSchemaObj","checkKeywords","schemaCxtHasRules","topSchemaObjCode","validateFunction","funcSourceUrl","destructureValCxtES5","destructureValCxt","commentKeyword","checkNoDefault","resetEvaluated","typeAndKeywords","returnResults","subschemaCode","subSchemaObjCode","updateContext","checkAsyncSchema","checkRefsAndKeywords","schemaKeywords","checkedTypes","rootName","ValidationError","assignEvaluated","evaluated","typeErrors","keywordCode","checkStrictTypes","groupKeywords","iterateKeywords","useDefaults","checkContextTypes","checkMultipleTypes","checkKeywordTypes","includesType","strictTypesError","narrowSchemaTypes","hasApplicableType","schTs","kwdT","withTypes","KeywordCxt","getData","successAction","failAction","append","errorParams","assign","codeBlock","$dataValid","wrong$DataType","invalid$DataSchema","validateSchemaRef","appl","nextContext","schemaCxt","ruleType","JSON_POINTER","RELATIVE_JSON_POINTER","dataLevel","dataNames","jsonPointer","matches","up","errorMsg","segments","segment","pointerType","MissingRefError","validation_error_1","validate_1","SchemaEnv","env","compileSchema","getCompilingSchema","rootId","lines","_ValidationError","sourceCode","validateCode","resolveRef","root","schOrFunc","resolve","inlineOrCompile","schEnv","sameSchemaEnv","s1","s2","resolveSchema","refPath","getJsonPointer","PREVENT_SCOPE_CHANGE","parsedRef","part","partSchema","$ref","require_data","require_utils","isUUID","isIPv4","stringArrayToHexStripped","input","acc","nonSimpleDomain","consumeIsZone","buffer","consumeHextets","address","output","hex","getIPV6","tokenCount","endipv6Encountered","endIpv6","consume","cursor","normalizeIPv6","host","findToken","ipv6","newHost","escapedHost","token","ind","removeDotSegments","path","nextSlash","normalizeComponentEncoding","component","esc","recomposeAuthority","uriTokens","ipV6res","require_schemes","URN_REG","supportedSchemeNames","isValidSchemeName","wsIsSecure","wsComponent","httpParse","httpSerialize","secure","wsParse","wsSerialize","query","urnParse","urnComponent","options","scheme","urnScheme","schemeHandler","getSchemeHandler","urnSerialize","nid","uriComponent","nss","urnuuidParse","uuidComponent","urnuuidSerialize","http","https","ws","wss","urn","urnuuid","SCHEMES","require_fast_uri","uri","serialize","parse","baseURI","relativeURI","schemelessOptions","resolved","resolveComponent","base","relative","skipNormalization","target","uriA","uriB","cmpts","authority","URI_PARSE","parsed","isIP","ipv6result","fastUri","ref_error_1","compile_1","codegen_2","$dataRefSchema","uri_1","defaultRegExp","flags","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","deprecatedOptions","MAX_EXPRESSION","requiredOptions","o","_optz","_c","_d","_f","_e","_h","_g","_k","_j","_m","_l","_p","_o","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_0","Ajv","getLogger","formatOpt","checkOptions","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addInitialSchemas","meta","_dataRefSchema","schemaKeyRef","v","_meta","loadSchema","runCompileAsync","_schema","loadMetaSchema","_compileAsync","checkLoaded","loadMissingSchema","missingRef","_loadSchema","_validateSchema","throwOrLogError","$schema","keyRef","getSchEnv","cacheKey","definitions","kwdOrDef","checkKeyword","addRule","keywordMetaschema","definition","k","format","separator","dataVar","text","metaSchema","keywordsJsonPointers","keywords","seg","schemaOrData","schemas","regex","validateSchema","addSchema","currentOpts","checkOpts","log","opt","optsSchemas","defs","metaOpts","noLogs","logger","KEYWORD_NAME","ruleGroup","addBeforeRule","before","_rule","$dataRef","callRootRef","schOrEnv","callValidate","inlineRefSchema","callRef","getValidate","schName","$async","callAsyncRef","callSyncRef","addEvaluatedFrom","addErrorsFrom","source","schEvaluated","id_1","ref_1","core","ops","KWDs","prec","invalid","ucs2length","pos","ucs2length_1","comp","regExpCode","missingProperty","useLoop","allErrorsMode","exitOnErrorMode","definedProperties","requiredKey","loopAllRequired","loopUntilMissing","equal_1","j","itemTypes","validateUniqueItems","loopN","loopN2","indices","eql","outer","getEql","loopEnum","vSchema","equalCode","limitNumber_1","multipleOf_1","limitLength_1","pattern_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","validation","validateAdditionalItems","validateTuple","extraItems","schArr","checkStrictTuple","l","fullTuple","items_1","additionalItems_1","prefixItems","min","max","minContains","maxContains","validateItemsWithCount","checkLimits","_valid","block","depsCount","property_ies","propDeps","schDeps","splitDependencies","validatePropertyDeps","validateSchemaDeps","propertyDeps","schemaDeps","hasProperty","depProp","patProps","checkAdditionalProperties","additionalPropertyCode","isAdditional","definedProp","propsSchema","deleteAdditional","applyAdditionalSchema","additionalProperties_1","allProps","hasDefault","applyPropertySchema","patterns","alwaysValidPatterns","checkProperties","validatePatternProperties","pat","checkMatchingProperties","validateProperties","alwaysValid","passing","validateOneOf","hasThen","hasSchema","hasElse","validateIf","ifClause","validateClause","prefixItems_1","items2020_1","contains_1","dependencies_1","propertyNames_1","properties_1","patternProperties_1","not_1","anyOf_1","oneOf_1","allOf_1","if_1","thenElse_1","getApplicator","draft2020","applicator","validate$DataFormat","validateFormat","fmts","fDef","fType","unknownFmt","invalidFmt","callFormat","validData","formatDef","unknownFormat","fmtType","fmtRef","getFormat","validCondition","unknownMsg","fmtDef","fmt","format_1","core_1","validation_1","applicator_1","metadata_1","draft7Vocabularies","DiscrError","types_1","discrError","tagName","tag","oneOf","validateMapping","mapping","getMapping","tagValue","applyTagSchema","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","required","addMapping","require_json_schema_draft_07","draft7_1","discriminator_1","draft7MetaSchema","META_SUPPORT_DATA","META_SCHEMA_ID","applyStepResult","flow","state","stepName","stepResult","stepConfig","retryCount","nextStep","isTerminal","checkCircuitBreaker","computeStepInput","allData","extractReturnData","returnArtifacts","createInitialState","runId","now","MemoryStore","runData","generateRunId","r","StepMachine","handlers","settings","steps","terminal_states","eventType","listener","event","typeListeners","ms","initialData","runState","updated","maxSteps","timeoutMs","current","iterations","terminalState","cbResult","handler","reducerResult","delay","createStepMachine","parseStepFlowYaml","yamlString","loadStepFlowFromUrl","url","response","contentType","loadStepFlowFromFile","filePath","validateStepFlowConfig","step","terminals","config","loadStepFlow","flow_schema_default","import_ajv","_compiled","getValidator","ajv","addFormats","validateFlowSchema"],"mappings":"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","file":"index.cjs","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class _CodeOrName {\n abstract readonly str: string\n abstract readonly names: UsedNames\n abstract toString(): string\n abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n readonly str: string\n constructor(s: string) {\n super()\n if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n this.str = s\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n return false\n }\n\n get names(): UsedNames {\n return {[this.str]: 1}\n }\n}\n\nexport class _Code extends _CodeOrName {\n readonly _items: readonly CodeItem[]\n private _str?: string\n private _names?: UsedNames\n\n constructor(code: string | readonly CodeItem[]) {\n super()\n this._items = typeof code === \"string\" ? [code] : code\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n if (this._items.length > 1) return false\n const item = this._items[0]\n return item === \"\" || item === '\"\"'\n }\n\n get str(): string {\n return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n }\n\n get names(): UsedNames {\n return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n return names\n }, {}))\n }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record<string, number | undefined>\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n const code: CodeItem[] = [strs[0]]\n let i = 0\n while (i < args.length) {\n addCodeArg(code, args[i])\n code.push(strs[++i])\n }\n return new _Code(code)\n}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n const expr: CodeItem[] = [safeStringify(strs[0])]\n let i = 0\n while (i < args.length) {\n expr.push(plus)\n addCodeArg(expr, args[i])\n expr.push(plus, safeStringify(strs[++i]))\n }\n optimize(expr)\n return new _Code(expr)\n}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n if (arg instanceof _Code) code.push(...arg._items)\n else if (arg instanceof Name) code.push(arg)\n else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\n let i = 1\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1])\n if (res !== undefined) {\n expr.splice(i - 1, 3, res)\n continue\n }\n expr[i++] = \"+\"\n }\n i++\n }\n}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n if (b === '\"\"') return a\n if (a === '\"\"') return b\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"') return\n if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n return\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n return new _Code(`${key}`)\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n return new _Code(rx.toString())\n}\n","import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n prefix: string\n index: number\n}\n\nexport interface NameValue {\n ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n readonly value?: NameValue\n constructor(name: ValueScopeName) {\n super(`CodeGen: \"code\" for ${name} not defined`)\n this.value = name.value\n }\n}\n\ninterface ScopeOptions {\n prefixes?: Set<string>\n parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n scope: ScopeStore\n es5?: boolean\n lines?: boolean\n}\n\nexport type ScopeStore = Record<string, ValueReference[] | undefined>\n\ntype ScopeValues = {\n [Prefix in string]?: Map<unknown, ValueScopeName>\n}\n\nexport type ScopeValueSets = {\n [Prefix in string]?: Set<ValueScopeName>\n}\n\nexport enum UsedValueState {\n Started,\n Completed,\n}\n\nexport type UsedScopeValues = {\n [Prefix in string]?: Map<ValueScopeName, UsedValueState | undefined>\n}\n\nexport const varKinds = {\n const: new Name(\"const\"),\n let: new Name(\"let\"),\n var: new Name(\"var\"),\n}\n\nexport class Scope {\n protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n protected readonly _prefixes?: Set<string>\n protected readonly _parent?: Scope\n\n constructor({prefixes, parent}: ScopeOptions = {}) {\n this._prefixes = prefixes\n this._parent = parent\n }\n\n toName(nameOrPrefix: Name | string): Name {\n return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n }\n\n name(prefix: string): Name {\n return new Name(this._newName(prefix))\n }\n\n protected _newName(prefix: string): string {\n const ng = this._names[prefix] || this._nameGroup(prefix)\n return `${prefix}${ng.index++}`\n }\n\n private _nameGroup(prefix: string): NameGroup {\n if (this._parent?._prefixes?.has(prefix) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`)\n }\n return (this._names[prefix] = {prefix, index: 0})\n }\n}\n\ninterface ScopePath {\n property: string\n itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n readonly prefix: string\n value?: NameValue\n scopePath?: Code\n\n constructor(prefix: string, nameStr: string) {\n super(nameStr)\n this.prefix = prefix\n }\n\n setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n this.value = value\n this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n protected readonly _values: ScopeValues = {}\n protected readonly _scope: ScopeStore\n readonly opts: VSOptions\n\n constructor(opts: ValueScopeOptions) {\n super(opts)\n this._scope = opts.scope\n this.opts = {...opts, _n: opts.lines ? line : nil}\n }\n\n get(): ScopeStore {\n return this._scope\n }\n\n name(prefix: string): ValueScopeName {\n return new ValueScopeName(prefix, this._newName(prefix))\n }\n\n value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n const name = this.toName(nameOrPrefix) as ValueScopeName\n const {prefix} = name\n const valueKey = value.key ?? value.ref\n let vs = this._values[prefix]\n if (vs) {\n const _name = vs.get(valueKey)\n if (_name) return _name\n } else {\n vs = this._values[prefix] = new Map()\n }\n vs.set(valueKey, name)\n\n const s = this._scope[prefix] || (this._scope[prefix] = [])\n const itemIndex = s.length\n s[itemIndex] = value.ref\n name.setValue(value, {property: prefix, itemIndex})\n return name\n }\n\n getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n const vs = this._values[prefix]\n if (!vs) return\n return vs.get(keyOrRef)\n }\n\n scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n return this._reduceValues(values, (name: ValueScopeName) => {\n if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return _`${scopeName}${name.scopePath}`\n })\n }\n\n scopeCode(\n values: ScopeValues | ScopeValueSets = this._values,\n usedValues?: UsedScopeValues,\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n return this._reduceValues(\n values,\n (name: ValueScopeName) => {\n if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return name.value.code\n },\n usedValues,\n getCode\n )\n }\n\n private _reduceValues(\n values: ScopeValues | ScopeValueSets,\n valueCode: (n: ValueScopeName) => Code | undefined,\n usedValues: UsedScopeValues = {},\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n let code: Code = nil\n for (const prefix in values) {\n const vs = values[prefix]\n if (!vs) continue\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n vs.forEach((name: ValueScopeName) => {\n if (nameSet.has(name)) return\n nameSet.set(name, UsedValueState.Started)\n let c = valueCode(name)\n if (c) {\n const def = this.opts.es5 ? varKinds.var : varKinds.const\n code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n } else if ((c = getCode?.(name))) {\n code = _`${code}${c}${this.opts._n}`\n } else {\n throw new ValueError(name)\n }\n nameSet.set(name, UsedValueState.Completed)\n })\n }\n return code\n }\n}\n","import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n GT: new _Code(\">\"),\n GTE: new _Code(\">=\"),\n LT: new _Code(\"<\"),\n LTE: new _Code(\"<=\"),\n EQ: new _Code(\"===\"),\n NEQ: new _Code(\"!==\"),\n NOT: new _Code(\"!\"),\n OR: new _Code(\"||\"),\n AND: new _Code(\"&&\"),\n ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n abstract readonly names: UsedNames\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n return this\n }\n\n optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n return this\n }\n\n // get count(): number {\n // return 1\n // }\n}\n\nclass Def extends Node {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private rhs?: SafeExpr\n ) {\n super()\n }\n\n render({es5, _n}: CGOptions): string {\n const varKind = es5 ? varKinds.var : this.varKind\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n return `${varKind} ${this.name}${rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!names[this.name.str]) return\n if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n }\n}\n\nclass Assign extends Node {\n constructor(\n readonly lhs: Code,\n public rhs: SafeExpr,\n private readonly sideEffects?: boolean\n ) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} = ${this.rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n return addExprNames(names, this.rhs)\n }\n}\n\nclass AssignOp extends Assign {\n constructor(\n lhs: Code,\n private readonly op: Code,\n rhs: SafeExpr,\n sideEffects?: boolean\n ) {\n super(lhs, rhs, sideEffects)\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n }\n}\n\nclass Label extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label: Name) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.label}:` + _n\n }\n}\n\nclass Break extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label?: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n const label = this.label ? ` ${this.label}` : \"\"\n return `break${label};` + _n\n }\n}\n\nclass Throw extends Node {\n constructor(readonly error: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `throw ${this.error};` + _n\n }\n\n get names(): UsedNames {\n return this.error.names\n }\n}\n\nclass AnyCode extends Node {\n constructor(private code: SafeExpr) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.code};` + _n\n }\n\n optimizeNodes(): this | undefined {\n return `${this.code}` ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n this.code = optimizeExpr(this.code, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.code instanceof _CodeOrName ? this.code.names : {}\n }\n}\n\nabstract class ParentNode extends Node {\n constructor(readonly nodes: ChildNode[] = []) {\n super()\n }\n\n render(opts: CGOptions): string {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n }\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n const n = nodes[i].optimizeNodes()\n if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n else if (n) nodes[i] = n\n else nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i]\n if (n.optimizeNames(names, constants)) continue\n subtractNames(names, n.names)\n nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n get names(): UsedNames {\n return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n }\n\n // get count(): number {\n // return this.nodes.reduce((c, n) => c + n.count, 1)\n // }\n}\n\nabstract class BlockNode extends ParentNode {\n render(opts: CGOptions): string {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n static readonly kind = \"if\"\n else?: If | Else\n constructor(\n private condition: Code | boolean,\n nodes?: ChildNode[]\n ) {\n super(nodes)\n }\n\n render(opts: CGOptions): string {\n let code = `if(${this.condition})` + super.render(opts)\n if (this.else) code += \"else \" + this.else.render(opts)\n return code\n }\n\n optimizeNodes(): If | ChildNode[] | undefined {\n super.optimizeNodes()\n const cond = this.condition\n if (cond === true) return this.nodes // else is ignored here\n let e = this.else\n if (e) {\n const ns = e.optimizeNodes()\n e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)\n }\n if (e) {\n if (cond === false) return e instanceof If ? e : e.nodes\n if (this.nodes.length) return this\n return new If(not(cond), e instanceof If ? [e] : e.nodes)\n }\n if (cond === false || !this.nodes.length) return undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n this.else = this.else?.optimizeNames(names, constants)\n if (!(super.optimizeNames(names, constants) || this.else)) return\n this.condition = optimizeExpr(this.condition, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n addExprNames(names, this.condition)\n if (this.else) addNames(names, this.else.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.else?.count || 0)\n // }\n}\n\nabstract class For extends BlockNode {\n static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n constructor(private iteration: Code) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.iteration})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iteration = optimizeExpr(this.iteration, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iteration.names)\n }\n}\n\nclass ForRange extends For {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private readonly from: SafeExpr,\n private readonly to: SafeExpr\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const varKind = opts.es5 ? varKinds.var : this.varKind\n const {name, from, to} = this\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n }\n\n get names(): UsedNames {\n const names = addExprNames(super.names, this.from)\n return addExprNames(names, this.to)\n }\n}\n\nclass ForIter extends For {\n constructor(\n private readonly loop: \"of\" | \"in\",\n private readonly varKind: Name,\n private readonly name: Name,\n private iterable: Code\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iterable = optimizeExpr(this.iterable, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iterable.names)\n }\n}\n\nclass Func extends BlockNode {\n static readonly kind = \"func\"\n constructor(\n public name: Name,\n public args: Code,\n public async?: boolean\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const _async = this.async ? \"async \" : \"\"\n return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n }\n}\n\nclass Return extends ParentNode {\n static readonly kind = \"return\"\n\n render(opts: CGOptions): string {\n return \"return \" + super.render(opts)\n }\n}\n\nclass Try extends BlockNode {\n catch?: Catch\n finally?: Finally\n\n render(opts: CGOptions): string {\n let code = \"try\" + super.render(opts)\n if (this.catch) code += this.catch.render(opts)\n if (this.finally) code += this.finally.render(opts)\n return code\n }\n\n optimizeNodes(): this {\n super.optimizeNodes()\n this.catch?.optimizeNodes() as Catch | undefined\n this.finally?.optimizeNodes() as Finally | undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n super.optimizeNames(names, constants)\n this.catch?.optimizeNames(names, constants)\n this.finally?.optimizeNames(names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n if (this.catch) addNames(names, this.catch.names)\n if (this.finally) addNames(names, this.finally.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n // }\n}\n\nclass Catch extends BlockNode {\n static readonly kind = \"catch\"\n constructor(readonly error: Name) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `catch(${this.error})` + super.render(opts)\n }\n}\n\nclass Finally extends BlockNode {\n static readonly kind = \"finally\"\n render(opts: CGOptions): string {\n return \"finally\" + super.render(opts)\n }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n | typeof If\n | typeof Else\n | typeof For\n | typeof Func\n | typeof Return\n | typeof Catch\n | typeof Finally\n\ntype Constants = Record<string, SafeExpr | undefined>\n\nexport interface CodeGenOptions {\n es5?: boolean\n lines?: boolean\n ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n readonly _scope: Scope\n readonly _extScope: ValueScope\n readonly _values: ScopeValueSets = {}\n private readonly _nodes: ParentNode[]\n private readonly _blockStarts: number[] = []\n private readonly _constants: Constants = {}\n private readonly opts: CGOptions\n\n constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n this._extScope = extScope\n this._scope = new Scope({parent: extScope})\n this._nodes = [new Root()]\n }\n\n toString(): string {\n return this._root.render(this.opts)\n }\n\n // returns unique name in the internal scope\n name(prefix: string): Name {\n return this._scope.name(prefix)\n }\n\n // reserves unique name in the external scope\n scopeName(prefix: string): ValueScopeName {\n return this._extScope.name(prefix)\n }\n\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\n const name = this._extScope.value(prefixOrName, value)\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())\n vs.add(name)\n return name\n }\n\n getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n return this._extScope.getValue(prefix, keyOrRef)\n }\n\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName: Name): Code {\n return this._extScope.scopeRefs(scopeName, this._values)\n }\n\n scopeCode(): Code {\n return this._extScope.scopeCode(this._values)\n }\n\n private _def(\n varKind: Name,\n nameOrPrefix: Name | string,\n rhs?: SafeExpr,\n constant?: boolean\n ): Name {\n const name = this._scope.toName(nameOrPrefix)\n if (rhs !== undefined && constant) this._constants[name.str] = rhs\n this._leafNode(new Def(varKind, name, rhs))\n return name\n }\n\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n }\n\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n }\n\n // `var` declaration with optional assignment\n var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n }\n\n // assignment code\n assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n return this._leafNode(new Assign(lhs, rhs, sideEffects))\n }\n\n // `+=` code\n add(lhs: Code, rhs: SafeExpr): CodeGen {\n return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n }\n\n // appends passed SafeExpr to code or executes Block\n code(c: Block | SafeExpr): CodeGen {\n if (typeof c == \"function\") c()\n else if (c !== nil) this._leafNode(new AnyCode(c))\n return this\n }\n\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n const code: CodeItem[] = [\"{\"]\n for (const [key, value] of keyValues) {\n if (code.length > 1) code.push(\",\")\n code.push(key)\n if (key !== value || this.opts.es5) {\n code.push(\":\")\n addCodeArg(code, value)\n }\n }\n code.push(\"}\")\n return new _Code(code)\n }\n\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n this._blockNode(new If(condition))\n\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf()\n } else if (thenBody) {\n this.code(thenBody).endIf()\n } else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body')\n }\n return this\n }\n\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition: Code | boolean): CodeGen {\n return this._elseNode(new If(condition))\n }\n\n // `else` clause - only valid after `if` or `else if` clauses\n else(): CodeGen {\n return this._elseNode(new Else())\n }\n\n // end `if` statement (needed if gen.if was used only with condition)\n endIf(): CodeGen {\n return this._endBlockNode(If, Else)\n }\n\n private _for(node: For, forBody?: Block): CodeGen {\n this._blockNode(node)\n if (forBody) this.code(forBody).endFor()\n return this\n }\n\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration: Code, forBody?: Block): CodeGen {\n return this._for(new ForLoop(iteration), forBody)\n }\n\n // `for` statement for a range of values\n forRange(\n nameOrPrefix: Name | string,\n from: SafeExpr,\n to: SafeExpr,\n forBody: (index: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n }\n\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(\n nameOrPrefix: Name | string,\n iterable: Code,\n forBody: (item: Name) => void,\n varKind: Code = varKinds.const\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n if (this.opts.es5) {\n const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n this.var(name, _`${arr}[${i}]`)\n forBody(name)\n })\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n }\n\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(\n nameOrPrefix: Name | string,\n obj: Code,\n forBody: (item: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n ): CodeGen {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)\n }\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name))\n }\n\n // end `for` loop\n endFor(): CodeGen {\n return this._endBlockNode(For)\n }\n\n // `label` statement\n label(label: Name): CodeGen {\n return this._leafNode(new Label(label))\n }\n\n // `break` statement\n break(label?: Code): CodeGen {\n return this._leafNode(new Break(label))\n }\n\n // `return` statement\n return(value: Block | SafeExpr): CodeGen {\n const node = new Return()\n this._blockNode(node)\n this.code(value)\n if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n return this._endBlockNode(Return)\n }\n\n // `try` statement\n try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n if (!catchCode && !finallyCode) throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"')\n const node = new Try()\n this._blockNode(node)\n this.code(tryBody)\n if (catchCode) {\n const error = this.name(\"e\")\n this._currNode = node.catch = new Catch(error)\n catchCode(error)\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally()\n this.code(finallyCode)\n }\n return this._endBlockNode(Catch, Finally)\n }\n\n // `throw` statement\n throw(error: Code): CodeGen {\n return this._leafNode(new Throw(error))\n }\n\n // start self-balancing block\n block(body?: Block, nodeCount?: number): CodeGen {\n this._blockStarts.push(this._nodes.length)\n if (body) this.code(body).endBlock(nodeCount)\n return this\n }\n\n // end the current self-balancing block\n endBlock(nodeCount?: number): CodeGen {\n const len = this._blockStarts.pop()\n if (len === undefined) throw new Error(\"CodeGen: not in self-balancing block\")\n const toClose = this._nodes.length - len\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)\n }\n this._nodes.length = len\n return this\n }\n\n // `function` heading (or definition if funcBody is passed)\n func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n this._blockNode(new Func(name, args, async))\n if (funcBody) this.code(funcBody).endFunc()\n return this\n }\n\n // end function definition\n endFunc(): CodeGen {\n return this._endBlockNode(Func)\n }\n\n optimize(n = 1): void {\n while (n-- > 0) {\n this._root.optimizeNodes()\n this._root.optimizeNames(this._root.names, this._constants)\n }\n }\n\n private _leafNode(node: LeafNode): CodeGen {\n this._currNode.nodes.push(node)\n return this\n }\n\n private _blockNode(node: StartBlockNode): void {\n this._currNode.nodes.push(node)\n this._nodes.push(node)\n }\n\n private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\n const n = this._currNode\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop()\n return this\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`)\n }\n\n private _elseNode(node: If | Else): CodeGen {\n const n = this._currNode\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"')\n }\n this._currNode = n.else = node\n return this\n }\n\n private get _root(): Root {\n return this._nodes[0] as Root\n }\n\n private get _currNode(): ParentNode {\n const ns = this._nodes\n return ns[ns.length - 1]\n }\n\n private set _currNode(node: ParentNode) {\n const ns = this._nodes\n ns[ns.length - 1] = node\n }\n\n // get nodeCount(): number {\n // return this._root.count\n // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr<T extends SafeExpr | Code>(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n if (expr instanceof Name) return replaceName(expr)\n if (!canOptimize(expr)) return expr\n return new _Code(\n expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n if (c instanceof Name) c = replaceName(c)\n if (c instanceof _Code) items.push(...c._items)\n else items.push(c)\n return items\n }, [])\n )\n\n function replaceName(n: Name): SafeExpr {\n const c = constants[n.str]\n if (c === undefined || names[n.str] !== 1) return n\n delete names[n.str]\n return c\n }\n\n function canOptimize(e: SafeExpr): e is _Code {\n return (\n e instanceof _Code &&\n e._items.some(\n (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n )\n )\n }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not<T extends Code | SafeExpr>(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n return x instanceof Name ? x : _`(${x})`\n}\n","import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash<T extends string = string>(arr: T[]): {[K in T]?: true} {\n const hash: {[K in T]?: true} = {}\n for (const item of arr) hash[item] = true\n return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n if (typeof schema == \"boolean\") return schema\n if (Object.keys(schema).length === 0) return true\n checkUnknownRules(it, schema)\n return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n const {opts, self} = it\n if (!opts.strictSchema) return\n if (typeof schema === \"boolean\") return\n const rules = self.RULES.keywords\n for (const key in schema) {\n if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n }\n}\n\nexport function schemaHasRules(\n schema: AnySchema,\n rules: {[Key in string]?: boolean | Rule}\n): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (rules[key]) return true\n return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n return false\n}\n\nexport function schemaRefOrVal(\n {topSchemaRef, schemaPath}: SchemaObjCxt,\n schema: unknown,\n keyword: string,\n $data?: string | false\n): Code | number | boolean {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n if (typeof schema == \"string\") return _`${schema}`\n }\n return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n if (typeof str == \"number\") return `${str}`\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem<T>(xs: T | T[], f: (x: T) => void): void {\n if (Array.isArray(xs)) {\n for (const x of xs) f(x)\n } else {\n f(xs)\n }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc<T extends SomeEvaluated> = (\n gen: CodeGen,\n from: Name | T,\n to: Name | Exclude<T, true> | undefined,\n toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs<T extends SomeEvaluated> {\n mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n mergeToName: (gen: CodeGen, from: T, to: Name) => void\n mergeValues: (from: T, to: Exclude<T, true>) => T\n resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated<T extends SomeEvaluated>({\n mergeNames,\n mergeToName,\n mergeValues,\n resultToName,\n}: MakeMergeFuncArgs<T>): MergeEvaluatedFunc<T> {\n return (gen, from, to, toName) => {\n const res =\n to === undefined\n ? from\n : to instanceof Name\n ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to)\n return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n }\n}\n\ninterface MergeEvaluated {\n props: MergeEvaluatedFunc<EvaluatedProperties>\n items: MergeEvaluatedFunc<EvaluatedItems>\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n gen.if(\n _`${from} === true`,\n () => gen.assign(to, true),\n () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n )\n }),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true)\n } else {\n gen.assign(to, _`${to} || {}`)\n setEvaluated(gen, to, from)\n }\n }),\n mergeValues: (from, to) => (from === true ? true : {...from, ...to}),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () =>\n gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n if (ps === true) return gen.var(\"props\", true)\n const props = gen.var(\"props\", _`{}`)\n if (ps !== undefined) setEvaluated(gen, props, ps)\n return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n })\n}\n\nexport enum Type {\n Num,\n Str,\n}\n\nexport function getErrorPath(\n dataProp: Name | string | number,\n dataPropType?: Type,\n jsPropertySyntax?: boolean\n): Code | string {\n // let path\n if (dataProp instanceof Name) {\n const isNumber = dataPropType === Type.Num\n return jsPropertySyntax\n ? isNumber\n ? _`\"[\" + ${dataProp} + \"]\"`\n : _`\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? _`\"/\" + ${dataProp}`\n : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n it: SchemaCxt,\n msg: string,\n mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n if (!mode) return\n msg = `strict mode: ${msg}`\n if (mode === true) throw new Error(msg)\n it.self.logger.warn(msg)\n}\n","import {Name} from \"./codegen\"\n\nconst names = {\n // validation function arguments\n data: new Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new Name(\"instancePath\"),\n parentData: new Name(\"parentData\"),\n parentDataProperty: new Name(\"parentDataProperty\"),\n rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new Name(\"vErrors\"), // null or array of validation errors\n errors: new Name(\"errors\"), // counter of validation errors\n this: new Name(\"this\"),\n // \"globals\"\n self: new Name(\"self\"),\n scope: new Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new Name(\"json\"),\n jsonPos: new Name(\"jsonPos\"),\n jsonLen: new Name(\"jsonLen\"),\n jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n","import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n message: ({keyword, schemaType}) =>\n schemaType\n ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n instancePath?: Code\n schemaPath?: string\n parentSchema?: boolean\n}\n\nexport function reportError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths,\n overrideAllErrors?: boolean\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n if (overrideAllErrors ?? (compositeRule || allErrors)) {\n addError(gen, errObj)\n } else {\n returnErrors(it, _`[${errObj}]`)\n }\n}\n\nexport function reportExtraError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n addError(gen, errObj)\n if (!(compositeRule || allErrors)) {\n returnErrors(it, N.vErrors)\n }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n gen.assign(N.errors, errsCount)\n gen.if(_`${N.vErrors} !== null`, () =>\n gen.if(\n errsCount,\n () => gen.assign(_`${N.vErrors}.length`, errsCount),\n () => gen.assign(N.vErrors, null)\n )\n )\n}\n\nexport function extendErrors({\n gen,\n keyword,\n schemaValue,\n data,\n errsCount,\n it,\n}: KeywordErrorCxt): void {\n /* istanbul ignore if */\n if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n const err = gen.name(\"err\")\n gen.forRange(\"i\", errsCount, N.errors, (i) => {\n gen.const(err, _`${N.vErrors}[${i}]`)\n gen.if(_`${err}.instancePath === undefined`, () =>\n gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n )\n gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n if (it.opts.verbose) {\n gen.assign(_`${err}.schema`, schemaValue)\n gen.assign(_`${err}.data`, data)\n }\n })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n const err = gen.const(\"err\", errObj)\n gen.if(\n _`${N.vErrors} === null`,\n () => gen.assign(N.vErrors, _`[${err}]`),\n _`${N.vErrors}.push(${err})`\n )\n gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n const {gen, validateName, schemaEnv} = it\n if (schemaEnv.$async) {\n gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n } else {\n gen.assign(_`${validateName}.errors`, errs)\n gen.return(false)\n }\n}\n\nconst E = {\n keyword: new Name(\"keyword\"),\n schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n params: new Name(\"params\"),\n propertyName: new Name(\"propertyName\"),\n message: new Name(\"message\"),\n schema: new Name(\"schema\"),\n parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths?: ErrorPaths\n): Code {\n const {createErrors} = cxt.it\n if (createErrors === false) return _`{}`\n return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths: ErrorPaths = {}\n): Code {\n const {gen, it} = cxt\n const keyValues: [Name, SafeExpr | string][] = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ]\n extraErrorProps(cxt, error, keyValues)\n return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n const instPath = instancePath\n ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n : errorPath\n return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n if (schemaPath) {\n schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n }\n return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n cxt: KeywordErrorCxt,\n {params, message}: KeywordErrorDefinition,\n keyValues: [Name, SafeExpr | string][]\n): void {\n const {keyword, data, schemaValue, it} = cxt\n const {opts, propertyName, topSchemaRef, schemaPath} = it\n keyValues.push(\n [E.keyword, keyword],\n [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n )\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n }\n if (opts.verbose) {\n keyValues.push(\n [E.schema, schemaValue],\n [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n [N.data, data]\n )\n }\n if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n","import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n const {gen, schema, validateName} = it\n if (schema === false) {\n falseSchemaError(it, false)\n } else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(N.data)\n } else {\n gen.assign(_`${validateName}.errors`, null)\n gen.return(true)\n }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n const {gen, schema} = it\n if (schema === false) {\n gen.var(valid, false) // TODO var\n falseSchemaError(it)\n } else {\n gen.var(valid, true) // TODO var\n }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n const {gen, data} = it\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt: KeywordErrorCxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n }\n reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n","import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = (typeof _jsonTypes)[number]\n\nconst jsonTypes: Set<string> = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n rules: RuleGroup[]\n post: RuleGroup\n all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n types: ValidationTypes\n}\n\nexport interface RuleGroup {\n type?: JSONType\n rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n keyword: string\n definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\n number: {type: \"number\", rules: []},\n string: {type: \"string\", rules: []},\n array: {type: \"array\", rules: []},\n object: {type: \"object\", rules: []},\n }\n return {\n types: {...groups, integer: true, boolean: true, null: true},\n rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object],\n post: {rules: []},\n all: {},\n keywords: {},\n }\n}\n","import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n {schema, self}: SchemaObjCxt,\n type: JSONType\n): boolean | undefined {\n const group = self.RULES.types[type]\n return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n return (\n schema[rule.keyword] !== undefined ||\n rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n )\n}\n","import type {\n KeywordErrorDefinition,\n KeywordErrorCxt,\n ErrorObject,\n AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n Correct,\n Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n const types = getJSONTypes(schema.type)\n const hasNull = types.includes(\"null\")\n if (hasNull) {\n if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\n } else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"')\n }\n if (schema.nullable === true) types.push(\"null\")\n }\n return types\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n if (types.every(isJSONType)) return types\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n const {gen, data, opts} = it\n const coerceTo = coerceToTypes(types, opts.coerceTypes)\n const checkTypes =\n types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && schemaHasRulesForType(it, types[0]))\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong)\n gen.if(wrongType, () => {\n if (coerceTo.length) coerceData(it, types, coerceTo)\n else reportTypeError(it)\n })\n }\n return checkTypes\n}\n\nconst COERCIBLE: Set<JSONType> = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n const {gen, data, opts} = it\n const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n const coerced = gen.let(\"coerced\", _`undefined`)\n if (opts.coerceTypes === \"array\") {\n gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n gen\n .assign(data, _`${data}[0]`)\n .assign(dataType, _`typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n )\n }\n gen.if(_`${coerced} !== undefined`)\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t)\n }\n }\n gen.else()\n reportTypeError(it)\n gen.endIf()\n\n gen.if(_`${coerced} !== undefined`, () => {\n gen.assign(data, coerced)\n assignParentData(it, coerced)\n })\n\n function coerceSpecificType(t: string): void {\n switch (t) {\n case \"string\":\n gen\n .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, _`\"\" + ${data}`)\n .elseIf(_`${data} === null`)\n .assign(coerced, _`\"\"`)\n return\n case \"number\":\n gen\n .elseIf(\n _`${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"integer\":\n gen\n .elseIf(\n _`${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"boolean\":\n gen\n .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(_`${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true)\n return\n case \"null\":\n gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n gen.assign(coerced, null)\n return\n\n case \"array\":\n gen\n .elseIf(\n _`${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`\n )\n .assign(coerced, _`[${data}]`)\n }\n }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n // TODO use gen.property\n gen.if(_`${parentData} !== undefined`, () =>\n gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n )\n}\n\nexport function checkDataType(\n dataType: JSONType,\n data: Name,\n strictNums?: boolean | \"log\",\n correct = DataType.Correct\n): Code {\n const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n let cond: Code\n switch (dataType) {\n case \"null\":\n return _`${data} ${EQ} null`\n case \"array\":\n cond = _`Array.isArray(${data})`\n break\n case \"object\":\n cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n break\n case \"integer\":\n cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n break\n case \"number\":\n cond = numCond()\n break\n default:\n return _`typeof ${data} ${EQ} ${dataType}`\n }\n return correct === DataType.Correct ? cond : not(cond)\n\n function numCond(_cond: Code = nil): Code {\n return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n }\n}\n\nexport function checkDataTypes(\n dataTypes: JSONType[],\n data: Name,\n strictNums?: boolean | \"log\",\n correct?: DataType\n): Code {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct)\n }\n let cond: Code\n const types = toHash(dataTypes)\n if (types.array && types.object) {\n const notObj = _`typeof ${data} != \"object\"`\n cond = types.null ? notObj : _`!${data} || ${notObj}`\n delete types.null\n delete types.array\n delete types.object\n } else {\n cond = nil\n }\n if (types.number) delete types.integer\n for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n message: ({schema}) => `must be ${schema}`,\n params: ({schema, schemaValue}) =>\n typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n const cxt = getTypeErrorContext(it)\n reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n const {gen, data, schema} = it\n const schemaCode = schemaRefOrVal(it, schema, \"type\")\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n }\n}\n","import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\n const {properties, items} = it.schema\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default)\n }\n } else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n const {gen, compositeRule, data, opts} = it\n if (defaultValue === undefined) return\n const childData = _`${data}${getProperty(prop)}`\n if (compositeRule) {\n checkStrictMode(it, `default is ignored for: ${childData}`)\n return\n }\n\n let condition = _`${childData} === undefined`\n if (opts.useDefaults === \"empty\") {\n condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n","import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n const {gen, data, it} = cxt\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({missingProperty: _`${prop}`}, true)\n cxt.error()\n })\n}\n\nexport function checkMissingProp(\n {gen, data, it: {opts}}: KeywordCxt,\n properties: string[],\n missing: Name\n): Code {\n return or(\n ...properties.map((prop) =>\n and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n )\n )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n cxt.setParams({missingProperty: missing}, true)\n cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: _`Object.prototype.hasOwnProperty`,\n })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} !== undefined`\n return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} === undefined`\n return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n return allSchemaProperties(schemaMap).filter(\n (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n )\n}\n\nexport function callValidateCode(\n {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n func: Code,\n context: Code,\n passSchema?: boolean\n): Code {\n const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n const valCxt: [Name, Code | number][] = [\n [N.instancePath, strConcat(N.instancePath, errorPath)],\n [N.parentData, it.parentData],\n [N.parentDataProperty, it.parentDataProperty],\n [N.rootData, N.rootData],\n ]\n if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n const u = opts.unicodeRegExp ? \"u\" : \"\"\n const {regExp} = opts.code\n const rx = regExp(pattern, u)\n\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true)\n validateItems(() => gen.assign(validArr, false))\n return validArr\n }\n gen.var(valid, true)\n validateItems(() => gen.break())\n return valid\n\n function validateItems(notValid: () => void): void {\n const len = gen.const(\"len\", _`${data}.length`)\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword,\n dataProp: i,\n dataPropType: Type.Num,\n },\n valid\n )\n gen.if(not(valid), notValid)\n })\n }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n const {gen, schema, keyword, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n if (alwaysValid && !it.opts.unevaluated) return\n\n const valid = gen.let(\"valid\", false)\n const schValid = gen.name(\"_valid\")\n\n gen.block(() =>\n schema.forEach((_sch: AnySchema, i: number) => {\n const schCxt = cxt.subschema(\n {\n keyword,\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n gen.assign(valid, _`${valid} || ${schValid}`)\n const merged = cxt.mergeValidEvaluated(schCxt, schValid)\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged) gen.if(not(valid))\n })\n )\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n}\n","import type {KeywordCxt} from \".\"\nimport type {\n AnySchema,\n SchemaValidateFunction,\n AnyValidateFunction,\n AddedKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, it} = cxt\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it)\n const schemaRef = useKeyword(gen, keyword, macroSchema)\n if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true)\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n schema: macroSchema,\n schemaPath: nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n },\n valid\n )\n cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, $data, it} = cxt\n checkAsyncKeyword(it, def)\n const validate =\n !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate\n const validateRef = useKeyword(gen, keyword, validate)\n const valid = gen.let(\"valid\")\n cxt.block$data(valid, validateKeyword)\n cxt.ok(def.valid ?? valid)\n\n function validateKeyword(): void {\n if (def.errors === false) {\n assignValid()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => cxt.error())\n } else {\n const ruleErrs = def.async ? validateAsync() : validateSync()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => addErrs(cxt, ruleErrs))\n }\n }\n\n function validateAsync(): Name {\n const ruleErrs = gen.let(\"ruleErrs\", null)\n gen.try(\n () => assignValid(_`await `),\n (e) =>\n gen.assign(valid, false).if(\n _`${e} instanceof ${it.ValidationError as Name}`,\n () => gen.assign(ruleErrs, _`${e}.errors`),\n () => gen.throw(e)\n )\n )\n return ruleErrs\n }\n\n function validateSync(): Code {\n const validateErrs = _`${validateRef}.errors`\n gen.assign(validateErrs, null)\n assignValid(nil)\n return validateErrs\n }\n\n function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n const passCxt = it.opts.passContext ? N.this : N.self\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n gen.assign(\n valid,\n _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n def.modifying\n )\n }\n\n function reportErrs(errors: () => void): void {\n gen.if(not(def.valid ?? valid), errors)\n }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n const {gen, data, it} = cxt\n gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n const {gen} = cxt\n gen.if(\n _`Array.isArray(${errs})`,\n () => {\n gen\n .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n .assign(N.errors, _`${N.vErrors}.length`)\n extendErrors(cxt)\n },\n () => cxt.error()\n )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n return gen.scopeValue(\n \"keyword\",\n typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n )\n}\n\nexport function validSchemaType(\n schema: unknown,\n schemaType: JSONType[],\n allowUndefined = false\n): boolean {\n // TODO add tests\n return (\n !schemaType.length ||\n schemaType.some((st) =>\n st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")\n )\n )\n}\n\nexport function validateKeywordUsage(\n {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n def: AddedKeywordDefinition,\n keyword: string\n): void {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\")\n }\n\n const deps = def.dependencies\n if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n }\n\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword])\n if (!valid) {\n const msg =\n `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors)\n if (opts.validateSchema === \"log\") self.logger.error(msg)\n else throw new Error(msg)\n }\n }\n}\n","import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n // TODO use Optional? align with SchemCxt property types\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef?: Code\n errorPath?: Code\n dataLevel?: number\n dataTypes?: JSONType[]\n data?: Name\n parentData?: Name\n parentDataProperty?: Code | number\n dataNames?: Name[]\n dataPathArr?: (Code | number)[]\n propertyName?: Name\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n compositeRule?: true\n createErrors?: boolean\n allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n keyword: string\n schemaProp: string | number\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef: Code\n data: Name | Code\n dataProp: Code | string | number\n dataTypes: JSONType[]\n definedProperties: Set<string>\n propertyName: Name\n dataPropType: Type\n jtdDiscriminator: string\n jtdMetadata: boolean\n compositeRule: true\n createErrors: boolean\n allErrors: boolean\n}>\n\nexport function getSubschema(\n it: SchemaObjCxt,\n {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n }\n\n if (keyword !== undefined) {\n const sch = it.schema[keyword]\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n }\n }\n\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"')\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n }\n }\n\n throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n subschema: SubschemaContext,\n it: SchemaObjCxt,\n {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n }\n\n const {gen} = it\n\n if (dataProp !== undefined) {\n const {errorPath, dataPathArr, opts} = it\n const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n dataContextProps(nextData)\n subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n subschema.parentDataProperty = _`${dataProp}`\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n }\n\n if (data !== undefined) {\n const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n dataContextProps(nextData)\n if (propertyName !== undefined) subschema.propertyName = propertyName\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n\n if (dataTypes) subschema.dataTypes = dataTypes\n\n function dataContextProps(_nextData: Name): void {\n subschema.data = _nextData\n subschema.dataLevel = it.dataLevel + 1\n subschema.dataTypes = []\n it.definedProperties = new Set<string>()\n subschema.parentData = it.data\n subschema.dataNames = [...it.dataNames, _nextData]\n }\n}\n\nexport function extendSubschemaMode(\n subschema: SubschemaContext,\n {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n if (createErrors !== undefined) subschema.createErrors = createErrors\n if (allErrors !== undefined) subschema.allErrors = allErrors\n subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n subschema.jtdMetadata = jtdMetadata // not inherited\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponent} from \"fast-uri\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n if (typeof schema == \"boolean\") return true\n if (limit === true) return !hasRef(schema)\n if (!limit) return false\n return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key)) return true\n const sch = schema[key]\n if (Array.isArray(sch) && sch.some(hasRef)) return true\n if (typeof sch == \"object\" && hasRef(sch)) return true\n }\n return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n let count = 0\n for (const key in schema) {\n if (key === \"$ref\") return Infinity\n count++\n if (SIMPLE_INLINED.has(key)) continue\n if (typeof schema[key] == \"object\") {\n eachItem(schema[key], (sch) => (count += countKeys(sch)))\n }\n if (count === Infinity) return Infinity\n }\n return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n if (normalize !== false) id = normalizeId(id)\n const p = resolver.parse(id)\n return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponent): string {\n const serialized = resolver.serialize(p)\n return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n id = normalizeId(id)\n return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n if (typeof schema == \"boolean\") return {}\n const {schemaId, uriResolver} = this.opts\n const schId = normalizeId(schema[schemaId] || baseId)\n const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n const pathPrefix = getFullPath(uriResolver, schId, false)\n const localRefs: LocalRefs = {}\n const schemaRefs: Set<string> = new Set()\n\n traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined) return\n const fullPath = pathPrefix + jsonPtr\n let innerBaseId = baseIds[parentJsonPtr]\n if (typeof sch[schemaId] == \"string\") innerBaseId = addRef.call(this, sch[schemaId])\n addAnchor.call(this, sch.$anchor)\n addAnchor.call(this, sch.$dynamicAnchor)\n baseIds[jsonPtr] = innerBaseId\n\n function addRef(this: Ajv, ref: string): string {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref)\n if (schemaRefs.has(ref)) throw ambiguos(ref)\n schemaRefs.add(ref)\n let schOrRef = this.refs[ref]\n if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref)\n } else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref)\n localRefs[ref] = sch\n } else {\n this.refs[ref] = fullPath\n }\n }\n return ref\n }\n\n function addAnchor(this: Ajv, anchor: unknown): void {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n addRef.call(this, `#${anchor}`)\n }\n }\n })\n\n return localRefs\n\n function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n }\n\n function ambiguos(ref: string): Error {\n return new Error(`reference \"${ref}\" resolves to more than one schema`)\n }\n}\n","import type {\n AddedKeywordDefinition,\n AnySchema,\n AnySchemaObject,\n KeywordErrorCxt,\n KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n schemaRefOrVal,\n schemaHasRulesButRef,\n checkUnknownRules,\n checkStrictMode,\n unescapeJsonPointer,\n mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n ErrorPaths,\n reportError,\n reportExtraError,\n resetErrorsCount,\n keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it)\n return\n }\n }\n validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n body: Block\n): void {\n if (opts.code.es5) {\n gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n destructureValCxtES5(gen, opts)\n gen.code(body)\n })\n } else {\n gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n gen.code(funcSourceUrl(schema, opts)).code(body)\n )\n }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n N.data\n }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n gen.if(\n N.valCxt,\n () => {\n gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n },\n () => {\n gen.var(N.instancePath, _`\"\"`)\n gen.var(N.parentData, _`undefined`)\n gen.var(N.parentDataProperty, _`undefined`)\n gen.var(N.rootData, N.data)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n }\n )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n const {schema, opts, gen} = it\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment) commentKeyword(it)\n checkNoDefault(it)\n gen.let(N.vErrors, null)\n gen.let(N.errors, 0)\n if (opts.unevaluated) resetEvaluated(it)\n typeAndKeywords(it)\n returnResults(it)\n })\n return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const {gen, validateName} = it\n it.evaluated = gen.const(\"evaluated\", _`${validateName}.evaluated`)\n gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n const schId = typeof schema == \"object\" && schema[opts.schemaId]\n return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid)\n return\n }\n }\n boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (self.RULES.all[key]) return true\n return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n const {schema, gen, opts} = it\n if (opts.$comment && schema.$comment) commentKeyword(it)\n updateContext(it)\n checkAsyncSchema(it)\n const errsCount = gen.const(\"_errs\", N.errors)\n typeAndKeywords(it, errsCount)\n // TODO var\n gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n checkUnknownRules(it)\n checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n const types = getSchemaTypes(it.schema)\n const checkedTypes = coerceAndCheckDataType(it, types)\n schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n const {schema, errSchemaPath, opts, self} = it\n if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n const {schema, opts} = it\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n checkStrictMode(it, \"default is ignored in the schema root\")\n }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n const schId = it.schema[it.opts.schemaId]\n if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n const msg = schema.$comment\n if (opts.$comment === true) {\n gen.code(_`${N.self}.logger.log(${msg})`)\n } else if (typeof opts.$comment == \"function\") {\n const schemaPath = str`${errSchemaPath}/$comment`\n const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n const {gen, schemaEnv, validateName, ValidationError, opts} = it\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(\n _`${N.errors} === 0`,\n () => gen.return(N.data),\n () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n )\n } else {\n gen.assign(_`${validateName}.errors`, N.vErrors)\n if (opts.unevaluated) assignEvaluated(it)\n gen.return(_`${N.errors} === 0`)\n }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n it: SchemaObjCxt,\n types: JSONType[],\n typeErrors: boolean,\n errsCount?: Name\n): void {\n const {gen, schema, data, allErrors, opts, self} = it\n const {RULES} = self\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n return\n }\n if (!opts.jtd) checkStrictTypes(it, types)\n gen.block(() => {\n for (const group of RULES.rules) groupKeywords(group)\n groupKeywords(RULES.post)\n })\n\n function groupKeywords(group: RuleGroup): void {\n if (!shouldUseGroup(schema, group)) return\n if (group.type) {\n gen.if(checkDataType(group.type, data, opts.strictNumbers))\n iterateKeywords(it, group)\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else()\n reportTypeError(it)\n }\n gen.endIf()\n } else {\n iterateKeywords(it, group)\n }\n // TODO make it \"ok\" call?\n if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n const {\n gen,\n schema,\n opts: {useDefaults},\n } = it\n if (useDefaults) assignDefaults(it, group.type)\n gen.block(() => {\n for (const rule of group.rules) {\n if (shouldUseRule(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type)\n }\n }\n })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (it.schemaEnv.meta || !it.opts.strictTypes) return\n checkContextTypes(it, types)\n if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (!types.length) return\n if (!it.dataTypes.length) {\n it.dataTypes = types\n return\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`)\n }\n })\n narrowSchemaTypes(it, types)\n}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n const rules = it.self.RULES.all\n for (const keyword in rules) {\n const rule = rules[keyword]\n if (typeof rule == \"object\" && shouldUseRule(it.schema, rule)) {\n const {type} = rule.definition\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`)\n }\n }\n }\n}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {\n const ts: JSONType[] = []\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t)) ts.push(t)\n else if (withTypes.includes(\"integer\") && t === \"number\") ts.push(\"integer\")\n }\n it.dataTypes = ts\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n msg += ` at \"${schemaPath}\" (strictTypes)`\n checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean\n readonly keyword: string\n readonly data: Name // Name referencing the current level of the data instance\n readonly $data?: string | false\n schema: any // keyword value in the schema\n readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n readonly parentSchema: AnySchemaObject\n readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n // requires option trackErrors in keyword definition\n params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n readonly def: AddedKeywordDefinition\n\n constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n validateKeywordUsage(it, def, keyword)\n this.gen = it.gen\n this.allErrors = it.allErrors\n this.keyword = keyword\n this.data = it.data\n this.schema = it.schema[keyword]\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data\n this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)\n this.schemaType = def.schemaType\n this.parentSchema = it.schema\n this.params = {}\n this.it = it\n this.def = def\n\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n } else {\n this.schemaCode = this.schemaValue\n if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n }\n }\n\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", N.errors)\n }\n }\n\n result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.failResult(not(condition), successAction, failAction)\n }\n\n failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.gen.if(condition)\n if (failAction) failAction()\n else this.error()\n if (successAction) {\n this.gen.else()\n successAction()\n if (this.allErrors) this.gen.endIf()\n } else {\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n }\n\n pass(condition: Code, failAction?: () => void): void {\n this.failResult(not(condition), undefined, failAction)\n }\n\n fail(condition?: Code): void {\n if (condition === undefined) {\n this.error()\n if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize\n return\n }\n this.gen.if(condition)\n this.error()\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n\n fail$data(condition: Code): void {\n if (!this.$data) return this.fail(condition)\n const {schemaCode} = this\n this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n }\n\n error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\n if (errorParams) {\n this.setParams(errorParams)\n this._error(append, errorPaths)\n this.setParams({})\n return\n }\n this._error(append, errorPaths)\n }\n\n private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n }\n\n $dataError(): void {\n reportError(this, this.def.$dataError || keyword$DataError)\n }\n\n reset(): void {\n if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n resetErrorsCount(this.gen, this.errsCount)\n }\n\n ok(cond: Code | boolean): void {\n if (!this.allErrors) this.gen.if(cond)\n }\n\n setParams(obj: KeywordCxtParams, assign?: true): void {\n if (assign) Object.assign(this.params, obj)\n else this.params = obj\n }\n\n block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n this.gen.block(() => {\n this.check$data(valid, $dataValid)\n codeBlock()\n })\n }\n\n check$data(valid: Name = nil, $dataValid: Code = nil): void {\n if (!this.$data) return\n const {gen, schemaCode, schemaType, def} = this\n gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n if (valid !== nil) gen.assign(valid, true)\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data())\n this.$dataError()\n if (valid !== nil) gen.assign(valid, false)\n }\n gen.else()\n }\n\n invalid$data(): Code {\n const {gen, schemaCode, schemaType, def, it} = this\n return or(wrong$DataType(), invalid$DataSchema())\n\n function wrong$DataType(): Code {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n }\n return nil\n }\n\n function invalid$DataSchema(): Code {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n return _`!${validateSchemaRef}(${schemaCode})`\n }\n return nil\n }\n }\n\n subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n const subschema = getSubschema(this.it, appl)\n extendSubschemaData(subschema, this.it, appl)\n extendSubschemaMode(subschema, appl)\n const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n subschemaCode(nextContext, valid)\n return nextContext\n }\n\n mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n const {it, gen} = this\n if (!it.opts.unevaluated) return\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n }\n }\n\n mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n const {it, gen} = this\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n return true\n }\n }\n}\n\nfunction keywordCode(\n it: SchemaObjCxt,\n keyword: string,\n def: AddedKeywordDefinition,\n ruleType?: JSONType\n): void {\n const cxt = new KeywordCxt(it, def, keyword)\n if (\"code\" in def) {\n def.code(cxt, ruleType)\n } else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def)\n } else if (\"macro\" in def) {\n macroKeywordCode(cxt, def)\n } else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def)\n }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n $data: string,\n {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n let jsonPointer\n let data: Code\n if ($data === \"\") return N.rootData\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n jsonPointer = $data\n data = N.rootData\n } else {\n const matches = RELATIVE_JSON_POINTER.exec($data)\n if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n const up: number = +matches[1]\n jsonPointer = matches[2]\n if (jsonPointer === \"#\") {\n if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n return dataPathArr[dataLevel - up]\n }\n if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n data = dataNames[dataLevel - up]\n if (!jsonPointer) return data\n }\n\n let expr = data\n const segments = jsonPointer.split(\"/\")\n for (const segment of segments) {\n if (segment) {\n data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n expr = _`${expr} && ${data}`\n }\n }\n return expr\n\n function errorMsg(pointerType: string, up: number): string {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n }\n}\n","import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n readonly errors: Partial<ErrorObject>[]\n readonly ajv: true\n readonly validation: true\n\n constructor(errors: Partial<ErrorObject>[]) {\n super(\"validation failed\")\n this.errors = errors\n this.ajv = this.validation = true\n }\n}\n","import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n readonly missingRef: string\n readonly missingSchema: string\n\n constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n this.missingRef = resolveUrl(resolver, baseId, ref)\n this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n }\n}\n","import type {\n AnySchema,\n AnySchemaObject,\n AnyValidateFunction,\n AsyncValidateFunction,\n EvaluatedProperties,\n EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport {URIComponent} from \"fast-uri\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n readonly data: Name // Name with reference to the current part of data instance\n readonly parentData: Name // should be used in keywords modifying data\n readonly parentDataProperty: Code | number // should be used in keywords modifying data\n readonly dataNames: Name[]\n readonly dataPathArr: (Code | number)[]\n readonly dataLevel: number // the level of the currently validated data,\n // it can be used to access both the property names and the data on all levels from the top.\n dataTypes: JSONType[] // data types applied to the current part of data instance\n definedProperties: Set<string> // set of properties to keep track of for required checks\n readonly topSchemaRef: Code\n readonly validateName: Name\n evaluated?: Name\n readonly ValidationError?: Name\n readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n readonly schemaEnv: SchemaEnv\n readonly rootId: string\n baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n readonly errSchemaPath: string // this is actual string, should not be changed to Code\n readonly errorPath: Code\n readonly propertyName?: Name\n readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n readonly createErrors?: boolean\n readonly opts: InstanceOptions // Ajv instance option.\n readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root?: SchemaEnv\n readonly baseId?: string\n readonly schemaPath?: string\n readonly localRefs?: LocalRefs\n readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root: SchemaEnv\n baseId: string // TODO possibly, it should be readonly\n schemaPath?: string\n localRefs?: LocalRefs\n readonly meta?: boolean\n readonly $async?: boolean // true if the current schema is asynchronous.\n readonly refs: SchemaRefs = {}\n readonly dynamicAnchors: {[Ref in string]?: true} = {}\n validate?: AnyValidateFunction\n validateName?: ValueScopeName\n serialize?: (data: unknown) => string\n serializeName?: ValueScopeName\n parse?: (data: string) => unknown\n parseName?: ValueScopeName\n\n constructor(env: SchemaEnvArgs) {\n let schema: AnySchemaObject | undefined\n if (typeof env.schema == \"object\") schema = env.schema\n this.schema = env.schema\n this.schemaId = env.schemaId\n this.root = env.root || this\n this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n this.schemaPath = env.schemaPath\n this.localRefs = env.localRefs\n this.meta = env.meta\n this.$async = schema?.$async\n this.refs = {}\n }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch)\n if (_sch) return _sch\n const rootId = getFullPath(this.opts.uriResolver, sch.root.baseId) // TODO if getFullPath removed 1 tests fails\n const {es5, lines} = this.opts.code\n const {ownProperties} = this.opts\n const gen = new CodeGen(this.scope, {es5, lines, ownProperties})\n let _ValidationError\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: ValidationError,\n code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n })\n }\n\n const validateName = gen.scopeName(\"validate\")\n sch.validateName = validateName\n\n const schemaCxt: SchemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: N.data,\n parentData: N.parentData,\n parentDataProperty: N.parentDataProperty,\n dataNames: [N.data],\n dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set<string>(),\n topSchemaRef: gen.scopeValue(\n \"schema\",\n this.opts.code.source === true\n ? {ref: sch.schema, code: stringify(sch.schema)}\n : {ref: sch.schema}\n ),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: _`\"\"`,\n opts: this.opts,\n self: this,\n }\n\n let sourceCode: string | undefined\n try {\n this._compilations.add(sch)\n validateFunctionCode(schemaCxt)\n gen.optimize(this.opts.code.optimize)\n // gen.optimize(1)\n const validateCode = gen.toString()\n sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n this.scope.value(validateName, {ref: validate})\n\n validate.errors = null\n validate.schema = sch.schema\n validate.schemaEnv = sch\n if (sch.$async) (validate as AsyncValidateFunction).$async = true\n if (this.opts.code.source === true) {\n validate.source = {validateName, validateCode, scopeValues: gen._values}\n }\n if (this.opts.unevaluated) {\n const {props, items} = schemaCxt\n validate.evaluated = {\n props: props instanceof Name ? undefined : props,\n items: items instanceof Name ? undefined : items,\n dynamicProps: props instanceof Name,\n dynamicItems: items instanceof Name,\n }\n if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n }\n sch.validate = validate\n return sch\n } catch (e) {\n delete sch.validate\n delete sch.validateName\n if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e\n } finally {\n this._compilations.delete(sch)\n }\n}\n\nexport function resolveRef(\n this: Ajv,\n root: SchemaEnv,\n baseId: string,\n ref: string\n): AnySchema | SchemaEnv | undefined {\n ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n const schOrFunc = root.refs[ref]\n if (schOrFunc) return schOrFunc\n\n let _sch = resolve.call(this, root, ref)\n if (_sch === undefined) {\n const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n const {schemaId} = this.opts\n if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n }\n\n if (_sch === undefined) return\n return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv)) return sch\n }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n this: Ajv,\n root: SchemaEnv, // information about the root schema for the current schema\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n let sch\n while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n this: Ajv,\n root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n const p = this.opts.uriResolver.parse(ref)\n const refPath = _getFullPath(this.opts.uriResolver, p)\n let baseId = getFullPath(this.opts.uriResolver, root.baseId, undefined)\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root)\n }\n\n const id = normalizeId(refPath)\n const schOrRef = this.refs[id] || this.schemas[id]\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef)\n if (typeof sch?.schema !== \"object\") return\n return getJsonPointer.call(this, p, sch)\n }\n\n if (typeof schOrRef?.schema !== \"object\") return\n if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n if (id === normalizeId(ref)) {\n const {schema} = schOrRef\n const {schemaId} = this.opts\n const schId = schema[schemaId]\n if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n return new SchemaEnv({schema, schemaId, root, baseId})\n }\n return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n])\n\nfunction getJsonPointer(\n this: Ajv,\n parsedRef: URIComponent,\n {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n if (parsedRef.fragment?.[0] !== \"/\") return\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\") return\n const partSchema = schema[unescapeFragment(part)]\n if (partSchema === undefined) return\n schema = partSchema\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId]\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n }\n }\n let env: SchemaEnv | undefined\n if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = resolveUrl(this.opts.uriResolver, baseId, schema.$ref)\n env = resolveSchema.call(this, root, $ref)\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const {schemaId} = this.opts\n env = env || new SchemaEnv({schema, schemaId, root, baseId})\n if (env.schema !== env.root.schema) return env\n return undefined\n}\n","{\n \"$id\": \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n \"description\": \"Meta-schema for $data reference (JSON AnySchema extension proposal)\",\n \"type\": \"object\",\n \"required\": [\"$data\"],\n \"properties\": {\n \"$data\": {\n \"type\": \"string\",\n \"anyOf\": [{\"format\": \"relative-json-pointer\"}, {\"format\": \"json-pointer\"}]\n }\n },\n \"additionalProperties\": false\n}\n","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/**\n * @param {Array<string>} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/**\n * @typedef {Object} GetIPV6Result\n * @property {boolean} error - Indicates if there was an error parsing the IPv6 address.\n * @property {string} address - The parsed IPv6 address.\n * @property {string} [zone] - The zone identifier, if present.\n */\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {Array<string>} buffer\n * @returns {boolean}\n */\nfunction consumeIsZone (buffer) {\n buffer.length = 0\n return true\n}\n\n/**\n * @param {Array<string>} buffer\n * @param {Array<string>} address\n * @param {GetIPV6Result} output\n * @returns {boolean}\n */\nfunction consumeHextets (buffer, address, output) {\n if (buffer.length) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== '') {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n buffer.length = 0\n }\n return true\n}\n\n/**\n * @param {string} input\n * @returns {GetIPV6Result}\n */\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n /** @type {Array<string>} */\n const address = []\n /** @type {Array<string>} */\n const buffer = []\n let endipv6Encountered = false\n let endIpv6 = false\n\n let consume = consumeHextets\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume(buffer, address, output)) { break }\n if (++tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i > 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n address.push(':')\n continue\n } else if (cursor === '%') {\n if (!consume(buffer, address, output)) { break }\n // switch to zone detection\n consume = consumeIsZone\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (consume === consumeIsZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n */\n\n/**\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, isIPV6: true, escapedHost }\n } else {\n return { host, isIPV6: false }\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {boolean} esc\n * @returns {import('../types/index').URIComponent}\n */\nfunction normalizeComponentEncoding (component, esc) {\n const func = esc !== true ? escape : unescape\n if (component.scheme !== undefined) {\n component.scheme = func(component.scheme)\n }\n if (component.userinfo !== undefined) {\n component.userinfo = func(component.userinfo)\n }\n if (component.host !== undefined) {\n component.host = func(component.host)\n }\n if (component.path !== undefined) {\n component.path = func(component.path)\n }\n if (component.query !== undefined) {\n component.query = func(component.query)\n }\n if (component.fragment !== undefined) {\n component.fragment = func(component.fragment)\n }\n return component\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(component.userinfo)\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = unescape(component.host)\n if (!isIPv4(host)) {\n const ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = component.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(component.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const [path, query] = wsComponent.resourceName.split('?')\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = query\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (serialize(parse(uri, options), options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\n/**\n * @param {Readonly<import('./types/index').URIComponent>} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = escape(component.path)\n\n if (component.scheme !== undefined) {\n component.path = component.path.split('%3A').join(':')\n }\n } else {\n component.path = unescape(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', component.query)\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', component.fragment)\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const ipv6result = normalizeIPv6(parsed.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","import * as uri from \"fast-uri\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n","export {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n AnyValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin<Opts> {\n (ajv: Ajv, options?: Opts): Ajv\n [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n Schema,\n AnySchema,\n AnySchemaObject,\n SchemaObject,\n AsyncSchema,\n Vocabulary,\n KeywordDefinition,\n AddedKeywordDefinition,\n AnyValidateFunction,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n Format,\n AddedFormat,\n RegExpEngine,\n UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof Options)[] = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"]\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n // strict mode options (NEW)\n strict?: boolean | \"log\"\n strictSchema?: boolean | \"log\"\n strictNumbers?: boolean | \"log\"\n strictTypes?: boolean | \"log\"\n strictTuples?: boolean | \"log\"\n strictRequired?: boolean | \"log\"\n allowMatchingProperties?: boolean // disables a strict mode restriction\n allowUnionTypes?: boolean\n validateFormats?: boolean\n // validation and reporting options:\n $data?: boolean\n allErrors?: boolean\n verbose?: boolean\n discriminator?: boolean\n unicodeRegExp?: boolean\n timestamp?: \"string\" | \"date\" // JTD only\n parseDate?: boolean // JTD only\n allowDate?: boolean // JTD only\n specialNumbers?: \"fast\" | \"null\" // JTD only\n $comment?:\n | true\n | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n formats?: {[Name in string]?: Format}\n keywords?: Vocabulary\n schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n logger?: Logger | false\n loadSchema?: (uri: string) => Promise<AnySchemaObject>\n // options to modify validated data:\n removeAdditional?: boolean | \"all\" | \"failing\"\n useDefaults?: boolean | \"empty\"\n coerceTypes?: boolean | \"array\"\n // advanced options:\n next?: boolean // NEW\n unevaluated?: boolean // NEW\n dynamicRef?: boolean // NEW\n schemaId?: \"id\" | \"$id\"\n jtd?: boolean // NEW\n meta?: SchemaObject | boolean\n defaultMeta?: string | AnySchemaObject\n validateSchema?: boolean | \"log\"\n addUsedSchema?: boolean\n inlineRefs?: boolean | number\n passContext?: boolean\n loopRequired?: number\n loopEnum?: number // NEW\n ownProperties?: boolean\n multipleOfPrecision?: number\n int32range?: boolean // JTD only\n messages?: boolean\n code?: CodeOptions // NEW\n uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n es5?: boolean\n esm?: boolean\n lines?: boolean\n optimize?: boolean | number\n formats?: Code // code to require (or construct) map of available formats - for standalone code\n source?: boolean\n process?: (code: string, schema?: SchemaEnv) => string\n regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n regExp: RegExpEngine\n optimize: number\n}\n\ninterface DeprecatedOptions {\n /** @deprecated */\n ignoreKeywordsWithRef?: boolean\n /** @deprecated */\n jsPropertySyntax?: boolean // added instead of jsonPointers\n /** @deprecated */\n unicode?: boolean\n}\n\ninterface RemovedOptions {\n format?: boolean\n errorDataPath?: \"object\" | \"property\"\n nullable?: boolean // \"nullable\" keyword is supported by default\n jsonPointers?: boolean\n extendRefs?: true | \"ignore\" | \"fail\"\n missingRefs?: true | \"ignore\" | \"fail\"\n processCode?: (code: string, schema?: SchemaEnv) => string\n sourceCode?: boolean\n strictDefaults?: boolean\n strictKeywords?: boolean\n uniqueItems?: boolean\n unknownFormats?: true | string[] | \"ignore\"\n cache?: any\n serialize?: (schema: AnySchema) => unknown\n ajvErrors?: boolean\n}\n\ntype OptionsInfo<T extends RemovedOptions | DeprecatedOptions> = {\n [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo<RemovedOptions> = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n}\n\nconst deprecatedOptions: OptionsInfo<DeprecatedOptions> = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n [K in\n | \"strictSchema\"\n | \"strictNumbers\"\n | \"strictTypes\"\n | \"strictTuples\"\n | \"strictRequired\"\n | \"inlineRefs\"\n | \"loopRequired\"\n | \"loopEnum\"\n | \"meta\"\n | \"messages\"\n | \"schemaId\"\n | \"addUsedSchema\"\n | \"validateSchema\"\n | \"validateFormats\"\n | \"int32range\"\n | \"unicodeRegExp\"\n | \"uriResolver\"]: NonNullable<Options[K]>\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n const s = o.strict\n const _optz = o.code?.optimize\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n const regExp = o.code?.regExp ?? defaultRegExp\n const uriResolver = o.uriResolver ?? DefaultUriResolver\n return {\n strictSchema: o.strictSchema ?? s ?? true,\n strictNumbers: o.strictNumbers ?? s ?? true,\n strictTypes: o.strictTypes ?? s ?? \"log\",\n strictTuples: o.strictTuples ?? s ?? \"log\",\n strictRequired: o.strictRequired ?? s ?? false,\n code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n meta: o.meta ?? true,\n messages: o.messages ?? true,\n inlineRefs: o.inlineRefs ?? true,\n schemaId: o.schemaId ?? \"$id\",\n addUsedSchema: o.addUsedSchema ?? true,\n validateSchema: o.validateSchema ?? true,\n validateFormats: o.validateFormats ?? true,\n unicodeRegExp: o.unicodeRegExp ?? true,\n int32range: o.int32range ?? true,\n uriResolver: uriResolver,\n }\n}\n\nexport interface Logger {\n log(...args: unknown[]): unknown\n warn(...args: unknown[]): unknown\n error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n opts: InstanceOptions\n errors?: ErrorObject[] | null // errors from the last validation\n logger: Logger\n // shared external scope values for compiled functions\n readonly scope: ValueScope\n readonly schemas: {[Key in string]?: SchemaEnv} = {}\n readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n readonly formats: {[Name in string]?: AddedFormat} = {}\n readonly RULES: ValidationRules\n readonly _compilations: Set<SchemaEnv> = new Set()\n private readonly _loading: {[Ref in string]?: Promise<AnySchemaObject>} = {}\n private readonly _cache: Map<AnySchema, SchemaEnv> = new Map()\n private readonly _metaOpts: InstanceOptions\n\n static ValidationError = ValidationError\n static MissingRefError = MissingRefError\n\n constructor(opts: Options = {}) {\n opts = this.opts = {...opts, ...requiredOptions(opts)}\n const {es5, lines} = this.opts.code\n\n this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n this.logger = getLogger(opts.logger)\n const formatOpt = opts.validateFormats\n opts.validateFormats = false\n\n this.RULES = getRules()\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n this._metaOpts = getMetaSchemaOptions.call(this)\n\n if (opts.formats) addInitialFormats.call(this)\n this._addVocabularies()\n this._addDefaultMetaSchema()\n if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n addInitialSchemas.call(this)\n opts.validateFormats = formatOpt\n }\n\n _addVocabularies(): void {\n this.addKeyword(\"$async\")\n }\n\n _addDefaultMetaSchema(): void {\n const {$data, meta, schemaId} = this.opts\n let _dataRefSchema: SchemaObject = $dataRefSchema\n if (schemaId === \"id\") {\n _dataRefSchema = {...$dataRefSchema}\n _dataRefSchema.id = _dataRefSchema.$id\n delete _dataRefSchema.$id\n }\n if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n const {meta, schemaId} = this.opts\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n }\n\n // Validate data using schema\n // AnySchema will be compiled and cached using schema itself as a key for Map\n validate(schema: Schema | string, data: unknown): boolean\n validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>\n validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n data: unknown\n ): data is JTDDataType<T>\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>\n validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>\n validate<T>(\n schemaKeyRef: AnySchema | string, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data: unknown | T // to be validated\n ): boolean | Promise<T> {\n let v: AnyValidateFunction | undefined\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema<T>(schemaKeyRef)\n if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n } else {\n v = this.compile<T>(schemaKeyRef)\n }\n\n const valid = v(data)\n if (!(\"$async\" in v)) this.errors = v.errors\n return valid\n }\n\n // Create validation function for passed schema\n // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n compile<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n _meta?: boolean\n ): ValidateFunction<JTDDataType<T>>\n compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T> {\n const sch = this._addSchema(schema, _meta)\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T>\n }\n\n // Creates validating function for passed schema with asynchronous loading of missing schemas.\n // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n // TODO allow passing schema URI\n // meta - optional true to compile meta-schema\n compileAsync<T = unknown>(\n schema: SchemaObject | JSONSchemaType<T>,\n _meta?: boolean\n ): Promise<ValidateFunction<T>>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>\n compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>>\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>> {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\")\n }\n const {loadSchema} = this.opts\n return runCompileAsync.call(this, schema, meta)\n\n async function runCompileAsync(\n this: Ajv,\n _schema: AnySchemaObject,\n _meta?: boolean\n ): Promise<AnyValidateFunction> {\n await loadMetaSchema.call(this, _schema.$schema)\n const sch = this._addSchema(_schema, _meta)\n return sch.validate || _compileAsync.call(this, sch)\n }\n\n async function loadMetaSchema(this: Ajv, $ref?: string): Promise<void> {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, {$ref}, true)\n }\n }\n\n async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise<AnyValidateFunction> {\n try {\n return this._compileSchemaEnv(sch)\n } catch (e) {\n if (!(e instanceof MissingRefError)) throw e\n checkLoaded.call(this, e)\n await loadMissingSchema.call(this, e.missingSchema)\n return _compileAsync.call(this, sch)\n }\n }\n\n function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n }\n }\n\n async function loadMissingSchema(this: Ajv, ref: string): Promise<void> {\n const _schema = await _loadSchema.call(this, ref)\n if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n }\n\n async function _loadSchema(this: Ajv, ref: string): Promise<AnySchemaObject> {\n const p = this._loading[ref]\n if (p) return p\n try {\n return await (this._loading[ref] = loadSchema(ref))\n } finally {\n delete this._loading[ref]\n }\n }\n }\n\n // Adds schema to the instance\n addSchema(\n schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ): Ajv {\n if (Array.isArray(schema)) {\n for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n return this\n }\n let id: string | undefined\n if (typeof schema === \"object\") {\n const {schemaId} = this.opts\n id = schema[schemaId]\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`)\n }\n }\n key = normalizeId(key || id)\n this._checkUnique(key)\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n return this\n }\n\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(\n schema: AnySchemaObject,\n key?: string, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ): Ajv {\n this.addSchema(schema, key, true, _validateSchema)\n return this\n }\n\n // Validate schema against its meta-schema\n validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown> {\n if (typeof schema == \"boolean\") return true\n let $schema: string | AnySchemaObject | undefined\n $schema = schema.$schema\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\")\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta()\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\")\n this.errors = null\n return true\n }\n const valid = this.validate($schema, schema)\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText()\n if (this.opts.validateSchema === \"log\") this.logger.error(message)\n else throw new Error(message)\n }\n return valid\n }\n\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined {\n let sch\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n if (sch === undefined) {\n const {schemaId} = this.opts\n const root = new SchemaEnv({schema: {}, schemaId})\n sch = resolveSchema.call(this, root, keyRef)\n if (!sch) return\n this.refs[keyRef] = sch\n }\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T> | undefined\n }\n\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef)\n this._removeAllSchemas(this.refs, schemaKeyRef)\n return this\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas)\n this._removeAllSchemas(this.refs)\n this._cache.clear()\n return this\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef)\n if (typeof sch == \"object\") this._cache.delete(sch.schema)\n delete this.schemas[schemaKeyRef]\n delete this.refs[schemaKeyRef]\n return this\n }\n case \"object\": {\n const cacheKey = schemaKeyRef\n this._cache.delete(cacheKey)\n let id = schemaKeyRef[this.opts.schemaId]\n if (id) {\n id = normalizeId(id)\n delete this.schemas[id]\n delete this.refs[id]\n }\n return this\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\")\n }\n }\n\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions: Vocabulary): Ajv {\n for (const def of definitions) this.addKeyword(def)\n return this\n }\n\n addKeyword(\n kwdOrDef: string | KeywordDefinition,\n def?: KeywordDefinition // deprecated\n ): Ajv {\n let keyword: string | string[]\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\")\n def.keyword = keyword\n }\n } else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef\n keyword = def.keyword\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\")\n }\n } else {\n throw new Error(\"invalid addKeywords parameters\")\n }\n\n checkKeyword.call(this, keyword, def)\n if (!def) {\n eachItem(keyword, (kwd) => addRule.call(this, kwd))\n return this\n }\n keywordMetaschema.call(this, def)\n const definition: AddedKeywordDefinition = {\n ...def,\n type: getJSONTypes(def.type),\n schemaType: getJSONTypes(def.schemaType),\n }\n eachItem(\n keyword,\n definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n )\n return this\n }\n\n getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n const rule = this.RULES.all[keyword]\n return typeof rule == \"object\" ? rule.definition : !!rule\n }\n\n // Remove keyword\n removeKeyword(keyword: string): Ajv {\n // TODO return type should be Ajv\n const {RULES} = this\n delete RULES.keywords[keyword]\n delete RULES.all[keyword]\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword)\n if (i >= 0) group.rules.splice(i, 1)\n }\n return this\n }\n\n // Add format\n addFormat(name: string, format: Format): Ajv {\n if (typeof format == \"string\") format = new RegExp(format)\n this.formats[name] = format\n return this\n }\n\n errorsText(\n errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n ): string {\n if (!errors || errors.length === 0) return \"No errors\"\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg)\n }\n\n $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\n const rules = this.RULES.all\n metaSchema = JSON.parse(JSON.stringify(metaSchema))\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1) // first segment is an empty string\n let keywords = metaSchema\n for (const seg of segments) keywords = keywords[seg] as AnySchemaObject\n\n for (const key in rules) {\n const rule = rules[key]\n if (typeof rule != \"object\") continue\n const {$data} = rule.definition\n const schema = keywords[key] as AnySchemaObject | undefined\n if ($data && schema) keywords[key] = schemaOrData(schema)\n }\n }\n\n return metaSchema\n }\n\n private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef]\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef]\n } else if (sch && !sch.meta) {\n this._cache.delete(sch.schema)\n delete schemas[keyRef]\n }\n }\n }\n }\n\n _addSchema(\n schema: AnySchema,\n meta?: boolean,\n baseId?: string,\n validateSchema = this.opts.validateSchema,\n addSchema = this.opts.addUsedSchema\n ): SchemaEnv {\n let id: string | undefined\n const {schemaId} = this.opts\n if (typeof schema == \"object\") {\n id = schema[schemaId]\n } else {\n if (this.opts.jtd) throw new Error(\"schema must be object\")\n else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n }\n let sch = this._cache.get(schema)\n if (sch !== undefined) return sch\n\n baseId = normalizeId(id || baseId)\n const localRefs = getSchemaRefs.call(this, schema, baseId)\n sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})\n this._cache.set(sch.schema, sch)\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId) this._checkUnique(baseId)\n this.refs[baseId] = sch\n }\n if (validateSchema) this.validateSchema(schema, true)\n return sch\n }\n\n private _checkUnique(id: string): void {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`)\n }\n }\n\n private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n if (sch.meta) this._compileMetaSchema(sch)\n else compileSchema.call(this, sch)\n\n /* istanbul ignore if */\n if (!sch.validate) throw new Error(\"ajv implementation error\")\n return sch.validate\n }\n\n private _compileMetaSchema(sch: SchemaEnv): void {\n const currentOpts = this.opts\n this.opts = this._metaOpts\n try {\n compileSchema.call(this, sch)\n } finally {\n this.opts = currentOpts\n }\n }\n}\n\nexport interface ErrorsTextOptions {\n separator?: string\n dataVar?: string\n}\n\nfunction checkOptions(\n this: Ajv,\n checkOpts: OptionsInfo<RemovedOptions | DeprecatedOptions>,\n options: Options & RemovedOptions,\n msg: string,\n log: \"warn\" | \"error\" = \"error\"\n): void {\n for (const key in checkOpts) {\n const opt = key as keyof typeof checkOpts\n if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n keyRef = normalizeId(keyRef) // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n const optsSchemas = this.opts.schemas\n if (!optsSchemas) return\n if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name]\n if (format) this.addFormat(name, format)\n }\n}\n\nfunction addInitialKeywords(\n this: Ajv,\n defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs)\n return\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\")\n for (const keyword in defs) {\n const def = defs[keyword] as KeywordDefinition\n if (!def.keyword) def.keyword = keyword\n this.addKeyword(def)\n }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n const metaOpts = {...this.opts}\n for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial<Logger> | false): Logger {\n if (logger === false) return noLogs\n if (logger === undefined) return console\n if (logger.log && logger.warn && logger.error) return logger as Logger\n throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n const {RULES} = this\n eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n })\n if (!def) return\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function')\n }\n}\n\nfunction addRule(\n this: Ajv,\n keyword: string,\n definition?: AddedKeywordDefinition,\n dataType?: JSONType\n): void {\n const post = definition?.post\n if (dataType && post) throw new Error('keyword with \"post\" flag cannot have \"type\"')\n const {RULES} = this\n let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)\n if (!ruleGroup) {\n ruleGroup = {type: dataType, rules: []}\n RULES.rules.push(ruleGroup)\n }\n RULES.keywords[keyword] = true\n if (!definition) return\n\n const rule: Rule = {\n keyword,\n definition: {\n ...definition,\n type: getJSONTypes(definition.type),\n schemaType: getJSONTypes(definition.schemaType),\n },\n }\n if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n else ruleGroup.rules.push(rule)\n RULES.all[keyword] = rule\n definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule)\n } else {\n ruleGroup.rules.push(rule)\n this.logger.warn(`rule ${before} is not defined`)\n }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n let {metaSchema} = def\n if (metaSchema === undefined) return\n if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n return {anyOf: [schema, $dataRef]}\n}\n","import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt: KeywordCxt): void {\n const {gen, schema: $ref, it} = cxt\n const {baseId, schemaEnv: env, validateName, opts, self} = it\n const {root} = env\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId) return callRootRef()\n const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n return inlineRefSchema(schOrEnv)\n\n function callRootRef(): void {\n if (env === root) return callRef(cxt, validateName, env, env.$async)\n const rootName = gen.scopeValue(\"root\", {ref: root})\n return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n }\n\n function callValidate(sch: SchemaEnv): void {\n const v = getValidate(cxt, sch)\n callRef(cxt, v, sch, sch.$async)\n }\n\n function inlineRefSchema(sch: AnySchema): void {\n const schName = gen.scopeValue(\n \"schema\",\n opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n )\n const valid = gen.name(\"valid\")\n const schCxt = cxt.subschema(\n {\n schema: sch,\n dataTypes: [],\n schemaPath: nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n },\n valid\n )\n cxt.mergeEvaluated(schCxt)\n cxt.ok(valid)\n }\n },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n const {gen} = cxt\n return sch.validate\n ? gen.scopeValue(\"validate\", {ref: sch.validate})\n : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n const {gen, it} = cxt\n const {allErrors, schemaEnv: env, opts} = it\n const passCxt = opts.passContext ? N.this : nil\n if ($async) callAsyncRef()\n else callSyncRef()\n\n function callAsyncRef(): void {\n if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n const valid = gen.let(\"valid\")\n gen.try(\n () => {\n gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n if (!allErrors) gen.assign(valid, true)\n },\n (e) => {\n gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n addErrorsFrom(e)\n if (!allErrors) gen.assign(valid, false)\n }\n )\n cxt.ok(valid)\n }\n\n function callSyncRef(): void {\n cxt.result(\n callValidateCode(cxt, v, passCxt),\n () => addEvaluatedFrom(v),\n () => addErrorsFrom(v)\n )\n }\n\n function addErrorsFrom(source: Code): void {\n const errs = _`${source}.errors`\n gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n gen.assign(N.errors, _`${N.vErrors}.length`)\n }\n\n function addEvaluatedFrom(source: Code): void {\n if (!it.opts.unevaluated) return\n const schEvaluated = sch?.validate?.evaluated\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n }\n } else {\n const props = gen.var(\"props\", _`${source}.evaluated.props`)\n it.props = mergeEvaluated.props(gen, props, it.props, Name)\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n }\n } else {\n const items = gen.var(\"items\", _`${source}.evaluated.items`)\n it.items = mergeEvaluated.items(gen, items, it.items, Name)\n }\n }\n }\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n {keyword: \"$comment\"},\n \"definitions\",\n idKeyword,\n refKeyword,\n]\n\nexport default core\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n maximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n minimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n exclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n exclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitNumberError = ErrorObject<\n Kwd,\n {limit: number; comparison: Comparison},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n \"multipleOf\",\n {multipleOf: number},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schemaCode, it} = cxt\n // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision\n const res = gen.let(\"res\")\n const invalid = prec\n ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : _`${res} !== parseInt(${res})`\n cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n },\n}\n\nexport default def\n","// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} characters`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode, it} = cxt\n const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n const len =\n it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {useFunc} from \"../../compile/util\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n if ($data) {\n const {regExp} = it.opts.code\n const regExpCode = regExp.code === \"new RegExp\" ? _`new RegExp` : useFunc(gen, regExp)\n const valid = gen.let(\"valid\")\n gen.try(\n () => gen.assign(valid, _`${regExpCode}(${schemaCode}, ${u}).test(${data})`),\n () => gen.assign(valid, false)\n )\n cxt.fail$data(_`!${valid}`)\n } else {\n const regExp = usePattern(cxt, schema)\n cxt.fail$data(_`!${regExp}.test(${data})`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} properties`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n checkReportMissingProp,\n checkMissingProp,\n reportMissingProp,\n propertyInData,\n noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n \"required\",\n {missingProperty: string},\n string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, schemaCode, data, $data, it} = cxt\n const {opts} = it\n if (!$data && schema.length === 0) return\n const useLoop = schema.length >= opts.loopRequired\n if (it.allErrors) allErrorsMode()\n else exitOnErrorMode()\n\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties\n const {definedProperties} = cxt.it\n for (const requiredKey of schema) {\n if (props?.[requiredKey] === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`\n checkStrictMode(it, msg, it.opts.strictRequired)\n }\n }\n }\n\n function allErrorsMode(): void {\n if (useLoop || $data) {\n cxt.block$data(nil, loopAllRequired)\n } else {\n for (const prop of schema) {\n checkReportMissingProp(cxt, prop)\n }\n }\n }\n\n function exitOnErrorMode(): void {\n const missing = gen.let(\"missing\")\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true)\n cxt.block$data(valid, () => loopUntilMissing(missing, valid))\n cxt.ok(valid)\n } else {\n gen.if(checkMissingProp(cxt, schema, missing))\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n\n function loopAllRequired(): void {\n gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n cxt.setParams({missingProperty: prop})\n gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n })\n }\n\n function loopUntilMissing(missing: Name, valid: Name): void {\n cxt.setParams({missingProperty: missing})\n gen.forOf(\n missing,\n schemaCode as Code,\n () => {\n gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n gen.if(not(valid), () => {\n cxt.error()\n gen.break()\n })\n },\n nil\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} items`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n \"uniqueItems\",\n {i: number; j: number},\n boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {i, j}}) =>\n str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n if (!$data && !schema) return\n const valid = gen.let(\"valid\")\n const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n cxt.ok(valid)\n\n function validateUniqueItems(): void {\n const i = gen.let(\"i\", _`${data}.length`)\n const j = gen.let(\"j\")\n cxt.setParams({i, j})\n gen.assign(valid, true)\n gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n }\n\n function canOptimize(): boolean {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n }\n\n function loopN(i: Name, j: Name): void {\n const item = gen.name(\"item\")\n const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n const indices = gen.const(\"indices\", _`{}`)\n gen.for(_`;${i}--;`, () => {\n gen.let(item, _`${data}[${i}]`)\n gen.if(wrongType, _`continue`)\n if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n gen\n .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, _`${indices}[${item}]`)\n cxt.error()\n gen.assign(valid, false).break()\n })\n .code(_`${indices}[${item}] = ${i}`)\n })\n }\n\n function loopN2(i: Name, j: Name): void {\n const eql = useFunc(gen, equal)\n const outer = gen.name(\"outer\")\n gen.label(outer).for(_`;${i}--;`, () =>\n gen.for(_`${j} = ${i}; ${j}--;`, () =>\n gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error()\n gen.assign(valid, false).break(outer)\n })\n )\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to constant\",\n params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schemaCode, schema} = cxt\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n } else {\n cxt.fail(_`${schema} !== ${data}`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to one of the allowed values\",\n params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n const useLoop = schema.length >= it.opts.loopEnum\n let eql: Name | undefined\n const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n let valid: Code\n if (useLoop || $data) {\n valid = gen.let(\"valid\")\n cxt.block$data(valid, loopEnum)\n } else {\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const vSchema = gen.const(\"vSchema\", schemaCode)\n valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n }\n cxt.pass(valid)\n\n function loopEnum(): void {\n gen.assign(valid, false)\n gen.forOf(\"v\", schemaCode as Code, (v) =>\n gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n )\n }\n\n function equalCode(vSchema: Name, i: number): Code {\n const sch = schema[i]\n return typeof sch === \"object\" && sch !== null\n ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n : _`${data} === ${sch}`\n }\n },\n}\n\nexport default def\n","import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n // number\n limitNumber,\n multipleOf,\n // string\n limitLength,\n pattern,\n // object\n limitProperties,\n required,\n // array\n limitItems,\n uniqueItems,\n // any\n {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n {keyword: \"nullable\", schemaType: \"boolean\"},\n constKeyword,\n enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n {limit: number},\n number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n | LimitError\n | LimitNumberError\n | MultipleOfError\n | PatternError\n | RequiredError\n | UniqueItemsError\n | ConstError\n | EnumError\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"additionalItems\" as const,\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {parentSchema, it} = cxt\n const {items} = parentSchema\n if (!Array.isArray(items)) {\n checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n return\n }\n validateAdditionalItems(cxt, items)\n },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n const {gen, schema, data, keyword, it} = cxt\n it.items = true\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items.length})\n cxt.pass(_`${len} <= ${items.length}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n gen.if(not(valid), () => validateItems(valid))\n cxt.ok(valid)\n }\n\n function validateItems(valid: Name): void {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt: KeywordCxt) {\n const {schema, it} = cxt\n if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n cxt.ok(validateArray(cxt))\n },\n}\n\nexport function validateTuple(\n cxt: KeywordCxt,\n extraItems: string,\n schArr: AnySchema[] = cxt.schema\n): void {\n const {gen, parentSchema, data, keyword, it} = cxt\n checkStrictTuple(parentSchema)\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n }\n const valid = gen.name(\"valid\")\n const len = gen.const(\"len\", _`${data}.length`)\n schArr.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n gen.if(_`${len} > ${i}`, () =>\n cxt.subschema(\n {\n keyword,\n schemaProp: i,\n dataProp: i,\n },\n valid\n )\n )\n cxt.ok(valid)\n })\n\n function checkStrictTuple(sch: AnySchemaObject): void {\n const {opts, errSchemaPath} = it\n const l = schArr.length\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false)\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`\n checkStrictMode(it, msg, opts.strictTuples)\n }\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {schema, parentSchema, it} = cxt\n const {prefixItems} = parentSchema\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n else cxt.ok(validateArray(cxt))\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n \"contains\",\n {minContains: number; maxContains?: number},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {min, max}}) =>\n max === undefined\n ? str`must contain at least ${min} valid item(s)`\n : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({params: {min, max}}) =>\n max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n let min: number\n let max: number | undefined\n const {minContains, maxContains} = parentSchema\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains\n max = maxContains\n } else {\n min = 1\n }\n const len = gen.const(\"len\", _`${data}.length`)\n cxt.setParams({min, max})\n if (max === undefined && min === 0) {\n checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n return\n }\n if (max !== undefined && min > max) {\n checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n cxt.fail()\n return\n }\n if (alwaysValidSchema(it, schema)) {\n let cond = _`${len} >= ${min}`\n if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n cxt.pass(cond)\n return\n }\n\n it.items = true\n const valid = gen.name(\"valid\")\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()))\n } else if (min === 0) {\n gen.let(valid, true)\n if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n } else {\n gen.let(valid, false)\n validateItemsWithCount()\n }\n cxt.result(valid, () => cxt.reset())\n\n function validateItemsWithCount(): void {\n const schValid = gen.name(\"_valid\")\n const count = gen.let(\"count\", 0)\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n }\n\n function validateItems(_valid: Name, block: () => void): void {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword: \"contains\",\n dataProp: i,\n dataPropType: Type.Num,\n compositeRule: true,\n },\n _valid\n )\n block()\n })\n }\n\n function checkLimits(count: Name): void {\n gen.code(_`${count}++`)\n if (max === undefined) {\n gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n } else {\n gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n if (min === 1) gen.assign(valid, true)\n else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n }\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n SchemaMap,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n property: string\n missingProperty: string\n depsCount: number\n deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n \"dependencies\",\n DependenciesErrorParams,\n {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n message: ({params: {property, depsCount, deps}}) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n return str`must have ${property_ies} ${deps} when property ${property} is present`\n },\n params: ({params: {property, depsCount, deps, missingProperty}}) =>\n _`{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const [propDeps, schDeps] = splitDependencies(cxt)\n validatePropertyDeps(cxt, propDeps)\n validateSchemaDeps(cxt, schDeps)\n },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n const propertyDeps: PropertyDependencies = {}\n const schemaDeps: SchemaDependencies = {}\n for (const key in schema) {\n if (key === \"__proto__\") continue\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n deps[key] = schema[key]\n }\n return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n cxt: KeywordCxt,\n propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n const {gen, data, it} = cxt\n if (Object.keys(propertyDeps).length === 0) return\n const missing = gen.let(\"missing\")\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop] as string[]\n if (deps.length === 0) continue\n const hasProperty = propertyInData(gen, data, prop, it.opts.ownProperties)\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n })\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n checkReportMissingProp(cxt, depProp)\n }\n })\n } else {\n gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n for (const prop in schemaDeps) {\n if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n gen.if(\n propertyInData(gen, data, prop, it.opts.ownProperties),\n () => {\n const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n cxt.mergeValidEvaluated(schCxt, valid)\n },\n () => gen.var(valid, true) // TODO var\n )\n cxt.ok(valid)\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: \"property name must be valid\",\n params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n if (alwaysValidSchema(it, schema)) return\n const valid = gen.name(\"valid\")\n\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({propertyName: key})\n cxt.subschema(\n {\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n },\n valid\n )\n gen.if(not(valid), () => {\n cxt.error(true)\n if (!it.allErrors) gen.break()\n })\n })\n\n cxt.ok(valid)\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n AddedKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n \"additionalProperties\",\n {additionalProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have additional properties\",\n params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const {gen, schema, parentSchema, data, errsCount, it} = cxt\n /* istanbul ignore if */\n if (!errsCount) throw new Error(\"ajv implementation error\")\n const {allErrors, opts} = it\n it.props = true\n if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n const props = allSchemaProperties(parentSchema.properties)\n const patProps = allSchemaProperties(parentSchema.patternProperties)\n checkAdditionalProperties()\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function checkAdditionalProperties(): void {\n gen.forIn(\"key\", data, (key: Name) => {\n if (!props.length && !patProps.length) additionalPropertyCode(key)\n else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n })\n }\n\n function isAdditional(key: Name): Code {\n let definedProp: Code\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n definedProp = isOwnProperty(gen, propsSchema as Code, key)\n } else if (props.length) {\n definedProp = or(...props.map((p) => _`${key} === ${p}`))\n } else {\n definedProp = nil\n }\n if (patProps.length) {\n definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n }\n return not(definedProp)\n }\n\n function deleteAdditional(key: Name): void {\n gen.code(_`delete ${data}[${key}]`)\n }\n\n function additionalPropertyCode(key: Name): void {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key)\n return\n }\n\n if (schema === false) {\n cxt.setParams({additionalProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false)\n gen.if(not(valid), () => {\n cxt.reset()\n deleteAdditional(key)\n })\n } else {\n applyAdditionalSchema(key, valid)\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n }\n\n function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n const subschema: SubschemaArgs = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n }\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n })\n }\n cxt.subschema(subschema, valid)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n }\n const allProps = allSchemaProperties(schema)\n for (const prop of allProps) {\n it.definedProperties.add(prop)\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = mergeEvaluated.props(gen, toHash(allProps), it.props)\n }\n const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n if (properties.length === 0) return\n const valid = gen.name(\"valid\")\n\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop)\n } else {\n gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n applyPropertySchema(prop)\n if (!it.allErrors) gen.else().var(valid, true)\n gen.endIf()\n }\n cxt.it.definedProperties.add(prop)\n cxt.ok(valid)\n }\n\n function hasDefault(prop: string): boolean | undefined {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n }\n\n function applyPropertySchema(prop: string): void {\n cxt.subschema(\n {\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n },\n valid\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, data, parentSchema, it} = cxt\n const {opts} = it\n const patterns = allSchemaProperties(schema)\n const alwaysValidPatterns = patterns.filter((p) =>\n alwaysValidSchema(it, schema[p] as AnySchema)\n )\n\n if (\n patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))\n ) {\n return\n }\n\n const checkProperties =\n opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n const valid = gen.name(\"valid\")\n if (it.props !== true && !(it.props instanceof Name)) {\n it.props = evaluatedPropsToName(gen, it.props)\n }\n const {props} = it\n validatePatternProperties()\n\n function validatePatternProperties(): void {\n for (const pat of patterns) {\n if (checkProperties) checkMatchingProperties(pat)\n if (it.allErrors) {\n validateProperties(pat)\n } else {\n gen.var(valid, true) // TODO var\n validateProperties(pat)\n gen.if(valid)\n }\n }\n }\n\n function checkMatchingProperties(pat: string): void {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n checkStrictMode(\n it,\n `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n )\n }\n }\n }\n\n function validateProperties(pat: string): void {\n gen.forIn(\"key\", data, (key) => {\n gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat)\n if (!alwaysValid) {\n cxt.subschema(\n {\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n }\n\n if (it.opts.unevaluated && props !== true) {\n gen.assign(_`${props}[${key}]`, true)\n } else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if(not(valid), () => gen.break())\n }\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n if (alwaysValidSchema(it, schema)) {\n cxt.fail()\n return\n }\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n valid\n )\n\n cxt.failResult(\n valid,\n () => cxt.reset(),\n () => cxt.error()\n )\n },\n error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: validateUnion,\n error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n \"oneOf\",\n {passingSchemas: [number, number] | null},\n AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must match exactly one schema in oneOf\",\n params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n if (it.opts.discriminator && parentSchema.discriminator) return\n const schArr: AnySchema[] = schema\n const valid = gen.let(\"valid\", false)\n const passing = gen.let(\"passing\", null)\n const schValid = gen.name(\"_valid\")\n cxt.setParams({passing})\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n\n gen.block(validateOneOf)\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n\n function validateOneOf(): void {\n schArr.forEach((sch: AnySchema, i: number) => {\n let schCxt: SchemaCxt | undefined\n if (alwaysValidSchema(it, sch)) {\n gen.var(schValid, true)\n } else {\n schCxt = cxt.subschema(\n {\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n }\n\n if (i > 0) {\n gen\n .if(_`${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, _`[${passing}, ${i}]`)\n .else()\n }\n\n gen.if(schValid, () => {\n gen.assign(valid, true)\n gen.assign(passing, i)\n if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const valid = gen.name(\"valid\")\n schema.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n cxt.ok(valid)\n cxt.mergeEvaluated(schCxt)\n })\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, parentSchema, it} = cxt\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n checkStrictMode(it, '\"if\" without \"then\" and \"else\" is ignored')\n }\n const hasThen = hasSchema(it, \"then\")\n const hasElse = hasSchema(it, \"else\")\n if (!hasThen && !hasElse) return\n\n const valid = gen.let(\"valid\", true)\n const schValid = gen.name(\"_valid\")\n validateIf()\n cxt.reset()\n\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\")\n cxt.setParams({ifClause})\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause))\n } else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"))\n } else {\n gen.if(not(schValid), validateClause(\"else\"))\n }\n\n cxt.pass(valid, () => cxt.error(true))\n\n function validateIf(): void {\n const schCxt = cxt.subschema(\n {\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n schValid\n )\n cxt.mergeEvaluated(schCxt)\n }\n\n function validateClause(keyword: string, ifClause?: Name): () => void {\n return () => {\n const schCxt = cxt.subschema({keyword}, schValid)\n gen.assign(valid, schValid)\n cxt.mergeValidEvaluated(schCxt, valid)\n if (ifClause) gen.assign(ifClause, _`${keyword}`)\n else cxt.setParams({ifClause: keyword})\n }\n }\n },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n const schema = it.schema[keyword]\n return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n },\n}\n\nexport default def\n","import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n const applicator = [\n // any\n notKeyword,\n anyOf,\n oneOf,\n allOf,\n ifKeyword,\n thenElse,\n // object\n propertyNames,\n additionalProperties,\n dependencies,\n properties,\n patternProperties,\n ]\n // array\n if (draft2020) applicator.push(prefixItems, items2020)\n else applicator.push(additionalItems, items)\n applicator.push(contains)\n return applicator\n}\n\nexport type ApplicatorKeywordError =\n | ErrorNoParams<\"false schema\">\n | AdditionalItemsError\n | ItemsError\n | ContainsError\n | AdditionalPropertiesError\n | DependenciesError\n | IfKeywordError\n | AnyOfError\n | OneOfError\n | NotKeywordError\n | PropertyNamesError\n","import type {\n AddedFormat,\n FormatValidator,\n AsyncFormatValidator,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n | FormatValidator<string>\n | FormatValidator<number>\n | AsyncFormatValidator<string>\n | AsyncFormatValidator<number>\n | RegExp\n | string\n | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt, ruleType?: string) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const {opts, errSchemaPath, schemaEnv, self} = it\n if (!opts.validateFormats) return\n\n if ($data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n const fType = gen.let(\"fType\")\n const format = gen.let(\"format\")\n // TODO simplify\n gen.if(\n _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n )\n cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n function unknownFmt(): Code {\n if (opts.strictSchema === false) return nil\n return _`${schemaCode} && !${format}`\n }\n\n function invalidFmt(): Code {\n const callFormat = schemaEnv.$async\n ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : _`${format}(${data})`\n const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n }\n }\n\n function validateFormat(): void {\n const formatDef: AddedFormat | undefined = self.formats[schema]\n if (!formatDef) {\n unknownFormat()\n return\n }\n if (formatDef === true) return\n const [fmtType, format, fmtRef] = getFormat(formatDef)\n if (fmtType === ruleType) cxt.pass(validCondition())\n\n function unknownFormat(): void {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg())\n return\n }\n throw new Error(unknownMsg())\n\n function unknownMsg(): string {\n return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n }\n }\n\n function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n const code =\n fmtDef instanceof RegExp\n ? regexpCode(fmtDef)\n : opts.code.formats\n ? _`${opts.code.formats}${getProperty(schema)}`\n : undefined\n const fmt = gen.scopeValue(\"formats\", {key: schema, ref: fmtDef, code})\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, _`${fmt}.validate`]\n }\n\n return [\"string\", fmtDef, fmt]\n }\n\n function validCondition(): Code {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n return _`await ${fmtRef}(${data})`\n }\n return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n }\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n","import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n]\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft7Vocabularies: Vocabulary[] = [\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n]\n\nexport default draft7Vocabularies\n","import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n Tag = \"tag\",\n Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj<E extends DiscrError> = ErrorObject<\n \"discriminator\",\n {error: E; tag: string; tagValue: unknown},\n string\n>\n","import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {discrError, tagName}}) =>\n discrError === DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({params: {discrError, tag, tagName}}) =>\n _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schema, parentSchema, it} = cxt\n const {oneOf} = parentSchema\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\")\n }\n const tagName = schema.propertyName\n if (typeof tagName != \"string\") throw new Error(\"discriminator: requires propertyName\")\n if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n const valid = gen.let(\"valid\", false)\n const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n gen.if(\n _`typeof ${tag} == \"string\"`,\n () => validateMapping(),\n () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n )\n cxt.ok(valid)\n\n function validateMapping(): void {\n const mapping = getMapping()\n gen.if(false)\n for (const tagValue in mapping) {\n gen.elseIf(_`${tag} === ${tagValue}`)\n gen.assign(valid, applyTagSchema(mapping[tagValue]))\n }\n gen.else()\n cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n gen.endIf()\n }\n\n function applyTagSchema(schemaProp?: number): Name {\n const _valid = gen.name(\"valid\")\n const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n cxt.mergeEvaluated(schCxt, Name)\n return _valid\n }\n\n function getMapping(): {[T in string]?: number} {\n const oneOfMapping: {[T in string]?: number} = {}\n const topRequired = hasRequired(parentSchema)\n let tagRequired = true\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i]\n if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n const ref = sch.$ref\n sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref)\n if (sch instanceof SchemaEnv) sch = sch.schema\n if (sch === undefined) throw new MissingRefError(it.opts.uriResolver, it.baseId, ref)\n }\n const propSch = sch?.properties?.[tagName]\n if (typeof propSch != \"object\") {\n throw new Error(\n `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n )\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch))\n addMappings(propSch, i)\n }\n if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n return oneOfMapping\n\n function hasRequired({required}: AnySchemaObject): boolean {\n return Array.isArray(required) && required.includes(tagName)\n }\n\n function addMappings(sch: AnySchemaObject, i: number): void {\n if (sch.const) {\n addMapping(sch.const, i)\n } else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i)\n }\n } else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n }\n }\n\n function addMapping(tagValue: unknown, i: number): void {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`)\n }\n oneOfMapping[tagValue] = i\n }\n }\n },\n}\n\nexport default def\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Core schema meta-schema\",\n \"definitions\": {\n \"schemaArray\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\"$ref\": \"#\"}\n },\n \"nonNegativeInteger\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"nonNegativeIntegerDefault0\": {\n \"allOf\": [{\"$ref\": \"#/definitions/nonNegativeInteger\"}, {\"default\": 0}]\n },\n \"simpleTypes\": {\n \"enum\": [\"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\"]\n },\n \"stringArray\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"},\n \"uniqueItems\": true,\n \"default\": []\n }\n },\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"$id\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$schema\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"$ref\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$comment\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"default\": true,\n \"readOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"examples\": {\n \"type\": \"array\",\n \"items\": true\n },\n \"multipleOf\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maximum\": {\n \"type\": \"number\"\n },\n \"exclusiveMaximum\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"exclusiveMinimum\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n \"minLength\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n \"pattern\": {\n \"type\": \"string\",\n \"format\": \"regex\"\n },\n \"additionalItems\": {\"$ref\": \"#\"},\n \"items\": {\n \"anyOf\": [{\"$ref\": \"#\"}, {\"$ref\": \"#/definitions/schemaArray\"}],\n \"default\": true\n },\n \"maxItems\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n \"minItems\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n \"uniqueItems\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"contains\": {\"$ref\": \"#\"},\n \"maxProperties\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n \"minProperties\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n \"required\": {\"$ref\": \"#/definitions/stringArray\"},\n \"additionalProperties\": {\"$ref\": \"#\"},\n \"definitions\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$ref\": \"#\"},\n \"default\": {}\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$ref\": \"#\"},\n \"default\": {}\n },\n \"patternProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$ref\": \"#\"},\n \"propertyNames\": {\"format\": \"regex\"},\n \"default\": {}\n },\n \"dependencies\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [{\"$ref\": \"#\"}, {\"$ref\": \"#/definitions/stringArray\"}]\n }\n },\n \"propertyNames\": {\"$ref\": \"#\"},\n \"const\": true,\n \"enum\": {\n \"type\": \"array\",\n \"items\": true,\n \"minItems\": 1,\n \"uniqueItems\": true\n },\n \"type\": {\n \"anyOf\": [\n {\"$ref\": \"#/definitions/simpleTypes\"},\n {\n \"type\": \"array\",\n \"items\": {\"$ref\": \"#/definitions/simpleTypes\"},\n \"minItems\": 1,\n \"uniqueItems\": true\n }\n ]\n },\n \"format\": {\"type\": \"string\"},\n \"contentMediaType\": {\"type\": \"string\"},\n \"contentEncoding\": {\"type\": \"string\"},\n \"if\": {\"$ref\": \"#\"},\n \"then\": {\"$ref\": \"#\"},\n \"else\": {\"$ref\": \"#\"},\n \"allOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n \"anyOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n \"oneOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n \"not\": {\"$ref\": \"#\"}\n },\n \"default\": true\n}\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore from \"./core\"\nimport draft7Vocabularies from \"./vocabularies/draft7\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport * as draft7MetaSchema from \"./refs/json-schema-draft-07.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\"\n\nexport class Ajv extends AjvCore {\n _addVocabularies(): void {\n super._addVocabularies()\n draft7Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n if (!this.opts.meta) return\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false)\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv\nmodule.exports.Ajv = Ajv\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n SchemaValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","/**\n * Step Machine Reducer — Pure Functions\n *\n * currentState + stepResult → newState\n * No I/O, no side effects, deterministic.\n */\n\nimport type {\n StepFlowConfig,\n StepMachineState,\n StepResult,\n StepReducerResult,\n} from './types.js';\n\n/**\n * Apply a step result to the current state and compute the next state.\n * Pure function: no side effects.\n */\nexport function applyStepResult(\n flow: StepFlowConfig,\n state: StepMachineState,\n stepName: string,\n stepResult: StepResult\n): StepReducerResult {\n const stepConfig = flow.steps[stepName];\n\n if (!stepConfig) {\n throw new Error(`Step \"${stepName}\" not found in flow configuration`);\n }\n\n // Check retry\n if (stepResult.result === 'failure' && stepConfig.retry) {\n const retryCount = state.retryCounts[stepName] ?? 0;\n if (retryCount < stepConfig.retry.max_attempts) {\n return {\n newState: {\n ...state,\n retryCounts: {\n ...state.retryCounts,\n [stepName]: retryCount + 1,\n },\n updatedAt: Date.now(),\n },\n nextStep: stepName,\n isTerminal: false,\n isCircuitBroken: false,\n shouldRetry: true,\n };\n }\n }\n\n // Find transition. Failure transitions are explicit error-path overrides.\n const nextStep =\n stepConfig.failure_transitions?.[stepResult.result] ??\n stepConfig.transitions[stepResult.result];\n if (!nextStep) {\n throw new Error(\n `No transition defined for result \"${stepResult.result}\" in step \"${stepName}\"`\n );\n }\n\n // Check if next is terminal\n const isTerminal = !!flow.terminal_states[nextStep];\n\n return {\n newState: {\n ...state,\n currentStep: nextStep,\n stepHistory: [...state.stepHistory, stepName],\n retryCounts: {\n ...state.retryCounts,\n [stepName]: 0,\n },\n updatedAt: Date.now(),\n },\n nextStep,\n isTerminal,\n isCircuitBroken: false,\n shouldRetry: false,\n };\n}\n\n/**\n * Check circuit breaker for a step. Returns the redirected step if broken.\n * Pure function.\n */\nexport function checkCircuitBreaker(\n flow: StepFlowConfig,\n state: StepMachineState,\n stepName: string\n): { broken: boolean; redirectStep?: string; newState: StepMachineState } {\n const stepConfig = flow.steps[stepName];\n if (!stepConfig?.circuit_breaker) {\n return {\n broken: false,\n newState: {\n ...state,\n iterationCounts: {\n ...state.iterationCounts,\n [stepName]: (state.iterationCounts[stepName] ?? 0) + 1,\n },\n updatedAt: Date.now(),\n },\n };\n }\n\n const count = state.iterationCounts[stepName] ?? 0;\n if (count >= stepConfig.circuit_breaker.max_iterations) {\n return {\n broken: true,\n redirectStep: stepConfig.circuit_breaker.on_open,\n newState: {\n ...state,\n currentStep: stepConfig.circuit_breaker.on_open,\n updatedAt: Date.now(),\n },\n };\n }\n\n return {\n broken: false,\n newState: {\n ...state,\n iterationCounts: {\n ...state.iterationCounts,\n [stepName]: count + 1,\n },\n updatedAt: Date.now(),\n },\n };\n}\n\n/**\n * Compute what a step needs as input. Pure function.\n */\nexport function computeStepInput(\n flow: StepFlowConfig,\n stepName: string,\n allData: Record<string, unknown>\n): Record<string, unknown> {\n const stepConfig = flow.steps[stepName];\n if (!stepConfig) {\n throw new Error(`Step \"${stepName}\" not found`);\n }\n\n if (stepConfig.expects_data) {\n const input: Record<string, unknown> = {};\n for (const key of stepConfig.expects_data) {\n input[key] = allData[key];\n }\n return input;\n }\n\n // If no expects_data, pass all data\n return { ...allData };\n}\n\n/**\n * Extract return data from terminal state. Pure function.\n */\nexport function extractReturnData(\n returnArtifacts: string | string[] | false | undefined,\n allData: Record<string, unknown>\n): Record<string, unknown> {\n if (returnArtifacts === false || returnArtifacts === undefined) {\n return {};\n }\n\n if (typeof returnArtifacts === 'string') {\n return { [returnArtifacts]: allData[returnArtifacts] };\n }\n\n if (Array.isArray(returnArtifacts)) {\n const result: Record<string, unknown> = {};\n for (const key of returnArtifacts) {\n result[key] = allData[key];\n }\n return result;\n }\n\n return {};\n}\n\n/**\n * Create initial state for a new run. Pure function.\n */\nexport function createInitialState(\n flow: StepFlowConfig,\n runId: string\n): StepMachineState {\n const now = Date.now();\n return {\n runId,\n flowId: flow.id ?? 'unnamed',\n currentStep: flow.settings.start_step,\n status: 'running',\n stepHistory: [],\n iterationCounts: {},\n retryCounts: {},\n startedAt: now,\n updatedAt: now,\n };\n}\n","/**\n * yaml-flow - Memory Store\n * \n * In-memory store implementation. Works in both browser and Node.js.\n * Data is lost when the process exits - use for testing or short-lived flows.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport class MemoryStore implements StepMachineStore {\n private runs: Map<string, StepMachineState> = new Map();\n private data: Map<string, Record<string, unknown>> = new Map();\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n this.runs.set(runId, { ...state });\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const state = this.runs.get(runId);\n return state ? { ...state } : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n this.runs.delete(runId);\n this.data.delete(runId);\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n if (!this.data.has(runId)) {\n this.data.set(runId, {});\n }\n const runData = this.data.get(runId)!;\n runData[key] = value;\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n return this.data.get(runId)?.[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n return { ...(this.data.get(runId) ?? {}) };\n }\n\n async clearData(runId: string): Promise<void> {\n this.data.delete(runId);\n }\n\n async listRuns(): Promise<string[]> {\n return Array.from(this.runs.keys());\n }\n\n /**\n * Clear all data (useful for testing)\n */\n clear(): void {\n this.runs.clear();\n this.data.clear();\n }\n}\n","/**\n * Step Machine — Convenience Driver Class\n *\n * Wraps the pure reducer with a run loop and store I/O.\n * This is the framework layer. The reducer is the pure core.\n */\n\nimport type {\n StepFlowConfig,\n StepMachineStore,\n StepMachineResult,\n StepHandler,\n StepContext,\n StepResult,\n StepMachineState,\n StepMachineOptions,\n StepEvent,\n StepEventType,\n StepEventListener,\n} from './types.js';\nimport {\n applyStepResult,\n checkCircuitBreaker,\n computeStepInput,\n extractReturnData,\n createInitialState,\n} from './reducer.js';\nimport { MemoryStore } from '../stores/memory.js';\n\nfunction generateRunId(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\nexport class StepMachine {\n private flow: StepFlowConfig;\n private handlers: Map<string, StepHandler>;\n private store: StepMachineStore;\n private components: Record<string, unknown>;\n private options: StepMachineOptions;\n private listeners: Map<StepEventType, Set<StepEventListener>> = new Map();\n private aborted = false;\n\n constructor(\n flow: StepFlowConfig,\n handlers: Record<string, StepHandler>,\n options: StepMachineOptions = {}\n ) {\n this.flow = flow;\n this.handlers = new Map(Object.entries(handlers));\n this.store = options.store ?? new MemoryStore();\n this.components = options.components ?? {};\n this.options = options;\n\n if (options.signal) {\n options.signal.addEventListener('abort', () => {\n this.aborted = true;\n });\n }\n\n this.validateFlow();\n }\n\n private validateFlow(): void {\n const { settings, steps, terminal_states } = this.flow;\n\n if (!settings?.start_step) {\n throw new Error('Flow must have settings.start_step defined');\n }\n if (!steps || Object.keys(steps).length === 0) {\n throw new Error('Flow must have at least one step defined');\n }\n if (!terminal_states || Object.keys(terminal_states).length === 0) {\n throw new Error('Flow must have at least one terminal_state defined');\n }\n if (!steps[settings.start_step] && !terminal_states[settings.start_step]) {\n throw new Error(`Start step \"${settings.start_step}\" not found`);\n }\n for (const [stepName, stepConfig] of Object.entries(steps)) {\n for (const [result, target] of Object.entries(stepConfig.transitions)) {\n if (!steps[target] && !terminal_states[target]) {\n throw new Error(\n `Step \"${stepName}\" transition \"${result}\" points to unknown step \"${target}\"`\n );\n }\n }\n\n if (stepConfig.failure_transitions) {\n for (const [result, target] of Object.entries(stepConfig.failure_transitions)) {\n if (!steps[target] && !terminal_states[target]) {\n throw new Error(\n `Step \"${stepName}\" failure_transition \"${result}\" points to unknown step \"${target}\"`\n );\n }\n }\n }\n }\n }\n\n on(eventType: StepEventType, listener: StepEventListener): void {\n if (!this.listeners.has(eventType)) {\n this.listeners.set(eventType, new Set());\n }\n this.listeners.get(eventType)!.add(listener);\n }\n\n off(eventType: StepEventType, listener: StepEventListener): void {\n this.listeners.get(eventType)?.delete(listener);\n }\n\n private emit(event: StepEvent): void {\n const typeListeners = this.listeners.get(event.type);\n if (typeListeners) {\n for (const listener of typeListeners) {\n try { listener(event); } catch { /* swallow listener errors */ }\n }\n }\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n async run(initialData?: Record<string, unknown>): Promise<StepMachineResult> {\n const runId = generateRunId();\n let runState = createInitialState(this.flow, runId);\n\n await this.store.saveRunState(runId, runState);\n\n if (initialData) {\n for (const [key, value] of Object.entries(initialData)) {\n await this.store.setData(runId, key, value);\n }\n }\n\n this.emit({\n type: 'flow:start',\n runId,\n timestamp: runState.startedAt,\n data: { initialData: initialData ?? {} },\n });\n\n try {\n return await this.executeLoop(runId, runState);\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n this.emit({ type: 'flow:error', runId, timestamp: Date.now(), data: { error: err.message } });\n this.options.onError?.(err);\n\n runState = { ...runState, status: 'failed', updatedAt: Date.now() };\n await this.store.saveRunState(runId, runState);\n\n return {\n runId,\n status: 'failed',\n data: await this.store.getAllData(runId),\n finalStep: runState.currentStep,\n stepHistory: runState.stepHistory,\n durationMs: Date.now() - runState.startedAt,\n error: err,\n };\n }\n }\n\n async resume(runId: string): Promise<StepMachineResult> {\n const runState = await this.store.loadRunState(runId);\n if (!runState) throw new Error(`No run found with ID: ${runId}`);\n if (runState.status === 'completed' || runState.status === 'failed') {\n throw new Error(`Cannot resume a ${runState.status} run`);\n }\n\n const updated: StepMachineState = { ...runState, status: 'running', pausedAt: undefined, updatedAt: Date.now() };\n await this.store.saveRunState(runId, updated);\n this.emit({ type: 'flow:resumed', runId, timestamp: Date.now(), data: { currentStep: updated.currentStep } });\n\n return this.executeLoop(runId, updated);\n }\n\n async pause(runId: string): Promise<void> {\n const runState = await this.store.loadRunState(runId);\n if (!runState) throw new Error(`No run found with ID: ${runId}`);\n\n const updated: StepMachineState = { ...runState, status: 'paused', pausedAt: Date.now(), updatedAt: Date.now() };\n await this.store.saveRunState(runId, updated);\n this.emit({ type: 'flow:paused', runId, timestamp: Date.now(), data: { currentStep: updated.currentStep } });\n }\n\n private async executeLoop(runId: string, runState: StepMachineState): Promise<StepMachineResult> {\n const maxSteps = this.flow.settings.max_total_steps ?? 100;\n const timeoutMs = this.flow.settings.timeout_ms;\n let current = runState;\n let iterations = 0;\n\n while (iterations < maxSteps) {\n if (this.aborted) {\n current = { ...current, status: 'cancelled', updatedAt: Date.now() };\n await this.store.saveRunState(runId, current);\n return { runId, status: 'cancelled', data: await this.store.getAllData(runId), finalStep: current.currentStep, stepHistory: current.stepHistory, durationMs: Date.now() - current.startedAt };\n }\n\n if (timeoutMs && Date.now() - current.startedAt > timeoutMs) {\n current = { ...current, status: 'completed', updatedAt: Date.now() };\n await this.store.saveRunState(runId, current);\n return { runId, status: 'timeout', intent: 'timeout', data: await this.store.getAllData(runId), finalStep: current.currentStep, stepHistory: current.stepHistory, durationMs: Date.now() - current.startedAt };\n }\n\n const stepName = current.currentStep;\n\n // Terminal state check\n const terminalState = this.flow.terminal_states[stepName];\n if (terminalState) {\n current = { ...current, status: 'completed', updatedAt: Date.now() };\n await this.store.saveRunState(runId, current);\n const allData = await this.store.getAllData(runId);\n const result: StepMachineResult = {\n runId, status: 'completed', intent: terminalState.return_intent,\n data: extractReturnData(terminalState.return_artifacts, allData),\n finalStep: stepName, stepHistory: current.stepHistory, durationMs: Date.now() - current.startedAt,\n };\n this.emit({ type: 'flow:complete', runId, timestamp: Date.now(), data: { ...result } });\n this.options.onComplete?.(result);\n return result;\n }\n\n // Circuit breaker (pure)\n const cbResult = checkCircuitBreaker(this.flow, current, stepName);\n if (cbResult.broken) {\n current = cbResult.newState;\n await this.store.saveRunState(runId, current);\n iterations++;\n continue;\n }\n current = cbResult.newState;\n\n // Execute step handler (impure — localized)\n const allData = await this.store.getAllData(runId);\n const input = computeStepInput(this.flow, stepName, allData);\n const context: StepContext = {\n runId, stepName, components: this.components, store: this.store,\n signal: this.options.signal,\n emit: (event: string, data: unknown) => {\n this.emit({ type: 'step:complete' as StepEventType, runId, timestamp: Date.now(), data: { event, payload: data } });\n },\n };\n\n this.emit({ type: 'step:start', runId, timestamp: Date.now(), data: { step: stepName, input } });\n\n let stepResult: StepResult;\n try {\n const handler = this.handlers.get(stepName);\n if (!handler) throw new Error(`No handler registered for step \"${stepName}\"`);\n stepResult = await handler(input, context);\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n this.emit({ type: 'step:error', runId, timestamp: Date.now(), data: { step: stepName, error: err.message } });\n stepResult = { result: 'failure', data: { error: err.message } };\n }\n\n // Store produced data\n if (stepResult.data) {\n for (const [key, value] of Object.entries(stepResult.data)) {\n await this.store.setData(runId, key, value);\n }\n }\n\n this.emit({ type: 'step:complete', runId, timestamp: Date.now(), data: { step: stepName, result: stepResult.result } });\n this.options.onStep?.(stepName, stepResult);\n\n // Apply step result (pure reducer)\n const reducerResult = applyStepResult(this.flow, current, stepName, stepResult);\n current = reducerResult.newState;\n\n if (reducerResult.shouldRetry) {\n await this.store.saveRunState(runId, current);\n const stepConfig = this.flow.steps[stepName];\n if (stepConfig.retry?.delay_ms) {\n const retryCount = current.retryCounts[stepName] ?? 0;\n const delay = stepConfig.retry.backoff_multiplier\n ? stepConfig.retry.delay_ms * Math.pow(stepConfig.retry.backoff_multiplier, retryCount - 1)\n : stepConfig.retry.delay_ms;\n await this.sleep(delay);\n }\n iterations++;\n continue;\n }\n\n await this.store.saveRunState(runId, current);\n this.emit({ type: 'transition', runId, timestamp: Date.now(), data: { from: stepName, to: current.currentStep, result: stepResult.result } });\n this.options.onTransition?.(stepName, current.currentStep);\n iterations++;\n }\n\n // Max iterations\n current = { ...current, status: 'completed', updatedAt: Date.now() };\n await this.store.saveRunState(runId, current);\n return { runId, status: 'max_iterations', intent: 'max_iterations', data: await this.store.getAllData(runId), finalStep: current.currentStep, stepHistory: current.stepHistory, durationMs: Date.now() - current.startedAt };\n }\n}\n\n/** Convenience factory */\nexport function createStepMachine(\n flow: StepFlowConfig,\n handlers: Record<string, StepHandler>,\n options?: StepMachineOptions\n): StepMachine {\n return new StepMachine(flow, handlers, options);\n}\n","/**\n * Step Machine — Loader\n *\n * Utilities for loading and validating step-machine flow configurations.\n */\n\nimport type { StepFlowConfig } from './types.js';\n\nexport async function parseStepFlowYaml(yamlString: string): Promise<StepFlowConfig> {\n const yaml = await import('yaml');\n return yaml.parse(yamlString) as StepFlowConfig;\n}\n\nexport async function loadStepFlowFromUrl(url: string): Promise<StepFlowConfig> {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to load flow from ${url}: ${response.statusText}`);\n }\n const contentType = response.headers.get('content-type') ?? '';\n const text = await response.text();\n if (contentType.includes('json') || url.endsWith('.json')) {\n return JSON.parse(text) as StepFlowConfig;\n }\n return parseStepFlowYaml(text);\n}\n\nexport async function loadStepFlowFromFile(filePath: string): Promise<StepFlowConfig> {\n const fs = await import('fs/promises');\n const text = await fs.readFile(filePath, 'utf-8');\n if (filePath.endsWith('.json')) {\n return JSON.parse(text) as StepFlowConfig;\n }\n return parseStepFlowYaml(text);\n}\n\nexport function validateStepFlowConfig(flow: unknown): string[] {\n const errors: string[] = [];\n if (!flow || typeof flow !== 'object') {\n return ['Flow must be an object'];\n }\n const f = flow as Record<string, unknown>;\n\n if (!f.settings || typeof f.settings !== 'object') {\n errors.push('Flow must have a \"settings\" object');\n } else {\n const settings = f.settings as Record<string, unknown>;\n if (typeof settings.start_step !== 'string') {\n errors.push('settings.start_step must be a string');\n }\n }\n\n if (!f.steps || typeof f.steps !== 'object') {\n errors.push('Flow must have a \"steps\" object');\n } else {\n const steps = f.steps as Record<string, unknown>;\n for (const [stepName, stepConfig] of Object.entries(steps)) {\n if (!stepConfig || typeof stepConfig !== 'object') {\n errors.push(`Step \"${stepName}\" must be an object`);\n continue;\n }\n const step = stepConfig as Record<string, unknown>;\n if (!step.transitions || typeof step.transitions !== 'object') {\n errors.push(`Step \"${stepName}\" must have a \"transitions\" object`);\n }\n if (step.failure_transitions !== undefined && typeof step.failure_transitions !== 'object') {\n errors.push(`Step \"${stepName}\" failure_transitions must be an object when provided`);\n }\n }\n }\n\n if (!f.terminal_states || typeof f.terminal_states !== 'object') {\n errors.push('Flow must have a \"terminal_states\" object');\n } else {\n const terminals = f.terminal_states as Record<string, unknown>;\n for (const [name, config] of Object.entries(terminals)) {\n if (!config || typeof config !== 'object') {\n errors.push(`Terminal state \"${name}\" must be an object`);\n continue;\n }\n const terminal = config as Record<string, unknown>;\n if (typeof terminal.return_intent !== 'string') {\n errors.push(`Terminal state \"${name}\" must have a \"return_intent\" string`);\n }\n }\n }\n\n return errors;\n}\n\nexport async function loadStepFlow(source: string | StepFlowConfig): Promise<StepFlowConfig> {\n let flow: StepFlowConfig;\n if (typeof source === 'string') {\n if (source.startsWith('http://') || source.startsWith('https://')) {\n flow = await loadStepFlowFromUrl(source);\n } else if (source.includes('{')) {\n flow = JSON.parse(source);\n } else {\n flow = await loadStepFlowFromFile(source);\n }\n } else {\n flow = source;\n }\n const errors = validateStepFlowConfig(flow);\n if (errors.length > 0) {\n throw new Error(`Invalid step flow configuration:\\n- ${errors.join('\\n- ')}`);\n }\n return flow;\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://github.com/yaml-flow/schema/flow.json\",\n \"title\": \"YamlFlow Configuration\",\n \"description\": \"Schema for yaml-flow workflow definitions\",\n \"type\": \"object\",\n \"required\": [\"settings\", \"steps\", \"terminal_states\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Optional flow identifier\"\n },\n \"settings\": {\n \"type\": \"object\",\n \"description\": \"Flow-level settings\",\n \"required\": [\"start_step\"],\n \"properties\": {\n \"start_step\": {\n \"type\": \"string\",\n \"description\": \"Step to start execution from\"\n },\n \"max_total_steps\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"default\": 100,\n \"description\": \"Maximum steps before forced termination\"\n },\n \"timeout_ms\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"Flow timeout in milliseconds\"\n }\n },\n \"additionalProperties\": false\n },\n \"steps\": {\n \"type\": \"object\",\n \"description\": \"Step definitions\",\n \"minProperties\": 1,\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/step\"\n }\n },\n \"terminal_states\": {\n \"type\": \"object\",\n \"description\": \"Terminal state definitions\",\n \"minProperties\": 1,\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/terminal_state\"\n }\n }\n },\n \"additionalProperties\": false,\n \"definitions\": {\n \"step\": {\n \"type\": \"object\",\n \"description\": \"Individual step configuration\",\n \"required\": [\"transitions\"],\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Human-readable description\"\n },\n \"expects_data\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"description\": \"Data keys this step expects as input\"\n },\n \"produces_data\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"description\": \"Data keys this step produces as output\"\n },\n \"transitions\": {\n \"type\": \"object\",\n \"description\": \"Mapping of result -> next step name\",\n \"additionalProperties\": { \"type\": \"string\" },\n \"minProperties\": 1\n },\n \"failure_transitions\": {\n \"type\": \"object\",\n \"description\": \"Mapping of failure-like results (e.g. failure, timeout) -> next step name\",\n \"additionalProperties\": { \"type\": \"string\" }\n },\n \"retry\": {\n \"$ref\": \"#/definitions/retry_config\"\n },\n \"circuit_breaker\": {\n \"$ref\": \"#/definitions/circuit_breaker_config\"\n }\n },\n \"additionalProperties\": false\n },\n \"terminal_state\": {\n \"type\": \"object\",\n \"description\": \"Terminal state configuration\",\n \"required\": [\"return_intent\"],\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Human-readable description\"\n },\n \"return_intent\": {\n \"type\": \"string\",\n \"description\": \"Intent/status to return (e.g., 'success', 'error')\"\n },\n \"return_artifacts\": {\n \"oneOf\": [\n { \"type\": \"string\" },\n { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n { \"type\": \"boolean\", \"const\": false }\n ],\n \"description\": \"Data key(s) to include in result, or false to exclude\"\n },\n \"expects_data\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"description\": \"Data keys this terminal state expects\"\n }\n },\n \"additionalProperties\": false\n },\n \"retry_config\": {\n \"type\": \"object\",\n \"description\": \"Retry configuration for step failures\",\n \"required\": [\"max_attempts\"],\n \"properties\": {\n \"max_attempts\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"Maximum retry attempts\"\n },\n \"delay_ms\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"Delay between retries in ms\"\n },\n \"backoff_multiplier\": {\n \"type\": \"number\",\n \"minimum\": 1,\n \"description\": \"Backoff multiplier (e.g., 2 for exponential)\"\n }\n },\n \"additionalProperties\": false\n },\n \"circuit_breaker_config\": {\n \"type\": \"object\",\n \"description\": \"Circuit breaker configuration for loops\",\n \"required\": [\"max_iterations\", \"on_open\"],\n \"properties\": {\n \"max_iterations\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"Maximum iterations before circuit opens\"\n },\n \"on_open\": {\n \"type\": \"string\",\n \"description\": \"Step to transition to when circuit opens\"\n }\n },\n \"additionalProperties\": false\n }\n }\n}\n","/**\n * schema-validator — Full JSON Schema validation for StepFlow configs.\n *\n * Uses AJV to validate against the published flow.schema.json.\n * For a lightweight sync check without AJV, use `validateStepFlowConfig()` instead.\n *\n * @example\n * ```typescript\n * import { validateFlowSchema } from 'yaml-flow/step-machine';\n *\n * const result = validateFlowSchema(config);\n * if (!result.ok) console.error(result.errors);\n * ```\n */\n\nimport flowSchema from '../../schema/flow.schema.json';\nimport Ajv from 'ajv';\nimport addFormats from 'ajv-formats';\n\nexport interface SchemaValidationResult {\n ok: boolean;\n errors: string[];\n}\n\ntype AjvValidateFunction = {\n (data: unknown): boolean;\n errors?: Array<{ instancePath?: string; message?: string }> | null;\n};\n\nlet _compiled: AjvValidateFunction | null = null;\n\nfunction getValidator(): AjvValidateFunction {\n if (_compiled) return _compiled;\n const ajv = new Ajv({ allErrors: true });\n addFormats(ajv);\n _compiled = ajv.compile(flowSchema);\n return _compiled;\n}\n\n/**\n * Validate a step-flow config against the full flow.schema.json (draft-07).\n *\n * Requires `ajv` and `ajv-formats` to be installed.\n */\nexport function validateFlowSchema(\n config: unknown,\n): SchemaValidationResult {\n const validate = getValidator();\n const valid = validate(config);\n\n if (valid) return { ok: true, errors: [] };\n\n const errors = (validate.errors ?? []).map(e => {\n const path = e.instancePath || '/';\n return `${path}: ${e.message ?? 'unknown error'}`;\n });\n\n return { ok: false, errors };\n}\n"]}
|