json-rest-api 1.0.22 → 1.0.24

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 (290) hide show
  1. package/CLAUDE.md +1 -2
  2. package/JSKIT_BACKEND_MIGRATION_TRACKER.txt +180 -0
  3. package/README.md +22 -1
  4. package/SINGLE_VALIDATION_CONTRACT_TODO.txt +172 -0
  5. package/docs/API.md +196 -38
  6. package/docs/COMPARISON.md +2 -2
  7. package/docs/GUIDE/GUIDE_1_Initial_Setup.md +111 -5
  8. package/docs/GUIDE/GUIDE_2_2_Manipulating_And_Searching_Tables.md +5 -1
  9. package/docs/GUIDE/GUIDE_2_7_Pagination_And_Ordering.md +3 -1
  10. package/docs/GUIDE/GUIDE_2_8_Effects_of_PUT_and_PATCH.md +12 -60
  11. package/docs/GUIDE/GUIDE_2_Data_And_Relations.md +2 -2
  12. package/docs/GUIDE/GUIDE_3_Field_Transformations.md +5 -1
  13. package/docs/GUIDE/GUIDE_7_Hooks_Data_Management_And_Plugins.md +2 -0
  14. package/docs/GUIDE/GUIDE_X_Autofiltering.md +355 -0
  15. package/docs/GUIDE/GUIDE_X_Fastify.md +78 -0
  16. package/docs/GUIDE/GUIDE_X_Knex_Schema_And_Migrations.md +370 -0
  17. package/docs/GUIDE/GUIDE_X_Query_Projections.md +159 -0
  18. package/docs/GUIDE/GUIDE_X_Writing_Plugins.md +199 -0
  19. package/docs/GUIDE/index.md +18 -9
  20. package/docs/QUICKSTART.md +5 -1
  21. package/docs/index.md +1 -1
  22. package/index.js +3 -2
  23. package/lib/enhanced-logger.js +1 -1
  24. package/package.json +6 -2
  25. package/plugins/core/bulk-operations-plugin.js +26 -34
  26. package/plugins/core/connectors/express-plugin.js +97 -190
  27. package/plugins/core/connectors/fastify-plugin.js +206 -0
  28. package/plugins/core/connectors/lib/busboy-detector.js +4 -4
  29. package/plugins/core/connectors/lib/connector-core.js +195 -0
  30. package/plugins/core/connectors/lib/transport-http-helpers.js +122 -0
  31. package/plugins/core/connectors/lib/transport-route-schemas.js +92 -0
  32. package/plugins/core/lib/anyapi/schema-utils.js +43 -4
  33. package/plugins/core/lib/anyapi/utils/descriptor-helpers.js +4 -1
  34. package/plugins/core/lib/dbIntrospection.js +1078 -0
  35. package/plugins/core/lib/dbTablesOperations.js +1111 -160
  36. package/plugins/core/lib/querying/knex-cross-table-search.js +0 -7
  37. package/plugins/core/lib/querying/knex-json-api-transformers-querying.js +5 -3
  38. package/plugins/core/lib/querying/knex-process-includes.js +3 -4
  39. package/plugins/core/lib/querying/knex-query-helpers.js +21 -76
  40. package/plugins/core/lib/querying/knex-relationship-includes.js +468 -215
  41. package/plugins/core/lib/querying/query-builder-utils.js +19 -0
  42. package/plugins/core/lib/querying/query-field-sort-helpers.js +135 -0
  43. package/plugins/core/lib/querying/sort-helpers.js +33 -0
  44. package/plugins/core/lib/querying/storage-adapter-utils.js +51 -0
  45. package/plugins/core/lib/querying/url-helpers.js +8 -2
  46. package/plugins/core/lib/querying-writing/compile-schemas.js +20 -5
  47. package/plugins/core/lib/querying-writing/knex-field-helpers.js +83 -14
  48. package/plugins/core/lib/querying-writing/knex-json-api-transformers.js +13 -12
  49. package/plugins/core/lib/querying-writing/query-field-helpers.js +88 -0
  50. package/plugins/core/lib/querying-writing/request-contracts.js +590 -0
  51. package/plugins/core/lib/querying-writing/resource-id-normalization.js +131 -0
  52. package/plugins/core/lib/querying-writing/schema-helpers.js +0 -2
  53. package/plugins/core/lib/querying-writing/simplified-helpers.js +4 -11
  54. package/plugins/core/lib/storage/canonical-storage-mapping.js +133 -0
  55. package/plugins/core/lib/storage/storage-adapter.js +82 -4
  56. package/plugins/core/lib/storage/storage-mapping.js +274 -0
  57. package/plugins/core/lib/writing/many-to-many-manipulations.js +4 -2
  58. package/plugins/core/rest-api-anyapi-knex-plugin.js +531 -312
  59. package/plugins/core/rest-api-autofilter-plugin.js +414 -0
  60. package/plugins/core/rest-api-knex-plugin.js +271 -226
  61. package/plugins/core/rest-api-plugin-hooks/register-relationship-routes.js +10 -5
  62. package/plugins/core/rest-api-plugin-hooks/register-scope-routes.js +12 -6
  63. package/plugins/core/rest-api-plugin-hooks/turn-scope-init-into-vars.js +1 -0
  64. package/plugins/core/rest-api-plugin-methods/apply-query-filters.js +41 -0
  65. package/plugins/core/rest-api-plugin-methods/common.js +148 -92
  66. package/plugins/core/rest-api-plugin-methods/delete-relationship.js +11 -2
  67. package/plugins/core/rest-api-plugin-methods/delete.js +6 -1
  68. package/plugins/core/rest-api-plugin-methods/enrich-attributes.js +6 -1
  69. package/plugins/core/rest-api-plugin-methods/get-related.js +7 -2
  70. package/plugins/core/rest-api-plugin-methods/get-relationship.js +7 -2
  71. package/plugins/core/rest-api-plugin-methods/get.js +29 -14
  72. package/plugins/core/rest-api-plugin-methods/patch-relationship.js +10 -3
  73. package/plugins/core/rest-api-plugin-methods/patch.js +56 -12
  74. package/plugins/core/rest-api-plugin-methods/post-relationship.js +11 -2
  75. package/plugins/core/rest-api-plugin-methods/post.js +21 -8
  76. package/plugins/core/rest-api-plugin-methods/put.js +73 -21
  77. package/plugins/core/rest-api-plugin-methods/query.js +15 -53
  78. package/plugins/core/rest-api-plugin-methods/release.js +0 -2
  79. package/plugins/core/rest-api-plugin.js +6 -0
  80. package/plugins/core/rest-api-positioning-plugin.js +2 -5
  81. package/plugins/core/rest-api-query-projections-plugin.js +130 -0
  82. package/plugins/core/socketio-plugin.js +1 -4
  83. package/plugins/storage/local-storage.js +1 -1
  84. package/plugins/storage/s3-storage.js +5 -2
  85. package/quickTest.js +1 -0
  86. package/scripts/run-docs.js +80 -84
  87. package/test-debug.js +1 -1
  88. package/tests/README.md +7 -0
  89. package/tests/anyapi-basic.test.js +3 -0
  90. package/tests/autofilter.test.js +463 -0
  91. package/tests/custom-id-mysql-returning-fallback.test.js +128 -0
  92. package/tests/custom-id-simplified-post.test.js +75 -0
  93. package/tests/custom-idproperty-relationships.test.js +33 -0
  94. package/tests/db-introspection.test.js +521 -0
  95. package/tests/db-table-operations.test.js +786 -0
  96. package/tests/fastify-plugin.test.js +156 -0
  97. package/tests/field-getters.test.js +1 -2
  98. package/tests/field-setters.test.js +0 -4
  99. package/tests/fixtures/api-configs.js +278 -176
  100. package/tests/helpers/fake-fastify.js +99 -0
  101. package/tests/http-connectors-parity.test.js +235 -0
  102. package/tests/id-normalization.test.js +444 -0
  103. package/tests/logical-id-write-validation.test.js +151 -0
  104. package/tests/pagination-cursor-multifield.test.js +11 -11
  105. package/tests/projected-fields.test.js +319 -0
  106. package/tests/relationships.test.js +3 -3
  107. package/tests/searchschema-knex-behavior.test.js +187 -0
  108. package/tests/searchschema-merge.test.js +21 -69
  109. package/tests/storage-mapping.test.js +259 -0
  110. package/audit/00-charter.md +0 -103
  111. package/audit/01-scope-map.md +0 -84
  112. package/audit/02-coverage-matrix.csv +0 -174
  113. package/audit/03-invariants.md +0 -123
  114. package/audit/04-standards-rubric.md +0 -56
  115. package/audit/05-competitor-rubric.md +0 -77
  116. package/audit/06-findings.md +0 -160
  117. package/audit/07-risk-register.csv +0 -10
  118. package/audit/08-remediation-roadmap.md +0 -177
  119. package/audit/09-signoff-check.md +0 -23
  120. package/audit/10-final-synthesis.md +0 -29
  121. package/audit/evidence/code/all-files-json-rest-api.txt +0 -168
  122. package/audit/evidence/code/all-files-json-rest-schema.txt +0 -12
  123. package/audit/evidence/code/boundary-leak-checks.txt +0 -72
  124. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__bulk-operations-plugin.js.txt +0 -480
  125. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__express-plugin.js.txt +0 -532
  126. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__busboy-detector.js.txt +0 -175
  127. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__formidable-detector.js.txt +0 -138
  128. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__request-helpers.js.txt +0 -222
  129. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__file-handling-plugin.js.txt +0 -342
  130. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__dbTablesOperations.js.txt +0 -304
  131. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__fractional-positioning.js.txt +0 -188
  132. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__compile-schemas.js.txt +0 -336
  133. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__connectors-query-parser.js.txt +0 -165
  134. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__database-capabilities.js.txt +0 -265
  135. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__database-value-normalizers.js.txt +0 -369
  136. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__default-data-helpers.js.txt +0 -72
  137. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__field-utils.js.txt +0 -139
  138. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-constants.js.txt +0 -45
  139. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-field-helpers.js.txt +0 -396
  140. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-json-api-transformers.js.txt +0 -162
  141. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__payload-validators.js.txt +0 -1314
  142. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__schema-helpers.js.txt +0 -488
  143. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__scope-validations.js.txt +0 -484
  144. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__simplified-helpers.js.txt +0 -857
  145. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-cross-table-search.js.txt +0 -565
  146. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-json-api-transformers-querying.js.txt +0 -485
  147. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-pagination-helpers.js.txt +0 -560
  148. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-process-includes.js.txt +0 -167
  149. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-query-helpers-base.js.txt +0 -109
  150. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-query-helpers.js.txt +0 -1064
  151. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-relationship-includes.js.txt +0 -1983
  152. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-window-queries.js.txt +0 -328
  153. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__url-helpers.js.txt +0 -119
  154. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__storage__storage-adapter.js.txt +0 -160
  155. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__writing__many-to-many-manipulations.js.txt +0 -300
  156. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__writing__relationship-processor.js.txt +0 -245
  157. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-access.js.txt +0 -459
  158. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-cors-plugin.js.txt +0 -237
  159. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-knex-plugin.js.txt +0 -1135
  160. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-multihome-plugin.js.txt +0 -314
  161. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__compile-resource-schemas.js.txt +0 -7
  162. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__register-relationship-routes.js.txt +0 -71
  163. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__register-scope-routes.js.txt +0 -102
  164. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__turn-scope-init-into-vars.js.txt +0 -49
  165. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__validate-include-configurations.js.txt +0 -39
  166. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__add-route.js.txt +0 -23
  167. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__check-permissions.js.txt +0 -13
  168. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__common.js.txt +0 -639
  169. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__delete-relationship.js.txt +0 -117
  170. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__delete.js.txt +0 -104
  171. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__enrich-attributes.js.txt +0 -199
  172. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get-related.js.txt +0 -353
  173. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get-relationship.js.txt +0 -61
  174. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get.js.txt +0 -184
  175. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__patch-relationship.js.txt +0 -55
  176. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__patch.js.txt +0 -191
  177. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__post-relationship.js.txt +0 -110
  178. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__post.js.txt +0 -168
  179. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__put.js.txt +0 -253
  180. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__query.js.txt +0 -207
  181. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__release.js.txt +0 -12
  182. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin.js.txt +0 -165
  183. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-positioning-plugin.js.txt +0 -668
  184. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__socketio-plugin.js.txt +0 -621
  185. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__storage__local-storage.js.txt +0 -218
  186. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__storage__s3-storage.js.txt +0 -124
  187. package/audit/evidence/code/critical-pass1/json-rest-schema__src__CorePlugin.js.txt +0 -269
  188. package/audit/evidence/code/critical-pass1/json-rest-schema__src__Schema.js.txt +0 -242
  189. package/audit/evidence/code/critical-pass1/json-rest-schema__src__index.js.txt +0 -77
  190. package/audit/evidence/code/critical-pass1-risk-keywords.txt +0 -238
  191. package/audit/evidence/code/critical-pass1-summary.csv +0 -67
  192. package/audit/evidence/code/critical-pass2-summary.csv +0 -67
  193. package/audit/evidence/code/early-silent-zones-no-test-token.txt +0 -57
  194. package/audit/evidence/code/error-model-signals.txt +0 -98
  195. package/audit/evidence/code/git-files-json-rest-api.txt +0 -171
  196. package/audit/evidence/code/git-files-json-rest-schema.txt +0 -27
  197. package/audit/evidence/code/hook-flow-signals.txt +0 -282
  198. package/audit/evidence/code/idproperty-signals.txt +0 -157
  199. package/audit/evidence/code/import-cycles-non-anyapi.txt +0 -3
  200. package/audit/evidence/code/import-hotspots-non-anyapi.txt +0 -96
  201. package/audit/evidence/code/imports-json-rest-api.txt +0 -354
  202. package/audit/evidence/code/imports-json-rest-schema.txt +0 -15
  203. package/audit/evidence/code/in-scope-files-json-rest-api.txt +0 -160
  204. package/audit/evidence/code/in-scope-files-json-rest-schema.txt +0 -13
  205. package/audit/evidence/code/non-anyapi-core-files.txt +0 -101
  206. package/audit/evidence/code/permission-signals.txt +0 -193
  207. package/audit/evidence/code/query-include-signals.txt +0 -687
  208. package/audit/evidence/code/transaction-signals.txt +0 -28
  209. package/audit/evidence/code/validation-signals.txt +0 -650
  210. package/audit/evidence/code/write-path-signals.txt +0 -61
  211. package/audit/evidence/docs/docs-claims-signals.txt +0 -1075
  212. package/audit/evidence/docs/schema-docs-claims-signals.txt +0 -179
  213. package/audit/evidence/external/corpus-freeze.md +0 -21
  214. package/audit/evidence/external/npm-competitor-metadata.txt +0 -70
  215. package/audit/evidence/external/npm-download-signals.txt +0 -23
  216. package/audit/evidence/external/npm-jsonapi-server.txt +0 -8
  217. package/audit/evidence/external/npm-modern-jsonapi-metadata.txt +0 -38
  218. package/audit/evidence/external/readme-fortune-signals.txt +0 -26
  219. package/audit/evidence/external/readme-fortune.md +0 -165
  220. package/audit/evidence/external/readme-json-api-serializer-signals.txt +0 -80
  221. package/audit/evidence/external/readme-json-api-serializer.md +0 -690
  222. package/audit/evidence/external/readme-jsonapi-serde-server-signals.txt +0 -0
  223. package/audit/evidence/external/readme-jsonapi-serde-server.md +0 -22
  224. package/audit/evidence/external/readme-jsonapi-serializer-signals.txt +0 -63
  225. package/audit/evidence/external/readme-jsonapi-serializer.md +0 -315
  226. package/audit/evidence/external/readme-jsonapi-server-signals.txt +0 -19
  227. package/audit/evidence/external/readme-jsonapi-server.md +0 -104
  228. package/audit/evidence/external/readme-nestjs-json-api-signals.txt +0 -4
  229. package/audit/evidence/external/readme-nestjs-json-api.md +0 -94
  230. package/audit/evidence/external/readme-yaser-json-api-nestjs-signals.txt +0 -47
  231. package/audit/evidence/external/readme-yaser-json-api-nestjs.md +0 -447
  232. package/audit/evidence/external/standard-jsonapi-snippets.txt +0 -84
  233. package/audit/evidence/external/standard-rfc-snippets.txt +0 -168
  234. package/audit/evidence/external/standards-sources.txt +0 -6
  235. package/audit/evidence/runtime/baseline-commits.txt +0 -2
  236. package/audit/evidence/runtime/db-adapter-assumptions.txt +0 -3
  237. package/audit/evidence/runtime/environment.txt +0 -4
  238. package/audit/evidence/runtime/invariant-runtime-mapping.md +0 -38
  239. package/audit/evidence/runtime/probe-patch-relationship-error.exitcode +0 -1
  240. package/audit/evidence/runtime/probe-patch-relationship-error.log +0 -76
  241. package/audit/evidence/runtime/probe-patch-relationship-error.mjs +0 -67
  242. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.exitcode +0 -1
  243. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.log +0 -62
  244. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.mjs +0 -47
  245. package/audit/evidence/runtime/test-exitcodes.txt +0 -4
  246. package/audit/evidence/runtime/test-summary.md +0 -107
  247. package/audit/evidence/runtime/trace-anchors.txt +0 -61
  248. package/audit/evidence/tests/access-multitenancy-test-signals.txt +0 -125
  249. package/audit/evidence/tests/failing-tests-summary.txt +0 -25
  250. package/audit/evidence/tests/npm-test-json-rest-api.exitcode +0 -1
  251. package/audit/evidence/tests/npm-test-json-rest-api.log +0 -5885
  252. package/audit/evidence/tests/npm-test-json-rest-schema.exitcode +0 -1
  253. package/audit/evidence/tests/npm-test-json-rest-schema.log +0 -356
  254. package/audit/evidence/tests/query-include-test-signals.txt +0 -948
  255. package/audit/evidence/tests/relationship-test-signals.txt +0 -223
  256. package/audit/evidence/tests/skipped-tests.txt +0 -10
  257. package/audit/evidence/tests/test-suite-list-non-anyapi.txt +0 -30
  258. package/audit/evidence/tests/test-suite-list.txt +0 -32
  259. package/audit/subsystems/docs-drift.md +0 -49
  260. package/audit/subsystems/pass2-cross-review.md +0 -131
  261. package/audit/subsystems/plugins-access.md +0 -51
  262. package/audit/subsystems/plugins-bulk.md +0 -50
  263. package/audit/subsystems/plugins-cors.md +0 -48
  264. package/audit/subsystems/plugins-file.md +0 -53
  265. package/audit/subsystems/plugins-multihome.md +0 -50
  266. package/audit/subsystems/plugins-positioning.md +0 -54
  267. package/audit/subsystems/plugins-socketio.md +0 -50
  268. package/audit/subsystems/query-engine.md +0 -61
  269. package/audit/subsystems/relationships.md +0 -55
  270. package/audit/subsystems/rest-orchestration.md +0 -66
  271. package/audit/subsystems/schema-core.md +0 -64
  272. package/audit/subsystems/storage-knex.md +0 -57
  273. package/audit/subsystems/tests.md +0 -48
  274. package/audit/subsystems/transport-express.md +0 -55
  275. package/audit/traces/trace-read-get.md +0 -22
  276. package/audit/traces/trace-read-query.md +0 -25
  277. package/audit/traces/trace-relationship-endpoints.md +0 -31
  278. package/audit/traces/trace-write-delete.md +0 -17
  279. package/audit/traces/trace-write-patch.md +0 -26
  280. package/audit/traces/trace-write-post.md +0 -22
  281. package/audit/traces/trace-write-put.md +0 -23
  282. package/docs/GUIDE/GUIDE_4_Authentication_And_Permissions.md +0 -707
  283. package/docs/GUIDE/GUIDE_X_Multihome.md +0 -666
  284. package/plugins/core/lib/querying-writing/payload-validators.js +0 -1314
  285. package/plugins/core/rest-api-access.js +0 -459
  286. package/plugins/core/rest-api-multihome-plugin.js +0 -314
  287. package/tests/multihome.test.js +0 -553
  288. package/tests/multihome.test.js.bak +0 -550
  289. package/tests/ownership-optout.test.js +0 -76
  290. package/tests/rest-api-access.test.js +0 -206
