@harperfast/harper 5.3.0-beta.4 → 5.3.0

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 (314) hide show
  1. package/bin/backup.ts +6 -1
  2. package/components/Application.ts +486 -115
  3. package/components/DESIGN.md +109 -21
  4. package/components/deploymentProvenance.ts +28 -0
  5. package/components/operations.js +14 -7
  6. package/components/packageComponent.ts +5 -1
  7. package/config-root.schema.json +1 -1
  8. package/dataLayer/DESIGN.md +35 -7
  9. package/dataLayer/blobBackup.ts +71 -30
  10. package/dataLayer/harperBridge/ResourceBridge.ts +16 -2
  11. package/dataLayer/rocksdbBackup.ts +88 -34
  12. package/dataLayer/schemaDescribe.ts +45 -1
  13. package/dist/bin/backup.js +1 -1
  14. package/dist/bin/backup.js.map +1 -1
  15. package/dist/components/Application.d.ts +11 -21
  16. package/dist/components/Application.js +436 -105
  17. package/dist/components/Application.js.map +1 -1
  18. package/dist/components/deploymentProvenance.d.ts +4 -0
  19. package/dist/components/deploymentProvenance.js +32 -0
  20. package/dist/components/deploymentProvenance.js.map +1 -0
  21. package/dist/components/operations.js +14 -7
  22. package/dist/components/operations.js.map +1 -1
  23. package/dist/components/packageComponent.js +6 -1
  24. package/dist/components/packageComponent.js.map +1 -1
  25. package/dist/dataLayer/blobBackup.d.ts +30 -3
  26. package/dist/dataLayer/blobBackup.js +73 -36
  27. package/dist/dataLayer/blobBackup.js.map +1 -1
  28. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +1 -0
  29. package/dist/dataLayer/harperBridge/ResourceBridge.js +15 -3
  30. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  31. package/dist/dataLayer/rocksdbBackup.d.ts +4 -1
  32. package/dist/dataLayer/rocksdbBackup.js +74 -36
  33. package/dist/dataLayer/rocksdbBackup.js.map +1 -1
  34. package/dist/dataLayer/schemaDescribe.js +45 -1
  35. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  36. package/dist/resources/DatabaseTransaction.d.ts +1 -0
  37. package/dist/resources/DatabaseTransaction.js +33 -8
  38. package/dist/resources/DatabaseTransaction.js.map +1 -1
  39. package/dist/resources/ResourceInterface.d.ts +7 -3
  40. package/dist/resources/ResourceInterface.js +2 -0
  41. package/dist/resources/ResourceInterface.js.map +1 -1
  42. package/dist/resources/Table.d.ts +151 -445
  43. package/dist/resources/Table.js +209 -8
  44. package/dist/resources/Table.js.map +1 -1
  45. package/dist/resources/analytics/write.d.ts +11 -0
  46. package/dist/resources/analytics/write.js +3 -0
  47. package/dist/resources/analytics/write.js.map +1 -1
  48. package/dist/resources/blob.d.ts +30 -0
  49. package/dist/resources/blob.js +189 -1
  50. package/dist/resources/blob.js.map +1 -1
  51. package/dist/resources/databases.d.ts +1 -0
  52. package/dist/resources/databases.js +80 -15
  53. package/dist/resources/databases.js.map +1 -1
  54. package/dist/resources/derivedIndexRuntime.d.ts +13 -0
  55. package/dist/resources/derivedIndexRuntime.js +57 -5
  56. package/dist/resources/derivedIndexRuntime.js.map +1 -1
  57. package/dist/resources/derivedIndexes.d.ts +1 -0
  58. package/dist/resources/derivedIndexes.js +116 -15
  59. package/dist/resources/derivedIndexes.js.map +1 -1
  60. package/dist/resources/fullTextSchema.d.ts +5 -3
  61. package/dist/resources/fullTextSchema.js +48 -5
  62. package/dist/resources/fullTextSchema.js.map +1 -1
  63. package/dist/resources/fullTextSchemaLifecycle.d.ts +2 -0
  64. package/dist/resources/fullTextSchemaLifecycle.js +33 -0
  65. package/dist/resources/fullTextSchemaLifecycle.js.map +1 -1
  66. package/dist/resources/graphql.js +30 -12
  67. package/dist/resources/graphql.js.map +1 -1
  68. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +21 -1
  69. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +114 -5
  70. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  71. package/dist/resources/indexes/fullTextDerivedIndex.d.ts +11 -2
  72. package/dist/resources/indexes/fullTextDerivedIndex.js +187 -24
  73. package/dist/resources/indexes/fullTextDerivedIndex.js.map +1 -1
  74. package/dist/resources/indexes/fullTextNativeBinding.d.ts +99 -1
  75. package/dist/resources/indexes/fullTextNativeBinding.js +35 -1
  76. package/dist/resources/indexes/fullTextNativeBinding.js.map +1 -1
  77. package/dist/resources/indexes/fullTextQueryIndex.d.ts +58 -0
  78. package/dist/resources/indexes/fullTextQueryIndex.js +943 -0
  79. package/dist/resources/indexes/fullTextQueryIndex.js.map +1 -0
  80. package/dist/resources/indexes/fullTextQueryProtocol.d.ts +6 -0
  81. package/dist/resources/indexes/fullTextQueryProtocol.js +32 -0
  82. package/dist/resources/indexes/fullTextQueryProtocol.js.map +1 -0
  83. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.d.ts +4 -1
  84. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js +30 -7
  85. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js.map +1 -1
  86. package/dist/resources/search.d.ts +41 -0
  87. package/dist/resources/search.js +468 -26
  88. package/dist/resources/search.js.map +1 -1
  89. package/dist/resources/transactionBroadcast.js +101 -50
  90. package/dist/resources/transactionBroadcast.js.map +1 -1
  91. package/dist/resources/typeParity.d.ts +9 -0
  92. package/dist/resources/typeParity.js +3 -0
  93. package/dist/resources/typeParity.js.map +1 -0
  94. package/dist/server/REST.js.map +1 -1
  95. package/dist/server/itc/serverHandlers.js +48 -8
  96. package/dist/server/itc/serverHandlers.js.map +1 -1
  97. package/dist/server/serverHelpers/contentTypes.d.ts +7 -0
  98. package/dist/server/serverHelpers/contentTypes.js +36 -23
  99. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  100. package/dist/server/serverHelpers/uwsServer.js +28 -5
  101. package/dist/server/serverHelpers/uwsServer.js.map +1 -1
  102. package/dist/server/threads/itc.js +19 -0
  103. package/dist/server/threads/itc.js.map +1 -1
  104. package/dist/server/threads/manageThreads.d.ts +3 -0
  105. package/dist/server/threads/manageThreads.js +90 -23
  106. package/dist/server/threads/manageThreads.js.map +1 -1
  107. package/dist/utility/operation_authorization.js +25 -7
  108. package/dist/utility/operation_authorization.js.map +1 -1
  109. package/dist/utility/signalling.js +3 -0
  110. package/dist/utility/signalling.js.map +1 -1
  111. package/dist/validation/searchValidator.js +22 -2
  112. package/dist/validation/searchValidator.js.map +1 -1
  113. package/npm-shrinkwrap.json +22 -22
  114. package/package.json +2 -4
  115. package/resources/DESIGN.md +19 -2
  116. package/resources/DatabaseTransaction.ts +40 -10
  117. package/resources/FULL_TEXT.md +97 -0
  118. package/resources/ResourceInterface.ts +8 -2
  119. package/resources/Table.ts +767 -17
  120. package/resources/analytics/write.ts +3 -3
  121. package/resources/blob.ts +183 -1
  122. package/resources/databases.ts +126 -14
  123. package/resources/derivedIndexRuntime.ts +79 -6
  124. package/resources/derivedIndexes.ts +142 -18
  125. package/resources/fullTextSchema.ts +55 -9
  126. package/resources/fullTextSchemaLifecycle.ts +45 -0
  127. package/resources/graphql.ts +33 -12
  128. package/resources/indexes/DESIGN.md +167 -15
  129. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +125 -5
  130. package/resources/indexes/fullTextDerivedIndex.ts +216 -32
  131. package/resources/indexes/fullTextNativeBinding.ts +133 -3
  132. package/resources/indexes/fullTextQueryIndex.ts +1120 -0
  133. package/resources/indexes/fullTextQueryProtocol.ts +35 -0
  134. package/resources/indexes/nativeFullTextDerivedIndexLifecycle.ts +28 -8
  135. package/resources/search.ts +513 -26
  136. package/resources/transactionBroadcast.ts +86 -47
  137. package/resources/typeParity.ts +20 -0
  138. package/schema.graphql +18 -5
  139. package/server/DESIGN.md +18 -0
  140. package/server/REST.ts +1 -1
  141. package/server/itc/serverHandlers.js +61 -8
  142. package/server/serverHelpers/contentTypes.ts +31 -26
  143. package/server/serverHelpers/uwsServer.ts +35 -7
  144. package/server/threads/itc.js +21 -0
  145. package/server/threads/manageThreads.js +95 -21
  146. package/studio/web/assets/{Chat-Bq60AO-g.js → Chat-CNEKMllJ.js} +13 -13
  147. package/studio/web/assets/FloatingChat-CEnWhHeR.js +23 -0
  148. package/studio/web/assets/SearchDialog-CwhJdEdY.js +1 -0
  149. package/studio/web/assets/{abnfDiagram-O67JEVCF-DpPZWMOf.js → abnfDiagram-O67JEVCF-raXE027J.js} +1 -1
  150. package/studio/web/assets/alertDialog-BbWD9Xxa.js +1 -0
  151. package/studio/web/assets/apiToken-DC5vsaaO.js +1 -0
  152. package/studio/web/assets/applications-DQZxDy0x.js +296 -0
  153. package/studio/web/assets/architecture-7GRP2DOG-DDmz3hpI.js +1 -0
  154. package/studio/web/assets/{architectureDiagram-NJMV4G6O-OmgLraID.js → architectureDiagram-NJMV4G6O-C8_Eet7w.js} +1 -1
  155. package/studio/web/assets/arrow-up-D2g_57vT.js +1 -0
  156. package/studio/web/assets/authStore-CJCaADw9.js +3 -0
  157. package/studio/web/assets/{blockDiagram-BEXU5L5S-Cv7CD3Ai.js → blockDiagram-BEXU5L5S-DR6S5-1D.js} +1 -1
  158. package/studio/web/assets/{button-MFP9n8Ck.js → button-DWwfgGWI.js} +2 -2
  159. package/studio/web/assets/{c4Diagram-YGBWAQC7-Ds1vKYnN.js → c4Diagram-YGBWAQC7-BAfZ1G01.js} +1 -1
  160. package/studio/web/assets/channel-D0AkPjJ8.js +1 -0
  161. package/studio/web/assets/{chevron-up-CFe8x5Bp.js → chevron-up-CFxbMGv2.js} +1 -1
  162. package/studio/web/assets/{chunk-3FUC2YCW-DpnBPH8B.js → chunk-3FUC2YCW-DuRp-j19.js} +1 -1
  163. package/studio/web/assets/{chunk-5DYCD2WN-LLLCQSzg.js → chunk-5DYCD2WN-BceBfIHT.js} +1 -1
  164. package/studio/web/assets/{chunk-742MDFTN-BL8J_pIO.js → chunk-742MDFTN-CIkt8ijt.js} +1 -1
  165. package/studio/web/assets/{chunk-7INBJB4K-C-hJHiiK.js → chunk-7INBJB4K-BpeAXyOi.js} +1 -1
  166. package/studio/web/assets/{chunk-7M6MHVWA-C6ZqkFbA.js → chunk-7M6MHVWA-h6WlaTzO.js} +1 -1
  167. package/studio/web/assets/{chunk-7PRAP22T-CUXM8BG6.js → chunk-7PRAP22T-KyqX6x3f.js} +1 -1
  168. package/studio/web/assets/{chunk-GTNCS2PH-DJ2BFvS1.js → chunk-GTNCS2PH-DGHLXyow.js} +1 -1
  169. package/studio/web/assets/{chunk-GWA4HPMP-C42bSqLL.js → chunk-GWA4HPMP-DsejB6gA.js} +1 -1
  170. package/studio/web/assets/{chunk-MBY4JIJT-C-5jz6Lo.js → chunk-MBY4JIJT-BwSGweQP.js} +1 -1
  171. package/studio/web/assets/{chunk-NETBCI7D-D-bzlN4r.js → chunk-NETBCI7D-C8UnOw_f.js} +1 -1
  172. package/studio/web/assets/{chunk-O7XYJQB3-ep14zA23.js → chunk-O7XYJQB3-CBS3nZYV.js} +1 -1
  173. package/studio/web/assets/{chunk-UA2S7LBM-BMRWRHED.js → chunk-UA2S7LBM-BHpEdH8D.js} +1 -1
  174. package/studio/web/assets/{chunk-WEXAMYUT-DdLYVdX1.js → chunk-WEXAMYUT-BAIhTwyh.js} +1 -1
  175. package/studio/web/assets/{chunk-Z7XXMR3K-BmKEDjcP.js → chunk-Z7XXMR3K-DSHbImdf.js} +1 -1
  176. package/studio/web/assets/{chunk-ZIGJFQKS-DLZgdNxA.js → chunk-ZIGJFQKS-Cs8fUn7y.js} +1 -1
  177. package/studio/web/assets/{classDiagram-v2-NBCMYWYE-DOI5vgKT.js → classDiagram-v2-NBCMYWYE-DmDPkt2u.js} +1 -1
  178. package/studio/web/assets/cn-6T8VranJ.js +1 -0
  179. package/studio/web/assets/{codicon-Brq4_Ui5.ttf → codicon-DF1abBS2.ttf} +0 -0
  180. package/studio/web/assets/{createLucideIcon-bziYxJli.js → createLucideIcon-fO5dL7D5.js} +1 -1
  181. package/studio/web/assets/{css.worker-l1psR_wG.js → css.worker-DoT-OOzx.js} +36 -36
  182. package/studio/web/assets/{cssMode-DJyc9mHj.js → cssMode-Dz2DxF4e.js} +1 -1
  183. package/studio/web/assets/{cynefin-OW5HDTMX-BSW-DB7S.js → cynefin-OW5HDTMX-DIvbXLSj.js} +1 -1
  184. package/studio/web/assets/{cynefinDiagram-VND7K2PF-CbAHEwxt.js → cynefinDiagram-VND7K2PF-BdtaXiCE.js} +1 -1
  185. package/studio/web/assets/{dagre-6A5THRUB-Csxewgs4.js → dagre-6A5THRUB-C7RUWHyz.js} +1 -1
  186. package/studio/web/assets/{diagram-22UHCM2B-a0rt8tY4.js → diagram-22UHCM2B-DJCvcaWP.js} +1 -1
  187. package/studio/web/assets/{diagram-3UASUU5V-lEj2SVNh.js → diagram-3UASUU5V-Du6VKWln.js} +1 -1
  188. package/studio/web/assets/{diagram-ATOU4E4O-HcrAeB-q.js → diagram-ATOU4E4O-dxRfeG4B.js} +1 -1
  189. package/studio/web/assets/{diagram-CDSNMT55-CYxiuyEx.js → diagram-CDSNMT55-l5Ga0u-W.js} +1 -1
  190. package/studio/web/assets/{diagram-MLGK6HIB-ChbCJTgJ.js → diagram-MLGK6HIB-CNQY47LA.js} +1 -1
  191. package/studio/web/assets/{diagram-MPIPVDR6-DaX9Y-N3.js → diagram-MPIPVDR6-7prveD1B.js} +1 -1
  192. package/studio/web/assets/{dist-Cz2Y6-6G.js → dist-BrRuMUzt.js} +1 -1
  193. package/studio/web/assets/{download-CtostjYn.js → download-Cn6tPG4L.js} +1 -1
  194. package/studio/web/assets/{ebnfDiagram-ZINNZB2B-CwAsENB1.js → ebnfDiagram-ZINNZB2B-5OnkTpfi.js} +1 -1
  195. package/studio/web/assets/{editor-DDIsQfj6.js → editor-B3mjd3tz.js} +1 -1
  196. package/studio/web/assets/editor.worker-Yd1NR0QT.js +33 -0
  197. package/studio/web/assets/{elk-276RUBZZ-Hexg9E4D.js → elk-276RUBZZ-DxDQPjQT.js} +1 -1
  198. package/studio/web/assets/{erDiagram-OPXOYQCR-CeC-wwO1.js → erDiagram-OPXOYQCR-CQlCX84D.js} +1 -1
  199. package/studio/web/assets/eventmodeling-NTZA5JFV-DONQf5aG.js +1 -0
  200. package/studio/web/assets/flowDiagram-KWPJA3E3-BoZ8_QR1.js +1 -0
  201. package/studio/web/assets/{ganttDiagram-FUAMR5RP-C2_Hhl1-.js → ganttDiagram-FUAMR5RP-bloX3Voy.js} +1 -1
  202. package/studio/web/assets/{getAnalytics-CjthMQqF.js → getAnalytics-C0FHjtdQ.js} +1 -1
  203. package/studio/web/assets/{gitGraph-4MIJSDKK-xIk5Vuew.js → gitGraph-4MIJSDKK-BrXWmJt2.js} +1 -1
  204. package/studio/web/assets/{gitGraphDiagram-X574FWY7-CMxJ34up.js → gitGraphDiagram-X574FWY7-C2KnnZeY.js} +1 -1
  205. package/studio/web/assets/{html-g1BJHxLy.js → html-BsRGM7tp.js} +1 -1
  206. package/studio/web/assets/{html.worker-DdwM4IrA.js → html.worker-B1dwY0Ay.js} +27 -27
  207. package/studio/web/assets/{htmlMode-Vh5IglCQ.js → htmlMode-tUKJaA3o.js} +1 -1
  208. package/studio/web/assets/index-72cEH474.css +1 -0
  209. package/studio/web/assets/index-BuqFjN5K.js +828 -0
  210. package/studio/web/assets/index.lazy-CcpfQFY_.js +2 -0
  211. package/studio/web/assets/{info-A6RAGUB7-o49TEbj-.js → info-A6RAGUB7-BhzBHe4U.js} +1 -1
  212. package/studio/web/assets/{infoDiagram-VRGFBTTK-Cjhh7yzZ.js → infoDiagram-VRGFBTTK-B0J1132p.js} +1 -1
  213. package/studio/web/assets/{ishikawaDiagram-OU5B5YK6-C63aXRmh.js → ishikawaDiagram-OU5B5YK6-BNk0tuQx.js} +1 -1
  214. package/studio/web/assets/{javascript-5VIolqf7.js → javascript-BZ_uRGHl.js} +1 -1
  215. package/studio/web/assets/{journeyDiagram-ZHPQQLJL-D_o0P5Mu.js → journeyDiagram-ZHPQQLJL-Be79RMQM.js} +1 -1
  216. package/studio/web/assets/json.worker-BQqXGI3X.js +65 -0
  217. package/studio/web/assets/{jsonMode-DG4zQraI.js → jsonMode-DgB-aFMj.js} +1 -1
  218. package/studio/web/assets/{kanban-definition-PNTS6WVX-CTI9SSxY.js → kanban-definition-PNTS6WVX-4uuoQP9W.js} +1 -1
  219. package/studio/web/assets/{languageServices-t5FBpX-i.js → languageServices-BleuBw17.js} +1 -1
  220. package/studio/web/assets/localStorageKeys-etzFY_xV.js +1 -0
  221. package/studio/web/assets/{lspLanguageFeatures-DgVnNPh-.js → lspLanguageFeatures-ByVYLSsQ.js} +1 -1
  222. package/studio/web/assets/{mermaid-parser.core-C2lcH_jP.js → mermaid-parser.core-V1UYMeXV.js} +3 -3
  223. package/studio/web/assets/{mermaid.core-BG5bjfIG.js → mermaid.core-1PX6R49U.js} +4 -4
  224. package/studio/web/assets/{mindmap-definition-NLK3R4M7-BK7ho6JD.js → mindmap-definition-NLK3R4M7-C70Ctm0J.js} +1 -1
  225. package/studio/web/assets/notifications-D1Nf-Edn.js +1 -0
  226. package/studio/web/assets/notifications-TuzN0IMi.js +1 -0
  227. package/studio/web/assets/{packet-AYTQ26CC-BHPy6KBV.js → packet-AYTQ26CC-DWbXHx5g.js} +1 -1
  228. package/studio/web/assets/{pegDiagram-GJSIUBJH-DzjwG3jO.js → pegDiagram-GJSIUBJH-d6z1cc7W.js} +1 -1
  229. package/studio/web/assets/{pie-WAS4IAKB-D0cP-DTU.js → pie-WAS4IAKB-DjoTm3yr.js} +1 -1
  230. package/studio/web/assets/{pieDiagram-5QR66LMP-C_hOP9Lv.js → pieDiagram-5QR66LMP-Dz3RHpDA.js} +1 -1
  231. package/studio/web/assets/profile-D7C7Lupz.js +1 -0
  232. package/studio/web/assets/{quadrantDiagram-O4NWA36T-CZW8PbV1.js → quadrantDiagram-O4NWA36T-CIF5Qkou.js} +1 -1
  233. package/studio/web/assets/{radar-RG4KPBEZ-C8fk0U81.js → radar-RG4KPBEZ-CVBgjCOj.js} +1 -1
  234. package/studio/web/assets/{railroad-74A4TZTK-B60FWm17.js → railroad-74A4TZTK-BdhXw10Q.js} +1 -1
  235. package/studio/web/assets/railroad-abnf-HS5TGJTU-BcoQPN39.js +1 -0
  236. package/studio/web/assets/railroad-ebnf-LZEXJU2U-B1Lke2JN.js +1 -0
  237. package/studio/web/assets/railroad-peg-WCYAUIDC-D-oJFkiV.js +1 -0
  238. package/studio/web/assets/{railroadDiagram-XR7U4H2S-DyyNmgbU.js → railroadDiagram-XR7U4H2S-y3Jv2U6N.js} +1 -1
  239. package/studio/web/assets/regions-nGQCm-v8.js +1 -0
  240. package/studio/web/assets/register-C3x9Ze6P.js +909 -0
  241. package/studio/web/assets/register-DjpsE8to.css +1 -0
  242. package/studio/web/assets/{requirementDiagram-PLB6GJNP-C4H-mLKu.js → requirementDiagram-PLB6GJNP-ChINZEmu.js} +1 -1
  243. package/studio/web/assets/restartGate-nHAFLDh-.js +1 -0
  244. package/studio/web/assets/{sankeyDiagram-IPEJSGJF-DHDyga4c.js → sankeyDiagram-IPEJSGJF-D9AyLce2.js} +1 -1
  245. package/studio/web/assets/{sequenceDiagram-PO4LG4MO-CdNcHXRI.js → sequenceDiagram-PO4LG4MO-hfk4aIEm.js} +1 -1
  246. package/studio/web/assets/{setComponentFile-z4-qJCbA.js → setComponentFile-DpjrRqeG.js} +1 -1
  247. package/studio/web/assets/{setup-CS50uJ4x.js → setup-CGiKLZ9e.js} +2 -2
  248. package/studio/web/assets/{stateDiagram-v2-GCMORJYK-CpKuXq15.js → stateDiagram-v2-GCMORJYK-Bs8RIb9K.js} +1 -1
  249. package/studio/web/assets/status-CGJwrNPH.js +61 -0
  250. package/studio/web/assets/{swimlanes-2SLR337P-NRHa2D8I.js → swimlanes-2SLR337P-B52xrf6t.js} +1 -1
  251. package/studio/web/assets/swimlanesDiagram-TC7HE7FX-DfN7BAP5.js +8 -0
  252. package/studio/web/assets/tabs-BCTQzoQK.js +1 -0
  253. package/studio/web/assets/{timeline-definition-EJHVYXUP-D39Y-xpq.js → timeline-definition-EJHVYXUP-DJSITpQX.js} +1 -1
  254. package/studio/web/assets/toggleHighContrast-C-Ne6P7T.js +51 -0
  255. package/studio/web/assets/toggleHighContrast-n7clI0si.css +1 -0
  256. package/studio/web/assets/{treeView-Q6P3EWNA-CRWR9OqD.js → treeView-Q6P3EWNA-C-epdxRo.js} +1 -1
  257. package/studio/web/assets/{treemap-WGGIJYW6-ZfXyJgLO.js → treemap-WGGIJYW6-DOVyp_zw.js} +1 -1
  258. package/studio/web/assets/{ts.worker-DDMUrpqh.js → ts.worker-Clm12uY6.js} +131 -131
  259. package/studio/web/assets/{tsMode-D83Gg3cq.js → tsMode-CSreYTys.js} +1 -1
  260. package/studio/web/assets/{typescript-Dfp-GrNq.js → typescript-MnxBk89W.js} +1 -1
  261. package/studio/web/assets/{useEntityRestURL-BKetlINf.js → useEntityRestURL-TNrh77-s.js} +1 -1
  262. package/studio/web/assets/{usecaseDiagram-POWQR4AR-jf-zIDZ_.js → usecaseDiagram-POWQR4AR-B6252cbq.js} +1 -1
  263. package/studio/web/assets/{vendor-core-BdkdbUek.js → vendor-core-6LhfJlRC.js} +1 -1
  264. package/studio/web/assets/vendor-datadog-ozKf-pts.js +6 -0
  265. package/studio/web/assets/{vendor-react-izWchTRL.js → vendor-react-BOliS0BL.js} +1 -1
  266. package/studio/web/assets/vendor-tanstack-Bntfka-M.js +2 -0
  267. package/studio/web/assets/vendor-ui-9EYYDgoN.js +41 -0
  268. package/studio/web/assets/{vennDiagram-UO4OBE2U-BKYAZUh_.js → vennDiagram-UO4OBE2U-DZTsDA4k.js} +1 -1
  269. package/studio/web/assets/{wardley-WFR3VGLG-BO7f36ci.js → wardley-WFR3VGLG-Cfqoe6z4.js} +1 -1
  270. package/studio/web/assets/{wardleyDiagram-VNRHLVJA-Djb0JDQc.js → wardleyDiagram-VNRHLVJA-qu_f7Tvl.js} +1 -1
  271. package/studio/web/assets/{workers-CCvmDLH3.js → workers-BfZlUNVI.js} +3 -3
  272. package/studio/web/assets/{xml-06pZp00U.js → xml-BHd6qGH7.js} +1 -1
  273. package/studio/web/assets/{xychartDiagram-PMCCYNJV-BQh9ubvb.js → xychartDiagram-PMCCYNJV-UrOKRsmR.js} +1 -1
  274. package/studio/web/assets/{yaml-iSnWMVlV.js → yaml-C53R8OQq.js} +1 -1
  275. package/studio/web/assets/{yaml.worker-DAK2o_H1.js → yaml.worker-D9JekGdp.js} +183 -183
  276. package/studio/web/index.html +15 -15
  277. package/utility/operation_authorization.ts +27 -7
  278. package/utility/signalling.ts +3 -0
  279. package/validation/searchValidator.ts +22 -13
  280. package/studio/web/assets/FloatingChat-D4560T0p.js +0 -23
  281. package/studio/web/assets/alertDialog-UrbiMgQt.js +0 -1
  282. package/studio/web/assets/apiToken-BEvbFPMc.js +0 -1
  283. package/studio/web/assets/applications-CSUVTH4E.js +0 -296
  284. package/studio/web/assets/architecture-7GRP2DOG-11l4Ny1l.js +0 -1
  285. package/studio/web/assets/authStore-5jSS5pTW.js +0 -3
  286. package/studio/web/assets/channel-BDtouPd6.js +0 -1
  287. package/studio/web/assets/dialog-DTepachC.js +0 -1
  288. package/studio/web/assets/editor.worker-CkkvdXvO.js +0 -33
  289. package/studio/web/assets/eventmodeling-NTZA5JFV-CFb03e0o.js +0 -1
  290. package/studio/web/assets/flowDiagram-KWPJA3E3-Cidi00_Y.js +0 -1
  291. package/studio/web/assets/index-CPoDzQTe.css +0 -1
  292. package/studio/web/assets/index-DGRAzvO4.js +0 -824
  293. package/studio/web/assets/index.lazy-vgSic7et.js +0 -2
  294. package/studio/web/assets/json.worker-CSi2hF-a.js +0 -65
  295. package/studio/web/assets/notifications-BeWcX04m.js +0 -1
  296. package/studio/web/assets/notifications-DUGWrWoO.js +0 -1
  297. package/studio/web/assets/profile-BvUEDBzW.js +0 -1
  298. package/studio/web/assets/railroad-abnf-HS5TGJTU-CLMVZvH0.js +0 -1
  299. package/studio/web/assets/railroad-ebnf-LZEXJU2U--tlwFoVB.js +0 -1
  300. package/studio/web/assets/railroad-peg-WCYAUIDC-Dpuslblm.js +0 -1
  301. package/studio/web/assets/regions-CB-_2m7M.js +0 -1
  302. package/studio/web/assets/register-1w1Zr3b2.js +0 -848
  303. package/studio/web/assets/register-jjEx9u7D.css +0 -1
  304. package/studio/web/assets/setLocalStorage-D_kflv4U.js +0 -1
  305. package/studio/web/assets/status-CI0wOdOE.js +0 -61
  306. package/studio/web/assets/swimlanesDiagram-TC7HE7FX-BBk4t4hO.js +0 -8
  307. package/studio/web/assets/tabs-CnQ_zenf.js +0 -1
  308. package/studio/web/assets/toggleHighContrast--ixms01u.css +0 -1
  309. package/studio/web/assets/toggleHighContrast-BsAE4jPe.js +0 -49
  310. package/studio/web/assets/useLocalStorage-BYoZF60G.js +0 -1
  311. package/studio/web/assets/vendor-datadog-fCQhBHGk.js +0 -6
  312. package/studio/web/assets/vendor-tanstack-CQ1aRjVa.js +0 -2
  313. package/studio/web/assets/vendor-ui-aE1tHcW7.js +0 -41
  314. package/studio/web/assets/x-vYntCxm4.js +0 -1
