meadow 2.0.43 → 2.0.44

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.
Files changed (62) hide show
  1. package/README.md +2 -3
  2. package/docs/architecture.md +10 -99
  3. package/docs/diagrams/create-waterfall.excalidraw +2016 -0
  4. package/docs/diagrams/create-waterfall.mmd +19 -0
  5. package/docs/diagrams/create-waterfall.svg +2 -0
  6. package/docs/diagrams/crud-behavior-flow.excalidraw +1305 -0
  7. package/docs/diagrams/crud-behavior-flow.mmd +13 -0
  8. package/docs/diagrams/crud-behavior-flow.svg +2 -0
  9. package/docs/diagrams/module-hierarchy.excalidraw +1582 -0
  10. package/docs/diagrams/module-hierarchy.mmd +15 -0
  11. package/docs/diagrams/module-hierarchy.svg +2 -0
  12. package/docs/diagrams/query-lifecycle.excalidraw +1808 -0
  13. package/docs/diagrams/query-lifecycle.mmd +21 -0
  14. package/docs/diagrams/query-lifecycle.svg +2 -0
  15. package/docs/diagrams/schema-system.excalidraw +2034 -0
  16. package/docs/diagrams/schema-system.mmd +21 -0
  17. package/docs/diagrams/schema-system.svg +2 -0
  18. package/docs/providers/README.md +6 -14
  19. package/docs/providers/diagrams/overview.excalidraw +1324 -0
  20. package/docs/providers/diagrams/overview.mmd +8 -0
  21. package/docs/providers/diagrams/overview.svg +2 -0
  22. package/docs/providers/diagrams/use-case-unified-client-server-interface.excalidraw +919 -0
  23. package/docs/providers/diagrams/use-case-unified-client-server-interface.mmd +12 -0
  24. package/docs/providers/diagrams/use-case-unified-client-server-interface.svg +2 -0
  25. package/docs/providers/meadow-endpoints.md +5 -17
  26. package/docs/providers/mongodb.md +2 -2
  27. package/docs/providers/mssql.md +1 -1
  28. package/docs/providers/mysql.md +1 -1
  29. package/docs/providers/postgresql.md +2 -2
  30. package/docs/providers/rocksdb.md +1 -1
  31. package/docs/providers/sqlite.md +1 -1
  32. package/docs/query/README.md +1 -1
  33. package/docs/query/count.md +2 -8
  34. package/docs/query/create.md +2 -12
  35. package/docs/query/diagrams/how-it-works-2.excalidraw +1097 -0
  36. package/docs/query/diagrams/how-it-works-2.mmd +10 -0
  37. package/docs/query/diagrams/how-it-works-2.svg +2 -0
  38. package/docs/query/diagrams/how-it-works-3.excalidraw +665 -0
  39. package/docs/query/diagrams/how-it-works-3.mmd +6 -0
  40. package/docs/query/diagrams/how-it-works-3.svg +2 -0
  41. package/docs/query/diagrams/how-it-works-4.excalidraw +881 -0
  42. package/docs/query/diagrams/how-it-works-4.mmd +8 -0
  43. package/docs/query/diagrams/how-it-works-4.svg +2 -0
  44. package/docs/query/diagrams/how-it-works-5.excalidraw +881 -0
  45. package/docs/query/diagrams/how-it-works-5.mmd +8 -0
  46. package/docs/query/diagrams/how-it-works-5.svg +2 -0
  47. package/docs/query/diagrams/how-it-works.excalidraw +665 -0
  48. package/docs/query/diagrams/how-it-works.mmd +6 -0
  49. package/docs/query/diagrams/how-it-works.svg +2 -0
  50. package/docs/query/read.md +4 -18
  51. package/docs/query/update.md +2 -10
  52. package/docs/query-dsl.md +1 -1
  53. package/docs/quick-start.md +1 -1
  54. package/docs/retold-catalog.json +1 -1
  55. package/docs/retold-keyword-index.json +1 -1
  56. package/docs/schema/README.md +2 -7
  57. package/docs/schema/diagrams/overview.excalidraw +834 -0
  58. package/docs/schema/diagrams/overview.mmd +5 -0
  59. package/docs/schema/diagrams/overview.svg +2 -0
  60. package/package.json +3 -3
  61. package/source/providers/Meadow-Provider-MeadowEndpoints.js +36 -7
  62. package/test/Meadow-Provider-MeadowEndpoints-Session_tests.js +123 -0
