statelydb 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8446a58ed766b26aeb2effbbbe422d1b809eb9d1833f51c8b0d9309c7787e4a3
4
- data.tar.gz: 1de0251f91a6bd26399ed57999f09d3f1c27f11faecbc9335216d3c986d58d81
3
+ metadata.gz: 1518fe47ef69d7e171862c88f5b8a9425116dc1390623724dc95e285e960b728
4
+ data.tar.gz: f5e9faad6e851892a695a47590e7430908e419b44c2f94a60087fec4c316c808
5
5
  SHA512:
6
- metadata.gz: 7194ac043df22729233b6d76e1517e3a34710d68f9c9d486aa1f849489c9bab435f767a1a805287e7cf85d3324bfedce744339aabdb3c03a6ff6a793aaa36b84
7
- data.tar.gz: 02c00886f4704f8d0af5f8a7d885a906034238d924ec30c2fb46543bbce1a8bc646e64ceea8803604b0cb41fa87878a186968e901b320e6bfcf455d4ab8a73cd
6
+ metadata.gz: acc4be2621242c08236efdf8e1f9fa48090070c3c4ad12583481bc2a2df4ee5638fbb665059a0138a7bf53270bed8d6bf0f5290843dd5d488b71274f2a3284b8
7
+ data.tar.gz: ddccab6882a70b7eab33c56893fd9cae614ee67c5343b0953f7af33d3fe487418eb00c3300d3a24ae6e14df88f5cf49609b9e1f4a966db10d646ab184c00a685
data/lib/api/db/get_pb.rb CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
- require 'db/item_pb'
7
+ require 'api/db/item_pb'
8
8
 
9
9
 
10
10
  descriptor_data = "\n\x0c\x64\x62/get.proto\x12\nstately.db\x1a\rdb/item.proto\"\xa3\x01\n\nGetRequest\x12\x19\n\x08store_id\x18\x01 \x01(\x04R\x07storeId\x12\'\n\x04gets\x18\x02 \x03(\x0b\x32\x13.stately.db.GetItemR\x04gets\x12\x1f\n\x0b\x61llow_stale\x18\x03 \x01(\x08R\nallowStale\x12*\n\x11schema_version_id\x18\x05 \x01(\rR\x0fschemaVersionIdJ\x04\x08\x04\x10\x05\"$\n\x07GetItem\x12\x19\n\x08key_path\x18\x01 \x01(\tR\x07keyPath\"5\n\x0bGetResponse\x12&\n\x05items\x18\x01 \x03(\x0b\x32\x10.stately.db.ItemR\x05itemsBc\n\x0e\x63om.stately.dbB\x08GetProtoP\x01\xa2\x02\x03SDX\xaa\x02\nStately.Db\xca\x02\nStately\\Db\xe2\x02\x16Stately\\Db\\GPBMetadata\xea\x02\x0bStately::Dbb\x06proto3"
@@ -4,9 +4,9 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
- require 'db/item_pb'
8
- require 'db/item_property_pb'
9
- require 'db/list_token_pb'
7
+ require 'api/db/item_pb'
8
+ require 'api/db/item_property_pb'
9
+ require 'api/db/list_token_pb'
10
10
 
11
11
 
12
12
  descriptor_data = "\n\rdb/list.proto\x12\nstately.db\x1a\rdb/item.proto\x1a\x16\x64\x62/item_property.proto\x1a\x13\x64\x62/list_token.proto\"\xbd\x02\n\x10\x42\x65ginListRequest\x12\x19\n\x08store_id\x18\x01 \x01(\x04R\x07storeId\x12&\n\x0fkey_path_prefix\x18\x02 \x01(\tR\rkeyPathPrefix\x12\x14\n\x05limit\x18\x03 \x01(\rR\x05limit\x12\x1f\n\x0b\x61llow_stale\x18\x04 \x01(\x08R\nallowStale\x12\x41\n\rsort_property\x18\x05 \x01(\x0e\x32\x1c.stately.db.SortablePropertyR\x0csortProperty\x12@\n\x0esort_direction\x18\x06 \x01(\x0e\x32\x19.stately.db.SortDirectionR\rsortDirection\x12*\n\x11schema_version_id\x18\x07 \x01(\rR\x0fschemaVersionId\"\x8b\x01\n\x0cListResponse\x12\x37\n\x06result\x18\x01 \x01(\x0b\x32\x1d.stately.db.ListPartialResultH\x00R\x06result\x12\x36\n\x08\x66inished\x18\x02 \x01(\x0b\x32\x18.stately.db.ListFinishedH\x00R\x08\x66inishedB\n\n\x08response\";\n\x11ListPartialResult\x12&\n\x05items\x18\x01 \x03(\x0b\x32\x10.stately.db.ItemR\x05items\";\n\x0cListFinished\x12+\n\x05token\x18\x01 \x01(\x0b\x32\x15.stately.db.ListTokenR\x05token*8\n\rSortDirection\x12\x12\n\x0eSORT_ASCENDING\x10\x00\x12\x13\n\x0fSORT_DESCENDING\x10\x01\x42\x64\n\x0e\x63om.stately.dbB\tListProtoP\x01\xa2\x02\x03SDX\xaa\x02\nStately.Db\xca\x02\nStately\\Db\xe2\x02\x16Stately\\Db\\GPBMetadata\xea\x02\x0bStately::Dbb\x06proto3"
