@milaboratories/pl-drivers 1.11.59 → 1.11.60

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 (330) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  2. package/dist/clients/constructors.cjs +28 -28
  3. package/dist/clients/constructors.cjs.map +1 -1
  4. package/dist/clients/constructors.d.ts +17 -13
  5. package/dist/clients/constructors.js +28 -26
  6. package/dist/clients/constructors.js.map +1 -1
  7. package/dist/clients/crc32c.cjs +8 -13
  8. package/dist/clients/crc32c.cjs.map +1 -1
  9. package/dist/clients/crc32c.js +8 -12
  10. package/dist/clients/crc32c.js.map +1 -1
  11. package/dist/clients/download.cjs +119 -160
  12. package/dist/clients/download.cjs.map +1 -1
  13. package/dist/clients/download.d.ts +45 -41
  14. package/dist/clients/download.js +115 -137
  15. package/dist/clients/download.js.map +1 -1
  16. package/dist/clients/logs.cjs +78 -82
  17. package/dist/clients/logs.cjs.map +1 -1
  18. package/dist/clients/logs.d.ts +34 -24
  19. package/dist/clients/logs.js +77 -80
  20. package/dist/clients/logs.js.map +1 -1
  21. package/dist/clients/ls_api.cjs +62 -68
  22. package/dist/clients/ls_api.cjs.map +1 -1
  23. package/dist/clients/ls_api.d.ts +15 -11
  24. package/dist/clients/ls_api.js +61 -66
  25. package/dist/clients/ls_api.js.map +1 -1
  26. package/dist/clients/progress.cjs +49 -59
  27. package/dist/clients/progress.cjs.map +1 -1
  28. package/dist/clients/progress.d.ts +27 -20
  29. package/dist/clients/progress.js +48 -57
  30. package/dist/clients/progress.js.map +1 -1
  31. package/dist/clients/upload.cjs +189 -250
  32. package/dist/clients/upload.cjs.map +1 -1
  33. package/dist/clients/upload.d.ts +44 -34
  34. package/dist/clients/upload.js +187 -229
  35. package/dist/clients/upload.js.map +1 -1
  36. package/dist/drivers/download_blob/blob_key.cjs +9 -26
  37. package/dist/drivers/download_blob/blob_key.cjs.map +1 -1
  38. package/dist/drivers/download_blob/blob_key.js +7 -5
  39. package/dist/drivers/download_blob/blob_key.js.map +1 -1
  40. package/dist/drivers/download_blob/download_blob.cjs +395 -478
  41. package/dist/drivers/download_blob/download_blob.cjs.map +1 -1
  42. package/dist/drivers/download_blob/download_blob.d.ts +102 -100
  43. package/dist/drivers/download_blob/download_blob.js +388 -453
  44. package/dist/drivers/download_blob/download_blob.js.map +1 -1
  45. package/dist/drivers/download_blob/download_blob_task.cjs +128 -163
  46. package/dist/drivers/download_blob/download_blob_task.cjs.map +1 -1
  47. package/dist/drivers/download_blob/download_blob_task.js +125 -141
  48. package/dist/drivers/download_blob/download_blob_task.js.map +1 -1
  49. package/dist/drivers/download_blob/sparse_cache/cache.cjs +166 -195
  50. package/dist/drivers/download_blob/sparse_cache/cache.cjs.map +1 -1
  51. package/dist/drivers/download_blob/sparse_cache/cache.js +164 -193
  52. package/dist/drivers/download_blob/sparse_cache/cache.js.map +1 -1
  53. package/dist/drivers/download_blob/sparse_cache/file.cjs +29 -50
  54. package/dist/drivers/download_blob/sparse_cache/file.cjs.map +1 -1
  55. package/dist/drivers/download_blob/sparse_cache/file.js +28 -29
  56. package/dist/drivers/download_blob/sparse_cache/file.js.map +1 -1
  57. package/dist/drivers/download_blob/sparse_cache/ranges.cjs +48 -76
  58. package/dist/drivers/download_blob/sparse_cache/ranges.cjs.map +1 -1
  59. package/dist/drivers/download_blob/sparse_cache/ranges.js +47 -54
  60. package/dist/drivers/download_blob/sparse_cache/ranges.js.map +1 -1
  61. package/dist/drivers/download_blob_url/driver.cjs +125 -165
  62. package/dist/drivers/download_blob_url/driver.cjs.map +1 -1
  63. package/dist/drivers/download_blob_url/driver.d.ts +45 -42
  64. package/dist/drivers/download_blob_url/driver.js +123 -144
  65. package/dist/drivers/download_blob_url/driver.js.map +1 -1
  66. package/dist/drivers/download_blob_url/driver_id.cjs +4 -4
  67. package/dist/drivers/download_blob_url/driver_id.cjs.map +1 -1
  68. package/dist/drivers/download_blob_url/driver_id.js +4 -3
  69. package/dist/drivers/download_blob_url/driver_id.js.map +1 -1
  70. package/dist/drivers/download_blob_url/snapshot.cjs +7 -11
  71. package/dist/drivers/download_blob_url/snapshot.cjs.map +1 -1
  72. package/dist/drivers/download_blob_url/snapshot.d.ts +10 -5
  73. package/dist/drivers/download_blob_url/snapshot.js +5 -8
  74. package/dist/drivers/download_blob_url/snapshot.js.map +1 -1
  75. package/dist/drivers/download_blob_url/task.cjs +147 -194
  76. package/dist/drivers/download_blob_url/task.cjs.map +1 -1
  77. package/dist/drivers/download_blob_url/task.d.ts +55 -57
  78. package/dist/drivers/download_blob_url/task.js +140 -170
  79. package/dist/drivers/download_blob_url/task.js.map +1 -1
  80. package/dist/drivers/download_url/driver.cjs +109 -146
  81. package/dist/drivers/download_url/driver.cjs.map +1 -1
  82. package/dist/drivers/download_url/driver.d.ts +59 -57
  83. package/dist/drivers/download_url/driver.js +107 -125
  84. package/dist/drivers/download_url/driver.js.map +1 -1
  85. package/dist/drivers/download_url/task.cjs +104 -137
  86. package/dist/drivers/download_url/task.cjs.map +1 -1
  87. package/dist/drivers/download_url/task.d.ts +33 -37
  88. package/dist/drivers/download_url/task.js +99 -113
  89. package/dist/drivers/download_url/task.js.map +1 -1
  90. package/dist/drivers/helpers/download_local_handle.cjs +13 -14
  91. package/dist/drivers/helpers/download_local_handle.cjs.map +1 -1
  92. package/dist/drivers/helpers/download_local_handle.js +13 -13
  93. package/dist/drivers/helpers/download_local_handle.js.map +1 -1
  94. package/dist/drivers/helpers/download_remote_handle.cjs +23 -24
  95. package/dist/drivers/helpers/download_remote_handle.cjs.map +1 -1
  96. package/dist/drivers/helpers/download_remote_handle.js +22 -22
  97. package/dist/drivers/helpers/download_remote_handle.js.map +1 -1
  98. package/dist/drivers/helpers/files_cache.cjs +53 -64
  99. package/dist/drivers/helpers/files_cache.cjs.map +1 -1
  100. package/dist/drivers/helpers/files_cache.js +52 -62
  101. package/dist/drivers/helpers/files_cache.js.map +1 -1
  102. package/dist/drivers/helpers/helpers.cjs +24 -28
  103. package/dist/drivers/helpers/helpers.cjs.map +1 -1
  104. package/dist/drivers/helpers/helpers.d.ts +10 -7
  105. package/dist/drivers/helpers/helpers.js +24 -27
  106. package/dist/drivers/helpers/helpers.js.map +1 -1
  107. package/dist/drivers/helpers/logs_handle.cjs +24 -33
  108. package/dist/drivers/helpers/logs_handle.cjs.map +1 -1
  109. package/dist/drivers/helpers/logs_handle.js +24 -29
  110. package/dist/drivers/helpers/logs_handle.js.map +1 -1
  111. package/dist/drivers/helpers/ls_remote_import_handle.cjs +20 -20
  112. package/dist/drivers/helpers/ls_remote_import_handle.cjs.map +1 -1
  113. package/dist/drivers/helpers/ls_remote_import_handle.js +20 -18
  114. package/dist/drivers/helpers/ls_remote_import_handle.js.map +1 -1
  115. package/dist/drivers/helpers/ls_storage_entry.cjs +36 -40
  116. package/dist/drivers/helpers/ls_storage_entry.cjs.map +1 -1
  117. package/dist/drivers/helpers/ls_storage_entry.js +36 -37
  118. package/dist/drivers/helpers/ls_storage_entry.js.map +1 -1
  119. package/dist/drivers/helpers/polling_ops.d.ts +6 -5
  120. package/dist/drivers/helpers/read_file.cjs +34 -57
  121. package/dist/drivers/helpers/read_file.cjs.map +1 -1
  122. package/dist/drivers/helpers/read_file.js +30 -34
  123. package/dist/drivers/helpers/read_file.js.map +1 -1
  124. package/dist/drivers/logs.cjs +94 -112
  125. package/dist/drivers/logs.cjs.map +1 -1
  126. package/dist/drivers/logs.d.ts +35 -32
  127. package/dist/drivers/logs.js +93 -110
  128. package/dist/drivers/logs.js.map +1 -1
  129. package/dist/drivers/logs_stream.cjs +210 -242
  130. package/dist/drivers/logs_stream.cjs.map +1 -1
  131. package/dist/drivers/logs_stream.d.ts +55 -53
  132. package/dist/drivers/logs_stream.js +209 -240
  133. package/dist/drivers/logs_stream.js.map +1 -1
  134. package/dist/drivers/ls.cjs +151 -238
  135. package/dist/drivers/ls.cjs.map +1 -1
  136. package/dist/drivers/ls.d.ts +53 -49
  137. package/dist/drivers/ls.js +148 -216
  138. package/dist/drivers/ls.js.map +1 -1
  139. package/dist/drivers/types.cjs +25 -53
  140. package/dist/drivers/types.cjs.map +1 -1
  141. package/dist/drivers/types.d.ts +91 -106
  142. package/dist/drivers/types.js +23 -50
  143. package/dist/drivers/types.js.map +1 -1
  144. package/dist/drivers/upload.cjs +127 -153
  145. package/dist/drivers/upload.cjs.map +1 -1
  146. package/dist/drivers/upload.d.ts +52 -50
  147. package/dist/drivers/upload.js +126 -151
  148. package/dist/drivers/upload.js.map +1 -1
  149. package/dist/drivers/upload_task.cjs +223 -260
  150. package/dist/drivers/upload_task.cjs.map +1 -1
  151. package/dist/drivers/upload_task.d.ts +54 -52
  152. package/dist/drivers/upload_task.js +221 -258
  153. package/dist/drivers/upload_task.js.map +1 -1
  154. package/dist/drivers/urls/url.cjs +30 -35
  155. package/dist/drivers/urls/url.cjs.map +1 -1
  156. package/dist/drivers/urls/url.js +28 -33
  157. package/dist/drivers/urls/url.js.map +1 -1
  158. package/dist/drivers/virtual_storages.cjs +36 -48
  159. package/dist/drivers/virtual_storages.cjs.map +1 -1
  160. package/dist/drivers/virtual_storages.d.ts +6 -2
  161. package/dist/drivers/virtual_storages.js +32 -46
  162. package/dist/drivers/virtual_storages.js.map +1 -1
  163. package/dist/helpers/download.cjs +72 -95
  164. package/dist/helpers/download.cjs.map +1 -1
  165. package/dist/helpers/download.d.ts +13 -9
  166. package/dist/helpers/download.js +71 -93
  167. package/dist/helpers/download.js.map +1 -1
  168. package/dist/helpers/download_errors.cjs +28 -27
  169. package/dist/helpers/download_errors.cjs.map +1 -1
  170. package/dist/helpers/download_errors.d.ts +16 -13
  171. package/dist/helpers/download_errors.js +28 -26
  172. package/dist/helpers/download_errors.js.map +1 -1
  173. package/dist/helpers/validate.cjs +8 -7
  174. package/dist/helpers/validate.cjs.map +1 -1
  175. package/dist/helpers/validate.d.ts +4 -1
  176. package/dist/helpers/validate.js +6 -5
  177. package/dist/helpers/validate.js.map +1 -1
  178. package/dist/index.cjs +75 -79
  179. package/dist/index.d.ts +22 -22
  180. package/dist/index.js +22 -21
  181. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.cjs +238 -249
  182. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.cjs.map +1 -1
  183. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.cjs +27 -27
  184. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.cjs.map +1 -1
  185. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.d.ts +25 -23
  186. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.js +26 -25
  187. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.js.map +1 -1
  188. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.d.ts +51 -87
  189. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.js +238 -245
  190. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.js.map +1 -1
  191. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.cjs +295 -289
  192. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.cjs.map +1 -1
  193. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.cjs +30 -30
  194. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.cjs.map +1 -1
  195. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.js +29 -28
  196. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.js.map +1 -1
  197. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.d.ts +86 -150
  198. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.js +295 -285
  199. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.js.map +1 -1
  200. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.cjs +385 -393
  201. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.cjs.map +1 -1
  202. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.cjs +34 -34
  203. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.cjs.map +1 -1
  204. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.d.ts +33 -34
  205. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.js +33 -32
  206. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.js.map +1 -1
  207. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.d.ts +78 -129
  208. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.js +385 -387
  209. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.js.map +1 -1
  210. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.cjs +570 -468
  211. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.cjs.map +1 -1
  212. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.cjs +82 -82
  213. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.cjs.map +1 -1
  214. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.d.ts +109 -112
  215. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.js +81 -80
  216. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.js.map +1 -1
  217. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.d.ts +243 -264
  218. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.js +569 -460
  219. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.js.map +1 -1
  220. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.cjs +751 -729
  221. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.cjs.map +1 -1
  222. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.cjs +67 -67
  223. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.cjs.map +1 -1
  224. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.js +66 -65
  225. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.js.map +1 -1
  226. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.d.ts +15 -381
  227. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.js +749 -718
  228. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.js.map +1 -1
  229. package/dist/proto-grpc/google/protobuf/duration.cjs +92 -100
  230. package/dist/proto-grpc/google/protobuf/duration.cjs.map +1 -1
  231. package/dist/proto-grpc/google/protobuf/duration.d.ts +38 -43
  232. package/dist/proto-grpc/google/protobuf/duration.js +91 -98
  233. package/dist/proto-grpc/google/protobuf/duration.js.map +1 -1
  234. package/dist/proto-grpc/google/protobuf/timestamp.cjs +117 -128
  235. package/dist/proto-grpc/google/protobuf/timestamp.cjs.map +1 -1
  236. package/dist/proto-grpc/google/protobuf/timestamp.d.ts +50 -55
  237. package/dist/proto-grpc/google/protobuf/timestamp.js +116 -126
  238. package/dist/proto-grpc/google/protobuf/timestamp.js.map +1 -1
  239. package/dist/proto-rest/downloadapi.d.ts +85 -91
  240. package/dist/proto-rest/index.d.ts +11 -16
  241. package/dist/proto-rest/progressapi.d.ts +130 -140
  242. package/dist/proto-rest/streamingapi.d.ts +413 -434
  243. package/package.json +12 -12
  244. package/dist/clients/constructors.d.ts.map +0 -1
  245. package/dist/clients/crc32c.d.ts +0 -2
  246. package/dist/clients/crc32c.d.ts.map +0 -1
  247. package/dist/clients/download.d.ts.map +0 -1
  248. package/dist/clients/logs.d.ts.map +0 -1
  249. package/dist/clients/ls_api.d.ts.map +0 -1
  250. package/dist/clients/progress.d.ts.map +0 -1
  251. package/dist/clients/upload.d.ts.map +0 -1
  252. package/dist/drivers/download_blob/blob_key.d.ts +0 -5
  253. package/dist/drivers/download_blob/blob_key.d.ts.map +0 -1
  254. package/dist/drivers/download_blob/download_blob.d.ts.map +0 -1
  255. package/dist/drivers/download_blob/download_blob_task.d.ts +0 -56
  256. package/dist/drivers/download_blob/download_blob_task.d.ts.map +0 -1
  257. package/dist/drivers/download_blob/sparse_cache/cache.d.ts +0 -82
  258. package/dist/drivers/download_blob/sparse_cache/cache.d.ts.map +0 -1
  259. package/dist/drivers/download_blob/sparse_cache/file.d.ts +0 -8
  260. package/dist/drivers/download_blob/sparse_cache/file.d.ts.map +0 -1
  261. package/dist/drivers/download_blob/sparse_cache/ranges.d.ts +0 -46
  262. package/dist/drivers/download_blob/sparse_cache/ranges.d.ts.map +0 -1
  263. package/dist/drivers/download_blob_url/driver.d.ts.map +0 -1
  264. package/dist/drivers/download_blob_url/driver_id.d.ts +0 -6
  265. package/dist/drivers/download_blob_url/driver_id.d.ts.map +0 -1
  266. package/dist/drivers/download_blob_url/snapshot.d.ts.map +0 -1
  267. package/dist/drivers/download_blob_url/task.d.ts.map +0 -1
  268. package/dist/drivers/download_url/driver.d.ts.map +0 -1
  269. package/dist/drivers/download_url/task.d.ts.map +0 -1
  270. package/dist/drivers/helpers/download_local_handle.d.ts +0 -11
  271. package/dist/drivers/helpers/download_local_handle.d.ts.map +0 -1
  272. package/dist/drivers/helpers/download_remote_handle.d.ts +0 -13
  273. package/dist/drivers/helpers/download_remote_handle.d.ts.map +0 -1
  274. package/dist/drivers/helpers/files_cache.d.ts +0 -29
  275. package/dist/drivers/helpers/files_cache.d.ts.map +0 -1
  276. package/dist/drivers/helpers/helpers.d.ts.map +0 -1
  277. package/dist/drivers/helpers/logs_handle.d.ts +0 -15
  278. package/dist/drivers/helpers/logs_handle.d.ts.map +0 -1
  279. package/dist/drivers/helpers/ls_remote_import_handle.d.ts +0 -8
  280. package/dist/drivers/helpers/ls_remote_import_handle.d.ts.map +0 -1
  281. package/dist/drivers/helpers/ls_storage_entry.d.ts +0 -23
  282. package/dist/drivers/helpers/ls_storage_entry.d.ts.map +0 -1
  283. package/dist/drivers/helpers/polling_ops.d.ts.map +0 -1
  284. package/dist/drivers/helpers/read_file.d.ts +0 -12
  285. package/dist/drivers/helpers/read_file.d.ts.map +0 -1
  286. package/dist/drivers/helpers/test_helpers.d.ts +0 -2
  287. package/dist/drivers/helpers/test_helpers.d.ts.map +0 -1
  288. package/dist/drivers/logs.d.ts.map +0 -1
  289. package/dist/drivers/logs_stream.d.ts.map +0 -1
  290. package/dist/drivers/ls.d.ts.map +0 -1
  291. package/dist/drivers/types.d.ts.map +0 -1
  292. package/dist/drivers/upload.d.ts.map +0 -1
  293. package/dist/drivers/upload_task.d.ts.map +0 -1
  294. package/dist/drivers/urls/url.d.ts +0 -13
  295. package/dist/drivers/urls/url.d.ts.map +0 -1
  296. package/dist/drivers/virtual_storages.d.ts.map +0 -1
  297. package/dist/helpers/download.d.ts.map +0 -1
  298. package/dist/helpers/download_errors.d.ts.map +0 -1
  299. package/dist/helpers/validate.d.ts.map +0 -1
  300. package/dist/index.cjs.map +0 -1
  301. package/dist/index.d.ts.map +0 -1
  302. package/dist/index.js.map +0 -1
  303. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.d.ts.map +0 -1
  304. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.d.ts.map +0 -1
  305. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.d.ts +0 -46
  306. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.d.ts.map +0 -1
  307. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.d.ts.map +0 -1
  308. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.d.ts.map +0 -1
  309. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.d.ts.map +0 -1
  310. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.d.ts.map +0 -1
  311. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.d.ts.map +0 -1
  312. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.d.ts +0 -108
  313. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.d.ts.map +0 -1
  314. package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.d.ts.map +0 -1
  315. package/dist/proto-grpc/google/api/http.d.ts +0 -460
  316. package/dist/proto-grpc/google/api/http.d.ts.map +0 -1
  317. package/dist/proto-grpc/google/protobuf/descriptor.d.ts +0 -2340
  318. package/dist/proto-grpc/google/protobuf/descriptor.d.ts.map +0 -1
  319. package/dist/proto-grpc/google/protobuf/duration.d.ts.map +0 -1
  320. package/dist/proto-grpc/google/protobuf/timestamp.d.ts.map +0 -1
  321. package/dist/proto-rest/downloadapi.d.ts.map +0 -1
  322. package/dist/proto-rest/index.d.ts.map +0 -1
  323. package/dist/proto-rest/lsapi.d.ts +0 -148
  324. package/dist/proto-rest/lsapi.d.ts.map +0 -1
  325. package/dist/proto-rest/progressapi.d.ts.map +0 -1
  326. package/dist/proto-rest/streamingapi.d.ts.map +0 -1
  327. package/dist/proto-rest/uploadapi.d.ts +0 -355
  328. package/dist/proto-rest/uploadapi.d.ts.map +0 -1
  329. package/dist/test_env.d.ts +0 -6
  330. package/dist/test_env.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"read_file.js","sources":["../../../src/drivers/helpers/read_file.ts"],"sourcesContent":["import { ConcurrencyLimitingExecutor } from \"@milaboratories/ts-helpers\";\nimport type { RangeBytes } from \"@milaboratories/pl-model-common\";\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport { Readable } from \"node:stream\";\n\n// Global concurrency limiter for file reads - limit to 32 parallel reads\nconst fileReadLimiter = new ConcurrencyLimitingExecutor(32);\n\n/**\n * Reads file content with concurrency limiting and proper error handling.\n * Ensures file descriptors are properly cleaned up even in error cases.\n */\nexport async function withFileContent<T>({\n path,\n range,\n signal,\n handler,\n}: {\n path: string;\n range?: RangeBytes;\n signal?: AbortSignal;\n handler: (content: ReadableStream, size: number) => Promise<T>;\n}): Promise<T> {\n return await fileReadLimiter.run(async () => {\n const readOps = {\n start: range?.from,\n end: range?.to !== undefined ? range.to - 1 : undefined,\n signal: signal,\n };\n let stream: fs.ReadStream | undefined;\n let handlerSuccess = false;\n\n try {\n const stat = await fsp.stat(path);\n stream = fs.createReadStream(path, readOps);\n const webStream = Readable.toWeb(stream);\n\n const result = await handler(webStream, stat.size);\n handlerSuccess = true;\n return result;\n } catch (error) {\n // Cleanup on error (including handler errors)\n if (!handlerSuccess && stream && !stream.destroyed) {\n stream.destroy();\n }\n throw error;\n }\n });\n}\n"],"names":[],"mappings":";;;;;AAMA;AACA,MAAM,eAAe,GAAG,IAAI,2BAA2B,CAAC,EAAE,CAAC;AAE3D;;;AAGG;AACI,eAAe,eAAe,CAAI,EACvC,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,GAMR,EAAA;AACC,IAAA,OAAO,MAAM,eAAe,CAAC,GAAG,CAAC,YAAW;AAC1C,QAAA,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,KAAK,EAAE,IAAI;AAClB,YAAA,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS;AACvD,YAAA,MAAM,EAAE,MAAM;SACf;AACD,QAAA,IAAI,MAAiC;QACrC,IAAI,cAAc,GAAG,KAAK;AAE1B,QAAA,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;YAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YAExC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;YAClD,cAAc,GAAG,IAAI;AACrB,YAAA,OAAO,MAAM;QACf;QAAE,OAAO,KAAK,EAAE;;YAEd,IAAI,CAAC,cAAc,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBAClD,MAAM,CAAC,OAAO,EAAE;YAClB;AACA,YAAA,MAAM,KAAK;QACb;AACF,IAAA,CAAC,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"read_file.js","names":["fs"],"sources":["../../../src/drivers/helpers/read_file.ts"],"sourcesContent":["import { ConcurrencyLimitingExecutor } from \"@milaboratories/ts-helpers\";\nimport type { RangeBytes } from \"@milaboratories/pl-model-common\";\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport { Readable } from \"node:stream\";\n\n// Global concurrency limiter for file reads - limit to 32 parallel reads\nconst fileReadLimiter = new ConcurrencyLimitingExecutor(32);\n\n/**\n * Reads file content with concurrency limiting and proper error handling.\n * Ensures file descriptors are properly cleaned up even in error cases.\n */\nexport async function withFileContent<T>({\n path,\n range,\n signal,\n handler,\n}: {\n path: string;\n range?: RangeBytes;\n signal?: AbortSignal;\n handler: (content: ReadableStream, size: number) => Promise<T>;\n}): Promise<T> {\n return await fileReadLimiter.run(async () => {\n const readOps = {\n start: range?.from,\n end: range?.to !== undefined ? range.to - 1 : undefined,\n signal: signal,\n };\n let stream: fs.ReadStream | undefined;\n let handlerSuccess = false;\n\n try {\n const stat = await fsp.stat(path);\n stream = fs.createReadStream(path, readOps);\n const webStream = Readable.toWeb(stream);\n\n const result = await handler(webStream, stat.size);\n handlerSuccess = true;\n return result;\n } catch (error) {\n // Cleanup on error (including handler errors)\n if (!handlerSuccess && stream && !stream.destroyed) {\n stream.destroy();\n }\n throw error;\n }\n });\n}\n"],"mappings":";;;;;;AAOA,MAAM,kBAAkB,IAAI,4BAA4B,GAAG;;;;;AAM3D,eAAsB,gBAAmB,EACvC,MACA,OACA,QACA,WAMa;AACb,QAAO,MAAM,gBAAgB,IAAI,YAAY;EAC3C,MAAM,UAAU;GACd,OAAO,OAAO;GACd,KAAK,OAAO,OAAO,SAAY,MAAM,KAAK,IAAI;GACtC;GACT;EACD,IAAI;EACJ,IAAI,iBAAiB;AAErB,MAAI;GACF,MAAM,OAAO,MAAM,IAAI,KAAK,KAAK;AACjC,YAASA,KAAG,iBAAiB,MAAM,QAAQ;GAG3C,MAAM,SAAS,MAAM,QAFH,SAAS,MAAM,OAAO,EAEA,KAAK,KAAK;AAClD,oBAAiB;AACjB,UAAO;WACA,OAAO;AAEd,OAAI,CAAC,kBAAkB,UAAU,CAAC,OAAO,UACvC,QAAO,SAAS;AAElB,SAAM;;GAER"}