@@ -1,354 +0,0 @@
1
- lib/enhanced-logger.js:import { formatError, formatErrorSummary, formatErrorString } from './error-formatter.js'
2
- plugins/core/bulk-operations-plugin.js:import { RestApiValidationError, RestApiResourceError } from '../../lib/rest-api-errors.js'
3
- lib/rest-api-errors.js:import { HookedApiError } from 'hooked-api'
4
- plugins/core/rest-api-plugin-methods/query.js:import { RestApiValidationError } from '../../../lib/rest-api-errors.js'
5
- plugins/core/rest-api-plugin-methods/query.js:import { validateQueryPayload } from '../lib/querying-writing/payload-validators.js'
6
- plugins/core/rest-api-plugin-methods/query.js:import { normalizeRecordAttributes } from '../lib/querying-writing/database-value-normalizers.js'
7
- plugins/core/rest-api-plugin-methods/query.js:import { getRequestedComputedFields } from '../lib/querying-writing/knex-field-helpers.js'
8
- plugins/core/rest-api-plugin-methods/query.js:import { transformJsonApiToSimplified } from '../lib/querying-writing/simplified-helpers.js'
9
- plugins/core/rest-api-plugin-methods/query.js:import { cascadeConfig } from './common.js'
10
- plugins/core/rest-api-plugin-methods/get-relationship.js:import { RestApiResourceError } from '../../../lib/rest-api-errors.js'
11
- plugins/core/rest-api-plugin-methods/get-relationship.js:import { findRelationshipDefinition } from './common.js'
12
- plugins/core/rest-api-plugin-methods/get-relationship.js:import { buildRelationshipUrl } from '../lib/querying/url-helpers.js'
13
- plugins/core/rest-api-plugin-methods/enrich-attributes.js:import { filterHiddenFields } from '../lib/querying-writing/field-utils.js'
14
- plugins/core/rest-api-plugin-methods/get-related.js:import { RestApiResourceError } from '../../../lib/rest-api-errors.js'
15
- plugins/core/rest-api-plugin-methods/get-related.js:import { findRelationshipDefinition } from './common.js'
16
- plugins/core/rest-api-plugin-methods/get-related.js:import { buildRelationshipUrl } from '../lib/querying/url-helpers.js'
17
- plugins/core/rest-api-plugin-methods/delete-relationship.js:import { RestApiResourceError, RestApiValidationError, RestApiPayloadError } from '../../../lib/rest-api-errors.js'
18
- plugins/core/rest-api-plugin-methods/delete-relationship.js:import { findRelationshipDefinition, handleWriteMethodError } from './common.js'
19
- plugins/core/rest-api-plugin-methods/common.js:import {
20
- plugins/core/rest-api-plugin-methods/common.js:import { transformSimplifiedToJsonApi } from '../lib/querying-writing/simplified-helpers.js'
21
- plugins/core/rest-api-plugin-methods/common.js:import { createEnhancedLogger } from '../../../lib/enhanced-logger.js'
22
- plugins/core/rest-api-plugin-methods/patch.js:import { RestApiResourceError } from '../../../lib/rest-api-errors.js'
23
- plugins/core/rest-api-plugin-methods/patch.js:import { validatePatchPayload } from '../lib/querying-writing/payload-validators.js'
24
- plugins/core/rest-api-plugin-methods/patch.js:import { processRelationships } from '../lib/writing/relationship-processor.js'
25
- plugins/core/rest-api-plugin-methods/patch.js:import { updateManyToManyRelationship } from '../lib/writing/many-to-many-manipulations.js'
26
- plugins/core/rest-api-plugin-methods/patch.js:import { ERROR_SUBTYPES } from '../lib/querying-writing/knex-constants.js'
27
- plugins/core/rest-api-plugin-methods/patch.js:import {
28
- plugins/core/rest-api-plugin-methods/post-relationship.js:import { RestApiResourceError, RestApiValidationError, RestApiPayloadError } from '../../../lib/rest-api-errors.js'
29
- plugins/core/rest-api-plugin-methods/post-relationship.js:import { findRelationshipDefinition, handleWriteMethodError } from './common.js'
30
- plugins/core/rest-api-plugin-methods/post-relationship.js:import { createPivotRecords } from '../lib/writing/many-to-many-manipulations.js'
31
- plugins/core/rest-api-plugin-methods/get.js:import { RestApiResourceError } from '../../../lib/rest-api-errors.js'
32
- plugins/core/rest-api-plugin-methods/get.js:import { validateGetPayload } from '../lib/querying-writing/payload-validators.js'
33
- plugins/core/rest-api-plugin-methods/get.js:import { normalizeRecordAttributes } from '../lib/querying-writing/database-value-normalizers.js'
34
- plugins/core/rest-api-plugin-methods/get.js:import { getRequestedComputedFields } from '../lib/querying-writing/knex-field-helpers.js'
35
- plugins/core/rest-api-plugin-methods/get.js:import { transformJsonApiToSimplified } from '../lib/querying-writing/simplified-helpers.js'
36
- plugins/core/rest-api-plugin-methods/get.js:import { cascadeConfig } from './common.js'
37
- plugins/core/rest-api-plugin-methods/add-route.js:import { ValidationError } from 'hooked-api'
38
- plugins/core/rest-api-plugin-methods/release.js:import { ValidationError } from 'hooked-api'
39
- plugins/core/rest-api-plugin-methods/put.js:import { RestApiResourceError } from '../../../lib/rest-api-errors.js'
40
- plugins/core/rest-api-plugin-methods/put.js:import { validatePutPayload } from '../lib/querying-writing/payload-validators.js'
41
- plugins/core/rest-api-plugin-methods/put.js:import { processRelationships } from '../lib/writing/relationship-processor.js'
42
- plugins/core/rest-api-plugin-methods/put.js:import { updateManyToManyRelationship, createPivotRecords } from '../lib/writing/many-to-many-manipulations.js'
43
- plugins/core/rest-api-plugin-methods/put.js:import { ERROR_SUBTYPES } from '../lib/querying-writing/knex-constants.js'
44
- plugins/core/rest-api-plugin-methods/put.js:import {
45
- plugins/core/rest-api-plugin-methods/post.js:import { validatePostPayload } from '../lib/querying-writing/payload-validators.js'
46
- plugins/core/rest-api-plugin-methods/post.js:import { processRelationships } from '../lib/writing/relationship-processor.js'
47
- plugins/core/rest-api-plugin-methods/post.js:import { createPivotRecords } from '../lib/writing/many-to-many-manipulations.js'
48
- plugins/core/rest-api-plugin-methods/post.js:import {
49
- plugins/core/rest-api-plugin-methods/delete.js:import { RestApiResourceError } from '../../../lib/rest-api-errors.js'
50
- plugins/core/rest-api-plugin-methods/delete.js:import { handleWriteMethodError } from './common.js'
51
- plugins/core/rest-api-positioning-plugin.js:import {
52
- plugins/core/rest-api-positioning-plugin.js:import { createStorageAdapter } from './lib/storage/storage-adapter.js'
53
- quickTest.js:import { RestApiPlugin, RestApiKnexPlugin, ExpressPlugin } from './index.js' // Added: ExpressPlugin
54
- quickTest.js:import { Api } from 'hooked-api'
55
- quickTest.js:import knexLib from 'knex'
56
- quickTest.js:import util from 'util'
57
- quickTest.js:import express from 'express' // Added: Express
58
- plugins/core/rest-api-plugin.js:import { validateRelationships } from './lib/querying-writing/scope-validations.js'
59
- plugins/core/rest-api-plugin.js:import compileResourceSchemas from './rest-api-plugin-hooks/compile-resource-schemas.js'
60
- plugins/core/rest-api-plugin.js:import validateIncludeConfigurations from './rest-api-plugin-hooks/validate-include-configurations.js'
61
- plugins/core/rest-api-plugin.js:import turnScopeInitIntoVars from './rest-api-plugin-hooks/turn-scope-init-into-vars.js'
62
- plugins/core/rest-api-plugin.js:import registerScopeRoutes from './rest-api-plugin-hooks/register-scope-routes.js'
63
- plugins/core/rest-api-plugin.js:import registerRelationshipRoutes from './rest-api-plugin-hooks/register-relationship-routes.js'
64
- plugins/core/rest-api-plugin.js:import queryMethod from './rest-api-plugin-methods/query.js'
65
- plugins/core/rest-api-plugin.js:import getMethod from './rest-api-plugin-methods/get.js'
66
- plugins/core/rest-api-plugin.js:import postMethod from './rest-api-plugin-methods/post.js'
67
- plugins/core/rest-api-plugin.js:import putMethod from './rest-api-plugin-methods/put.js'
68
- plugins/core/rest-api-plugin.js:import patchMethod from './rest-api-plugin-methods/patch.js'
69
- plugins/core/rest-api-plugin.js:import deleteMethod from './rest-api-plugin-methods/delete.js'
70
- plugins/core/rest-api-plugin.js:import enrichAttributesMethod from './rest-api-plugin-methods/enrich-attributes.js'
71
- plugins/core/rest-api-plugin.js:import checkPermissionsMethod from './rest-api-plugin-methods/check-permissions.js'
72
- plugins/core/rest-api-plugin.js:import addRouteMethod from './rest-api-plugin-methods/add-route.js'
73
- plugins/core/rest-api-plugin.js:import releaseMethod from './rest-api-plugin-methods/release.js'
74
- plugins/core/rest-api-plugin.js:import { defaultDataHelpers } from './lib/querying-writing/default-data-helpers.js'
75
- plugins/core/rest-api-plugin.js:import { DEFAULT_QUERY_LIMIT, DEFAULT_MAX_QUERY_LIMIT, DEFAULT_INCLUDE_DEPTH_LIMIT } from './lib/querying-writing/knex-constants.js'
76
- plugins/core/rest-api-plugin.js:import getRelatedMethod from './rest-api-plugin-methods/get-related.js'
77
- plugins/core/rest-api-plugin.js:import postRelationshipMethod from './rest-api-plugin-methods/post-relationship.js'
78
- plugins/core/rest-api-plugin.js:import getRelationshipMethod from './rest-api-plugin-methods/get-relationship.js'
79
- plugins/core/rest-api-plugin.js:import patchRelationshipMethod from './rest-api-plugin-methods/patch-relationship.js'
80
- plugins/core/rest-api-plugin.js:import deleteRelationshipMethod from './rest-api-plugin-methods/delete-relationship.js'
81
- plugins/core/socketio-plugin.js:import { requirePackage } from 'hooked-api'
82
- plugins/core/file-handling-plugin.js:import { RestApiValidationError } from '../../lib/rest-api-errors.js'
83
- tests/positioning-advanced.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
84
- tests/positioning-advanced.test.js:import assert from 'node:assert/strict'
85
- tests/positioning-advanced.test.js:import knexLib from 'knex'
86
- tests/positioning-advanced.test.js:import { cleanTables } from './helpers/test-utils.js'
87
- tests/positioning-advanced.test.js:import { createPositioningApi } from './fixtures/api-configs.js'
88
- tests/positioning-advanced.test.js:import { PositioningPlugin } from '../plugins/core/rest-api-positioning-plugin.js'
89
- tests/positioning-advanced.test.js:import { rebalancePositions, isValidPosition, getUnpositionedItems, assignInitialPositions } from '../plugins/core/lib/fractional-positioning.js'
90
- plugins/core/connectors/express-plugin.js:import { requirePackage } from 'hooked-api'
91
- plugins/core/connectors/express-plugin.js:import { parseJsonApiQuery } from '../lib/querying-writing/connectors-query-parser.js'
92
- plugins/core/connectors/express-plugin.js:import { createContext } from './lib/request-helpers.js'
93
- plugins/core/connectors/express-plugin.js:import { createEnhancedLogger } from '../../../lib/enhanced-logger.js'
94
- tests/searchschema-merge.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
95
- tests/searchschema-merge.test.js:import assert from 'node:assert/strict'
96
- tests/searchschema-merge.test.js:import knexLib from 'knex'
97
- tests/searchschema-merge.test.js:import {
98
- tests/searchschema-merge.test.js:import { createSearchSchemaMergeApi } from './fixtures/api-configs.js'
99
- tests/bulk-operations.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
100
- tests/bulk-operations.test.js:import assert from 'node:assert/strict'
101
- tests/bulk-operations.test.js:import knexLib from 'knex'
102
- tests/bulk-operations.test.js:import { createBulkOperationsApi } from './fixtures/api-configs.js'
103
- tests/bulk-operations.test.js:import {
104
- tests/helpers/test-utils.js:import assert from 'node:assert/strict'
105
- tests/helpers/test-utils.js:import { storageMode } from './storage-mode.js'
106
- plugins/core/connectors/lib/formidable-detector.js:import { requirePackage } from 'hooked-api'
107
- plugins/core/connectors/lib/formidable-detector.js:import { promises as fs } from 'fs'
108
- plugins/core/connectors/lib/formidable-detector.js:import path from 'path'
109
- tests/rest-api-access.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
110
- tests/rest-api-access.test.js:import assert from 'node:assert/strict'
111
- tests/rest-api-access.test.js:import knexLib from 'knex'
112
- tests/rest-api-access.test.js:import {
113
- tests/rest-api-access.test.js:import { createAccessControlApi } from './fixtures/api-configs.js'
114
- tests/custom-idproperty-relationships.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
115
- tests/custom-idproperty-relationships.test.js:import assert from 'node:assert/strict'
116
- tests/custom-idproperty-relationships.test.js:import knexLib from 'knex'
117
- tests/custom-idproperty-relationships.test.js:import { createCustomIdPropertyApi } from './fixtures/api-configs.js'
118
- tests/custom-idproperty-relationships.test.js:import {
119
- tests/custom-idproperty-relationships.test.js:import { storageMode } from './helpers/storage-mode.js'
120
- plugins/core/connectors/lib/busboy-detector.js:import { requirePackage } from 'hooked-api'
121
- plugins/core/connectors/lib/busboy-detector.js:import { Readable } from 'stream'
122
- tests/queries.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
123
- tests/queries.test.js:import assert from 'node:assert/strict'
124
- tests/queries.test.js:import knexLib from 'knex'
125
- tests/queries.test.js:import { createBasicApi, createExtendedApi } from './fixtures/api-configs.js'
126
- tests/queries.test.js:import {
127
- plugins/core/lib/fractional-positioning.js:import { requirePackage } from 'hooked-api'
128
- tests/field-getters.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
129
- tests/field-getters.test.js:import assert from 'node:assert/strict'
130
- tests/field-getters.test.js:import knexLib from 'knex'
131
- tests/field-getters.test.js:import { createFieldGettersApi } from './fixtures/api-configs.js'
132
- tests/field-getters.test.js:import { cleanTables } from './helpers/test-utils.js'
133
- tests/field-getters.test.js:import { storageMode } from './helpers/storage-mode.js'
134
- plugins/core/lib/querying/knex-json-api-transformers-querying.js:import { getForeignKeyFields as getForeignKeyFieldsFromUtils } from '../querying-writing/field-utils.js'
135
- plugins/core/lib/querying/knex-json-api-transformers-querying.js:import { RELATIONSHIPS_KEY, RELATIONSHIP_METADATA_KEY, ROW_NUMBER_KEY, COMPUTED_DEPENDENCIES_KEY, getSchemaStructure } from '../querying-writing/knex-constants.js'
136
- plugins/core/lib/querying/knex-json-api-transformers-querying.js:import { getUrlPrefix, buildResourceUrl, buildRelationshipUrl } from './url-helpers.js'
137
- tests/pagination-cursor-multifield.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
138
- tests/pagination-cursor-multifield.test.js:import assert from 'node:assert/strict'
139
- tests/pagination-cursor-multifield.test.js:import knexLib from 'knex'
140
- tests/pagination-cursor-multifield.test.js:import {
141
- tests/pagination-cursor-multifield.test.js:import { createCursorPaginationApi } from './fixtures/api-configs.js'
142
- plugins/core/lib/querying/knex-query-helpers.js:import { analyzeRequiredIndexes, buildJoinChain } from './knex-cross-table-search.js'
143
- tests/field-setters.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
144
- tests/field-setters.test.js:import assert from 'node:assert/strict'
145
- tests/field-setters.test.js:import knexLib from 'knex'
146
- tests/field-setters.test.js:import { createFieldSettersApi } from './fixtures/api-configs.js'
147
- tests/field-setters.test.js:import { cleanTables } from './helpers/test-utils.js'
148
- plugins/core/lib/querying/knex-relationship-includes.js:import { buildFieldSelection } from '../querying-writing/knex-field-helpers.js'
149
- plugins/core/lib/querying/knex-relationship-includes.js:import { getForeignKeyFields } from '../querying-writing/field-utils.js'
150
- plugins/core/lib/querying/knex-relationship-includes.js:import { toJsonApiRecord } from './knex-json-api-transformers-querying.js'
151
- plugins/core/lib/querying/knex-relationship-includes.js:import { buildWindowedIncludeQuery, applyStandardIncludeConfig, buildOrderByClause } from './knex-window-queries.js'
152
- plugins/core/lib/querying/knex-relationship-includes.js:import { RELATIONSHIPS_KEY, RELATIONSHIP_METADATA_KEY, ROW_NUMBER_KEY, COMPUTED_DEPENDENCIES_KEY, DEFAULT_QUERY_LIMIT } from '../querying-writing/knex-constants.js'
153
- plugins/core/lib/querying/knex-relationship-includes.js:import { RestApiResourceError } from '../../../../lib/rest-api-errors.js'
154
- tests/positioning-multifilter.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
155
- tests/positioning-multifilter.test.js:import assert from 'node:assert/strict'
156
- tests/positioning-multifilter.test.js:import knexLib from 'knex'
157
- tests/positioning-multifilter.test.js:import { cleanTables } from './helpers/test-utils.js'
158
- tests/positioning-multifilter.test.js:import { createPositioningApi } from './fixtures/api-configs.js'
159
- tests/positioning-multifilter.test.js:import { PositioningPlugin } from '../plugins/core/rest-api-positioning-plugin.js'
160
- plugins/core/lib/querying/knex-process-includes.js:import { buildIncludedResources } from './knex-relationship-includes.js'
161
- tests/polymorphic-relationships.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
162
- tests/polymorphic-relationships.test.js:import assert from 'node:assert/strict'
163
- tests/polymorphic-relationships.test.js:import knexLib from 'knex'
164
- tests/polymorphic-relationships.test.js:import { createExtendedApi } from './fixtures/api-configs.js'
165
- tests/polymorphic-relationships.test.js:import {
166
- tests/nested-includes.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
167
- tests/nested-includes.test.js:import assert from 'node:assert/strict'
168
- tests/nested-includes.test.js:import knexLib from 'knex'
169
- tests/nested-includes.test.js:import { Api } from 'hooked-api'
170
- tests/nested-includes.test.js:import { RestApiPlugin } from '../plugins/core/rest-api-plugin.js'
171
- tests/nested-includes.test.js:import { RestApiKnexPlugin } from '../plugins/core/rest-api-knex-plugin.js'
172
- tests/nested-includes.test.js:import {
173
- plugins/core/lib/querying/knex-window-queries.js:import { RestApiResourceError } from '../../../../lib/rest-api-errors.js'
174
- plugins/core/lib/querying/knex-window-queries.js:import { ROW_NUMBER_KEY, DEFAULT_QUERY_LIMIT, DEFAULT_MAX_QUERY_LIMIT, DEFAULT_MAX_INCLUDE_LIMIT } from '../querying-writing/knex-constants.js'
175
- tests/relationship-endpoints.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
176
- tests/relationship-endpoints.test.js:import assert from 'node:assert/strict'
177
- tests/relationship-endpoints.test.js:import knexLib from 'knex'
178
- tests/relationship-endpoints.test.js:import {
179
- tests/relationship-endpoints.test.js:import { createBasicApi } from './fixtures/api-configs.js'
180
- tests/socketio.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
181
- tests/socketio.test.js:import assert from 'node:assert/strict'
182
- tests/socketio.test.js:import knexLib from 'knex'
183
- tests/socketio.test.js:import { io as ioClient } from 'socket.io-client'
184
- tests/socketio.test.js:import { SignJWT } from 'jose'
185
- tests/socketio.test.js:import {
186
- tests/socketio.test.js:import { createWebSocketApi } from './fixtures/api-configs.js'
187
- tests/fixtures/api-configs.js:import { Api } from 'hooked-api'
188
- tests/fixtures/api-configs.js:import { RestApiPlugin, RestApiKnexPlugin, RestApiAnyapiKnexPlugin } from '../../index.js'
189
- tests/fixtures/api-configs.js:import { AccessPlugin } from '../../plugins/core/rest-api-access.js'
190
- tests/fixtures/api-configs.js:import { ExpressPlugin } from '../../plugins/core/connectors/express-plugin.js'
191
- tests/fixtures/api-configs.js:import express from 'express'
192
- tests/fixtures/api-configs.js:import { createServer } from 'http'
193
- tests/fixtures/api-configs.js:import { ensureAnyApiSchema } from '../../plugins/core/lib/anyapi/schema-utils.js'
194
- tests/fixtures/api-configs.js:import { storageMode } from '../helpers/storage-mode.js'
195
- plugins/core/lib/writing/many-to-many-manipulations.js:import { RestApiResourceError } from '../../../../lib/rest-api-errors.js'
196
- plugins/core/lib/writing/many-to-many-manipulations.js:import { transformSimplifiedToJsonApi } from '../querying-writing/simplified-helpers.js'
197
- plugins/core/rest-api-plugin-hooks/compile-resource-schemas.js:import { compileSchemas } from '../lib/querying-writing/compile-schemas.js'
198
- plugins/core/lib/writing/relationship-processor.js:import { RestApiValidationError } from '../../../../lib/rest-api-errors.js'
199
- plugins/core/rest-api-plugin-hooks/register-relationship-routes.js:import { parseJsonApiQuery } from '../lib/querying-writing/connectors-query-parser.js'
200
- tests/query-limits.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
201
- tests/query-limits.test.js:import assert from 'node:assert/strict'
202
- tests/query-limits.test.js:import knexLib from 'knex'
203
- tests/query-limits.test.js:import { Api } from 'hooked-api'
204
- tests/query-limits.test.js:import { RestApiPlugin } from '../plugins/core/rest-api-plugin.js'
205
- tests/query-limits.test.js:import { RestApiKnexPlugin } from '../plugins/core/rest-api-knex-plugin.js'
206
- tests/query-limits.test.js:import {
207
- plugins/storage/s3-storage.js:import crypto from 'crypto'
208
- plugins/storage/s3-storage.js:import path from 'path'
209
- plugins/core/rest-api-plugin-hooks/register-scope-routes.js:import { RestApiResourceError } from '../../../lib/rest-api-errors.js'
210
- plugins/core/rest-api-plugin-hooks/register-scope-routes.js:import { parseJsonApiQuery } from '../lib/querying-writing/connectors-query-parser.js'
211
- plugins/core/lib/writing/knex-json-api-transformers-writing.js:import { getSchemaStructure } from '../querying-writing/knex-constants.js'
212
- plugins/storage/local-storage.js:import { promises as fs } from 'fs'
213
- plugins/storage/local-storage.js:import path from 'path'
214
- plugins/storage/local-storage.js:import crypto from 'crypto'
215
- plugins/core/rest-api-anyapi-knex-plugin.js:import { ensureAnyApiSchema } from './lib/anyapi/schema-utils.js'
216
- plugins/core/rest-api-anyapi-knex-plugin.js:import { AnyapiRegistry } from './lib/anyapi/anyapi-registry.js'
217
- plugins/core/rest-api-anyapi-knex-plugin.js:import { RestApiValidationError } from '../../lib/rest-api-errors.js'
218
- plugins/core/rest-api-anyapi-knex-plugin.js:import { createSchema } from 'json-rest-schema'
219
- plugins/core/rest-api-anyapi-knex-plugin.js:import {
220
- plugins/core/rest-api-anyapi-knex-plugin.js:import {
221
- plugins/core/rest-api-anyapi-knex-plugin.js:import { getUrlPrefix, buildResourceUrl } from './lib/querying/url-helpers.js'
222
- plugins/core/rest-api-anyapi-knex-plugin.js:import {
223
- plugins/core/rest-api-anyapi-knex-plugin.js:import {
224
- plugins/core/rest-api-anyapi-knex-plugin.js:import {
225
- plugins/core/rest-api-anyapi-knex-plugin.js:import { buildFieldSelection } from './lib/querying-writing/knex-field-helpers.js'
226
- plugins/core/rest-api-anyapi-knex-plugin.js:import {
227
- plugins/core/rest-api-anyapi-knex-plugin.js:import { createStorageAdapter } from './lib/storage/storage-adapter.js'
228
- tests/positioning-extended.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
229
- tests/positioning-extended.test.js:import assert from 'node:assert/strict'
230
- tests/positioning-extended.test.js:import knexLib from 'knex'
231
- tests/positioning-extended.test.js:import { cleanTables } from './helpers/test-utils.js'
232
- tests/positioning-extended.test.js:import { createPositioningApi } from './fixtures/api-configs.js'
233
- tests/positioning-extended.test.js:import { PositioningPlugin } from '../plugins/core/rest-api-positioning-plugin.js'
234
- tests/relationships.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
235
- tests/relationships.test.js:import assert from 'node:assert/strict'
236
- tests/relationships.test.js:import knexLib from 'knex'
237
- tests/relationships.test.js:import { createBasicApi, createExtendedApi } from './fixtures/api-configs.js'
238
- tests/relationships.test.js:import {
239
- plugins/core/lib/querying-writing/knex-json-api-transformers.js:import { toJsonApiRecord } from '../querying/knex-json-api-transformers-querying.js'
240
- plugins/core/lib/querying-writing/knex-json-api-transformers.js:import { getSchemaStructure } from './knex-constants.js'
241
- plugins/core/lib/querying-writing/payload-validators.js:import { RestApiValidationError, RestApiPayloadError } from '../../../../lib/rest-api-errors.js'
242
- tests/anyapi-cursor-pagination.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
243
- tests/anyapi-cursor-pagination.test.js:import assert from 'node:assert/strict'
244
- tests/anyapi-cursor-pagination.test.js:import knexLib from 'knex'
245
- tests/anyapi-cursor-pagination.test.js:import { createPaginationApi } from './fixtures/api-configs.js'
246
- tests/anyapi-cursor-pagination.test.js:import {
247
- tests/anyapi-cursor-pagination.test.js:import { storageMode } from './helpers/storage-mode.js'
248
- plugins/core/rest-api-knex-plugin.js:import { requirePackage } from 'hooked-api'
249
- plugins/core/rest-api-knex-plugin.js:import { createSchema } from 'json-rest-schema'
250
- plugins/core/rest-api-knex-plugin.js:import { createKnexTable, addKnexFields, alterKnexFields } from './lib/dbTablesOperations.js'
251
- plugins/core/rest-api-knex-plugin.js:import { buildFieldSelection, isNonDatabaseField } from './lib/querying-writing/knex-field-helpers.js'
252
- plugins/core/rest-api-knex-plugin.js:import { getForeignKeyFields } from './lib/querying-writing/field-utils.js'
253
- plugins/core/rest-api-knex-plugin.js:import { buildQuerySelection } from './lib/querying/knex-query-helpers-base.js'
254
- plugins/core/rest-api-knex-plugin.js:import { toJsonApiRecord, buildJsonApiResponse } from './lib/querying/knex-json-api-transformers-querying.js'
255
- plugins/core/rest-api-knex-plugin.js:import { processBelongsToRelationships } from './lib/writing/knex-json-api-transformers-writing.js'
256
- plugins/core/rest-api-knex-plugin.js:import { toJsonApiRecordWithBelongsTo } from './lib/querying-writing/knex-json-api-transformers.js'
257
- plugins/core/rest-api-knex-plugin.js:import { processIncludes } from './lib/querying/knex-process-includes.js'
258
- plugins/core/rest-api-knex-plugin.js:import { loadRelationshipIdentifiers } from './lib/querying/knex-relationship-includes.js'
259
- plugins/core/rest-api-knex-plugin.js:import {
260
- plugins/core/rest-api-knex-plugin.js:import { RestApiResourceError, RestApiValidationError } from '../../lib/rest-api-errors.js'
261
- plugins/core/rest-api-knex-plugin.js:import { supportsWindowFunctions, getDatabaseInfo } from './lib/querying-writing/database-capabilities.js'
262
- plugins/core/rest-api-knex-plugin.js:import { ERROR_SUBTYPES, DEFAULT_QUERY_LIMIT, DEFAULT_MAX_QUERY_LIMIT } from './lib/querying-writing/knex-constants.js'
263
- plugins/core/rest-api-knex-plugin.js:import {
264
- plugins/core/rest-api-knex-plugin.js:import { getUrlPrefix } from './lib/querying/url-helpers.js'
265
- plugins/core/rest-api-knex-plugin.js:import { createStorageAdapter } from './lib/storage/storage-adapter.js'
266
- plugins/core/rest-api-access.js:import { RestApiResourceError } from '../../lib/rest-api-errors.js'
267
- plugins/core/lib/querying-writing/compile-schemas.js:import { createSchema } from 'json-rest-schema'
268
- plugins/core/lib/querying-writing/compile-schemas.js:import { ensureSearchFieldsAreIndexed, generateSearchSchemaFromSchema, sortFieldsByDependencies } from './schema-helpers.js'
269
- plugins/core/lib/querying-writing/simplified-helpers.js:import { RestApiValidationError } from '../../../../lib/rest-api-errors.js'
270
- plugins/core/lib/anyapi/anyapi-registry.js:import { DEFAULT_CANONICAL_CONFIG, SLOT_LIMITS, SLOT_POOLS, TYPE_TO_POOL } from './schema-utils.js'
271
- plugins/core/lib/querying-writing/schema-helpers.js:import { RestApiValidationError } from '../../../../lib/rest-api-errors.js'
272
- plugins/core/lib/anyapi/query/anyapi-query-adapter.js:import { resolveFieldInfo } from '../utils/descriptor-helpers.js'
273
- tests/TEST_TEMPLATE.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
274
- tests/TEST_TEMPLATE.test.js:import assert from 'node:assert/strict'
275
- tests/TEST_TEMPLATE.test.js:import knexLib from 'knex'
276
- tests/TEST_TEMPLATE.test.js:import {
277
- tests/TEST_TEMPLATE.test.js:import { createBasicApi } from './fixtures/api-configs.js'
278
- plugins/core/lib/anyapi/utils/descriptor-helpers.js:import { RestApiValidationError } from '../../../../../lib/rest-api-errors.js'
279
- tests/rest-api.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
280
- tests/rest-api.test.js:import assert from 'node:assert/strict'
281
- tests/rest-api.test.js:import knexLib from 'knex'
282
- tests/rest-api.test.js:import { createBasicApi, createExtendedApi } from './fixtures/api-configs.js'
283
- tests/rest-api.test.js:import {
284
- tests/virtual-fields.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
285
- tests/virtual-fields.test.js:import assert from 'node:assert/strict'
286
- tests/virtual-fields.test.js:import knexLib from 'knex'
287
- tests/virtual-fields.test.js:import {
288
- tests/virtual-fields.test.js:import { Api } from 'hooked-api'
289
- tests/virtual-fields.test.js:import { RestApiPlugin } from '../plugins/core/rest-api-plugin.js'
290
- tests/virtual-fields.test.js:import { RestApiKnexPlugin } from '../plugins/core/rest-api-knex-plugin.js'
291
- tests/cors.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
292
- tests/cors.test.js:import assert from 'node:assert/strict'
293
- tests/cors.test.js:import knexLib from 'knex'
294
- tests/cors.test.js:import express from 'express'
295
- tests/cors.test.js:import request from 'supertest'
296
- tests/cors.test.js:import {
297
- tests/cors.test.js:import { createBasicApi } from './fixtures/api-configs.js'
298
- tests/cors.test.js:import { CorsPlugin } from '../plugins/core/rest-api-cors-plugin.js'
299
- tests/include-depth-validation.test.js:import { describe, it, before, after } from 'node:test'
300
- tests/include-depth-validation.test.js:import assert from 'node:assert/strict'
301
- tests/include-depth-validation.test.js:import knexLib from 'knex'
302
- tests/include-depth-validation.test.js:import { createBasicApi, createLimitedDepthApi } from './fixtures/api-configs.js'
303
- tests/include-depth-validation.test.js:import { cleanTables } from './helpers/test-utils.js'
304
- tests/anyapi-basic.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
305
- tests/anyapi-basic.test.js:import assert from 'node:assert/strict'
306
- tests/anyapi-basic.test.js:import knexLib from 'knex'
307
- tests/anyapi-basic.test.js:import { Api } from 'hooked-api'
308
- tests/anyapi-basic.test.js:import { RestApiPlugin, RestApiAnyapiKnexPlugin } from '../index.js'
309
- tests/anyapi-basic.test.js:import { ensureAnyApiSchema } from '../plugins/core/lib/anyapi/schema-utils.js'
310
- tests/ownership-optout.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
311
- tests/ownership-optout.test.js:import assert from 'node:assert/strict'
312
- tests/ownership-optout.test.js:import knexLib from 'knex'
313
- tests/ownership-optout.test.js:import {
314
- tests/ownership-optout.test.js:import { createOwnershipOptOutApi } from './fixtures/api-configs.js'
315
- tests/positioning.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
316
- tests/positioning.test.js:import assert from 'node:assert/strict'
317
- tests/positioning.test.js:import knexLib from 'knex'
318
- tests/positioning.test.js:import { cleanTables } from './helpers/test-utils.js'
319
- tests/positioning.test.js:import { createPositioningApi } from './fixtures/api-configs.js'
320
- tests/positioning.test.js:import { PositioningPlugin } from '../plugins/core/rest-api-positioning-plugin.js'
321
- tests/includes.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
322
- tests/includes.test.js:import assert from 'node:assert/strict'
323
- tests/includes.test.js:import knexLib from 'knex'
324
- tests/includes.test.js:import { createBasicApi, createExtendedApi } from './fixtures/api-configs.js'
325
- tests/includes.test.js:import {
326
- tests/polymorphic-simple.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
327
- tests/polymorphic-simple.test.js:import assert from 'node:assert/strict'
328
- tests/polymorphic-simple.test.js:import knexLib from 'knex'
329
- tests/polymorphic-simple.test.js:import { createExtendedApi } from './fixtures/api-configs.js'
330
- tests/polymorphic-simple.test.js:import {
331
- tests/computed-fields.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
332
- tests/computed-fields.test.js:import assert from 'node:assert/strict'
333
- tests/computed-fields.test.js:import knexLib from 'knex'
334
- tests/computed-fields.test.js:import { cleanTables } from './helpers/test-utils.js'
335
- tests/computed-fields.test.js:import { storageMode } from './helpers/storage-mode.js'
336
- tests/computed-fields.test.js:import { createComputedFieldsApi } from './fixtures/api-configs.js'
337
- tests/curl.test.js:import { describe, it, before, beforeEach, after } from 'node:test'
338
- tests/curl.test.js:import assert from 'node:assert/strict'
339
- tests/curl.test.js:import knexLib from 'knex'
340
- tests/curl.test.js:import { spawn } from 'child_process'
341
- tests/curl.test.js:import { createBasicApi } from './fixtures/api-configs.js'
342
- tests/curl.test.js:import {
343
- tests/curl.test.js:import express from 'express'
344
- tests/curl.test.js:import http from 'http'
345
- tests/pagination-enhanced.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
346
- tests/pagination-enhanced.test.js:import assert from 'node:assert/strict'
347
- tests/pagination-enhanced.test.js:import knexLib from 'knex'
348
- tests/pagination-enhanced.test.js:import {
349
- tests/pagination-enhanced.test.js:import { createPaginationApi } from './fixtures/api-configs.js'
350
- tests/multihome.test.js:import { describe, it, before, after, beforeEach } from 'node:test'
351
- tests/multihome.test.js:import assert from 'node:assert/strict'
352
- tests/multihome.test.js:import knexLib from 'knex'
353
- tests/multihome.test.js:import {
354
- tests/multihome.test.js:import { createMultiHomeApi } from './fixtures/api-configs.js'
@@ -1,15 +0,0 @@
1
- tests.js:import { test, describe, it, before } from 'node:test'
2
- tests.js:import assert from 'node:assert'
3
- tests.js:import { createSchema } from './src/index.js'
4
- tests.js:import { Schema } from './src/Schema.js'
5
- tests.js:import * as flatted from 'flatted'
6
- eslint.config.js:import neostandard from 'neostandard'
7
- example.js:import { createSchema } from './src/index.js'
8
- example.js:import * as flatted from 'flatted'
9
- test-knex-table-real.js:import { test, describe, it, beforeEach, afterEach } from 'node:test'
10
- test-knex-table-real.js:import assert from 'node:assert'
11
- test-knex-table-real.js:import knex from 'knex'
12
- test-knex-table-real.js:import { createSchema, createKnexTable, generateKnexMigration } from './src/index.js'
13
- src/CorePlugin.js:import * as flatted from 'flatted'
14
- src/index.js:import { Schema } from './Schema.js'
15
- src/index.js:import CorePlugin from './CorePlugin.js'
@@ -1,160 +0,0 @@
1
- .claude/agents/library-guide-expert.md
2
- .claude/agents/rest-api-internals-expert.md
3
- .gitignore
4
- AGENTS.md
5
- CLAUDE.md
6
- CRUSH.md
7
- LICENSE
8
- README.md
9
- TODO.todo
10
- connectors_ideas/fastify.js
11
- connectors_ideas/koa-plugin.js
12
- docs/.bundle/config
13
- docs/API.md
14
- docs/COMPARISON.md
15
- docs/GUIDE/GUIDE_1_Initial_Setup.md
16
- docs/GUIDE/GUIDE_2_1_The_Starting_Point.md
17
- docs/GUIDE/GUIDE_2_2_Manipulating_And_Searching_Tables.md
18
- docs/GUIDE/GUIDE_2_3_BelongsTo_Relationships.md
19
- docs/GUIDE/GUIDE_2_4_HasMany_Records.md
20
- docs/GUIDE/GUIDE_2_5_HasMany_Polymorphic.md
21
- docs/GUIDE/GUIDE_2_6_Many_To_Many.md
22
- docs/GUIDE/GUIDE_2_7_Pagination_And_Ordering.md
23
- docs/GUIDE/GUIDE_2_8_Effects_of_PUT_and_PATCH.md
24
- docs/GUIDE/GUIDE_2_9_Relationships_Urls.md
25
- docs/GUIDE/GUIDE_2_Data_And_Relations.md
26
- docs/GUIDE/GUIDE_3_Field_Transformations.md
27
- docs/GUIDE/GUIDE_4_Authentication_And_Permissions.md
28
- docs/GUIDE/GUIDE_5_Non-Db_Resources.md
29
- docs/GUIDE/GUIDE_6_Positioning.md
30
- docs/GUIDE/GUIDE_7_Hooks_Data_Management_And_Plugins.md
31
- docs/GUIDE/GUIDE_X_Bulk_Operations.md
32
- docs/GUIDE/GUIDE_X_Cors.md
33
- docs/GUIDE/GUIDE_X_File_Uploads.md
34
- docs/GUIDE/GUIDE_X_Multihome.md
35
- docs/GUIDE/GUIDE_X_SocketIO.md
36
- docs/GUIDE/GUIDE_X_URL_Management.md
37
- docs/GUIDE/GUIDE_Y_Appendices.md
38
- docs/GUIDE/index.md
39
- docs/Gemfile
40
- docs/Gemfile.lock
41
- docs/ONBOARDING.md
42
- docs/QUICKSTART.md
43
- docs/_config.yml
44
- docs/_layouts/default.html
45
- docs/apple-touch-icon.svg
46
- docs/assets/css/style.scss
47
- docs/favicon.svg
48
- docs/index.md
49
- docs/mini-guides/file-uploads-complete.md
50
- eslint.config.js
51
- examples/url-override-example.js
52
- index.js
53
- lib/enhanced-logger.js
54
- lib/error-formatter.js
55
- lib/rest-api-errors.js
56
- package-lock.json
57
- package.json
58
- plugins/core/bulk-operations-plugin.js
59
- plugins/core/connectors/express-plugin.js
60
- plugins/core/connectors/lib/busboy-detector.js
61
- plugins/core/connectors/lib/formidable-detector.js
62
- plugins/core/connectors/lib/request-helpers.js
63
- plugins/core/file-handling-plugin.js
64
- plugins/core/lib/dbTablesOperations.js
65
- plugins/core/lib/fractional-positioning.js
66
- plugins/core/lib/querying-writing/compile-schemas.js
67
- plugins/core/lib/querying-writing/connectors-query-parser.js
68
- plugins/core/lib/querying-writing/database-capabilities.js
69
- plugins/core/lib/querying-writing/database-value-normalizers.js
70
- plugins/core/lib/querying-writing/default-data-helpers.js
71
- plugins/core/lib/querying-writing/field-utils.js
72
- plugins/core/lib/querying-writing/knex-constants.js
73
- plugins/core/lib/querying-writing/knex-field-helpers.js
74
- plugins/core/lib/querying-writing/knex-json-api-transformers.js
75
- plugins/core/lib/querying-writing/payload-validators.js
76
- plugins/core/lib/querying-writing/schema-helpers.js
77
- plugins/core/lib/querying-writing/scope-validations.js
78
- plugins/core/lib/querying-writing/simplified-helpers.js
79
- plugins/core/lib/querying/knex-cross-table-search.js
80
- plugins/core/lib/querying/knex-json-api-transformers-querying.js
81
- plugins/core/lib/querying/knex-pagination-helpers.js
82
- plugins/core/lib/querying/knex-process-includes.js
83
- plugins/core/lib/querying/knex-query-helpers-base.js
84
- plugins/core/lib/querying/knex-query-helpers.js
85
- plugins/core/lib/querying/knex-relationship-includes.js
86
- plugins/core/lib/querying/knex-window-queries.js
87
- plugins/core/lib/querying/url-helpers.js
88
- plugins/core/lib/storage/storage-adapter.js
89
- plugins/core/lib/writing/knex-json-api-transformers-writing.js
90
- plugins/core/lib/writing/many-to-many-manipulations.js
91
- plugins/core/lib/writing/relationship-processor.js
92
- plugins/core/rest-api-access.js
93
- plugins/core/rest-api-cors-plugin.js
94
- plugins/core/rest-api-knex-plugin.js
95
- plugins/core/rest-api-label-plugin.js
96
- plugins/core/rest-api-multihome-plugin.js
97
- plugins/core/rest-api-plugin-hooks/compile-resource-schemas.js
98
- plugins/core/rest-api-plugin-hooks/register-relationship-routes.js
99
- plugins/core/rest-api-plugin-hooks/register-scope-routes.js
100
- plugins/core/rest-api-plugin-hooks/turn-scope-init-into-vars.js
101
- plugins/core/rest-api-plugin-hooks/validate-include-configurations.js
102
- plugins/core/rest-api-plugin-methods/add-route.js
103
- plugins/core/rest-api-plugin-methods/check-permissions.js
104
- plugins/core/rest-api-plugin-methods/common.js
105
- plugins/core/rest-api-plugin-methods/delete-relationship.js
106
- plugins/core/rest-api-plugin-methods/delete.js
107
- plugins/core/rest-api-plugin-methods/enrich-attributes.js
108
- plugins/core/rest-api-plugin-methods/get-related.js
109
- plugins/core/rest-api-plugin-methods/get-relationship.js
110
- plugins/core/rest-api-plugin-methods/get.js
111
- plugins/core/rest-api-plugin-methods/patch-relationship.js
112
- plugins/core/rest-api-plugin-methods/patch.js
113
- plugins/core/rest-api-plugin-methods/post-relationship.js
114
- plugins/core/rest-api-plugin-methods/post.js
115
- plugins/core/rest-api-plugin-methods/put.js
116
- plugins/core/rest-api-plugin-methods/query.js
117
- plugins/core/rest-api-plugin-methods/release.js
118
- plugins/core/rest-api-plugin.js
119
- plugins/core/rest-api-positioning-plugin.js
120
- plugins/core/socketio-plugin.js
121
- plugins/storage/local-storage.js
122
- plugins/storage/s3-storage.js
123
- quickTest.js
124
- scripts/run-docs.js
125
- test-debug.js
126
- tests/README.md
127
- tests/TEST_TEMPLATE.test.js
128
- tests/bulk-operations.test.js
129
- tests/computed-fields.test.js
130
- tests/cors.test.js
131
- tests/curl.test.js
132
- tests/custom-idproperty-relationships.test.js
133
- tests/field-getters.test.js
134
- tests/field-setters.test.js
135
- tests/fixtures/api-configs.js
136
- tests/helpers/storage-mode.js
137
- tests/helpers/test-utils.js
138
- tests/include-depth-validation.test.js
139
- tests/includes.test.js
140
- tests/multihome.test.js
141
- tests/nested-includes.test.js
142
- tests/ownership-optout.test.js
143
- tests/pagination-cursor-multifield.test.js
144
- tests/pagination-enhanced.test.js
145
- tests/polymorphic-relationships.test.js
146
- tests/polymorphic-simple.test.js
147
- tests/positioning-advanced.test.js
148
- tests/positioning-extended.test.js
149
- tests/positioning-multifilter.test.js
150
- tests/positioning.test.js
151
- tests/queries.test.js
152
- tests/query-limits.test.js
153
- tests/relationship-endpoints.test.js
154
- tests/relationships.test.js
155
- tests/rest-api-access.test.js
156
- tests/rest-api.test.js
157
- tests/searchschema-merge.test.js
158
- tests/socketio.test.js
159
- tests/test-development-guide.md
160
- tests/virtual-fields.test.js
@@ -1,13 +0,0 @@
1
- .gitignore
2
- FUTURE_MIGRATION_MODULE.md
3
- ONBOARDING.md
4
- README.md
5
- eslint.config.js
6
- example.js
7
- package-lock.json
8
- package.json
9
- src/CorePlugin.js
10
- src/Schema.js
11
- src/index.js
12
- test-knex-table-real.js
13
- tests.js