data/lib/api/db/put_pb.rb CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
- require 'db/item_pb'
7
+ require 'api/db/item_pb'
8
8
 
9
9
 
10
10
  descriptor_data = "\n\x0c\x64\x62/put.proto\x12\nstately.db\x1a\rdb/item.proto\"|\n\nPutRequest\x12\x19\n\x08store_id\x18\x01 \x01(\x04R\x07storeId\x12\'\n\x04puts\x18\x02 \x03(\x0b\x32\x13.stately.db.PutItemR\x04puts\x12*\n\x11schema_version_id\x18\x03 \x01(\rR\x0fschemaVersionId\"U\n\x07PutItem\x12$\n\x04item\x18\x01 \x01(\x0b\x32\x10.stately.db.ItemR\x04item\x12$\n\x0emust_not_exist\x18\x03 \x01(\x08R\x0cmustNotExist\"5\n\x0bPutResponse\x12&\n\x05items\x18\x01 \x03(\x0b\x32\x10.stately.db.ItemR\x05itemsBc\n\x0e\x63om.stately.dbB\x08PutProtoP\x01\xa2\x02\x03SDX\xaa\x02\nStately.Db\xca\x02\nStately\\Db\xe2\x02\x16Stately\\Db\\GPBMetadata\xea\x02\x0bStately::Dbb\x06proto3"
@@ -4,14 +4,14 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
- require 'db/continue_list_pb'
8
- require 'db/delete_pb'
9
- require 'db/get_pb'
10
- require 'db/list_pb'
11
- require 'db/put_pb'
12
- require 'db/scan_root_paths_pb'
13
- require 'db/sync_list_pb'
14
- require 'db/transaction_pb'
7
+ require 'api/db/continue_list_pb'
8
+ require 'api/db/delete_pb'
9
+ require 'api/db/get_pb'
10
+ require 'api/db/list_pb'
11
+ require 'api/db/put_pb'
12
+ require 'api/db/scan_root_paths_pb'
13
+ require 'api/db/sync_list_pb'
14
+ require 'api/db/transaction_pb'
15
15
 
16
16
 
17
17
  descriptor_data = "\n\x10\x64\x62/service.proto\x12\nstately.db\x1a\x16\x64\x62/continue_list.proto\x1a\x0f\x64\x62/delete.proto\x1a\x0c\x64\x62/get.proto\x1a\rdb/list.proto\x1a\x0c\x64\x62/put.proto\x1a\x18\x64\x62/scan_root_paths.proto\x1a\x12\x64\x62/sync_list.proto\x1a\x14\x64\x62/transaction.proto2\xee\x04\n\x0f\x44\x61tabaseService\x12;\n\x03Put\x12\x16.stately.db.PutRequest\x1a\x17.stately.db.PutResponse\"\x03\x90\x02\x02\x12;\n\x03Get\x12\x16.stately.db.GetRequest\x1a\x17.stately.db.GetResponse\"\x03\x90\x02\x01\x12\x44\n\x06\x44\x65lete\x12\x19.stately.db.DeleteRequest\x1a\x1a.stately.db.DeleteResponse\"\x03\x90\x02\x02\x12J\n\tBeginList\x12\x1c.stately.db.BeginListRequest\x1a\x18.stately.db.ListResponse\"\x03\x90\x02\x01\x30\x01\x12P\n\x0c\x43ontinueList\x12\x1f.stately.db.ContinueListRequest\x1a\x18.stately.db.ListResponse\"\x03\x90\x02\x01\x30\x01\x12L\n\x08SyncList\x12\x1b.stately.db.SyncListRequest\x1a\x1c.stately.db.SyncListResponse\"\x03\x90\x02\x01\x30\x01\x12T\n\x0bTransaction\x12\x1e.stately.db.TransactionRequest\x1a\x1f.stately.db.TransactionResponse\"\x00(\x01\x30\x01\x12Y\n\rScanRootPaths\x12 .stately.db.ScanRootPathsRequest\x1a!.stately.db.ScanRootPathsResponse\"\x03\x90\x02\x01\x42g\n\x0e\x63om.stately.dbB\x0cServiceProtoP\x01\xa2\x02\x03SDX\xaa\x02\nStately.Db\xca\x02\nStately\\Db\xe2\x02\x16Stately\\Db\\GPBMetadata\xea\x02\x0bStately::Dbb\x06proto3"
