@meshtrade/api-node 1.30.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 (186) hide show
  1. package/README.md +93 -0
  2. package/dist/buf/validate/validate_pb.d.ts +4597 -0
  3. package/dist/buf/validate/validate_pb.js +354 -0
  4. package/dist/google/type/date_pb.d.ts +52 -0
  5. package/dist/google/type/date_pb.js +26 -0
  6. package/dist/meshtrade/common/config.d.ts +50 -0
  7. package/dist/meshtrade/common/config.js +34 -0
  8. package/dist/meshtrade/common/connectInterceptors.d.ts +137 -0
  9. package/dist/meshtrade/common/connectInterceptors.js +233 -0
  10. package/dist/meshtrade/common/validation.d.ts +62 -0
  11. package/dist/meshtrade/common/validation.js +77 -0
  12. package/dist/meshtrade/compliance/client/v1/client_pb.d.ts +138 -0
  13. package/dist/meshtrade/compliance/client/v1/client_pb.js +23 -0
  14. package/dist/meshtrade/compliance/client/v1/company_pb.d.ts +313 -0
  15. package/dist/meshtrade/compliance/client/v1/company_pb.js +100 -0
  16. package/dist/meshtrade/compliance/client/v1/company_representative_pb.d.ts +81 -0
  17. package/dist/meshtrade/compliance/client/v1/company_representative_pb.js +22 -0
  18. package/dist/meshtrade/compliance/client/v1/company_representative_role_pb.d.ts +88 -0
  19. package/dist/meshtrade/compliance/client/v1/company_representative_role_pb.js +95 -0
  20. package/dist/meshtrade/compliance/client/v1/fund_pb.d.ts +65 -0
  21. package/dist/meshtrade/compliance/client/v1/fund_pb.js +18 -0
  22. package/dist/meshtrade/compliance/client/v1/identification_document_type_pb.d.ts +55 -0
  23. package/dist/meshtrade/compliance/client/v1/identification_document_type_pb.js +62 -0
  24. package/dist/meshtrade/compliance/client/v1/index.d.ts +16 -0
  25. package/dist/meshtrade/compliance/client/v1/index.js +59 -0
  26. package/dist/meshtrade/compliance/client/v1/industry_classification_pb.d.ts +86 -0
  27. package/dist/meshtrade/compliance/client/v1/industry_classification_pb.js +16 -0
  28. package/dist/meshtrade/compliance/client/v1/natural_person_connection_type_pb.d.ts +133 -0
  29. package/dist/meshtrade/compliance/client/v1/natural_person_connection_type_pb.js +140 -0
  30. package/dist/meshtrade/compliance/client/v1/natural_person_pb.d.ts +143 -0
  31. package/dist/meshtrade/compliance/client/v1/natural_person_pb.js +24 -0
  32. package/dist/meshtrade/compliance/client/v1/pep_status_pb.d.ts +46 -0
  33. package/dist/meshtrade/compliance/client/v1/pep_status_pb.js +53 -0
  34. package/dist/meshtrade/compliance/client/v1/service_node_meshts.d.ts +78 -0
  35. package/dist/meshtrade/compliance/client/v1/service_node_meshts.js +141 -0
  36. package/dist/meshtrade/compliance/client/v1/service_pb.d.ts +123 -0
  37. package/dist/meshtrade/compliance/client/v1/service_pb.js +45 -0
  38. package/dist/meshtrade/compliance/client/v1/source_of_income_and_wealth_pb.d.ts +180 -0
  39. package/dist/meshtrade/compliance/client/v1/source_of_income_and_wealth_pb.js +187 -0
  40. package/dist/meshtrade/compliance/client/v1/tax_residency_pb.d.ts +40 -0
  41. package/dist/meshtrade/compliance/client/v1/tax_residency_pb.js +17 -0
  42. package/dist/meshtrade/compliance/client/v1/trust_pb.d.ts +65 -0
  43. package/dist/meshtrade/compliance/client/v1/trust_pb.js +18 -0
  44. package/dist/meshtrade/compliance/client/v1/verification_status_pb.d.ts +57 -0
  45. package/dist/meshtrade/compliance/client/v1/verification_status_pb.js +64 -0
  46. package/dist/meshtrade/iam/api_user/v1/api_credentials_pb.d.ts +43 -0
  47. package/dist/meshtrade/iam/api_user/v1/api_credentials_pb.js +17 -0
  48. package/dist/meshtrade/iam/api_user/v1/api_user_pb.d.ts +152 -0
  49. package/dist/meshtrade/iam/api_user/v1/api_user_pb.js +95 -0
  50. package/dist/meshtrade/iam/api_user/v1/index.d.ts +4 -0
  51. package/dist/meshtrade/iam/api_user/v1/index.js +45 -0
  52. package/dist/meshtrade/iam/api_user/v1/service_node_meshts.d.ts +114 -0
  53. package/dist/meshtrade/iam/api_user/v1/service_node_meshts.js +201 -0
  54. package/dist/meshtrade/iam/api_user/v1/service_pb.d.ts +343 -0
  55. package/dist/meshtrade/iam/api_user/v1/service_pb.js +86 -0
  56. package/dist/meshtrade/iam/group/v1/group_pb.d.ts +58 -0
  57. package/dist/meshtrade/iam/group/v1/group_pb.js +17 -0
  58. package/dist/meshtrade/iam/group/v1/index.d.ts +3 -0
  59. package/dist/meshtrade/iam/group/v1/index.js +44 -0
  60. package/dist/meshtrade/iam/group/v1/service_node_meshts.d.ts +90 -0
  61. package/dist/meshtrade/iam/group/v1/service_node_meshts.js +161 -0
  62. package/dist/meshtrade/iam/group/v1/service_pb.d.ts +306 -0
  63. package/dist/meshtrade/iam/group/v1/service_pb.js +75 -0
  64. package/dist/meshtrade/iam/role/v1/index.d.ts +2 -0
  65. package/dist/meshtrade/iam/role/v1/index.js +43 -0
  66. package/dist/meshtrade/iam/role/v1/role.d.ts +71 -0
  67. package/dist/meshtrade/iam/role/v1/role.js +192 -0
  68. package/dist/meshtrade/iam/role/v1/role_pb.d.ts +164 -0
  69. package/dist/meshtrade/iam/role/v1/role_pb.js +171 -0
  70. package/dist/meshtrade/iam/user/v1/index.d.ts +3 -0
  71. package/dist/meshtrade/iam/user/v1/index.js +44 -0
  72. package/dist/meshtrade/iam/user/v1/service_node_meshts.d.ts +108 -0
  73. package/dist/meshtrade/iam/user/v1/service_node_meshts.js +191 -0
  74. package/dist/meshtrade/iam/user/v1/service_pb.d.ts +379 -0
  75. package/dist/meshtrade/iam/user/v1/service_pb.js +90 -0
  76. package/dist/meshtrade/iam/user/v1/user_pb.d.ts +58 -0
  77. package/dist/meshtrade/iam/user/v1/user_pb.js +17 -0
  78. package/dist/meshtrade/ledger/transaction/v1/index.d.ts +5 -0
  79. package/dist/meshtrade/ledger/transaction/v1/index.js +46 -0
  80. package/dist/meshtrade/ledger/transaction/v1/service_node_meshts.d.ts +80 -0
  81. package/dist/meshtrade/ledger/transaction/v1/service_node_meshts.js +140 -0
  82. package/dist/meshtrade/ledger/transaction/v1/service_pb.d.ts +102 -0
  83. package/dist/meshtrade/ledger/transaction/v1/service_pb.js +41 -0
  84. package/dist/meshtrade/ledger/transaction/v1/transaction_action_pb.d.ts +46 -0
  85. package/dist/meshtrade/ledger/transaction/v1/transaction_action_pb.js +53 -0
  86. package/dist/meshtrade/ledger/transaction/v1/transaction_state.d.ts +14 -0
  87. package/dist/meshtrade/ledger/transaction/v1/transaction_state.js +64 -0
  88. package/dist/meshtrade/ledger/transaction/v1/transaction_state_pb.d.ts +50 -0
  89. package/dist/meshtrade/ledger/transaction/v1/transaction_state_pb.js +57 -0
  90. package/dist/meshtrade/market_data/price/v1/index.d.ts +3 -0
  91. package/dist/meshtrade/market_data/price/v1/index.js +44 -0
  92. package/dist/meshtrade/market_data/price/v1/price_pb.d.ts +50 -0
  93. package/dist/meshtrade/market_data/price/v1/price_pb.js +19 -0
  94. package/dist/meshtrade/market_data/price/v1/service_node_meshts.d.ts +66 -0
  95. package/dist/meshtrade/market_data/price/v1/service_node_meshts.js +121 -0
  96. package/dist/meshtrade/market_data/price/v1/service_pb.d.ts +48 -0
  97. package/dist/meshtrade/market_data/price/v1/service_pb.js +27 -0
  98. package/dist/meshtrade/option/method_options/v1/index.d.ts +1 -0
  99. package/dist/meshtrade/option/method_options/v1/index.js +42 -0
  100. package/dist/meshtrade/option/method_options/v1/method_options_pb.d.ts +132 -0
  101. package/dist/meshtrade/option/method_options/v1/method_options_pb.js +108 -0
  102. package/dist/meshtrade/reporting/account_report/v1/account_report_pb.d.ts +136 -0
  103. package/dist/meshtrade/reporting/account_report/v1/account_report_pb.js +28 -0
  104. package/dist/meshtrade/reporting/account_report/v1/disclaimer_pb.d.ts +39 -0
  105. package/dist/meshtrade/reporting/account_report/v1/disclaimer_pb.js +16 -0
  106. package/dist/meshtrade/reporting/account_report/v1/fee_entry_pb.d.ts +66 -0
  107. package/dist/meshtrade/reporting/account_report/v1/fee_entry_pb.js +18 -0
  108. package/dist/meshtrade/reporting/account_report/v1/income_entry_pb.d.ts +139 -0
  109. package/dist/meshtrade/reporting/account_report/v1/income_entry_pb.js +80 -0
  110. package/dist/meshtrade/reporting/account_report/v1/index.d.ts +7 -0
  111. package/dist/meshtrade/reporting/account_report/v1/index.js +48 -0
  112. package/dist/meshtrade/reporting/account_report/v1/service_node_meshts.d.ts +72 -0
  113. package/dist/meshtrade/reporting/account_report/v1/service_node_meshts.js +131 -0
  114. package/dist/meshtrade/reporting/account_report/v1/service_pb.d.ts +162 -0
  115. package/dist/meshtrade/reporting/account_report/v1/service_pb.js +46 -0
  116. package/dist/meshtrade/reporting/account_report/v1/trading_statement_entry_pb.d.ts +80 -0
  117. package/dist/meshtrade/reporting/account_report/v1/trading_statement_entry_pb.js +18 -0
  118. package/dist/meshtrade/studio/instrument/v1/index.d.ts +3 -0
  119. package/dist/meshtrade/studio/instrument/v1/index.js +44 -0
  120. package/dist/meshtrade/studio/instrument/v1/instrument_pb.d.ts +53 -0
  121. package/dist/meshtrade/studio/instrument/v1/instrument_pb.js +18 -0
  122. package/dist/meshtrade/studio/instrument/v1/instrument_type_pb.d.ts +214 -0
  123. package/dist/meshtrade/studio/instrument/v1/instrument_type_pb.js +221 -0
  124. package/dist/meshtrade/studio/instrument/v1/unit_pb.d.ts +148 -0
  125. package/dist/meshtrade/studio/instrument/v1/unit_pb.js +155 -0
  126. package/dist/meshtrade/trading/limit_order/v1/index.d.ts +3 -0
  127. package/dist/meshtrade/trading/limit_order/v1/index.js +44 -0
  128. package/dist/meshtrade/trading/limit_order/v1/limit_order_pb.d.ts +211 -0
  129. package/dist/meshtrade/trading/limit_order/v1/limit_order_pb.js +111 -0
  130. package/dist/meshtrade/trading/limit_order/v1/service_node_meshts.d.ts +111 -0
  131. package/dist/meshtrade/trading/limit_order/v1/service_node_meshts.js +190 -0
  132. package/dist/meshtrade/trading/limit_order/v1/service_pb.d.ts +357 -0
  133. package/dist/meshtrade/trading/limit_order/v1/service_pb.js +73 -0
  134. package/dist/meshtrade/trading/market_order/v1/index.d.ts +3 -0
  135. package/dist/meshtrade/trading/market_order/v1/index.js +44 -0
  136. package/dist/meshtrade/trading/market_order/v1/market_order_pb.d.ts +20 -0
  137. package/dist/meshtrade/trading/market_order/v1/market_order_pb.js +16 -0
  138. package/dist/meshtrade/trading/market_order/v1/service_node_meshts.d.ts +66 -0
  139. package/dist/meshtrade/trading/market_order/v1/service_node_meshts.js +121 -0
  140. package/dist/meshtrade/trading/market_order/v1/service_pb.d.ts +34 -0
  141. package/dist/meshtrade/trading/market_order/v1/service_pb.js +22 -0
  142. package/dist/meshtrade/type/v1/address_pb.d.ts +82 -0
  143. package/dist/meshtrade/type/v1/address_pb.js +16 -0
  144. package/dist/meshtrade/type/v1/amount.d.ts +13 -0
  145. package/dist/meshtrade/type/v1/amount.js +68 -0
  146. package/dist/meshtrade/type/v1/amountWrapper.d.ts +74 -0
  147. package/dist/meshtrade/type/v1/amountWrapper.js +98 -0
  148. package/dist/meshtrade/type/v1/amount_pb.d.ts +44 -0
  149. package/dist/meshtrade/type/v1/amount_pb.js +18 -0
  150. package/dist/meshtrade/type/v1/contact_details_pb.d.ts +98 -0
  151. package/dist/meshtrade/type/v1/contact_details_pb.js +16 -0
  152. package/dist/meshtrade/type/v1/date.d.ts +49 -0
  153. package/dist/meshtrade/type/v1/date.js +136 -0
  154. package/dist/meshtrade/type/v1/date_pb.d.ts +50 -0
  155. package/dist/meshtrade/type/v1/date_pb.js +16 -0
  156. package/dist/meshtrade/type/v1/decimalConversions.d.ts +24 -0
  157. package/dist/meshtrade/type/v1/decimalConversions.js +39 -0
  158. package/dist/meshtrade/type/v1/decimal_pb.d.ts +24 -0
  159. package/dist/meshtrade/type/v1/decimal_pb.js +16 -0
  160. package/dist/meshtrade/type/v1/index.d.ts +15 -0
  161. package/dist/meshtrade/type/v1/index.js +56 -0
  162. package/dist/meshtrade/type/v1/ledger.d.ts +27 -0
  163. package/dist/meshtrade/type/v1/ledger.js +115 -0
  164. package/dist/meshtrade/type/v1/ledger_pb.d.ts +83 -0
  165. package/dist/meshtrade/type/v1/ledger_pb.js +90 -0
  166. package/dist/meshtrade/type/v1/sorting_pb.d.ts +35 -0
  167. package/dist/meshtrade/type/v1/sorting_pb.js +42 -0
  168. package/dist/meshtrade/type/v1/time_of_day.d.ts +74 -0
  169. package/dist/meshtrade/type/v1/time_of_day.js +199 -0
  170. package/dist/meshtrade/type/v1/time_of_day_pb.d.ts +67 -0
  171. package/dist/meshtrade/type/v1/time_of_day_pb.js +16 -0
  172. package/dist/meshtrade/type/v1/token.d.ts +4 -0
  173. package/dist/meshtrade/type/v1/token.js +23 -0
  174. package/dist/meshtrade/type/v1/tokenWrapper.d.ts +49 -0
  175. package/dist/meshtrade/type/v1/tokenWrapper.js +92 -0
  176. package/dist/meshtrade/type/v1/token_pb.d.ts +56 -0
  177. package/dist/meshtrade/type/v1/token_pb.js +17 -0
  178. package/dist/meshtrade/wallet/account/v1/account_pb.d.ts +264 -0
  179. package/dist/meshtrade/wallet/account/v1/account_pb.js +74 -0
  180. package/dist/meshtrade/wallet/account/v1/index.d.ts +3 -0
  181. package/dist/meshtrade/wallet/account/v1/index.js +44 -0
  182. package/dist/meshtrade/wallet/account/v1/service_node_meshts.d.ts +114 -0
  183. package/dist/meshtrade/wallet/account/v1/service_node_meshts.js +201 -0
  184. package/dist/meshtrade/wallet/account/v1/service_pb.d.ts +559 -0
  185. package/dist/meshtrade/wallet/account/v1/service_pb.js +112 -0
  186. package/package.json +171 -0
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ // @generated by protoc-gen-es v2.10.1 with parameter "target=ts"
3
+ // @generated from file meshtrade/compliance/client/v1/natural_person_connection_type.proto (package meshtrade.compliance.client.v1, syntax proto3)
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NaturalPersonConnectionTypeSchema = exports.NaturalPersonConnectionType = exports.file_meshtrade_compliance_client_v1_natural_person_connection_type = void 0;
7
+ const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
8
+ /**
9
+ * Describes the file meshtrade/compliance/client/v1/natural_person_connection_type.proto.
10
+ */
11
+ exports.file_meshtrade_compliance_client_v1_natural_person_connection_type = (0, codegenv2_1.fileDesc)("CkNtZXNodHJhZGUvY29tcGxpYW5jZS9jbGllbnQvdjEvbmF0dXJhbF9wZXJzb25fY29ubmVjdGlvbl90eXBlLnByb3RvEh5tZXNodHJhZGUuY29tcGxpYW5jZS5jbGllbnQudjEqtAYKG05hdHVyYWxQZXJzb25Db25uZWN0aW9uVHlwZRIuCipOQVRVUkFMX1BFUlNPTl9DT05ORUNUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABI8CjhOQVRVUkFMX1BFUlNPTl9DT05ORUNUSU9OX1RZUEVfVUxUSU1BVEVfQkVORUZJQ0lBTF9PV05FUhABEi4KKk5BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9TSEFSRUhPTERFUhACEisKJ05BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9ESVJFQ1RPUhADEjQKME5BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9TRU5JT1JfTUFOQUdFTUVOVBAEEjcKM05BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9BVVRIT1JJWkVEX1NJR05BVE9SWRAFEioKJk5BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9GT1VOREVSEAYSKQolTkFUVVJBTF9QRVJTT05fQ09OTkVDVElPTl9UWVBFX1NQT1VTRRAUEjMKL05BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9ET01FU1RJQ19QQVJUTkVSEBUSKQolTkFUVVJBTF9QRVJTT05fQ09OTkVDVElPTl9UWVBFX1BBUkVOVBAWEigKJE5BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9DSElMRBAXEioKJk5BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9TSUJMSU5HEBgSMwovTkFUVVJBTF9QRVJTT05fQ09OTkVDVElPTl9UWVBFX0JVU0lORVNTX1BBUlRORVIQHhIyCi5OQVRVUkFMX1BFUlNPTl9DT05ORUNUSU9OX1RZUEVfQ0xPU0VfQVNTT0NJQVRFEB8SLAooTkFUVVJBTF9QRVJTT05fQ09OTkVDVElPTl9UWVBFX0dVQVJBTlRPUhAgEjcKM05BVFVSQUxfUEVSU09OX0NPTk5FQ1RJT05fVFlQRV9CRU5FRklDSUFSWV9PRl9UUlVTVBAhQmMKJWNvLm1lc2h0cmFkZS5hcGkuY29tcGxpYW5jZS5jbGllbnQudjFaOmdpdGh1Yi5jb20vbWVzaHRyYWRlL2FwaS9nby9jb21wbGlhbmNlL2NsaWVudC92MTtjbGllbnRfdjFiBnByb3RvMw");
12
+ /**
13
+ *
14
+ * NaturalPersonConnectionType describes how a natural person is connected to a business
15
+ * or to another key individual (like a PEP). It covers primary roles for KYB (ownership, control)
16
+ * as well as secondary relationships for screening (familial, professional).
17
+ *
18
+ * @generated from enum meshtrade.compliance.client.v1.NaturalPersonConnectionType
19
+ */
20
+ var NaturalPersonConnectionType;
21
+ (function (NaturalPersonConnectionType) {
22
+ /**
23
+ *
24
+ * Unknown or not specified.
25
+ * This is a a default value to prevent accidental assignment and should not be used.
26
+ *
27
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_UNSPECIFIED = 0;
28
+ */
29
+ NaturalPersonConnectionType[NaturalPersonConnectionType["UNSPECIFIED"] = 0] = "UNSPECIFIED";
30
+ /**
31
+ *
32
+ * The person is an Ultimate Beneficial Owner as defined by AML regulations (e.g., >25% ownership/voting rights).
33
+ * This is the most critical connection type for KYB.
34
+ *
35
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_ULTIMATE_BENEFICIAL_OWNER = 1;
36
+ */
37
+ NaturalPersonConnectionType[NaturalPersonConnectionType["ULTIMATE_BENEFICIAL_OWNER"] = 1] = "ULTIMATE_BENEFICIAL_OWNER";
38
+ /**
39
+ *
40
+ * The person owns shares but may be below the UBO threshold.
41
+ *
42
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_SHAREHOLDER = 2;
43
+ */
44
+ NaturalPersonConnectionType[NaturalPersonConnectionType["SHAREHOLDER"] = 2] = "SHAREHOLDER";
45
+ /**
46
+ *
47
+ * The person is a formal Director on the company's board.
48
+ *
49
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_DIRECTOR = 3;
50
+ */
51
+ NaturalPersonConnectionType[NaturalPersonConnectionType["DIRECTOR"] = 3] = "DIRECTOR";
52
+ /**
53
+ *
54
+ * The person holds a senior management position with significant operational control (e.g., CEO, CFO, COO).
55
+ *
56
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_SENIOR_MANAGEMENT = 4;
57
+ */
58
+ NaturalPersonConnectionType[NaturalPersonConnectionType["SENIOR_MANAGEMENT"] = 4] = "SENIOR_MANAGEMENT";
59
+ /**
60
+ *
61
+ * The person is formally authorized to sign documents and act on the company's behalf.
62
+ *
63
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_AUTHORIZED_SIGNATORY = 5;
64
+ */
65
+ NaturalPersonConnectionType[NaturalPersonConnectionType["AUTHORIZED_SIGNATORY"] = 5] = "AUTHORIZED_SIGNATORY";
66
+ /**
67
+ *
68
+ * The person is the founder of the company.
69
+ *
70
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_FOUNDER = 6;
71
+ */
72
+ NaturalPersonConnectionType[NaturalPersonConnectionType["FOUNDER"] = 6] = "FOUNDER";
73
+ /**
74
+ *
75
+ * The person is a legally married partner.
76
+ *
77
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_SPOUSE = 20;
78
+ */
79
+ NaturalPersonConnectionType[NaturalPersonConnectionType["SPOUSE"] = 20] = "SPOUSE";
80
+ /**
81
+ *
82
+ * The person is a partner in a long-term relationship, equivalent to a spouse.
83
+ *
84
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_DOMESTIC_PARTNER = 21;
85
+ */
86
+ NaturalPersonConnectionType[NaturalPersonConnectionType["DOMESTIC_PARTNER"] = 21] = "DOMESTIC_PARTNER";
87
+ /**
88
+ *
89
+ * The person is a mother or father.
90
+ *
91
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_PARENT = 22;
92
+ */
93
+ NaturalPersonConnectionType[NaturalPersonConnectionType["PARENT"] = 22] = "PARENT";
94
+ /**
95
+ *
96
+ * The person is a son or daughter.
97
+ *
98
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_CHILD = 23;
99
+ */
100
+ NaturalPersonConnectionType[NaturalPersonConnectionType["CHILD"] = 23] = "CHILD";
101
+ /**
102
+ *
103
+ * The person is a brother or sister.
104
+ *
105
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_SIBLING = 24;
106
+ */
107
+ NaturalPersonConnectionType[NaturalPersonConnectionType["SIBLING"] = 24] = "SIBLING";
108
+ /**
109
+ *
110
+ * The person is a business partner.
111
+ *
112
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_BUSINESS_PARTNER = 30;
113
+ */
114
+ NaturalPersonConnectionType[NaturalPersonConnectionType["BUSINESS_PARTNER"] = 30] = "BUSINESS_PARTNER";
115
+ /**
116
+ *
117
+ * A generic term for a known professional or personal associate, as defined by FATF guidelines for PEPs.
118
+ *
119
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_CLOSE_ASSOCIATE = 31;
120
+ */
121
+ NaturalPersonConnectionType[NaturalPersonConnectionType["CLOSE_ASSOCIATE"] = 31] = "CLOSE_ASSOCIATE";
122
+ /**
123
+ *
124
+ * The person is a guarantor for the company's financial obligations.
125
+ *
126
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_GUARANTOR = 32;
127
+ */
128
+ NaturalPersonConnectionType[NaturalPersonConnectionType["GUARANTOR"] = 32] = "GUARANTOR";
129
+ /**
130
+ *
131
+ * The person is a beneficiary of a trust that owns or controls the company.
132
+ *
133
+ * @generated from enum value: NATURAL_PERSON_CONNECTION_TYPE_BENEFICIARY_OF_TRUST = 33;
134
+ */
135
+ NaturalPersonConnectionType[NaturalPersonConnectionType["BENEFICIARY_OF_TRUST"] = 33] = "BENEFICIARY_OF_TRUST";
136
+ })(NaturalPersonConnectionType || (exports.NaturalPersonConnectionType = NaturalPersonConnectionType = {}));
137
+ /**
138
+ * Describes the enum meshtrade.compliance.client.v1.NaturalPersonConnectionType.
139
+ */
140
+ exports.NaturalPersonConnectionTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_meshtrade_compliance_client_v1_natural_person_connection_type, 0);
@@ -0,0 +1,143 @@
1
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
+ import type { Date } from "../../../../google/type/date_pb";
3
+ import type { IdentificationDocumentType } from "./identification_document_type_pb";
4
+ import type { PepStatus } from "./pep_status_pb";
5
+ import type { SourceOfIncomeAndWealth } from "./source_of_income_and_wealth_pb";
6
+ import type { TaxResidency } from "./tax_residency_pb";
7
+ import type { Address } from "../../../type/v1/address_pb";
8
+ import type { ContactDetails } from "../../../type/v1/contact_details_pb";
9
+ import type { Message } from "@bufbuild/protobuf";
10
+ /**
11
+ * Describes the file meshtrade/compliance/client/v1/natural_person.proto.
12
+ */
13
+ export declare const file_meshtrade_compliance_client_v1_natural_person: GenFile;
14
+ /**
15
+ *
16
+ * NaturalPerson is the identity of an individual person.
17
+ * It contains the core, verifiable components of an individual's identity. which are
18
+ * verified against their passport, utility bills, government records etc. during Know Your Client (KYC) checks.
19
+ * Note on Required Fields: Fields marked as 'Required' are essential
20
+ * for a successful compliance check, but are not mandatory for creation.
21
+ *
22
+ * @generated from message meshtrade.compliance.client.v1.NaturalPerson
23
+ */
24
+ export type NaturalPerson = Message<"meshtrade.compliance.client.v1.NaturalPerson"> & {
25
+ /**
26
+ *
27
+ * The client's full legal name, as it appears on their official identification documents.
28
+ * Required for verification.
29
+ *
30
+ * @generated from field: string full_name = 1;
31
+ */
32
+ fullName: string;
33
+ /**
34
+ *
35
+ * The client's date of birth.
36
+ * Required for verification.
37
+ *
38
+ * @generated from field: google.type.Date date_of_birth = 2;
39
+ */
40
+ dateOfBirth?: Date;
41
+ /**
42
+ *
43
+ * The ISO 3166-1 alpha-2 country code of the client's nationality/citizenship.
44
+ * This is the two-letter country code (e.g., "ZA" for South Africa,
45
+ * "NL" for the Netherlands). The value should be in uppercase.
46
+ * See https://www.iso.org/iso-3166-country-codes.html for a full list.
47
+ * Required for verification.
48
+ *
49
+ * @generated from field: string country_of_citizenship = 3;
50
+ */
51
+ countryOfCitizenship: string;
52
+ /**
53
+ *
54
+ * An identification number for the client, as found on the provided document.
55
+ * The format is dependent on the identification_document_type.
56
+ * Required for verification.
57
+ *
58
+ * @generated from field: string identification_number = 4;
59
+ */
60
+ identificationNumber: string;
61
+ /**
62
+ *
63
+ * The type of identification document provided to prove the correctness of the
64
+ * given identification_number (e.g., Passport, Driver's License).
65
+ * Required for verification.
66
+ *
67
+ * @generated from field: meshtrade.compliance.client.v1.IdentificationDocumentType identification_document_type = 5;
68
+ */
69
+ identificationDocumentType: IdentificationDocumentType;
70
+ /**
71
+ *
72
+ * The expiration date of the identification document, if applicable.
73
+ * Required for verification if the document has an expiry date.
74
+ *
75
+ * @generated from field: google.type.Date identification_document_expiry_date = 6;
76
+ */
77
+ identificationDocumentExpiryDate?: Date;
78
+ /**
79
+ *
80
+ * The client's primary physical residential address.
81
+ * If `postal_address` is not provided, this address will also be used for postal mail.
82
+ * Required for verification.
83
+ *
84
+ * @generated from field: meshtrade.type.v1.Address physical_address = 7;
85
+ */
86
+ physicalAddress?: Address;
87
+ /**
88
+ *
89
+ * The client's postal address, if it is different from the physical address.
90
+ * Optional for verification.
91
+ *
92
+ * @generated from field: meshtrade.type.v1.Address postal_address = 8;
93
+ */
94
+ postalAddress?: Address;
95
+ /**
96
+ *
97
+ * The client's status as a Politically Exposed Person (PEP).
98
+ * This is a mandatory check for regulatory compliance.
99
+ * Required for verification.
100
+ *
101
+ * @generated from field: meshtrade.compliance.client.v1.PepStatus pep_status = 9;
102
+ */
103
+ pepStatus: PepStatus;
104
+ /**
105
+ *
106
+ * The individual's personal contact details (personal email, personal mobile).
107
+ * Optional for verification.
108
+ *
109
+ * @generated from field: meshtrade.type.v1.ContactDetails contact_details = 10;
110
+ */
111
+ contactDetails?: ContactDetails;
112
+ /**
113
+ *
114
+ * The primary sources of the client's regular income (e.g., employment, pension).
115
+ * Required for verification.
116
+ *
117
+ * @generated from field: repeated meshtrade.compliance.client.v1.SourceOfIncomeAndWealth sources_of_income = 11;
118
+ */
119
+ sourcesOfIncome: SourceOfIncomeAndWealth[];
120
+ /**
121
+ *
122
+ * The origins of the client's total net worth or assets (e.g., inheritance, investments).
123
+ * This is distinct from the source of income.
124
+ * Required for verification.
125
+ *
126
+ * @generated from field: repeated meshtrade.compliance.client.v1.SourceOfIncomeAndWealth sources_of_wealth = 12;
127
+ */
128
+ sourcesOfWealth: SourceOfIncomeAndWealth[];
129
+ /**
130
+ *
131
+ * The client's tax residency information, required for CRS/FATCA reporting.
132
+ * A client can be a tax resident in multiple jurisdictions.
133
+ * Required for verification.
134
+ *
135
+ * @generated from field: repeated meshtrade.compliance.client.v1.TaxResidency tax_residencies = 13;
136
+ */
137
+ taxResidencies: TaxResidency[];
138
+ };
139
+ /**
140
+ * Describes the message meshtrade.compliance.client.v1.NaturalPerson.
141
+ * Use `create(NaturalPersonSchema)` to create a new message.
142
+ */
143
+ export declare const NaturalPersonSchema: GenMessage<NaturalPerson>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ // @generated by protoc-gen-es v2.10.1 with parameter "target=ts"
3
+ // @generated from file meshtrade/compliance/client/v1/natural_person.proto (package meshtrade.compliance.client.v1, syntax proto3)
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NaturalPersonSchema = exports.file_meshtrade_compliance_client_v1_natural_person = void 0;
7
+ const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
8
+ const validate_pb_1 = require("../../../../buf/validate/validate_pb");
9
+ const date_pb_1 = require("../../../../google/type/date_pb");
10
+ const identification_document_type_pb_1 = require("./identification_document_type_pb");
11
+ const pep_status_pb_1 = require("./pep_status_pb");
12
+ const source_of_income_and_wealth_pb_1 = require("./source_of_income_and_wealth_pb");
13
+ const tax_residency_pb_1 = require("./tax_residency_pb");
14
+ const address_pb_1 = require("../../../type/v1/address_pb");
15
+ const contact_details_pb_1 = require("../../../type/v1/contact_details_pb");
16
+ /**
17
+ * Describes the file meshtrade/compliance/client/v1/natural_person.proto.
18
+ */
19
+ exports.file_meshtrade_compliance_client_v1_natural_person = (0, codegenv2_1.fileDesc)("CjNtZXNodHJhZGUvY29tcGxpYW5jZS9jbGllbnQvdjEvbmF0dXJhbF9wZXJzb24ucHJvdG8SHm1lc2h0cmFkZS5jb21wbGlhbmNlLmNsaWVudC52MSLwBwoNTmF0dXJhbFBlcnNvbhIbCglmdWxsX25hbWUYASABKAlCCLpIBXIDGP8BEigKDWRhdGVfb2ZfYmlydGgYAiABKAsyES5nb29nbGUudHlwZS5EYXRlEscBChZjb3VudHJ5X29mX2NpdGl6ZW5zaGlwGAMgASgJQqYBukiiAboBngEKHGNvdW50cnlfY29kZS5mb3JtYXQub3B0aW9uYWwST2NvdW50cnlfb2ZfY2l0aXplbnNoaXAgbXVzdCBiZSBlbXB0eSBvciBhIHZhbGlkIElTTyAzMTY2LTEgYWxwaGEtMiBjb3VudHJ5IGNvZGUaLXNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ15bQS1aXXsyfSQnKRImChVpZGVudGlmaWNhdGlvbl9udW1iZXIYBCABKAlCB7pIBHICGGQSagocaWRlbnRpZmljYXRpb25fZG9jdW1lbnRfdHlwZRgFIAEoDjI6Lm1lc2h0cmFkZS5jb21wbGlhbmNlLmNsaWVudC52MS5JZGVudGlmaWNhdGlvbkRvY3VtZW50VHlwZUIIukgFggECEAESPgojaWRlbnRpZmljYXRpb25fZG9jdW1lbnRfZXhwaXJ5X2RhdGUYBiABKAsyES5nb29nbGUudHlwZS5EYXRlEjQKEHBoeXNpY2FsX2FkZHJlc3MYByABKAsyGi5tZXNodHJhZGUudHlwZS52MS5BZGRyZXNzEjIKDnBvc3RhbF9hZGRyZXNzGAggASgLMhoubWVzaHRyYWRlLnR5cGUudjEuQWRkcmVzcxJHCgpwZXBfc3RhdHVzGAkgASgOMikubWVzaHRyYWRlLmNvbXBsaWFuY2UuY2xpZW50LnYxLlBlcFN0YXR1c0IIukgFggECEAESOgoPY29udGFjdF9kZXRhaWxzGAogASgLMiEubWVzaHRyYWRlLnR5cGUudjEuQ29udGFjdERldGFpbHMSYQoRc291cmNlc19vZl9pbmNvbWUYCyADKA4yNy5tZXNodHJhZGUuY29tcGxpYW5jZS5jbGllbnQudjEuU291cmNlT2ZJbmNvbWVBbmRXZWFsdGhCDbpICpIBByIFggECEAESYQoRc291cmNlc19vZl93ZWFsdGgYDCADKA4yNy5tZXNodHJhZGUuY29tcGxpYW5jZS5jbGllbnQudjEuU291cmNlT2ZJbmNvbWVBbmRXZWFsdGhCDbpICpIBByIFggECEAESRQoPdGF4X3Jlc2lkZW5jaWVzGA0gAygLMiwubWVzaHRyYWRlLmNvbXBsaWFuY2UuY2xpZW50LnYxLlRheFJlc2lkZW5jeUJjCiVjby5tZXNodHJhZGUuYXBpLmNvbXBsaWFuY2UuY2xpZW50LnYxWjpnaXRodWIuY29tL21lc2h0cmFkZS9hcGkvZ28vY29tcGxpYW5jZS9jbGllbnQvdjE7Y2xpZW50X3YxYgZwcm90bzM", [validate_pb_1.file_buf_validate_validate, date_pb_1.file_google_type_date, identification_document_type_pb_1.file_meshtrade_compliance_client_v1_identification_document_type, pep_status_pb_1.file_meshtrade_compliance_client_v1_pep_status, source_of_income_and_wealth_pb_1.file_meshtrade_compliance_client_v1_source_of_income_and_wealth, tax_residency_pb_1.file_meshtrade_compliance_client_v1_tax_residency, address_pb_1.file_meshtrade_type_v1_address, contact_details_pb_1.file_meshtrade_type_v1_contact_details]);
20
+ /**
21
+ * Describes the message meshtrade.compliance.client.v1.NaturalPerson.
22
+ * Use `create(NaturalPersonSchema)` to create a new message.
23
+ */
24
+ exports.NaturalPersonSchema = (0, codegenv2_1.messageDesc)(exports.file_meshtrade_compliance_client_v1_natural_person, 0);
@@ -0,0 +1,46 @@
1
+ import type { GenEnum, GenFile } from "@bufbuild/protobuf/codegenv2";
2
+ /**
3
+ * Describes the file meshtrade/compliance/client/v1/pep_status.proto.
4
+ */
5
+ export declare const file_meshtrade_compliance_client_v1_pep_status: GenFile;
6
+ /**
7
+ *
8
+ * Defines the possible statuses for a Politically Exposed Person check.
9
+ *
10
+ * @generated from enum meshtrade.compliance.client.v1.PepStatus
11
+ */
12
+ export declare enum PepStatus {
13
+ /**
14
+ *
15
+ * Unknown or not specified.
16
+ * This is a default value to prevent accidental assignment and should not be used.
17
+ *
18
+ * @generated from enum value: PEP_STATUS_UNSPECIFIED = 0;
19
+ */
20
+ UNSPECIFIED = 0,
21
+ /**
22
+ *
23
+ * The client has been verified as not being a PEP.
24
+ *
25
+ * @generated from enum value: PEP_STATUS_IS_NOT_PEP = 1;
26
+ */
27
+ IS_NOT_PEP = 1,
28
+ /**
29
+ *
30
+ * The client has been identified as a Politically Exposed Person.
31
+ *
32
+ * @generated from enum value: PEP_STATUS_IS_PEP = 2;
33
+ */
34
+ IS_PEP = 2,
35
+ /**
36
+ *
37
+ * The client is a family member or close associate of a PEP.
38
+ *
39
+ * @generated from enum value: PEP_STATUS_IS_ASSOCIATE = 3;
40
+ */
41
+ IS_ASSOCIATE = 3
42
+ }
43
+ /**
44
+ * Describes the enum meshtrade.compliance.client.v1.PepStatus.
45
+ */
46
+ export declare const PepStatusSchema: GenEnum<PepStatus>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ // @generated by protoc-gen-es v2.10.1 with parameter "target=ts"
3
+ // @generated from file meshtrade/compliance/client/v1/pep_status.proto (package meshtrade.compliance.client.v1, syntax proto3)
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PepStatusSchema = exports.PepStatus = exports.file_meshtrade_compliance_client_v1_pep_status = void 0;
7
+ const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
8
+ /**
9
+ * Describes the file meshtrade/compliance/client/v1/pep_status.proto.
10
+ */
11
+ exports.file_meshtrade_compliance_client_v1_pep_status = (0, codegenv2_1.fileDesc)("Ci9tZXNodHJhZGUvY29tcGxpYW5jZS9jbGllbnQvdjEvcGVwX3N0YXR1cy5wcm90bxIebWVzaHRyYWRlLmNvbXBsaWFuY2UuY2xpZW50LnYxKnYKCVBlcFN0YXR1cxIaChZQRVBfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGQoVUEVQX1NUQVRVU19JU19OT1RfUEVQEAESFQoRUEVQX1NUQVRVU19JU19QRVAQAhIbChdQRVBfU1RBVFVTX0lTX0FTU09DSUFURRADQmMKJWNvLm1lc2h0cmFkZS5hcGkuY29tcGxpYW5jZS5jbGllbnQudjFaOmdpdGh1Yi5jb20vbWVzaHRyYWRlL2FwaS9nby9jb21wbGlhbmNlL2NsaWVudC92MTtjbGllbnRfdjFiBnByb3RvMw");
12
+ /**
13
+ *
14
+ * Defines the possible statuses for a Politically Exposed Person check.
15
+ *
16
+ * @generated from enum meshtrade.compliance.client.v1.PepStatus
17
+ */
18
+ var PepStatus;
19
+ (function (PepStatus) {
20
+ /**
21
+ *
22
+ * Unknown or not specified.
23
+ * This is a default value to prevent accidental assignment and should not be used.
24
+ *
25
+ * @generated from enum value: PEP_STATUS_UNSPECIFIED = 0;
26
+ */
27
+ PepStatus[PepStatus["UNSPECIFIED"] = 0] = "UNSPECIFIED";
28
+ /**
29
+ *
30
+ * The client has been verified as not being a PEP.
31
+ *
32
+ * @generated from enum value: PEP_STATUS_IS_NOT_PEP = 1;
33
+ */
34
+ PepStatus[PepStatus["IS_NOT_PEP"] = 1] = "IS_NOT_PEP";
35
+ /**
36
+ *
37
+ * The client has been identified as a Politically Exposed Person.
38
+ *
39
+ * @generated from enum value: PEP_STATUS_IS_PEP = 2;
40
+ */
41
+ PepStatus[PepStatus["IS_PEP"] = 2] = "IS_PEP";
42
+ /**
43
+ *
44
+ * The client is a family member or close associate of a PEP.
45
+ *
46
+ * @generated from enum value: PEP_STATUS_IS_ASSOCIATE = 3;
47
+ */
48
+ PepStatus[PepStatus["IS_ASSOCIATE"] = 3] = "IS_ASSOCIATE";
49
+ })(PepStatus || (exports.PepStatus = PepStatus = {}));
50
+ /**
51
+ * Describes the enum meshtrade.compliance.client.v1.PepStatus.
52
+ */
53
+ exports.PepStatusSchema = (0, codegenv2_1.enumDesc)(exports.file_meshtrade_compliance_client_v1_pep_status, 0);
@@ -0,0 +1,78 @@
1
+ import { Interceptor } from "@connectrpc/connect";
2
+ import { CreateClientRequest, GetClientRequest, ListClientsRequest, ListClientsResponse } from "./service_pb";
3
+ import { Client } from "./client_pb";
4
+ import { ConfigOpts } from "../../../common/config";
5
+ /**
6
+ * Node.js client for interacting with the meshtrade.compliance.client.v1 client v1 API resource service.
7
+ * Uses Connect-ES with gRPC transport for Node.js gRPC communication.
8
+ *
9
+ * Supports three authentication modes:
10
+ *
11
+ * 1. **No Authentication** (public APIs):
12
+ * ```typescript
13
+ * const client = new ClientServiceNode({ apiServerURL: "http://localhost:10000" });
14
+ * ```
15
+ *
16
+ * 2. **API Key Authentication** (backend services):
17
+ * ```typescript
18
+ * const client = new ClientServiceNode({
19
+ * apiServerURL: "https://api.example.com",
20
+ * apiKey: "your-api-key",
21
+ * group: "groups/01ARZ3NDEKTSV4YWVF8F5BH32"
22
+ * });
23
+ * ```
24
+ *
25
+ * 3. **JWT Token Authentication** (Next.js backend with user session):
26
+ * ```typescript
27
+ * const client = new ClientServiceNode({
28
+ * apiServerURL: "https://api.example.com",
29
+ * jwtToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
30
+ * });
31
+ * ```
32
+ */
33
+ export declare class ClientServiceNode {
34
+ private _client;
35
+ private readonly _config;
36
+ private readonly _interceptors;
37
+ /**
38
+ * Constructs an instance of ClientServiceNode.
39
+ * @param {ConfigOpts} [config] - Optional configuration for the client.
40
+ * @param {Interceptor[]} [interceptors] - For internal use by `withGroup`.
41
+ */
42
+ constructor(config?: ConfigOpts, interceptors?: Interceptor[]);
43
+ /**
44
+ * Returns a new client instance configured to send the specified group
45
+ * resource name in the request headers for subsequent API calls.
46
+ *
47
+ * **Important**: This method only works with API key authentication.
48
+ * - For **API key auth**: Creates a new client with updated group context
49
+ * - For **JWT auth**: Throws error (group comes from JWT token claims)
50
+ * - For **no auth**: Throws error (group requires authentication)
51
+ *
52
+ * @param {string} group - The operating group context to inject into the request
53
+ * in the format `groups/{ulid}` where {ulid} is a 26-character ULID.
54
+ * Example: 'groups/01ARZ3NDEKTSV4YWVF8F5BH32'
55
+ * @returns {ClientServiceNode} A new, configured instance of the client.
56
+ * @throws {Error} If used with JWT authentication or no authentication
57
+ * @throws {Error} If the group format is invalid
58
+ */
59
+ withGroup(group: string): ClientServiceNode;
60
+ /**
61
+ * Creates a new client.
62
+ * @param {CreateClientRequest} request - The request object for createclient.
63
+ * @returns {Promise<Client>} A promise that resolves with the client.
64
+ */
65
+ createClient(request: CreateClientRequest): Promise<Client>;
66
+ /**
67
+ * Retrieves a client.
68
+ * @param {GetClientRequest} request - The request object for getclient.
69
+ * @returns {Promise<Client>} A promise that resolves with the client.
70
+ */
71
+ getClient(request: GetClientRequest): Promise<Client>;
72
+ /**
73
+ * Retrieves a list of clients.
74
+ * @param {ListClientsRequest} request - The request object for listclients.
75
+ * @returns {Promise<ListClientsResponse>} A promise that resolves with the list of clients.
76
+ */
77
+ listClients(request: ListClientsRequest): Promise<ListClientsResponse>;
78
+ }
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ // @generated by protoc-gen-meshts v1
3
+ // @generated from file meshtrade/compliance/client/v1/service.proto (package meshtrade.compliance.client.v1, syntax proto3)
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ClientServiceNode = void 0;
7
+ const connect_1 = require("@connectrpc/connect");
8
+ const connect_node_1 = require("@connectrpc/connect-node");
9
+ const service_pb_1 = require("./service_pb");
10
+ const config_1 = require("../../../common/config");
11
+ const validation_1 = require("../../../common/validation");
12
+ const connectInterceptors_1 = require("../../../common/connectInterceptors");
13
+ /**
14
+ * Node.js client for interacting with the meshtrade.compliance.client.v1 client v1 API resource service.
15
+ * Uses Connect-ES with gRPC transport for Node.js gRPC communication.
16
+ *
17
+ * Supports three authentication modes:
18
+ *
19
+ * 1. **No Authentication** (public APIs):
20
+ * ```typescript
21
+ * const client = new ClientServiceNode({ apiServerURL: "http://localhost:10000" });
22
+ * ```
23
+ *
24
+ * 2. **API Key Authentication** (backend services):
25
+ * ```typescript
26
+ * const client = new ClientServiceNode({
27
+ * apiServerURL: "https://api.example.com",
28
+ * apiKey: "your-api-key",
29
+ * group: "groups/01ARZ3NDEKTSV4YWVF8F5BH32"
30
+ * });
31
+ * ```
32
+ *
33
+ * 3. **JWT Token Authentication** (Next.js backend with user session):
34
+ * ```typescript
35
+ * const client = new ClientServiceNode({
36
+ * apiServerURL: "https://api.example.com",
37
+ * jwtToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
38
+ * });
39
+ * ```
40
+ */
41
+ class ClientServiceNode {
42
+ /**
43
+ * Constructs an instance of ClientServiceNode.
44
+ * @param {ConfigOpts} [config] - Optional configuration for the client.
45
+ * @param {Interceptor[]} [interceptors] - For internal use by `withGroup`.
46
+ */
47
+ constructor(config, interceptors) {
48
+ this._config = (0, config_1.getConfigFromOpts)(config);
49
+ // If interceptors are provided (from withGroup), use them
50
+ // Otherwise, create auth interceptors based on config
51
+ if (interceptors) {
52
+ this._interceptors = interceptors;
53
+ }
54
+ else {
55
+ this._interceptors = [];
56
+ // Add authentication interceptor based on configuration
57
+ if (this._config.apiKey && this._config.group) {
58
+ // API Key authentication mode
59
+ this._interceptors.push((0, connectInterceptors_1.createApiKeyInterceptor)(this._config.apiKey, this._config.group));
60
+ }
61
+ else if (this._config.jwtToken) {
62
+ // JWT authentication mode
63
+ this._interceptors.push((0, connectInterceptors_1.createJwtInterceptor)(this._config.jwtToken));
64
+ }
65
+ // If neither is configured, no authentication (public API mode)
66
+ }
67
+ // Create the gRPC transport for Node.js with interceptors
68
+ // Note: gRPC transport uses HTTP/2 by default
69
+ const transport = (0, connect_node_1.createGrpcTransport)({
70
+ baseUrl: this._config.apiServerURL,
71
+ interceptors: this._interceptors,
72
+ });
73
+ // Construct the Connect-ES client
74
+ this._client = (0, connect_1.createClient)(service_pb_1.ClientService, transport);
75
+ }
76
+ /**
77
+ * Returns a new client instance configured to send the specified group
78
+ * resource name in the request headers for subsequent API calls.
79
+ *
80
+ * **Important**: This method only works with API key authentication.
81
+ * - For **API key auth**: Creates a new client with updated group context
82
+ * - For **JWT auth**: Throws error (group comes from JWT token claims)
83
+ * - For **no auth**: Throws error (group requires authentication)
84
+ *
85
+ * @param {string} group - The operating group context to inject into the request
86
+ * in the format `groups/{ulid}` where {ulid} is a 26-character ULID.
87
+ * Example: 'groups/01ARZ3NDEKTSV4YWVF8F5BH32'
88
+ * @returns {ClientServiceNode} A new, configured instance of the client.
89
+ * @throws {Error} If used with JWT authentication or no authentication
90
+ * @throws {Error} If the group format is invalid
91
+ */
92
+ withGroup(group) {
93
+ // Check authentication mode
94
+ if (this._config.jwtToken) {
95
+ throw new Error("Cannot use withGroup() with JWT authentication. " +
96
+ "The group context is determined by the JWT token claims.");
97
+ }
98
+ if (!this._config.apiKey) {
99
+ throw new Error("Cannot use withGroup() without authentication. " +
100
+ "Please configure API key authentication to use group context.");
101
+ }
102
+ // For API key authentication, create new client with updated group
103
+ // Replace the existing API key interceptor with one that has the new group
104
+ const newInterceptors = [
105
+ (0, connectInterceptors_1.createApiKeyInterceptor)(this._config.apiKey, group)
106
+ ];
107
+ // Return a new client instance with updated group context
108
+ return new ClientServiceNode(this._config, newInterceptors);
109
+ }
110
+ /**
111
+ * Creates a new client.
112
+ * @param {CreateClientRequest} request - The request object for createclient.
113
+ * @returns {Promise<Client>} A promise that resolves with the client.
114
+ */
115
+ createClient(request) {
116
+ // Validate request
117
+ (0, validation_1.validateRequest)(request);
118
+ return this._client.createClient(request);
119
+ }
120
+ /**
121
+ * Retrieves a client.
122
+ * @param {GetClientRequest} request - The request object for getclient.
123
+ * @returns {Promise<Client>} A promise that resolves with the client.
124
+ */
125
+ getClient(request) {
126
+ // Validate request
127
+ (0, validation_1.validateRequest)(request);
128
+ return this._client.getClient(request);
129
+ }
130
+ /**
131
+ * Retrieves a list of clients.
132
+ * @param {ListClientsRequest} request - The request object for listclients.
133
+ * @returns {Promise<ListClientsResponse>} A promise that resolves with the list of clients.
134
+ */
135
+ listClients(request) {
136
+ // Validate request
137
+ (0, validation_1.validateRequest)(request);
138
+ return this._client.listClients(request);
139
+ }
140
+ }
141
+ exports.ClientServiceNode = ClientServiceNode;