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,8 @@
1
+ 1. Build Read Query
2
+ └── Apply filters, pagination, sorting, set dialect, generate SELECT SQL
3
+ 2. Execute via Provider
4
+ └── Run query against database, start performance timer
5
+ 3. Marshal Each Record
6
+ └── Convert each DB row to plain JavaScript object
7
+ 4. Performance Check
8
+ └── Log warning if query exceeded threshold (default 200ms)
@@ -0,0 +1,2 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 870 293" width="870" height="293"><!-- svg-source:excalidraw --><metadata><!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1bW2/bNlx1MDAxNH7vryC8l1xySFxc8SaKfUtSZ+2WXHUwMDE0bVNgXHUwMDBmQ1x1MDAxZlx1MDAxOIuxuciSJtG5rOh/XHUwMDFmpcSmbSmzZCtcdTAwMWTRqlx1MDAwMVxuizeR55yPh98n6ctcdTAwMGJcdTAwMDBcdTAwMDb6PpWDV2Ag78ZcIlJhJm5cdTAwMDdcdTAwMDdF+Y3McpXEplxuldd5Ms/GZcup1umrly8hYkPP/MFXlFx1MDAxMVxiXHUwMDFmeslIzmSsc9PuT3NccsCX8n9To8Ki75U+jJNQXHUwMDFl+igoO5RVyylEkUpzaSvuiruT5eW9ucTe8vJWhXpqioJlyVSqyVSvXHUwMDE1iXhcdTAwMTJcdTAwMTWD2265zpJreZJESVbc9KdcdTAwMTPue+jU3vRSjK8nWTKPw6fbXFypKLrQ9+XIxjLGboON8f94nFx1MDAxY1x1MDAxY5KNmqf6mVtOprHM87XZJqlcdTAwMTgrXaxcdTAwMWN6trSYX/o2LM382c4qXHUwMDEzM/m2sHM8j6LVgePwceC1ilxcyqKx8cWyaMPrq2Xvkrj0PzSm8HzKPdtC5a+N43U52pWIcmmNWdx7tFx1MDAxMlx1MDAxNHa28zRcdTAwMTRcdTAwMGZdIFx1MDAwYjxiXHUwMDA2hD5jdo2Riq83Z1x1MDAxYyXj65q7qDiURaxcZoQ3KMu+XHUwMDFlPFx1MDAxNXzGQodeNfS0vNPrcUfYWtwhWIk7hHg18lDHoaczXHUwMDEx56nIjP12XG6/XHUwMDFkglx1MDAwZn7L4KMrRmxcdTAwMTB8KODUY1x1MDAxOFx1MDAxMmdir4xcdTAwMWNjUDhcdTAwMDTHc1x1MDAxNYXgo1x1MDAxNCH4MJfZ/YrDklhfqH/KXHUwMDE1eGulp2KmosLCdG3Eo0hNXG5DXGZcInm14nhjXHKtzD69rNZJamvHZjyhYplV3ZBkaqJiXHUwMDExfWoyWzHXyUeZP8xXZ3O5alx1MDAxN/lmXHUwMDEx6nCI7KQtXHUwMDA04Vx1MDAxNlxiyujy8OZcdTAwMTBWMVhcZr6x91swlSaqYtBcdTAwMWFziUDYXHUwMDA2gcFcdTAwMTE7ZWhPXHUwMDA0TsV4Os/k0ylcdTAwMDDvklx1MDAwMobWuN9cdTAwMDCHXHUwMDFj+a2SXHUwMDAwNFx1MDAxOKQ+pdbY/zdcdTAwMTBtXHUwMDA0rvgzTdTqaaT4Z39cdTAwMDFcdTAwMWJcdTAwMTjlxfL354PtrWFgm7/Y6DaIRK5PktlMabO498VcdTAwMWMqZtdcItPHZs4qnmzWyTh8oqbsdZRlye3U4Lam35N1aVx1MDAxMt1PSp+WVttcdTAwMGXR6U5cdTAwMTD17W6+gCi0gbXEqHVwXHUwMDBm0Vx1MDAxNlx1MDAxMLVHkiZcdTAwMTBlmGJGUeDiOVxyP1x1MDAxM0RtsG00/94gWrIoaFxc0ZBG0XVcdTAwMWHl28jtiEY1gGmlzXdFo1xuZ7TCJ/EoZTxcYmwvd/BJmvComlx1MDAwNFHlUWydR1G/XHUwMDEyeIyzaui14lHwXHUwMDE4nlwi/EPzKFx1MDAwZdslXHUwMDA3SFx1MDAwMuwhyN0jUkdpXHUwMDFh3Vx1MDAwM+NcdTAwMWFtpnxcdTAwMDBSUVx1MDAxMFx1MDAxN23mflx1MDAwMPLE0J94Yn5IXHJCJVwiOdZcdTAwMDdgXCJccuUxs1x1MDAwMFx1MDAxN6Oz0ckncPHhzGHm1e3y9qNqdFx1MDAxYsqLJIMpaphjNqS61VjvtbpuYG6c0Vx1MDAwNuacXHUwMDEz5lx1MDAxYlxcuphi/CYppib0tkp1vEaqY7RcdTAwMWF4vVTXLvZcdTAwMTDFbWKPQcxcdTAwMTmHXHUwMDBlXHUwMDFkb1x1MDAxNlx1MDAxOVx1MDAwNlxywehOjudmT71RXHUwMDAyvM+SXHUwMDFiXHUwMDE1yszhpLF1xvvlXHUwMDAx1kiyw1UsbtVcdTAwMDNgjW7ea3ZdJVx1MDAwM79cdTAwMWTh8Fx1MDAxOWRcdTAwMWXBTj64WXlcdTAwMWPYa3ZLQ7TW7HbCKO5Fu2fEaCtexjkqIeVcdTAwMGUts1x1MDAxMOW9ZteBZkfojpJcdTAwMWTEvWbXNTpcdG2VQVx0osRcdTAwMGaQ586R1qLzqFx0napJXHUwMDBmW1x1MDAxNTuIqpKd79VcdTAwMWPiesmuLZdvJ9nhgPvEWN6d49uCUH2cx+Dv4lx1MDAxZFx1MDAwMiAmhtHkXHUwMDFhmFuIS2GagnJvXHUwMDA1qcyukmwmzFKAVjOnydZeq9mPiFx1MDAxZDdcdTAwMTHkXHUwMDAy3DSDbFxucqxcdTAwMTfkulx1MDAwNrFxRlx1MDAxYlx1MDAxMFx1MDAwN1x1MDAxZeJcdTAwMTj7XHUwMDBlvb9kg++kSVx1MDAwNiE7XGJy0K9R5HxSjbxekWtcdTAwMTd8XGa3yiA+wsZkiHvOXHUwMDA031wigeAhOFx1MDAxN1k+XHUwMDE1XHUwMDExXHUwMDE4XHUwMDE50lx1MDAwNz7KcZKFXHUwMDBl54htXHUwMDEz3i9ccrxupMfRXbh+jTje63FdXHUwMDFk6Fa29UZwZFx1MDAwMfEpczFcdTAwMTeMejmuXHUwMDBiOW5cdTAwMTeIXCKvl+OeXHUwMDExovZ2jd7R4YhhxJmLr7mePlx1MDAxM0Z/MD3OqznSNtHjkNfrcV3D0zijXHUwMDE1PCEnXGZz30m5/NcmdKomQWxcdTAwMTfkeFWQo1x1MDAwNFVDr1x1MDAxN+RaJlx1MDAwN69VcvA9n3jIw+5cdTAwMDTfgk6dJHHBdIAsqMnrY2A2S6BcdTAwMTOQRobdgN/EjbhcdTAwMThnKtUgufxLjrXDNGvXhexHv940UeFI41evN1Q4RHpcdTAwMTWu87zR9tVr7Fx1MDAxMd/jTlKvt03yRk3sbf+EXHUwMDE118hwpIb99zJcXFtS0fbDXHUwMDFjzlx0XGagezpcdTAwMWNcdTAwMTmC9yvPNk6mcnztcHr47+nul1x1MDAwNH5rpMGxXVxifo1cdTAwMWPea3BdPY9ZXHUwMDExOJuc4Vxi9TFD2Fx1MDAxZCjaXGL8vdfgutDgdoIo6zW4Z4Roq29cdTAwMTggYshDnFJcdTAwMTdcdTAwMGZrZ8+E0Vx1MDAxZkuD40HNp4SNNDjWa3Bdw9M4o1x1MDAxZDxcdTAwMDNcdTAwMWZiRqGLXHUwMDEy+XlcdTAwMTMuVZMgtmpwyK95KY7UZIheg2uZXHUwMDFjgnbJgWKOKcRcdTAwMGV94bbgUmfJXHUwMDA03IosNnsrUFePb5TJu7FZp1xmgZ5mMp8mUVxiflx1MDAwZeWVmEfacCpvlv/iMN3ae0X7MbJ3j2B+8Zj+XHUwMDA2XCJNL7Rxm6l9gLZcdEVcdTAwMTVumOyhTMvUmqssOjeJZ1x1MDAxNIvLaNOFg1x1MDAxYiVvj2t2/dPjUzZaPFx1MDAxOH/0/rlZprqQxZe6JiqLoPpSzK/ccFxuWMrHoq//XHUwMDAySP3t6yJ9<!-- payload-end --><pict-renderer-graph:source xmlns:pict-renderer-graph="https://fable-retold.github.io/pict-renderer-graph/ns/v1"><![CDATA[{"type":"filetree","mermaid":"1. Build Read Query\n └── Apply filters, pagination, sorting, set dialect, generate SELECT SQL\n2. Execute via Provider\n └── Run query against database, start performance timer\n3. Marshal Each Record\n └── Convert each DB row to plain JavaScript object\n4. Performance Check\n └── Log warning if query exceeded threshold (default 200ms)\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(10 19) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(33 10) rotate(0 114.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-accent, #C9602F)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">1. Build Read Query</text></g><g stroke-linecap="round"><g transform="translate(14 40) rotate(0 0.08740820316138809 9)"><path d="M0 0 C-0.02 3.35, 0.45 7.15, 0 18 M0 0 C0.14 4.95, -0.09 9.76, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(14 58) rotate(0 8 -0.007342271387827282)"><path d="M0 0 C3 0.31, 6.45 -0.34, 16 0 M0 0 C5.38 0.18, 10.9 0.03, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(40 54) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(63 45) rotate(0 398.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Apply filters, pagination, sorting, set dialect, generate SELECT SQL</text></g><g stroke-linecap="round" transform="translate(10 89) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(33 80) rotate(0 137.5 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-accent, #C9602F)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">2. Execute via Provider</text></g><g stroke-linecap="round"><g transform="translate(14 110) rotate(0 0.022107669285126974 9)"><path d="M0 0 C-0.09 3.36, 0.18 7.2, 0 18 M0 0 C0.2 6.1, -0.11 12.37, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(14 128) rotate(0 8 0.02390454490115701)"><path d="M0 0 C2.95 0.33, 6.18 -0.24, 16 0 M0 0 C3.55 -0.14, 7.14 0.07, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(40 124) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(63 115) rotate(0 300 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Run query against database, start performance timer</text></g><g stroke-linecap="round" transform="translate(10 159) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(33 150) rotate(0 132 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-accent, #C9602F)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">3. Marshal Each Record</text></g><g stroke-linecap="round"><g transform="translate(14 180) rotate(0 0.03721684535623204 9)"><path d="M0 0 C-0.17 3.77, 0.38 7.08, 0 18 M0 0 C0.11 3.72, -0.18 7.54, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(14 198) rotate(0 8 -0.05282135305095892)"><path d="M0 0 C2.83 -0.07, 6.3 -0.31, 16 0 M0 0 C4.41 0.09, 8.92 0.04, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(40 194) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(63 185) rotate(0 271 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Convert each DB row to plain JavaScript object</text></g><g stroke-linecap="round" transform="translate(10 229) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-accent, #C9602F)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-accent, #C9602F)" stroke-width="1.4" fill="none"/></g><g transform="translate(33 220) rotate(0 120 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-accent, #C9602F)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">4. Performance Check</text></g><g stroke-linecap="round"><g transform="translate(14 250) rotate(0 0.0037517477103961028 9)"><path d="M0 0 C-0.02 3.41, -0.18 7.43, 0 18 M0 0 C0.14 6.07, 0.1 12.62, 0 18" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(14 268) rotate(0 8 0.06209384643418048)"><path d="M0 0 C3 0.37, 6.68 -0.08, 16 0 M0 0 C3.49 -0.07, 6.87 0.06, 16 0" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.3" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(40 264) rotate(0 4 4)"><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="none" stroke-width="0" fill="var(--diagram-deemphasis, #8A7F72)"/><path d="M8 4 C8 4.23, 7.98 4.47, 7.94 4.69 C7.9 4.92, 7.84 5.15, 7.76 5.37 C7.68 5.59, 7.58 5.8, 7.46 6 C7.35 6.2, 7.21 6.39, 7.06 6.57 C6.92 6.75, 6.75 6.92, 6.57 7.06 C6.39 7.21, 6.2 7.35, 6 7.46 C5.8 7.58, 5.59 7.68, 5.37 7.76 C5.15 7.84, 4.92 7.9, 4.69 7.94 C4.47 7.98, 4.23 8, 4 8 C3.77 8, 3.53 7.98, 3.31 7.94 C3.08 7.9, 2.85 7.84, 2.63 7.76 C2.41 7.68, 2.2 7.58, 2 7.46 C1.8 7.35, 1.61 7.21, 1.43 7.06 C1.25 6.92, 1.08 6.75, 0.94 6.57 C0.79 6.39, 0.65 6.2, 0.54 6 C0.42 5.8, 0.32 5.59, 0.24 5.37 C0.16 5.15, 0.1 4.92, 0.06 4.69 C0.02 4.47, 0 4.23, 0 4 C0 3.77, 0.02 3.53, 0.06 3.31 C0.1 3.08, 0.16 2.85, 0.24 2.63 C0.32 2.41, 0.42 2.2, 0.54 2 C0.65 1.8, 0.79 1.61, 0.94 1.43 C1.08 1.25, 1.25 1.08, 1.43 0.94 C1.61 0.79, 1.8 0.65, 2 0.54 C2.2 0.42, 2.41 0.32, 2.63 0.24 C2.85 0.16, 3.08 0.1, 3.31 0.06 C3.53 0.02, 3.77 0, 4 0 C4.23 0, 4.47 0.02, 4.69 0.06 C4.92 0.1, 5.15 0.16, 5.37 0.24 C5.59 0.32, 5.8 0.42, 6 0.54 C6.2 0.65, 6.39 0.79, 6.57 0.94 C6.75 1.08, 6.92 1.25, 7.06 1.43 C7.21 1.61, 7.35 1.8, 7.46 2 C7.58 2.2, 7.68 2.41, 7.76 2.63 C7.84 2.85, 7.9 3.08, 7.94 3.31 C7.98 3.53, 7.99 3.88, 8 4 C8.01 4.12, 8.01 3.88, 8 4" stroke="var(--diagram-deemphasis, #8A7F72)" stroke-width="1.4" fill="none"/></g><g transform="translate(63 255) rotate(0 323 14)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="var(--diagram-ink, #1B1F23)" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Log warning if query exceeded threshold (default 200ms)</text></g></svg>