@@ -1,119 +1,101 @@
1
- 'use strict';
1
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ const require_logs_handle = require('./helpers/logs_handle.cjs');
3
+ let _milaboratories_pl_client = require("@milaboratories/pl-client");
4
+ let _milaboratories_computable = require("@milaboratories/computable");
2
5
 
3
- var computable = require('@milaboratories/computable');
4
- var logs_handle = require('./helpers/logs_handle.cjs');
5
- var plClient = require('@milaboratories/pl-client');
6
-
7
- class LogsDriver {
8
- logger;
9
- logsStreamDriver;
10
- downloadDriver;
11
- constructor(logger, logsStreamDriver, downloadDriver) {
12
- this.logger = logger;
13
- this.logsStreamDriver = logsStreamDriver;
14
- this.downloadDriver = downloadDriver;
15
- }
16
- getLastLogs(res, lines, ctx) {
17
- if (ctx === undefined)
18
- return computable.Computable.make((ctx) => this.getLastLogs(res, lines, ctx));
19
- const stream = streamManagerGetStream(ctx, res);
20
- if (stream === undefined) {
21
- ctx.markUnstable("no stream in stream manager");
22
- return undefined;
23
- }
24
- if (isBlob(stream))
25
- return this.downloadDriver.getLastLogs(stream, lines, ctx);
26
- try {
27
- return this.logsStreamDriver.getLastLogs(stream, lines, ctx);
28
- }
29
- catch (e) {
30
- if (plClient.isNotFoundError(e)) {
31
- ctx.markUnstable(`NOT_FOUND in logs stream driver while getting last logs: ${e}`);
32
- return undefined;
33
- }
34
- throw e;
35
- }
36
- }
37
- getProgressLog(res, patternToSearch, ctx) {
38
- if (ctx === undefined)
39
- return computable.Computable.make((ctx) => this.getProgressLog(res, patternToSearch, ctx));
40
- const stream = streamManagerGetStream(ctx, res);
41
- if (stream === undefined) {
42
- ctx.markUnstable("no stream in stream manager");
43
- return undefined;
44
- }
45
- if (isBlob(stream))
46
- return this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);
47
- try {
48
- return this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);
49
- }
50
- catch (e) {
51
- if (plClient.isNotFoundError(e)) {
52
- ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log: ${e}`);
53
- return undefined;
54
- }
55
- throw e;
56
- }
57
- }
58
- getProgressLogWithInfo(res, patternToSearch, ctx) {
59
- if (ctx === undefined)
60
- return computable.Computable.make((ctx) => this.getProgressLogWithInfo(res, patternToSearch, ctx));
61
- const stream = streamManagerGetStream(ctx, res);
62
- if (stream === undefined) {
63
- ctx.markUnstable("no stream in stream manager");
64
- return undefined;
65
- }
66
- if (isBlob(stream)) {
67
- const log = this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);
68
- return {
69
- progressLine: log,
70
- live: false,
71
- };
72
- }
73
- try {
74
- const log = this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);
75
- return {
76
- progressLine: log,
77
- live: true,
78
- };
79
- }
80
- catch (e) {
81
- if (plClient.isNotFoundError(e)) {
82
- ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log with info: ${e}`);
83
- return undefined;
84
- }
85
- throw e;
86
- }
87
- }
88
- getLogHandle(res, ctx) {
89
- if (ctx === undefined)
90
- return computable.Computable.make((ctx) => this.getLogHandle(res, ctx));
91
- const stream = streamManagerGetStream(ctx, res);
92
- if (stream === undefined) {
93
- ctx.markUnstable("no stream in stream manager");
94
- return undefined;
95
- }
96
- if (isBlob(stream))
97
- return this.downloadDriver.getLogHandle(stream, ctx);
98
- return this.logsStreamDriver.getLogHandle(stream, ctx);
99
- }
100
- async lastLines(handle, lineCount, offsetBytes, searchStr) {
101
- if (logs_handle.isLiveLogHandle(handle))
102
- return await this.logsStreamDriver.lastLines(handle, lineCount, offsetBytes, searchStr);
103
- return await this.downloadDriver.lastLines(handle, lineCount, offsetBytes, searchStr);
104
- }
105
- async readText(handle, lineCount, offsetBytes, searchStr) {
106
- if (logs_handle.isLiveLogHandle(handle))
107
- return await this.logsStreamDriver.readText(handle, lineCount, offsetBytes, searchStr);
108
- return await this.downloadDriver.readText(handle, lineCount, offsetBytes, searchStr);
109
- }
110
- }
6
+ //#region src/drivers/logs.ts
7
+ var LogsDriver = class {
8
+ constructor(logger, logsStreamDriver, downloadDriver) {
9
+ this.logger = logger;
10
+ this.logsStreamDriver = logsStreamDriver;
11
+ this.downloadDriver = downloadDriver;
12
+ }
13
+ getLastLogs(res, lines, ctx) {
14
+ if (ctx === void 0) return _milaboratories_computable.Computable.make((ctx) => this.getLastLogs(res, lines, ctx));
15
+ const stream = streamManagerGetStream(ctx, res);
16
+ if (stream === void 0) {
17
+ ctx.markUnstable("no stream in stream manager");
18
+ return;
19
+ }
20
+ if (isBlob(stream)) return this.downloadDriver.getLastLogs(stream, lines, ctx);
21
+ try {
22
+ return this.logsStreamDriver.getLastLogs(stream, lines, ctx);
23
+ } catch (e) {
24
+ if ((0, _milaboratories_pl_client.isNotFoundError)(e)) {
25
+ ctx.markUnstable(`NOT_FOUND in logs stream driver while getting last logs: ${e}`);
26
+ return;
27
+ }
28
+ throw e;
29
+ }
30
+ }
31
+ getProgressLog(res, patternToSearch, ctx) {
32
+ if (ctx === void 0) return _milaboratories_computable.Computable.make((ctx) => this.getProgressLog(res, patternToSearch, ctx));
33
+ const stream = streamManagerGetStream(ctx, res);
34
+ if (stream === void 0) {
35
+ ctx.markUnstable("no stream in stream manager");
36
+ return;
37
+ }
38
+ if (isBlob(stream)) return this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);
39
+ try {
40
+ return this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);
41
+ } catch (e) {
42
+ if ((0, _milaboratories_pl_client.isNotFoundError)(e)) {
43
+ ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log: ${e}`);
44
+ return;
45
+ }
46
+ throw e;
47
+ }
48
+ }
49
+ getProgressLogWithInfo(res, patternToSearch, ctx) {
50
+ if (ctx === void 0) return _milaboratories_computable.Computable.make((ctx) => this.getProgressLogWithInfo(res, patternToSearch, ctx));
51
+ const stream = streamManagerGetStream(ctx, res);
52
+ if (stream === void 0) {
53
+ ctx.markUnstable("no stream in stream manager");
54
+ return;
55
+ }
56
+ if (isBlob(stream)) return {
57
+ progressLine: this.downloadDriver.getProgressLog(stream, patternToSearch, ctx),
58
+ live: false
59
+ };
60
+ try {
61
+ return {
62
+ progressLine: this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx),
63
+ live: true
64
+ };
65
+ } catch (e) {
66
+ if ((0, _milaboratories_pl_client.isNotFoundError)(e)) {
67
+ ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log with info: ${e}`);
68
+ return;
69
+ }
70
+ throw e;
71
+ }
72
+ }
73
+ getLogHandle(res, ctx) {
74
+ if (ctx === void 0) return _milaboratories_computable.Computable.make((ctx) => this.getLogHandle(res, ctx));
75
+ const stream = streamManagerGetStream(ctx, res);
76
+ if (stream === void 0) {
77
+ ctx.markUnstable("no stream in stream manager");
78
+ return;
79
+ }
80
+ if (isBlob(stream)) return this.downloadDriver.getLogHandle(stream, ctx);
81
+ return this.logsStreamDriver.getLogHandle(stream, ctx);
82
+ }
83
+ async lastLines(handle, lineCount, offsetBytes, searchStr) {
84
+ if (require_logs_handle.isLiveLogHandle(handle)) return await this.logsStreamDriver.lastLines(handle, lineCount, offsetBytes, searchStr);
85
+ return await this.downloadDriver.lastLines(handle, lineCount, offsetBytes, searchStr);
86
+ }
87
+ async readText(handle, lineCount, offsetBytes, searchStr) {
88
+ if (require_logs_handle.isLiveLogHandle(handle)) return await this.logsStreamDriver.readText(handle, lineCount, offsetBytes, searchStr);
89
+ return await this.downloadDriver.readText(handle, lineCount, offsetBytes, searchStr);
90
+ }
91
+ };
111
92
  function isBlob(rInfo) {
112
- return !rInfo.type.name.startsWith("StreamWorkdir");
93
+ return !rInfo.type.name.startsWith("StreamWorkdir");
113
94
  }
