@budibase/backend-core 3.2.26 → 3.2.27

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 (466) hide show
  1. package/dist/index.js +62 -23
  2. package/dist/index.js.map +4 -4
  3. package/dist/index.js.meta.json +1 -1
  4. package/dist/package.json +7 -7
  5. package/dist/plugins.js.map +2 -2
  6. package/dist/plugins.js.meta.json +1 -1
  7. package/dist/src/events/processors/types.d.ts +1 -1
  8. package/dist/src/events/publishers/index.d.ts +1 -0
  9. package/dist/src/events/publishers/rowAction.d.ts +6 -0
  10. package/dist/src/events/publishers/table.d.ts +2 -2
  11. package/dist/src/events/publishers/view.d.ts +17 -6
  12. package/dist/src/index.d.ts +11 -11
  13. package/dist/src/platform/platformDb.d.ts +1 -1
  14. package/dist/src/queue/queue.d.ts +1 -1
  15. package/dist/src/tenancy/db.d.ts +1 -1
  16. package/package.json +7 -7
  17. package/dist/jest.config.js +0 -25
  18. package/dist/jest.config.js.map +0 -1
  19. package/dist/src/accounts/accounts.js +0 -83
  20. package/dist/src/accounts/accounts.js.map +0 -1
  21. package/dist/src/accounts/api.js +0 -102
  22. package/dist/src/accounts/api.js.map +0 -1
  23. package/dist/src/accounts/index.js +0 -18
  24. package/dist/src/accounts/index.js.map +0 -1
  25. package/dist/src/auth/auth.js +0 -198
  26. package/dist/src/auth/auth.js.map +0 -1
  27. package/dist/src/auth/index.js +0 -18
  28. package/dist/src/auth/index.js.map +0 -1
  29. package/dist/src/blacklist/blacklist.js +0 -75
  30. package/dist/src/blacklist/blacklist.js.map +0 -1
  31. package/dist/src/blacklist/index.js +0 -18
  32. package/dist/src/blacklist/index.js.map +0 -1
  33. package/dist/src/cache/appMetadata.js +0 -96
  34. package/dist/src/cache/appMetadata.js.map +0 -1
  35. package/dist/src/cache/base/index.js +0 -189
  36. package/dist/src/cache/base/index.js.map +0 -1
  37. package/dist/src/cache/docWritethrough.js +0 -123
  38. package/dist/src/cache/docWritethrough.js.map +0 -1
  39. package/dist/src/cache/generic.js +0 -37
  40. package/dist/src/cache/generic.js.map +0 -1
  41. package/dist/src/cache/index.js +0 -48
  42. package/dist/src/cache/index.js.map +0 -1
  43. package/dist/src/cache/invite.js +0 -128
  44. package/dist/src/cache/invite.js.map +0 -1
  45. package/dist/src/cache/passwordReset.js +0 -92
  46. package/dist/src/cache/passwordReset.js.map +0 -1
  47. package/dist/src/cache/user.js +0 -183
  48. package/dist/src/cache/user.js.map +0 -1
  49. package/dist/src/cache/writethrough.js +0 -170
  50. package/dist/src/cache/writethrough.js.map +0 -1
  51. package/dist/src/configs/configs.js +0 -294
  52. package/dist/src/configs/configs.js.map +0 -1
  53. package/dist/src/configs/index.js +0 -18
  54. package/dist/src/configs/index.js.map +0 -1
  55. package/dist/src/constants/db.js +0 -75
  56. package/dist/src/constants/db.js.map +0 -1
  57. package/dist/src/constants/index.js +0 -19
  58. package/dist/src/constants/index.js.map +0 -1
  59. package/dist/src/constants/misc.js +0 -40
  60. package/dist/src/constants/misc.js.map +0 -1
  61. package/dist/src/context/Context.js +0 -14
  62. package/dist/src/context/Context.js.map +0 -1
  63. package/dist/src/context/identity.js +0 -81
  64. package/dist/src/context/identity.js.map +0 -1
  65. package/dist/src/context/index.js +0 -44
  66. package/dist/src/context/index.js.map +0 -1
  67. package/dist/src/context/mainContext.js +0 -446
  68. package/dist/src/context/mainContext.js.map +0 -1
  69. package/dist/src/context/types.js +0 -3
  70. package/dist/src/context/types.js.map +0 -1
  71. package/dist/src/db/Replication.js +0 -90
  72. package/dist/src/db/Replication.js.map +0 -1
  73. package/dist/src/db/couch/DatabaseImpl.js +0 -475
  74. package/dist/src/db/couch/DatabaseImpl.js.map +0 -1
  75. package/dist/src/db/couch/connections.js +0 -101
  76. package/dist/src/db/couch/connections.js.map +0 -1
  77. package/dist/src/db/couch/index.js +0 -26
  78. package/dist/src/db/couch/index.js.map +0 -1
  79. package/dist/src/db/couch/pouchDB.js +0 -108
  80. package/dist/src/db/couch/pouchDB.js.map +0 -1
  81. package/dist/src/db/couch/pouchDump.js +0 -2
  82. package/dist/src/db/couch/pouchDump.js.map +0 -1
  83. package/dist/src/db/couch/utils.js +0 -60
  84. package/dist/src/db/couch/utils.js.map +0 -1
  85. package/dist/src/db/db.js +0 -47
  86. package/dist/src/db/db.js.map +0 -1
  87. package/dist/src/db/errors.js +0 -21
  88. package/dist/src/db/errors.js.map +0 -1
  89. package/dist/src/db/index.js +0 -58
  90. package/dist/src/db/index.js.map +0 -1
  91. package/dist/src/db/instrumentation.js +0 -202
  92. package/dist/src/db/instrumentation.js.map +0 -1
  93. package/dist/src/db/lucene.js +0 -638
  94. package/dist/src/db/lucene.js.map +0 -1
  95. package/dist/src/db/searchIndexes/index.js +0 -18
  96. package/dist/src/db/searchIndexes/index.js.map +0 -1
  97. package/dist/src/db/searchIndexes/searchIndexes.js +0 -76
  98. package/dist/src/db/searchIndexes/searchIndexes.js.map +0 -1
  99. package/dist/src/db/utils.js +0 -212
  100. package/dist/src/db/utils.js.map +0 -1
  101. package/dist/src/db/views.js +0 -224
  102. package/dist/src/db/views.js.map +0 -1
  103. package/dist/src/docIds/conversions.js +0 -62
  104. package/dist/src/docIds/conversions.js.map +0 -1
  105. package/dist/src/docIds/ids.js +0 -125
  106. package/dist/src/docIds/ids.js.map +0 -1
  107. package/dist/src/docIds/index.js +0 -19
  108. package/dist/src/docIds/index.js.map +0 -1
  109. package/dist/src/docIds/newid.js +0 -8
  110. package/dist/src/docIds/newid.js.map +0 -1
  111. package/dist/src/docIds/params.js +0 -141
  112. package/dist/src/docIds/params.js.map +0 -1
  113. package/dist/src/docUpdates/index.js +0 -35
  114. package/dist/src/docUpdates/index.js.map +0 -1
  115. package/dist/src/environment.js +0 -182
  116. package/dist/src/environment.js.map +0 -1
  117. package/dist/src/errors/errors.js +0 -97
  118. package/dist/src/errors/errors.js.map +0 -1
  119. package/dist/src/errors/index.js +0 -18
  120. package/dist/src/errors/index.js.map +0 -1
  121. package/dist/src/events/analytics.js +0 -52
  122. package/dist/src/events/analytics.js.map +0 -1
  123. package/dist/src/events/asyncEvents/index.js +0 -19
  124. package/dist/src/events/asyncEvents/index.js.map +0 -1
  125. package/dist/src/events/asyncEvents/publisher.js +0 -26
  126. package/dist/src/events/asyncEvents/publisher.js.map +0 -1
  127. package/dist/src/events/asyncEvents/queue.js +0 -26
  128. package/dist/src/events/asyncEvents/queue.js.map +0 -1
  129. package/dist/src/events/backfill.js +0 -189
  130. package/dist/src/events/backfill.js.map +0 -1
  131. package/dist/src/events/documentId.js +0 -27
  132. package/dist/src/events/documentId.js.map +0 -1
  133. package/dist/src/events/events.js +0 -87
  134. package/dist/src/events/events.js.map +0 -1
  135. package/dist/src/events/identification.js +0 -299
  136. package/dist/src/events/identification.js.map +0 -1
  137. package/dist/src/events/index.js +0 -59
  138. package/dist/src/events/index.js.map +0 -1
  139. package/dist/src/events/processors/AnalyticsProcessor.js +0 -103
  140. package/dist/src/events/processors/AnalyticsProcessor.js.map +0 -1
  141. package/dist/src/events/processors/AuditLogsProcessor.js +0 -86
  142. package/dist/src/events/processors/AuditLogsProcessor.js.map +0 -1
  143. package/dist/src/events/processors/LoggingProcessor.js +0 -47
  144. package/dist/src/events/processors/LoggingProcessor.js.map +0 -1
  145. package/dist/src/events/processors/Processors.js +0 -52
  146. package/dist/src/events/processors/Processors.js.map +0 -1
  147. package/dist/src/events/processors/async/DocumentUpdateProcessor.js +0 -44
  148. package/dist/src/events/processors/async/DocumentUpdateProcessor.js.map +0 -1
  149. package/dist/src/events/processors/index.js +0 -23
  150. package/dist/src/events/processors/index.js.map +0 -1
  151. package/dist/src/events/processors/posthog/PosthogProcessor.js +0 -149
  152. package/dist/src/events/processors/posthog/PosthogProcessor.js.map +0 -1
  153. package/dist/src/events/processors/posthog/index.js +0 -8
  154. package/dist/src/events/processors/posthog/index.js.map +0 -1
  155. package/dist/src/events/processors/posthog/rateLimiting.js +0 -129
  156. package/dist/src/events/processors/posthog/rateLimiting.js.map +0 -1
  157. package/dist/src/events/processors/types.js +0 -3
  158. package/dist/src/events/processors/types.js.map +0 -1
  159. package/dist/src/events/publishers/account.js +0 -43
  160. package/dist/src/events/publishers/account.js.map +0 -1
  161. package/dist/src/events/publishers/ai.js +0 -30
  162. package/dist/src/events/publishers/ai.js.map +0 -1
  163. package/dist/src/events/publishers/app.js +0 -166
  164. package/dist/src/events/publishers/app.js.map +0 -1
  165. package/dist/src/events/publishers/auditLog.js +0 -34
  166. package/dist/src/events/publishers/auditLog.js.map +0 -1
  167. package/dist/src/events/publishers/auth.js +0 -80
  168. package/dist/src/events/publishers/auth.js.map +0 -1
  169. package/dist/src/events/publishers/automation.js +0 -117
  170. package/dist/src/events/publishers/automation.js.map +0 -1
  171. package/dist/src/events/publishers/backfill.js +0 -85
  172. package/dist/src/events/publishers/backfill.js.map +0 -1
  173. package/dist/src/events/publishers/backup.js +0 -41
  174. package/dist/src/events/publishers/backup.js.map +0 -1
  175. package/dist/src/events/publishers/datasource.js +0 -54
  176. package/dist/src/events/publishers/datasource.js.map +0 -1
  177. package/dist/src/events/publishers/email.js +0 -30
  178. package/dist/src/events/publishers/email.js.map +0 -1
  179. package/dist/src/events/publishers/environmentVariable.js +0 -44
  180. package/dist/src/events/publishers/environmentVariable.js.map +0 -1
  181. package/dist/src/events/publishers/group.js +0 -107
  182. package/dist/src/events/publishers/group.js.map +0 -1
  183. package/dist/src/events/publishers/index.js +0 -57
  184. package/dist/src/events/publishers/index.js.map +0 -1
  185. package/dist/src/events/publishers/installation.js +0 -52
  186. package/dist/src/events/publishers/installation.js.map +0 -1
  187. package/dist/src/events/publishers/layout.js +0 -34
  188. package/dist/src/events/publishers/layout.js.map +0 -1
  189. package/dist/src/events/publishers/license.js +0 -77
  190. package/dist/src/events/publishers/license.js.map +0 -1
  191. package/dist/src/events/publishers/org.js +0 -52
  192. package/dist/src/events/publishers/org.js.map +0 -1
  193. package/dist/src/events/publishers/plugin.js +0 -55
  194. package/dist/src/events/publishers/plugin.js.map +0 -1
  195. package/dist/src/events/publishers/query.js +0 -74
  196. package/dist/src/events/publishers/query.js.map +0 -1
  197. package/dist/src/events/publishers/role.js +0 -69
  198. package/dist/src/events/publishers/role.js.map +0 -1
  199. package/dist/src/events/publishers/rows.js +0 -32
  200. package/dist/src/events/publishers/rows.js.map +0 -1
  201. package/dist/src/events/publishers/screen.js +0 -46
  202. package/dist/src/events/publishers/screen.js.map +0 -1
  203. package/dist/src/events/publishers/serve.js +0 -47
  204. package/dist/src/events/publishers/serve.js.map +0 -1
  205. package/dist/src/events/publishers/table.js +0 -77
  206. package/dist/src/events/publishers/table.js.map +0 -1
  207. package/dist/src/events/publishers/user.js +0 -201
  208. package/dist/src/events/publishers/user.js.map +0 -1
  209. package/dist/src/events/publishers/view.js +0 -111
  210. package/dist/src/events/publishers/view.js.map +0 -1
  211. package/dist/src/features/features.js +0 -271
  212. package/dist/src/features/features.js.map +0 -1
  213. package/dist/src/features/index.js +0 -42
  214. package/dist/src/features/index.js.map +0 -1
  215. package/dist/src/features/tests/utils.js +0 -56
  216. package/dist/src/features/tests/utils.js.map +0 -1
  217. package/dist/src/helpers.js +0 -13
  218. package/dist/src/helpers.js.map +0 -1
  219. package/dist/src/index.js +0 -99
  220. package/dist/src/index.js.map +0 -1
  221. package/dist/src/installation.js +0 -159
  222. package/dist/src/installation.js.map +0 -1
  223. package/dist/src/logging/alerts.js +0 -23
  224. package/dist/src/logging/alerts.js.map +0 -1
  225. package/dist/src/logging/correlation/correlation.js +0 -18
  226. package/dist/src/logging/correlation/correlation.js.map +0 -1
  227. package/dist/src/logging/correlation/index.js +0 -18
  228. package/dist/src/logging/correlation/index.js.map +0 -1
  229. package/dist/src/logging/correlation/middleware.js +0 -17
  230. package/dist/src/logging/correlation/middleware.js.map +0 -1
  231. package/dist/src/logging/index.js +0 -45
  232. package/dist/src/logging/index.js.map +0 -1
  233. package/dist/src/logging/pino/logger.js +0 -234
  234. package/dist/src/logging/pino/logger.js.map +0 -1
  235. package/dist/src/logging/pino/middleware.js +0 -46
  236. package/dist/src/logging/pino/middleware.js.map +0 -1
  237. package/dist/src/logging/system.js +0 -110
  238. package/dist/src/logging/system.js.map +0 -1
  239. package/dist/src/middleware/adminOnly.js +0 -19
  240. package/dist/src/middleware/adminOnly.js.map +0 -1
  241. package/dist/src/middleware/auditLog.js +0 -18
  242. package/dist/src/middleware/auditLog.js.map +0 -1
  243. package/dist/src/middleware/authenticated.js +0 -254
  244. package/dist/src/middleware/authenticated.js.map +0 -1
  245. package/dist/src/middleware/builderOnly.js +0 -33
  246. package/dist/src/middleware/builderOnly.js.map +0 -1
  247. package/dist/src/middleware/builderOrAdmin.js +0 -33
  248. package/dist/src/middleware/builderOrAdmin.js.map +0 -1
  249. package/dist/src/middleware/contentSecurityPolicy.js +0 -124
  250. package/dist/src/middleware/contentSecurityPolicy.js.map +0 -1
  251. package/dist/src/middleware/csrf.js +0 -81
  252. package/dist/src/middleware/csrf.js.map +0 -1
  253. package/dist/src/middleware/errorHandling.js +0 -88
  254. package/dist/src/middleware/errorHandling.js.map +0 -1
  255. package/dist/src/middleware/index.js +0 -79
  256. package/dist/src/middleware/index.js.map +0 -1
  257. package/dist/src/middleware/internalApi.js +0 -30
  258. package/dist/src/middleware/internalApi.js.map +0 -1
  259. package/dist/src/middleware/ip.js +0 -23
  260. package/dist/src/middleware/ip.js.map +0 -1
  261. package/dist/src/middleware/joi-validator.js +0 -53
  262. package/dist/src/middleware/joi-validator.js.map +0 -1
  263. package/dist/src/middleware/matchers.js +0 -36
  264. package/dist/src/middleware/matchers.js.map +0 -1
  265. package/dist/src/middleware/passport/datasource/google.js +0 -107
  266. package/dist/src/middleware/passport/datasource/google.js.map +0 -1
  267. package/dist/src/middleware/passport/local.js +0 -91
  268. package/dist/src/middleware/passport/local.js.map +0 -1
  269. package/dist/src/middleware/passport/sso/google.js +0 -98
  270. package/dist/src/middleware/passport/sso/google.js.map +0 -1
  271. package/dist/src/middleware/passport/sso/oidc.js +0 -158
  272. package/dist/src/middleware/passport/sso/oidc.js.map +0 -1
  273. package/dist/src/middleware/passport/sso/sso.js +0 -150
  274. package/dist/src/middleware/passport/sso/sso.js.map +0 -1
  275. package/dist/src/middleware/passport/utils.js +0 -75
  276. package/dist/src/middleware/passport/utils.js.map +0 -1
  277. package/dist/src/middleware/querystringToBody.js +0 -29
  278. package/dist/src/middleware/querystringToBody.js.map +0 -1
  279. package/dist/src/middleware/tenancy.js +0 -37
  280. package/dist/src/middleware/tenancy.js.map +0 -1
  281. package/dist/src/migrations/definitions.js +0 -39
  282. package/dist/src/migrations/definitions.js.map +0 -1
  283. package/dist/src/migrations/index.js +0 -19
  284. package/dist/src/migrations/index.js.map +0 -1
  285. package/dist/src/migrations/migrations.js +0 -203
  286. package/dist/src/migrations/migrations.js.map +0 -1
  287. package/dist/src/objectStore/buckets/app.js +0 -95
  288. package/dist/src/objectStore/buckets/app.js.map +0 -1
  289. package/dist/src/objectStore/buckets/global.js +0 -68
  290. package/dist/src/objectStore/buckets/global.js.map +0 -1
  291. package/dist/src/objectStore/buckets/index.js +0 -20
  292. package/dist/src/objectStore/buckets/index.js.map +0 -1
  293. package/dist/src/objectStore/buckets/plugins.js +0 -104
  294. package/dist/src/objectStore/buckets/plugins.js.map +0 -1
  295. package/dist/src/objectStore/cloudfront.js +0 -73
  296. package/dist/src/objectStore/cloudfront.js.map +0 -1
  297. package/dist/src/objectStore/index.js +0 -20
  298. package/dist/src/objectStore/index.js.map +0 -1
  299. package/dist/src/objectStore/objectStore.js +0 -509
  300. package/dist/src/objectStore/objectStore.js.map +0 -1
  301. package/dist/src/objectStore/utils.js +0 -148
  302. package/dist/src/objectStore/utils.js.map +0 -1
  303. package/dist/src/platform/index.js +0 -43
  304. package/dist/src/platform/index.js.map +0 -1
  305. package/dist/src/platform/platformDb.js +0 -9
  306. package/dist/src/platform/platformDb.js.map +0 -1
  307. package/dist/src/platform/tenants.js +0 -149
  308. package/dist/src/platform/tenants.js.map +0 -1
  309. package/dist/src/platform/users.js +0 -118
  310. package/dist/src/platform/users.js.map +0 -1
  311. package/dist/src/plugin/index.js +0 -18
  312. package/dist/src/plugin/index.js.map +0 -1
  313. package/dist/src/plugin/utils.js +0 -158
  314. package/dist/src/plugin/utils.js.map +0 -1
  315. package/dist/src/queue/constants.js +0 -13
  316. package/dist/src/queue/constants.js.map +0 -1
  317. package/dist/src/queue/inMemoryQueue.js +0 -192
  318. package/dist/src/queue/inMemoryQueue.js.map +0 -1
  319. package/dist/src/queue/index.js +0 -19
  320. package/dist/src/queue/index.js.map +0 -1
  321. package/dist/src/queue/listeners.js +0 -199
  322. package/dist/src/queue/listeners.js.map +0 -1
  323. package/dist/src/queue/queue.js +0 -124
  324. package/dist/src/queue/queue.js.map +0 -1
  325. package/dist/src/redis/index.js +0 -47
  326. package/dist/src/redis/index.js.map +0 -1
  327. package/dist/src/redis/init.js +0 -184
  328. package/dist/src/redis/init.js.map +0 -1
  329. package/dist/src/redis/redis.js +0 -396
  330. package/dist/src/redis/redis.js.map +0 -1
  331. package/dist/src/redis/redlockImpl.js +0 -181
  332. package/dist/src/redis/redlockImpl.js.map +0 -1
  333. package/dist/src/redis/utils.js +0 -131
  334. package/dist/src/redis/utils.js.map +0 -1
  335. package/dist/src/security/auth.js +0 -26
  336. package/dist/src/security/auth.js.map +0 -1
  337. package/dist/src/security/encryption.js +0 -169
  338. package/dist/src/security/encryption.js.map +0 -1
  339. package/dist/src/security/index.js +0 -18
  340. package/dist/src/security/index.js.map +0 -1
  341. package/dist/src/security/permissions.js +0 -147
  342. package/dist/src/security/permissions.js.map +0 -1
  343. package/dist/src/security/roles.js +0 -566
  344. package/dist/src/security/roles.js.map +0 -1
  345. package/dist/src/security/secrets.js +0 -53
  346. package/dist/src/security/secrets.js.map +0 -1
  347. package/dist/src/security/sessions.js +0 -156
  348. package/dist/src/security/sessions.js.map +0 -1
  349. package/dist/src/sql/designDoc.js +0 -19
  350. package/dist/src/sql/designDoc.js.map +0 -1
  351. package/dist/src/sql/index.js +0 -47
  352. package/dist/src/sql/index.js.map +0 -1
  353. package/dist/src/sql/sql.js +0 -1536
  354. package/dist/src/sql/sql.js.map +0 -1
  355. package/dist/src/sql/sqlTable.js +0 -256
  356. package/dist/src/sql/sqlTable.js.map +0 -1
  357. package/dist/src/sql/utils.js +0 -179
  358. package/dist/src/sql/utils.js.map +0 -1
  359. package/dist/src/tenancy/db.js +0 -9
  360. package/dist/src/tenancy/db.js.map +0 -1
  361. package/dist/src/tenancy/index.js +0 -19
  362. package/dist/src/tenancy/index.js.map +0 -1
  363. package/dist/src/tenancy/tenancy.js +0 -125
  364. package/dist/src/tenancy/tenancy.js.map +0 -1
  365. package/dist/src/timers/index.js +0 -18
  366. package/dist/src/timers/index.js.map +0 -1
  367. package/dist/src/timers/timers.js +0 -25
  368. package/dist/src/timers/timers.js.map +0 -1
  369. package/dist/src/users/db.js +0 -489
  370. package/dist/src/users/db.js.map +0 -1
  371. package/dist/src/users/events.js +0 -179
  372. package/dist/src/users/events.js.map +0 -1
  373. package/dist/src/users/index.js +0 -23
  374. package/dist/src/users/index.js.map +0 -1
  375. package/dist/src/users/lookup.js +0 -126
  376. package/dist/src/users/lookup.js.map +0 -1
  377. package/dist/src/users/users.js +0 -376
  378. package/dist/src/users/users.js.map +0 -1
  379. package/dist/src/users/utils.js +0 -127
  380. package/dist/src/users/utils.js.map +0 -1
  381. package/dist/src/utils/Duration.js +0 -54
  382. package/dist/src/utils/Duration.js.map +0 -1
  383. package/dist/src/utils/hashing.js +0 -46
  384. package/dist/src/utils/hashing.js.map +0 -1
  385. package/dist/src/utils/index.js +0 -21
  386. package/dist/src/utils/index.js.map +0 -1
  387. package/dist/src/utils/stringUtils.js +0 -8
  388. package/dist/src/utils/stringUtils.js.map +0 -1
  389. package/dist/src/utils/utils.js +0 -267
  390. package/dist/src/utils/utils.js.map +0 -1
  391. package/dist/tests/core/logging.js +0 -33
  392. package/dist/tests/core/logging.js.map +0 -1
  393. package/dist/tests/core/utilities/index.js +0 -48
  394. package/dist/tests/core/utilities/index.js.map +0 -1
  395. package/dist/tests/core/utilities/jestUtils.js +0 -21
  396. package/dist/tests/core/utilities/jestUtils.js.map +0 -1
  397. package/dist/tests/core/utilities/mocks/alerts.js +0 -40
  398. package/dist/tests/core/utilities/mocks/alerts.js.map +0 -1
  399. package/dist/tests/core/utilities/mocks/date.js +0 -6
  400. package/dist/tests/core/utilities/mocks/date.js.map +0 -1
  401. package/dist/tests/core/utilities/mocks/events.js +0 -154
  402. package/dist/tests/core/utilities/mocks/events.js.map +0 -1
  403. package/dist/tests/core/utilities/mocks/index.js +0 -47
  404. package/dist/tests/core/utilities/mocks/index.js.map +0 -1
  405. package/dist/tests/core/utilities/mocks/licenses.js +0 -109
  406. package/dist/tests/core/utilities/mocks/licenses.js.map +0 -1
  407. package/dist/tests/core/utilities/queue.js +0 -21
  408. package/dist/tests/core/utilities/queue.js.map +0 -1
  409. package/dist/tests/core/utilities/structures/Chance.js +0 -21
  410. package/dist/tests/core/utilities/structures/Chance.js.map +0 -1
  411. package/dist/tests/core/utilities/structures/accounts.js +0 -43
  412. package/dist/tests/core/utilities/structures/accounts.js.map +0 -1
  413. package/dist/tests/core/utilities/structures/apps.js +0 -23
  414. package/dist/tests/core/utilities/structures/apps.js.map +0 -1
  415. package/dist/tests/core/utilities/structures/common.js +0 -11
  416. package/dist/tests/core/utilities/structures/common.js.map +0 -1
  417. package/dist/tests/core/utilities/structures/db.js +0 -15
  418. package/dist/tests/core/utilities/structures/db.js.map +0 -1
  419. package/dist/tests/core/utilities/structures/documents/index.js +0 -18
  420. package/dist/tests/core/utilities/structures/documents/index.js.map +0 -1
  421. package/dist/tests/core/utilities/structures/documents/platform/index.js +0 -38
  422. package/dist/tests/core/utilities/structures/documents/platform/index.js.map +0 -1
  423. package/dist/tests/core/utilities/structures/documents/platform/installation.js +0 -47
  424. package/dist/tests/core/utilities/structures/documents/platform/installation.js.map +0 -1
  425. package/dist/tests/core/utilities/structures/generator.js +0 -9
  426. package/dist/tests/core/utilities/structures/generator.js.map +0 -1
  427. package/dist/tests/core/utilities/structures/index.js +0 -56
  428. package/dist/tests/core/utilities/structures/index.js.map +0 -1
  429. package/dist/tests/core/utilities/structures/koa.js +0 -10
  430. package/dist/tests/core/utilities/structures/koa.js.map +0 -1
  431. package/dist/tests/core/utilities/structures/licenses.js +0 -157
  432. package/dist/tests/core/utilities/structures/licenses.js.map +0 -1
  433. package/dist/tests/core/utilities/structures/plugins.js +0 -22
  434. package/dist/tests/core/utilities/structures/plugins.js.map +0 -1
  435. package/dist/tests/core/utilities/structures/quotas.js +0 -73
  436. package/dist/tests/core/utilities/structures/quotas.js.map +0 -1
  437. package/dist/tests/core/utilities/structures/scim.js +0 -62
  438. package/dist/tests/core/utilities/structures/scim.js.map +0 -1
  439. package/dist/tests/core/utilities/structures/sso.js +0 -140
  440. package/dist/tests/core/utilities/structures/sso.js.map +0 -1
  441. package/dist/tests/core/utilities/structures/tenants.js +0 -8
  442. package/dist/tests/core/utilities/structures/tenants.js.map +0 -1
  443. package/dist/tests/core/utilities/structures/userGroups.js +0 -12
  444. package/dist/tests/core/utilities/structures/userGroups.js.map +0 -1
  445. package/dist/tests/core/utilities/structures/users.js +0 -53
  446. package/dist/tests/core/utilities/structures/users.js.map +0 -1
  447. package/dist/tests/core/utilities/testContainerUtils.js +0 -161
  448. package/dist/tests/core/utilities/testContainerUtils.js.map +0 -1
  449. package/dist/tests/core/utilities/utils/index.js +0 -39
  450. package/dist/tests/core/utilities/utils/index.js.map +0 -1
  451. package/dist/tests/core/utilities/utils/queue.js +0 -37
  452. package/dist/tests/core/utilities/utils/queue.js.map +0 -1
  453. package/dist/tests/core/utilities/utils/time.js +0 -7
  454. package/dist/tests/core/utilities/utils/time.js.map +0 -1
  455. package/dist/tests/extra/DBTestConfiguration.js +0 -65
  456. package/dist/tests/extra/DBTestConfiguration.js.map +0 -1
  457. package/dist/tests/extra/index.js +0 -43
  458. package/dist/tests/extra/index.js.map +0 -1
  459. package/dist/tests/extra/testEnv.js +0 -136
  460. package/dist/tests/extra/testEnv.js.map +0 -1
  461. package/dist/tests/index.js +0 -19
  462. package/dist/tests/index.js.map +0 -1
  463. package/dist/tests/jestEnv.js +0 -12
  464. package/dist/tests/jestEnv.js.map +0 -1
  465. package/dist/tests/jestSetup.js +0 -33
  466. package/dist/tests/jestSetup.js.map +0 -1