@@ -0,0 +1,12 @@
1
+ graph LR
2
+ subgraph Browser["Browser / Client"]
3
+ AC1["Application Code"]
4
+ ME["Meadow DAL<br/>Provider: MeadowEndpoints"]
5
+ AC1 --- ME
6
+ end
7
+ subgraph Server["Server"]
8
+ AC2["Application Code"]
9
+ MY["Meadow DAL<br/>Provider: MySQL"]
10
+ AC2 --- MY
11
+ end
12
+ ME -- "HTTP / REST" --> MY
@@ -0,0 +1,2 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1120 380" width="1120" height="380"><!-- svg-source:excalidraw --><metadata><!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1bXW/bOFx1MDAxNn3PrzAyr43K70vmLUmT3Vx1MDAwMbaL2clcdTAwMDCLxWKwUGw10VaxXGZbaZpcdTAwMTn0v++VbItcdTAwMTStiFJcdTAwMWOnLtaKW9iUeMWPc3nOvaL+PFx1MDAxYY2Oi6dZcnw6Ok6+juMsnczjx+N3ZfmXZL5I8ymeYtXvRf4wXHUwMDFmV1feXHUwMDE1xez0/XvKIFwi+EdPhVx1MDAwMWqWtZIsuU+mxVx1MDAwMq/7N/5cdTAwMWWN/qz+xzPppKw7zlx1MDAxZVx1MDAxNkUyP7lO5niDqk51dt2KeTIu4ultlthTX7GcXHUwMDBiWf9+wt9UiPr3Yzop7rBcZiTUZXdJentXlFx1MDAxN1x1MDAxYVu4tHs6XCJ1yaKY55+TizzL5+XNf9JncFx1MDAwNcze+iZcdTAwMWV/vp3nXHUwMDBm00l9TTGPp4tZPMdO2us+pVl2XTxV1nGgcFx1MDAxOI+9e/xz1Ujqlde1JvHiLnGq4V1v76bJYtGolM/icVpUI0BsN8omzn6eVIP+u23UPL5Pfi5HffqQZa7h6WRleD05dlx1MDAwMviq5JttZ5KUNoQydZFcdTAwMDdccrfs7/m0XHUwMDAyiVwiSmlCJa8vSFx1MDAxN1x1MDAxZlx1MDAxMFx1MDAxY0Vl7FOcLVx1MDAxMjvKZYsuXHUwMDFk4Ng+PMwm8bJcblx1MDAwNU2EYEoh2OyUZun0s9/BLFx1MDAxZn9uuUs6nSQllI5jcnzkdPFcdTAwMTmAZvFNkj1cdTAwMGLTXCL5WoRcdTAwMTBq+iGU0Vx1MDAxZlx1MDAwM6BerTfBZ+PEy4CIXHUwMDBiXHUwMDAwUYJyLvdcdTAwMDaJXHUwMDE1eHBEfXB9yqfFdfpH1WrZKL2K79OsXHUwMDFjVdkwcpalt9NcbrTYXtdcdTAwMTKaLVJcXM7rXHUwMDBiinxmz47RYpxOk/nm4Ofz9DadxtlvzzQxfijyX5PFspHF/CFx+5/8tV51I+ZcZnfteLSP453P88fFXHUwMDAwarAzX1x1MDAwZdBcdG1xO6XbiMFW3Gu/23dikI5cdTAwMTP08EdGuFGGK7Y//mhcdTAwMDHK+jPDszDdpFx1MDAwNlx1MDAxZqEt0qVccqFcdTAwMDdiXHUwMDE4RlxmQ4HIiFx1MDAwMq2B7lxyXHUwMDBl17ywgtbo/ehcIkubs7V/XGbxfGO341xu3uWKi7t4lpycXdBcdTAwMTNSXHUwMDFkd3lvulB2vp8qnbrhjIy0OKNUXHUwMDAznJGe0yvGd+mMzCv/rs44gCxcdTAwMTRXLlx1MDAwNEM+qoGgh1x1MDAxYfVcIlx1MDAxZq1bZdtXXHUwMDAzaLmGW1x1MDAwMP3XXHUwMDAyqFx1MDAwMaLKJetcdTAwMTPf3nXZjOfoXG6VzY+Xa1xcknaz1aWO3dW3XHUwMDFks5vocqmOXHUwMDEx6aA2R4s/VVx1MDAwMU4kN/zJVVqW3ORe+dPek1x1MDAxYjiLUp+oR1x0wqXUfP/Y7Ww2y5B5XG5s7ehcIp8krezGSKN0a3a7TydcdTAwMTOXXHRu4kVSslCTSJu018kyPlxyPt+r7WhQhmmwXm0m494sKIhcdTAwMTWh5bi2JCs4aUlWgEXhPrjtj0qDQlx1MDAxM1x1MDAxN6tBb1x1MDAwNqGAMzAvyqbtiLN6cCHa/Pivldn7x32iQlx1MDAxNabCekBmSVx1MDAxZib0PcqQXHUwMDE2Kmz1KWet21x1MDAwN5/aeyo0Tlx1MDAwMN0v4SCV4pTBS5xnp1T4yzz/kk6S+enoY1x1MDAxMk/yx8vpZJan5Z3bOJGqRunrRnx9XGKxM1x1MDAwZezRl+2YXHUwMDEw+lx1MDAwNIRsrV5FfyqUTcdl3K6yh5DwXHJCQj1M2Vx1MDAxMi0lo1rvLCZcXGNcYl4xJmSWXGKni31cIkLdJyZsXHUwMDE5kS4mVM2EJ1x1MDAxM/pcdTAwMTBcdTAwMTXuhlxuXHUwMDE5XGZKpygmgSgpXHUwMDBmQeH2QWFcdTAwMWLTvFVQaHpcdTAwMDSF6+VmrHszoVx1MDAxNlx1MDAxNk2V41KLJOu2h6hwZ1GhXHUwMDE4XHUwMDE2XHUwMDE1MiDagHZi91eOXG5fwFo92HB/o8KzXHUwMDFlUeG65aol2bLJhVx1MDAxYi4leStcdTAwMTdcdTAwMWXCwu25kFxy0pFcXFxiZVx1MDAxNFx1MDAwNoZ7x4VOJPV0/Y+//dixYLNcdTAwMDfb0d55l3t2Z7K8haXho8x7iOHEI7WDOruHrINGWjBcbsRcYk5cdTAwMDT+0cR9tFx1MDAxZvZZdlx0XHUwMDFmQPzfXHUwMDEwYZvPKrrhn52MJ1xmx3/qRYS3XHUwMDEzn12lOFxcPrXfRnbyq1x1MDAxZvX339+1Xm2dutfljEZGMUHL9lPsiXFrn9BcYsGJsbJcdTAwMDAqXHUwMDE5YYSIXHUwMDEynkGbgKAmRFxujYujXHUwMDE2Qr+CTc4jJbikevVptPOFJk3ENUeXM4xcYq6NloNGTsiIXHUwMDAw4Vx1MDAwNFx1MDAwN40zJezUv7xFkkRAha4/MKhBUkWcgeRcdTAwMDCMXHUwMDE5oq1X9KqtXHUwMDEwXGLUXHUwMDEwXHUwMDA1jEquuJTDRkNBNKxcdTAwMDLwiGhisMUob7hcdTAwMWFYWUfYUKFcdTAwMThcdTAwMDNcXDqp1oNqa1x1MDAxMTFtoURcdTAwMDfWNpFhuHxoRlx1MDAxNXDJ+PbzbmSkqJJGXHUwMDEzMFJRMmzeKaFcdTAwMTGXqsaNXHUwMDFjNvF4u4hKY4SknHAqm9Vf1iFKcXY5SC2Bc61cdTAwMDc2iJph1/PnwHPk1UP5vSgu8vv7tMCl+5dy2d3glFwinlx1MDAxN+coXHUwMDE30ultM/C6L2Pv01Kn3KSFXHUwMDEzcKzfVlxiPu6tWPervW9jjY8kIfTdRslGX2y8l0wnW7ez7anvKzezXHUwMDFh0LNSMN0l8Vx1MDAwNrdjJ9xzvrJKspv8sTPauugj59pD0C45p/z0o7N7qNZz2lxuNbsjOFKaOIdcdTAwMWGS1TiIuZGWXHUwMDAzk5FcdTAwMDBCXHUwMDFhuj/JyO8q5kRcdTAwMDRGXHUwMDFiwlx1MDAxNFGcXHUwMDE4rVx1MDAxYdVPSERQ+IJcdTAwMTGMa6U5N5qroEjikVx1MDAwMFx1MDAwNoRxTo2i0jcoQVFOlUY2Zlx1MDAxYcBcdTAwMDRVXHUwMDEzK4mh/jS5XHUwMDE3XHJSJuqDS8JoyKAsVyCQQkhNXHUwMDE11cA9g4wyQpVQxFx1MDAxMJRGQrKgQVx1MDAxZGmDY8c0k6C1p4hJtO4tjjSyf3BcdTAwMDBRXHUwMDE4oVx1MDAxY1Prj6aeOVFKrfXBdZBay91xOEhcdTAwMWFcdTAwMTVcZmeMK/DsyXVfy5lcdTAwMDZcdTAwMTGcXHUwMDEwzSNQgqjqXHUwMDAxt8RcdTAwMDZ69oA4c8x0cD5cZvNcZmhu7Fx1MDAwMTIsR3DOuDTcoN7nKDuEZ89cdTAwMDKYovNrXGJcdTAwMWLUXHUwMDExSmlJ0ZRcdTAwMDJQvIlcdTAwMTBcdTAwMWFRXHUwMDE0vFx1MDAwNlx1MDAwM3CFcCM44WF9olwiXHUwMDAwXHUwMDA3xZ49XHUwMDA3wULgxUF7TEbYa4reXHUwMDAwKLYoXHUwMDE3nkFebTyQUFx1MDAwMZmFxVfps4ZcdClcdTAwMDXVXFw7e1x1MDAxNlb2cFx1MDAxOErsLjvNXHUwMDE5XHUwMDBmXHUwMDFhXHUwMDE0VZC4/nBcIj2D0j1E2F7ps1xmmIHy9T6u/f6irF/Pr1x1MDAwNFx1MDAxYUQwitdcYoeGXHUwMDE44IYr9F3fXFw1sUtcdTAwMTBcdTAwMDNaXHUwMDBlL7p+wOpTetDCZpeetXDkWXpDjdry9GlcdTAwMWY1astDqO5mXCJcZpxDSN5sc/lWqXt0tH/H4vVDWLw+85yjS7tcdTAwMDJtvp3QN1x1MDAxNUmliFx1MDAwZXJ1oFxcZYO2kVx1MDAxOWRto1x1MDAxNDnI1fLwco9cdTAwMDCN6sh7YCgoI1x1MDAwNXCGXHUwMDBiTZBX/LxjMzUjI05Q/ilcdTAwMTDaoIvooFx1MDAxMulOOVwijUqwh1x06ko/3djMXHUwMDFiXHUwMDE5ZESipFx1MDAxNlxcMYqKKWiuM/3ITERX/TRcXFBcdTAwMTlkLC/ziPLXNSdQl1x1MDAxM+ZcdTAwMWPhTGZXLlLivNdcdTAwMWTFeVx1MDAwZvbVy02qXHUwMDA2XHQpgSzkTm3QmpeqXHUwMDA0iHhYdnekK1xyXHUwMDBlT41TXHUwMDFhxmln9lx1MDAxMlx1MDAwNzpCW4qDVoRoxoP98dOZTWBRXHUwMDFjXHUwMDFlXHUwMDA3p1x1MDAxMISCl99sJtdKrSpcdHaSaV3BNahuO3ObyENl7rGE6LLDYe3YmeykgkcuTntoWy/7KZprkECnhfXEYp+3ynxcInhxXHIq53SJ1nAs1MyELlx0OljJmzGv0pFX+c305lx1MDAxYuRcdTAwMWH3QW5y3sze+6eJ6OjAjvXm5aBcdTAwMTdcdTAwMTb+U6RF9qLXXHUwMDE2VNtcdTAwMWJ87a8tXHUwMDFj9mpcdTAwMGXbn1wiXHUwMDA3PetmhIBmUjs7ML634Fxcb1BZbvBcdTAwMWZ9OGvfm/La2zRfd29KW+O325ZyNWjXWH/X3Ng7xtr3UVx1MDAxZnxz+30ow/aOobqSvMzR7t8rRVx1MDAwN99s+OZfVr55tJJNx/Fsdl3goNcqXHUwMDAzgZROvNFZllx1MDAxNcnMjkxV9Fx1MDAxMcXI5TS+yfxcdDj+kiaP55t+89PV+Vx1MDAxNVxcXq56s5q7j1x1MDAwZlmRXiNaxuXG8GqPcNm+av0onSpZXHUwMDE1fftcdTAwMWZcdTAwMWObOMgifQ==<!-- payload-end --><pict-renderer-graph:source xmlns:pict-renderer-graph="https://fable-retold.github.io/pict-renderer-graph/ns/v1"><![CDATA[{"type":"flowgraph","mermaid":"graph LR\n subgraph Browser[\"Browser / Client\"]\n AC1[\"Application Code\"]\n ME[\"Meadow DAL<br/>Provider: MeadowEndpoints\"]\n AC1 --- ME\n end\n subgraph Server[\"Server\"]\n AC2[\"Application Code\"]\n MY[\"Meadow DAL<br/>Provider: MySQL\"]\n AC2 --- MY\n end\n ME -- \"HTTP / REST\" --> MY\n","style":"notebook"}]]></pict-renderer-graph:source></metadata><defs><style class="style-fonts">
2
+ @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,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); }</style></defs><g stroke-linecap="round" transform="translate(353 173) rotate(0 378.5 98.5)"><path d="M32 0 C171.28 2.67, 311.34 3.26, 725 0 M725 0 C747.64 0.55, 756.8 10.67, 757 32 M757 32 C757.79 60.66, 758.45 88.18, 757 165 M757 165 C758.04 187.23, 745.94 195.14, 725 197 M725 197 C580.74 199.52, 435.66 200.11, 32 197 M32 197 C10.38 195.47, 0.17 186.61, 0 165 M0 165 C-0.3 126.36, -0.49 92.37, 0 32 M0 32 C-0.9 12.29, 12.32 -1.6, 32 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.5" fill="none" stroke-dasharray="8 9"/></g><g transform="translate(353 178) rotate(0 378.5 10.5)"><text x="378.5" y="13.215" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="15px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Server</text></g><g stroke-linecap="round" transform="translate(10 10) rotate(0 384 96)"><path d="M32 0 C174.08 -2.56, 317.05 -2.97, 736 0 M736 0 C758.14 1.69, 766.1 9.04, 768 32 M768 32 C767.8 74.31, 767.49 112.94, 768 160 M768 160 C767.7 182.94, 755.58 192.75, 736 192 M736 192 C525.09 190.35, 314.47 191.66, 32 192 M32 192 C11.75 193.26, -1.65 179.72, 0 160 M0 160 C-0.01 127.8, -0.23 91.75, 0 32 M0 32 C0.46 10.19, 12.2 -1.51, 32 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.5" fill="none" stroke-dasharray="8 9"/></g><g transform="translate(10 15) rotate(0 384 10.5)"><text x="384" y="13.215" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="15px" fill="var(--diagram-deemphasis, #8A7F72)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Browser / Client</text></g><g stroke-linecap="round" transform="translate(69 89) rotate(0 104 28)"><path d="M14 0 C49.73 -0.77, 85.67 1.98, 194 0 M14 0 C83.61 -0.35, 153.51 -1.58, 194 0 M194 0 C204.23 -1.43, 208.98 5.69, 208 14 M194 0 C203.21 0.46, 207.73 4.19, 208 14 M208 14 C207.16 24.64, 208.72 33.01, 208 42 M208 14 C208.33 23.41, 206.99 32, 208 42 M208 42 C208.65 52.66, 205.2 55.93, 194 56 M208 42 C207.77 52.19, 202.81 53.76, 194 56 M194 56 C127.4 54.56, 62.98 55.54, 14 56 M194 56 C147.57 57.59, 100 57.58, 14 56 M14 56 C6.63 55.17, -1.77 52.91, 0 42 M14 56 C2.84 56.32, 0.4 50.44, 0 42 M0 42 C-0.46 35.09, -0.31 32.15, 0 14 M0 42 C-0.6 36.93, 0.21 30.04, 0 14 M0 14 C-0.76 4.41, 3.9 -1.81, 14 0 M0 14 C-1.22 5.33, 3.08 -1.41, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(77 104.5) rotate(0 96 12.5)"><text x="96" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Application Code</text></g><g stroke-linecap="round" transform="translate(412 78) rotate(0 153.5 39)"><path d="M19.5 0 C74.85 -0.06, 128.26 -0.33, 287.5 0 M19.5 0 C114.52 -1.53, 210.42 -0.96, 287.5 0 M287.5 0 C299.78 0.01, 306.87 5.65, 307 19.5 M287.5 0 C301.58 0.31, 307.97 7.31, 307 19.5 M307 19.5 C306.37 25.62, 308.23 35.71, 307 58.5 M307 19.5 C307.05 33.25, 306.79 47.77, 307 58.5 M307 58.5 C306.77 70.2, 298.85 78.29, 287.5 78 M307 58.5 C308.08 71.75, 301.19 78.18, 287.5 78 M287.5 78 C200.48 77.32, 114.96 78.73, 19.5 78 M287.5 78 C182.09 76.98, 75.82 77.43, 19.5 78 M19.5 78 C6.81 78.02, 1.64 70.77, 0 58.5 M19.5 78 C4.3 76.46, -0.7 69.4, 0 58.5 M0 58.5 C0.36 46.92, -0.58 37.94, 0 19.5 M0 58.5 C-0.54 46.66, 0.23 36.86, 0 19.5 M0 19.5 C-0.76 6.79, 7.77 -1.78, 19.5 0 M0 19.5 C-1.05 8.26, 7.78 -1.71, 19.5 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(412 119.5) rotate(0 153.5 10)"><text x="153.5" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Provider: MeadowEndpoints</text></g><g stroke-linecap="round" transform="translate(462 262) rotate(0 104 28)"><path d="M14 0 C50.35 0.38, 85.12 -2.51, 194 0 M14 0 C73.68 -0.11, 133.37 0.01, 194 0 M194 0 C204.77 -1.91, 206.69 6.32, 208 14 M194 0 C204.34 2.05, 207.32 6.82, 208 14 M208 14 C207.07 19.15, 205.86 27.95, 208 42 M208 14 C208.1 24.52, 207.74 36.36, 208 42 M208 42 C207.6 49.53, 202.37 54.48, 194 56 M208 42 C207.33 50.85, 205.48 54.49, 194 56 M194 56 C123.45 54.45, 55.18 56.49, 14 56 M194 56 C143 56.61, 91.51 57.08, 14 56 M14 56 C4.51 56.22, 1.09 52.35, 0 42 M14 56 C6.03 55.4, 2.29 50.85, 0 42 M0 42 C-1.86 33.26, 1.32 22.28, 0 14 M0 42 C-0.15 31.22, 0.01 21.35, 0 14 M0 14 C1.91 4.22, 3.22 -1.82, 14 0 M0 14 C-1.28 3.43, 5.19 1.76, 14 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(470 277.5) rotate(0 96 12.5)"><text x="96" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Application Code</text></g><g stroke-linecap="round" transform="translate(854 241) rotate(0 98.5 39)"><path d="M19.5 0 C50.61 -2.16, 84.63 1.53, 177.5 0 M19.5 0 C62.62 0.3, 107.67 0.31, 177.5 0 M177.5 0 C189.67 -1.15, 197.72 4.56, 197 19.5 M177.5 0 C188.23 0.86, 196.16 7.05, 197 19.5 M197 19.5 C195.09 31.49, 198.46 42.29, 197 58.5 M197 19.5 C196.75 34.64, 196.52 48.9, 197 58.5 M197 58.5 C196.96 70.14, 189.49 79.1, 177.5 78 M197 58.5 C196.65 69.24, 190.56 77.97, 177.5 78 M177.5 78 C131.98 78.52, 83.39 79.5, 19.5 78 M177.5 78 C120.7 75.47, 64.13 75.81, 19.5 78 M19.5 78 C6.28 77.52, 0.67 69.66, 0 58.5 M19.5 78 C4.67 77.16, 0.32 70.15, 0 58.5 M0 58.5 C0.81 41.21, 0.61 29.12, 0 19.5 M0 58.5 C-0.57 49.36, -0.54 40.18, 0 19.5 M0 19.5 C1.8 6.94, 5.83 -1.47, 19.5 0 M0 19.5 C0.76 8.3, 8.63 -0.61, 19.5 0" stroke="var(--diagram-ink, #1B1F23)" stroke-width="2" fill="none"/></g><g transform="translate(854 282.5) rotate(0 98.5 10)"><text x="98.5" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Provider: MySQL</text></g><g stroke-linecap="round"><g transform="translate(277 117) rotate(0 67.5 0.1903629487735543)"><path d="M0 0 C2.16 0.07, 5.14 1.64, 16 0 M0 0 C3.41 -0.29, 7.76 -0.66, 16 0 M16 0 C18.39 -0.07, 19.8 -0.11, 21.96 0 M16 0 C17.8 -0.25, 19.15 -0.24, 21.96 0 M21.96 0 C23.71 0.52, 24.61 -0.26, 27.84 0 M21.96 0 C23.09 0.19, 24.6 -0.07, 27.84 0 M27.84 0 C30.06 0.19, 30.84 -0.23, 33.64 0 M27.84 0 C29.65 0.29, 31.54 -0.11, 33.64 0 M33.64 0 C34.76 -0.43, 37.25 0.08, 39.38 0 M33.64 0 C35.63 -0.28, 37.65 0.11, 39.38 0 M39.38 0 C41.97 0.08, 43.84 0, 45.07 0 M39.38 0 C40.77 0.01, 42.01 0.26, 45.07 0 M45.07 0 C46.55 -0.43, 48.4 0.49, 50.71 0 M45.07 0 C46.36 -0.05, 47.39 -0.13, 50.71 0 M50.71 0 C52.39 0.32, 53.2 -0.37, 56.33 0 M50.71 0 C52.93 0.02, 54.61 -0.19, 56.33 0 M56.33 0 C58.73 -0.36, 60.33 0.18, 61.92 0 M56.33 0 C58.15 -0.21, 59.95 0.27, 61.92 0 M61.92 0 C63.59 -0.24, 64.98 0.33, 67.5 0 M61.92 0 C63.53 0.18, 64.79 0.23, 67.5 0 M67.5 0 C69.36 0.39, 71.01 -0.23, 73.08 0 M67.5 0 C68.89 0.13, 70.06 -0.22, 73.08 0 M73.08 0 C74.98 -0.45, 76.4 0.47, 78.67 0 M73.08 0 C74.62 -0.22, 76.37 -0.16, 78.67 0 M78.67 0 C80.38 0.22, 83.15 -0.08, 84.29 0 M78.67 0 C80.02 -0.06, 81.33 0.04, 84.29 0 M84.29 0 C86.54 0.1, 88.34 -0.09, 89.93 0 M84.29 0 C85.61 -0.05, 87.47 -0.11, 89.93 0 M89.93 0 C90.93 0.5, 92.95 -0.24, 95.62 0 M89.93 0 C92.02 -0.22, 93.96 -0.23, 95.62 0 M95.62 0 C97.71 -0.25, 98.52 -0.18, 101.36 0 M95.62 0 C97.2 -0.2, 98.34 0.17, 101.36 0 M101.36 0 C102.99 -0.17, 103.59 0.2, 107.16 0 M101.36 0 C103.26 -0.21, 104.63 0.09, 107.16 0 M107.16 0 C109.61 0.52, 111.75 0.55, 113.04 0 M107.16 0 C109.12 0.14, 111.48 -0.07, 113.04 0 M113.04 0 C114.54 0.29, 116.36 -0.13, 119 0 M113.04 0 C115.1 0.23, 117.35 -0.04, 119 0 M119 0 C122.83 0.57, 128.85 1.31, 135 0 M119 0 C123.35 -0.38, 126.21 -0.19, 135 0" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(277 117) rotate(0 67.5 0.1903629487735543)"><path d="M127.42 2.56 C128.44 2.07, 129.84 2.34, 135 0 M127.42 2.56 C129.02 1.75, 131.09 0.9, 135 0" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(277 117) rotate(0 67.5 0.1903629487735543)"><path d="M127.55 -2.92 C128.49 -2.29, 129.87 -0.92, 135 0 M127.55 -2.92 C129.1 -2.3, 131.13 -1.73, 135 0" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(670 290) rotate(0 92 -0.9106789665150075)"><path d="M0 0 C3.12 -0.81, 6.76 1.26, 16 0 M0 0 C4.36 -0.08, 6.92 0.54, 16 0 M16 0 C18 0.91, 20.73 0.24, 24.8 -0.01 M16 0 C18.23 0.33, 20.35 -0.28, 24.8 -0.01 M24.8 -0.01 C27.15 0.7, 29.63 0.3, 33.47 -0.06 M24.8 -0.01 C26.77 0.23, 28.73 0.06, 33.47 -0.06 M33.47 -0.06 C35.88 -0.17, 37.05 -0.32, 42.04 -0.12 M33.47 -0.06 C35.96 -0.54, 38.78 0.21, 42.04 -0.12 M42.04 -0.12 C44.6 -0.29, 47.93 0.13, 50.51 -0.21 M42.04 -0.12 C45 -0.13, 47.64 -0.01, 50.51 -0.21 M50.51 -0.21 C52.74 -0.29, 56.68 0.31, 58.9 -0.32 M50.51 -0.21 C53.55 -0.42, 57.35 -0.56, 58.9 -0.32 M58.9 -0.32 C62.14 -0.32, 63.66 0, 67.23 -0.44 M58.9 -0.32 C61.14 0.09, 63.9 -0.06, 67.23 -0.44 M67.23 -0.44 C70.35 0.32, 72.67 -1.23, 75.51 -0.56 M67.23 -0.44 C69.99 -0.29, 73.25 -0.64, 75.51 -0.56 M75.51 -0.56 C77.37 -0.3, 80.32 -0.81, 83.76 -0.7 M75.51 -0.56 C78.66 -0.21, 81.42 -0.85, 83.76 -0.7 M83.76 -0.7 C87.16 -0.57, 88.78 -0.35, 92 -0.84 M83.76 -0.7 C85.7 -0.8, 87.93 -0.36, 92 -0.84 M92 -0.84 C94.54 -1.13, 96.83 -1.4, 100.24 -0.98 M92 -0.84 C94.09 -1.1, 96.65 -1.25, 100.24 -0.98 M100.24 -0.98 C103.27 -0.54, 105.86 -1.14, 108.49 -1.12 M100.24 -0.98 C103.27 -0.88, 106.07 -0.83, 108.49 -1.12 M108.49 -1.12 C111.27 -1.08, 114.32 -1.54, 116.77 -1.24 M108.49 -1.12 C111.14 -1.43, 114.33 -1.5, 116.77 -1.24 M116.77 -1.24 C118.78 -2.03, 120.33 -0.89, 125.1 -1.36 M116.77 -1.24 C118.44 -0.86, 120.91 -1.17, 125.1 -1.36 M125.1 -1.36 C128.49 -1.45, 131.14 -0.7, 133.49 -1.47 M125.1 -1.36 C127.49 -1, 129.33 -1, 133.49 -1.47 M133.49 -1.47 C137.13 -2.08, 139.1 -1.47, 141.96 -1.56 M133.49 -1.47 C135.79 -1.09, 137.24 -1.44, 141.96 -1.56 M141.96 -1.56 C143.76 -1.38, 147.78 -1.2, 150.53 -1.62 M141.96 -1.56 C145.55 -1.77, 148.25 -1.39, 150.53 -1.62 M150.53 -1.62 C153.38 -1.8, 156.27 -2.2, 159.2 -1.67 M150.53 -1.62 C153.87 -1.73, 156.78 -1.42, 159.2 -1.67 M159.2 -1.67 C161.41 -1.08, 163.53 -1.45, 168 -1.68 M159.2 -1.67 C161.51 -1.6, 164.26 -1.89, 168 -1.68 M168 -1.68 C173.37 -2.47, 180.28 -2.5, 184 -1.68 M168 -1.68 C173.1 -1.24, 179.42 -2.26, 184 -1.68" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(670 290) rotate(0 92 -0.9106789665150075)"><path d="M176.38 0.77 C177.85 -0.13, 179.59 0.4, 184 -1.68 M176.38 0.77 C178.47 0.17, 179.66 -0.07, 184 -1.68" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(670 290) rotate(0 92 -0.9106789665150075)"><path d="M176.59 -4.7 C178.05 -4.48, 179.75 -2.83, 184 -1.68 M176.59 -4.7 C178.65 -4.06, 179.8 -3.06, 184 -1.68" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(719 117) rotate(0 67.5 77.60996901114459)"><path d="M0 0 C3.57 0.19, 5.34 0.36, 16 0 M0 0 C5.68 0.75, 11.05 0.58, 16 0 M16 0 C17.76 0.65, 20.21 1.49, 21.96 1.38 M16 0 C17.67 0.33, 18.83 0.53, 21.96 1.38 M21.96 1.38 C23.61 3.03, 25.77 3.85, 27.84 5.3 M21.96 1.38 C23.94 2.66, 25.55 3.61, 27.84 5.3 M27.84 5.3 C29.83 7.43, 32.22 8.52, 33.64 11.46 M27.84 5.3 C29.09 6.74, 31.07 8.68, 33.64 11.46 M33.64 11.46 C35.67 14.2, 37.01 16.58, 39.38 19.52 M33.64 11.46 C35.98 13.98, 37.65 17.51, 39.38 19.52 M39.38 19.52 C41.34 20.58, 42.66 23.6, 45.07 29.17 M39.38 19.52 C41.66 22.53, 43.16 26.19, 45.07 29.17 M45.07 29.17 C46.24 32.87, 50.3 37.1, 50.71 40.1 M45.07 29.17 C46.43 31.79, 47.22 34.4, 50.71 40.1 M50.71 40.1 C52.02 43.25, 54.58 48.48, 56.33 51.98 M50.71 40.1 C52.58 44.62, 55.31 48.73, 56.33 51.98 M56.33 51.98 C57.73 55.86, 61.15 61.93, 61.92 64.5 M56.33 51.98 C57.45 55.35, 58.77 58.57, 61.92 64.5 M61.92 64.5 C63.33 69.89, 65.6 74.07, 67.5 77.34 M61.92 64.5 C62.94 67.53, 64.89 70.2, 67.5 77.34 M67.5 77.34 C69.53 81.91, 70.05 84.55, 73.08 90.18 M67.5 77.34 C69.89 81.7, 71.04 85.79, 73.08 90.18 M73.08 90.18 C74.26 94.72, 77.37 99.69, 78.67 102.7 M73.08 90.18 C75.49 95.53, 76.77 99.76, 78.67 102.7 M78.67 102.7 C79.66 107.41, 83.15 111.83, 84.29 114.58 M78.67 102.7 C80.7 105.51, 81.06 108.5, 84.29 114.58 M84.29 114.58 C86.07 118.66, 86.87 120.14, 89.93 125.51 M84.29 114.58 C86.96 118.16, 87.85 122.78, 89.93 125.51 M89.93 125.51 C91.96 127.38, 93.18 129.59, 95.62 135.16 M89.93 125.51 C91.89 127.73, 93.45 130.29, 95.62 135.16 M95.62 135.16 C96.16 137.66, 98.13 137.7, 101.36 143.22 M95.62 135.16 C97.16 138.31, 99.75 140.52, 101.36 143.22 M101.36 143.22 C103.09 145.52, 105.43 148.01, 107.16 149.38 M101.36 143.22 C103.11 145.63, 104.99 147.08, 107.16 149.38 M107.16 149.38 C108.82 150.2, 110.63 152.21, 113.04 153.3 M107.16 149.38 C108.63 150.01, 109.22 150.74, 113.04 153.3 M113.04 153.3 C114.44 153.53, 116.51 154.04, 119 154.68 M113.04 153.3 C114.96 153.77, 116.54 153.85, 119 154.68 M119 154.68 C121.39 154.09, 125.35 156.15, 135 154.68 M119 154.68 C124.34 154.45, 130.58 154.77, 135 154.68" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(719 117) rotate(0 67.5 77.60996901114459)"><path d="M127.48 157.41 C129.19 156.95, 129.98 156.48, 135 154.68 M127.48 157.41 C130.16 156.9, 132.69 155.94, 135 154.68" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g><g transform="translate(719 117) rotate(0 67.5 77.60996901114459)"><path d="M127.49 151.93 C129.15 152.59, 129.93 153.24, 135 154.68 M127.49 151.93 C130.17 153.19, 132.7 154, 135 154.68" stroke="var(--diagram-link, #2E7D74)" stroke-width="2" fill="none"/></g></g><mask/><g transform="translate(412 94.5) rotate(0 153.5 12.5)"><text x="153.5" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Meadow DAL</text></g><g transform="translate(854 257.5) rotate(0 98.5 12.5)"><text x="98.5" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Meadow DAL</text></g></svg>
@@ -91,7 +91,7 @@ Each Meadow CRUD operation maps to a standard HTTP method:
91
91
  | `PUT` | Update | `/{prefix}{Scope}` |
92
92
  | `DELETE` | Delete | `/{prefix}{Scope}/{ID}` |
93
93
 
94
- This mapping follows the standard Meadow REST conventions generated by [meadow-endpoints](https://github.com/fable-retold/meadow-endpoints) on the server side.
94
+ This mapping follows the standard Meadow REST conventions generated by [meadow-endpoints](https://fable-retold.github.io/meadow-endpoints/) on the server side.
95
95
 
96
96
  ## Cookie and Header Forwarding
97
97
 
@@ -219,26 +219,14 @@ GET http://127.0.0.1:8086/1.0/Books/Count
219
219
 
220
220
  The primary use case for MeadowEndpoints is enabling client-side JavaScript to use the same Meadow data access interface that the server uses. This means your application logic can be written once and run in either context:
221
221
 
222
- ```mermaid
223
- graph LR
224
- subgraph Browser["Browser / Client"]
225
- AC1["Application Code"]
226
- ME["Meadow DAL<br/>Provider: MeadowEndpoints"]
227
- AC1 --- ME
228
- end
229
- subgraph Server["Server"]
230
- AC2["Application Code"]
231
- MY["Meadow DAL<br/>Provider: MySQL"]
232
- AC2 --- MY
233
- end
234
- ME -- "HTTP / REST" --> MY
235
- ```
222
+ <!-- bespoke diagram: edit diagrams/use-case-unified-client-server-interface.mmd or .hints.json, then: npx pict-renderer-graph build modules/meadow/meadow/docs/providers -->
223
+ ![Use Case: Unified Client-Server Interface](diagrams/use-case-unified-client-server-interface.svg)
236
224
 
237
225
  - **Server side:** Meadow uses a database provider (MySQL, MSSQL, PostgreSQL, etc.) to interact with the database directly
238
226
  - **Client side:** Meadow uses MeadowEndpoints to proxy the same operations over HTTP to the server's REST API
239
227
  - **Application code:** Identical CRUD calls in both environments
240
228
 
241
- This pattern is especially powerful when combined with [meadow-endpoints](https://github.com/fable-retold/meadow-endpoints) on the server, which auto-generates REST routes from Meadow entity definitions.
229
+ This pattern is especially powerful when combined with [meadow-endpoints](https://fable-retold.github.io/meadow-endpoints/) on the server, which auto-generates REST routes from Meadow entity definitions.
242
230
 
243
231
  ## Full Setup Example
244
232
 
@@ -306,4 +294,4 @@ HTTP-related errors follow the standard pattern:
306
294
  - [Providers Overview](README.md) -- Comparison of all providers
307
295
  - [MySQL Provider](mysql.md) -- Server-side database provider
308
296
  - [ALASQL Provider](alasql.md) -- Client-side in-memory alternative
309
- - [meadow-endpoints](https://github.com/fable-retold/meadow-endpoints) -- Server-side REST API generation
297
+ - [meadow-endpoints](https://fable-retold.github.io/meadow-endpoints/) -- Server-side REST API generation
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Document-based storage with automatic counter management and sentinel value support
4
4
 
5
- The MongoDB provider connects Meadow to MongoDB databases via the [meadow-connection-mongodb](https://github.com/fable-retold/meadow-connection-mongodb) module. It uses the FoxHound MongoDB dialect for query generation, providing document-based storage without schema migration. Auto-increment counters, GUID generation, and timestamp sentinels are handled automatically.
5
+ The MongoDB provider connects Meadow to MongoDB databases via the [meadow-connection-mongodb](https://fable-retold.github.io/meadow-connection-mongodb/) module. It uses the FoxHound MongoDB dialect for query generation, providing document-based storage without schema migration. Auto-increment counters, GUID generation, and timestamp sentinels are handled automatically.
6
6
 
7
7
  ## Setup
8
8
 
@@ -316,4 +316,4 @@ docker run -d \
316
316
  - [Providers Overview](README.md) -- Comparison of all providers
317
317
  - [MySQL Provider](mysql.md) -- Relational database alternative
318
318
  - [ALASQL Provider](alasql.md) -- In-memory alternative
319
- - [meadow-connection-mongodb](https://github.com/fable-retold/meadow-connection-mongodb) -- Connection module source
319
+ - [meadow-connection-mongodb](https://fable-retold.github.io/meadow-connection-mongodb/) -- Connection module source
@@ -293,4 +293,4 @@ docker run -d \
293
293
 
294
294
  - [Providers Overview](README.md) -- Comparison of all providers
295
295
  - [MySQL Provider](mysql.md) -- MySQL/MariaDB alternative
296
- - [meadow-connection-mssql](https://github.com/fable-retold/meadow-connection-mssql) -- Connection module source
296
+ - [meadow-connection-mssql](https://fable-retold.github.io/meadow-connection-mssql/) -- Connection module source
@@ -257,4 +257,4 @@ docker run -d \
257
257
 
258
258
  - [Providers Overview](README.md) -- Comparison of all providers
259
259
  - [MSSQL Provider](mssql.md) -- Microsoft SQL Server alternative
260
- - [meadow-connection-mysql](https://github.com/fable-retold/meadow-connection-mysql) -- Connection module source
260
+ - [meadow-connection-mysql](https://fable-retold.github.io/meadow-connection-mysql/) -- Connection module source
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Production-ready PostgreSQL integration with connection pooling and named parameter binding
4
4
 
5
- The PostgreSQL provider connects Meadow to PostgreSQL databases via the [meadow-connection-postgresql](https://github.com/fable-retold/meadow-connection-postgresql) module. It uses the FoxHound PostgreSQL dialect for query generation and supports named parameter binding with positional placeholders ($1, $2, etc.).
5
+ The PostgreSQL provider connects Meadow to PostgreSQL databases via the [meadow-connection-postgresql](https://fable-retold.github.io/meadow-connection-postgresql/) module. It uses the FoxHound PostgreSQL dialect for query generation and supports named parameter binding with positional placeholders ($1, $2, etc.).
6
6
 
7
7
  ## Setup
8
8
 
@@ -309,4 +309,4 @@ docker run -d \
309
309
  - [Providers Overview](README.md) -- Comparison of all providers
310
310
  - [MySQL Provider](mysql.md) -- MySQL/MariaDB alternative
311
311
  - [MSSQL Provider](mssql.md) -- Microsoft SQL Server alternative
312
- - [meadow-connection-postgresql](https://github.com/fable-retold/meadow-connection-postgresql) -- Connection module source
312
+ - [meadow-connection-postgresql](https://fable-retold.github.io/meadow-connection-postgresql/) -- Connection module source
@@ -294,4 +294,4 @@ All operations follow the same error handling pattern:
294
294
  - [Providers Overview](README.md) -- Comparison of all providers
295
295
  - [SQLite Provider](sqlite.md) -- Embedded SQL alternative
296
296
  - [ALASQL Provider](alasql.md) -- In-memory SQL alternative
297
- - [meadow-connection-rocksdb](https://github.com/fable-retold/meadow-connection-rocksdb) -- Connection module source
297
+ - [meadow-connection-rocksdb](https://fable-retold.github.io/meadow-connection-rocksdb/) -- Connection module source
@@ -170,4 +170,4 @@ The SQLite provider follows the same error handling pattern as MySQL:
170
170
  - [Providers Overview](README.md) -- Comparison of all providers
171
171
  - [MySQL Provider](mysql.md) -- MySQL/MariaDB for production
172
172
  - [ALASQL Provider](alasql.md) -- In-memory alternative
173
- - [meadow-connection-sqlite](https://github.com/fable-retold/meadow-connection-sqlite) -- Connection module source
173
+ - [meadow-connection-sqlite](https://fable-retold.github.io/meadow-connection-sqlite/) -- Connection module source
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Building and configuring queries with the FoxHound DSL
4
4
 
5
- Every data operation in Meadow begins with a query object. Meadow uses [FoxHound](https://github.com/fable-retold/foxhound) as its query DSL, generating dialect-specific SQL from a fluent, chainable API. You never need to construct FoxHound directly -- Meadow gives you a fresh, pre-configured query every time you access the `.query` property.
5
+ Every data operation in Meadow begins with a query object. Meadow uses [FoxHound](https://fable-retold.github.io/foxhound/) as its query DSL, generating dialect-specific SQL from a fluent, chainable API. You never need to construct FoxHound directly -- Meadow gives you a fresh, pre-configured query every time you access the `.query` property.
6
6
 
7
7
  ## Getting a Query Object
8
8
 
@@ -68,14 +68,8 @@ meadow.doCount(tmpQuery,
68
68
 
69
69
  ## How It Works
70
70
 
71
- ```
72
- 1. Build Count Query
73
- └── Apply filters, set dialect, generate SELECT COUNT(*) SQL
74
- 2. Execute via Provider
75
- └── Run query against database, start performance timer
76
- 3. Validate and Profile
77
- └── Verify result is a number, log warning if query exceeded threshold
78
- ```
71
+ <!-- bespoke diagram: edit diagrams/how-it-works.mmd or .hints.json, then: npx pict-renderer-graph build modules/meadow/meadow/docs/query -->
72
+ ![How It Works](diagrams/how-it-works.svg)
79
73
 
80
74
  ## Soft Delete Filtering
81
75
 
@@ -50,18 +50,8 @@ meadow.doCreate(tmpQuery,
50
50
 
51
51
  The create operation follows a multi-step waterfall:
52
52
 
53
- ```
54
- 1. GUID Uniqueness Check (if GUID provided)
55
- └── Queries DB to verify no existing record has this GUID
56
- 2. Insert Record
57
- └── Merges record with schema defaults, executes INSERT
58
- 3. Validate Creation
59
- └── Confirms the insert succeeded, extracts new ID
60
- 4. Read Back Record
61
- └── Fetches the complete record using the new ID
62
- 5. Marshal to Object
63
- └── Converts DB result to a plain JavaScript object
64
- ```
53
+ <!-- bespoke diagram: edit diagrams/how-it-works-2.mmd or .hints.json, then: npx pict-renderer-graph build modules/meadow/meadow/docs/query -->
54
+ ![How It Works](diagrams/how-it-works-2.svg)
65
55
 
66
56
  ## GUID Uniqueness
67
57