@bigmistqke/rpc 0.1.2 → 0.1.4

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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(npm publish --access public --registry https://registry.npmjs.org/ --//registry.npmjs.org/:_authToken=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)"
5
+ ]
6
+ }
7
+ }
@@ -167,6 +167,48 @@ function array(item, message) {
167
167
  }
168
168
  };
169
169
  }
170
+ function boolean(message) {
171
+ return {
172
+ kind: "schema",
173
+ type: "boolean",
174
+ reference: boolean,
175
+ expects: "boolean",
176
+ async: false,
177
+ message,
178
+ get "~standard"() {
179
+ return _getStandardProps(this);
180
+ },
181
+ "~run"(dataset, config2) {
182
+ if (typeof dataset.value === "boolean") {
183
+ dataset.typed = true;
184
+ } else {
185
+ _addIssue(this, "type", dataset, config2);
186
+ }
187
+ return dataset;
188
+ }
189
+ };
190
+ }
191
+ function number(message) {
192
+ return {
193
+ kind: "schema",
194
+ type: "number",
195
+ reference: number,
196
+ expects: "number",
197
+ async: false,
198
+ message,
199
+ get "~standard"() {
200
+ return _getStandardProps(this);
201
+ },
202
+ "~run"(dataset, config2) {
203
+ if (typeof dataset.value === "number" && !isNaN(dataset.value)) {
204
+ dataset.typed = true;
205
+ } else {
206
+ _addIssue(this, "type", dataset, config2);
207
+ }
208
+ return dataset;
209
+ }
210
+ };
211
+ }
170
212
  function object(entries, message) {
171
213
  return {
172
214
  kind: "schema",
@@ -250,6 +292,32 @@ function object(entries, message) {
250
292
  }
251
293
  };
252
294
  }
295
+ function optional(wrapped, default_) {
296
+ return {
297
+ kind: "schema",
298
+ type: "optional",
299
+ reference: optional,
300
+ expects: `(${wrapped.expects} | undefined)`,
301
+ async: false,
302
+ wrapped,
303
+ default: default_,
304
+ get "~standard"() {
305
+ return _getStandardProps(this);
306
+ },
307
+ "~run"(dataset, config2) {
308
+ if (dataset.value === void 0) {
309
+ if (this.default !== void 0) {
310
+ dataset.value = getDefault(this, dataset, config2);
311
+ }
312
+ if (dataset.value === void 0) {
313
+ dataset.typed = true;
314
+ return dataset;
315
+ }
316
+ }
317
+ return this.wrapped["~run"](dataset, config2);
318
+ }
319
+ };
320
+ }
253
321
  function string(message) {
254
322
  return {
255
323
  kind: "schema",
@@ -271,6 +339,22 @@ function string(message) {
271
339
  }
272
340
  };
273
341
  }
342
+ function unknown() {
343
+ return {
344
+ kind: "schema",
345
+ type: "unknown",
346
+ reference: unknown,
347
+ expects: "unknown",
348
+ async: false,
349
+ get "~standard"() {
350
+ return _getStandardProps(this);
351
+ },
352
+ "~run"(dataset) {
353
+ dataset.typed = true;
354
+ return dataset;
355
+ }
356
+ };
357
+ }
274
358
  function safeParse(schema, input, config2) {
275
359
  const dataset = schema["~run"]({ value: input }, getGlobalConfig(config2));
276
360
  return {
@@ -281,6 +365,9 @@ function safeParse(schema, input, config2) {
281
365
  };
282
366
  }
283
367
 
368
+ // src/handle.ts
369
+ var $HANDLE_MARKER = Symbol("RPC-HANDLE-MARKER");
370
+
284
371
  // src/utils.ts
285
372
  function createShape(schema, create) {
286
373
  return {
@@ -288,6 +375,58 @@ function createShape(schema, create) {
288
375
  create
289
376
  };
290
377
  }
378
+
379
+ // src/protocol.ts
380
+ var $MESSENGER_REQUEST = "RPC_PROXY_REQUEST";
381
+ var requestSchema = object({
382
+ [$MESSENGER_REQUEST]: number(),
383
+ payload: unknown()
384
+ });
385
+ var RequestShape = createShape(requestSchema, (id, payload) => ({
386
+ [$MESSENGER_REQUEST]: id,
387
+ payload
388
+ }));
389
+ var $MESSENGER_RESPONSE = "RPC_PROXY_RESPONSE";
390
+ var ResponseShape = createShape(
391
+ object({
392
+ [$MESSENGER_RESPONSE]: number(),
393
+ payload: optional(unknown())
394
+ }),
395
+ (request, payload) => ({
396
+ [$MESSENGER_RESPONSE]: request[$MESSENGER_REQUEST],
397
+ payload
398
+ })
399
+ );
400
+ var $MESSENGER_ERROR = "RPC_PROXY_ERROR";
401
+ var ErrorShape = createShape(
402
+ object({
403
+ [$MESSENGER_ERROR]: number(),
404
+ error: unknown()
405
+ }),
406
+ (data, error) => ({
407
+ [$MESSENGER_ERROR]: data[$MESSENGER_REQUEST],
408
+ error
409
+ })
410
+ );
411
+ var $MESSENGER_RPC_REQUEST = "RPC_PROXY_RPC_REQUEST";
412
+ var RPCPayloadShape = createShape(
413
+ object({
414
+ [$MESSENGER_RPC_REQUEST]: boolean(),
415
+ topics: array(string()),
416
+ args: array(any())
417
+ }),
418
+ (topics, args) => ({ [$MESSENGER_RPC_REQUEST]: true, topics, args })
419
+ );
420
+ var $MESSENGER_HANDLE = "RPC_PROXY_HANDLE";
421
+ var HandleResponseShape = createShape(
422
+ object({
423
+ [$MESSENGER_HANDLE]: string()
424
+ // namespace ID
425
+ }),
426
+ (namespaceId) => ({ [$MESSENGER_HANDLE]: namespaceId })
427
+ );
428
+
429
+ // src/core.ts
291
430
  function callMethod(methods, topics, args) {
292
431
  const method = topics.reduce((acc, topic) => {
293
432
  const result = acc?.[topic];