@inkbox/sdk 0.2.15 → 0.3.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.
Files changed (135) hide show
  1. package/README.md +10 -1
  2. package/dist/_http.d.ts +24 -5
  3. package/dist/_http.d.ts.map +1 -1
  4. package/dist/_http.js +21 -11
  5. package/dist/_http.js.map +1 -1
  6. package/dist/agent_identity.d.ts +20 -0
  7. package/dist/agent_identity.d.ts.map +1 -1
  8. package/dist/agent_identity.js +17 -0
  9. package/dist/agent_identity.js.map +1 -1
  10. package/dist/index.d.ts +4 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/inkbox.d.ts +4 -0
  15. package/dist/inkbox.d.ts.map +1 -1
  16. package/dist/inkbox.js +5 -0
  17. package/dist/inkbox.js.map +1 -1
  18. package/dist/phone/resources/calls.d.ts +8 -0
  19. package/dist/phone/resources/calls.d.ts.map +1 -1
  20. package/dist/phone/resources/calls.js +15 -1
  21. package/dist/phone/resources/calls.js.map +1 -1
  22. package/dist/phone/resources/texts.d.ts +26 -0
  23. package/dist/phone/resources/texts.d.ts.map +1 -1
  24. package/dist/phone/resources/texts.js +42 -2
  25. package/dist/phone/resources/texts.js.map +1 -1
  26. package/dist/phone/types.d.ts +18 -0
  27. package/dist/phone/types.d.ts.map +1 -1
  28. package/dist/phone/types.js +2 -0
  29. package/dist/phone/types.js.map +1 -1
  30. package/dist/tunnels/_validation.d.ts +7 -0
  31. package/dist/tunnels/_validation.d.ts.map +1 -0
  32. package/dist/tunnels/_validation.js +27 -0
  33. package/dist/tunnels/_validation.js.map +1 -0
  34. package/dist/tunnels/client/_bridge.d.ts +35 -0
  35. package/dist/tunnels/client/_bridge.d.ts.map +1 -0
  36. package/dist/tunnels/client/_bridge.js +52 -0
  37. package/dist/tunnels/client/_bridge.js.map +1 -0
  38. package/dist/tunnels/client/_callable_streaming.d.ts +25 -0
  39. package/dist/tunnels/client/_callable_streaming.d.ts.map +1 -0
  40. package/dist/tunnels/client/_callable_streaming.js +158 -0
  41. package/dist/tunnels/client/_callable_streaming.js.map +1 -0
  42. package/dist/tunnels/client/_cert.d.ts +45 -0
  43. package/dist/tunnels/client/_cert.d.ts.map +1 -0
  44. package/dist/tunnels/client/_cert.js +193 -0
  45. package/dist/tunnels/client/_cert.js.map +1 -0
  46. package/dist/tunnels/client/_dispatch.d.ts +109 -0
  47. package/dist/tunnels/client/_dispatch.d.ts.map +1 -0
  48. package/dist/tunnels/client/_dispatch.js +314 -0
  49. package/dist/tunnels/client/_dispatch.js.map +1 -0
  50. package/dist/tunnels/client/_envelope.d.ts +55 -0
  51. package/dist/tunnels/client/_envelope.d.ts.map +1 -0
  52. package/dist/tunnels/client/_envelope.js +97 -0
  53. package/dist/tunnels/client/_envelope.js.map +1 -0
  54. package/dist/tunnels/client/_h1_server.d.ts +37 -0
  55. package/dist/tunnels/client/_h1_server.d.ts.map +1 -0
  56. package/dist/tunnels/client/_h1_server.js +433 -0
  57. package/dist/tunnels/client/_h1_server.js.map +1 -0
  58. package/dist/tunnels/client/_h2_transcode.d.ts +43 -0
  59. package/dist/tunnels/client/_h2_transcode.d.ts.map +1 -0
  60. package/dist/tunnels/client/_h2_transcode.js +488 -0
  61. package/dist/tunnels/client/_h2_transcode.js.map +1 -0
  62. package/dist/tunnels/client/_handler.d.ts +62 -0
  63. package/dist/tunnels/client/_handler.d.ts.map +1 -0
  64. package/dist/tunnels/client/_handler.js +121 -0
  65. package/dist/tunnels/client/_handler.js.map +1 -0
  66. package/dist/tunnels/client/_listener.d.ts +64 -0
  67. package/dist/tunnels/client/_listener.d.ts.map +1 -0
  68. package/dist/tunnels/client/_listener.js +113 -0
  69. package/dist/tunnels/client/_listener.js.map +1 -0
  70. package/dist/tunnels/client/_protocol.d.ts +67 -0
  71. package/dist/tunnels/client/_protocol.d.ts.map +1 -0
  72. package/dist/tunnels/client/_protocol.js +86 -0
  73. package/dist/tunnels/client/_protocol.js.map +1 -0
  74. package/dist/tunnels/client/_runtime.d.ts +143 -0
  75. package/dist/tunnels/client/_runtime.d.ts.map +1 -0
  76. package/dist/tunnels/client/_runtime.js +1679 -0
  77. package/dist/tunnels/client/_runtime.js.map +1 -0
  78. package/dist/tunnels/client/_state.d.ts +45 -0
  79. package/dist/tunnels/client/_state.d.ts.map +1 -0
  80. package/dist/tunnels/client/_state.js +165 -0
  81. package/dist/tunnels/client/_state.js.map +1 -0
  82. package/dist/tunnels/client/_tls.d.ts +50 -0
  83. package/dist/tunnels/client/_tls.d.ts.map +1 -0
  84. package/dist/tunnels/client/_tls.js +139 -0
  85. package/dist/tunnels/client/_tls.js.map +1 -0
  86. package/dist/tunnels/client/_upstream_tls.d.ts +25 -0
  87. package/dist/tunnels/client/_upstream_tls.d.ts.map +1 -0
  88. package/dist/tunnels/client/_upstream_tls.js +24 -0
  89. package/dist/tunnels/client/_upstream_tls.js.map +1 -0
  90. package/dist/tunnels/client/_url_forward.d.ts +92 -0
  91. package/dist/tunnels/client/_url_forward.d.ts.map +1 -0
  92. package/dist/tunnels/client/_url_forward.js +255 -0
  93. package/dist/tunnels/client/_url_forward.js.map +1 -0
  94. package/dist/tunnels/client/_validation.d.ts +27 -0
  95. package/dist/tunnels/client/_validation.d.ts.map +1 -0
  96. package/dist/tunnels/client/_validation.js +96 -0
  97. package/dist/tunnels/client/_validation.js.map +1 -0
  98. package/dist/tunnels/client/_ws.d.ts +149 -0
  99. package/dist/tunnels/client/_ws.d.ts.map +1 -0
  100. package/dist/tunnels/client/_ws.js +351 -0
  101. package/dist/tunnels/client/_ws.js.map +1 -0
  102. package/dist/tunnels/client/_ws_passthrough.d.ts +129 -0
  103. package/dist/tunnels/client/_ws_passthrough.d.ts.map +1 -0
  104. package/dist/tunnels/client/_ws_passthrough.js +432 -0
  105. package/dist/tunnels/client/_ws_passthrough.js.map +1 -0
  106. package/dist/tunnels/client/_ws_url_bridge.d.ts +71 -0
  107. package/dist/tunnels/client/_ws_url_bridge.d.ts.map +1 -0
  108. package/dist/tunnels/client/_ws_url_bridge.js +474 -0
  109. package/dist/tunnels/client/_ws_url_bridge.js.map +1 -0
  110. package/dist/tunnels/client/_ws_url_edge_bridge.d.ts +26 -0
  111. package/dist/tunnels/client/_ws_url_edge_bridge.d.ts.map +1 -0
  112. package/dist/tunnels/client/_ws_url_edge_bridge.js +256 -0
  113. package/dist/tunnels/client/_ws_url_edge_bridge.js.map +1 -0
  114. package/dist/tunnels/client/_wsframe.d.ts +142 -0
  115. package/dist/tunnels/client/_wsframe.d.ts.map +1 -0
  116. package/dist/tunnels/client/_wsframe.js +282 -0
  117. package/dist/tunnels/client/_wsframe.js.map +1 -0
  118. package/dist/tunnels/client/index.d.ts +101 -0
  119. package/dist/tunnels/client/index.d.ts.map +1 -0
  120. package/dist/tunnels/client/index.js +242 -0
  121. package/dist/tunnels/client/index.js.map +1 -0
  122. package/dist/tunnels/exceptions.d.ts +31 -0
  123. package/dist/tunnels/exceptions.d.ts.map +1 -0
  124. package/dist/tunnels/exceptions.js +68 -0
  125. package/dist/tunnels/exceptions.js.map +1 -0
  126. package/dist/tunnels/resources/tunnels.d.ts +73 -0
  127. package/dist/tunnels/resources/tunnels.d.ts.map +1 -0
  128. package/dist/tunnels/resources/tunnels.js +173 -0
  129. package/dist/tunnels/resources/tunnels.js.map +1 -0
  130. package/dist/tunnels/types.d.ts +99 -0
  131. package/dist/tunnels/types.d.ts.map +1 -0
  132. package/dist/tunnels/types.js +76 -0
  133. package/dist/tunnels/types.js.map +1 -0
  134. package/package.json +14 -5
  135. package/protocol/tunnel_protocol_constants.json +65 -0