@@ -3,16 +3,19 @@
3
3
  * tables through the interface defined by the Resource class. This module is responsible for handling these
4
4
  * table-level interactions, loading records, updating records, querying, and more.
5
5
  */
6
- import { type Database } from 'lmdb';
7
- import type { ResourceInterface, SubscriptionRequest, Id, Context, Sort, SubSelect, RequestTargetOrId } from './ResourceInterface.ts';
6
+ import { type Database, type Transaction as LMDBReadTransaction } from 'lmdb';
7
+ import type { ResourceInterface, SubscriptionRequest, Id, Context, Sort, SubSelect, RequestTargetOrId, Query, SourceContext } from './ResourceInterface.ts';
8
8
  import type { User } from '../security/user.ts';
9
- import { type WriteGeneration } from './DatabaseTransaction.ts';
10
- import { type RecordLockHandle, type RecordLockOptions } from './recordLock.ts';
9
+ import type { IterableEventQueue } from './IterableEventQueue.ts';
10
+ import type { Contract, SchemaClass } from './defineResource.ts';
11
+ import { type WriteGeneration, type Transaction as DatabaseTransactionRecord } from './DatabaseTransaction.ts';
12
+ import { type RecordLockOptions } from './recordLock.ts';
11
13
  import { ASSERT_TRACKED_WRITABLE, GET_TRACKED_WRITE_GENERATION } from './tracked.ts';
