@vishalsharma7nov/react-native-proto 0.2.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.
Files changed (190) hide show
  1. package/android/src/main/java/com/vishalsharma7nov/reactnativeproto/ReactNativeProtoNativeGrpcModule.java +142 -0
  2. package/app.plugin.js +63 -0
  3. package/bin/react-native-proto.js +956 -0
  4. package/ios/ReactNativeProtoNativeGrpc.m +129 -0
  5. package/lib/commonjs/auth.js +72 -0
  6. package/lib/commonjs/auth.js.map +1 -0
  7. package/lib/commonjs/client-factory.js +81 -0
  8. package/lib/commonjs/client-factory.js.map +1 -0
  9. package/lib/commonjs/codecs.js +41 -0
  10. package/lib/commonjs/codecs.js.map +1 -0
  11. package/lib/commonjs/connect/envelope.js +100 -0
  12. package/lib/commonjs/connect/envelope.js.map +1 -0
  13. package/lib/commonjs/connect/errors.js +71 -0
  14. package/lib/commonjs/connect/errors.js.map +1 -0
  15. package/lib/commonjs/errors.js +54 -0
  16. package/lib/commonjs/errors.js.map +1 -0
  17. package/lib/commonjs/generated/create-api.js +29 -0
  18. package/lib/commonjs/generated/create-api.js.map +1 -0
  19. package/lib/commonjs/generated/message-types.js +2 -0
  20. package/lib/commonjs/generated/message-types.js.map +1 -0
  21. package/lib/commonjs/generated/messages.js +47 -0
  22. package/lib/commonjs/generated/messages.js.map +1 -0
  23. package/lib/commonjs/generated/messages.pb.js +2787 -0
  24. package/lib/commonjs/generated/messages.pb.js.map +1 -0
  25. package/lib/commonjs/generated/method-map.js +68 -0
  26. package/lib/commonjs/generated/method-map.js.map +1 -0
  27. package/lib/commonjs/index.js +283 -0
  28. package/lib/commonjs/index.js.map +1 -0
  29. package/lib/commonjs/interceptors.js +19 -0
  30. package/lib/commonjs/interceptors.js.map +1 -0
  31. package/lib/commonjs/logging.js +54 -0
  32. package/lib/commonjs/logging.js.map +1 -0
  33. package/lib/commonjs/metro/index.js +35 -0
  34. package/lib/commonjs/metro/index.js.map +1 -0
  35. package/lib/commonjs/metro/transformer.js +33 -0
  36. package/lib/commonjs/metro/transformer.js.map +1 -0
  37. package/lib/commonjs/mock-server/index.js +125 -0
  38. package/lib/commonjs/mock-server/index.js.map +1 -0
  39. package/lib/commonjs/native-grpc/index.js +242 -0
  40. package/lib/commonjs/native-grpc/index.js.map +1 -0
  41. package/lib/commonjs/offline-queue.js +137 -0
  42. package/lib/commonjs/offline-queue.js.map +1 -0
  43. package/lib/commonjs/package.json +1 -0
  44. package/lib/commonjs/path-templates.js +44 -0
  45. package/lib/commonjs/path-templates.js.map +1 -0
  46. package/lib/commonjs/react-query/index.js +30 -0
  47. package/lib/commonjs/react-query/index.js.map +1 -0
  48. package/lib/commonjs/streaming.js +251 -0
  49. package/lib/commonjs/streaming.js.map +1 -0
  50. package/lib/commonjs/transport.js +323 -0
  51. package/lib/commonjs/transport.js.map +1 -0
  52. package/lib/commonjs/types.js +6 -0
  53. package/lib/commonjs/types.js.map +1 -0
  54. package/lib/commonjs/validation/zod.js +48 -0
  55. package/lib/commonjs/validation/zod.js.map +1 -0
  56. package/lib/commonjs/version-check.js +102 -0
  57. package/lib/commonjs/version-check.js.map +1 -0
  58. package/lib/module/auth.js +67 -0
  59. package/lib/module/auth.js.map +1 -0
  60. package/lib/module/client-factory.js +77 -0
  61. package/lib/module/client-factory.js.map +1 -0
  62. package/lib/module/codecs.js +36 -0
  63. package/lib/module/codecs.js.map +1 -0
  64. package/lib/module/connect/envelope.js +93 -0
  65. package/lib/module/connect/envelope.js.map +1 -0
  66. package/lib/module/connect/errors.js +65 -0
  67. package/lib/module/connect/errors.js.map +1 -0
  68. package/lib/module/errors.js +46 -0
  69. package/lib/module/errors.js.map +1 -0
  70. package/lib/module/generated/create-api.js +13 -0
  71. package/lib/module/generated/create-api.js.map +1 -0
  72. package/lib/module/generated/message-types.js +2 -0
  73. package/lib/module/generated/message-types.js.map +1 -0
  74. package/lib/module/generated/messages.js +43 -0
  75. package/lib/module/generated/messages.js.map +1 -0
  76. package/lib/module/generated/messages.pb.js +2787 -0
  77. package/lib/module/generated/messages.pb.js.map +1 -0
  78. package/lib/module/generated/method-map.js +64 -0
  79. package/lib/module/generated/method-map.js.map +1 -0
  80. package/lib/module/index.js +53 -0
  81. package/lib/module/index.js.map +1 -0
  82. package/lib/module/interceptors.js +15 -0
  83. package/lib/module/interceptors.js.map +1 -0
  84. package/lib/module/logging.js +50 -0
  85. package/lib/module/logging.js.map +1 -0
  86. package/lib/module/metro/index.js +25 -0
  87. package/lib/module/metro/index.js.map +1 -0
  88. package/lib/module/metro/transformer.js +29 -0
  89. package/lib/module/metro/transformer.js.map +1 -0
  90. package/lib/module/mock-server/index.js +120 -0
  91. package/lib/module/mock-server/index.js.map +1 -0
  92. package/lib/module/native-grpc/index.js +233 -0
  93. package/lib/module/native-grpc/index.js.map +1 -0
  94. package/lib/module/offline-queue.js +132 -0
  95. package/lib/module/offline-queue.js.map +1 -0
  96. package/lib/module/package.json +1 -0
  97. package/lib/module/path-templates.js +39 -0
  98. package/lib/module/path-templates.js.map +1 -0
  99. package/lib/module/react-query/index.js +25 -0
  100. package/lib/module/react-query/index.js.map +1 -0
  101. package/lib/module/streaming.js +246 -0
  102. package/lib/module/streaming.js.map +1 -0
  103. package/lib/module/transport.js +316 -0
  104. package/lib/module/transport.js.map +1 -0
  105. package/lib/module/types.js +4 -0
  106. package/lib/module/types.js.map +1 -0
  107. package/lib/module/validation/zod.js +43 -0
  108. package/lib/module/validation/zod.js.map +1 -0
  109. package/lib/module/version-check.js +93 -0
  110. package/lib/module/version-check.js.map +1 -0
  111. package/lib/typescript/src/auth.d.ts +26 -0
  112. package/lib/typescript/src/auth.d.ts.map +1 -0
  113. package/lib/typescript/src/client-factory.d.ts +7 -0
  114. package/lib/typescript/src/client-factory.d.ts.map +1 -0
  115. package/lib/typescript/src/codecs.d.ts +5 -0
  116. package/lib/typescript/src/codecs.d.ts.map +1 -0
  117. package/lib/typescript/src/connect/envelope.d.ts +18 -0
  118. package/lib/typescript/src/connect/envelope.d.ts.map +1 -0
  119. package/lib/typescript/src/connect/errors.d.ts +11 -0
  120. package/lib/typescript/src/connect/errors.d.ts.map +1 -0
  121. package/lib/typescript/src/errors.d.ts +21 -0
  122. package/lib/typescript/src/errors.d.ts.map +1 -0
  123. package/lib/typescript/src/generated/create-api.d.ts +34 -0
  124. package/lib/typescript/src/generated/create-api.d.ts.map +1 -0
  125. package/lib/typescript/src/generated/message-types.d.ts +54 -0
  126. package/lib/typescript/src/generated/message-types.d.ts.map +1 -0
  127. package/lib/typescript/src/generated/messages.d.ts +17 -0
  128. package/lib/typescript/src/generated/messages.d.ts.map +1 -0
  129. package/lib/typescript/src/generated/method-map.d.ts +7 -0
  130. package/lib/typescript/src/generated/method-map.d.ts.map +1 -0
  131. package/lib/typescript/src/index.d.ts +53 -0
  132. package/lib/typescript/src/index.d.ts.map +1 -0
  133. package/lib/typescript/src/interceptors.d.ts +17 -0
  134. package/lib/typescript/src/interceptors.d.ts.map +1 -0
  135. package/lib/typescript/src/logging.d.ts +16 -0
  136. package/lib/typescript/src/logging.d.ts.map +1 -0
  137. package/lib/typescript/src/metro/index.d.ts +15 -0
  138. package/lib/typescript/src/metro/index.d.ts.map +1 -0
  139. package/lib/typescript/src/metro/transformer.d.ts +16 -0
  140. package/lib/typescript/src/metro/transformer.d.ts.map +1 -0
  141. package/lib/typescript/src/mock-server/index.d.ts +27 -0
  142. package/lib/typescript/src/mock-server/index.d.ts.map +1 -0
  143. package/lib/typescript/src/native-grpc/index.d.ts +36 -0
  144. package/lib/typescript/src/native-grpc/index.d.ts.map +1 -0
  145. package/lib/typescript/src/offline-queue.d.ts +47 -0
  146. package/lib/typescript/src/offline-queue.d.ts.map +1 -0
  147. package/lib/typescript/src/path-templates.d.ts +17 -0
  148. package/lib/typescript/src/path-templates.d.ts.map +1 -0
  149. package/lib/typescript/src/react-query/index.d.ts +14 -0
  150. package/lib/typescript/src/react-query/index.d.ts.map +1 -0
  151. package/lib/typescript/src/streaming.d.ts +10 -0
  152. package/lib/typescript/src/streaming.d.ts.map +1 -0
  153. package/lib/typescript/src/transport.d.ts +19 -0
  154. package/lib/typescript/src/transport.d.ts.map +1 -0
  155. package/lib/typescript/src/types.d.ts +78 -0
  156. package/lib/typescript/src/types.d.ts.map +1 -0
  157. package/lib/typescript/src/validation/zod.d.ts +33 -0
  158. package/lib/typescript/src/validation/zod.d.ts.map +1 -0
  159. package/lib/typescript/src/version-check.d.ts +40 -0
  160. package/lib/typescript/src/version-check.d.ts.map +1 -0
  161. package/metro/index.js +23 -0
  162. package/metro/transformer.js +21 -0
  163. package/package.json +144 -0
  164. package/react-native-proto.podspec +15 -0
  165. package/src/auth.ts +97 -0
  166. package/src/client-factory.ts +109 -0
  167. package/src/codecs.ts +42 -0
  168. package/src/connect/envelope.ts +112 -0
  169. package/src/connect/errors.ts +86 -0
  170. package/src/errors.ts +81 -0
  171. package/src/generated/create-api.ts +40 -0
  172. package/src/generated/message-types.ts +63 -0
  173. package/src/generated/messages.pb.js +3207 -0
  174. package/src/generated/messages.ts +45 -0
  175. package/src/generated/method-map.ts +71 -0
  176. package/src/index.ts +113 -0
  177. package/src/interceptors.ts +32 -0
  178. package/src/logging.ts +67 -0
  179. package/src/metro/index.ts +27 -0
  180. package/src/metro/transformer.ts +38 -0
  181. package/src/mock-server/index.ts +164 -0
  182. package/src/native-grpc/index.ts +302 -0
  183. package/src/offline-queue.ts +160 -0
  184. package/src/path-templates.ts +65 -0
  185. package/src/react-query/index.ts +40 -0
  186. package/src/streaming.ts +326 -0
  187. package/src/transport.ts +427 -0
  188. package/src/types.ts +94 -0
  189. package/src/validation/zod.ts +75 -0
  190. package/src/version-check.ts +121 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useProtoMutation = useProtoMutation;