@@ -1,638 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
- if (kind === "m") throw new TypeError("Private method is not writable");
13
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
- };
17
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
18
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
19
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21
- };
22
- var __importDefault = (this && this.__importDefault) || function (mod) {
23
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
- };
25
- var _QueryBuilder_instances, _a, _QueryBuilder_dbName, _QueryBuilder_index, _QueryBuilder_query, _QueryBuilder_limit, _QueryBuilder_sort, _QueryBuilder_bookmark, _QueryBuilder_sortOrder, _QueryBuilder_sortType, _QueryBuilder_includeDocs, _QueryBuilder_version, _QueryBuilder_indexBuilder, _QueryBuilder_noEscaping, _QueryBuilder_skip, _QueryBuilder_skipItems, _QueryBuilder_execute;
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.QueryBuilder = exports.removeKeyNumbering = void 0;
28
- exports.paginatedSearch = paginatedSearch;
29
- exports.fullSearch = fullSearch;
30
- const node_fetch_1 = __importDefault(require("node-fetch"));
31
- const couch_1 = require("./couch");
32
- const types_1 = require("@budibase/types");
33
- const shared_core_1 = require("@budibase/shared-core");
34
- exports.removeKeyNumbering = shared_core_1.dataFilters.removeKeyNumbering;
35
- function isEmpty(value) {
36
- return value == null || value === "";
37
- }
38
- /**
39
- * Class to build lucene query URLs.
40
- * Optionally takes a base lucene query object.
41
- */
42
- class QueryBuilder {
43
- constructor(dbName, index, base) {
44
- _QueryBuilder_instances.add(this);
45
- _QueryBuilder_dbName.set(this, void 0);
46
- _QueryBuilder_index.set(this, void 0);
47
- _QueryBuilder_query.set(this, void 0);
48
- _QueryBuilder_limit.set(this, void 0);
49
- _QueryBuilder_sort.set(this, void 0);
50
- _QueryBuilder_bookmark.set(this, void 0);
51
- _QueryBuilder_sortOrder.set(this, void 0);
52
- _QueryBuilder_sortType.set(this, void 0);
53
- _QueryBuilder_includeDocs.set(this, void 0);
54
- _QueryBuilder_version.set(this, void 0);
55
- _QueryBuilder_indexBuilder.set(this, void 0);
56
- _QueryBuilder_noEscaping.set(this, false);
57
- _QueryBuilder_skip.set(this, void 0);
58
- __classPrivateFieldSet(this, _QueryBuilder_dbName, dbName, "f");
59
- __classPrivateFieldSet(this, _QueryBuilder_index, index, "f");
60
- __classPrivateFieldSet(this, _QueryBuilder_query, Object.assign({ allOr: false, onEmptyFilter: types_1.EmptyFilterOption.RETURN_ALL, string: {}, fuzzy: {}, range: {}, equal: {}, notEqual: {}, empty: {}, notEmpty: {}, oneOf: {}, contains: {}, notContains: {}, containsAny: {} }, base), "f");
61
- __classPrivateFieldSet(this, _QueryBuilder_limit, 50, "f");
62
- __classPrivateFieldSet(this, _QueryBuilder_sortOrder, "ascending", "f");
63
- __classPrivateFieldSet(this, _QueryBuilder_sortType, "string", "f");
64
- __classPrivateFieldSet(this, _QueryBuilder_includeDocs, true, "f");
65
- }
66
- disableEscaping() {
67
- __classPrivateFieldSet(this, _QueryBuilder_noEscaping, true, "f");
68
- return this;
69
- }
70
- setIndexBuilder(builderFn) {
71
- __classPrivateFieldSet(this, _QueryBuilder_indexBuilder, builderFn, "f");
72
- return this;
73
- }
74
- setVersion(version) {
75
- if (version != null) {
76
- __classPrivateFieldSet(this, _QueryBuilder_version, version, "f");
77
- }
78
- return this;
79
- }
80
- setTable(tableId) {
81
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").equal.tableId = tableId;
82
- return this;
83
- }
84
- setLimit(limit) {
85
- if (limit != null) {
86
- __classPrivateFieldSet(this, _QueryBuilder_limit, limit, "f");
87
- }
88
- return this;
89
- }
90
- setSort(sort) {
91
- if (sort != null) {
92
- __classPrivateFieldSet(this, _QueryBuilder_sort, sort, "f");
93
- }
94
- return this;
95
- }
96
- setSortOrder(sortOrder) {
97
- if (sortOrder != null) {
98
- __classPrivateFieldSet(this, _QueryBuilder_sortOrder, sortOrder, "f");
99
- }
100
- return this;
101
- }
102
- setSortType(sortType) {
103
- if (sortType != null) {
104
- __classPrivateFieldSet(this, _QueryBuilder_sortType, sortType, "f");
105
- }
106
- return this;
107
- }
108
- setBookmark(bookmark) {
109
- if (bookmark != null) {
110
- __classPrivateFieldSet(this, _QueryBuilder_bookmark, bookmark, "f");
111
- }
112
- return this;
113
- }
114
- setSkip(skip) {
115
- __classPrivateFieldSet(this, _QueryBuilder_skip, skip, "f");
116
- return this;
117
- }
118
- excludeDocs() {
119
- __classPrivateFieldSet(this, _QueryBuilder_includeDocs, false, "f");
120
- return this;
121
- }
122
- includeDocs() {
123
- __classPrivateFieldSet(this, _QueryBuilder_includeDocs, true, "f");
124
- return this;
125
- }
126
- addString(key, partial) {
127
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").string[key] = partial;
128
- return this;
129
- }
130
- addFuzzy(key, fuzzy) {
131
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").fuzzy[key] = fuzzy;
132
- return this;
133
- }
134
- addRange(key, low, high) {
135
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").range[key] = {
136
- low,
137
- high,
138
- };
139
- return this;
140
- }
141
- addEqual(key, value) {
142
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").equal[key] = value;
143
- return this;
144
- }
145
- addNotEqual(key, value) {
146
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").notEqual[key] = value;
147
- return this;
148
- }
149
- addEmpty(key, value) {
150
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").empty[key] = value;
151
- return this;
152
- }
153
- addNotEmpty(key, value) {
154
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").notEmpty[key] = value;
155
- return this;
156
- }
157
- addOneOf(key, value) {
158
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").oneOf[key] = value;
159
- return this;
160
- }
161
- addContains(key, value) {
162
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").contains[key] = value;
163
- return this;
164
- }
165
- addNotContains(key, value) {
166
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").notContains[key] = value;
167
- return this;
168
- }
169
- addContainsAny(key, value) {
170
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").containsAny[key] = value;
171
- return this;
172
- }
173
- setAllOr() {
174
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").allOr = true;
175
- }
176
- setOnEmptyFilter(value) {
177
- __classPrivateFieldGet(this, _QueryBuilder_query, "f").onEmptyFilter = value;
178
- }
179
- handleSpaces(input) {
180
- if (__classPrivateFieldGet(this, _QueryBuilder_noEscaping, "f")) {
181
- return input;
182
- }
183
- else {
184
- return input.replace(/ /g, "_");
185
- }
186
- }
187
- preprocess(value, { escape, lowercase, wrap, type, } = {}) {
188
- const hasVersion = !!__classPrivateFieldGet(this, _QueryBuilder_version, "f");
189
- // Determine if type needs wrapped
190
- const originalType = typeof value;
191
- // Convert to lowercase
192
- if (value && lowercase) {
193
- value = value.toLowerCase ? value.toLowerCase() : value;
194
- }
195
- // Escape characters
196
- if (!__classPrivateFieldGet(this, _QueryBuilder_noEscaping, "f") && escape && originalType === "string") {
197
- value = `${value}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g, "\\$&");
198
- }
199
- // Wrap in quotes
200
- if (originalType === "string" && !isNaN(value) && !type) {
201
- value = `"${value}"`;
202
- }
203
- else if (hasVersion && wrap) {
204
- value = originalType === "number" ? value : `"${value}"`;
205
- }
206
- return value;
207
- }
208
- isMultiCondition() {
209
- let count = 0;
210
- for (let filters of Object.values(__classPrivateFieldGet(this, _QueryBuilder_query, "f"))) {
211
- // not contains is one massive filter in allOr mode
212
- if (typeof filters === "object") {
213
- count += Object.keys(filters).length;
214
- }
215
- }
216
- return count > 1;
217
- }
218
- compressFilters(filters) {
219
- const compressed = {};
220
- for (let key of Object.keys(filters)) {
221
- const finalKey = (0, exports.removeKeyNumbering)(key);
222
- if (compressed[finalKey]) {
223
- compressed[finalKey] = compressed[finalKey].concat(filters[key]);
224
- }
225
- else {
226
- compressed[finalKey] = filters[key];
227
- }
228
- }
229
- // add prefixes back
230
- const final = {};
231
- let count = 1;
232
- for (let [key, value] of Object.entries(compressed)) {
233
- final[`${count++}:${key}`] = value;
234
- }
235
- return final;
236
- }
237
- buildSearchQuery() {
238
- var _b;
239
- const builder = this;
240
- let allOr = __classPrivateFieldGet(this, _QueryBuilder_query, "f") && __classPrivateFieldGet(this, _QueryBuilder_query, "f").allOr;
241
- let query = allOr ? "" : "*:*";
242
- let allFiltersEmpty = true;
243
- const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true };
244
- let tableId = "";
245
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").equal.tableId) {
246
- tableId = __classPrivateFieldGet(this, _QueryBuilder_query, "f").equal.tableId;
247
- delete __classPrivateFieldGet(this, _QueryBuilder_query, "f").equal.tableId;
248
- }
249
- const equal = (key, value) => {
250
- if (isEmpty(value)) {
251
- return null;
252
- }
253
- return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`;
254
- };
255
- const contains = (key, value, mode = "AND") => {
256
- if (isEmpty(value)) {
257
- return null;
258
- }
259
- if (!Array.isArray(value)) {
260
- return `${key}:${value}`;
261
- }
262
- let statement = `${builder.preprocess(value[0], { escape: true })}`;
263
- for (let i = 1; i < value.length; i++) {
264
- statement += ` ${mode} ${builder.preprocess(value[i], {
265
- escape: true,
266
- })}`;
267
- }
268
- return `${key}:(${statement})`;
269
- };
270
- const fuzzy = (key, value) => {
271
- if (isEmpty(value)) {
272
- return null;
273
- }
274
- value = builder.preprocess(value, {
275
- escape: true,
276
- lowercase: true,
277
- type: "fuzzy",
278
- });
279
- return `${key}:/.*${value}.*/`;
280
- };
281
- const notContains = (key, value) => {
282
- const allPrefix = allOr ? "*:* AND " : "";
283
- const mode = allOr ? "AND" : undefined;
284
- return allPrefix + "NOT " + contains(key, value, mode);
285
- };
286
- const containsAny = (key, value) => {
287
- return contains(key, value, "OR");
288
- };
289
- const oneOf = (key, value) => {
290
- if (isEmpty(value)) {
291
- return `*:*`;
292
- }
293
- if (!Array.isArray(value)) {
294
- if (typeof value === "string") {
295
- value = value.split(",");
296
- }
297
- else {
298
- return "";
299
- }
300
- }
301
- let orStatement = `${builder.preprocess(value[0], allPreProcessingOpts)}`;
302
- for (let i = 1; i < value.length; i++) {
303
- orStatement += ` OR ${builder.preprocess(value[i], allPreProcessingOpts)}`;
304
- }
305
- return `${key}:(${orStatement})`;
306
- };
307
- function build(structure, queryFn, opts) {
308
- let built = "";
309
- for (let [key, value] of Object.entries(structure)) {
310
- // check for new format - remove numbering if needed
311
- key = (0, exports.removeKeyNumbering)(key);
312
- key = builder.preprocess(builder.handleSpaces(key), {
313
- escape: true,
314
- });
315
- let expression = queryFn(key, value);
316
- if (expression == null) {
317
- continue;
318
- }
319
- if (built.length > 0 || query.length > 0) {
320
- const mode = (opts === null || opts === void 0 ? void 0 : opts.mode) ? opts.mode : allOr ? "OR" : "AND";
321
- built += ` ${mode} `;
322
- }
323
- built += expression;
324
- if ((typeof value !== "string" && value != null) ||
325
- (typeof value === "string" && value !== tableId && value !== "")) {
326
- allFiltersEmpty = false;
327
- }
328
- }
329
- if (opts === null || opts === void 0 ? void 0 : opts.returnBuilt) {
330
- return built;
331
- }
332
- else {
333
- query += built;
334
- }
335
- }
336
- // Construct the actual lucene search query string from JSON structure
337
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").string) {
338
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").string, (key, value) => {
339
- if (isEmpty(value)) {
340
- return null;
341
- }
342
- value = builder.preprocess(value, {
343
- escape: true,
344
- lowercase: true,
345
- type: "string",
346
- });
347
- return `${key}:${value}*`;
348
- });
349
- }
350
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").range) {
351
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").range, (key, value) => {
352
- if (isEmpty(value)) {
353
- return null;
354
- }
355
- if (value.low == null || value.low === "") {
356
- return null;
357
- }
358
- if (value.high == null || value.high === "") {
359
- return null;
360
- }
361
- const low = builder.preprocess(value.low, allPreProcessingOpts);
362
- const high = builder.preprocess(value.high, allPreProcessingOpts);
363
- return `${key}:[${low} TO ${high}]`;
364
- });
365
- }
366
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").fuzzy) {
367
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").fuzzy, fuzzy);
368
- }
369
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").equal) {
370
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").equal, equal);
371
- }
372
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").notEqual) {
373
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").notEqual, (key, value) => {
374
- if (isEmpty(value)) {
375
- return null;
376
- }
377
- if (typeof value === "boolean") {
378
- return `(*:* AND !${key}:${value})`;
379
- }
380
- return `!${key}:${builder.preprocess(value, allPreProcessingOpts)}`;
381
- });
382
- }
383
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").empty) {
384
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").empty, (key) => {
385
- // Because the structure of an empty filter looks like this:
386
- // { empty: { someKey: null } }
387
- //
388
- // The check inside of `build` does not set `allFiltersEmpty`, which results
389
- // in weird behaviour when the empty filter is the only filter. We get around
390
- // this by setting `allFiltersEmpty` to false here.
391
- allFiltersEmpty = false;
392
- return `(*:* -${key}:["" TO *])`;
393
- });
394
- }
395
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").notEmpty) {
396
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").notEmpty, (key) => {
397
- // Because the structure of a notEmpty filter looks like this:
398
- // { notEmpty: { someKey: null } }
399
- //
400
- // The check inside of `build` does not set `allFiltersEmpty`, which results
401
- // in weird behaviour when the empty filter is the only filter. We get around
402
- // this by setting `allFiltersEmpty` to false here.
403
- allFiltersEmpty = false;
404
- return `${key}:["" TO *]`;
405
- });
406
- }
407
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").oneOf) {
408
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").oneOf, oneOf);
409
- }
410
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").contains) {
411
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").contains, contains);
412
- }
413
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").notContains) {
414
- build(this.compressFilters(__classPrivateFieldGet(this, _QueryBuilder_query, "f").notContains), notContains);
415
- }
416
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").containsAny) {
417
- build(__classPrivateFieldGet(this, _QueryBuilder_query, "f").containsAny, containsAny);
418
- }
419
- // make sure table ID is always added as an AND
420
- if (tableId) {
421
- query = this.isMultiCondition() ? `(${query})` : query;
422
- allOr = false;
423
- build({ tableId }, equal);
424
- }
425
- if (allFiltersEmpty) {
426
- if (__classPrivateFieldGet(this, _QueryBuilder_query, "f").onEmptyFilter === types_1.EmptyFilterOption.RETURN_NONE) {
427
- return "";
428
- }
429
- else if ((_b = __classPrivateFieldGet(this, _QueryBuilder_query, "f")) === null || _b === void 0 ? void 0 : _b.allOr) {
430
- return query.replace("()", "(*:*)");
431
- }
432
- }
433
- return query;
434
- }
435
- buildSearchBody() {
436
- let body = {
437
- q: this.buildSearchQuery(),
438
- limit: Math.min(__classPrivateFieldGet(this, _QueryBuilder_limit, "f"), _a.maxLimit),
439
- include_docs: __classPrivateFieldGet(this, _QueryBuilder_includeDocs, "f"),
440
- };
441
- if (__classPrivateFieldGet(this, _QueryBuilder_bookmark, "f")) {
442
- body.bookmark = __classPrivateFieldGet(this, _QueryBuilder_bookmark, "f");
443
- }
444
- if (__classPrivateFieldGet(this, _QueryBuilder_sort, "f")) {
445
- const order = __classPrivateFieldGet(this, _QueryBuilder_sortOrder, "f") === "descending" ? "-" : "";
446
- const type = `<${__classPrivateFieldGet(this, _QueryBuilder_sortType, "f")}>`;
447
- body.sort = `${order}${this.handleSpaces(__classPrivateFieldGet(this, _QueryBuilder_sort, "f"))}${type}`;
448
- }
449
- return body;
450
- }
451
- run() {
452
- return __awaiter(this, void 0, void 0, function* () {
453
- if (__classPrivateFieldGet(this, _QueryBuilder_skip, "f")) {
454
- yield __classPrivateFieldGet(this, _QueryBuilder_instances, "m", _QueryBuilder_skipItems).call(this, __classPrivateFieldGet(this, _QueryBuilder_skip, "f"));
455
- }
456
- return yield __classPrivateFieldGet(this, _QueryBuilder_instances, "m", _QueryBuilder_execute).call(this);
457
- });
458
- }
459
- }
460
- exports.QueryBuilder = QueryBuilder;
461
- _a = QueryBuilder, _QueryBuilder_dbName = new WeakMap(), _QueryBuilder_index = new WeakMap(), _QueryBuilder_query = new WeakMap(), _QueryBuilder_limit = new WeakMap(), _QueryBuilder_sort = new WeakMap(), _QueryBuilder_bookmark = new WeakMap(), _QueryBuilder_sortOrder = new WeakMap(), _QueryBuilder_sortType = new WeakMap(), _QueryBuilder_includeDocs = new WeakMap(), _QueryBuilder_version = new WeakMap(), _QueryBuilder_indexBuilder = new WeakMap(), _QueryBuilder_noEscaping = new WeakMap(), _QueryBuilder_skip = new WeakMap(), _QueryBuilder_instances = new WeakSet(), _QueryBuilder_skipItems = function _QueryBuilder_skipItems(skip) {
462
- return __awaiter(this, void 0, void 0, function* () {
463
- // Lucene does not support pagination.
464
- // Handle pagination by finding the right bookmark
465
- const prevIncludeDocs = __classPrivateFieldGet(this, _QueryBuilder_includeDocs, "f");
466
- const prevLimit = __classPrivateFieldGet(this, _QueryBuilder_limit, "f");
467
- this.excludeDocs();
468
- let skipRemaining = skip;
469
- let iterationFetched = 0;
470
- do {
471
- const toSkip = Math.min(_a.maxLimit, skipRemaining);
472
- this.setLimit(toSkip);
473
- const { bookmark, rows } = yield __classPrivateFieldGet(this, _QueryBuilder_instances, "m", _QueryBuilder_execute).call(this);
474
- this.setBookmark(bookmark);
475
- iterationFetched = rows.length;
476
- skipRemaining -= rows.length;
477
- } while (skipRemaining > 0 && iterationFetched > 0);
478
- __classPrivateFieldSet(this, _QueryBuilder_includeDocs, prevIncludeDocs, "f");
479
- __classPrivateFieldSet(this, _QueryBuilder_limit, prevLimit, "f");
480
- });
481
- }, _QueryBuilder_execute = function _QueryBuilder_execute() {
482
- return __awaiter(this, void 0, void 0, function* () {
483
- const { url, cookie } = (0, couch_1.getCouchInfo)();
484
- const fullPath = `${url}/${__classPrivateFieldGet(this, _QueryBuilder_dbName, "f")}/_design/database/_search/${__classPrivateFieldGet(this, _QueryBuilder_index, "f")}`;
485
- const body = this.buildSearchBody();
486
- try {
487
- return yield runQuery(fullPath, body, cookie);
488
- }
489
- catch (err) {
490
- if (err.status === 404 && __classPrivateFieldGet(this, _QueryBuilder_indexBuilder, "f")) {
491
- yield __classPrivateFieldGet(this, _QueryBuilder_indexBuilder, "f").call(this);
492
- return yield runQuery(fullPath, body, cookie);
493
- }
494
- else {
495
- throw err;
496
- }
497
- }
498
- });
499
- };
500
- QueryBuilder.maxLimit = 200;
501
- /**
502
- * Executes a lucene search query.
503
- * @param url The query URL
504
- * @param body The request body defining search criteria
505
- * @param cookie The auth cookie for CouchDB
506
- * @returns {Promise<{rows: []}>}
507
- */
508
- function runQuery(url, body, cookie) {
509
- return __awaiter(this, void 0, void 0, function* () {
510
- const response = yield (0, node_fetch_1.default)(url, {
511
- body: JSON.stringify(body),
512
- method: "POST",
513
- headers: {
514
- Authorization: cookie,
515
- },
516
- });
517
- if (response.status === 404) {
518
- throw response;
519
- }
520
- const json = yield response.json();
521
- let output = {
522
- rows: [],
523
- totalRows: 0,
524
- };
525
- if (json.rows != null && json.rows.length > 0) {
526
- output.rows = json.rows.map((row) => row.doc);
527
- }
528
- if (json.bookmark) {
529
- output.bookmark = json.bookmark;
530
- }
531
- if (json.total_rows) {
532
- output.totalRows = json.total_rows;
533
- }
534
- return output;
535
- });
536
- }
537
- /**
538
- * Gets round the fixed limit of 200 results from a query by fetching as many
539
- * pages as required and concatenating the results. This recursively operates
540
- * until enough results have been found.
541
- * @param dbName Which database to run a lucene query on
542
- * @param index Which search index to utilise
543
- * @param query The JSON query structure
544
- * @param params The search params including:
545
- * tableId {string} The table ID to search
546
- * sort {string} The sort column
547
- * sortOrder {string} The sort order ("ascending" or "descending")
548
- * sortType {string} Whether to treat sortable values as strings or
549
- * numbers. ("string" or "number")
550
- * limit {number} The number of results to fetch
551
- * bookmark {string|null} Current bookmark in the recursive search
552
- * rows {array|null} Current results in the recursive search
553
- */
554
- function recursiveSearch(dbName, index, query, params) {
555
- return __awaiter(this, void 0, void 0, function* () {
556
- const bookmark = params.bookmark;
557
- const rows = params.rows || [];
558
- if (params.limit && rows.length >= params.limit) {
559
- return rows;
560
- }
561
- let pageSize = QueryBuilder.maxLimit;
562
- if (params.limit && rows.length > params.limit - QueryBuilder.maxLimit) {
563
- pageSize = params.limit - rows.length;
564
- }
565
- const queryBuilder = new QueryBuilder(dbName, index, query);
566
- queryBuilder
567
- .setVersion(params.version)
568
- .setBookmark(bookmark)
569
- .setLimit(pageSize)
570
- .setSort(params.sort)
571
- .setSortOrder(params.sortOrder)
572
- .setSortType(params.sortType);
573
- if (params.tableId) {
574
- queryBuilder.setTable(params.tableId);
575
- }
576
- const page = yield queryBuilder.run();
577
- if (!page.rows.length) {
578
- return rows;
579
- }
580
- if (page.rows.length < QueryBuilder.maxLimit) {
581
- return [...rows, ...page.rows];
582
- }
583
- const newParams = Object.assign(Object.assign({}, params), { bookmark: page.bookmark, rows: [...rows, ...page.rows] });
584
- return yield recursiveSearch(dbName, index, query, newParams);
585
- });
586
- }
587
- function paginatedSearch(dbName, index, query, params) {
588
- return __awaiter(this, void 0, void 0, function* () {
589
- let limit = params.limit;
590
- if (limit == null || isNaN(limit) || limit < 0) {
591
- limit = 50;
592
- }
593
- limit = Math.min(limit, QueryBuilder.maxLimit);
594
- const search = new QueryBuilder(dbName, index, query);
595
- if (params.version) {
596
- search.setVersion(params.version);
597
- }
598
- if (params.tableId) {
599
- search.setTable(params.tableId);
600
- }
601
- if (params.sort) {
602
- search
603
- .setSort(params.sort)
604
- .setSortOrder(params.sortOrder)
605
- .setSortType(params.sortType);
606
- }
607
- if (params.indexer) {
608
- search.setIndexBuilder(params.indexer);
609
- }
610
- if (params.disableEscaping) {
611
- search.disableEscaping();
612
- }
613
- const searchResults = yield search
614
- .setBookmark(params.bookmark)
615
- .setLimit(limit)
616
- .run();
617
- // Try fetching 1 row in the next page to see if another page of results
618
- // exists or not
619
- search.setBookmark(searchResults.bookmark).setLimit(1);
620
- if (params.tableId) {
621
- search.setTable(params.tableId);
622
- }
623
- const nextResults = yield search.run();
624
- return Object.assign(Object.assign({}, searchResults), { hasNextPage: nextResults.rows && nextResults.rows.length > 0 });
625
- });
626
- }
627
- function fullSearch(dbName, index, query, params) {
628
- return __awaiter(this, void 0, void 0, function* () {
629
- let limit = params.limit;
630
- if (limit == null || isNaN(limit) || limit < 0) {
631
- limit = 1000;
632
- }
633
- params.limit = Math.min(limit, 1000);
634
- const rows = yield recursiveSearch(dbName, index, query, params);
635
- return { rows };
636
- });
637
- }
638
- //# sourceMappingURL=lucene.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lucene.js","sourceRoot":"","sources":["../../../src/db/lucene.ts"],"names":[],"mappings":"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"}