@milaboratories/pl-drivers 1.16.0 → 1.16.2
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.
- package/dist/clients/constructors.cjs.map +1 -1
- package/dist/clients/constructors.js.map +1 -1
- package/dist/clients/crc32c.cjs.map +1 -1
- package/dist/clients/crc32c.js.map +1 -1
- package/dist/clients/download.cjs +56 -5
- package/dist/clients/download.cjs.map +1 -1
- package/dist/clients/download.d.ts +13 -1
- package/dist/clients/download.d.ts.map +1 -1
- package/dist/clients/download.js +53 -2
- package/dist/clients/download.js.map +1 -1
- package/dist/clients/download_url_cache.cjs +3 -1
- package/dist/clients/download_url_cache.cjs.map +1 -1
- package/dist/clients/download_url_cache.js +2 -1
- package/dist/clients/download_url_cache.js.map +1 -1
- package/dist/clients/logs.cjs +2 -1
- package/dist/clients/logs.cjs.map +1 -1
- package/dist/clients/logs.d.ts.map +1 -1
- package/dist/clients/logs.js +2 -0
- package/dist/clients/logs.js.map +1 -1
- package/dist/clients/ls_api.cjs +1 -1
- package/dist/clients/ls_api.cjs.map +1 -1
- package/dist/clients/ls_api.d.ts.map +1 -1
- package/dist/clients/ls_api.js +1 -0
- package/dist/clients/ls_api.js.map +1 -1
- package/dist/clients/progress.cjs +2 -1
- package/dist/clients/progress.cjs.map +1 -1
- package/dist/clients/progress.d.ts.map +1 -1
- package/dist/clients/progress.js +2 -0
- package/dist/clients/progress.js.map +1 -1
- package/dist/clients/upload.cjs +7 -5
- package/dist/clients/upload.cjs.map +1 -1
- package/dist/clients/upload.d.ts.map +1 -1
- package/dist/clients/upload.js +6 -4
- package/dist/clients/upload.js.map +1 -1
- package/dist/drivers/download_blob/blob_key.cjs +1 -1
- package/dist/drivers/download_blob/blob_key.cjs.map +1 -1
- package/dist/drivers/download_blob/blob_key.js.map +1 -1
- package/dist/drivers/download_blob/download_blob.cjs +36 -7
- package/dist/drivers/download_blob/download_blob.cjs.map +1 -1
- package/dist/drivers/download_blob/download_blob.d.ts +9 -1
- package/dist/drivers/download_blob/download_blob.d.ts.map +1 -1
- package/dist/drivers/download_blob/download_blob.js +30 -1
- package/dist/drivers/download_blob/download_blob.js.map +1 -1
- package/dist/drivers/download_blob/download_blob_task.cjs +9 -3
- package/dist/drivers/download_blob/download_blob_task.cjs.map +1 -1
- package/dist/drivers/download_blob/download_blob_task.js +6 -1
- package/dist/drivers/download_blob/download_blob_task.js.map +1 -1
- package/dist/drivers/download_blob/sparse_cache/cache.cjs +9 -1
- package/dist/drivers/download_blob/sparse_cache/cache.cjs.map +1 -1
- package/dist/drivers/download_blob/sparse_cache/cache.js +8 -0
- package/dist/drivers/download_blob/sparse_cache/cache.js.map +1 -1
- package/dist/drivers/download_blob/sparse_cache/file.cjs +2 -1
- package/dist/drivers/download_blob/sparse_cache/file.cjs.map +1 -1
- package/dist/drivers/download_blob/sparse_cache/file.js +1 -1
- package/dist/drivers/download_blob/sparse_cache/file.js.map +1 -1
- package/dist/drivers/download_blob/sparse_cache/ranges.cjs +3 -1
- package/dist/drivers/download_blob/sparse_cache/ranges.cjs.map +1 -1
- package/dist/drivers/download_blob/sparse_cache/ranges.js +1 -1
- package/dist/drivers/download_blob/sparse_cache/ranges.js.map +1 -1
- package/dist/drivers/download_blob_url/driver.cjs +6 -1
- package/dist/drivers/download_blob_url/driver.cjs.map +1 -1
- package/dist/drivers/download_blob_url/driver.d.ts.map +1 -1
- package/dist/drivers/download_blob_url/driver.js +5 -0
- package/dist/drivers/download_blob_url/driver.js.map +1 -1
- package/dist/drivers/download_blob_url/driver_id.cjs +0 -1
- package/dist/drivers/download_blob_url/driver_id.cjs.map +1 -1
- package/dist/drivers/download_blob_url/driver_id.js.map +1 -1
- package/dist/drivers/download_blob_url/snapshot.cjs +0 -1
- package/dist/drivers/download_blob_url/snapshot.cjs.map +1 -1
- package/dist/drivers/download_blob_url/snapshot.d.ts +1 -2
- package/dist/drivers/download_blob_url/snapshot.d.ts.map +1 -1
- package/dist/drivers/download_blob_url/snapshot.js.map +1 -1
- package/dist/drivers/download_blob_url/task.cjs +14 -6
- package/dist/drivers/download_blob_url/task.cjs.map +1 -1
- package/dist/drivers/download_blob_url/task.d.ts +1 -1
- package/dist/drivers/download_blob_url/task.d.ts.map +1 -1
- package/dist/drivers/download_blob_url/task.js +8 -1
- package/dist/drivers/download_blob_url/task.js.map +1 -1
- package/dist/drivers/download_url/driver.cjs +41 -19
- package/dist/drivers/download_url/driver.cjs.map +1 -1
- package/dist/drivers/download_url/driver.d.ts +10 -5
- package/dist/drivers/download_url/driver.d.ts.map +1 -1
- package/dist/drivers/download_url/driver.js +40 -18
- package/dist/drivers/download_url/driver.js.map +1 -1
- package/dist/drivers/download_url/task.cjs +39 -23
- package/dist/drivers/download_url/task.cjs.map +1 -1
- package/dist/drivers/download_url/task.d.ts +20 -6
- package/dist/drivers/download_url/task.d.ts.map +1 -1
- package/dist/drivers/download_url/task.js +36 -20
- package/dist/drivers/download_url/task.js.map +1 -1
- package/dist/drivers/helpers/download_local_handle.cjs.map +1 -1
- package/dist/drivers/helpers/download_local_handle.js.map +1 -1
- package/dist/drivers/helpers/download_remote_handle.cjs +0 -1
- package/dist/drivers/helpers/download_remote_handle.cjs.map +1 -1
- package/dist/drivers/helpers/download_remote_handle.js.map +1 -1
- package/dist/drivers/helpers/files_cache.cjs +1 -1
- package/dist/drivers/helpers/files_cache.cjs.map +1 -1
- package/dist/drivers/helpers/files_cache.js +1 -0
- package/dist/drivers/helpers/files_cache.js.map +1 -1
- package/dist/drivers/helpers/helpers.cjs +1 -0
- package/dist/drivers/helpers/helpers.cjs.map +1 -1
- package/dist/drivers/helpers/helpers.d.ts.map +1 -1
- package/dist/drivers/helpers/helpers.js +1 -0
- package/dist/drivers/helpers/helpers.js.map +1 -1
- package/dist/drivers/helpers/logs_handle.cjs +3 -1
- package/dist/drivers/helpers/logs_handle.cjs.map +1 -1
- package/dist/drivers/helpers/logs_handle.js +1 -1
- package/dist/drivers/helpers/logs_handle.js.map +1 -1
- package/dist/drivers/helpers/ls_remote_import_handle.cjs.map +1 -1
- package/dist/drivers/helpers/ls_remote_import_handle.js.map +1 -1
- package/dist/drivers/helpers/ls_storage_entry.cjs +2 -1
- package/dist/drivers/helpers/ls_storage_entry.cjs.map +1 -1
- package/dist/drivers/helpers/ls_storage_entry.js +1 -1
- package/dist/drivers/helpers/ls_storage_entry.js.map +1 -1
- package/dist/drivers/helpers/polling_ops.d.ts.map +1 -1
- package/dist/drivers/helpers/read_file.cjs +2 -2
- package/dist/drivers/helpers/read_file.cjs.map +1 -1
- package/dist/drivers/helpers/read_file.js.map +1 -1
- package/dist/drivers/logs.cjs +3 -1
- package/dist/drivers/logs.cjs.map +1 -1
- package/dist/drivers/logs.js +3 -0
- package/dist/drivers/logs.js.map +1 -1
- package/dist/drivers/logs_stream.cjs +8 -1
- package/dist/drivers/logs_stream.cjs.map +1 -1
- package/dist/drivers/logs_stream.d.ts.map +1 -1
- package/dist/drivers/logs_stream.js +8 -0
- package/dist/drivers/logs_stream.js.map +1 -1
- package/dist/drivers/ls.cjs +10 -3
- package/dist/drivers/ls.cjs.map +1 -1
- package/dist/drivers/ls.d.ts.map +1 -1
- package/dist/drivers/ls.js +8 -1
- package/dist/drivers/ls.js.map +1 -1
- package/dist/drivers/types.cjs +10 -1
- package/dist/drivers/types.cjs.map +1 -1
- package/dist/drivers/types.d.ts +3 -4
- package/dist/drivers/types.d.ts.map +1 -1
- package/dist/drivers/types.js +10 -0
- package/dist/drivers/types.js.map +1 -1
- package/dist/drivers/upload.cjs +5 -1
- package/dist/drivers/upload.cjs.map +1 -1
- package/dist/drivers/upload.d.ts.map +1 -1
- package/dist/drivers/upload.js +5 -0
- package/dist/drivers/upload.js.map +1 -1
- package/dist/drivers/upload_task.cjs +6 -1
- package/dist/drivers/upload_task.cjs.map +1 -1
- package/dist/drivers/upload_task.d.ts.map +1 -1
- package/dist/drivers/upload_task.js +5 -0
- package/dist/drivers/upload_task.js.map +1 -1
- package/dist/drivers/urls/url.cjs +1 -1
- package/dist/drivers/urls/url.cjs.map +1 -1
- package/dist/drivers/urls/url.js.map +1 -1
- package/dist/drivers/virtual_storages.cjs +3 -3
- package/dist/drivers/virtual_storages.cjs.map +1 -1
- package/dist/drivers/virtual_storages.d.ts.map +1 -1
- package/dist/drivers/virtual_storages.js.map +1 -1
- package/dist/helpers/download.cjs +1 -1
- package/dist/helpers/download.cjs.map +1 -1
- package/dist/helpers/download.d.ts.map +1 -1
- package/dist/helpers/download.js +1 -0
- package/dist/helpers/download.js.map +1 -1
- package/dist/helpers/download_errors.cjs.map +1 -1
- package/dist/helpers/download_errors.d.ts.map +1 -1
- package/dist/helpers/download_errors.js.map +1 -1
- package/dist/helpers/validate.cjs +1 -1
- package/dist/helpers/validate.cjs.map +1 -1
- package/dist/helpers/validate.d.ts.map +1 -1
- package/dist/helpers/validate.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.cjs +4 -2
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.cjs +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.d.ts +3 -5
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.js +1 -0
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.d.ts +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.js +7 -3
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.cjs +4 -2
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.cjs +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.js +1 -0
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.d.ts +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.js +7 -3
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.cjs +7 -3
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.cjs +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.d.ts +3 -5
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.js +1 -0
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.d.ts +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.js +3 -3
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.cjs +8 -5
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.cjs +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.d.ts +3 -5
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.js +1 -0
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.js +5 -5
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.cjs +17 -7
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.cjs +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.js +1 -0
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.client.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.js +7 -7
- package/dist/proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/uploadapi/protocol.js.map +1 -1
- package/dist/proto-grpc/google/protobuf/duration.cjs +0 -1
- package/dist/proto-grpc/google/protobuf/duration.cjs.map +1 -1
- package/dist/proto-grpc/google/protobuf/duration.d.ts.map +1 -1
- package/dist/proto-grpc/google/protobuf/duration.js.map +1 -1
- package/dist/proto-grpc/google/protobuf/timestamp.cjs +0 -1
- package/dist/proto-grpc/google/protobuf/timestamp.cjs.map +1 -1
- package/dist/proto-grpc/google/protobuf/timestamp.d.ts.map +1 -1
- package/dist/proto-grpc/google/protobuf/timestamp.js.map +1 -1
- package/dist/proto-rest/downloadapi.d.ts +1 -1
- package/dist/proto-rest/downloadapi.d.ts.map +1 -1
- package/dist/proto-rest/index.d.ts +1 -1
- package/dist/proto-rest/index.d.ts.map +1 -1
- package/dist/proto-rest/progressapi.d.ts +1 -1
- package/dist/proto-rest/progressapi.d.ts.map +1 -1
- package/dist/proto-rest/streamingapi.d.ts +1 -1
- package/dist/proto-rest/streamingapi.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/clients/download.ts +71 -3
- package/src/drivers/download_blob/download_blob.ts +30 -1
- package/src/drivers/download_url/driver.ts +44 -19
- package/src/drivers/download_url/get_local_tgz.test.ts +106 -0
- package/src/drivers/download_url/task.ts +53 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.cjs","names":["MessageType","PbLong","UnknownFieldHandler","WireType"],"sources":["../../../../src/proto-grpc/google/protobuf/timestamp.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"google/protobuf/timestamp.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport { PbLong } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n *\n *\n * @generated from protobuf message google.protobuf.Timestamp\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n *\n * @generated from protobuf field: int64 seconds = 1\n */\n seconds: bigint;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n *\n * @generated from protobuf field: int32 nanos = 2\n */\n nanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Timestamp$Type extends MessageType<Timestamp> {\n constructor() {\n super(\"google.protobuf.Timestamp\", [\n { no: 1, name: \"seconds\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"nanos\", kind: \"scalar\", T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n /**\n * Creates a new `Timestamp` for the current time.\n */\n now(): Timestamp {\n const msg = this.create();\n const ms = Date.now();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = (ms % 1000) * 1000000;\n return msg;\n }\n /**\n * Converts a `Timestamp` to a JavaScript Date.\n */\n toDate(message: Timestamp): Date {\n return new Date(PbLong.from(message.seconds).toNumber() * 1000 + Math.ceil(message.nanos / 1000000));\n }\n /**\n * Converts a JavaScript Date to a `Timestamp`.\n */\n fromDate(date: Date): Timestamp {\n const msg = this.create();\n const ms = date.getTime();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = ((ms % 1000) + (ms < 0 && ms % 1000 !== 0 ? 1000 : 0)) * 1000000;\n return msg;\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonWrite(message: Timestamp, options: JsonWriteOptions): JsonValue {\n let ms = PbLong.from(message.seconds).toNumber() * 1000;\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new Error(\"Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (message.nanos < 0)\n throw new Error(\"Unable to encode invalid Timestamp to JSON. Nanos must not be negative.\");\n let z = \"Z\";\n if (message.nanos > 0) {\n let nanosStr = (message.nanos + 1000000000).toString().substring(1);\n if (nanosStr.substring(3) === \"000000\")\n z = \".\" + nanosStr.substring(0, 3) + \"Z\";\n else if (nanosStr.substring(6) === \"000\")\n z = \".\" + nanosStr.substring(0, 6) + \"Z\";\n else\n z = \".\" + nanosStr + \"Z\";\n }\n return new Date(ms).toISOString().replace(\".000Z\", z);\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Timestamp): Timestamp {\n if (typeof json !== \"string\")\n throw new Error(\"Unable to parse Timestamp from JSON \" + typeofJsonValue(json) + \".\");\n let matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);\n if (!matches)\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid format.\");\n let ms = Date.parse(matches[1] + \"-\" + matches[2] + \"-\" + matches[3] + \"T\" + matches[4] + \":\" + matches[5] + \":\" + matches[6] + (matches[8] ? matches[8] : \"Z\"));\n if (Number.isNaN(ms))\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid value.\");\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new globalThis.Error(\"Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (!target)\n target = this.create();\n target.seconds = PbLong.from(ms / 1000).toBigInt();\n target.nanos = 0;\n if (matches[7])\n target.nanos = (parseInt(\"1\" + matches[7] + \"0\".repeat(9 - matches[7].length)) - 1000000000);\n return target;\n }\n create(value?: PartialMessage<Timestamp>): Timestamp {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.seconds = 0n;\n message.nanos = 0;\n if (value !== undefined)\n reflectionMergePartial<Timestamp>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Timestamp): Timestamp {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 seconds */ 1:\n message.seconds = reader.int64().toBigInt();\n break;\n case /* int32 nanos */ 2:\n message.nanos = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Timestamp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 seconds = 1; */\n if (message.seconds !== 0n)\n writer.tag(1, WireType.Varint).int64(message.seconds);\n /* int32 nanos = 2; */\n if (message.nanos !== 0)\n writer.tag(2, WireType.Varint).int32(message.nanos);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Timestamp\n */\nexport const Timestamp = new Timestamp$Type();\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timestamp.cjs","names":["MessageType","PbLong","UnknownFieldHandler","WireType"],"sources":["../../../../src/proto-grpc/google/protobuf/timestamp.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"google/protobuf/timestamp.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport { PbLong } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n *\n *\n * @generated from protobuf message google.protobuf.Timestamp\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n *\n * @generated from protobuf field: int64 seconds = 1\n */\n seconds: bigint;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n *\n * @generated from protobuf field: int32 nanos = 2\n */\n nanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Timestamp$Type extends MessageType<Timestamp> {\n constructor() {\n super(\"google.protobuf.Timestamp\", [\n { no: 1, name: \"seconds\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"nanos\", kind: \"scalar\", T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n /**\n * Creates a new `Timestamp` for the current time.\n */\n now(): Timestamp {\n const msg = this.create();\n const ms = Date.now();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = (ms % 1000) * 1000000;\n return msg;\n }\n /**\n * Converts a `Timestamp` to a JavaScript Date.\n */\n toDate(message: Timestamp): Date {\n return new Date(PbLong.from(message.seconds).toNumber() * 1000 + Math.ceil(message.nanos / 1000000));\n }\n /**\n * Converts a JavaScript Date to a `Timestamp`.\n */\n fromDate(date: Date): Timestamp {\n const msg = this.create();\n const ms = date.getTime();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = ((ms % 1000) + (ms < 0 && ms % 1000 !== 0 ? 1000 : 0)) * 1000000;\n return msg;\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonWrite(message: Timestamp, options: JsonWriteOptions): JsonValue {\n let ms = PbLong.from(message.seconds).toNumber() * 1000;\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new Error(\"Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (message.nanos < 0)\n throw new Error(\"Unable to encode invalid Timestamp to JSON. Nanos must not be negative.\");\n let z = \"Z\";\n if (message.nanos > 0) {\n let nanosStr = (message.nanos + 1000000000).toString().substring(1);\n if (nanosStr.substring(3) === \"000000\")\n z = \".\" + nanosStr.substring(0, 3) + \"Z\";\n else if (nanosStr.substring(6) === \"000\")\n z = \".\" + nanosStr.substring(0, 6) + \"Z\";\n else\n z = \".\" + nanosStr + \"Z\";\n }\n return new Date(ms).toISOString().replace(\".000Z\", z);\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Timestamp): Timestamp {\n if (typeof json !== \"string\")\n throw new Error(\"Unable to parse Timestamp from JSON \" + typeofJsonValue(json) + \".\");\n let matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);\n if (!matches)\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid format.\");\n let ms = Date.parse(matches[1] + \"-\" + matches[2] + \"-\" + matches[3] + \"T\" + matches[4] + \":\" + matches[5] + \":\" + matches[6] + (matches[8] ? matches[8] : \"Z\"));\n if (Number.isNaN(ms))\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid value.\");\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new globalThis.Error(\"Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (!target)\n target = this.create();\n target.seconds = PbLong.from(ms / 1000).toBigInt();\n target.nanos = 0;\n if (matches[7])\n target.nanos = (parseInt(\"1\" + matches[7] + \"0\".repeat(9 - matches[7].length)) - 1000000000);\n return target;\n }\n create(value?: PartialMessage<Timestamp>): Timestamp {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.seconds = 0n;\n message.nanos = 0;\n if (value !== undefined)\n reflectionMergePartial<Timestamp>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Timestamp): Timestamp {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 seconds */ 1:\n message.seconds = reader.int64().toBigInt();\n break;\n case /* int32 nanos */ 2:\n message.nanos = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Timestamp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 seconds = 1; */\n if (message.seconds !== 0n)\n writer.tag(1, WireType.Varint).int64(message.seconds);\n /* int32 nanos = 2; */\n if (message.nanos !== 0)\n writer.tag(2, WireType.Varint).int32(message.nanos);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Timestamp\n */\nexport const Timestamp = new Timestamp$Type();\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.d.ts","names":[],"sources":["../../../../src/proto-grpc/google/protobuf/timestamp.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"timestamp.d.ts","names":[],"sources":["../../../../src/proto-grpc/google/protobuf/timestamp.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8Q8G;AAgB9G;;;;AAA6C;;;;;;;;;;UAhJ5B,SAAA;;;;;;;;EAQb,OAAA;;;;;;;;;EASA,KAAK;AAAA;AAAA,cAGH,cAAA,SAAuB,WAAA,CAAY,SAAA;;;;;EAUrC,GAAA,IAAO,SAAA;;;;EAUP,MAAA,CAAO,OAAA,EAAS,SAAA,GAAY,IAAA;;;;EAM5B,QAAA,CAAS,IAAA,EAAM,IAAA,GAAO,SAAA;;;;;EAWtB,iBAAA,CAAkB,OAAA,EAAS,SAAA,EAAW,OAAA,EAAS,gBAAA,GAAmB,SAAA;;;;;EAsBlE,gBAAA,CAAiB,IAAA,EAAM,SAAA,EAAW,OAAA,EAAS,eAAA,EAAiB,MAAA,GAAS,SAAA,GAAY,SAAA;EAmBjF,MAAA,CAAO,KAAA,GAAQ,cAAA,CAAe,SAAA,IAAa,SAAA;EAQ3C,kBAAA,CAAmB,MAAA,EAAQ,aAAA,EAAe,MAAA,UAAgB,OAAA,EAAS,iBAAA,EAAmB,MAAA,GAAS,SAAA,GAAY,SAAA;EAsB3G,mBAAA,CAAoB,OAAA,EAAS,SAAA,EAAW,MAAA,EAAQ,aAAA,EAAe,OAAA,EAAS,kBAAA,GAAqB,aAAA;AAAA;;;;cAgBpF,SAAA,EAAS,cAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.js","names":[],"sources":["../../../../src/proto-grpc/google/protobuf/timestamp.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"google/protobuf/timestamp.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport { PbLong } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n *\n *\n * @generated from protobuf message google.protobuf.Timestamp\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n *\n * @generated from protobuf field: int64 seconds = 1\n */\n seconds: bigint;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n *\n * @generated from protobuf field: int32 nanos = 2\n */\n nanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Timestamp$Type extends MessageType<Timestamp> {\n constructor() {\n super(\"google.protobuf.Timestamp\", [\n { no: 1, name: \"seconds\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"nanos\", kind: \"scalar\", T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n /**\n * Creates a new `Timestamp` for the current time.\n */\n now(): Timestamp {\n const msg = this.create();\n const ms = Date.now();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = (ms % 1000) * 1000000;\n return msg;\n }\n /**\n * Converts a `Timestamp` to a JavaScript Date.\n */\n toDate(message: Timestamp): Date {\n return new Date(PbLong.from(message.seconds).toNumber() * 1000 + Math.ceil(message.nanos / 1000000));\n }\n /**\n * Converts a JavaScript Date to a `Timestamp`.\n */\n fromDate(date: Date): Timestamp {\n const msg = this.create();\n const ms = date.getTime();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = ((ms % 1000) + (ms < 0 && ms % 1000 !== 0 ? 1000 : 0)) * 1000000;\n return msg;\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonWrite(message: Timestamp, options: JsonWriteOptions): JsonValue {\n let ms = PbLong.from(message.seconds).toNumber() * 1000;\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new Error(\"Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (message.nanos < 0)\n throw new Error(\"Unable to encode invalid Timestamp to JSON. Nanos must not be negative.\");\n let z = \"Z\";\n if (message.nanos > 0) {\n let nanosStr = (message.nanos + 1000000000).toString().substring(1);\n if (nanosStr.substring(3) === \"000000\")\n z = \".\" + nanosStr.substring(0, 3) + \"Z\";\n else if (nanosStr.substring(6) === \"000\")\n z = \".\" + nanosStr.substring(0, 6) + \"Z\";\n else\n z = \".\" + nanosStr + \"Z\";\n }\n return new Date(ms).toISOString().replace(\".000Z\", z);\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Timestamp): Timestamp {\n if (typeof json !== \"string\")\n throw new Error(\"Unable to parse Timestamp from JSON \" + typeofJsonValue(json) + \".\");\n let matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);\n if (!matches)\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid format.\");\n let ms = Date.parse(matches[1] + \"-\" + matches[2] + \"-\" + matches[3] + \"T\" + matches[4] + \":\" + matches[5] + \":\" + matches[6] + (matches[8] ? matches[8] : \"Z\"));\n if (Number.isNaN(ms))\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid value.\");\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new globalThis.Error(\"Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (!target)\n target = this.create();\n target.seconds = PbLong.from(ms / 1000).toBigInt();\n target.nanos = 0;\n if (matches[7])\n target.nanos = (parseInt(\"1\" + matches[7] + \"0\".repeat(9 - matches[7].length)) - 1000000000);\n return target;\n }\n create(value?: PartialMessage<Timestamp>): Timestamp {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.seconds = 0n;\n message.nanos = 0;\n if (value !== undefined)\n reflectionMergePartial<Timestamp>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Timestamp): Timestamp {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 seconds */ 1:\n message.seconds = reader.int64().toBigInt();\n break;\n case /* int32 nanos */ 2:\n message.nanos = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Timestamp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 seconds = 1; */\n if (message.seconds !== 0n)\n writer.tag(1, WireType.Varint).int64(message.seconds);\n /* int32 nanos = 2; */\n if (message.nanos !== 0)\n writer.tag(2, WireType.Varint).int32(message.nanos);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Timestamp\n */\nexport const Timestamp = new Timestamp$Type();\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timestamp.js","names":[],"sources":["../../../../src/proto-grpc/google/protobuf/timestamp.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"google/protobuf/timestamp.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport { PbLong } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n *\n *\n * @generated from protobuf message google.protobuf.Timestamp\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n *\n * @generated from protobuf field: int64 seconds = 1\n */\n seconds: bigint;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n *\n * @generated from protobuf field: int32 nanos = 2\n */\n nanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Timestamp$Type extends MessageType<Timestamp> {\n constructor() {\n super(\"google.protobuf.Timestamp\", [\n { no: 1, name: \"seconds\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"nanos\", kind: \"scalar\", T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n /**\n * Creates a new `Timestamp` for the current time.\n */\n now(): Timestamp {\n const msg = this.create();\n const ms = Date.now();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = (ms % 1000) * 1000000;\n return msg;\n }\n /**\n * Converts a `Timestamp` to a JavaScript Date.\n */\n toDate(message: Timestamp): Date {\n return new Date(PbLong.from(message.seconds).toNumber() * 1000 + Math.ceil(message.nanos / 1000000));\n }\n /**\n * Converts a JavaScript Date to a `Timestamp`.\n */\n fromDate(date: Date): Timestamp {\n const msg = this.create();\n const ms = date.getTime();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = ((ms % 1000) + (ms < 0 && ms % 1000 !== 0 ? 1000 : 0)) * 1000000;\n return msg;\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonWrite(message: Timestamp, options: JsonWriteOptions): JsonValue {\n let ms = PbLong.from(message.seconds).toNumber() * 1000;\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new Error(\"Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (message.nanos < 0)\n throw new Error(\"Unable to encode invalid Timestamp to JSON. Nanos must not be negative.\");\n let z = \"Z\";\n if (message.nanos > 0) {\n let nanosStr = (message.nanos + 1000000000).toString().substring(1);\n if (nanosStr.substring(3) === \"000000\")\n z = \".\" + nanosStr.substring(0, 3) + \"Z\";\n else if (nanosStr.substring(6) === \"000\")\n z = \".\" + nanosStr.substring(0, 6) + \"Z\";\n else\n z = \".\" + nanosStr + \"Z\";\n }\n return new Date(ms).toISOString().replace(\".000Z\", z);\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Timestamp): Timestamp {\n if (typeof json !== \"string\")\n throw new Error(\"Unable to parse Timestamp from JSON \" + typeofJsonValue(json) + \".\");\n let matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);\n if (!matches)\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid format.\");\n let ms = Date.parse(matches[1] + \"-\" + matches[2] + \"-\" + matches[3] + \"T\" + matches[4] + \":\" + matches[5] + \":\" + matches[6] + (matches[8] ? matches[8] : \"Z\"));\n if (Number.isNaN(ms))\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid value.\");\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new globalThis.Error(\"Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (!target)\n target = this.create();\n target.seconds = PbLong.from(ms / 1000).toBigInt();\n target.nanos = 0;\n if (matches[7])\n target.nanos = (parseInt(\"1\" + matches[7] + \"0\".repeat(9 - matches[7].length)) - 1000000000);\n return target;\n }\n create(value?: PartialMessage<Timestamp>): Timestamp {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.seconds = 0n;\n message.nanos = 0;\n if (value !== undefined)\n reflectionMergePartial<Timestamp>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Timestamp): Timestamp {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 seconds */ 1:\n message.seconds = reader.int64().toBigInt();\n break;\n case /* int32 nanos */ 2:\n message.nanos = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Timestamp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 seconds = 1; */\n if (message.seconds !== 0n)\n writer.tag(1, WireType.Varint).int64(message.seconds);\n /* int32 nanos = 2; */\n if (message.nanos !== 0)\n writer.tag(2, WireType.Varint).int32(message.nanos);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Timestamp\n */\nexport const Timestamp = new Timestamp$Type();\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadapi.d.ts","names":[],"sources":["../../src/proto-rest/downloadapi.ts"],"mappings":";;AAKA;;;UAAiB,KAAA;EACf,sBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IACA,IAAA,EAAM,
|
|
1
|
+
{"version":3,"file":"downloadapi.d.ts","names":[],"sources":["../../src/proto-rest/downloadapi.ts"],"mappings":";;AAKA;;;UAAiB,KAAA;EACf,sBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IACA,IAAA,EAAM,UAAU;IAChB,MAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA;AAAA;AAAA,UAIa,UAAA;EACf,OAAA;IACE,qCAAA;MACE,IAAA;MACA,KAAA;IAAA;IAEF,kCAAA;MACE,UAAA;MAAA;;;;MAKA,iBAAA;MAUA;;;;;MAJA,aAAA;IAAA;IAEF,mCAAA;MACE,WAAA;MACA,OAAA,EAAS,UAAA;IAAA,GAuBb;IApBE,iBAAA;MAsBF,uDApBI,OAAA;IAAA;MAAA,CAEC,GAAA;IAAA,GAsBoB;IAnBvB,MAAA;MA6BwB;;;;MAxBtB,IAAA,UAeJ;MAbI,OAAA,UAeA;MAbA,OAAA,EAAS,UAAU;IAAA;EAAA;EAGvB,SAAA;EACA,UAAA;EACA,aAAA;EACA,OAAA;EACA,SAAA;AAAA;AAAA,UAGe,UAAA;EACf,uBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,WAAA;MACE,OAAA;QACE,kBAAA,EAAoB,UAAA;MAAA;IAAA;IAGxB,SAAA;4BAEE,GAAA;QACE,OAAA;UAAA,CACG,IAAA;QAAA;QAEH,OAAA;UACE,kBAAA,EAAoB,UAAA;QAAA;MAAA;MAIxB,OAAA;QACE,OAAA;UAAA,CACG,IAAA;QAAA;QAEH,OAAA;UACE,kBAAA,EAAoB,UAAA;QAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -8,5 +8,5 @@ type DownloadRestClientType = Client<paths>;
|
|
|
8
8
|
type ProgressRestClientType = Client<paths$1>;
|
|
9
9
|
type StreamingRestClientType = Client<paths$2>;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { DownloadRestClientType, ProgressRestClientType, StreamingRestClientType };
|
|
11
|
+
export { type paths as DownloadApiPaths, DownloadRestClientType, type paths$1 as ProgressApiPaths, ProgressRestClientType, type paths$2 as StreamingApiPaths, StreamingRestClientType };
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/proto-rest/index.ts"],"mappings":";;;;;;KAeY,sBAAA,GAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/proto-rest/index.ts"],"mappings":";;;;;;KAeY,sBAAA,GAAyB,MAAM,CAAC,KAAA;AAAA,KAShC,sBAAA,GAAyB,MAAM,CAAC,OAAA;AAAA,KAGhC,uBAAA,GAA0B,MAAM,CAAC,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressapi.d.ts","names":[],"sources":["../../src/proto-rest/progressapi.ts"],"mappings":";;AAKA;;;UAAiB,KAAA;EACf,kBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IACA,IAAA,EAAM,UAAA;IACN,MAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA;EAEF,uBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IACA,IAAA,EAAM,
|
|
1
|
+
{"version":3,"file":"progressapi.d.ts","names":[],"sources":["../../src/proto-rest/progressapi.ts"],"mappings":";;AAKA;;;UAAiB,KAAA;EACf,kBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IACA,IAAA,EAAM,UAAA;IACN,MAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA;EAEF,uBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IACA,IAAA,EAAM,UAAU;IAChB,MAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA;AAAA;AAAA,UAIa,UAAA;EACf,OAAA;IAuBY,kIArBV,iBAAA;MA0CqB,uDAxCnB,OAAA;IAAA;MAAA,CAEC,GAAA;IAAA;IAEH,6BAAA;MACE,UAAA,UAAA;MAEA,iBAAA;IAAA;IAEF,8BAAA;MACE,MAAA,EAAQ,UAAA;IAAA;IAEV,kCAAA;MACE,UAAA,UAGA;MADA,iBAAA;MACA,cAAA;IAAA;IAEF,mCAAA;MACE,MAAA,EAAQ,UAAA;IAAA;IAEV,kBAAA;MAKE,oBAHA,QAAA;MACA,cAAA;MACA,UAAA;MACA,IAAA,WAcA;MAZA,IAAA;IAAA,GAgBJ;IAbE,MAAA;MAeF;;;AACS;MAXL,IAAA,UAcqB;MAZrB,OAAA,UAsBsB;MApBtB,OAAA,EAAS,UAAA;IAAA;EAAA;EAGb,SAAA;EACA,UAAA;EACA,aAAA;EACA,OAAA;EACA,SAAA;AAAA;AAAA,UAGe,UAAA;EACf,kBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,WAAA;MACE,OAAA;QACE,kBAAA,EAAoB,UAAA;MAAA;IAAA;IAGxB,SAAA;MAWE,sBATA,GAAA;QACE,OAAA;UAAA,CACG,IAAA;QAAA;QAEH,OAAA;UACE,kBAAA,EAAoB,UAAA;QAAA;MAAA,GAiBxB;MAbA,OAAA;QACE,OAAA;UAAA,CACG,IAAA;QAAA;QAEH,OAAA;UACE,kBAAA,EAAoB,UAAA;QAAA;MAAA;IAAA;EAAA;EAK5B,uBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,WAAA;MACE,OAAA;QACE,kBAAA,EAAoB,UAAA;MAAA;IAAA;IAGxB,SAAA;4BAEE,GAAA;QACE,OAAA;UAAA,CACG,IAAA;QAAA;QAEH,OAAA;UACE,kBAAA,EAAoB,UAAA;QAAA;MAAA;MAIxB,OAAA;QACE,OAAA;UAAA,CACG,IAAA;QAAA;QAEH,OAAA;UACE,kBAAA,EAAoB,UAAA;QAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingapi.d.ts","names":[],"sources":["../../src/proto-rest/streamingapi.ts"],"mappings":";;AAKA;;;UAAiB,KAAA;EACf,gBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IAHE;;;;;;;;;;IAcF,IAAA,EAAM,UAAA;IACN,MAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA;EAEF,iBAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IAeA;;;;;;IARA,IAAA,EAAM,UAAA;IACN,MAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA;EAEF,eAAA;IACE,UAAA;MACE,KAAA;MACA,MAAA;MACA,IAAA;MACA,MAAA;IAAA;IAEF,GAAA;IACA,GAAA;IAqBE;;;;;;IAdF,IAAA,EAAM,UAAA;IACN,MAAA;IACA,OAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA;AAAA;AAAA,UAIa,UAAA;EACf,OAAA;IA+DI,kIA7DF,iBAAA;MAuEA,uDArEE,OAAA;IAAA;MAAA,CAEC,GAAA;IAAA,GAiGD;IA9FF,MAAA;MAsGA;;;;MAjGE,IAAA,UA2HJ;MAzHI,OAAA,UA2HJ;MAzHI,OAAA,EAAS,
|
|
1
|
+
{"version":3,"file":"streamingapi.d.ts","names":[],"sources":["../../src/proto-rest/streamingapi.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/pl-drivers",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.2",
|
|
4
4
|
"description": "Drivers and a low-level clients for log streaming, downloading and uploading files from and to pl",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**/*",
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"tar-fs": "^3.0.9",
|
|
30
30
|
"undici": "~7.16.0",
|
|
31
31
|
"zod": "~3.25.76",
|
|
32
|
-
"@milaboratories/pl-client": "3.11.4",
|
|
33
32
|
"@milaboratories/computable": "2.9.5",
|
|
34
|
-
"@milaboratories/pl-model-common": "1.46.1",
|
|
35
33
|
"@milaboratories/helpers": "1.14.2",
|
|
34
|
+
"@milaboratories/pl-model-common": "1.46.2",
|
|
35
|
+
"@milaboratories/pl-tree": "1.12.14",
|
|
36
36
|
"@milaboratories/ts-helpers": "1.8.3",
|
|
37
|
-
"@milaboratories/pl-
|
|
37
|
+
"@milaboratories/pl-client": "3.12.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/decompress": "^4.2.7",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"openapi-typescript": "^7.10.0",
|
|
45
45
|
"typescript": "~5.9.3",
|
|
46
46
|
"vitest": "^4.1.3",
|
|
47
|
-
"@milaboratories/
|
|
47
|
+
"@milaboratories/build-configs": "2.0.0",
|
|
48
48
|
"@milaboratories/test-helpers": "1.2.2",
|
|
49
|
-
"@milaboratories/ts-
|
|
50
|
-
"@milaboratories/
|
|
49
|
+
"@milaboratories/ts-builder": "1.6.0",
|
|
50
|
+
"@milaboratories/ts-configs": "1.3.0"
|
|
51
51
|
},
|
|
52
52
|
"engines": {
|
|
53
53
|
"node": ">=22"
|
package/src/clients/download.ts
CHANGED
|
@@ -25,9 +25,12 @@ import { validateAbsolute } from "../helpers/validate";
|
|
|
25
25
|
import type { DownloadAPI_GetDownloadURL_Response } from "../proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol";
|
|
26
26
|
import { DownloadClient } from "../proto-grpc/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client";
|
|
27
27
|
import type { DownloadApiPaths, DownloadRestClientType } from "../proto-rest";
|
|
28
|
-
import { type GetContentOptions } from "@milaboratories/pl-model-common";
|
|
28
|
+
import { type GetContentOptions, type BlobDriverMetrics } from "@milaboratories/pl-model-common";
|
|
29
29
|
import { DownloadUrlCache } from "./download_url_cache";
|
|
30
30
|
|
|
31
|
+
/** Subset of {@link BlobDriverMetrics} owned by the download client (presigned cache + in-flight downloads). */
|
|
32
|
+
type ClientDownloadMetrics = Omit<BlobDriverMetrics, "uncachedRequests" | "uncachedRequestBytes">;
|
|
33
|
+
|
|
31
34
|
/** Gets URLs for downloading from pl-core, parses them and reads or downloads
|
|
32
35
|
* files locally and from the web. */
|
|
33
36
|
export class ClientDownload {
|
|
@@ -43,6 +46,13 @@ export class ClientDownload {
|
|
|
43
46
|
/** Caches presigned download URLs by resource id until they (almost) expire. */
|
|
44
47
|
private readonly urlCache: DownloadUrlCache;
|
|
45
48
|
|
|
49
|
+
/** Active remote downloads; in-flight gauges are summed over this set on read. */
|
|
50
|
+
private readonly inFlight = new Set<{ size: number; received: number }>();
|
|
51
|
+
private presignedUrlCacheHits = 0;
|
|
52
|
+
private presignedUrlCacheMisses = 0;
|
|
53
|
+
private presignedUrlStaleHits = 0;
|
|
54
|
+
private presignedUrlRequestSumLatencyMs = 0;
|
|
55
|
+
|
|
46
56
|
constructor(
|
|
47
57
|
wireClientProviderFactory: WireClientProviderFactory,
|
|
48
58
|
public readonly httpClient: Dispatcher,
|
|
@@ -95,7 +105,7 @@ export class ClientDownload {
|
|
|
95
105
|
const timer = PerfTimer.start();
|
|
96
106
|
const result = isLocal(downloadUrl)
|
|
97
107
|
? await this.withLocalFileContent(downloadUrl, ops, handler)
|
|
98
|
-
: await this.
|
|
108
|
+
: await this.withTrackedRemoteContent(downloadUrl, remoteHeaders, ops, handler);
|
|
99
109
|
|
|
100
110
|
this.logger.info(
|
|
101
111
|
`blob ${stringifyWithResourceId(info)} download finished, ` + `took: ${timer.elapsed()}`,
|
|
@@ -106,22 +116,80 @@ export class ClientDownload {
|
|
|
106
116
|
const cached = this.urlCache.get(info.id);
|
|
107
117
|
if (cached !== undefined) {
|
|
108
118
|
try {
|
|
109
|
-
|
|
119
|
+
const result = await attempt(cached);
|
|
120
|
+
this.presignedUrlCacheHits++;
|
|
121
|
+
return result;
|
|
110
122
|
} catch (error) {
|
|
111
123
|
if (!isDownloadNetworkError400(error)) throw error;
|
|
112
124
|
this.urlCache.delete(info.id);
|
|
125
|
+
this.presignedUrlStaleHits++;
|
|
113
126
|
this.logger.info(
|
|
114
127
|
`cached download URL for blob ${stringifyWithResourceId(info)} rejected ` +
|
|
115
128
|
`(status ${error.statusCode}), re-fetching`,
|
|
116
129
|
);
|
|
117
130
|
}
|
|
131
|
+
} else {
|
|
132
|
+
this.presignedUrlCacheMisses++;
|
|
118
133
|
}
|
|
119
134
|
|
|
135
|
+
const urlFetchStartMs = performance.now();
|
|
120
136
|
const fresh = await this.grpcGetDownloadUrl(info, options, ops.signal);
|
|
137
|
+
this.presignedUrlRequestSumLatencyMs += performance.now() - urlFetchStartMs;
|
|
121
138
|
this.urlCache.set(info.id, fresh);
|
|
122
139
|
return await attempt(fresh);
|
|
123
140
|
}
|
|
124
141
|
|
|
142
|
+
/** Download-client-owned slice of {@link BlobDriverMetrics}: presigned-URL cache + in-flight downloads. */
|
|
143
|
+
metrics(): ClientDownloadMetrics {
|
|
144
|
+
let inFlightBytesTotal = 0;
|
|
145
|
+
let inFlightBytesReceived = 0;
|
|
146
|
+
for (const rec of this.inFlight) {
|
|
147
|
+
inFlightBytesTotal += rec.size;
|
|
148
|
+
inFlightBytesReceived += rec.received;
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
downloadsInFlight: this.inFlight.size,
|
|
152
|
+
inFlightBytesTotal,
|
|
153
|
+
inFlightBytesReceived,
|
|
154
|
+
presignedUrlCacheHits: this.presignedUrlCacheHits,
|
|
155
|
+
presignedUrlCacheMisses: this.presignedUrlCacheMisses,
|
|
156
|
+
presignedUrlStaleHits: this.presignedUrlStaleHits,
|
|
157
|
+
presignedUrlRequestSumLatencyMs: this.presignedUrlRequestSumLatencyMs,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/** Wraps a remote download so it appears in the in-flight gauges and its received bytes are counted live. */
|
|
162
|
+
private async withTrackedRemoteContent<T>(
|
|
163
|
+
url: string,
|
|
164
|
+
headers: Record<string, string>,
|
|
165
|
+
ops: GetContentOptions,
|
|
166
|
+
handler: ContentHandler<T>,
|
|
167
|
+
): Promise<T> {
|
|
168
|
+
const rec = { size: 0, received: 0 };
|
|
169
|
+
this.inFlight.add(rec);
|
|
170
|
+
try {
|
|
171
|
+
return await this.remoteFileDownloader.withContent(
|
|
172
|
+
url,
|
|
173
|
+
headers,
|
|
174
|
+
ops,
|
|
175
|
+
async (content, size) => {
|
|
176
|
+
rec.size = size;
|
|
177
|
+
const counted = content.pipeThrough(
|
|
178
|
+
new TransformStream<Uint8Array, Uint8Array>({
|
|
179
|
+
transform: (chunk, controller) => {
|
|
180
|
+
rec.received += chunk.byteLength;
|
|
181
|
+
controller.enqueue(chunk);
|
|
182
|
+
},
|
|
183
|
+
}),
|
|
184
|
+
);
|
|
185
|
+
return await handler(counted, size);
|
|
186
|
+
},
|
|
187
|
+
);
|
|
188
|
+
} finally {
|
|
189
|
+
this.inFlight.delete(rec);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
125
193
|
async withLocalFileContent<T>(
|
|
126
194
|
url: string,
|
|
127
195
|
ops: GetContentOptions,
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
import type {
|
|
10
10
|
AnyLogHandle,
|
|
11
11
|
BlobDriver,
|
|
12
|
+
BlobDriverMetrics,
|
|
12
13
|
ContentHandler,
|
|
13
14
|
GetContentOptions,
|
|
14
15
|
LocalBlobHandle,
|
|
@@ -101,6 +102,10 @@ export class DownloadDriver implements BlobDriver, AsyncDisposable {
|
|
|
101
102
|
|
|
102
103
|
private readonly saveDir: string;
|
|
103
104
|
|
|
105
|
+
/** Downloads that bypassed the ranges cache; counted when issued. */
|
|
106
|
+
private uncachedRequests = 0;
|
|
107
|
+
private uncachedRequestBytes = 0;
|
|
108
|
+
|
|
104
109
|
constructor(
|
|
105
110
|
private readonly logger: MiLogger,
|
|
106
111
|
private readonly clientDownload: ClientDownload,
|
|
@@ -341,6 +346,18 @@ export class DownloadDriver implements BlobDriver, AsyncDisposable {
|
|
|
341
346
|
});
|
|
342
347
|
}
|
|
343
348
|
|
|
349
|
+
/**
|
|
350
|
+
* Operational metrics for a monitoring panel. Serv cache metrics are reported separately
|
|
351
|
+
* (different owner) — the panel composes both.
|
|
352
|
+
*/
|
|
353
|
+
public getMetrics(): BlobDriverMetrics {
|
|
354
|
+
return {
|
|
355
|
+
uncachedRequests: this.uncachedRequests,
|
|
356
|
+
uncachedRequestBytes: this.uncachedRequestBytes,
|
|
357
|
+
...this.clientDownload.metrics(),
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
|
|
344
361
|
private async getContentImpl({
|
|
345
362
|
handle,
|
|
346
363
|
options,
|
|
@@ -399,12 +416,24 @@ export class DownloadDriver implements BlobDriver, AsyncDisposable {
|
|
|
399
416
|
|
|
400
417
|
if (filePath) return await withFileContent({ path: filePath, range, signal, handler });
|
|
401
418
|
|
|
419
|
+
if (bypassRangesCache) this.uncachedRequests++;
|
|
420
|
+
|
|
402
421
|
return await this.clientDownload.withBlobContent(
|
|
403
422
|
result.info,
|
|
404
423
|
{ signal },
|
|
405
424
|
options,
|
|
406
425
|
async (content, size) => {
|
|
407
|
-
if (bypassRangesCache)
|
|
426
|
+
if (bypassRangesCache) {
|
|
427
|
+
const counted = content.pipeThrough(
|
|
428
|
+
new TransformStream<Uint8Array, Uint8Array>({
|
|
429
|
+
transform: (chunk, controller) => {
|
|
430
|
+
this.uncachedRequestBytes += chunk.byteLength;
|
|
431
|
+
controller.enqueue(chunk);
|
|
432
|
+
},
|
|
433
|
+
}),
|
|
434
|
+
);
|
|
435
|
+
return await handler(counted, size);
|
|
436
|
+
}
|
|
408
437
|
|
|
409
438
|
const [handlerStream, cacheStream] = content.tee();
|
|
410
439
|
|
|
@@ -12,6 +12,7 @@ import { stringifyWithResourceId } from "@milaboratories/pl-client";
|
|
|
12
12
|
import type { BlockUIURL, FrontendDriver } from "@milaboratories/pl-model-common";
|
|
13
13
|
import { isBlockUIURL } from "@milaboratories/pl-model-common";
|
|
14
14
|
import { getPathForBlockUIURL } from "../urls/url";
|
|
15
|
+
import type { DownloadSource } from "./task";
|
|
15
16
|
import { DownloadByUrlTask, rmRFDir, URLAborted } from "./task";
|
|
16
17
|
|
|
17
18
|
export interface DownloadUrlSyncReader {
|
|
@@ -50,7 +51,7 @@ export type DownloadUrlDriverOps = {
|
|
|
50
51
|
export class DownloadUrlDriver implements DownloadUrlSyncReader, FrontendDriver {
|
|
51
52
|
private readonly downloadHelper: RemoteFileDownloader;
|
|
52
53
|
|
|
53
|
-
private
|
|
54
|
+
private taskByKey: Map<string, DownloadByUrlTask> = new Map();
|
|
54
55
|
private downloadQueue: TaskProcessor;
|
|
55
56
|
|
|
56
57
|
/** Writes and removes files to a hard drive and holds a counter for every
|
|
@@ -83,13 +84,36 @@ export class DownloadUrlDriver implements DownloadUrlSyncReader, FrontendDriver
|
|
|
83
84
|
getUrl(url: URL, ctx?: ComputableCtx): Computable<UrlResult | undefined> | UrlResult | undefined {
|
|
84
85
|
// wrap result as computable, if we were not given an existing computable context
|
|
85
86
|
if (ctx === undefined) return Computable.make((c) => this.getUrl(url, c));
|
|
87
|
+
return this.getResult({ type: "url", url }, url.toString(), ctx);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
getLocalTgz(path: string, mtime: string, ctx: ComputableCtx): UrlResult | undefined;
|
|
91
|
+
getLocalTgz(path: string, mtime: string): Computable<UrlResult | undefined>;
|
|
92
|
+
|
|
93
|
+
/** Mirror of {@link getUrl} for a local `.tgz` archive: lazily unpacks it
|
|
94
|
+
* into the recycled cache (so a live UI keeps the folder pinned) and returns
|
|
95
|
+
* a custom-protocol URL. Keyed on `path + ":" + mtime`, so the unpacked UI is
|
|
96
|
+
* re-derived when the source block changes. */
|
|
97
|
+
getLocalTgz(
|
|
98
|
+
path: string,
|
|
99
|
+
mtime: string,
|
|
100
|
+
ctx?: ComputableCtx,
|
|
101
|
+
): Computable<UrlResult | undefined> | UrlResult | undefined {
|
|
102
|
+
if (ctx === undefined) return Computable.make((c) => this.getLocalTgz(path, mtime, c));
|
|
103
|
+
return this.getResult({ type: "local-tgz", path, mtime }, `${path}:${mtime}`, ctx);
|
|
104
|
+
}
|
|
86
105
|
|
|
106
|
+
private getResult(
|
|
107
|
+
source: DownloadSource,
|
|
108
|
+
key: string,
|
|
109
|
+
ctx: ComputableCtx,
|
|
110
|
+
): UrlResult | undefined {
|
|
87
111
|
const callerId = randomUUID();
|
|
88
112
|
|
|
89
113
|
// read as ~ golang's defer
|
|
90
|
-
ctx.addOnDestroy(() => this.
|
|
114
|
+
ctx.addOnDestroy(() => this.releaseByKey(key, callerId));
|
|
91
115
|
|
|
92
|
-
const result = this.
|
|
116
|
+
const result = this.getResultNoCtx(source, key, ctx.watcher, callerId);
|
|
93
117
|
if (result?.url === undefined)
|
|
94
118
|
ctx.markUnstable(
|
|
95
119
|
`a path to the downloaded and untared archive might be undefined. The current result: ${result}`,
|
|
@@ -98,16 +122,15 @@ export class DownloadUrlDriver implements DownloadUrlSyncReader, FrontendDriver
|
|
|
98
122
|
return result;
|
|
99
123
|
}
|
|
100
124
|
|
|
101
|
-
|
|
102
|
-
const
|
|
103
|
-
const task = this.urlToDownload.get(key);
|
|
125
|
+
private getResultNoCtx(source: DownloadSource, key: string, w: Watcher, callerId: string) {
|
|
126
|
+
const task = this.taskByKey.get(key);
|
|
104
127
|
|
|
105
128
|
if (task !== undefined) {
|
|
106
129
|
task.attach(w, callerId);
|
|
107
130
|
return task.getUrl();
|
|
108
131
|
}
|
|
109
132
|
|
|
110
|
-
const newTask = this.setNewTask(w,
|
|
133
|
+
const newTask = this.setNewTask(w, source, key, callerId);
|
|
111
134
|
this.downloadQueue.push({
|
|
112
135
|
fn: async () => this.downloadUrl(newTask, callerId),
|
|
113
136
|
recoverableErrorPredicate: (e) => !(e instanceof URLAborted) && !isDownloadNetworkError400(e),
|
|
@@ -133,9 +156,8 @@ export class DownloadUrlDriver implements DownloadUrlSyncReader, FrontendDriver
|
|
|
133
156
|
|
|
134
157
|
/** Removes a directory and aborts a downloading task when all callers
|
|
135
158
|
* are not interested in it. */
|
|
136
|
-
async
|
|
137
|
-
const
|
|
138
|
-
const task = this.urlToDownload.get(key);
|
|
159
|
+
async releaseByKey(key: string, callerId: string): Promise<void> {
|
|
160
|
+
const task = this.taskByKey.get(key);
|
|
139
161
|
if (task == undefined) return;
|
|
140
162
|
|
|
141
163
|
if (this.cache.existsFile(task.path)) {
|
|
@@ -169,7 +191,7 @@ export class DownloadUrlDriver implements DownloadUrlSyncReader, FrontendDriver
|
|
|
169
191
|
this.downloadQueue.stop();
|
|
170
192
|
|
|
171
193
|
await Promise.all(
|
|
172
|
-
Array.from(this.
|
|
194
|
+
Array.from(this.taskByKey.entries()).map(async ([, task]) => {
|
|
173
195
|
await rmRFDir(task.path);
|
|
174
196
|
this.cache.removeCache(task);
|
|
175
197
|
|
|
@@ -181,28 +203,31 @@ export class DownloadUrlDriver implements DownloadUrlSyncReader, FrontendDriver
|
|
|
181
203
|
);
|
|
182
204
|
}
|
|
183
205
|
|
|
184
|
-
private setNewTask(w: Watcher,
|
|
206
|
+
private setNewTask(w: Watcher, source: DownloadSource, key: string, callerId: string) {
|
|
185
207
|
const result = new DownloadByUrlTask(
|
|
186
208
|
this.logger,
|
|
187
|
-
this.
|
|
188
|
-
|
|
209
|
+
this.getExtractionPath(key),
|
|
210
|
+
source,
|
|
211
|
+
key,
|
|
189
212
|
this.signer,
|
|
190
213
|
this.saveDir,
|
|
191
214
|
);
|
|
192
215
|
result.attach(w, callerId);
|
|
193
|
-
this.
|
|
216
|
+
this.taskByKey.set(key, result);
|
|
194
217
|
|
|
195
218
|
return result;
|
|
196
219
|
}
|
|
197
220
|
|
|
198
221
|
private removeTask(task: DownloadByUrlTask, reason: string) {
|
|
199
222
|
task.abort(reason);
|
|
200
|
-
task.change.markChanged(`task for
|
|
201
|
-
this.
|
|
223
|
+
task.change.markChanged(`task for ${task.key} removed: ${reason}`);
|
|
224
|
+
this.taskByKey.delete(task.key);
|
|
202
225
|
}
|
|
203
226
|
|
|
204
|
-
|
|
205
|
-
|
|
227
|
+
/** Directory an archive (url or local file) is extracted into; keyed by a
|
|
228
|
+
* hash of the task key so the same source maps to a stable on-disk path. */
|
|
229
|
+
private getExtractionPath(key: string): string {
|
|
230
|
+
const sha256 = createHash("sha256").update(key).digest("hex");
|
|
206
231
|
return path.join(this.saveDir, sha256);
|
|
207
232
|
}
|
|
208
233
|
}
|