json-rest-api 1.0.20 → 1.0.22

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 (173) hide show
  1. package/audit/00-charter.md +103 -0
  2. package/audit/01-scope-map.md +84 -0
  3. package/audit/02-coverage-matrix.csv +174 -0
  4. package/audit/03-invariants.md +123 -0
  5. package/audit/04-standards-rubric.md +56 -0
  6. package/audit/05-competitor-rubric.md +77 -0
  7. package/audit/06-findings.md +160 -0
  8. package/audit/07-risk-register.csv +10 -0
  9. package/audit/08-remediation-roadmap.md +177 -0
  10. package/audit/09-signoff-check.md +23 -0
  11. package/audit/10-final-synthesis.md +29 -0
  12. package/audit/evidence/code/all-files-json-rest-api.txt +168 -0
  13. package/audit/evidence/code/all-files-json-rest-schema.txt +12 -0
  14. package/audit/evidence/code/boundary-leak-checks.txt +72 -0
  15. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__bulk-operations-plugin.js.txt +480 -0
  16. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__express-plugin.js.txt +532 -0
  17. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__busboy-detector.js.txt +175 -0
  18. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__formidable-detector.js.txt +138 -0
  19. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__request-helpers.js.txt +222 -0
  20. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__file-handling-plugin.js.txt +342 -0
  21. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__dbTablesOperations.js.txt +304 -0
  22. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__fractional-positioning.js.txt +188 -0
  23. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__compile-schemas.js.txt +336 -0
  24. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__connectors-query-parser.js.txt +165 -0
  25. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__database-capabilities.js.txt +265 -0
  26. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__database-value-normalizers.js.txt +369 -0
  27. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__default-data-helpers.js.txt +72 -0
  28. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__field-utils.js.txt +139 -0
  29. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-constants.js.txt +45 -0
  30. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-field-helpers.js.txt +396 -0
  31. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-json-api-transformers.js.txt +162 -0
  32. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__payload-validators.js.txt +1314 -0
  33. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__schema-helpers.js.txt +488 -0
  34. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__scope-validations.js.txt +484 -0
  35. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__simplified-helpers.js.txt +857 -0
  36. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-cross-table-search.js.txt +565 -0
  37. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-json-api-transformers-querying.js.txt +485 -0
  38. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-pagination-helpers.js.txt +560 -0
  39. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-process-includes.js.txt +167 -0
  40. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-query-helpers-base.js.txt +109 -0
  41. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-query-helpers.js.txt +1064 -0
  42. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-relationship-includes.js.txt +1983 -0
  43. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-window-queries.js.txt +328 -0
  44. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__url-helpers.js.txt +119 -0
  45. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__storage__storage-adapter.js.txt +160 -0
  46. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__writing__many-to-many-manipulations.js.txt +300 -0
  47. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__writing__relationship-processor.js.txt +245 -0
  48. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-access.js.txt +459 -0
  49. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-cors-plugin.js.txt +237 -0
  50. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-knex-plugin.js.txt +1135 -0
  51. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-multihome-plugin.js.txt +314 -0
  52. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__compile-resource-schemas.js.txt +7 -0
  53. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__register-relationship-routes.js.txt +71 -0
  54. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__register-scope-routes.js.txt +102 -0
  55. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__turn-scope-init-into-vars.js.txt +49 -0
  56. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__validate-include-configurations.js.txt +39 -0
  57. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__add-route.js.txt +23 -0
  58. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__check-permissions.js.txt +13 -0
  59. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__common.js.txt +639 -0
  60. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__delete-relationship.js.txt +117 -0
  61. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__delete.js.txt +104 -0
  62. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__enrich-attributes.js.txt +199 -0
  63. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get-related.js.txt +353 -0
  64. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get-relationship.js.txt +61 -0
  65. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get.js.txt +184 -0
  66. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__patch-relationship.js.txt +55 -0
  67. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__patch.js.txt +191 -0
  68. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__post-relationship.js.txt +110 -0
  69. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__post.js.txt +168 -0
  70. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__put.js.txt +253 -0
  71. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__query.js.txt +207 -0
  72. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__release.js.txt +12 -0
  73. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin.js.txt +165 -0
  74. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-positioning-plugin.js.txt +668 -0
  75. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__socketio-plugin.js.txt +621 -0
  76. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__storage__local-storage.js.txt +218 -0
  77. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__storage__s3-storage.js.txt +124 -0
  78. package/audit/evidence/code/critical-pass1/json-rest-schema__src__CorePlugin.js.txt +269 -0
  79. package/audit/evidence/code/critical-pass1/json-rest-schema__src__Schema.js.txt +242 -0
  80. package/audit/evidence/code/critical-pass1/json-rest-schema__src__index.js.txt +77 -0
  81. package/audit/evidence/code/critical-pass1-risk-keywords.txt +238 -0
  82. package/audit/evidence/code/critical-pass1-summary.csv +67 -0
  83. package/audit/evidence/code/critical-pass2-summary.csv +67 -0
  84. package/audit/evidence/code/early-silent-zones-no-test-token.txt +57 -0
  85. package/audit/evidence/code/error-model-signals.txt +98 -0
  86. package/audit/evidence/code/git-files-json-rest-api.txt +171 -0
  87. package/audit/evidence/code/git-files-json-rest-schema.txt +27 -0
  88. package/audit/evidence/code/hook-flow-signals.txt +282 -0
  89. package/audit/evidence/code/idproperty-signals.txt +157 -0
  90. package/audit/evidence/code/import-cycles-non-anyapi.txt +3 -0
  91. package/audit/evidence/code/import-hotspots-non-anyapi.txt +96 -0
  92. package/audit/evidence/code/imports-json-rest-api.txt +354 -0
  93. package/audit/evidence/code/imports-json-rest-schema.txt +15 -0
  94. package/audit/evidence/code/in-scope-files-json-rest-api.txt +160 -0
  95. package/audit/evidence/code/in-scope-files-json-rest-schema.txt +13 -0
  96. package/audit/evidence/code/non-anyapi-core-files.txt +101 -0
  97. package/audit/evidence/code/permission-signals.txt +193 -0
  98. package/audit/evidence/code/query-include-signals.txt +687 -0
  99. package/audit/evidence/code/transaction-signals.txt +28 -0
  100. package/audit/evidence/code/validation-signals.txt +650 -0
  101. package/audit/evidence/code/write-path-signals.txt +61 -0
  102. package/audit/evidence/docs/docs-claims-signals.txt +1075 -0
  103. package/audit/evidence/docs/schema-docs-claims-signals.txt +179 -0
  104. package/audit/evidence/external/corpus-freeze.md +21 -0
  105. package/audit/evidence/external/npm-competitor-metadata.txt +70 -0
  106. package/audit/evidence/external/npm-download-signals.txt +23 -0
  107. package/audit/evidence/external/npm-jsonapi-server.txt +8 -0
  108. package/audit/evidence/external/npm-modern-jsonapi-metadata.txt +38 -0
  109. package/audit/evidence/external/readme-fortune-signals.txt +26 -0
  110. package/audit/evidence/external/readme-fortune.md +165 -0
  111. package/audit/evidence/external/readme-json-api-serializer-signals.txt +80 -0
  112. package/audit/evidence/external/readme-json-api-serializer.md +690 -0
  113. package/audit/evidence/external/readme-jsonapi-serde-server-signals.txt +0 -0
  114. package/audit/evidence/external/readme-jsonapi-serde-server.md +22 -0
  115. package/audit/evidence/external/readme-jsonapi-serializer-signals.txt +63 -0
  116. package/audit/evidence/external/readme-jsonapi-serializer.md +315 -0
  117. package/audit/evidence/external/readme-jsonapi-server-signals.txt +19 -0
  118. package/audit/evidence/external/readme-jsonapi-server.md +104 -0
  119. package/audit/evidence/external/readme-nestjs-json-api-signals.txt +4 -0
  120. package/audit/evidence/external/readme-nestjs-json-api.md +94 -0
  121. package/audit/evidence/external/readme-yaser-json-api-nestjs-signals.txt +47 -0
  122. package/audit/evidence/external/readme-yaser-json-api-nestjs.md +447 -0
  123. package/audit/evidence/external/standard-jsonapi-snippets.txt +84 -0
  124. package/audit/evidence/external/standard-rfc-snippets.txt +168 -0
  125. package/audit/evidence/external/standards-sources.txt +6 -0
  126. package/audit/evidence/runtime/baseline-commits.txt +2 -0
  127. package/audit/evidence/runtime/db-adapter-assumptions.txt +3 -0
  128. package/audit/evidence/runtime/environment.txt +4 -0
  129. package/audit/evidence/runtime/invariant-runtime-mapping.md +38 -0
  130. package/audit/evidence/runtime/probe-patch-relationship-error.exitcode +1 -0
  131. package/audit/evidence/runtime/probe-patch-relationship-error.log +76 -0
  132. package/audit/evidence/runtime/probe-patch-relationship-error.mjs +67 -0
  133. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.exitcode +1 -0
  134. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.log +62 -0
  135. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.mjs +47 -0
  136. package/audit/evidence/runtime/test-exitcodes.txt +4 -0
  137. package/audit/evidence/runtime/test-summary.md +107 -0
  138. package/audit/evidence/runtime/trace-anchors.txt +61 -0
  139. package/audit/evidence/tests/access-multitenancy-test-signals.txt +125 -0
  140. package/audit/evidence/tests/failing-tests-summary.txt +25 -0
  141. package/audit/evidence/tests/npm-test-json-rest-api.exitcode +1 -0
  142. package/audit/evidence/tests/npm-test-json-rest-api.log +5885 -0
  143. package/audit/evidence/tests/npm-test-json-rest-schema.exitcode +1 -0
  144. package/audit/evidence/tests/npm-test-json-rest-schema.log +356 -0
  145. package/audit/evidence/tests/query-include-test-signals.txt +948 -0
  146. package/audit/evidence/tests/relationship-test-signals.txt +223 -0
  147. package/audit/evidence/tests/skipped-tests.txt +10 -0
  148. package/audit/evidence/tests/test-suite-list-non-anyapi.txt +30 -0
  149. package/audit/evidence/tests/test-suite-list.txt +32 -0
  150. package/audit/subsystems/docs-drift.md +49 -0
  151. package/audit/subsystems/pass2-cross-review.md +131 -0
  152. package/audit/subsystems/plugins-access.md +51 -0
  153. package/audit/subsystems/plugins-bulk.md +50 -0
  154. package/audit/subsystems/plugins-cors.md +48 -0
  155. package/audit/subsystems/plugins-file.md +53 -0
  156. package/audit/subsystems/plugins-multihome.md +50 -0
  157. package/audit/subsystems/plugins-positioning.md +54 -0
  158. package/audit/subsystems/plugins-socketio.md +50 -0
  159. package/audit/subsystems/query-engine.md +61 -0
  160. package/audit/subsystems/relationships.md +55 -0
  161. package/audit/subsystems/rest-orchestration.md +66 -0
  162. package/audit/subsystems/schema-core.md +64 -0
  163. package/audit/subsystems/storage-knex.md +57 -0
  164. package/audit/subsystems/tests.md +48 -0
  165. package/audit/subsystems/transport-express.md +55 -0
  166. package/audit/traces/trace-read-get.md +22 -0
  167. package/audit/traces/trace-read-query.md +25 -0
  168. package/audit/traces/trace-relationship-endpoints.md +31 -0
  169. package/audit/traces/trace-write-delete.md +17 -0
  170. package/audit/traces/trace-write-patch.md +26 -0
  171. package/audit/traces/trace-write-post.md +22 -0
  172. package/audit/traces/trace-write-put.md +23 -0
  173. package/package.json +5 -5