@@ -2,7 +2,7 @@
2
2
  # Source: db/service.proto for package 'Stately.Db'
3
3
 
4
4
  require 'grpc'
5
- require 'db/service_pb'
5
+ require 'api/db/service_pb'
6
6
 
7
7
  module Stately
8
8
  module Db
@@ -4,8 +4,8 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
- require 'db/item_pb'
8
- require 'db/list_pb'
7
+ require 'api/db/item_pb'
8
+ require 'api/db/list_pb'
9
9
 
10
10
 
11
11
  descriptor_data = "\n\x12\x64\x62/sync_list.proto\x12\nstately.db\x1a\rdb/item.proto\x1a\rdb/list.proto\"\\\n\x0fSyncListRequest\x12\x1d\n\ntoken_data\x18\x01 \x01(\x0cR\ttokenData\x12*\n\x11schema_version_id\x18\x05 \x01(\rR\x0fschemaVersionId\"\xc8\x01\n\x10SyncListResponse\x12\x31\n\x05reset\x18\x01 \x01(\x0b\x32\x19.stately.db.SyncListResetH\x00R\x05reset\x12=\n\x06result\x18\x02 \x01(\x0b\x32#.stately.db.SyncListPartialResponseH\x00R\x06result\x12\x36\n\x08\x66inished\x18\x03 \x01(\x0b\x32\x18.stately.db.ListFinishedH\x00R\x08\x66inishedB\n\n\x08response\"\x0f\n\rSyncListReset\"\xdf\x01\n\x17SyncListPartialResponse\x12\x35\n\rchanged_items\x18\x01 \x03(\x0b\x32\x10.stately.db.ItemR\x0c\x63hangedItems\x12<\n\rdeleted_items\x18\x02 \x03(\x0b\x32\x17.stately.db.DeletedItemR\x0c\x64\x65letedItems\x12O\n%updated_item_keys_outside_list_window\x18\x03 \x03(\tR updatedItemKeysOutsideListWindow\"(\n\x0b\x44\x65letedItem\x12\x19\n\x08key_path\x18\x01 \x01(\tR\x07keyPathBh\n\x0e\x63om.stately.dbB\rSyncListProtoP\x01\xa2\x02\x03SDX\xaa\x02\nStately.Db\xca\x02\nStately\\Db\xe2\x02\x16Stately\\Db\\GPBMetadata\xea\x02\x0bStately::Dbb\x06proto3"
@@ -4,13 +4,13 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
- require 'db/continue_list_pb'
8
- require 'db/delete_pb'
9
- require 'db/get_pb'
10
- require 'db/item_pb'
11
- require 'db/item_property_pb'
12
- require 'db/list_pb'
13
- require 'db/put_pb'
7
+ require 'api/db/continue_list_pb'
8
+ require 'api/db/delete_pb'
9
+ require 'api/db/get_pb'
10
+ require 'api/db/item_pb'
11
+ require 'api/db/item_property_pb'
12
+ require 'api/db/list_pb'
13
+ require 'api/db/put_pb'
14
14
  require 'google/protobuf/empty_pb'
15
15
 
16
16
 
@@ -115,7 +115,7 @@ module StatelyDB
115
115
  end
116
116
 
117
117
  # Refresh the access token
118
- # @return [string] The new access token
118
+ # @return [Task] A task that will resolve to the new access token
119
119
  def refresh_token
120
120
  Async do
121
121
  # we use an Async::Condition to dedupe multiple requests here
@@ -125,7 +125,7 @@ module StatelyDB
125
125
  if @pending_refresh.nil?
126
126
  begin
127
127
  @pending_refresh = Async::Condition.new
128
- new_access_token = refresh_token_impl.wait
128
+ new_access_token = refresh_token_impl
129
129
  # now broadcast the new token to any waiters
130
130
  @pending_refresh.signal(new_access_token)
131
131
  new_access_token
@@ -150,7 +150,7 @@ module StatelyDB
150
150
  # Refresh the access token implementation
151
151
  # @return [String] The new access token
152
152
  def refresh_token_impl
153
- Async do
153
+ Sync do
154
154
  resp_data = make_auth0_request
155
155
 
156
156
  new_access_token = resp_data["access_token"]