114
95
  function streamManagerGetStream(ctx, manager) {
115
- return ctx.accessor(manager).node().traverse("stream")?.resourceInfo;
96
+ return ctx.accessor(manager).node().traverse("stream")?.resourceInfo;
116
97
  }
117
98
 
99
+ //#endregion
118
100
  exports.LogsDriver = LogsDriver;
119
- //# sourceMappingURL=logs.cjs.map
101
+ //# sourceMappingURL=logs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.cjs","sources":["../../src/drivers/logs.ts"],"sourcesContent":["import type { ComputableCtx } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport type { PlTreeEntry, ResourceInfo } from \"@milaboratories/pl-tree\";\nimport type { LogsStreamDriver } from \"./logs_stream\";\nimport type * as sdk from \"@milaboratories/pl-model-common\";\nimport type { MiLogger } from \"@milaboratories/ts-helpers\";\nimport type { DownloadDriver } from \"./download_blob/download_blob\";\nimport { isLiveLogHandle } from \"./helpers/logs_handle\";\nimport { isNotFoundError } from \"@milaboratories/pl-client\";\n\nexport class LogsDriver implements sdk.LogsDriver {\n constructor(\n private readonly logger: MiLogger,\n private readonly logsStreamDriver: LogsStreamDriver,\n private readonly downloadDriver: DownloadDriver,\n ) {}\n\n /** Returns all logs and schedules a job that reads remain logs.\n * Notifies when a new portion of the log appeared. */\n getLastLogs(res: PlTreeEntry, lines: number): Computable<string | undefined>;\n getLastLogs(res: PlTreeEntry, lines: number, ctx: ComputableCtx): Computable<string | undefined>;\n getLastLogs(\n res: PlTreeEntry,\n lines: number,\n ctx?: ComputableCtx,\n ): Computable<string | undefined> | string | undefined {\n if (ctx === undefined) return Computable.make((ctx) => this.getLastLogs(res, lines, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getLastLogs(stream, lines, ctx);\n\n try {\n return this.logsStreamDriver.getLastLogs(stream, lines, ctx);\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(`NOT_FOUND in logs stream driver while getting last logs: ${e}`);\n return undefined;\n }\n throw e;\n }\n }\n\n /** Returns a last line that has patternToSearch.\n * Notifies when a new line appeared or EOF reached. */\n getProgressLog(res: PlTreeEntry, patternToSearch: string): Computable<string | undefined>;\n getProgressLog(res: PlTreeEntry, patternToSearch: string, ctx: ComputableCtx): string | undefined;\n getProgressLog(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx?: ComputableCtx,\n ): Computable<string | undefined> | string | undefined {\n if (ctx === undefined)\n return Computable.make((ctx) => this.getProgressLog(res, patternToSearch, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);\n\n try {\n return this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log: ${e}`);\n return undefined;\n }\n throw e;\n }\n }\n\n /** Same as getProgressLog but also returns a liveliness of the log.\n * The previous getProgressLog couldn't be extended.\n * Returns a last line that has patternToSearch.\n * Notifies when a new line appeared or EOF reached. */\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ): Computable<sdk.ProgressLogWithInfo | undefined>;\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx: ComputableCtx,\n ): sdk.ProgressLogWithInfo | undefined;\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx?: ComputableCtx,\n ): Computable<sdk.ProgressLogWithInfo | undefined> | sdk.ProgressLogWithInfo | undefined {\n if (ctx === undefined)\n return Computable.make((ctx) => this.getProgressLogWithInfo(res, patternToSearch, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) {\n const log = this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);\n return {\n progressLine: log,\n live: false,\n };\n }\n\n try {\n const log = this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);\n return {\n progressLine: log,\n live: true,\n };\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(\n `NOT_FOUND in logs stream driver while getting a progress log with info: ${e}`,\n );\n return undefined;\n }\n throw e;\n }\n }\n\n /** Returns an Id of a smart object, that can read logs directly from\n * the platform. */\n getLogHandle(res: ResourceInfo | PlTreeEntry): Computable<sdk.AnyLogHandle | undefined>;\n getLogHandle(res: PlTreeEntry, ctx: ComputableCtx): sdk.AnyLogHandle | undefined;\n getLogHandle(\n res: PlTreeEntry,\n ctx?: ComputableCtx,\n ): Computable<sdk.AnyLogHandle | undefined> | sdk.AnyLogHandle | undefined {\n if (ctx === undefined) return Computable.make((ctx) => this.getLogHandle(res, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getLogHandle(stream, ctx);\n\n return this.logsStreamDriver.getLogHandle(stream, ctx);\n }\n\n async lastLines(\n handle: sdk.AnyLogHandle,\n lineCount: number,\n offsetBytes?: number,\n searchStr?: string,\n ): Promise<sdk.StreamingApiResponse> {\n if (isLiveLogHandle(handle))\n return await this.logsStreamDriver.lastLines(handle, lineCount, offsetBytes, searchStr);\n return await this.downloadDriver.lastLines(handle, lineCount, offsetBytes, searchStr);\n }\n\n async readText(\n handle: sdk.AnyLogHandle,\n lineCount: number,\n offsetBytes?: number,\n searchStr?: string,\n ): Promise<sdk.StreamingApiResponse> {\n if (isLiveLogHandle(handle))\n return await this.logsStreamDriver.readText(handle, lineCount, offsetBytes, searchStr);\n return await this.downloadDriver.readText(handle, lineCount, offsetBytes, searchStr);\n }\n}\n\nfunction isBlob(rInfo: ResourceInfo) {\n return !rInfo.type.name.startsWith(\"StreamWorkdir\");\n}\n\nfunction streamManagerGetStream(ctx: ComputableCtx, manager: PlTreeEntry) {\n return ctx.accessor(manager).node().traverse(\"stream\")?.resourceInfo;\n}\n"],"names":["Computable","isNotFoundError","isLiveLogHandle"],"mappings":"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"}
1
+ {"version":3,"file":"logs.cjs","names":["Computable","isLiveLogHandle"],"sources":["../../src/drivers/logs.ts"],"sourcesContent":["import type { ComputableCtx } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport type { PlTreeEntry, ResourceInfo } from \"@milaboratories/pl-tree\";\nimport type { LogsStreamDriver } from \"./logs_stream\";\nimport type * as sdk from \"@milaboratories/pl-model-common\";\nimport type { MiLogger } from \"@milaboratories/ts-helpers\";\nimport type { DownloadDriver } from \"./download_blob/download_blob\";\nimport { isLiveLogHandle } from \"./helpers/logs_handle\";\nimport { isNotFoundError } from \"@milaboratories/pl-client\";\n\nexport class LogsDriver implements sdk.LogsDriver {\n constructor(\n private readonly logger: MiLogger,\n private readonly logsStreamDriver: LogsStreamDriver,\n private readonly downloadDriver: DownloadDriver,\n ) {}\n\n /** Returns all logs and schedules a job that reads remain logs.\n * Notifies when a new portion of the log appeared. */\n getLastLogs(res: PlTreeEntry, lines: number): Computable<string | undefined>;\n getLastLogs(res: PlTreeEntry, lines: number, ctx: ComputableCtx): Computable<string | undefined>;\n getLastLogs(\n res: PlTreeEntry,\n lines: number,\n ctx?: ComputableCtx,\n ): Computable<string | undefined> | string | undefined {\n if (ctx === undefined) return Computable.make((ctx) => this.getLastLogs(res, lines, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getLastLogs(stream, lines, ctx);\n\n try {\n return this.logsStreamDriver.getLastLogs(stream, lines, ctx);\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(`NOT_FOUND in logs stream driver while getting last logs: ${e}`);\n return undefined;\n }\n throw e;\n }\n }\n\n /** Returns a last line that has patternToSearch.\n * Notifies when a new line appeared or EOF reached. */\n getProgressLog(res: PlTreeEntry, patternToSearch: string): Computable<string | undefined>;\n getProgressLog(res: PlTreeEntry, patternToSearch: string, ctx: ComputableCtx): string | undefined;\n getProgressLog(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx?: ComputableCtx,\n ): Computable<string | undefined> | string | undefined {\n if (ctx === undefined)\n return Computable.make((ctx) => this.getProgressLog(res, patternToSearch, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);\n\n try {\n return this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log: ${e}`);\n return undefined;\n }\n throw e;\n }\n }\n\n /** Same as getProgressLog but also returns a liveliness of the log.\n * The previous getProgressLog couldn't be extended.\n * Returns a last line that has patternToSearch.\n * Notifies when a new line appeared or EOF reached. */\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ): Computable<sdk.ProgressLogWithInfo | undefined>;\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx: ComputableCtx,\n ): sdk.ProgressLogWithInfo | undefined;\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx?: ComputableCtx,\n ): Computable<sdk.ProgressLogWithInfo | undefined> | sdk.ProgressLogWithInfo | undefined {\n if (ctx === undefined)\n return Computable.make((ctx) => this.getProgressLogWithInfo(res, patternToSearch, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) {\n const log = this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);\n return {\n progressLine: log,\n live: false,\n };\n }\n\n try {\n const log = this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);\n return {\n progressLine: log,\n live: true,\n };\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(\n `NOT_FOUND in logs stream driver while getting a progress log with info: ${e}`,\n );\n return undefined;\n }\n throw e;\n }\n }\n\n /** Returns an Id of a smart object, that can read logs directly from\n * the platform. */\n getLogHandle(res: ResourceInfo | PlTreeEntry): Computable<sdk.AnyLogHandle | undefined>;\n getLogHandle(res: PlTreeEntry, ctx: ComputableCtx): sdk.AnyLogHandle | undefined;\n getLogHandle(\n res: PlTreeEntry,\n ctx?: ComputableCtx,\n ): Computable<sdk.AnyLogHandle | undefined> | sdk.AnyLogHandle | undefined {\n if (ctx === undefined) return Computable.make((ctx) => this.getLogHandle(res, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getLogHandle(stream, ctx);\n\n return this.logsStreamDriver.getLogHandle(stream, ctx);\n }\n\n async lastLines(\n handle: sdk.AnyLogHandle,\n lineCount: number,\n offsetBytes?: number,\n searchStr?: string,\n ): Promise<sdk.StreamingApiResponse> {\n if (isLiveLogHandle(handle))\n return await this.logsStreamDriver.lastLines(handle, lineCount, offsetBytes, searchStr);\n return await this.downloadDriver.lastLines(handle, lineCount, offsetBytes, searchStr);\n }\n\n async readText(\n handle: sdk.AnyLogHandle,\n lineCount: number,\n offsetBytes?: number,\n searchStr?: string,\n ): Promise<sdk.StreamingApiResponse> {\n if (isLiveLogHandle(handle))\n return await this.logsStreamDriver.readText(handle, lineCount, offsetBytes, searchStr);\n return await this.downloadDriver.readText(handle, lineCount, offsetBytes, searchStr);\n }\n}\n\nfunction isBlob(rInfo: ResourceInfo) {\n return !rInfo.type.name.startsWith(\"StreamWorkdir\");\n}\n\nfunction streamManagerGetStream(ctx: ComputableCtx, manager: PlTreeEntry) {\n return ctx.accessor(manager).node().traverse(\"stream\")?.resourceInfo;\n}\n"],"mappings":";;;;;;AAUA,IAAa,aAAb,MAAkD;CAChD,YACE,AAAiB,QACjB,AAAiB,kBACjB,AAAiB,gBACjB;EAHiB;EACA;EACA;;CAOnB,YACE,KACA,OACA,KACqD;AACrD,MAAI,QAAQ,OAAW,QAAOA,sCAAW,MAAM,QAAQ,KAAK,YAAY,KAAK,OAAO,IAAI,CAAC;EAEzF,MAAM,SAAS,uBAAuB,KAAK,IAAI;AAC/C,MAAI,WAAW,QAAW;AACxB,OAAI,aAAa,8BAA8B;AAC/C;;AAGF,MAAI,OAAO,OAAO,CAAE,QAAO,KAAK,eAAe,YAAY,QAAQ,OAAO,IAAI;AAE9E,MAAI;AACF,UAAO,KAAK,iBAAiB,YAAY,QAAQ,OAAO,IAAI;WACrD,GAAQ;AACf,sDAAoB,EAAE,EAAE;AACtB,QAAI,aAAa,4DAA4D,IAAI;AACjF;;AAEF,SAAM;;;CAQV,eACE,KACA,iBACA,KACqD;AACrD,MAAI,QAAQ,OACV,QAAOA,sCAAW,MAAM,QAAQ,KAAK,eAAe,KAAK,iBAAiB,IAAI,CAAC;EAEjF,MAAM,SAAS,uBAAuB,KAAK,IAAI;AAC/C,MAAI,WAAW,QAAW;AACxB,OAAI,aAAa,8BAA8B;AAC/C;;AAGF,MAAI,OAAO,OAAO,CAAE,QAAO,KAAK,eAAe,eAAe,QAAQ,iBAAiB,IAAI;AAE3F,MAAI;AACF,UAAO,KAAK,iBAAiB,eAAe,QAAQ,iBAAiB,IAAI;WAClE,GAAQ;AACf,sDAAoB,EAAE,EAAE;AACtB,QAAI,aAAa,iEAAiE,IAAI;AACtF;;AAEF,SAAM;;;CAiBV,uBACE,KACA,iBACA,KACuF;AACvF,MAAI,QAAQ,OACV,QAAOA,sCAAW,MAAM,QAAQ,KAAK,uBAAuB,KAAK,iBAAiB,IAAI,CAAC;EAEzF,MAAM,SAAS,uBAAuB,KAAK,IAAI;AAC/C,MAAI,WAAW,QAAW;AACxB,OAAI,aAAa,8BAA8B;AAC/C;;AAGF,MAAI,OAAO,OAAO,CAEhB,QAAO;GACL,cAFU,KAAK,eAAe,eAAe,QAAQ,iBAAiB,IAAI;GAG1E,MAAM;GACP;AAGH,MAAI;AAEF,UAAO;IACL,cAFU,KAAK,iBAAiB,eAAe,QAAQ,iBAAiB,IAAI;IAG5E,MAAM;IACP;WACM,GAAQ;AACf,sDAAoB,EAAE,EAAE;AACtB,QAAI,aACF,2EAA2E,IAC5E;AACD;;AAEF,SAAM;;;CAQV,aACE,KACA,KACyE;AACzE,MAAI,QAAQ,OAAW,QAAOA,sCAAW,MAAM,QAAQ,KAAK,aAAa,KAAK,IAAI,CAAC;EAEnF,MAAM,SAAS,uBAAuB,KAAK,IAAI;AAC/C,MAAI,WAAW,QAAW;AACxB,OAAI,aAAa,8BAA8B;AAC/C;;AAGF,MAAI,OAAO,OAAO,CAAE,QAAO,KAAK,eAAe,aAAa,QAAQ,IAAI;AAExE,SAAO,KAAK,iBAAiB,aAAa,QAAQ,IAAI;;CAGxD,MAAM,UACJ,QACA,WACA,aACA,WACmC;AACnC,MAAIC,oCAAgB,OAAO,CACzB,QAAO,MAAM,KAAK,iBAAiB,UAAU,QAAQ,WAAW,aAAa,UAAU;AACzF,SAAO,MAAM,KAAK,eAAe,UAAU,QAAQ,WAAW,aAAa,UAAU;;CAGvF,MAAM,SACJ,QACA,WACA,aACA,WACmC;AACnC,MAAIA,oCAAgB,OAAO,CACzB,QAAO,MAAM,KAAK,iBAAiB,SAAS,QAAQ,WAAW,aAAa,UAAU;AACxF,SAAO,MAAM,KAAK,eAAe,SAAS,QAAQ,WAAW,aAAa,UAAU;;;AAIxF,SAAS,OAAO,OAAqB;AACnC,QAAO,CAAC,MAAM,KAAK,KAAK,WAAW,gBAAgB;;AAGrD,SAAS,uBAAuB,KAAoB,SAAsB;AACxE,QAAO,IAAI,SAAS,QAAQ,CAAC,MAAM,CAAC,SAAS,SAAS,EAAE"}
@@ -1,34 +1,37 @@
1
- import type { ComputableCtx } from "@milaboratories/computable";
2
- import { Computable } from "@milaboratories/computable";
3
- import type { PlTreeEntry, ResourceInfo } from "@milaboratories/pl-tree";
4
- import type { LogsStreamDriver } from "./logs_stream";
5
- import type * as sdk from "@milaboratories/pl-model-common";
6
- import type { MiLogger } from "@milaboratories/ts-helpers";
7
- import type { DownloadDriver } from "./download_blob/download_blob";
8
- export declare class LogsDriver implements sdk.LogsDriver {
9
- private readonly logger;
10
- private readonly logsStreamDriver;
11
- private readonly downloadDriver;
12
- constructor(logger: MiLogger, logsStreamDriver: LogsStreamDriver, downloadDriver: DownloadDriver);
13
- /** Returns all logs and schedules a job that reads remain logs.
14
- * Notifies when a new portion of the log appeared. */
15
- getLastLogs(res: PlTreeEntry, lines: number): Computable<string | undefined>;
16
- getLastLogs(res: PlTreeEntry, lines: number, ctx: ComputableCtx): Computable<string | undefined>;
17
- /** Returns a last line that has patternToSearch.
18
- * Notifies when a new line appeared or EOF reached. */
19
- getProgressLog(res: PlTreeEntry, patternToSearch: string): Computable<string | undefined>;
20
- getProgressLog(res: PlTreeEntry, patternToSearch: string, ctx: ComputableCtx): string | undefined;
21
- /** Same as getProgressLog but also returns a liveliness of the log.
22
- * The previous getProgressLog couldn't be extended.
23
- * Returns a last line that has patternToSearch.
24
- * Notifies when a new line appeared or EOF reached. */
25
- getProgressLogWithInfo(res: PlTreeEntry, patternToSearch: string): Computable<sdk.ProgressLogWithInfo | undefined>;
26
- getProgressLogWithInfo(res: PlTreeEntry, patternToSearch: string, ctx: ComputableCtx): sdk.ProgressLogWithInfo | undefined;
27
- /** Returns an Id of a smart object, that can read logs directly from
28
- * the platform. */
29
- getLogHandle(res: ResourceInfo | PlTreeEntry): Computable<sdk.AnyLogHandle | undefined>;
30
- getLogHandle(res: PlTreeEntry, ctx: ComputableCtx): sdk.AnyLogHandle | undefined;
31
- lastLines(handle: sdk.AnyLogHandle, lineCount: number, offsetBytes?: number, searchStr?: string): Promise<sdk.StreamingApiResponse>;
32
- readText(handle: sdk.AnyLogHandle, lineCount: number, offsetBytes?: number, searchStr?: string): Promise<sdk.StreamingApiResponse>;
1
+ import { DownloadDriver } from "./download_blob/download_blob.js";
2
+ import { LogsStreamDriver } from "./logs_stream.js";
3
+ import { MiLogger } from "@milaboratories/ts-helpers";
4
+ import { Computable, ComputableCtx } from "@milaboratories/computable";
5
+ import * as sdk from "@milaboratories/pl-model-common";
6
+ import { PlTreeEntry, ResourceInfo } from "@milaboratories/pl-tree";
7
+
8
+ //#region src/drivers/logs.d.ts
9
+ declare class LogsDriver implements sdk.LogsDriver {
10
+ private readonly logger;
11
+ private readonly logsStreamDriver;
12
+ private readonly downloadDriver;
13
+ constructor(logger: MiLogger, logsStreamDriver: LogsStreamDriver, downloadDriver: DownloadDriver);
14
+ /** Returns all logs and schedules a job that reads remain logs.
15
+ * Notifies when a new portion of the log appeared. */
16
+ getLastLogs(res: PlTreeEntry, lines: number): Computable<string | undefined>;
17
+ getLastLogs(res: PlTreeEntry, lines: number, ctx: ComputableCtx): Computable<string | undefined>;
18
+ /** Returns a last line that has patternToSearch.
19
+ * Notifies when a new line appeared or EOF reached. */
20
+ getProgressLog(res: PlTreeEntry, patternToSearch: string): Computable<string | undefined>;
21
+ getProgressLog(res: PlTreeEntry, patternToSearch: string, ctx: ComputableCtx): string | undefined;
22
+ /** Same as getProgressLog but also returns a liveliness of the log.
23
+ * The previous getProgressLog couldn't be extended.
24
+ * Returns a last line that has patternToSearch.
25
+ * Notifies when a new line appeared or EOF reached. */
26
+ getProgressLogWithInfo(res: PlTreeEntry, patternToSearch: string): Computable<sdk.ProgressLogWithInfo | undefined>;
27
+ getProgressLogWithInfo(res: PlTreeEntry, patternToSearch: string, ctx: ComputableCtx): sdk.ProgressLogWithInfo | undefined;
28
+ /** Returns an Id of a smart object, that can read logs directly from
29
+ * the platform. */
30
+ getLogHandle(res: ResourceInfo | PlTreeEntry): Computable<sdk.AnyLogHandle | undefined>;
31
+ getLogHandle(res: PlTreeEntry, ctx: ComputableCtx): sdk.AnyLogHandle | undefined;
32
+ lastLines(handle: sdk.AnyLogHandle, lineCount: number, offsetBytes?: number, searchStr?: string): Promise<sdk.StreamingApiResponse>;
33
+ readText(handle: sdk.AnyLogHandle, lineCount: number, offsetBytes?: number, searchStr?: string): Promise<sdk.StreamingApiResponse>;
33
34
  }
35
+ //#endregion
36
+ export { LogsDriver };
34
37
  //# sourceMappingURL=logs.d.ts.map
@@ -1,117 +1,100 @@
1
- import { Computable } from '@milaboratories/computable';
2
- import { isLiveLogHandle } from './helpers/logs_handle.js';
3
- import { isNotFoundError } from '@milaboratories/pl-client';
1
+ import { isLiveLogHandle } from "./helpers/logs_handle.js";
2
+ import { isNotFoundError } from "@milaboratories/pl-client";
3
+ import { Computable } from "@milaboratories/computable";
4
4
 
5
- class LogsDriver {
6
- logger;
7
- logsStreamDriver;
8
- downloadDriver;
9
- constructor(logger, logsStreamDriver, downloadDriver) {
10
- this.logger = logger;
11
- this.logsStreamDriver = logsStreamDriver;
12
- this.downloadDriver = downloadDriver;
13
- }
14
- getLastLogs(res, lines, ctx) {
15
- if (ctx === undefined)
16
- return Computable.make((ctx) => this.getLastLogs(res, lines, ctx));
17
- const stream = streamManagerGetStream(ctx, res);
18
- if (stream === undefined) {
19
- ctx.markUnstable("no stream in stream manager");
20
- return undefined;
21
- }
22
- if (isBlob(stream))
23
- return this.downloadDriver.getLastLogs(stream, lines, ctx);
24
- try {
25
- return this.logsStreamDriver.getLastLogs(stream, lines, ctx);
26
- }
27
- catch (e) {
28
- if (isNotFoundError(e)) {
29
- ctx.markUnstable(`NOT_FOUND in logs stream driver while getting last logs: ${e}`);
30
- return undefined;
31
- }
32
- throw e;
33
- }
34
- }
35
- getProgressLog(res, patternToSearch, ctx) {
36
- if (ctx === undefined)
37
- return Computable.make((ctx) => this.getProgressLog(res, patternToSearch, ctx));
38
- const stream = streamManagerGetStream(ctx, res);
39
- if (stream === undefined) {
40
- ctx.markUnstable("no stream in stream manager");
41
- return undefined;
42
- }
43
- if (isBlob(stream))
44
- return this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);
45
- try {
46
- return this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);
47
- }
48
- catch (e) {
49
- if (isNotFoundError(e)) {
50
- ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log: ${e}`);
51
- return undefined;
52
- }
53
- throw e;
54
- }
55
- }
56
- getProgressLogWithInfo(res, patternToSearch, ctx) {
57
- if (ctx === undefined)
58
- return Computable.make((ctx) => this.getProgressLogWithInfo(res, patternToSearch, ctx));
59
- const stream = streamManagerGetStream(ctx, res);
60
- if (stream === undefined) {
61
- ctx.markUnstable("no stream in stream manager");
62
- return undefined;
63
- }
64
- if (isBlob(stream)) {
65
- const log = this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);
66
- return {
67
- progressLine: log,
68
- live: false,
69
- };
70
- }
71
- try {
72
- const log = this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);
73
- return {
74
- progressLine: log,
75
- live: true,
76
- };
77
- }
78
- catch (e) {
79
- if (isNotFoundError(e)) {
80
- ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log with info: ${e}`);
81
- return undefined;
82
- }
83
- throw e;
84
- }
85
- }
86
- getLogHandle(res, ctx) {
87
- if (ctx === undefined)
88
- return Computable.make((ctx) => this.getLogHandle(res, ctx));
89
- const stream = streamManagerGetStream(ctx, res);
90
- if (stream === undefined) {
91
- ctx.markUnstable("no stream in stream manager");
92
- return undefined;
93
- }
94
- if (isBlob(stream))
95
- return this.downloadDriver.getLogHandle(stream, ctx);
96
- return this.logsStreamDriver.getLogHandle(stream, ctx);
97
- }
98
- async lastLines(handle, lineCount, offsetBytes, searchStr) {
99
- if (isLiveLogHandle(handle))
100
- return await this.logsStreamDriver.lastLines(handle, lineCount, offsetBytes, searchStr);
101
- return await this.downloadDriver.lastLines(handle, lineCount, offsetBytes, searchStr);
102
- }
103
- async readText(handle, lineCount, offsetBytes, searchStr) {
104
- if (isLiveLogHandle(handle))
105
- return await this.logsStreamDriver.readText(handle, lineCount, offsetBytes, searchStr);
106
- return await this.downloadDriver.readText(handle, lineCount, offsetBytes, searchStr);
107
- }
108
- }
5
+ //#region src/drivers/logs.ts
6
+ var LogsDriver = class {
7
+ constructor(logger, logsStreamDriver, downloadDriver) {
8
+ this.logger = logger;
9
+ this.logsStreamDriver = logsStreamDriver;
10
+ this.downloadDriver = downloadDriver;
11
+ }
12
+ getLastLogs(res, lines, ctx) {
13
+ if (ctx === void 0) return Computable.make((ctx) => this.getLastLogs(res, lines, ctx));
14
+ const stream = streamManagerGetStream(ctx, res);
15
+ if (stream === void 0) {
16
+ ctx.markUnstable("no stream in stream manager");
17
+ return;
18
+ }
19
+ if (isBlob(stream)) return this.downloadDriver.getLastLogs(stream, lines, ctx);
20
+ try {
21
+ return this.logsStreamDriver.getLastLogs(stream, lines, ctx);
22
+ } catch (e) {
23
+ if (isNotFoundError(e)) {
24
+ ctx.markUnstable(`NOT_FOUND in logs stream driver while getting last logs: ${e}`);
25
+ return;
26
+ }
27
+ throw e;
28
+ }
29
+ }
30
+ getProgressLog(res, patternToSearch, ctx) {
31
+ if (ctx === void 0) return Computable.make((ctx) => this.getProgressLog(res, patternToSearch, ctx));
32
+ const stream = streamManagerGetStream(ctx, res);
33
+ if (stream === void 0) {
34
+ ctx.markUnstable("no stream in stream manager");
35
+ return;
36
+ }
37
+ if (isBlob(stream)) return this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);
38
+ try {
39
+ return this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);
40
+ } catch (e) {
41
+ if (isNotFoundError(e)) {
42
+ ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log: ${e}`);
43
+ return;
44
+ }
45
+ throw e;
46
+ }
47
+ }
48
+ getProgressLogWithInfo(res, patternToSearch, ctx) {
49
+ if (ctx === void 0) return Computable.make((ctx) => this.getProgressLogWithInfo(res, patternToSearch, ctx));
50
+ const stream = streamManagerGetStream(ctx, res);
51
+ if (stream === void 0) {
52
+ ctx.markUnstable("no stream in stream manager");
53
+ return;
54
+ }
55
+ if (isBlob(stream)) return {
56
+ progressLine: this.downloadDriver.getProgressLog(stream, patternToSearch, ctx),
57
+ live: false
58
+ };
59
+ try {
60
+ return {
61
+ progressLine: this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx),
62
+ live: true
63
+ };
64
+ } catch (e) {
65
+ if (isNotFoundError(e)) {
66
+ ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log with info: ${e}`);
67
+ return;
68
+ }
69
+ throw e;
70
+ }
71
+ }
72
+ getLogHandle(res, ctx) {
73
+ if (ctx === void 0) return Computable.make((ctx) => this.getLogHandle(res, ctx));
74
+ const stream = streamManagerGetStream(ctx, res);
75
+ if (stream === void 0) {
76
+ ctx.markUnstable("no stream in stream manager");
77
+ return;
78
+ }
79
+ if (isBlob(stream)) return this.downloadDriver.getLogHandle(stream, ctx);
80
+ return this.logsStreamDriver.getLogHandle(stream, ctx);
81
+ }
82
+ async lastLines(handle, lineCount, offsetBytes, searchStr) {
83
+ if (isLiveLogHandle(handle)) return await this.logsStreamDriver.lastLines(handle, lineCount, offsetBytes, searchStr);
84
+ return await this.downloadDriver.lastLines(handle, lineCount, offsetBytes, searchStr);
85
+ }
86
+ async readText(handle, lineCount, offsetBytes, searchStr) {
87
+ if (isLiveLogHandle(handle)) return await this.logsStreamDriver.readText(handle, lineCount, offsetBytes, searchStr);
88
+ return await this.downloadDriver.readText(handle, lineCount, offsetBytes, searchStr);
89
+ }
90
+ };
109
91
  function isBlob(rInfo) {
110
- return !rInfo.type.name.startsWith("StreamWorkdir");
92
+ return !rInfo.type.name.startsWith("StreamWorkdir");
111
93
  }