@@ -31,15 +31,23 @@ export declare class TextsResource {
31
31
  /**
32
32
  * List text messages for a phone number, newest first.
33
33
  *
34
+ * Identity-scoped API keys never see contact-rule-blocked rows
35
+ * regardless of `isBlocked` (filtered server-side). Admin/JWT
36
+ * callers see everything by default; pass `isBlocked=true` for the
37
+ * blocked-only listing or `isBlocked=false` to exclude blocked rows.
38
+ *
34
39
  * @param phoneNumberId - UUID of the phone number.
35
40
  * @param options.limit - Max results (1–200). Defaults to 50.
36
41
  * @param options.offset - Pagination offset. Defaults to 0.
37
42
  * @param options.isRead - Filter by read state.
43
+ * @param options.isBlocked - Tri-state filter. `true` for only blocked,
44
+ * `false` for only non-blocked, omit for all.
38
45
  */
39
46
  list(phoneNumberId: string, options?: {
40
47
  limit?: number;
41
48
  offset?: number;
42
49
  isRead?: boolean;
50
+ isBlocked?: boolean;
43
51
  }): Promise<TextMessage[]>;
44
52
  /**
45
53
  * Get a single text message by ID.
@@ -61,24 +69,42 @@ export declare class TextsResource {
61
69
  /**
62
70
  * Full-text search across text messages for a phone number.
63
71
  *
72
+ * Identity-scoped API keys never see contact-rule-blocked rows in
73
+ * results regardless of `isBlocked`. Admin/JWT callers see everything
74
+ * by default; `isBlocked=false` keeps search clean of blocked spam,
75
+ * `isBlocked=true` searches only the blocked folder.
76
+ *
64
77
  * @param phoneNumberId - UUID of the phone number.
65
78
  * @param options.q - Search query string.
66
79
  * @param options.limit - Max results (1–200). Defaults to 50.
80
+ * @param options.isBlocked - Tri-state filter. `true` for only blocked,
81
+ * `false` for only non-blocked, omit for all.
67
82
  */
68
83
  search(phoneNumberId: string, options: {
69
84
  q: string;
70
85
  limit?: number;
86
+ isBlocked?: boolean;
71
87
  }): Promise<TextMessage[]>;
72
88
  /**
73
89
  * List conversations (one row per remote number) with latest message preview.
74
90
  *
91
+ * Identity-scoped API keys never see blocked rows in conversation
92
+ * summaries; admin/JWT callers can pass `isBlocked=false` to hide
93
+ * spam-only counterparties and stop blocked rows from bumping quiet
94
+ * conversations to the top, or `isBlocked=true` to narrow to
95
+ * conversations made up of blocked rows.
96
+ *
75
97
  * @param phoneNumberId - UUID of the phone number.
76
98
  * @param options.limit - Max results (1–200). Defaults to 50.
77
99
  * @param options.offset - Pagination offset. Defaults to 0.
100
+ * @param options.isBlocked - Tri-state filter applied to the
101
+ * underlying messages. `true` for only blocked, `false` for only
102
+ * non-blocked, omit for all.
78
103
  */
79
104
  listConversations(phoneNumberId: string, options?: {
80
105
  limit?: number;
81
106
  offset?: number;
107
+ isBlocked?: boolean;
82
108
  }): Promise<TextConversationSummary[]>;
83
109
  /**
84
110
  * Get all messages with a specific remote number, newest first.
@@ -1 +1 @@
1
- {"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../../../src/phone/resources/texts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,uBAAuB,EAKxB,MAAM,aAAa,CAAC;AAErB,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;;;;;;;;;;;;;;;OAeG;IACG,IAAI,CACR,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,WAAW,CAAC;IASvB;;;;;;;OAOG;IACG,IAAI,CACR,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9D,OAAO,CAAC,WAAW,EAAE,CAAC;IAezB;;;;;OAKG;IACG,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOtE;;;;;;OAMG;IACG,MAAM,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,WAAW,CAAC;IAUvB;;;;;;OAMG;IACG,MAAM,CACV,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACrC,OAAO,CAAC,WAAW,EAAE,CAAC;IAQzB;;;;;;OAMG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAQrC;;;;;;;OAOG;IACG,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,WAAW,EAAE,CAAC;IAQzB;;;;;;;OAOG;IACG,kBAAkB,CACtB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAejF"}
1
+ {"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../../../src/phone/resources/texts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,uBAAuB,EAKxB,MAAM,aAAa,CAAC;AAErB,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;;;;;;;;;;;;;;;OAeG;IACG,IAAI,CACR,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,WAAW,CAAC;IASvB;;;;;;;;;;;;;;OAcG;IACG,IAAI,CACR,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GACA,OAAO,CAAC,WAAW,EAAE,CAAC;IAkBzB;;;;;OAKG;IACG,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOtE;;;;;;OAMG;IACG,MAAM,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,WAAW,CAAC;IAUvB;;;;;;;;;;;;;OAaG;IACG,MAAM,CACV,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1D,OAAO,CAAC,WAAW,EAAE,CAAC;IAezB;;;;;;;;;;;;;;;OAeG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAerC;;;;;;;OAOG;IACG,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,WAAW,EAAE,CAAC;IAQzB;;;;;;;OAOG;IACG,kBAAkB,CACtB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAejF"}
@@ -33,10 +33,17 @@ export class TextsResource {
33
33
  /**
34
34
  * List text messages for a phone number, newest first.
35
35
  *
36
+ * Identity-scoped API keys never see contact-rule-blocked rows
37
+ * regardless of `isBlocked` (filtered server-side). Admin/JWT
38
+ * callers see everything by default; pass `isBlocked=true` for the
39
+ * blocked-only listing or `isBlocked=false` to exclude blocked rows.
40
+ *
36
41
  * @param phoneNumberId - UUID of the phone number.
37
42
  * @param options.limit - Max results (1–200). Defaults to 50.
38
43
  * @param options.offset - Pagination offset. Defaults to 0.
39
44
  * @param options.isRead - Filter by read state.
45
+ * @param options.isBlocked - Tri-state filter. `true` for only blocked,
46
+ * `false` for only non-blocked, omit for all.
40
47
  */
41
48
  async list(phoneNumberId, options) {
42
49
  const params = {
@@ -46,6 +53,9 @@ export class TextsResource {
46
53
  if (options?.isRead !== undefined) {
47
54
  params["is_read"] = options.isRead;
48
55
  }
56
+ if (options?.isBlocked !== undefined) {
57
+ params["is_blocked"] = options.isBlocked;
58
+ }
49
59
  const data = await this.http.get(`/numbers/${phoneNumberId}/texts`, params);
50
60
  return data.map(parseTextMessage);
51
61
  }
@@ -76,23 +86,53 @@ export class TextsResource {
76
86
  /**
77
87
  * Full-text search across text messages for a phone number.
78
88
  *
89
+ * Identity-scoped API keys never see contact-rule-blocked rows in
90
+ * results regardless of `isBlocked`. Admin/JWT callers see everything
91
+ * by default; `isBlocked=false` keeps search clean of blocked spam,
92
+ * `isBlocked=true` searches only the blocked folder.
93
+ *
79
94
  * @param phoneNumberId - UUID of the phone number.
80
95
  * @param options.q - Search query string.
81
96
  * @param options.limit - Max results (1–200). Defaults to 50.
97
+ * @param options.isBlocked - Tri-state filter. `true` for only blocked,
98
+ * `false` for only non-blocked, omit for all.
82
99
  */
83
100
  async search(phoneNumberId, options) {
84
- const data = await this.http.get(`/numbers/${phoneNumberId}/texts/search`, { q: options.q, limit: options.limit ?? 50 });
101
+ const params = {
102
+ q: options.q,
103
+ limit: options.limit ?? 50,
104
+ };
105
+ if (options.isBlocked !== undefined) {
106
+ params["is_blocked"] = options.isBlocked;
107
+ }
108
+ const data = await this.http.get(`/numbers/${phoneNumberId}/texts/search`, params);
85
109
  return data.map(parseTextMessage);
86
110
  }
87
111
  /**
88
112
  * List conversations (one row per remote number) with latest message preview.
89
113
  *
114
+ * Identity-scoped API keys never see blocked rows in conversation
115
+ * summaries; admin/JWT callers can pass `isBlocked=false` to hide
116
+ * spam-only counterparties and stop blocked rows from bumping quiet
117
+ * conversations to the top, or `isBlocked=true` to narrow to
118
+ * conversations made up of blocked rows.
119
+ *
90
120
  * @param phoneNumberId - UUID of the phone number.
91
121
  * @param options.limit - Max results (1–200). Defaults to 50.
92
122
  * @param options.offset - Pagination offset. Defaults to 0.
123
+ * @param options.isBlocked - Tri-state filter applied to the
124
+ * underlying messages. `true` for only blocked, `false` for only
125
+ * non-blocked, omit for all.
93
126
  */
94
127
  async listConversations(phoneNumberId, options) {
95
- const data = await this.http.get(`/numbers/${phoneNumberId}/texts/conversations`, { limit: options?.limit ?? 50, offset: options?.offset ?? 0 });
128
+ const params = {
129
+ limit: options?.limit ?? 50,
130
+ offset: options?.offset ?? 0,
131
+ };
132
+ if (options?.isBlocked !== undefined) {
133
+ params["is_blocked"] = options.isBlocked;
134
+ }
135
+ const data = await this.http.get(`/numbers/${phoneNumberId}/texts/conversations`, params);
96
136
  return data.map(parseTextConversationSummary);
97
137
  }
98
138
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"texts.js","sourceRoot":"","sources":["../../../src/phone/resources/texts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texts.js","sourceRoot":"","sources":["../../../src/phone/resources/texts.ts"],"names":[],"mappings":"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"}
@@ -93,6 +93,14 @@ export interface PhoneCall {
93
93
  hangupReason: string | null;
94
94
  startedAt: Date | null;
95
95
  endedAt: Date | null;
96
+ /**
97
+ * `true` when this call was rejected by a contact rule or default-block
98
+ * before connect. Identity-scoped (agent) API keys never observe `true`
99
+ * rows — the server filters them at the access-policy layer. Admin/JWT
100
+ * callers see both values mixed and can narrow with `isBlocked` on
101
+ * `CallsResource.list`.
102
+ */
103
+ isBlocked: boolean;
96
104
  createdAt: Date;
97
105
  updatedAt: Date;
98
106
  }
@@ -141,6 +149,14 @@ export interface TextMessage {
141
149
  sentAt: Date | null;
142
150
  deliveredAt: Date | null;
143
151
  failedAt: Date | null;
152
+ /**
153
+ * `true` when this text was rejected by a contact rule or default-block.
154
+ * Identity-scoped (agent) API keys never observe `true` rows — the
155
+ * server filters them at the access-policy layer. Admin/JWT callers see
156
+ * both values mixed and can narrow with `isBlocked` on
157
+ * `TextsResource.list` / `search` / `listConversations`.
158
+ */
159
+ isBlocked: boolean;
144
160
  createdAt: Date;
145
161
  updatedAt: Date;
146
162
  }
@@ -194,6 +210,7 @@ export interface RawPhoneCall {
194
210
  hangup_reason: string | null;
195
211
  started_at: string | null;
196
212
  ended_at: string | null;
213
+ is_blocked?: boolean;
197
214
  created_at: string;
198
215
  updated_at: string;
199
216
  }
@@ -229,6 +246,7 @@ export interface RawTextMessage {
229
246
  sent_at?: string | null;
230
247
  delivered_at?: string | null;
231
248
  failed_at?: string | null;
249
+ is_blocked?: boolean;
232
250
  created_at: string;
233
251
  updated_at: string;
234
252
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/phone/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/phone/types.ts"],"names":[],"mappings":"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"}
@@ -94,6 +94,7 @@ export function parsePhoneCall(r) {
94
94
  hangupReason: r.hangup_reason,
95
95
  startedAt: r.started_at ? new Date(r.started_at) : null,
96
96
  endedAt: r.ended_at ? new Date(r.ended_at) : null,
97
+ isBlocked: r.is_blocked ?? false,
97
98
  createdAt: new Date(r.created_at),
98
99
  updatedAt: new Date(r.updated_at),
99
100
  };
@@ -151,6 +152,7 @@ export function parseTextMessage(r) {
151
152
  sentAt: r.sent_at ? new Date(r.sent_at) : null,
152
153
  deliveredAt: r.delivered_at ? new Date(r.delivered_at) : null,
153
154
  failedAt: r.failed_at ? new Date(r.failed_at) : null,
155
+ isBlocked: r.is_blocked ?? false,
154
156
  createdAt: new Date(r.created_at),
155
157
  updatedAt: new Date(r.updated_at),
156
158
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/phone/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/phone/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * inkbox-tunnels/_validation.ts
3
+ *
4
+ * Local tunnel-name validation. Mirrors the server's `_validate_tunnel_name`.
5
+ */
6
+ export declare function validateTunnelName(name: string): string;
7
+ //# sourceMappingURL=_validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_validation.d.ts","sourceRoot":"","sources":["../../src/tunnels/_validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBvD"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * inkbox-tunnels/_validation.ts
3
+ *
4
+ * Local tunnel-name validation. Mirrors the server's `_validate_tunnel_name`.
5
+ */
6
+ import { TunnelNameInvalid } from "./exceptions.js";
7
+ const MIN_LENGTH = 3;
8
+ const MAX_LENGTH = 63;
9
+ const TUNNEL_NAME_RE = /^[a-z0-9](?:[a-z0-9]|-(?!-))*[a-z0-9]$|^[a-z0-9]$/;
10
+ export function validateTunnelName(name) {
11
+ if (typeof name !== "string") {
12
+ throw new TunnelNameInvalid("tunnel_name must be a string");
13
+ }
14
+ if (name.length < MIN_LENGTH) {
15
+ throw new TunnelNameInvalid(`tunnel_name must be at least ${MIN_LENGTH} characters`);
16
+ }
17
+ if (name.length > MAX_LENGTH) {
18
+ throw new TunnelNameInvalid(`tunnel_name must be at most ${MAX_LENGTH} characters`);
19
+ }
20
+ if (!TUNNEL_NAME_RE.test(name)) {
21
+ throw new TunnelNameInvalid("tunnel_name may only contain lowercase letters, numbers, and " +
22
+ "hyphens, must start and end with a letter or number, and must " +
23
+ "not contain consecutive hyphens");
24
+ }
25
+ return name;
26
+ }
27
+ //# sourceMappingURL=_validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_validation.js","sourceRoot":"","sources":["../../src/tunnels/_validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,cAAc,GAAG,mDAAmD,CAAC;AAE3E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,iBAAiB,CACzB,gCAAgC,UAAU,aAAa,CACxD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,iBAAiB,CACzB,+BAA+B,UAAU,aAAa,CACvD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAiB,CACzB,+DAA+D;YAC7D,gEAAgE;YAChE,iCAAiC,CACpC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * inkbox-tunnels/client/_bridge.ts
3
+ *
4
+ * Per-bridge state + close-code mapping for passthrough TCP streams.
5
+ * Mirrors Python `_bridge.py`. The actual pump loops live in
6
+ * `_runtime.ts` (they need access to the h2 session, send-locking, and
7
+ * stream events).
8
+ */
9
+ export declare const BRIDGE_STATUS_TIMEOUT_MS = 10000;
10
+ export declare const BRIDGE_HALF_CLOSE_GRACE_MS = 5000;
11
+ export declare const BRIDGE_CLEANUP_SEND_TIMEOUT_MS = 1000;
12
+ export declare const BRIDGE_CLOSE_CODE: Readonly<Record<string, number>>;
13
+ export interface BridgeStats {
14
+ tcpId: string;
15
+ streamId: number;
16
+ sniHost: string;
17
+ inboundFrames: number;
18
+ outboundFrames: number;
19
+ decryptedBytes: number;
20
+ encryptedBytes: number;
21
+ continuationFrames: number;
22
+ tlsHandshakeDone: boolean;
23
+ closeReason: string;
24
+ }
25
+ export declare class BridgeProtocolError extends Error {
26
+ constructor(message: string);
27
+ }
28
+ export declare class BridgeOpenFailed extends Error {
29
+ constructor(message: string);
30
+ }
31
+ export declare class BridgeStreamReset extends Error {
32
+ constructor(message: string);
33
+ }
34
+ export declare function makeBridgeStats(tcpId: string, streamId: number, sniHost: string): BridgeStats;
35
+ //# sourceMappingURL=_bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_bridge.d.ts","sourceRoot":"","sources":["../../../src/tunnels/client/_bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAChD,eAAO,MAAM,8BAA8B,OAAQ,CAAC;AAEpD,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO9D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,WAAW,CAab"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * inkbox-tunnels/client/_bridge.ts
3
+ *
4
+ * Per-bridge state + close-code mapping for passthrough TCP streams.
5
+ * Mirrors Python `_bridge.py`. The actual pump loops live in
6
+ * `_runtime.ts` (they need access to the h2 session, send-locking, and
7
+ * stream events).
8
+ */
9
+ export const BRIDGE_STATUS_TIMEOUT_MS = 10_000;
10
+ export const BRIDGE_HALF_CLOSE_GRACE_MS = 5_000;
11
+ export const BRIDGE_CLEANUP_SEND_TIMEOUT_MS = 1_000;
12
+ export const BRIDGE_CLOSE_CODE = {
13
+ "clean-eof": 1000,
14
+ "protocol-error": 1002,
15
+ "inbound-error": 1011,
16
+ "outbound-error": 1011,
17
+ "tls-error": 1011,
18
+ cancelled: 1001,
19
+ };
20
+ export class BridgeProtocolError extends Error {
21
+ constructor(message) {
22
+ super(message);
23
+ this.name = "BridgeProtocolError";
24
+ }
25
+ }
26
+ export class BridgeOpenFailed extends Error {
27
+ constructor(message) {
28
+ super(message);
29
+ this.name = "BridgeOpenFailed";
30
+ }
31
+ }
32
+ export class BridgeStreamReset extends Error {
33
+ constructor(message) {
34
+ super(message);
35
+ this.name = "BridgeStreamReset";
36
+ }
37
+ }
38
+ export function makeBridgeStats(tcpId, streamId, sniHost) {
39
+ return {
40
+ tcpId,
41
+ streamId,
42
+ sniHost,
43
+ inboundFrames: 0,
44
+ outboundFrames: 0,
45
+ decryptedBytes: 0,
46
+ encryptedBytes: 0,
47
+ continuationFrames: 0,
48
+ tlsHandshakeDone: false,
49
+ closeReason: "",
50
+ };
51
+ }
52
+ //# sourceMappingURL=_bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_bridge.js","sourceRoot":"","sources":["../../../src/tunnels/client/_bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAChD,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAqC;IACjE,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;CAChB,CAAC;AAeF,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,QAAgB,EAChB,OAAe;IAEf,OAAO;QACL,KAAK;QACL,QAAQ;QACR,OAAO;QACP,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,kBAAkB,EAAE,CAAC;QACrB,gBAAgB,EAAE,KAAK;QACvB,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * inkbox-tunnels/client/_callable_streaming.ts
3
+ *
4
+ * Streaming wrapper for `InkboxHandler` used by `CallableDispatch` in
5
+ * passthrough mode. The Fetch-style handler returns a `Response`; this
6
+ * module pipes that response back through `DispatchResponseSink` so
7
+ * the third party gets a true streamed reply.
8
+ *
9
+ * WebSocket upgrades are handled separately by
10
+ * `_ws_passthrough.bridgeWsHandlerOverSink` — the h1 parser and h2
11
+ * transcoder route `isWebSocket=true` requests directly to
12
+ * `CallableDispatch.dispatchWebSocket` so they never reach this
13
+ * HTTP-only invoker.
14
+ */
15
+ import type { DispatchRequest, DispatchResponseSink } from "./_dispatch.js";
16
+ import type { InkboxHandler } from "./_handler.js";
17
+ export interface InvokeHandlerOpts {
18
+ handler: InkboxHandler;
19
+ request: DispatchRequest;
20
+ response: DispatchResponseSink;
21
+ publicHost: string;
22
+ maxOutboundBodyBytes: number;
23
+ }
24
+ export declare function invokeHandlerStreaming(opts: InvokeHandlerOpts): Promise<void>;
25
+ //# sourceMappingURL=_callable_streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_callable_streaming.d.ts","sourceRoot":"","sources":["../../../src/tunnels/client/_callable_streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAC;AAIzE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAkDD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CA8Ff"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * inkbox-tunnels/client/_callable_streaming.ts
3
+ *
4
+ * Streaming wrapper for `InkboxHandler` used by `CallableDispatch` in
5
+ * passthrough mode. The Fetch-style handler returns a `Response`; this
6
+ * module pipes that response back through `DispatchResponseSink` so
7
+ * the third party gets a true streamed reply.
8
+ *
9
+ * WebSocket upgrades are handled separately by
10
+ * `_ws_passthrough.bridgeWsHandlerOverSink` — the h1 parser and h2
11
+ * transcoder route `isWebSocket=true` requests directly to
12
+ * `CallableDispatch.dispatchWebSocket` so they never reach this
13
+ * HTTP-only invoker.
14
+ */
15
+ import { HOP_BY_HOP_RESPONSE } from "./_protocol.js";
16
+ /**
17
+ * Build a minimal envelope-shaped object for the InkboxRequestContext.
18
+ * Passthrough callable dispatch doesn't have a true envelope (those
19
+ * are produced by the tunnel server's intake path), so we synthesize a
20
+ * placeholder. The handler can read the typed fields directly via
21
+ * `req` / `ctx` instead of poking at this for normal use.
22
+ */
23
+ function synthesizeEnvelope(req) {
24
+ return Object.freeze({
25
+ requestId: "",
26
+ method: req.method,
27
+ path: req.path,
28
+ routeKind: "webhook",
29
+ wsId: null,
30
+ forwardedHeaders: req.headers,
31
+ body: Buffer.alloc(0),
32
+ bodyUri: null,
33
+ forwardedForIp: req.forwardedForIp,
34
+ tcpId: null,
35
+ sniHost: req.sniHost,
36
+ extraMeta: {},
37
+ });
38
+ }
39
+ async function bodyToReadable(iter) {
40
+ const it = iter[Symbol.asyncIterator]();
41
+ let probed = await it.next();
42
+ if (probed.done)
43
+ return null;
44
+ const first = probed.value;
45
+ return new ReadableStream({
46
+ async start(controller) {
47
+ controller.enqueue(new Uint8Array(first));
48
+ try {
49
+ while (true) {
50
+ const r = await it.next();
51
+ if (r.done)
52
+ break;
53
+ controller.enqueue(new Uint8Array(r.value));
54
+ }
55
+ controller.close();
56
+ }
57
+ catch (err) {
58
+ controller.error(err);
59
+ }
60
+ },
61
+ });
62
+ }
63
+ export async function invokeHandlerStreaming(opts) {
64
+ const { handler, request, response, publicHost, maxOutboundBodyBytes } = opts;
65
+ // Build a Fetch Request from the DispatchRequest. Headers are flat,
66
+ // method/path provided. URL host is the public host.
67
+ const headers = new Headers();
68
+ for (const [k, v] of request.headers) {
69
+ if (k.startsWith(":"))
70
+ continue;
71
+ try {
72
+ headers.append(k, v);
73
+ }
74
+ catch {
75
+ /* invalid header value — skip */
76
+ }
77
+ }
78
+ if (!headers.has("host"))
79
+ headers.set("host", publicHost);
80
+ if (!headers.has("x-forwarded-host"))
81
+ headers.set("x-forwarded-host", publicHost);
82
+ if (!headers.has("x-forwarded-proto"))
83
+ headers.set("x-forwarded-proto", "https");
84
+ if (request.forwardedForIp != null) {
85
+ if (!headers.has("x-forwarded-for"))
86
+ headers.set("x-forwarded-for", request.forwardedForIp);
87
+ }
88
+ const url = `https://${publicHost}${request.path.startsWith("/") ? "" : "/"}${request.path}`;
89
+ const bodyStream = request.method === "GET" || request.method === "HEAD"
90
+ ? null
91
+ : await bodyToReadable(request.body);
92
+ const fetchReq = new Request(url, {
93
+ method: request.method,
94
+ headers,
95
+ body: bodyStream,
96
+ // Required when sending a stream body on Node fetch.
97
+ duplex: "half",
98
+ });
99
+ const ctx = {
100
+ signal: new AbortController().signal,
101
+ forwardedForIp: request.forwardedForIp,
102
+ sniHost: request.sniHost,
103
+ envelope: synthesizeEnvelope(request),
104
+ };
105
+ let resp;
106
+ try {
107
+ resp = await handler(fetchReq, ctx);
108
+ }
109
+ catch {
110
+ await response.sendHead({
111
+ status: 502,
112
+ headers: [["content-type", "text/plain"]],
113
+ });
114
+ await response.sendBody(Buffer.from("upstream error"));
115
+ await response.endBody();
116
+ return;
117
+ }
118
+ const respHeaders = [];
119
+ resp.headers.forEach((value, key) => {
120
+ if (HOP_BY_HOP_RESPONSE.has(key.toLowerCase()))
121
+ return;
122
+ respHeaders.push([key, value]);
123
+ });
124
+ await response.sendHead({ status: resp.status, headers: respHeaders });
125
+ if (resp.body == null) {
126
+ await response.endBody();
127
+ return;
128
+ }
129
+ let bytesOut = 0;
130
+ const reader = resp.body.getReader();
131
+ try {
132
+ while (true) {
133
+ const { done, value } = await reader.read();
134
+ if (done)
135
+ break;
136
+ const buf = Buffer.from(value);
137
+ bytesOut += buf.length;
138
+ if (bytesOut > maxOutboundBodyBytes) {
139
+ await response.reset("response-too-large");
140
+ return;
141
+ }
142
+ await response.sendBody(buf);
143
+ }
144
+ await response.endBody();
145
+ }
146
+ catch {
147
+ await response.reset("upstream-error");
148
+ }
149
+ finally {
150
+ try {
151
+ reader.releaseLock();
152
+ }
153
+ catch {
154
+ /* swallow */
155
+ }
156
+ }
157
+ }
158
+ //# sourceMappingURL=_callable_streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_callable_streaming.js","sourceRoot":"","sources":["../../../src/tunnels/client/_callable_streaming.ts"],"names":[],"mappings":"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"}