data/lib/error.rb CHANGED
@@ -1,10 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Add the pb dir to the LOAD_PATH because generated proto imports are not relative and
4
- # we don't want the protos polluting the main namespace.
5
- # Tracking here: https://github.com/grpc/grpc/issues/6164
6
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/api"
7
-
8
3
  require "api/errors/error_details_pb"
9
4
 
10
5
  module StatelyDB
data/lib/statelydb.rb CHANGED
@@ -1,10 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Add the pb dir to the LOAD_PATH because generated proto imports are not relative and
4
- # we don't want the protos polluting the main namespace.
5
- # Tracking here: https://github.com/grpc/grpc/issues/6164
6
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/api"
7
-
8
3
  require "api/db/service_services_pb"
9
4
  require "common/auth/auth0_token_provider"
10
5
  require "common/auth/interceptor"
@@ -63,6 +58,7 @@ module StatelyDB
63
58
  @allow_stale = false
64
59
  end
65
60
 
61
+ # @return [void] nil
66
62
  def close
67
63
  @channel&.close
68
64
  @token_provider&.close
data/lib/token.rb CHANGED
@@ -34,8 +34,7 @@ module StatelyDB
34
34
  end
35
35
 
36
36
  # Returns the schema version ID associated with the token.
37
- def schema_version_id
38
- !!@schema_version_id
39
- end
37
+ # @return [Integer]
38
+ attr_reader :schema_version_id
40
39
  end
41
40
  end
@@ -254,7 +254,7 @@ module StatelyDB
254
254
  #
255
255
  # @param items [StatelyDB::Item, Array<StatelyDB::Item>] the items to store. Max
256
256
  # 50 items.
257
- # @return [Array<StatelyDB::UUID, String, Integer, nil>] the ids of the items
257
+ # @return [Array<StatelyDB::UUID, String, Integer, NilClass>] the ids of the items
258
258
  #
259
259
  # @example
260
260
  # results = client.data.transaction do |txn|
data/sig/grpc.rbs ADDED
@@ -0,0 +1,80 @@
1
+ module GRPC
2
+ class ActiveCall
3
+ end
4
+
5
+ class Interceptor
6
+ end
7
+ class ClientInterceptor < Interceptor
8
+ # gRPC client unary interceptor
9
+ #
10
+ # _@param_ `request` — The request object
11
+ #
12
+ # _@param_ `call` — The active call object
13
+ #
14
+ # _@param_ `method` — The method being called
15
+ #
16
+ # _@param_ `metadata` — The metadata hash
17
+ #
18
+ # _@return_ — The response object
19
+ def request_response: (
20
+ request: Object,
21
+ call: GRPC::ActiveCall,
22
+ method: Symbol,
23
+ metadata: ::Hash[untyped, untyped]
24
+ ) -> Object
25
+
26
+ # gRPC client streaming interceptor
27
+ #
28
+ # _@param_ `requests` — The list of requests
29
+ #
30
+ # _@param_ `call` — The active call object
31
+ #
32
+ # _@param_ `method` — The method being called
33
+ #
34
+ # _@param_ `metadata` — The metadata hash
35
+ #
36
+ # _@return_ — The response enumerator
37
+ def client_streamer: (
38
+ requests: ::Enumerable[untyped],
39
+ call: GRPC::ActiveCall,
40
+ method: Symbol,
41
+ metadata: ::Hash[untyped, untyped]
42
+ ) -> ::Enumerator[untyped]
43
+
44
+ # gRPC server streaming interceptor
45
+ #
46
+ # _@param_ `request` — The request object
47
+ #
48
+ # _@param_ `call` — The active call object
49
+ #
50
+ # _@param_ `method` — The method being called
51
+ #
52
+ # _@param_ `metadata` — The metadata hash
53
+ #
54
+ # _@return_ — The response enumerator
55
+ def server_streamer: (
56
+ request: Object,
57
+ call: GRPC::ActiveCall,
58
+ method: Symbol,
59
+ metadata: ::Hash[untyped, untyped]
60
+ ) -> ::Enumerator[untyped]
61
+
62
+ # gRPC bidirectional streaming interceptor
63
+ #
64
+ # _@param_ `requests` — The list of requests
65
+ #
66
+ # _@param_ `call` — The active call object
67
+ #
68
+ # _@param_ `method` — The method being called
69
+ #
70
+ # _@param_ `metadata` — The metadata hash
71
+ #
72
+ # _@return_ — The response enumerator
73
+ def bidi_streamer: (
74
+ requests: ::Enumerable[untyped],
75
+ call: GRPC::ActiveCall,
76
+ method: Symbol,
77
+ metadata: ::Hash[untyped, untyped]
78
+ ) -> ::Enumerator[untyped]
79
+ end
80
+ end