@@ -0,0 +1,282 @@
1
+ plugins/core/rest-api-plugin-methods/get-relationship.js:31: await runHooks('checkPermissions')
2
+ plugins/core/rest-api-plugin-methods/get-relationship.js:32: await runHooks('checkPermissionsGetRelationship')
3
+ plugins/core/rest-api-plugin-methods/get.js:94: await runHooks('beforeData')
4
+ plugins/core/rest-api-plugin-methods/get.js:95: await runHooks('beforeDataGet')
5
+ plugins/core/rest-api-plugin-methods/get.js:119: await runHooks('checkDataPermissions')
6
+ plugins/core/rest-api-plugin-methods/get.js:120: await runHooks('checkDataPermissionsGet')
7
+ plugins/core/rest-api-plugin-methods/get.js:126: await runHooks('enrichRecord')
8
+ plugins/core/rest-api-plugin-methods/get.js:163: await runHooks('enrichRecordWithRelationships')
9
+ plugins/core/rest-api-plugin-methods/get.js:165: // The called hooks should NOT change context.record
10
+ plugins/core/rest-api-plugin-methods/get.js:166: await runHooks('finish')
11
+ plugins/core/rest-api-plugin-methods/get.js:167: await runHooks('finishGet')
12
+ plugins/core/rest-api-plugin-methods/query.js:131: await runHooks('beforeData')
13
+ plugins/core/rest-api-plugin-methods/query.js:132: await runHooks('beforeDataQuery')
14
+ plugins/core/rest-api-plugin-methods/query.js:155: await runHooks('enrichRecord')
15
+ plugins/core/rest-api-plugin-methods/query.js:191: // The called hooks should NOT change context.record
16
+ plugins/core/rest-api-plugin-methods/query.js:192: await runHooks('finish')
17
+ plugins/core/rest-api-plugin-methods/query.js:193: await runHooks('finishQuery')
18
+ plugins/core/rest-api-label-plugin.js:8: * @param {function} deps.addHook - Register hooks
19
+ plugins/core/rest-api-label-plugin.js:31: addHook(
20
+ plugins/core/rest-api-plugin-methods/post-relationship.js:50: await runHooks('checkPermissions')
21
+ plugins/core/rest-api-plugin-methods/post-relationship.js:51: await runHooks('checkPermissionsPostRelationship')
22
+ plugins/core/rest-api-plugin-methods/post-relationship.js:99: await runHooks('finish')
23
+ plugins/core/rest-api-plugin-methods/post-relationship.js:100: await runHooks('finishPostRelationship')
24
+ plugins/core/rest-api-positioning-plugin.js:27: // Get configuration - hooked-api namespaces options by plugin name
25
+ plugins/core/rest-api-positioning-plugin.js:143: addHook('scope:added', 'validate-position-field', {}, ({ context, vars }) => {
26
+ plugins/core/rest-api-positioning-plugin.js:187: addHook('scope:added', 'add-position-index', { afterFunction: 'validate-position-field' }, async ({ context, vars, scopes }) => {
27
+ plugins/core/rest-api-positioning-plugin.js:257: addHook('beforeSchemaValidate', 'process-beforeid', {}, async ({ context, scopeName, vars }) => {
28
+ plugins/core/rest-api-positioning-plugin.js:258: log.debug('*** beforeSchemaValidate positioning hook', {
29
+ plugins/core/rest-api-positioning-plugin.js:326: addHook('beforeDataCallPost', 'calculate-position-post', {}, async ({ context, scopeName, vars, helpers }) => {
30
+ plugins/core/rest-api-positioning-plugin.js:327: log.debug('*** beforeDataCallPost hook fired for positioning', { scopeName, method: context.method })
31
+ plugins/core/rest-api-positioning-plugin.js:331: addHook('beforeDataCallPut', 'calculate-position-put', {}, async ({ context, scopeName, vars, helpers }) => {
32
+ plugins/core/rest-api-positioning-plugin.js:332: log.debug('*** beforeDataCallPut hook fired for positioning', { scopeName, method: context.method })
33
+ plugins/core/rest-api-positioning-plugin.js:339: addHook('beforeDataCallPatch', 'calculate-position-patch', {}, async ({ context, scopeName, vars, helpers }) => {
34
+ plugins/core/rest-api-positioning-plugin.js:340: log.debug('*** beforeDataCallPatch hook fired for positioning', { scopeName, method: context.method })
35
+ plugins/core/rest-api-positioning-plugin.js:558: addHook('afterGet', 'add-beforeid-to-response', {}, async ({ context, vars }) => {
36
+ plugins/core/rest-api-positioning-plugin.js:574: addHook('beforeQuery', 'apply-position-sort', {}, async ({ context, scopeName, vars }) => {
37
+ plugins/core/file-handling-plugin.js:104: addHook('scope:added', 'analyzeFileFields', {}, ({ context }) => {
38
+ plugins/core/file-handling-plugin.js:280: addHook('beforeProcessing', 'processFiles', {}, async ({ context }) => {
39
+ plugins/core/connectors/lib/busboy-detector.js:26:import { requirePackage } from 'hooked-api'
40
+ plugins/core/lib/querying/knex-relationship-includes.js:278: * @param {Object} scopes - The hooked-api scopes object
41
+ plugins/core/lib/querying/knex-relationship-includes.js:354: * @param {Object} scope - The hooked-api scope object containing:
42
+ plugins/core/lib/querying/knex-relationship-includes.js:366: * - context.scopes: Object - The hooked-api scopes object
43
+ plugins/core/lib/querying/knex-relationship-includes.js:565: * @param {Object} scope - The hooked-api scope object containing:
44
+ plugins/core/lib/querying/knex-relationship-includes.js:576: * - context.scopes: Object - The hooked-api scopes object
45
+ plugins/core/lib/querying/knex-relationship-includes.js:1045: * @param {Object} scope - The hooked-api scope object
46
+ plugins/core/lib/querying/knex-relationship-includes.js:1173: * @param {Object} scope - The hooked-api scope object containing:
47
+ plugins/core/lib/querying/knex-relationship-includes.js:1183: * - context.scopes: Object - The hooked-api scopes object
48
+ plugins/core/lib/querying/knex-relationship-includes.js:1386: * @param {Object} scope - The hooked-api scope object containing:
49
+ plugins/core/lib/querying/knex-relationship-includes.js:1397: * - context.scopes: Object - The hooked-api scopes object
50
+ plugins/core/lib/querying/knex-relationship-includes.js:1583: * @param {Object} scope - The hooked-api scope object containing:
51
+ plugins/core/lib/querying/knex-relationship-includes.js:1593: * - context.scopes: Object - The hooked-api scopes object
52
+ plugins/core/lib/querying/knex-relationship-includes.js:1735: * @param {Object} scope - The hooked-api scope object containing:
53
+ plugins/core/lib/querying/knex-relationship-includes.js:1742: * - context.scopes: Object - The hooked-api scopes object
54
+ plugins/core/rest-api-plugin-methods/patch.js:54: // Run early hooks for pre-processing (e.g., file handling)
55
+ plugins/core/rest-api-plugin-methods/patch.js:55: await runHooks('beforeProcessing')
56
+ plugins/core/rest-api-plugin-methods/patch.js:56: await runHooks('beforeProcessingPatch')
57
+ plugins/core/rest-api-plugin-methods/patch.js:116: await runHooks('beforeDataCall')
58
+ plugins/core/rest-api-plugin-methods/patch.js:117: await runHooks('beforeDataCallPatch')
59
+ plugins/core/rest-api-plugin-methods/patch.js:136: await runHooks('afterDataCallPatch')
60
+ plugins/core/rest-api-plugin-methods/patch.js:137: await runHooks('afterDataCall')
61
+ plugins/core/rest-api-plugin-methods/patch.js:184: await runHooks('afterCommit')
62
+ plugins/core/lib/querying/url-helpers.js:12: * 1. context.urlPrefixOverride - Explicit override (from hooks or middleware)
63
+ plugins/core/connectors/lib/formidable-detector.js:29:import { requirePackage } from 'hooked-api'
64
+ plugins/core/rest-api-plugin-methods/delete.js:25: // Make the method available to all hooks
65
+ plugins/core/rest-api-plugin-methods/delete.js:74: await runHooks('beforeDataCall')
66
+ plugins/core/rest-api-plugin-methods/delete.js:75: await runHooks('beforeDataCallDelete')
67
+ plugins/core/rest-api-plugin-methods/delete.js:77: // Initialize record context for hooks
68
+ plugins/core/rest-api-plugin-methods/delete.js:86: await runHooks('afterDataCallDelete')
69
+ plugins/core/rest-api-plugin-methods/delete.js:87: await runHooks('afterDataCall')
70
+ plugins/core/rest-api-plugin-methods/delete.js:91: await runHooks('finish')
71
+ plugins/core/rest-api-plugin-methods/delete.js:92: await runHooks('finishDelete')
72
+ plugins/core/rest-api-plugin-methods/delete.js:97: await runHooks('afterCommit')
73
+ plugins/core/socketio-plugin.js:1:import { requirePackage } from 'hooked-api'
74
+ plugins/core/socketio-plugin.js:153: } catch (hookError) {
75
+ plugins/core/socketio-plugin.js:154: log.error('socketio auth failure handler threw error', hookError)
76
+ plugins/core/socketio-plugin.js:269: await runHooks('subscriptionFilters', { subscription, auth })
77
+ plugins/core/socketio-plugin.js:576: addHook('finish', 'socketio-broadcast', {}, async ({ context }) => {
78
+ plugins/core/socketio-plugin.js:604: addHook('afterCommit', 'socketio-broadcast-deferred', {}, async ({ context }) => {
79
+ plugins/core/socketio-plugin.js:616: addHook('afterRollback', 'socketio-cleanup-broadcasts', {}, async ({ context }) => {
80
+ plugins/core/rest-api-plugin-methods/post.js:49: // Run early hooks for pre-processing (e.g., file handling)
81
+ plugins/core/rest-api-plugin-methods/post.js:50: await runHooks('beforeProcessing')
82
+ plugins/core/rest-api-plugin-methods/post.js:51: await runHooks('beforeProcessingPost')
83
+ plugins/core/rest-api-plugin-methods/post.js:103: await runHooks('beforeDataCall')
84
+ plugins/core/rest-api-plugin-methods/post.js:104: await runHooks('beforeDataCallPost')
85
+ plugins/core/rest-api-plugin-methods/post.js:123: await runHooks('afterDataCallPost')
86
+ plugins/core/rest-api-plugin-methods/post.js:124: await runHooks('afterDataCall')
87
+ plugins/core/rest-api-plugin-methods/post.js:161: await runHooks('afterCommit')
88
+ plugins/core/lib/querying/knex-query-helpers.js:77:const createAdapterUtilities = (hookParams, { getStorageAdapter } = {}) => {
89
+ plugins/core/lib/querying/knex-query-helpers.js:78: const context = hookParams.context || {}
90
+ plugins/core/lib/querying/knex-query-helpers.js:132: * @param {Object} hookParams - Hook parameters containing context
91
+ plugins/core/lib/querying/knex-query-helpers.js:184: * - rest-api-knex-plugin calls this hook first during query building
92
+ plugins/core/lib/querying/knex-query-helpers.js:185: * - Must run before other filter hooks to establish JOINs
93
+ plugins/core/lib/querying/knex-query-helpers.js:199: * 4. Sets hasJoins flag for subsequent hooks
94
+ plugins/core/lib/querying/knex-query-helpers.js:202:export const polymorphicFiltersHook = async (hookParams, dependencies) => {
95
+ plugins/core/lib/querying/knex-query-helpers.js:204: const adapterUtils = createAdapterUtilities(hookParams, dependencies)
96
+ plugins/core/lib/querying/knex-query-helpers.js:207: const scopeName = hookParams.context?.knexQuery?.scopeName
97
+ plugins/core/lib/querying/knex-query-helpers.js:208: const filters = hookParams.context?.knexQuery?.filters
98
+ plugins/core/lib/querying/knex-query-helpers.js:209: const query = hookParams.context?.knexQuery?.query
99
+ plugins/core/lib/querying/knex-query-helpers.js:210: const db = hookParams.context?.knexQuery?.db || knex
100
+ plugins/core/lib/querying/knex-query-helpers.js:380: // Mark that we have JOINs for other hooks
101
+ plugins/core/lib/querying/knex-query-helpers.js:381: hookParams.context.knexQuery.hasJoins = true
102
+ plugins/core/lib/querying/knex-query-helpers.js:437: * @param {Object} hookParams - Hook parameters containing context
103
+ plugins/core/lib/querying/knex-query-helpers.js:507: * - rest-api-knex-plugin calls this hook second during query building
104
+ plugins/core/lib/querying/knex-query-helpers.js:526:export const crossTableFiltersHook = async (hookParams, dependencies) => {
105
+ plugins/core/lib/querying/knex-query-helpers.js:528: const adapterUtils = createAdapterUtilities(hookParams, dependencies)
106
+ plugins/core/lib/querying/knex-query-helpers.js:531: const scopeName = hookParams.context?.knexQuery?.scopeName
107
+ plugins/core/lib/querying/knex-query-helpers.js:532: const filters = hookParams.context?.knexQuery?.filters
108
+ plugins/core/lib/querying/knex-query-helpers.js:533: const query = hookParams.context?.knexQuery?.query
109
+ plugins/core/lib/querying/knex-query-helpers.js:534: const db = hookParams.context?.knexQuery?.db || knex
110
+ plugins/core/lib/querying/knex-query-helpers.js:721: // Store state for basic filters hook
111
+ plugins/core/lib/querying/knex-query-helpers.js:722: hookParams.context.knexQuery.hasJoins = true
112
+ plugins/core/lib/querying/knex-query-helpers.js:801: * @param {Object} hookParams - Hook parameters containing context
113
+ plugins/core/lib/querying/knex-query-helpers.js:919: * - rest-api-knex-plugin calls this hook last during query building
114
+ plugins/core/lib/querying/knex-query-helpers.js:920: * - Runs after all JOINs have been established by previous hooks
115
+ plugins/core/lib/querying/knex-query-helpers.js:932: * 1. Skips filters already handled by polymorphic/cross-table hooks
116
+ plugins/core/lib/querying/knex-query-helpers.js:939:export const basicFiltersHook = async (hookParams, dependencies) => {
117
+ plugins/core/lib/querying/knex-query-helpers.js:941: const adapterUtils = createAdapterUtilities(hookParams, dependencies)
118
+ plugins/core/lib/querying/knex-query-helpers.js:944: const scopeName = hookParams.context?.knexQuery?.scopeName
119
+ plugins/core/lib/querying/knex-query-helpers.js:945: const filters = hookParams.context?.knexQuery?.filters
120
+ plugins/core/lib/querying/knex-query-helpers.js:946: const query = hookParams.context?.knexQuery?.query
121
+ plugins/core/lib/querying/knex-query-helpers.js:947: const db = hookParams.context?.knexQuery?.db || knex
122
+ plugins/core/lib/querying-writing/compile-schemas.js:8: * @param {Object} deps - Dependencies with context and hooks
123
+ plugins/core/lib/querying-writing/compile-schemas.js:110: * - Provides hooks for schema enrichment
124
+ plugins/core/lib/querying-writing/compile-schemas.js:117: * 4. Runs schema:enrich hook for plugins
125
+ plugins/core/lib/querying-writing/compile-schemas.js:120: * 7. Runs searchSchema:enrich hook
126
+ plugins/core/lib/querying-writing/compile-schemas.js:190: await runHooks('schema:enrich', schemaContext)
127
+ plugins/core/lib/querying-writing/compile-schemas.js:223: await runHooks('searchSchema:enrich', searchSchemaContext)
128
+ plugins/core/rest-api-plugin-methods/common.js:207: * @param {Function} runHooks - Function to run hooks
129
+ plugins/core/rest-api-plugin-methods/common.js:214: await runHooks('afterRollback')
130
+ plugins/core/rest-api-plugin-methods/common.js:255: * Gets the appropriate hook suffix based on HTTP method
131
+ plugins/core/rest-api-plugin-methods/common.js:258: * @returns {string} The capitalized method name for hook naming
132
+ plugins/core/rest-api-plugin-methods/common.js:271: * @param {Function} params.runHooks - Function to run hooks
133
+ plugins/core/rest-api-plugin-methods/common.js:285: await runHooks('beforeSchemaValidate')
134
+ plugins/core/rest-api-plugin-methods/common.js:286: await runHooks(`beforeSchemaValidate${methodSpecificHookSuffix}`)
135
+ plugins/core/rest-api-plugin-methods/common.js:409: await runHooks(`afterSchemaValidate${methodSpecificHookSuffix}`)
136
+ plugins/core/rest-api-plugin-methods/common.js:410: await runHooks('afterSchemaValidate')
137
+ plugins/core/rest-api-plugin-methods/common.js:419: * @param {function} runHooks - Function to run hooks
138
+ plugins/core/rest-api-plugin-methods/common.js:542: // Step 1: Set up record state for hooks
139
+ plugins/core/rest-api-plugin-methods/common.js:574: await runHooks('finish')
140
+ plugins/core/rest-api-plugin-methods/common.js:575: await runHooks(`finish${methodSpecificHookSuffix}`)
141
+ plugins/core/rest-api-plugin-methods/common.js:594: await runHooks('finish')
142
+ plugins/core/rest-api-plugin-methods/common.js:595: await runHooks(`finish${methodSpecificHookSuffix}`)
143
+ plugins/core/rest-api-plugin-methods/common.js:611: // Run finish hooks
144
+ plugins/core/rest-api-plugin-methods/common.js:612: await runHooks('finish')
145
+ plugins/core/rest-api-plugin-methods/common.js:613: await runHooks(`finish${methodSpecificHookSuffix}`)
146
+ plugins/core/rest-api-plugin-methods/put.js:53: // Run early hooks for pre-processing (e.g., file handling)
147
+ plugins/core/rest-api-plugin-methods/put.js:54: await runHooks('beforeProcessing')
148
+ plugins/core/rest-api-plugin-methods/put.js:55: await runHooks('beforeProcessingPut')
149
+ plugins/core/rest-api-plugin-methods/put.js:176: await runHooks('beforeDataCall')
150
+ plugins/core/rest-api-plugin-methods/put.js:177: await runHooks('beforeDataCallPut')
151
+ plugins/core/rest-api-plugin-methods/put.js:195: await runHooks('afterDataCallPut')
152
+ plugins/core/rest-api-plugin-methods/put.js:196: await runHooks('afterDataCall')
153
+ plugins/core/rest-api-plugin-methods/put.js:246: await runHooks('afterCommit')
154
+ plugins/core/lib/fractional-positioning.js:1:import { requirePackage } from 'hooked-api'
155
+ plugins/core/rest-api-plugin-methods/patch-relationship.js:24: await runHooks('checkPermissions')
156
+ plugins/core/rest-api-plugin-methods/patch-relationship.js:25: await runHooks('checkPermissionsPatchRelationship')
157
+ plugins/core/rest-api-plugin-methods/patch-relationship.js:44: await runHooks('finish')
158
+ plugins/core/rest-api-plugin-methods/patch-relationship.js:45: await runHooks('finishPatchRelationship')
159
+ plugins/core/rest-api-plugin-methods/release.js:1:import { ValidationError } from 'hooked-api'
160
+ plugins/core/rest-api-plugin-methods/release.js:5: * Runs the hook that tells plugins to release resources
161
+ plugins/core/rest-api-plugin-methods/release.js:8: // Run the addRoute hook to notify transport plugins
162
+ plugins/core/rest-api-plugin-methods/release.js:9: await runHooks('release')
163
+ plugins/core/rest-api-multihome-plugin.js:10: // Get configuration - hooked-api namespaces options by plugin name
164
+ plugins/core/rest-api-multihome-plugin.js:21: const resolveStorageAdapter = (scopeName, hookContext = {}) => {
165
+ plugins/core/rest-api-multihome-plugin.js:23: if (hookContext.storageAdapter) return hookContext.storageAdapter
166
+ plugins/core/rest-api-multihome-plugin.js:24: if (hookContext.knexQuery?.storageAdapter) return hookContext.knexQuery.storageAdapter
167
+ plugins/core/rest-api-multihome-plugin.js:31: const translateColumnReference = ({ field, tableName, scopeName, hookContext }) => {
168
+ plugins/core/rest-api-multihome-plugin.js:32: const storageAdapter = resolveStorageAdapter(scopeName, hookContext)
169
+ plugins/core/rest-api-multihome-plugin.js:40: const translateFilterValue = ({ field, value, scopeName, hookContext }) => {
170
+ plugins/core/rest-api-multihome-plugin.js:41: const storageAdapter = resolveStorageAdapter(scopeName, hookContext)
171
+ plugins/core/rest-api-multihome-plugin.js:65: addHook('transport:request', 'extract-multihome-id', {}, async ({ context, request, helpers }) => {
172
+ plugins/core/rest-api-multihome-plugin.js:87: addHook('scope:added', 'validate-multihome-field', {}, ({ context, vars }) => {
173
+ plugins/core/rest-api-multihome-plugin.js:110: // Main filtering hook - adds WHERE clause to all queries
174
+ plugins/core/rest-api-multihome-plugin.js:111: log.debug('Registering multihome filter hook')
175
+ plugins/core/rest-api-multihome-plugin.js:112: addHook('knexQueryFiltering', 'multihome-filter', {}, async ({ context, vars }) => {
176
+ plugins/core/rest-api-multihome-plugin.js:158: hookContext: context,
177
+ plugins/core/rest-api-multihome-plugin.js:165: hookContext: context,
178
+ plugins/core/rest-api-multihome-plugin.js:182: addHook('beforeSchemaValidate', 'set-multihome-id', {}, async ({ context, scopeName, vars }) => {
179
+ plugins/core/rest-api-multihome-plugin.js:230: // Add checkPermissions hook to enforce tenant isolation
180
+ plugins/core/rest-api-multihome-plugin.js:232: addHook('checkPermissions', 'multihome-check-permissions', {}, async ({ context, scopeName }) => {
181
+ plugins/core/rest-api-plugin-methods/delete-relationship.js:48: await runHooks('checkPermissions')
182
+ plugins/core/rest-api-plugin-methods/delete-relationship.js:49: await runHooks('checkPermissionsDeleteRelationship')
183
+ plugins/core/rest-api-plugin-methods/delete-relationship.js:106: await runHooks('finish')
184
+ plugins/core/rest-api-plugin-methods/delete-relationship.js:107: await runHooks('finishDeleteRelationship')
185
+ plugins/core/rest-api-plugin-methods/check-permissions.js:12: await runHooks('checkPermissions')
186
+ plugins/core/bulk-operations-plugin.js:347: addHook('afterAddScope', 'bulkOperationsRoutes', {}, async ({ scopeName }) => {
187
+ plugins/core/bulk-operations-plugin.js:418: addHook('beforeBulkPost', 'optimizedBulkInsert', {}, async ({ scope, params, context }) => {
188
+ plugins/core/rest-api-plugin-methods/get-related.js:52: await runHooks('checkPermissions')
189
+ plugins/core/rest-api-plugin-methods/get-related.js:53: await runHooks('checkPermissionsGetRelated')
190
+ plugins/core/rest-api-access.js:87: const resolveStorageAdapter = (scopeName, hookContext = {}) => {
191
+ plugins/core/rest-api-access.js:90: if (hookContext.storageAdapter) return hookContext.storageAdapter
192
+ plugins/core/rest-api-access.js:91: if (hookContext.knexQuery?.storageAdapter) return hookContext.knexQuery.storageAdapter
193
+ plugins/core/rest-api-access.js:99: const translateColumnReference = ({ field, tableName, scopeName, hookContext }) => {
194
+ plugins/core/rest-api-access.js:100: const storageAdapter = resolveStorageAdapter(scopeName, hookContext)
195
+ plugins/core/rest-api-access.js:108: const translateFilterValue = ({ field, value, scopeName, hookContext }) => {
196
+ plugins/core/rest-api-access.js:109: const storageAdapter = resolveStorageAdapter(scopeName, hookContext)
197
+ plugins/core/rest-api-access.js:148: addHook('scope:added', 'rest-auth-process-rules', {}, ({ context, scopes }) => {
198
+ plugins/core/rest-api-access.js:167: addHook('schema:enrich', 'rest-auth-auto-ownership-field', {}, ({ context }) => {
199
+ plugins/core/rest-api-access.js:239: addHook('beforeProcessingPost', 'rest-auth-auto-set-owner', {}, ({ context, scopeName, scopes, scopeOptions }) => {
200
+ plugins/core/rest-api-access.js:242: addHook('beforeProcessingPatch', 'rest-auth-auto-set-owner', {}, ({ context, scopeName, scopes, scopeOptions }) => {
201
+ plugins/core/rest-api-access.js:245: addHook('beforeProcessingPut', 'rest-auth-auto-set-owner', {}, ({ context, scopeName, scopes, scopeOptions }) => {
202
+ plugins/core/rest-api-access.js:249: addHook('knexQueryFiltering', 'rest-auth-filter-by-owner', { sequence: -40 }, ({ context, scopes, scopeOptions }) => {
203
+ plugins/core/rest-api-access.js:281: const columnRef = translateColumnReference({ field, tableName, scopeName, hookContext: context })
204
+ plugins/core/rest-api-access.js:282: const ownerValue = translateFilterValue({ field, value: context.auth.userId, scopeName, hookContext: context })
205
+ plugins/core/rest-api-access.js:291: addHook('checkPermissions', 'rest-auth-enforce', { sequence: -100 }, async ({ context, scope, scopeName }) => {
206
+ plugins/core/rest-api-access.js:343: addHook('checkPermissions', 'rest-auth-check-get-ownership', { sequence: -80 }, ({ context, scope, scopeName, scopeOptions }) => {
207
+ plugins/core/connectors/express-plugin.js:8: * - Automatic route creation via addRoute hook
208
+ plugins/core/connectors/express-plugin.js:17:import { requirePackage } from 'hooked-api'
209
+ plugins/core/connectors/express-plugin.js:27: addHook('release', 'releaseHook', {},
210
+ plugins/core/connectors/express-plugin.js:116: // Add transport hook middleware
211
+ plugins/core/connectors/express-plugin.js:129: // Transport-specific data for hooks
212
+ plugins/core/connectors/express-plugin.js:149: // Run transport hooks - don't check return value for consistency with other hooks
213
+ plugins/core/connectors/express-plugin.js:151: await runHooks('transport:request', context)
214
+ plugins/core/connectors/express-plugin.js:155: // Apply response headers from hooks
215
+ plugins/core/connectors/express-plugin.js:168: // Check if request was already handled by a hook
216
+ plugins/core/connectors/express-plugin.js:268: // Run transport:response hook for errors
217
+ plugins/core/connectors/express-plugin.js:273: await runHooks('transport:response', req.context)
218
+ plugins/core/connectors/express-plugin.js:275: // Apply response headers from hooks
219
+ plugins/core/connectors/express-plugin.js:285: * Listen to addRoute hook to create Express routes
220
+ plugins/core/connectors/express-plugin.js:287: addHook('addRoute', 'expressRouteCreator', {}, async ({ context }) => {
221
+ plugins/core/connectors/express-plugin.js:338: await runHooks('transport:response', context)
222
+ plugins/core/connectors/express-plugin.js:487: // Run transport:response hook for 404
223
+ plugins/core/connectors/express-plugin.js:488: await runHooks('transport:response', context)
224
+ plugins/core/connectors/express-plugin.js:490: // Apply response headers from hooks
225
+ plugins/core/rest-api-plugin-methods/add-route.js:1:import { ValidationError } from 'hooked-api'
226
+ plugins/core/rest-api-plugin-methods/add-route.js:16: // Create context for enrichAttributes hooks
227
+ plugins/core/rest-api-plugin-methods/add-route.js:19: // Run the addRoute hook to notify transport plugins
228
+ plugins/core/rest-api-plugin-methods/add-route.js:20: await runHooks('addRoute')
229
+ plugins/core/lib/querying/knex-cross-table-search.js:7: * @param {Object} scopes - All registered hooked-api scopes containing schema and relationship definitions
230
+ plugins/core/lib/querying/knex-cross-table-search.js:87: * @param {Object} scopes - All registered hooked-api scopes containing schema and relationship definitions
231
+ plugins/core/lib/querying/knex-cross-table-search.js:390: * @param {Object} scopes - All registered hooked-api scopes containing schema and relationship definitions
232
+ plugins/core/lib/querying/knex-cross-table-search.js:488: * @param {Object} scopes - All registered hooked-api scopes containing schema and relationship definitions
233
+ plugins/core/rest-api-cors-plugin.js:43: // Store reference in vars for access in hooks
234
+ plugins/core/rest-api-cors-plugin.js:129: addHook('transport:response', 'cors-headers', { order: -1000 }, async ({ context }) => {
235
+ plugins/core/rest-api-cors-plugin.js:134: log.error('CORS: request is undefined in transport:response hook')
236
+ plugins/core/rest-api-plugin.js:3:// Import hook functions
237
+ plugins/core/rest-api-plugin.js:4:import compileResourceSchemas from './rest-api-plugin-hooks/compile-resource-schemas.js'
238
+ plugins/core/rest-api-plugin.js:5:import validateIncludeConfigurations from './rest-api-plugin-hooks/validate-include-configurations.js'
239
+ plugins/core/rest-api-plugin.js:6:import turnScopeInitIntoVars from './rest-api-plugin-hooks/turn-scope-init-into-vars.js'
240
+ plugins/core/rest-api-plugin.js:7:import registerScopeRoutes from './rest-api-plugin-hooks/register-scope-routes.js'
241
+ plugins/core/rest-api-plugin.js:8:import registerRelationshipRoutes from './rest-api-plugin-hooks/register-relationship-routes.js'
242
+ plugins/core/rest-api-plugin.js:114: // Scope (resources) added hooks
243
+ plugins/core/rest-api-plugin.js:117: addHook('scope:added', 'validateRelationships', {}, validateRelationships)
244
+ plugins/core/rest-api-plugin.js:118: addHook('scope:added', 'compileResourceSchemas', {}, compileResourceSchemas)
245
+ plugins/core/rest-api-plugin.js:119: addHook('scope:added', 'validateIncludeConfigurations', {}, validateIncludeConfigurations)
246
+ plugins/core/rest-api-plugin.js:120: addHook('scope:added', 'turnScopeInitIntoVars', {}, turnScopeInitIntoVars)
247
+ plugins/core/rest-api-plugin.js:145: addHook('scope:added', 'registerRelationshipRoutes', {}, registerRelationshipRoutes)
248
+ plugins/core/rest-api-plugin.js:146: addHook('scope:added', 'registerScopeRoutes', {}, registerScopeRoutes)
249
+ plugins/core/rest-api-plugin-methods/enrich-attributes.js:5: * Runs the enrichAttributes hook for a specific scope to allow plugins to modify attributes
250
+ plugins/core/rest-api-plugin-methods/enrich-attributes.js:183: // Create context for enrichAttributes hooks
251
+ plugins/core/rest-api-plugin-methods/enrich-attributes.js:194: // Run enrichAttributes hooks for additional/override computations
252
+ plugins/core/rest-api-plugin-methods/enrich-attributes.js:195: await runHooks('enrichAttributes')
253
+ plugins/core/rest-api-plugin-methods/enrich-attributes.js:197: // Return the attributes from context, which hooks may have modified
254
+ plugins/core/rest-api-knex-plugin.js:1:import { requirePackage } from 'hooked-api'
255
+ plugins/core/rest-api-knex-plugin.js:144: // Register the three separate filter hooks
256
+ plugins/core/rest-api-knex-plugin.js:145: // Dependencies object for the hooks
257
+ plugins/core/rest-api-knex-plugin.js:152: addHook('knexQueryFiltering', 'polymorphicFiltersHook', {},
258
+ plugins/core/rest-api-knex-plugin.js:153: async (hookParams) => polymorphicFiltersHook(hookParams, polymorphicFiltersHookParams)
259
+ plugins/core/rest-api-knex-plugin.js:157: addHook('knexQueryFiltering', 'crossTableFiltersHook', {},
260
+ plugins/core/rest-api-knex-plugin.js:158: async (hookParams) => crossTableFiltersHook(hookParams, polymorphicFiltersHookParams)
261
+ plugins/core/rest-api-knex-plugin.js:162: addHook('knexQueryFiltering', 'basicFiltersHook', {},
262
+ plugins/core/rest-api-knex-plugin.js:163: async (hookParams) => basicFiltersHook(hookParams, polymorphicFiltersHookParams)
263
+ plugins/core/rest-api-knex-plugin.js:167: addHook('release', 'releaseHook', {},
264
+ plugins/core/rest-api-knex-plugin.js:316: // Build query - no filtering hooks for single records
265
+ plugins/core/rest-api-knex-plugin.js:385: // Build query - no filtering hooks for single records
266
+ plugins/core/rest-api-knex-plugin.js:428: * @param {Object} [params.context.knexQuery] - Temporarily set during hooks for query building
267
+ plugins/core/rest-api-knex-plugin.js:430: * @param {Function} params.runHooks - Function to run hooks (e.g., 'knexQueryFiltering')
268
+ plugins/core/rest-api-knex-plugin.js:475: * This is where the magic happens. The knexQueryFiltering hook is called
269
+ plugins/core/rest-api-knex-plugin.js:476: * to apply all filter conditions. The searchSchemaFilter hook (registered
270
+ plugins/core/rest-api-knex-plugin.js:479: * IMPORTANT: Each hook should wrap its conditions in query.where(function() {...})
271
+ plugins/core/rest-api-knex-plugin.js:483: log.trace('[DATA-QUERY] Calling knexQueryFiltering hook', { hasQuery: !!query, hasFilters: !!queryParams.filters, scopeName, tableName })
272
+ plugins/core/rest-api-knex-plugin.js:485: log.trace('[DATA-QUERY] About to call runHooks', { hookName: 'knexQueryFiltering' })
273
+ plugins/core/rest-api-knex-plugin.js:491: // Store the query data in context where hooks can access it
274
+ plugins/core/rest-api-knex-plugin.js:492: // This is the proper way to share data between methods and hooks
275
+ plugins/core/rest-api-knex-plugin.js:507: await runHooks('knexQueryFiltering')
276
+ plugins/core/rest-api-knex-plugin.js:509: // Clean up after hook execution
277
+ plugins/core/rest-api-knex-plugin.js:514: log.trace('[DATA-QUERY] Finished knexQueryFiltering hook')
278
+ plugins/core/rest-api-knex-plugin.js:516: // Apply sorting directly (no hooks)
279
+ plugins/core/rest-api-knex-plugin.js:784: // Apply filters through hooks (same as main query)
280
+ plugins/core/rest-api-knex-plugin.js:786: // Store query data in context for hooks
281
+ plugins/core/rest-api-knex-plugin.js:798: // Run the same filtering hooks
282
+ plugins/core/rest-api-knex-plugin.js:799: await runHooks('knexQueryFiltering')
@@ -0,0 +1,157 @@
1
+ tests/pagination-cursor-multifield.test.js:421: it.skip('should maintain stable sorting with custom id property', async () => {
2
+ plugins/core/rest-api-plugin-methods/get-relationship.js:39: fields: { [scopeName]: vars.idProperty || 'id' }
3
+ plugins/core/rest-api-plugin-methods/get-related.js:95: fields: { [scopeName]: vars.idProperty || 'id' } // Only fetch parent ID to minimize data
4
+ tests/computed-fields.test.js:306: // Should only have id property (minimal object)
5
+ plugins/core/rest-api-plugin.js:67: vars.idProperty = restApiOptions.idProperty || 'id'
6
+ plugins/core/rest-api-label-plugin.js:51: const idProp = schemaInfo.idProperty || 'id'
7
+ tests/fixtures/api-configs.js:1498: * Creates an API with custom idProperty for all resources to test idProperty functionality
8
+ tests/fixtures/api-configs.js:1534: // Countries table with custom idProperty
9
+ tests/fixtures/api-configs.js:1546: idProperty: 'country_id' // Custom ID property
10
+ tests/fixtures/api-configs.js:1551: // Publishers table with custom idProperty
11
+ tests/fixtures/api-configs.js:1566: idProperty: 'publisher_id'
12
+ tests/fixtures/api-configs.js:1571: // Authors table with custom idProperty
13
+ tests/fixtures/api-configs.js:1587: idProperty: 'author_id'
14
+ tests/fixtures/api-configs.js:1592: // Books table with custom idProperty
15
+ tests/fixtures/api-configs.js:1611: idProperty: 'book_id'
16
+ tests/fixtures/api-configs.js:1616: // Book-Authors pivot table with custom idProperty
17
+ tests/fixtures/api-configs.js:1625: idProperty: 'book_author_id'
18
+ tests/fixtures/api-configs.js:1630: // Polymorphic reviews with custom idProperty
19
+ tests/fixtures/api-configs.js:1652: idProperty: 'review_id'
20
+ tests/fixtures/api-configs.js:1726: idProperty: 'item_id',
21
+ plugins/core/rest-api-access.js:37: const idProperty = schemaInfo?.idProperty || 'id'
22
+ plugins/core/rest-api-access.js:43: if (field === idProperty) {
23
+ plugins/core/rest-api-access.js:363: const idProperty = schemaInfo.idProperty || 'id'
24
+ plugins/core/rest-api-access.js:367: if (field === idProperty) {
25
+ plugins/core/lib/dbTablesOperations.js:113: * @param {string} [idProperty='id'] - The name of the ID column
26
+ plugins/core/lib/dbTablesOperations.js:123: const idProperty = schemaInfo.idProperty
27
+ plugins/core/lib/dbTablesOperations.js:127: // Check if schema has the idProperty field with primary key
28
+ plugins/core/lib/dbTablesOperations.js:128: const hasIdField = tableSchemaStructure[idProperty] && tableSchemaStructure[idProperty].primary === true
29
+ plugins/core/lib/dbTablesOperations.js:132: table.increments(idProperty).primary()
30
+ plugins/core/lib/dbTablesOperations.js:138: if (fieldName === idProperty && !hasIdField && autoIncrement) {
31
+ tests/custom-idproperty-relationships.test.js:30:describe('Custom idProperty Relationship Operations', () => {
32
+ tests/custom-idproperty-relationships.test.js:32: // Initialize API with custom idProperty for all resources
33
+ tests/custom-idproperty-relationships.test.js:40: describe('Basic CRUD with custom idProperty', () => {
34
+ tests/custom-idproperty-relationships.test.js:106: describe('One-to-One (belongsTo) Relationships with custom idProperty', () => {
35
+ tests/custom-idproperty-relationships.test.js:215: describe('Many-to-Many Relationships with custom idProperty', () => {
36
+ tests/custom-idproperty-relationships.test.js:349: describe('Polymorphic Relationships with custom idProperty', () => {
37
+ tests/custom-idproperty-relationships.test.js:459: describe('Nested Includes with custom idProperty', () => {
38
+ tests/custom-idproperty-relationships.test.js:566: describe('Include with Sparse Fieldsets and custom idProperty', () => {
39
+ tests/custom-idproperty-relationships.test.js:637: describe('Include Depth Validation with custom idProperty', () => {
40
+ tests/custom-idproperty-relationships.test.js:696: describe('Complex Scenarios with custom idProperty', () => {
41
+ plugins/core/lib/querying/knex-json-api-transformers-querying.js:82: const idProperty = context.schemaInfo?.idProperty || 'id'
42
+ plugins/core/lib/querying/knex-json-api-transformers-querying.js:98: if (!foreignKeys.has(key) && !polymorphicFields.has(key) && !internalFields.has(key) && key !== idProperty) {
43
+ plugins/core/lib/querying/knex-json-api-transformers-querying.js:187: schemaInfo: { schemaRelationships: relationships, idProperty }
44
+ plugins/core/lib/querying/knex-json-api-transformers-querying.js:207: schemaInfo: { idProperty },
45
+ plugins/core/lib/querying/knex-json-api-transformers-querying.js:350: schemaInfo: { schemaInstance, schemaRelationships: relationships, idProperty }
46
+ plugins/core/lib/querying/knex-json-api-transformers-querying.js:354: const idField = idProperty || 'id'
47
+ plugins/core/lib/querying/knex-query-helpers.js:270: const targetIdField = scopes[targetType].vars.schemaInfo.idProperty || 'id'
48
+ plugins/core/lib/querying/knex-query-helpers.js:353: const nextIdField = scopes[nextScope].vars.schemaInfo.idProperty || 'id'
49
+ plugins/core/lib/storage/storage-adapter.js:53: const idColumn = schemaInfo.idProperty || 'id'
50
+ plugins/core/lib/querying-writing/knex-field-helpers.js:60: * schemaInfo: { idProperty: 'id', ... }
51
+ plugins/core/lib/querying-writing/knex-field-helpers.js:70: * // idProperty: 'id'
52
+ plugins/core/lib/querying-writing/knex-field-helpers.js:100: * // idProperty: 'id'
53
+ plugins/core/lib/querying-writing/knex-field-helpers.js:117: * // idProperty: 'id'
54
+ plugins/core/lib/querying-writing/knex-field-helpers.js:156: const idProperty = context.schemaInfo.idProperty
55
+ plugins/core/lib/querying-writing/knex-field-helpers.js:159: // Handle aliasing if idProperty is not 'id'
56
+ plugins/core/lib/querying-writing/knex-field-helpers.js:160: if (idProperty !== 'id') {
57
+ plugins/core/lib/querying-writing/knex-field-helpers.js:161: fieldsToSelect.add(`${idProperty} as id`)
58
+ plugins/core/lib/querying-writing/knex-field-helpers.js:323: idProperty // Pass idProperty for reference
59
+ plugins/core/lib/querying-writing/compile-schemas.js:330: idProperty: scope.scopeOptions.idProperty || scope.vars.idProperty,
60
+ plugins/core/lib/querying-writing/knex-constants.js:23:export const getIdProperty = (schemaInfo) => schemaInfo?.idProperty || 'id'
61
+ plugins/core/lib/querying-writing/knex-json-api-transformers.js:101: schemaInfo: { schemaInstance, schemaRelationships: relationships, idProperty }
62
+ plugins/core/lib/querying-writing/knex-json-api-transformers.js:105: const idField = idProperty || 'id'
63
+ plugins/core/lib/querying/knex-relationship-includes.js:364: * - idProperty: string - The ID property name
64
+ plugins/core/lib/querying/knex-relationship-includes.js:372: const { records, scopeName, fieldName, fieldDef, includeName, subIncludes, included, processedPaths, currentPath, fields, idProperty } = scope
65
+ plugins/core/lib/querying/knex-relationship-includes.js:410: self: `${urlPrefix}/${scopeName}/${record[idProperty]}/relationships/${includeName}`,
66
+ plugins/core/lib/querying/knex-relationship-includes.js:411: related: `${urlPrefix}/${scopeName}/${record[idProperty]}/${includeName}`
67
+ plugins/core/lib/querying/knex-relationship-includes.js:422: const targetIdProperty = scopes[targetScope].vars.schemaInfo.idProperty
68
+ plugins/core/lib/querying/knex-relationship-includes.js:445: // If no field selection but custom idProperty, we need to alias it
69
+ plugins/core/lib/querying/knex-relationship-includes.js:494: self: `${urlPrefix}/${scopeName}/${record[idProperty]}/relationships/${includeName}`,
70
+ plugins/core/lib/querying/knex-relationship-includes.js:495: related: `${urlPrefix}/${scopeName}/${record[idProperty]}/${includeName}`
71
+ plugins/core/lib/querying/knex-relationship-includes.js:518: self: `${urlPrefix}/${scopeName}/${record[idProperty]}/relationships/${includeName}`,
72
+ plugins/core/lib/querying/knex-relationship-includes.js:519: related: `${urlPrefix}/${scopeName}/${record[idProperty]}/${includeName}`
73
+ plugins/core/lib/querying/knex-relationship-includes.js:532: { records: targetRecordsToProcess, scopeName: targetScope, includeTree: subIncludes, included, processedPaths, currentPath: nextPath, fields, idProperty: targetIdProperty },
74
+ plugins/core/lib/querying/knex-relationship-includes.js:659: const targetIdProperty = targetScopeObject.vars.schemaInfo.idProperty
75
+ plugins/core/lib/querying/knex-relationship-includes.js:693: const targetIdProperty = scopes[targetScope]?.vars?.schemaInfo?.idProperty || 'id'
76
+ plugins/core/lib/querying/knex-relationship-includes.js:726: const targetIdProperty = scopes[targetScope]?.vars?.schemaInfo?.idProperty || 'id'
77
+ plugins/core/lib/querying/knex-relationship-includes.js:733: // If no field selection but custom idProperty, we need to alias it
78
+ plugins/core/lib/querying/knex-relationship-includes.js:833: { records: targetRecords, scopeName: targetScope, includeTree: subIncludes, included, processedPaths, currentPath: nextPath, fields, idProperty: targetIdProperty },
79
+ plugins/core/lib/querying/knex-relationship-includes.js:857: const targetIdProperty = targetScopeObject.vars.schemaInfo.idProperty
80
+ plugins/core/lib/querying/knex-relationship-includes.js:1012: { records: targetRecords, scopeName: targetScope, includeTree: subIncludes, included, processedPaths, currentPath: nextPath, fields, idProperty: targetIdProperty },
81
+ plugins/core/lib/querying/knex-relationship-includes.js:1060: const idProperty = scopes[scopeName]?.vars?.schemaInfo?.idProperty || 'id'
82
+ plugins/core/lib/querying/knex-relationship-includes.js:1061: const mainIds = [...new Set(records.map(r => r[idProperty]).filter(Boolean))]
83
+ plugins/core/lib/querying/knex-relationship-includes.js:1084: const targetIdProperty = targetScopeObject.vars.schemaInfo.idProperty
84
+ plugins/core/lib/querying/knex-relationship-includes.js:1120: const recordId = record[idProperty]
85
+ plugins/core/lib/querying/knex-relationship-includes.js:1227: // const targetIdProperty = targetScopeObject.vars.schemaInfo.idProperty;
86
+ plugins/core/lib/querying/knex-relationship-includes.js:1246: const targetIdProperty = scopes[targetType]?.vars?.schemaInfo?.idProperty || 'id'
87
+ plugins/core/lib/querying/knex-relationship-includes.js:1252: // If no field selection but custom idProperty, we need to alias it
88
+ plugins/core/lib/querying/knex-relationship-includes.js:1335: { records: targetRecords, scopeName: targetType, includeTree: subIncludes, included, processedPaths, currentPath: nextPath, fields, idProperty: targetIdProperty },
89
+ plugins/core/lib/querying/knex-relationship-includes.js:1446: const targetIdProperty = targetScopeObject.vars.schemaInfo.idProperty
90
+ plugins/core/lib/querying/knex-relationship-includes.js:1467: // If no field selection but custom idProperty, we need to alias it
91
+ plugins/core/lib/querying/knex-relationship-includes.js:1550: { records: targetRecords, scopeName: targetScope, includeTree: subIncludes, included, processedPaths, currentPath: nextPath, fields, idProperty: targetIdProperty },
92
+ plugins/core/lib/querying/knex-relationship-includes.js:1591: * - idProperty: string - The ID property name
93
+ plugins/core/lib/querying/knex-relationship-includes.js:1599: const { records, scopeName, includeTree, included, processedPaths, currentPath = '', fields = {}, idProperty } = scope
94
+ plugins/core/lib/querying/knex-relationship-includes.js:1639: { records, scopeName, fieldName, fieldDef, includeName, subIncludes, included, processedPaths, currentPath, fields, idProperty },
95
+ plugins/core/lib/querying/knex-relationship-includes.js:1740: * - idProperty: string - The ID property name
96
+ plugins/core/lib/querying/knex-relationship-includes.js:1754: * idProperty: 'id'
97
+ plugins/core/lib/querying/knex-relationship-includes.js:1768: const { records, scopeName, includeParam, fields, idProperty } = scope
98
+ plugins/core/lib/querying/knex-relationship-includes.js:1802: { records, scopeName, includeTree, included, processedPaths, currentPath: '', fields, idProperty },
99
+ plugins/core/lib/querying/knex-relationship-includes.js:1899: const targetIdProperty = targetScope?.vars?.schemaInfo?.idProperty || 'id'
100
+ plugins/core/lib/querying/knex-relationship-includes.js:1947: const targetIdProperty = scopes[targetScope]?.vars?.schemaInfo?.idProperty || 'id'
101
+ plugins/core/lib/querying/knex-process-includes.js:23: * schemaInfo: { idProperty: 'id' }
102
+ plugins/core/lib/querying/knex-process-includes.js:114: const idProperty = context.schemaInfo.idProperty
103
+ plugins/core/lib/querying/knex-process-includes.js:128: idProperty
104
+ plugins/core/rest-api-plugin-hooks/turn-scope-init-into-vars.js:25: // Set idProperty as scope var
105
+ plugins/core/rest-api-plugin-hooks/turn-scope-init-into-vars.js:26: if (typeof scopeOptions.idProperty !== 'undefined') vars.idProperty = scopeOptions.idProperty
106
+ plugins/core/rest-api-knex-plugin.js:231: * @param {string} params.context.schemaInfo.idProperty - The primary key field name (e.g., 'id')
107
+ plugins/core/rest-api-knex-plugin.js:244: const idProperty = storageAdapter?.getIdColumn?.() || context.schemaInfo.idProperty
108
+ plugins/core/rest-api-knex-plugin.js:249: const selectClause = idProperty !== 'id' ? `${idProperty} as id` : 'id'
109
+ plugins/core/rest-api-knex-plugin.js:252: .where(idProperty, id)
110
+ plugins/core/rest-api-knex-plugin.js:268: * @param {string} params.context.schemaInfo.idProperty - The primary key field name (e.g., 'id')
111
+ plugins/core/rest-api-knex-plugin.js:298: const idProperty = storageAdapter?.getIdColumn?.() || context.schemaInfo.idProperty
112
+ plugins/core/rest-api-knex-plugin.js:318: let query = db(tableName).where(idProperty, id)
113
+ plugins/core/rest-api-knex-plugin.js:368: * @param {string} params.context.schemaInfo.idProperty - The primary key field name (e.g., 'id')
114
+ plugins/core/rest-api-knex-plugin.js:380: const idProperty = storageAdapter?.getIdColumn?.() || context.schemaInfo.idProperty
115
+ plugins/core/rest-api-knex-plugin.js:387: let query = db(tableName).where(idProperty, id)
116
+ plugins/core/rest-api-knex-plugin.js:389: // Add alias if idProperty is not 'id'
117
+ plugins/core/rest-api-knex-plugin.js:390: if (idProperty !== 'id') {
118
+ plugins/core/rest-api-knex-plugin.js:391: query = query.select('*', `${idProperty} as id`)
119
+ plugins/core/rest-api-knex-plugin.js:415: * @param {string} params.context.schemaInfo.idProperty - The primary key field name (e.g., 'id')
120
+ plugins/core/rest-api-knex-plugin.js:587: const idProperty = context.schemaInfo.idProperty || 'id'
121
+ plugins/core/rest-api-knex-plugin.js:617: field: scope.vars.defaultSort.field || idProperty,
122
+ plugins/core/rest-api-knex-plugin.js:621: sortFields.push({ field: idProperty, direction: 'ASC' })
123
+ plugins/core/rest-api-knex-plugin.js:685: field: scope.vars.defaultSort.field || idProperty,
124
+ plugins/core/rest-api-knex-plugin.js:689: sortFields.push({ field: idProperty, direction: 'ASC' })
125
+ plugins/core/rest-api-knex-plugin.js:848: const idProperty = context.schemaInfo.idProperty || 'id'
126
+ plugins/core/rest-api-knex-plugin.js:849: let sortFields = [idProperty]
127
+ plugins/core/rest-api-knex-plugin.js:891: * @param {string} params.context.schemaInfo.idProperty - The primary key field name (e.g., 'id')
128
+ plugins/core/rest-api-knex-plugin.js:906: const idProperty = storageAdapter?.getIdColumn?.() || context.schemaInfo.idProperty
129
+ plugins/core/rest-api-knex-plugin.js:919: const result = await db(tableName).insert(dbAttributes).returning(idProperty)
130
+ plugins/core/rest-api-knex-plugin.js:922: const id = result[0]?.[idProperty] || result[0]
131
+ plugins/core/rest-api-knex-plugin.js:935: * @param {string} params.context.schemaInfo.idProperty - The primary key field name (e.g., 'id')
132
+ plugins/core/rest-api-knex-plugin.js:954: const idProperty = storageAdapter?.getIdColumn?.() || context.schemaInfo.idProperty
133
+ plugins/core/rest-api-knex-plugin.js:969: // Map 'id' to actual idProperty if needed (for PUT with specific ID)
134
+ plugins/core/rest-api-knex-plugin.js:970: if (idProperty !== 'id' && inputRecord.data.id) {
135
+ plugins/core/rest-api-knex-plugin.js:971: finalAttributes[idProperty] = inputRecord.data.id
136
+ plugins/core/rest-api-knex-plugin.js:978: [idProperty]: id
137
+ plugins/core/rest-api-knex-plugin.js:985: .where(idProperty, id)
138
+ plugins/core/rest-api-knex-plugin.js:999: // Remove the idProperty from attributes to prevent updating the primary key
139
+ plugins/core/rest-api-knex-plugin.js:1000: delete finalAttributes[idProperty]
140
+ plugins/core/rest-api-knex-plugin.js:1005: .where(idProperty, id)
141
+ plugins/core/rest-api-knex-plugin.js:1020: * @param {string} params.context.schemaInfo.idProperty - The primary key field name (e.g., 'id')
142
+ plugins/core/rest-api-knex-plugin.js:1038: const idProperty = storageAdapter?.getIdColumn?.() || context.schemaInfo.idProperty
143
+ plugins/core/rest-api-knex-plugin.js:1046: .where(idProperty, id)
144
+ plugins/core/rest-api-knex-plugin.js:1070: // Remove the idProperty from attributes to prevent updating the primary key
145
+ plugins/core/rest-api-knex-plugin.js:1071: delete finalAttributes[idProperty]
146
+ plugins/core/rest-api-knex-plugin.js:1076: .where(idProperty, id)
147
+ plugins/core/rest-api-knex-plugin.js:1090: * @param {string} params.context.schemaInfo.idProperty - The primary key field name (e.g., 'id')
148
+ plugins/core/rest-api-knex-plugin.js:1104: const idProperty = storageAdapter?.getIdColumn?.() || context.schemaInfo.idProperty
149
+ plugins/core/rest-api-knex-plugin.js:1111: .where(idProperty, id)
150
+ plugins/core/rest-api-knex-plugin.js:1127: .where(idProperty, id)
151
+ plugins/core/rest-api-positioning-plugin.js:424: const idProperty = schemaInfo.idProperty
152
+ plugins/core/rest-api-positioning-plugin.js:430: idProperty,
153
+ plugins/core/rest-api-positioning-plugin.js:450: const translatedId = adapter.translateFilterValue(idProperty, context.id)
154
+ plugins/core/rest-api-positioning-plugin.js:469: [idProperty]: idColumn,
155
+ plugins/core/rest-api-positioning-plugin.js:498: effectiveBeforeId = firstItem[idProperty]
156
+ plugins/core/rest-api-positioning-plugin.js:504: const normalizedTargetId = adapter.translateFilterValue(idProperty, effectiveBeforeId)
157
+ plugins/core/rest-api-positioning-plugin.js:534: : calculatePosition(items, effectiveBeforeId, idProperty, vars.positioning.field)
@@ -0,0 +1,3 @@
1
+ # Import cycle check (non-anyapi)
2
+ files_scanned=68
3
+ cycles_found=0
@@ -0,0 +1,96 @@
1
+ 31 node:assert/strict
2
+ 30 node:test
3
+ 30 knex
4
+ 30 ./helpers/test-utils.js
5
+ 27 ./fixtures/api-configs.js
6
+ 13 hooked-api
7
+ 11 ../../../lib/rest-api-errors.js
8
+ 10 ./common.js
9
+ 7 ../../../../lib/rest-api-errors.js
10
+ 5 ../lib/querying-writing/payload-validators.js
11
+ 4 ../../lib/rest-api-errors.js
12
+ 4 ../querying-writing/knex-constants.js
13
+ 4 ../lib/writing/many-to-many-manipulations.js
14
+ 4 ../plugins/core/rest-api-positioning-plugin.js
15
+ 3 ../lib/querying-writing/connectors-query-parser.js
16
+ 3 ../lib/querying-writing/simplified-helpers.js
17
+ 3 ../lib/writing/relationship-processor.js
18
+ 3 ./helpers/storage-mode.js
19
+ 3 express
20
+ 3 ../plugins/core/rest-api-plugin.js
21
+ 3 ../plugins/core/rest-api-knex-plugin.js
22
+ 2 ../../../lib/enhanced-logger.js
23
+ 2 json-rest-schema
24
+ 2 ../querying-writing/field-utils.js
25
+ 2 ./lib/querying-writing/knex-constants.js
26
+ 2 ./lib/storage/storage-adapter.js
27
+ 2 ../lib/querying/url-helpers.js
28
+ 2 ../lib/querying-writing/database-value-normalizers.js
29
+ 2 ../lib/querying-writing/knex-field-helpers.js
30
+ 2 ../lib/querying-writing/knex-constants.js
31
+ 2 http
32
+ 1 ./error-formatter.js
33
+ 1 ./lib/request-helpers.js
34
+ 1 stream
35
+ 1 fs
36
+ 1 path
37
+ 1 ./schema-helpers.js
38
+ 1 ../querying/knex-json-api-transformers-querying.js
39
+ 1 ./knex-constants.js
40
+ 1 ./url-helpers.js
41
+ 1 ./knex-relationship-includes.js
42
+ 1 ./knex-cross-table-search.js
43
+ 1 ../querying-writing/knex-field-helpers.js
44
+ 1 ./knex-json-api-transformers-querying.js
45
+ 1 ./knex-window-queries.js
46
+ 1 ../querying-writing/simplified-helpers.js
47
+ 1 ./lib/dbTablesOperations.js
48
+ 1 ./lib/querying-writing/knex-field-helpers.js
49
+ 1 ./lib/querying-writing/field-utils.js
50
+ 1 ./lib/querying/knex-query-helpers-base.js
51
+ 1 ./lib/querying/knex-json-api-transformers-querying.js
52
+ 1 ./lib/writing/knex-json-api-transformers-writing.js
53
+ 1 ./lib/querying-writing/knex-json-api-transformers.js
54
+ 1 ./lib/querying/knex-process-includes.js
55
+ 1 ./lib/querying/knex-relationship-includes.js
56
+ 1 ./lib/querying/knex-query-helpers.js
57
+ 1 ./lib/querying-writing/database-capabilities.js
58
+ 1 ./lib/querying/knex-pagination-helpers.js
59
+ 1 ./lib/querying/url-helpers.js
60
+ 1 ../lib/querying-writing/compile-schemas.js
61
+ 1 ../lib/querying-writing/field-utils.js
62
+ 1 ./lib/querying-writing/scope-validations.js
63
+ 1 ./rest-api-plugin-hooks/compile-resource-schemas.js
64
+ 1 ./rest-api-plugin-hooks/validate-include-configurations.js
65
+ 1 ./rest-api-plugin-hooks/turn-scope-init-into-vars.js
66
+ 1 ./rest-api-plugin-hooks/register-scope-routes.js
67
+ 1 ./rest-api-plugin-hooks/register-relationship-routes.js
68
+ 1 ./rest-api-plugin-methods/query.js
69
+ 1 ./rest-api-plugin-methods/get.js
70
+ 1 ./rest-api-plugin-methods/post.js
71
+ 1 ./rest-api-plugin-methods/put.js
72
+ 1 ./rest-api-plugin-methods/patch.js
73
+ 1 ./rest-api-plugin-methods/delete.js
74
+ 1 ./rest-api-plugin-methods/enrich-attributes.js
75
+ 1 ./rest-api-plugin-methods/check-permissions.js
76
+ 1 ./rest-api-plugin-methods/add-route.js
77
+ 1 ./rest-api-plugin-methods/release.js
78
+ 1 ./lib/querying-writing/default-data-helpers.js
79
+ 1 ./rest-api-plugin-methods/get-related.js
80
+ 1 ./rest-api-plugin-methods/post-relationship.js
81
+ 1 ./rest-api-plugin-methods/get-relationship.js
82
+ 1 ./rest-api-plugin-methods/patch-relationship.js
83
+ 1 ./rest-api-plugin-methods/delete-relationship.js
84
+ 1 ./lib/fractional-positioning.js
85
+ 1 supertest
86
+ 1 ../plugins/core/rest-api-cors-plugin.js
87
+ 1 child_process
88
+ 1 ../../index.js
89
+ 1 ../../plugins/core/rest-api-access.js
90
+ 1 ../../plugins/core/connectors/express-plugin.js
91
+ 1 ../../plugins/core/lib/anyapi/schema-utils.js
92
+ 1 ../helpers/storage-mode.js
93
+ 1 ./storage-mode.js
94
+ 1 ../plugins/core/lib/fractional-positioning.js
95
+ 1 socket.io-client
96
+ 1 jose