12
14
  import { LockCoordinator, type LockControlEntry } from './recordLockCoordinator.ts';
13
15
  import { type EmbedAttribute, type Embedder } from './models/embedHook.ts';
14
16
  import { type DecideAttribute, type DecideConfig, type Decider } from './models/decideHook.ts';
15
17
  import { RecordObject, type Entry, type StructureCounts } from './RecordEncoder.ts';
18
+ import { type StorageSpaceStats } from '../server/storageReclamation.ts';
16
19
  import { RequestTarget } from './RequestTarget.ts';
17
20
  import { RocksDatabase, Transaction as RocksTransaction } from '@harperfast/rocksdb-js';
18
21
  import { type JsonSchemaFragment } from './jsonSchemaTypes.ts';
@@ -81,135 +84,112 @@ export interface Table {
81
84
  hidden?: boolean;
82
85
  }
83
86
  type ResidencyDefinition = number | string[] | void;
84
- export declare function makeTable(options: any): {
85
- new <Record extends object = any>(identifier: Id, source: any): {
86
- "__#private@#record": any;
87
- "__#private@#changes": any;
88
- "__#private@#version"?: number;
89
- "__#private@#entry"?: Entry;
90
- "__#private@#savingOperation"?: any;
91
- "__#private@#lockHandle"?: RecordLockHandle;
92
- "__#private@#lockWritable"?: boolean;
93
- "__#private@#writeGeneration"?: WriteGeneration;
94
- getProperty: (name: string) => any;
95
- /**
96
- * Shared guard: if this instance is lock-writable but the handle is gone (expired or
97
- * released), throw 409 before staging any write. Covers update/invalidate/relocate/delete
98
- * in addition to the save() path. Every lock-writable instance carries its own handle in
99
- * #lockHandle (scoped and hold alike), so we never need to search the registry here.
100
- */
101
- "__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
102
- _loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
103
- /**
104
- * This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
105
- * This will load from source if the current record is expired, missing, or invalidated.
106
- * @returns
107
- */
108
- ensureLoaded(): void | Promise<void>;
109
- /**
110
- * This retrieves the data of this resource.
111
- * @param target - If included, is an identifier/query that specifies the requested target to retrieve and query
112
- */
113
- get(target?: any): any;
114
- /**
115
- * Determine if the user is allowed to get/read data from the current resource
116
- * @deprecated Override the resource operation for application-specific authorization.
117
- */
118
- allowRead(user: User, target: RequestTarget, context: Context): boolean;
119
- /**
120
- * Determine if the user is allowed to update data from the current resource
121
- * @deprecated Override the resource operation for application-specific authorization.
122
- */
123
- allowUpdate(user: User, updatedData: Record, context: Context): boolean;
124
- /**
125
- * Determine if the user is allowed to create new data in the current resource
126
- * @deprecated Override the resource operation for application-specific authorization.
127
- */
128
- allowCreate(user: User, newData: Record, context: Context): boolean;
129
- /**
130
- * Determine if the user is allowed to delete from the current resource
131
- * @deprecated Override the resource operation for application-specific authorization.
132
- */
133
- allowDelete(user: User, target: RequestTarget, context: Context): boolean;
134
- /**
135
- * Start updating a record. The returned resource will record changes which are written
136
- * once the corresponding transaction is committed. These changes can (eventually) include CRDT type operations.
137
- */
138
- update(updates: Record & RecordObject, fullUpdate: true): any;
139
- update(updates: Partial<Record & RecordObject>, target?: RequestTarget): any;
140
- update(target: RequestTarget, updates?: any): any;
141
- /**
142
- * Save any changes into this instance to the current transaction
143
- */
144
- save(): any;
145
- "__#private@#saveOperation"(operation: any): any;
146
- "__#private@#closeWriteChain"(operation: any): void;
147
- addTo(property: any, value: any): void;
148
- subtractFrom(property: any, value: any): void;
149
- getMetadata(): Entry;
150
- getRecord(): any;
151
- getChanges(): any;
152
- _setChanges(changes: any): void;
153
- setRecord(record: any): void;
154
- invalidate(target: RequestTargetOrId): void | Promise<void>;
155
- _writeInvalidate(id: Id, partialRecord?: any, options?: any): void;
156
- _writeRelocate(id: Id, options: any): void;
157
- /**
158
- * Acquire an exclusive lock on this record (or on `target`'s) and return it ready for updates
159
- * (harper#483, Phase 0: exclusive across every worker thread of this node). The lock is held
160
- * in process memory only — no durable writes. Phase 0 contract: lock() is mutually exclusive
161
- * with other lock() calls on the same key; plain writes (put/patch/delete/create) are never
162
- * gated or blocked. The generation expires after `lease` if it is never released.
163
- *
164
- * Transaction-scoped (default): write through the returned record (or the table's static verbs
165
- * in the same transaction), and the commit or abort releases it. `{ hold: true }`: the lock
166
- * outlives the transaction; write through the returned record and release with `unlock()`, or
167
- * let the lease expire.
168
- */
169
- lock(target?: RequestTargetOrId | RecordLockOptions, options?: RecordLockOptions): Promise<any>;
170
- "__#private@#reloadLocked"(id: Id, holdHandle?: RecordLockHandle | null, preserveChanges?: boolean): any;
171
- /**
172
- * Release the lock this instance holds. Resolves true when this call cleared the native key lock.
173
- * Works for both held (`{ hold: true }`) and transaction-scoped locks. After unlock() the
174
- * instance is no longer lock-writable; writes through it require a fresh lock.
175
- */
176
- unlock(): Promise<boolean>;
177
- /**
178
- * Store the provided record data into the current resource. This is not written
179
- * until the corresponding transaction is committed.
180
- */
181
- put(target: RequestTarget, record: Record & RecordObject): void | (Record & Partial<RecordObject>) | Promise<void | (Record & Partial<RecordObject>)>;
182
- create(target: RequestTargetOrId, record: Partial<Record & RecordObject>): void | (Record & Partial<RecordObject>) | Promise<Record & Partial<RecordObject>>;
183
- patch(target: RequestTarget, recordUpdate: Partial<Record & RecordObject>): void | (Record & Partial<RecordObject>) | Promise<void | (Record & Partial<RecordObject>)>;
184
- _writeUpdate(id: Id, recordUpdate: any, fullUpdate: boolean, options?: any): any;
185
- delete(target: RequestTargetOrId): Promise<boolean>;
186
- _writeDelete(id: Id, options?: any): boolean;
187
- search(target: RequestTarget): AsyncIterable<Record & Partial<RecordObject>>;
188
- subscribe(request: SubscriptionRequest): Promise<AsyncIterable<Record>>;
189
- doesExist(): boolean;
190
- /**
191
- * Publishing a message to a record adds an (observable) entry in the audit log, but does not change
192
- * the record at all. This entries should be replicated and trigger subscription listeners.
193
- * @param id
194
- * @param message
195
- * @param options
196
- */
197
- publish(target: RequestTarget, message: Record, options?: any): void | Promise<void>;
198
- _writePublish(id: Id, message: any, options?: any): void;
199
- validate(record: any, patch?: boolean): void;
200
- getUpdatedTime(): number;
201
- [ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
202
- [GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
203
- readonly "__#private@#id": Id;
204
- readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
205
- "__#private@#isCollection": boolean;
206
- post(target: RequestTargetOrId, newRecord: Partial<Record & RecordObject>): Promise<Record & Partial<RecordObject>>;
207
- get isCollection(): boolean;
208
- connect(target: RequestTarget, incomingMessages: import("./IterableEventQueue.ts").IterableEventQueue<Record>): AsyncIterable<Record> | Promise<AsyncIterable<Record>>;
209
- getId(): Id;
210
- getContext(): Context | import("./ResourceInterface.ts").SourceContext;
211
- getCurrentUser(): User | undefined;
212
- };
87
+ interface TableResourceInstance<Record extends object = any> {
88
+ getProperty: (name: string) => any;
89
+ _loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise<TableResourceInstance<Record>>;
90
+ /**
91
+ * This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
92
+ * This will load from source if the current record is expired, missing, or invalidated.
93
+ */
94
+ ensureLoaded(): void | Promise<void>;
95
+ /**
96
+ * This retrieves the data of this resource.
97
+ * @param target - If included, is an identifier/query that specifies the requested target to retrieve and query
98
+ */
99
+ get(target?: any): any;
100
+ /**
101
+ * Determine if the user is allowed to get/read data from the current resource
102
+ * @deprecated Override the resource operation for application-specific authorization.
103
+ */
104
+ allowRead(user: User, target: RequestTarget, context: Context): boolean;
105
+ /**
106
+ * Determine if the user is allowed to update data from the current resource
107
+ * @deprecated Override the resource operation for application-specific authorization.
108
+ */
109
+ allowUpdate(user: User, updatedData: Record, context: Context): boolean;
110
+ /**
111
+ * Determine if the user is allowed to create new data in the current resource
112
+ * @deprecated Override the resource operation for application-specific authorization.
113
+ */
114
+ allowCreate(user: User, newData: Record, context: Context): boolean;
115
+ /**
116
+ * Determine if the user is allowed to delete from the current resource
117
+ * @deprecated Override the resource operation for application-specific authorization.
118
+ */
119
+ allowDelete(user: User, target: RequestTarget, context: Context): boolean;
120
+ /**
121
+ * Start updating a record. The returned resource will record changes which are written
122
+ * once the corresponding transaction is committed. These changes can (eventually) include CRDT type operations.
123
+ */
124
+ update(updates: Record & RecordObject, fullUpdate: true): any;
125
+ update(updates: Partial<Record & RecordObject>, target?: RequestTarget): any;
126
+ update(target: RequestTarget, updates?: any): any;
127
+ /**
128
+ * Save any changes into this instance to the current transaction
129
+ */
130
+ save(): any;
131
+ addTo(property: any, value: any): void;
132
+ subtractFrom(property: any, value: any): void;
133
+ getMetadata(): Entry;
134
+ getRecord(): any;
135
+ getChanges(): any;
136
+ _setChanges(changes: any): void;
137
+ setRecord(record: any): void;
138
+ invalidate(target: RequestTargetOrId): void | Promise<void>;
139
+ _writeInvalidate(id: Id, partialRecord?: any, options?: any): void;
140
+ _writeRelocate(id: Id, options: any): void;
141
+ /**
142
+ * Acquire an exclusive lock on this record (or on `target`'s) and return it ready for updates
143
+ * (harper#483, Phase 0: exclusive across every worker thread of this node). The lock is held
144
+ * in process memory only — no durable writes. Phase 0 contract: lock() is mutually exclusive
145
+ * with other lock() calls on the same key; plain writes (put/patch/delete/create) are never
146
+ * gated or blocked. The generation expires after `lease` if it is never released.
147
+ *
148
+ * Transaction-scoped (default): write through the returned record (or the table's static verbs
149
+ * in the same transaction), and the commit or abort releases it. `{ hold: true }`: the lock
150
+ * outlives the transaction; write through the returned record and release with `unlock()`, or
151
+ * let the lease expire.
152
+ */
153
+ lock(target?: RequestTargetOrId | RecordLockOptions, options?: RecordLockOptions): Promise<any>;
154
+ /**
155
+ * Release the lock this instance holds. Resolves true when this call cleared the native key lock.
156
+ * Works for both held (`{ hold: true }`) and transaction-scoped locks. After unlock() the
157
+ * instance is no longer lock-writable; writes through it require a fresh lock.
158
+ */
159
+ unlock(): Promise<boolean>;
160
+ /**
161
+ * Store the provided record data into the current resource. This is not written
162
+ * until the corresponding transaction is committed.
163
+ */
164
+ put(target: RequestTarget, record: Record & RecordObject): void | (Record & Partial<RecordObject>) | Promise<void | (Record & Partial<RecordObject>)>;
165
+ create(target: RequestTargetOrId, record: Partial<Record & RecordObject>): void | (Record & Partial<RecordObject>) | Promise<Record & Partial<RecordObject>>;
166
+ patch(target: RequestTarget, recordUpdate: Partial<Record & RecordObject>): void | (Record & Partial<RecordObject>) | Promise<void | (Record & Partial<RecordObject>)>;
167
+ _writeUpdate(id: Id, recordUpdate: any, fullUpdate: boolean, options?: any): any;
168
+ delete(target: RequestTargetOrId): Promise<boolean>;
169
+ _writeDelete(id: Id, options?: any): boolean;
170
+ search(target: RequestTarget): AsyncIterable<Record & Partial<RecordObject>>;
171
+ subscribe(request: SubscriptionRequest): Promise<AsyncIterable<Record>>;
172
+ doesExist(): boolean;
173
+ /**
174
+ * Publishing a message to a record adds an (observable) entry in the audit log, but does not change
175
+ * the record at all. This entries should be replicated and trigger subscription listeners.
176
+ */
177
+ publish(target: RequestTarget, message: Record, options?: any): void | Promise<void>;
178
+ _writePublish(id: Id, message: any, options?: any): void;
179
+ validate(record: any, patch?: boolean): void;
180
+ getUpdatedTime(): number;
181
+ [ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
182
+ [GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
183
+ post(target: RequestTargetOrId, newRecord: Partial<Record & RecordObject>): Promise<Record & Partial<RecordObject>>;
184
+ get isCollection(): boolean;
185
+ connect(target: RequestTarget, incomingMessages: IterableEventQueue<Record>): AsyncIterable<Record> | Promise<AsyncIterable<Record>>;
186
+ getId(): Id;
187
+ getContext(): Context | SourceContext;
188
+ getCurrentUser(): User | undefined;
189
+ }
190
+ interface TableResourceClass {
191
+ new <Record extends object = any>(identifier: Id, source: any): TableResourceInstance<Record>;
192
+ prototype: TableResourceInstance;
213
193
  name: any;
214
194
  primaryStore: any;
215
195
  storageGeneration: any;
@@ -222,19 +202,23 @@ export declare function makeTable(options: any): {
222
202
  close(dropping?: boolean): Promise<void>;
223
203
  fullTextDefinitions?(): readonly FullTextDefinition[];
224
204
  matchesCurrent?(): boolean;
225
- restoreAfterFailedDrop?(): {
226
- close(dropping?: boolean): Promise<void>;
227
- fullTextDefinitions?(): readonly FullTextDefinition[];
228
- matchesCurrent?(): boolean;
229
- restoreAfterFailedDrop?(): /*elided*/ any;
230
- retireAfterConfirmedDrop?(definitions?: readonly Pick<FullTextDefinition, "name">[]): Promise<boolean>;
231
- completeDrop?(dropped?: boolean): void;
232
- };
233
- retireAfterConfirmedDrop?(definitions?: readonly Pick<FullTextDefinition, "name">[]): Promise<boolean>;
205
+ restoreAfterFailedDrop?(): TableResourceClass['derivedIndexRuntime'];
206
+ retireAfterConfirmedDrop?(definitions?: readonly Pick<FullTextDefinition, 'name'>[]): Promise<boolean>;
234
207
  completeDrop?(dropped?: boolean): void;
235
208
  } | undefined;
236
209
  audit: any;
237
210
  fullTextIndexes: FullTextDefinition[];
211
+ get fullTextFields(): readonly string[];
212
+ set fullTextFields(names: readonly string[]);
213
+ assertFullTextSelection(select: unknown, sort?: any): void;
214
+ assertFullTextRecordField(name: unknown): void;
215
+ isFullTextSearchEntryCurrent(entry: Entry): boolean;
216
+ fullTextQueryIndexes: {
217
+ [name: string]: {
218
+ customIndex: unknown;
219
+ };
220
+ };
221
+ hasFullTextQueryIndexes: boolean;
238
222
  fullTextIndexGenerations: FullTextIndexGenerations;
239
223
  fullTextIndexRetirements: string[];
240
224
  hasCurrentFullTextIndexRetirements(names: readonly string[]): boolean | Promise<boolean>;
@@ -272,7 +256,7 @@ export declare function makeTable(options: any): {
272
256
  };
273
257
  userSetDeciders: Set<string>;
274
258
  decideAttributes: DecideAttribute[];
275
- source?: /*elided*/ any;
259
+ source?: any;
276
260
  sourceOptions: any;
277
261
  intermediateSource: boolean;
278
262
  getResidencyById: (id: Id) => number | void;
@@ -284,11 +268,8 @@ export declare function makeTable(options: any): {
284
268
  * This defines a source for a table. This effectively makes a table into a cache, where the canonical
285
269
  * source of data (or source of truth) is provided here in the Resource argument. Additional options
286
270
  * can be provided to indicate how the caching should be handled.
287
- * @param source
288
- * @param options
289
- * @returns
290
271
  */
291
- sourcedFrom(source: any, options: any): /*elided*/ any;
272
+ sourcedFrom(source: any, options: any): any;
292
273
  get isCaching(): any;
293
274
  /** Indicates if the events should be revalidated when they are received. By default we do this if the get
294
275
  * method is overriden */
@@ -296,266 +277,9 @@ export declare function makeTable(options: any): {
296
277
  /**
297
278
  * Gets a resource instance, as defined by the Resource class, adding the table-specific handling
298
279
  * of also loading the stored record into the resource instance.
299
- * @param target
300
- * @param request
301
280
  * @param resourceOptions An important option is ensureLoaded, which can be used to indicate that it is necessary for a caching table to load data from the source if there is not a local copy of the data in the table (usually not necessary for a delete, for example).
302
- * @returns
303
- */
304
- getResource<Record extends object = any>(target: RequestTarget, request: Context, resourceOptions?: any): Promise<{
305
- "__#private@#record": any;
306
- "__#private@#changes": any;
307
- "__#private@#version"?: number;
308
- "__#private@#entry"?: Entry;
309
- "__#private@#savingOperation"?: any;
310
- "__#private@#lockHandle"?: RecordLockHandle;
311
- "__#private@#lockWritable"?: boolean;
312
- "__#private@#writeGeneration"?: WriteGeneration;
313
- getProperty: (name: string) => any;
314
- /**
315
- * Shared guard: if this instance is lock-writable but the handle is gone (expired or
316
- * released), throw 409 before staging any write. Covers update/invalidate/relocate/delete
317
- * in addition to the save() path. Every lock-writable instance carries its own handle in
318
- * #lockHandle (scoped and hold alike), so we never need to search the registry here.
319
- */
320
- "__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
321
- _loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
322
- /**
323
- * This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
324
- * This will load from source if the current record is expired, missing, or invalidated.
325
- * @returns
326
- */
327
- ensureLoaded(): void | Promise<void>;
328
- /**
329
- * This retrieves the data of this resource.
330
- * @param target - If included, is an identifier/query that specifies the requested target to retrieve and query
331
- */
332
- get(target?: any): any;
333
- /**
334
- * Determine if the user is allowed to get/read data from the current resource
335
- * @deprecated Override the resource operation for application-specific authorization.
336
- */
337
- allowRead(user: User, target: RequestTarget, context: Context): boolean;
338
- /**
339
- * Determine if the user is allowed to update data from the current resource
340
- * @deprecated Override the resource operation for application-specific authorization.
341
- */
342
- allowUpdate(user: User, updatedData: Record, context: Context): boolean;
343
- /**
344
- * Determine if the user is allowed to create new data in the current resource
345
- * @deprecated Override the resource operation for application-specific authorization.
346
- */
347
- allowCreate(user: User, newData: Record, context: Context): boolean;
348
- /**
349
- * Determine if the user is allowed to delete from the current resource
350
- * @deprecated Override the resource operation for application-specific authorization.
351
- */
352
- allowDelete(user: User, target: RequestTarget, context: Context): boolean;
353
- /**
354
- * Start updating a record. The returned resource will record changes which are written
355
- * once the corresponding transaction is committed. These changes can (eventually) include CRDT type operations.
356
- */
357
- update(updates: Record & RecordObject, fullUpdate: true): any;
358
- update(updates: Partial<Record & RecordObject>, target?: RequestTarget): any;
359
- update(target: RequestTarget, updates?: any): any;
360
- /**
361
- * Save any changes into this instance to the current transaction
362
- */
363
- save(): any;
364
- "__#private@#saveOperation"(operation: any): any;
365
- "__#private@#closeWriteChain"(operation: any): void;
366
- addTo(property: any, value: any): void;
367
- subtractFrom(property: any, value: any): void;
368
- getMetadata(): Entry;
369
- getRecord(): any;
370
- getChanges(): any;
371
- _setChanges(changes: any): void;
372
- setRecord(record: any): void;
373
- invalidate(target: RequestTargetOrId): void | Promise<void>;
374
- _writeInvalidate(id: Id, partialRecord?: any, options?: any): void;
375
- _writeRelocate(id: Id, options: any): void;
376
- /**
377
- * Acquire an exclusive lock on this record (or on `target`'s) and return it ready for updates
378
- * (harper#483, Phase 0: exclusive across every worker thread of this node). The lock is held
379
- * in process memory only — no durable writes. Phase 0 contract: lock() is mutually exclusive
380
- * with other lock() calls on the same key; plain writes (put/patch/delete/create) are never
381
- * gated or blocked. The generation expires after `lease` if it is never released.
382
- *
383
- * Transaction-scoped (default): write through the returned record (or the table's static verbs
384
- * in the same transaction), and the commit or abort releases it. `{ hold: true }`: the lock
385
- * outlives the transaction; write through the returned record and release with `unlock()`, or
386
- * let the lease expire.
387
- */
388
- lock(target?: RequestTargetOrId | RecordLockOptions, options?: RecordLockOptions): Promise<any>;
389
- "__#private@#reloadLocked"(id: Id, holdHandle?: RecordLockHandle | null, preserveChanges?: boolean): any;
390
- /**
391
- * Release the lock this instance holds. Resolves true when this call cleared the native key lock.
392
- * Works for both held (`{ hold: true }`) and transaction-scoped locks. After unlock() the
393
- * instance is no longer lock-writable; writes through it require a fresh lock.
394
- */
395
- unlock(): Promise<boolean>;
396
- /**
397
- * Store the provided record data into the current resource. This is not written
398
- * until the corresponding transaction is committed.
399
- */
400
- put(target: RequestTarget, record: Record & RecordObject): void | (Record & Partial<RecordObject>) | Promise<void | (Record & Partial<RecordObject>)>;
401
- create(target: RequestTargetOrId, record: Partial<Record & RecordObject>): void | (Record & Partial<RecordObject>) | Promise<Record & Partial<RecordObject>>;
402
- patch(target: RequestTarget, recordUpdate: Partial<Record & RecordObject>): void | (Record & Partial<RecordObject>) | Promise<void | (Record & Partial<RecordObject>)>;
403
- _writeUpdate(id: Id, recordUpdate: any, fullUpdate: boolean, options?: any): any;
404
- delete(target: RequestTargetOrId): Promise<boolean>;
405
- _writeDelete(id: Id, options?: any): boolean;
406
- search(target: RequestTarget): AsyncIterable<Record & Partial<RecordObject>>;
407
- subscribe(request: SubscriptionRequest): Promise<AsyncIterable<Record>>;
408
- doesExist(): boolean;
409
- /**
410
- * Publishing a message to a record adds an (observable) entry in the audit log, but does not change
411
- * the record at all. This entries should be replicated and trigger subscription listeners.
412
- * @param id
413
- * @param message
414
- * @param options
415
- */
416
- publish(target: RequestTarget, message: Record, options?: any): void | Promise<void>;
417
- _writePublish(id: Id, message: any, options?: any): void;
418
- validate(record: any, patch?: boolean): void;
419
- getUpdatedTime(): number;
420
- [ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
421
- [GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
422
- readonly "__#private@#id": Id;
423
- readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
424
- "__#private@#isCollection": boolean;
425
- post(target: RequestTargetOrId, newRecord: Partial<Record & RecordObject>): Promise<Record & Partial<RecordObject>>;
426
- get isCollection(): boolean;
427
- connect(target: RequestTarget, incomingMessages: import("./IterableEventQueue.ts").IterableEventQueue<Record>): AsyncIterable<Record> | Promise<AsyncIterable<Record>>;
428
- getId(): Id;
429
- getContext(): Context | import("./ResourceInterface.ts").SourceContext;
430
- getCurrentUser(): User | undefined;
431
- }> | {
432
- "__#private@#record": any;
433
- "__#private@#changes": any;
434
- "__#private@#version"?: number;
435
- "__#private@#entry"?: Entry;
436
- "__#private@#savingOperation"?: any;
437
- "__#private@#lockHandle"?: RecordLockHandle;
438
- "__#private@#lockWritable"?: boolean;
439
- "__#private@#writeGeneration"?: WriteGeneration;
440
- getProperty: (name: string) => any;
441
- /**
442
- * Shared guard: if this instance is lock-writable but the handle is gone (expired or
443
- * released), throw 409 before staging any write. Covers update/invalidate/relocate/delete
444
- * in addition to the save() path. Every lock-writable instance carries its own handle in
445
- * #lockHandle (scoped and hold alike), so we never need to search the registry here.
446
- */
447
- "__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
448
- _loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
449
- /**
450
- * This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
451
- * This will load from source if the current record is expired, missing, or invalidated.
452
- * @returns
453
- */
454
- ensureLoaded(): void | Promise<void>;
455
- /**
456
- * This retrieves the data of this resource.
457
- * @param target - If included, is an identifier/query that specifies the requested target to retrieve and query
458
- */
459
- get(target?: any): any;
460
- /**
461
- * Determine if the user is allowed to get/read data from the current resource
462
- * @deprecated Override the resource operation for application-specific authorization.
463
- */
464
- allowRead(user: User, target: RequestTarget, context: Context): boolean;
465
- /**
466
- * Determine if the user is allowed to update data from the current resource
467
- * @deprecated Override the resource operation for application-specific authorization.
468
- */
469
- allowUpdate(user: User, updatedData: Record, context: Context): boolean;
470
- /**
471
- * Determine if the user is allowed to create new data in the current resource
472
- * @deprecated Override the resource operation for application-specific authorization.
473
- */
474
- allowCreate(user: User, newData: Record, context: Context): boolean;
475
- /**
476
- * Determine if the user is allowed to delete from the current resource
477
- * @deprecated Override the resource operation for application-specific authorization.
478
- */
479
- allowDelete(user: User, target: RequestTarget, context: Context): boolean;
480
- /**
481
- * Start updating a record. The returned resource will record changes which are written
482
- * once the corresponding transaction is committed. These changes can (eventually) include CRDT type operations.
483
- */
484
- update(updates: Record & RecordObject, fullUpdate: true): any;
485
- update(updates: Partial<Record & RecordObject>, target?: RequestTarget): any;
486
- update(target: RequestTarget, updates?: any): any;
487
- /**
488
- * Save any changes into this instance to the current transaction
489
- */
490
- save(): any;
491
- "__#private@#saveOperation"(operation: any): any;
492
- "__#private@#closeWriteChain"(operation: any): void;
493
- addTo(property: any, value: any): void;
494
- subtractFrom(property: any, value: any): void;
495
- getMetadata(): Entry;
496
- getRecord(): any;
497
- getChanges(): any;
498
- _setChanges(changes: any): void;
499
- setRecord(record: any): void;
500
- invalidate(target: RequestTargetOrId): void | Promise<void>;
501
- _writeInvalidate(id: Id, partialRecord?: any, options?: any): void;
502
- _writeRelocate(id: Id, options: any): void;
503
- /**
504
- * Acquire an exclusive lock on this record (or on `target`'s) and return it ready for updates
505
- * (harper#483, Phase 0: exclusive across every worker thread of this node). The lock is held
506
- * in process memory only — no durable writes. Phase 0 contract: lock() is mutually exclusive
507
- * with other lock() calls on the same key; plain writes (put/patch/delete/create) are never
508
- * gated or blocked. The generation expires after `lease` if it is never released.
509
- *
510
- * Transaction-scoped (default): write through the returned record (or the table's static verbs
511
- * in the same transaction), and the commit or abort releases it. `{ hold: true }`: the lock
512
- * outlives the transaction; write through the returned record and release with `unlock()`, or
513
- * let the lease expire.
514
- */
515
- lock(target?: RequestTargetOrId | RecordLockOptions, options?: RecordLockOptions): Promise<any>;
516
- "__#private@#reloadLocked"(id: Id, holdHandle?: RecordLockHandle | null, preserveChanges?: boolean): any;
517
- /**
518
- * Release the lock this instance holds. Resolves true when this call cleared the native key lock.
519
- * Works for both held (`{ hold: true }`) and transaction-scoped locks. After unlock() the
520
- * instance is no longer lock-writable; writes through it require a fresh lock.
521
- */
522
- unlock(): Promise<boolean>;
523
- /**
524
- * Store the provided record data into the current resource. This is not written
525
- * until the corresponding transaction is committed.
526
- */
527
- put(target: RequestTarget, record: Record & RecordObject): void | (Record & Partial<RecordObject>) | Promise<void | (Record & Partial<RecordObject>)>;
528
- create(target: RequestTargetOrId, record: Partial<Record & RecordObject>): void | (Record & Partial<RecordObject>) | Promise<Record & Partial<RecordObject>>;
529
- patch(target: RequestTarget, recordUpdate: Partial<Record & RecordObject>): void | (Record & Partial<RecordObject>) | Promise<void | (Record & Partial<RecordObject>)>;
530
- _writeUpdate(id: Id, recordUpdate: any, fullUpdate: boolean, options?: any): any;
531
- delete(target: RequestTargetOrId): Promise<boolean>;
532
- _writeDelete(id: Id, options?: any): boolean;
533
- search(target: RequestTarget): AsyncIterable<Record & Partial<RecordObject>>;
534
- subscribe(request: SubscriptionRequest): Promise<AsyncIterable<Record>>;
535
- doesExist(): boolean;
536
- /**
537
- * Publishing a message to a record adds an (observable) entry in the audit log, but does not change
538
- * the record at all. This entries should be replicated and trigger subscription listeners.
539
- * @param id
540
- * @param message
541
- * @param options
542
- */
543
- publish(target: RequestTarget, message: Record, options?: any): void | Promise<void>;
544
- _writePublish(id: Id, message: any, options?: any): void;
545
- validate(record: any, patch?: boolean): void;
546
- getUpdatedTime(): number;
547
- [ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
548
- [GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
549
- readonly "__#private@#id": Id;
550
- readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
551
- "__#private@#isCollection": boolean;
552
- post(target: RequestTargetOrId, newRecord: Partial<Record & RecordObject>): Promise<Record & Partial<RecordObject>>;
553
- get isCollection(): boolean;
554
- connect(target: RequestTarget, incomingMessages: import("./IterableEventQueue.ts").IterableEventQueue<Record>): AsyncIterable<Record> | Promise<AsyncIterable<Record>>;
555
- getId(): Id;
556
- getContext(): Context | import("./ResourceInterface.ts").SourceContext;
557
- getCurrentUser(): User | undefined;
558
- };
281
+ */
282
+ getResource<Record extends object = any>(target: RequestTarget, request: Context, resourceOptions?: any): Promise<TableResourceInstance<Record>> | TableResourceInstance<Record>;
559
283
  _updateResource(resource: any, entry: any): void;
560
284
  getNewId(): any;
561
285
  /**
@@ -583,8 +307,6 @@ export declare function makeTable(options: any): {
583
307
  enableAuditing(): void;
584
308
  /**
585
309
  * Coerce the id as a string to the correct type for the primary key
586
- * @param id
587
- * @returns
588
310
  */
589
311
  coerceId(id: string): number | string;
590
312
  /**
@@ -598,8 +320,6 @@ export declare function makeTable(options: any): {
598
320
  dropTable(): Promise<void>;
599
321
  /**
600
322
  * Record the relocation of an entry (when a record is moved to a different node), return true if it is now located locally
601
- * @param existingEntry
602
- * @param entry
603
323
  */
604
324
  _recordRelocate(existingEntry: any, entry: any): boolean;
605
325
  /**
@@ -620,34 +340,20 @@ export declare function makeTable(options: any): {
620
340
  operation(operation: any, context: any): any;
621
341
  /**
622
342
  * This is responsible for ordering and select()ing the attributes/properties from returned entries
623
- * @param select
624
- * @param context
625
- * @param filtered
626
- * @param ensure_loaded
627
- * @param canSkip
628
- * @returns
629
343
  */
630
344
  transformToOrderedSelect(entries: any[], select: (string | SubSelect)[], sort: Sort, context: Context, readTxn: any, transformToRecord: Function): any;
631
345
  /**
632
346
  * This is responsible for select()ing the attributes/properties from returned entries
633
- * @param select
634
- * @param context
635
- * @param filtered
636
- * @param ensure_loaded
637
- * @param canSkip
638
347
  * @param rowFilter explicit row predicate applied to the record actually being
639
348
  * returned — i.e. AFTER any caching-source revalidation replaces a stale local copy — so an
640
349
  * authorization verdict can't be made on bytes that differ from what the caller receives.
641
350
  * @param includeExpired when true, a row past its TTL but not yet swept is treated as a live
642
351
  * match rather than gone (used by the SQL engine's UPDATE/DELETE row-finder).
643
352
  * @param sort post-ordering owned by this selection
644
- * @returns
645
353
  */
646
354
  transformEntryForSelect(select: any, context: any, readTxn: any, filtered: any, ensure_loaded?: any, canSkip?: any, rowFilter?: any, includeExpired?: any, sort?: any): (entry: Entry) => any;
647
355
  /**
648
356
  * Subscribe on one thread unless this is a per-thread subscription
649
- * @param workerIndex
650
- * @param options
651
357
  */
652
358
  subscribeOnThisThread(workerIndex: any, options: any): boolean;
653
359
  /**
@@ -689,7 +395,6 @@ export declare function makeTable(options: any): {
689
395
  removeAttributes(names: string[]): Promise<any>;
690
396
  /**
691
397
  * Get the size of the table in bytes (based on amount of pages stored in the database)
692
- * @param options
693
398
  */
694
399
  getSize(): number;
695
400
  /** Sizes of this table's durable record-structure dictionaries. */
@@ -700,7 +405,7 @@ export declare function makeTable(options: any): {
700
405
  * this may need to read quota-status.json (#1976); getSize/getAuditSize stay sync because
701
406
  * they only read in-memory store stats.
702
407
  */
703
- getStorageStats(): Promise<import("../server/storageReclamation.ts").StorageSpaceStats>;
408
+ getStorageStats(): Promise<StorageSpaceStats>;
704
409
  getRecordCount(options?: any): Promise<{
705
410
  recordCount: number;
706
411
  estimatedRange?: undefined;
@@ -744,88 +449,89 @@ export declare function makeTable(options: any): {
744
449
  cleanup(): void;
745
450
  closeMaintenance(deadline?: number): Promise<void>;
746
451
  resumeMaintenance(): void;
747
- _readTxnForContext(context: any): (import("lmdb").Transaction | RocksTransaction) & {
452
+ _readTxnForContext(context: any): (LMDBReadTransaction | RocksTransaction) & {
748
453
  openTimer?: number;
749
454
  retryRisk?: number;
750
455
  isDone?: boolean;
751
456
  isCommitted?: boolean;
752
457
  };
753
- transactions: import("./DatabaseTransaction.ts").Transaction[] & {
458
+ transactions: DatabaseTransactionRecord[] & {
754
459
  timestamp: number;
755
460
  };
756
461
  path?: string;
757
462
  directURLMapping: boolean;
758
463
  loadAsInstance: boolean;
759
- requestContract?: import("./defineResource.ts").Contract;
464
+ requestContract?: Contract;
760
465
  inputSchemas?: {
761
466
  [verb: string]: {
762
467
  query?: JsonSchemaFragment;
763
468
  body?: JsonSchemaFragment;
764
469
  };
765
470
  };
766
- withSchema<Base extends new (...args: any[]) => any, const C extends import("./defineResource.ts").Contract>(this: Base, contract: C): import("./defineResource.ts").SchemaClass<Base, C>;
471
+ withSchema<Base extends new (...args: any[]) => any, const C extends Contract>(this: Base, contract: C): SchemaClass<Base, C>;
767
472
  get: {
768
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
473
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
769
474
  reliesOnPrototype: boolean;
770
475
  };
771
476
  put: {
772
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
477
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
773
478
  reliesOnPrototype: boolean;
774
479
  };
775
480
  patch: {
776
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
481
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
777
482
  reliesOnPrototype: boolean;
778
483
  };
779
484
  delete: {
780
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
485
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
781
486
  reliesOnPrototype: boolean;
782
487
  };
783
488
  create(idPrefix: Id, record: any, context: Context): Promise<Id>;
784
489
  create(record: any, context: Context): Promise<Id>;
785
490
  invalidate: {
786
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
491
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
787
492
  reliesOnPrototype: boolean;
788
493
  };
789
494
  post: {
790
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
495
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
791
496
  reliesOnPrototype: boolean;
792
497
  };
793
498
  update: {
794
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
499
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
795
500
  reliesOnPrototype: boolean;
796
501
  };
797
502
  connect: {
798
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
503
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
799
504
  reliesOnPrototype: boolean;
800
505
  };
801
506
  subscribe: {
802
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
507
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
803
508
  reliesOnPrototype: boolean;
804
509
  };
805
510
  publish: {
806
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
511
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
807
512
  reliesOnPrototype: boolean;
808
513
  };
809
514
  search: {
810
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
515
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
811
516
  reliesOnPrototype: boolean;
812
517
  };
813
518
  query: {
814
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
519
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
815
520
  reliesOnPrototype: boolean;
816
521
  };
817
522
  copy: {
818
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
523
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
819
524
  reliesOnPrototype: boolean;
820
525
  };
821
526
  move: {
822
- (idOrQuery: string | Id | import("./ResourceInterface.ts").Query, dataOrContext?: any, context?: Context): any;
527
+ (idOrQuery: string | Id | Query, dataOrContext?: any, context?: Context): any;
823
528
  reliesOnPrototype: boolean;
824
529
  };
825
530
  isCollection(resource: any): any;
826
531
  parseQuery(search: any, query: any): any;
827
532
  parsePath(path: any, context: any, query: any): any;
828
- };
533
+ }
534
+ export declare function makeTable(options: any): TableResourceClass;
829
535
  /**
830
536
  * Coerce a string to the type defined by the attribute
831
537
  * @param value