7
+ exports.useProtoQuery = useProtoQuery;
8
+ var _reactQuery = require("@tanstack/react-query");
9
+ /**
10
+ * Thin React Query wrapper around a generated unary client method.
11
+ */
12
+ function useProtoQuery(method, request, options) {
13
+ const queryKey = options?.queryKey ?? ['proto', method.name, request];
14
+ return (0, _reactQuery.useQuery)({
15
+ ...options,
16
+ queryKey,
17
+ queryFn: () => method(request)
18
+ });
19
+ }
20
+
21
+ /**
22
+ * Thin React Query mutation wrapper around a generated unary client method.
23
+ */
24
+ function useProtoMutation(method, options) {
25
+ return (0, _reactQuery.useMutation)({
26
+ ...options,
27
+ mutationFn: request => method(request)
28
+ });
29
+ }
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","useProtoQuery","method","request","options","queryKey","name","useQuery","queryFn","useProtoMutation","useMutation","mutationFn"],"sourceRoot":"../../../src","sources":["react-query/index.ts"],"mappings":";;;;;;;AAKA,IAAAA,WAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACO,SAASC,aAAaA,CAC3BC,MAA2B,EAC3BC,OAAa,EACbC,OAG2B,EAC3B;EACA,MAAMC,QAAQ,GAAGD,OAAO,EAAEC,QAAQ,IAAI,CAAC,OAAO,EAAEH,MAAM,CAACI,IAAI,EAAEH,OAAO,CAAC;EACrE,OAAO,IAAAI,oBAAQ,EAAC;IACd,GAAGH,OAAO;IACVC,QAAQ;IACRG,OAAO,EAAEA,CAAA,KAAMN,MAAM,CAACC,OAAO;EAC/B,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACO,SAASM,gBAAgBA,CAC9BP,MAA2B,EAC3BE,OAA+C,EAC/C;EACA,OAAO,IAAAM,uBAAW,EAAC;IACjB,GAAGN,OAAO;IACVO,UAAU,EAAGR,OAAa,IAAKD,MAAM,CAACC,OAAO;EAC/C,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.streamCall = streamCall;
7
+ var _envelope = require("./connect/envelope");
8
+ var _errors = require("./connect/errors");
9
+ var _errors2 = require("./errors");
10
+ var _transport = require("./transport");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ async function collectRequests(input) {
13
+ if (input.requests) {
14
+ const list = [];
15
+ for await (const item of input.requests) {
16
+ list.push(item);
17
+ }
18
+ return list;
19
+ }
20
+ return [input.request ?? {}];
21
+ }
22
+ function buildConnectRequestBody(entryKind, requests, requestCodec) {
23
+ const useEnvelopedRequest = entryKind === 'clientStreaming' || entryKind === 'bidi' || requests.length > 1;
24
+ if (!useEnvelopedRequest) {
25
+ return requestCodec.encode(requests[0] ?? {});
26
+ }
27
+ const frames = [];
28
+ for (let i = 0; i < requests.length; i += 1) {
29
+ frames.push((0, _envelope.encodeConnectEnvelope)(requestCodec.encode(requests[i] ?? {}), 0));
30
+ }
31
+ if (entryKind === 'clientStreaming' || entryKind === 'bidi') {
32
+ frames.push((0, _envelope.encodeConnectEnvelope)(new Uint8Array(0), _envelope.CONNECT_FLAG_END_STREAM));
33
+ }
34
+ let bodyLength = 0;
35
+ for (let i = 0; i < frames.length; i += 1) {
36
+ bodyLength += frames[i].byteLength;
37
+ }
38
+ const body = new Uint8Array(bodyLength);
39
+ let offset = 0;
40
+ for (let i = 0; i < frames.length; i += 1) {
41
+ body.set(frames[i], offset);
42
+ offset += frames[i].byteLength;
43
+ }
44
+ return body;
45
+ }
46
+ function throwIfEndStreamError(data, rpcPath, status) {
47
+ if (data.byteLength === 0) {
48
+ return;
49
+ }
50
+ const json = JSON.parse((0, _errors.bytesToUtf8)(data));
51
+ const errBody = json.error ?? json;
52
+ if (errBody.code || errBody.message) {
53
+ throw (0, _errors.connectErrorFromJson)(errBody, rpcPath, status);
54
+ }
55
+ }
56
+ async function* yieldConnectEnvelopes(envelopes, responseCodec, input, status) {
57
+ for (let i = 0; i < envelopes.length; i += 1) {
58
+ const envelope = envelopes[i];
59
+ if (envelope.flags & _envelope.CONNECT_FLAG_END_STREAM) {
60
+ throwIfEndStreamError(envelope.data, input.entry.rpcPath, status);
61
+ return;
62
+ }
63
+ const message = responseCodec.decode(envelope.data);
64
+ if (input.onMessage) {
65
+ input.onMessage(message);
66
+ }
67
+ yield message;
68
+ }
69
+ }
70
+ async function fetchConnectStreamResponse(config, input, requestBody) {
71
+ const path = config.pathForMethod(input.entry);
72
+ const url = `${config.baseUrl}${path.startsWith('/') ? path : `/${path}`}`;
73
+ const headers = await (0, _transport.buildHeaders)(config, 'application/connect+proto', input.entry.rpcPath, input.headers);
74
+ headers['Connect-Protocol-Version'] = '1';
75
+ headers.Accept = 'application/connect+proto';
76
+ const controller = new AbortController();
77
+ const timeoutId = setTimeout(() => controller.abort(), config.timeoutMs);
78
+ const onAbort = () => controller.abort();
79
+ if (input.signal) {
80
+ if (input.signal.aborted) {
81
+ clearTimeout(timeoutId);
82
+ throw new _errors2.ProtoClientError({
83
+ code: 'ABORTED',
84
+ message: 'Request was aborted before send',
85
+ rpcPath: input.entry.rpcPath
86
+ });
87
+ }
88
+ input.signal.addEventListener('abort', onAbort, {
89
+ once: true
90
+ });
91
+ }
92
+ try {
93
+ try {
94
+ return await config.fetchImpl(url, {
95
+ method: 'POST',
96
+ headers,
97
+ body: requestBody,
98
+ signal: controller.signal
99
+ });
100
+ } catch (cause) {
101
+ if (controller.signal.aborted) {
102
+ throw new _errors2.ProtoClientError({
103
+ code: input.signal?.aborted ? 'ABORTED' : 'TIMEOUT',
104
+ message: input.signal?.aborted ? 'Request was aborted' : `Stream timed out after ${config.timeoutMs}ms`,
105
+ rpcPath: input.entry.rpcPath,
106
+ cause,
107
+ retryable: !input.signal?.aborted
108
+ });
109
+ }
110
+ throw new _errors2.ProtoClientError({
111
+ code: 'NETWORK',
112
+ message: `Network error streaming ${input.entry.rpcPath}`,
113
+ rpcPath: input.entry.rpcPath,
114
+ cause,
115
+ retryable: true
116
+ });
117
+ }
118
+ } finally {
119
+ clearTimeout(timeoutId);
120
+ if (input.signal) {
121
+ input.signal.removeEventListener('abort', onAbort);
122
+ }
123
+ }
124
+ }
125
+ function assertOkConnectResponse(response, rpcPath) {
126
+ if (response.ok) {
127
+ return;
128
+ }
129
+ // Body already consumed by caller via text() if needed — here we only throw generic.
130
+ throw new _errors2.ProtoClientError({
131
+ code: 'HTTP',
132
+ message: `HTTP ${response.status} for ${rpcPath}`,
133
+ status: response.status,
134
+ rpcPath,
135
+ retryable: response.status >= 500
136
+ });
137
+ }
138
+ async function* streamConnect(config, codecs, input) {
139
+ const {
140
+ entry
141
+ } = input;
142
+ const requestCodec = codecs.get(entry.requestType);
143
+ const responseCodec = codecs.get(entry.responseType);
144
+ if (!requestCodec || !responseCodec) {
145
+ throw new _errors2.ProtoClientError({
146
+ code: 'INVALID_ARGUMENT',
147
+ message: `Missing codec for ${entry.requestType} or ${entry.responseType}`,
148
+ rpcPath: entry.rpcPath
149
+ });
150
+ }
151
+ const requests = await collectRequests(input);
152
+ if ((entry.kind === 'clientStreaming' || entry.kind === 'bidi') && requests.length === 0) {
153
+ throw new _errors2.ProtoClientError({
154
+ code: 'INVALID_ARGUMENT',
155
+ message: 'Client streaming requires at least one request message',
156
+ rpcPath: entry.rpcPath
157
+ });
158
+ }
159
+ const requestBody = buildConnectRequestBody(entry.kind, requests, requestCodec);
160
+ const response = await fetchConnectStreamResponse(config, input, requestBody);
161
+ if (!response.ok) {
162
+ let text = '';
163
+ try {
164
+ text = await response.text();
165
+ } catch {
166
+ text = '';
167
+ }
168
+ const connectErr = (0, _errors.tryParseConnectError)(text, entry.rpcPath, response.status);
169
+ if (connectErr) {
170
+ throw connectErr;
171
+ }
172
+ assertOkConnectResponse(response, entry.rpcPath);
173
+ }
174
+ const contentType = response.headers.get('content-type') || '';
175
+ if (response.body && typeof response.body.getReader === 'function') {
176
+ for await (const envelope of (0, _envelope.readConnectEnvelopeStream)(response.body, config.maxResponseBytes)) {
177
+ if (envelope.flags & _envelope.CONNECT_FLAG_END_STREAM) {
178
+ throwIfEndStreamError(envelope.data, entry.rpcPath, response.status);
179
+ return;
180
+ }
181
+ const message = responseCodec.decode(envelope.data);
182
+ if (input.onMessage) {
183
+ input.onMessage(message);
184
+ }
185
+ yield message;
186
+ }
187
+ return;
188
+ }
189
+ const buffer = new Uint8Array(await response.arrayBuffer());
190
+ if (buffer.byteLength > config.maxResponseBytes) {
191
+ throw new _errors2.ProtoClientError({
192
+ code: 'PAYLOAD_TOO_LARGE',
193
+ message: 'Stream response exceeds maxResponseBytes',
194
+ rpcPath: entry.rpcPath
195
+ });
196
+ }
197
+ const looksLikeRawProto = contentType.includes('proto') && !contentType.includes('connect') && buffer.byteLength > 0 && buffer[0] > 2;
198
+ if (looksLikeRawProto) {
199
+ const message = await (0, _transport.unaryCall)(config, codecs, input);
200
+ if (input.onMessage) {
201
+ input.onMessage(message);
202
+ }
203
+ yield message;
204
+ return;
205
+ }
206
+ const envelopes = (0, _envelope.decodeConnectEnvelopes)(buffer);
207
+ if (envelopes.length === 0 && buffer.byteLength > 0) {
208
+ const message = responseCodec.decode(buffer);
209
+ if (input.onMessage) {
210
+ input.onMessage(message);
211
+ }
212
+ yield message;
213
+ return;
214
+ }
215
+ yield* yieldConnectEnvelopes(envelopes, responseCodec, input, response.status);
216
+ }
217
+
218
+ /**
219
+ * Streaming helpers.
220
+ * - HTTP+protobuf: unary only
221
+ * - Connect: server-streaming via envelope frames; client/bidi send enveloped requests
222
+ * - native-grpc: bridge streaming when available
223
+ */
224
+ async function* streamCall(config, codecs, input) {
225
+ const {
226
+ entry
227
+ } = input;
228
+ if (entry.kind === 'unary') {
229
+ throw new _errors2.ProtoClientError({
230
+ code: 'UNSUPPORTED',
231
+ message: `Method ${entry.rpcPath} is unary; use the promise API`,
232
+ rpcPath: entry.rpcPath
233
+ });
234
+ }
235
+ if (config.transport === 'http') {
236
+ throw new _errors2.ProtoClientError({
237
+ code: 'UNSUPPORTED',
238
+ message: 'Streaming requires transport "connect" or "native-grpc". HTTP+protobuf is unary-only.',
239
+ rpcPath: entry.rpcPath
240
+ });
241
+ }
242
+ if (config.transport === 'native-grpc') {
243
+ const {
244
+ nativeGrpcStream
245
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require('./native-grpc')));
246
+ yield* nativeGrpcStream(config, codecs, input);
247
+ return;
248
+ }
249
+ yield* streamConnect(config, codecs, input);
250
+ }
251
+ //# sourceMappingURL=streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_envelope","require","_errors","_errors2","_transport","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","collectRequests","input","requests","list","item","push","request","buildConnectRequestBody","entryKind","requestCodec","useEnvelopedRequest","length","encode","frames","encodeConnectEnvelope","Uint8Array","CONNECT_FLAG_END_STREAM","bodyLength","byteLength","body","offset","throwIfEndStreamError","data","rpcPath","status","json","JSON","parse","bytesToUtf8","errBody","error","code","message","connectErrorFromJson","yieldConnectEnvelopes","envelopes","responseCodec","envelope","flags","entry","decode","onMessage","fetchConnectStreamResponse","config","requestBody","path","pathForMethod","url","baseUrl","startsWith","headers","buildHeaders","Accept","controller","AbortController","timeoutId","setTimeout","abort","timeoutMs","onAbort","signal","aborted","clearTimeout","ProtoClientError","addEventListener","once","fetchImpl","method","cause","retryable","removeEventListener","assertOkConnectResponse","response","ok","streamConnect","codecs","requestType","responseType","kind","text","connectErr","tryParseConnectError","contentType","getReader","readConnectEnvelopeStream","maxResponseBytes","buffer","arrayBuffer","looksLikeRawProto","includes","unaryCall","decodeConnectEnvelopes","streamCall","transport","nativeGrpcStream","Promise","resolve","then"],"sourceRoot":"../../src","sources":["streaming.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.buildHeaders = buildHeaders;
7
+ exports.resolveConfig = resolveConfig;
8
+ exports.unaryCall = unaryCall;
9
+ var _errors = require("./errors");
10
+ var _errors2 = require("./connect/errors");
11
+ var _interceptors = require("./interceptors");
12
+ var _pathTemplates = require("./path-templates");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ const DEFAULT_TIMEOUT_MS = 30_000;
15
+ const DEFAULT_MAX_RESPONSE_BYTES = 2 * 1024 * 1024;
16
+ const MAX_HEADER_ENTRIES = 64;
17
+ function resolveConfig(config) {
18
+ if (!config || typeof config !== "object") {
19
+ throw new _errors.ProtoClientError({
20
+ code: "INVALID_CONFIG",
21
+ message: "createClient requires a config object"
22
+ });
23
+ }
24
+ const baseUrl = typeof config.baseUrl === "string" ? config.baseUrl.trim() : "";
25
+ if (!baseUrl) {
26
+ throw new _errors.ProtoClientError({
27
+ code: "INVALID_CONFIG",
28
+ message: "baseUrl is required and must be a non-empty string"
29
+ });
30
+ }
31
+ try {
32
+ // Throws if baseUrl is not absolute
33
+ // eslint-disable-next-line no-new
34
+ new URL(baseUrl);
35
+ } catch (cause) {
36
+ throw new _errors.ProtoClientError({
37
+ code: "INVALID_CONFIG",
38
+ message: `baseUrl must be an absolute URL, received: ${baseUrl}`,
39
+ cause
40
+ });
41
+ }
42
+ const timeoutMs = typeof config.timeoutMs === "number" && config.timeoutMs > 0 ? Math.min(config.timeoutMs, 600_000) : DEFAULT_TIMEOUT_MS;
43
+ const maxResponseBytes = typeof config.maxResponseBytes === "number" && config.maxResponseBytes > 0 ? Math.min(config.maxResponseBytes, 50 * 1024 * 1024) : DEFAULT_MAX_RESPONSE_BYTES;
44
+ const transport = config.transport ?? "http";
45
+ if (transport !== "http" && transport !== "connect" && transport !== "native-grpc") {
46
+ throw new _errors.ProtoClientError({
47
+ code: "INVALID_CONFIG",
48
+ message: `Unsupported transport: ${String(transport)}`
49
+ });
50
+ }
51
+ const fetchImpl = config.fetch ?? globalThis.fetch;
52
+ if (typeof fetchImpl !== "function") {
53
+ throw new _errors.ProtoClientError({
54
+ code: "INVALID_CONFIG",
55
+ message: "fetch is not available; pass config.fetch"
56
+ });
57
+ }
58
+ const pathForMethod = config.pathForMethod ?? (0, _pathTemplates.createPathForMethod)(config.pathPreset ?? "connect");
59
+ return {
60
+ baseUrl: baseUrl.replace(/\/$/, ""),
61
+ timeoutMs,
62
+ maxResponseBytes,
63
+ transport,
64
+ getHeaders: config.getHeaders,
65
+ fetchImpl,
66
+ onError: config.onError,
67
+ pathForMethod,
68
+ interceptors: config.interceptors ?? [],
69
+ retryOnUnauthorized: config.retryOnUnauthorized !== false
70
+ };
71
+ }
72
+ async function buildHeaders(config, contentType, rpcPath, extra) {
73
+ const headers = {
74
+ "Content-Type": contentType,
75
+ Accept: contentType
76
+ };
77
+ const merge = source => {
78
+ if (!source || typeof source !== "object") return;
79
+ const keys = Object.keys(source);
80
+ if (keys.length > MAX_HEADER_ENTRIES) {
81
+ throw new _errors.ProtoClientError({
82
+ code: "INVALID_ARGUMENT",
83
+ message: `Too many headers (max ${MAX_HEADER_ENTRIES})`,
84
+ rpcPath
85
+ });
86
+ }
87
+ for (let i = 0; i < keys.length; i += 1) {
88
+ const key = keys[i];
89
+ if (!key) continue;
90
+ const value = source[key];
91
+ if (typeof value === "string") {
92
+ headers[key] = value;
93
+ }
94
+ }
95
+ };
96
+ if (config.getHeaders) {
97
+ let fromConfig;
98
+ try {
99
+ fromConfig = await config.getHeaders();
100
+ } catch (cause) {
101
+ throw new _errors.ProtoClientError({
102
+ code: "INVALID_ARGUMENT",
103
+ message: "getHeaders() failed",
104
+ rpcPath,
105
+ cause
106
+ });
107
+ }
108
+ merge(fromConfig);
109
+ }
110
+ merge(extra);
111
+ return headers;
112
+ }
113
+ function mapHttpStatus(status, rpcPath, bodyText) {
114
+ if (bodyText) {
115
+ const connectErr = (0, _errors2.tryParseConnectError)(bodyText, rpcPath, status);
116
+ if (connectErr) {
117
+ return connectErr;
118
+ }
119
+ }
120
+ const retryable = status === 408 || status === 429 || status >= 500;
121
+ return new _errors.ProtoClientError({
122
+ code: "HTTP",
123
+ message: `HTTP ${status} for ${rpcPath}${bodyText ? `: ${bodyText.slice(0, 200)}` : ""}`,
124
+ status,
125
+ rpcPath,
126
+ retryable
127
+ });
128
+ }
129
+ async function readBodyBytes(response, maxResponseBytes, rpcPath) {
130
+ const lengthHeader = response.headers.get("content-length");
131
+ if (lengthHeader) {
132
+ const declared = Number(lengthHeader);
133
+ if (Number.isFinite(declared) && declared > maxResponseBytes) {
134
+ throw new _errors.ProtoClientError({
135
+ code: "PAYLOAD_TOO_LARGE",
136
+ message: `Response Content-Length ${declared} exceeds maxResponseBytes ${maxResponseBytes}`,
137
+ rpcPath,
138
+ status: response.status
139
+ });
140
+ }
141
+ }
142
+ const buffer = await response.arrayBuffer();
143
+ if (buffer.byteLength > maxResponseBytes) {
144
+ throw new _errors.ProtoClientError({
145
+ code: "PAYLOAD_TOO_LARGE",
146
+ message: `Response size ${buffer.byteLength} exceeds maxResponseBytes ${maxResponseBytes}`,
147
+ rpcPath,
148
+ status: response.status
149
+ });
150
+ }
151
+ return new Uint8Array(buffer);
152
+ }
153
+ async function unaryCallCore(config, codecs, input) {
154
+ const {
155
+ entry,
156
+ request,
157
+ signal
158
+ } = input;
159
+ const rpcPath = entry.rpcPath;
160
+ if (config.transport === "native-grpc") {
161
+ const {
162
+ nativeGrpcUnary
163
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require("./native-grpc")));
164
+ return nativeGrpcUnary(config, codecs, input);
165
+ }
166
+ const requestCodec = codecs.get(entry.requestType);
167
+ const responseCodec = codecs.get(entry.responseType);
168
+ if (!requestCodec || !responseCodec) {
169
+ throw new _errors.ProtoClientError({
170
+ code: "INVALID_ARGUMENT",
171
+ message: `Missing codec for ${entry.requestType} or ${entry.responseType}`,
172
+ rpcPath
173
+ });
174
+ }
175
+ let body;
176
+ try {
177
+ body = requestCodec.encode(request ?? {});
178
+ } catch (cause) {
179
+ throw new _errors.ProtoClientError({
180
+ code: "INVALID_ARGUMENT",
181
+ message: `Failed to encode request for ${rpcPath}`,
182
+ rpcPath,
183
+ cause
184
+ });
185
+ }
186
+ const path = config.pathForMethod(entry);
187
+ const url = `${config.baseUrl}${path.startsWith("/") ? path : `/${path}`}`;
188
+ const contentType = config.transport === "connect" ? "application/proto" : "application/x-protobuf";
189
+ const controller = new AbortController();
190
+ const timeoutId = setTimeout(() => controller.abort(), config.timeoutMs);
191
+ const onAbort = () => controller.abort();
192
+ if (signal) {
193
+ if (signal.aborted) {
194
+ clearTimeout(timeoutId);
195
+ throw new _errors.ProtoClientError({
196
+ code: "ABORTED",
197
+ message: "Request was aborted before send",
198
+ rpcPath
199
+ });
200
+ }
201
+ signal.addEventListener("abort", onAbort, {
202
+ once: true
203
+ });
204
+ }
205
+ try {
206
+ const headers = await buildHeaders(config, contentType, rpcPath, input.headers);
207
+ if (config.transport === "connect") {
208
+ headers["Connect-Protocol-Version"] = "1";
209
+ }
210
+ let response;
211
+ try {
212
+ response = await config.fetchImpl(url, {
213
+ method: "POST",
214
+ headers,
215
+ body: body,
216
+ signal: controller.signal
217
+ });
218
+ } catch (cause) {
219
+ if (controller.signal.aborted) {
220
+ const abortedByCaller = Boolean(signal?.aborted);
221
+ throw new _errors.ProtoClientError({
222
+ code: abortedByCaller ? "ABORTED" : "TIMEOUT",
223
+ message: abortedByCaller ? "Request was aborted" : `Request timed out after ${config.timeoutMs}ms`,
224
+ rpcPath,
225
+ cause,
226
+ retryable: !abortedByCaller
227
+ });
228
+ }
229
+ throw new _errors.ProtoClientError({
230
+ code: "NETWORK",
231
+ message: `Network error calling ${rpcPath}`,
232
+ rpcPath,
233
+ cause,
234
+ retryable: true
235
+ });
236
+ }
237
+ if (!response.ok) {
238
+ let text = "";
239
+ try {
240
+ text = await response.text();
241
+ } catch {
242
+ text = "";
243
+ }
244
+ throw mapHttpStatus(response.status, rpcPath, text);
245
+ }
246
+ const bytes = await readBodyBytes(response, config.maxResponseBytes, rpcPath);
247
+
248
+ // Connect unary may still return raw proto; if JSON end-stream sneaks in, map it.
249
+ const contentTypeHeader = response.headers.get("content-type") || "";
250
+ if (config.transport === "connect" && contentTypeHeader.includes("json") && bytes.byteLength > 0) {
251
+ const text = new TextDecoder().decode(bytes);
252
+ const connectErr = (0, _errors2.tryParseConnectError)(text, rpcPath, response.status);
253
+ if (connectErr) {
254
+ throw connectErr;
255
+ }
256
+ }
257
+ try {
258
+ return responseCodec.decode(bytes);
259
+ } catch (cause) {
260
+ throw new _errors.ProtoClientError({
261
+ code: "DECODE",
262
+ message: `Failed to decode response for ${rpcPath}`,
263
+ rpcPath,
264
+ cause,
265
+ status: response.status
266
+ });
267
+ }
268
+ } finally {
269
+ clearTimeout(timeoutId);
270
+ if (signal) {
271
+ signal.removeEventListener("abort", onAbort);
272
+ }
273
+ }
274
+ }
275
+ function notifyOnError(config, error) {
276
+ if (!config.onError) {
277
+ return;
278
+ }
279
+ try {
280
+ config.onError(error);
281
+ } catch {
282
+ // Logging hooks must not replace throw behavior
283
+ }
284
+ }
285
+ async function unaryCall(config, codecs, input) {
286
+ const {
287
+ entry,
288
+ request,
289
+ signal
290
+ } = input;
291
+ const rpcPath = entry.rpcPath;
292
+ const core = async ctx => unaryCallCore(config, codecs, {
293
+ entry: ctx.entry,
294
+ request: ctx.request,
295
+ signal: ctx.signal,
296
+ headers: ctx.headers
297
+ });
298
+ const pipeline = config.interceptors.length > 0 ? (0, _interceptors.composeInterceptors)(config.interceptors, core) : core;
299
+ try {
300
+ return await pipeline({
301
+ entry,
302
+ request: request ?? {},
303
+ headers: input.headers ?? {},
304
+ signal
305
+ });
306
+ } catch (error) {
307
+ const wrapped = (0, _errors.wrapUnknownError)(error, rpcPath);
308
+
309
+ // Optional transport-level single retry on 401 when no auth interceptor handled it
310
+ if (config.retryOnUnauthorized && config.interceptors.length === 0 && wrapped.status === 401 && config.getHeaders) {
311
+ try {
312
+ return await unaryCallCore(config, codecs, input);
313
+ } catch (retryError) {
314
+ const retryWrapped = (0, _errors.wrapUnknownError)(retryError, rpcPath);
315
+ notifyOnError(config, retryWrapped);
316
+ throw retryWrapped;
317
+ }
318
+ }
319
+ notifyOnError(config, wrapped);
320
+ throw wrapped;
321
+ }
322
+ }
323
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_errors","require","_errors2","_interceptors","_pathTemplates","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_TIMEOUT_MS","DEFAULT_MAX_RESPONSE_BYTES","MAX_HEADER_ENTRIES","resolveConfig","config","ProtoClientError","code","message","baseUrl","trim","URL","cause","timeoutMs","Math","min","maxResponseBytes","transport","String","fetchImpl","fetch","globalThis","pathForMethod","createPathForMethod","pathPreset","replace","getHeaders","onError","interceptors","retryOnUnauthorized","buildHeaders","contentType","rpcPath","extra","headers","Accept","merge","source","keys","length","key","value","fromConfig","mapHttpStatus","status","bodyText","connectErr","tryParseConnectError","retryable","slice","readBodyBytes","response","lengthHeader","declared","Number","isFinite","buffer","arrayBuffer","byteLength","Uint8Array","unaryCallCore","codecs","input","entry","request","signal","nativeGrpcUnary","Promise","resolve","then","requestCodec","requestType","responseCodec","responseType","body","encode","path","url","startsWith","controller","AbortController","timeoutId","setTimeout","abort","onAbort","aborted","clearTimeout","addEventListener","once","method","abortedByCaller","Boolean","ok","text","bytes","contentTypeHeader","includes","TextDecoder","decode","removeEventListener","notifyOnError","error","unaryCall","core","ctx","pipeline","composeInterceptors","wrapped","wrapUnknownError","retryError","retryWrapped"],"sourceRoot":"../../src","sources":["transport.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}