112
94
  function streamManagerGetStream(ctx, manager) {
113
- return ctx.accessor(manager).node().traverse("stream")?.resourceInfo;
95
+ return ctx.accessor(manager).node().traverse("stream")?.resourceInfo;
114
96
  }
115
97
 
98
+ //#endregion
116
99
  export { LogsDriver };
117
- //# sourceMappingURL=logs.js.map
100
+ //# sourceMappingURL=logs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sources":["../../src/drivers/logs.ts"],"sourcesContent":["import type { ComputableCtx } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport type { PlTreeEntry, ResourceInfo } from \"@milaboratories/pl-tree\";\nimport type { LogsStreamDriver } from \"./logs_stream\";\nimport type * as sdk from \"@milaboratories/pl-model-common\";\nimport type { MiLogger } from \"@milaboratories/ts-helpers\";\nimport type { DownloadDriver } from \"./download_blob/download_blob\";\nimport { isLiveLogHandle } from \"./helpers/logs_handle\";\nimport { isNotFoundError } from \"@milaboratories/pl-client\";\n\nexport class LogsDriver implements sdk.LogsDriver {\n constructor(\n private readonly logger: MiLogger,\n private readonly logsStreamDriver: LogsStreamDriver,\n private readonly downloadDriver: DownloadDriver,\n ) {}\n\n /** Returns all logs and schedules a job that reads remain logs.\n * Notifies when a new portion of the log appeared. */\n getLastLogs(res: PlTreeEntry, lines: number): Computable<string | undefined>;\n getLastLogs(res: PlTreeEntry, lines: number, ctx: ComputableCtx): Computable<string | undefined>;\n getLastLogs(\n res: PlTreeEntry,\n lines: number,\n ctx?: ComputableCtx,\n ): Computable<string | undefined> | string | undefined {\n if (ctx === undefined) return Computable.make((ctx) => this.getLastLogs(res, lines, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getLastLogs(stream, lines, ctx);\n\n try {\n return this.logsStreamDriver.getLastLogs(stream, lines, ctx);\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(`NOT_FOUND in logs stream driver while getting last logs: ${e}`);\n return undefined;\n }\n throw e;\n }\n }\n\n /** Returns a last line that has patternToSearch.\n * Notifies when a new line appeared or EOF reached. */\n getProgressLog(res: PlTreeEntry, patternToSearch: string): Computable<string | undefined>;\n getProgressLog(res: PlTreeEntry, patternToSearch: string, ctx: ComputableCtx): string | undefined;\n getProgressLog(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx?: ComputableCtx,\n ): Computable<string | undefined> | string | undefined {\n if (ctx === undefined)\n return Computable.make((ctx) => this.getProgressLog(res, patternToSearch, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);\n\n try {\n return this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log: ${e}`);\n return undefined;\n }\n throw e;\n }\n }\n\n /** Same as getProgressLog but also returns a liveliness of the log.\n * The previous getProgressLog couldn't be extended.\n * Returns a last line that has patternToSearch.\n * Notifies when a new line appeared or EOF reached. */\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ): Computable<sdk.ProgressLogWithInfo | undefined>;\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx: ComputableCtx,\n ): sdk.ProgressLogWithInfo | undefined;\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx?: ComputableCtx,\n ): Computable<sdk.ProgressLogWithInfo | undefined> | sdk.ProgressLogWithInfo | undefined {\n if (ctx === undefined)\n return Computable.make((ctx) => this.getProgressLogWithInfo(res, patternToSearch, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) {\n const log = this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);\n return {\n progressLine: log,\n live: false,\n };\n }\n\n try {\n const log = this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);\n return {\n progressLine: log,\n live: true,\n };\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(\n `NOT_FOUND in logs stream driver while getting a progress log with info: ${e}`,\n );\n return undefined;\n }\n throw e;\n }\n }\n\n /** Returns an Id of a smart object, that can read logs directly from\n * the platform. */\n getLogHandle(res: ResourceInfo | PlTreeEntry): Computable<sdk.AnyLogHandle | undefined>;\n getLogHandle(res: PlTreeEntry, ctx: ComputableCtx): sdk.AnyLogHandle | undefined;\n getLogHandle(\n res: PlTreeEntry,\n ctx?: ComputableCtx,\n ): Computable<sdk.AnyLogHandle | undefined> | sdk.AnyLogHandle | undefined {\n if (ctx === undefined) return Computable.make((ctx) => this.getLogHandle(res, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getLogHandle(stream, ctx);\n\n return this.logsStreamDriver.getLogHandle(stream, ctx);\n }\n\n async lastLines(\n handle: sdk.AnyLogHandle,\n lineCount: number,\n offsetBytes?: number,\n searchStr?: string,\n ): Promise<sdk.StreamingApiResponse> {\n if (isLiveLogHandle(handle))\n return await this.logsStreamDriver.lastLines(handle, lineCount, offsetBytes, searchStr);\n return await this.downloadDriver.lastLines(handle, lineCount, offsetBytes, searchStr);\n }\n\n async readText(\n handle: sdk.AnyLogHandle,\n lineCount: number,\n offsetBytes?: number,\n searchStr?: string,\n ): Promise<sdk.StreamingApiResponse> {\n if (isLiveLogHandle(handle))\n return await this.logsStreamDriver.readText(handle, lineCount, offsetBytes, searchStr);\n return await this.downloadDriver.readText(handle, lineCount, offsetBytes, searchStr);\n }\n}\n\nfunction isBlob(rInfo: ResourceInfo) {\n return !rInfo.type.name.startsWith(\"StreamWorkdir\");\n}\n\nfunction streamManagerGetStream(ctx: ComputableCtx, manager: PlTreeEntry) {\n return ctx.accessor(manager).node().traverse(\"stream\")?.resourceInfo;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.js","names":[],"sources":["../../src/drivers/logs.ts"],"sourcesContent":["import type { ComputableCtx } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport type { PlTreeEntry, ResourceInfo } from \"@milaboratories/pl-tree\";\nimport type { LogsStreamDriver } from \"./logs_stream\";\nimport type * as sdk from \"@milaboratories/pl-model-common\";\nimport type { MiLogger } from \"@milaboratories/ts-helpers\";\nimport type { DownloadDriver } from \"./download_blob/download_blob\";\nimport { isLiveLogHandle } from \"./helpers/logs_handle\";\nimport { isNotFoundError } from \"@milaboratories/pl-client\";\n\nexport class LogsDriver implements sdk.LogsDriver {\n constructor(\n private readonly logger: MiLogger,\n private readonly logsStreamDriver: LogsStreamDriver,\n private readonly downloadDriver: DownloadDriver,\n ) {}\n\n /** Returns all logs and schedules a job that reads remain logs.\n * Notifies when a new portion of the log appeared. */\n getLastLogs(res: PlTreeEntry, lines: number): Computable<string | undefined>;\n getLastLogs(res: PlTreeEntry, lines: number, ctx: ComputableCtx): Computable<string | undefined>;\n getLastLogs(\n res: PlTreeEntry,\n lines: number,\n ctx?: ComputableCtx,\n ): Computable<string | undefined> | string | undefined {\n if (ctx === undefined) return Computable.make((ctx) => this.getLastLogs(res, lines, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getLastLogs(stream, lines, ctx);\n\n try {\n return this.logsStreamDriver.getLastLogs(stream, lines, ctx);\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(`NOT_FOUND in logs stream driver while getting last logs: ${e}`);\n return undefined;\n }\n throw e;\n }\n }\n\n /** Returns a last line that has patternToSearch.\n * Notifies when a new line appeared or EOF reached. */\n getProgressLog(res: PlTreeEntry, patternToSearch: string): Computable<string | undefined>;\n getProgressLog(res: PlTreeEntry, patternToSearch: string, ctx: ComputableCtx): string | undefined;\n getProgressLog(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx?: ComputableCtx,\n ): Computable<string | undefined> | string | undefined {\n if (ctx === undefined)\n return Computable.make((ctx) => this.getProgressLog(res, patternToSearch, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);\n\n try {\n return this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(`NOT_FOUND in logs stream driver while getting a progress log: ${e}`);\n return undefined;\n }\n throw e;\n }\n }\n\n /** Same as getProgressLog but also returns a liveliness of the log.\n * The previous getProgressLog couldn't be extended.\n * Returns a last line that has patternToSearch.\n * Notifies when a new line appeared or EOF reached. */\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ): Computable<sdk.ProgressLogWithInfo | undefined>;\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx: ComputableCtx,\n ): sdk.ProgressLogWithInfo | undefined;\n getProgressLogWithInfo(\n res: PlTreeEntry,\n patternToSearch: string,\n ctx?: ComputableCtx,\n ): Computable<sdk.ProgressLogWithInfo | undefined> | sdk.ProgressLogWithInfo | undefined {\n if (ctx === undefined)\n return Computable.make((ctx) => this.getProgressLogWithInfo(res, patternToSearch, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) {\n const log = this.downloadDriver.getProgressLog(stream, patternToSearch, ctx);\n return {\n progressLine: log,\n live: false,\n };\n }\n\n try {\n const log = this.logsStreamDriver.getProgressLog(stream, patternToSearch, ctx);\n return {\n progressLine: log,\n live: true,\n };\n } catch (e: any) {\n if (isNotFoundError(e)) {\n ctx.markUnstable(\n `NOT_FOUND in logs stream driver while getting a progress log with info: ${e}`,\n );\n return undefined;\n }\n throw e;\n }\n }\n\n /** Returns an Id of a smart object, that can read logs directly from\n * the platform. */\n getLogHandle(res: ResourceInfo | PlTreeEntry): Computable<sdk.AnyLogHandle | undefined>;\n getLogHandle(res: PlTreeEntry, ctx: ComputableCtx): sdk.AnyLogHandle | undefined;\n getLogHandle(\n res: PlTreeEntry,\n ctx?: ComputableCtx,\n ): Computable<sdk.AnyLogHandle | undefined> | sdk.AnyLogHandle | undefined {\n if (ctx === undefined) return Computable.make((ctx) => this.getLogHandle(res, ctx));\n\n const stream = streamManagerGetStream(ctx, res);\n if (stream === undefined) {\n ctx.markUnstable(\"no stream in stream manager\");\n return undefined;\n }\n\n if (isBlob(stream)) return this.downloadDriver.getLogHandle(stream, ctx);\n\n return this.logsStreamDriver.getLogHandle(stream, ctx);\n }\n\n async lastLines(\n handle: sdk.AnyLogHandle,\n lineCount: number,\n offsetBytes?: number,\n searchStr?: string,\n ): Promise<sdk.StreamingApiResponse> {\n if (isLiveLogHandle(handle))\n return await this.logsStreamDriver.lastLines(handle, lineCount, offsetBytes, searchStr);\n return await this.downloadDriver.lastLines(handle, lineCount, offsetBytes, searchStr);\n }\n\n async readText(\n handle: sdk.AnyLogHandle,\n lineCount: number,\n offsetBytes?: number,\n searchStr?: string,\n ): Promise<sdk.StreamingApiResponse> {\n if (isLiveLogHandle(handle))\n return await this.logsStreamDriver.readText(handle, lineCount, offsetBytes, searchStr);\n return await this.downloadDriver.readText(handle, lineCount, offsetBytes, searchStr);\n }\n}\n\nfunction isBlob(rInfo: ResourceInfo) {\n return !rInfo.type.name.startsWith(\"StreamWorkdir\");\n}\n\nfunction streamManagerGetStream(ctx: ComputableCtx, manager: PlTreeEntry) {\n return ctx.accessor(manager).node().traverse(\"stream\")?.resourceInfo;\n}\n"],"mappings":"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"}