statelydb 0.12.1 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
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