@nebius/js-sdk 0.2.9 → 0.2.10

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 (165) hide show
  1. package/dist/cjs/api/nebius/iam/v1/index.d.ts +4 -0
  2. package/dist/cjs/api/nebius/iam/v1/index.d.ts.map +1 -1
  3. package/dist/cjs/api/nebius/iam/v1/index.js.map +1 -1
  4. package/dist/cjs/index.d.ts +2 -0
  5. package/dist/cjs/index.d.ts.map +1 -1
  6. package/dist/cjs/index.js +2 -0
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/runtime/cli_config.d.ts +12 -1
  9. package/dist/cjs/runtime/cli_config.d.ts.map +1 -1
  10. package/dist/cjs/runtime/cli_config.js +243 -135
  11. package/dist/cjs/runtime/cli_config.js.map +1 -1
  12. package/dist/cjs/runtime/cli_config_interfaces.d.ts +11 -2
  13. package/dist/cjs/runtime/cli_config_interfaces.d.ts.map +1 -1
  14. package/dist/cjs/runtime/error.d.ts.map +1 -1
  15. package/dist/cjs/runtime/error.js.map +1 -1
  16. package/dist/cjs/runtime/keepalive.d.ts +29 -0
  17. package/dist/cjs/runtime/keepalive.d.ts.map +1 -0
  18. package/dist/cjs/runtime/keepalive.js +112 -0
  19. package/dist/cjs/runtime/keepalive.js.map +1 -0
  20. package/dist/cjs/runtime/metrics.d.ts +85 -0
  21. package/dist/cjs/runtime/metrics.d.ts.map +1 -0
  22. package/dist/cjs/runtime/metrics.js +241 -0
  23. package/dist/cjs/runtime/metrics.js.map +1 -0
  24. package/dist/cjs/runtime/protos/wkt.d.ts.map +1 -1
  25. package/dist/cjs/runtime/protos/wkt.js.map +1 -1
  26. package/dist/cjs/runtime/token/exchangeable.d.ts +5 -2
  27. package/dist/cjs/runtime/token/exchangeable.d.ts.map +1 -1
  28. package/dist/cjs/runtime/token/exchangeable.js +52 -34
  29. package/dist/cjs/runtime/token/exchangeable.js.map +1 -1
  30. package/dist/cjs/runtime/token/federated_credentials.d.ts +7 -3
  31. package/dist/cjs/runtime/token/federated_credentials.d.ts.map +1 -1
  32. package/dist/cjs/runtime/token/federated_credentials.js +14 -3
  33. package/dist/cjs/runtime/token/federated_credentials.js.map +1 -1
  34. package/dist/cjs/runtime/token/federation_account.d.ts +4 -0
  35. package/dist/cjs/runtime/token/federation_account.d.ts.map +1 -1
  36. package/dist/cjs/runtime/token/federation_account.js +10 -1
  37. package/dist/cjs/runtime/token/federation_account.js.map +1 -1
  38. package/dist/cjs/runtime/token/federation_bearer/index.d.ts +4 -1
  39. package/dist/cjs/runtime/token/federation_bearer/index.d.ts.map +1 -1
  40. package/dist/cjs/runtime/token/federation_bearer/index.js +42 -25
  41. package/dist/cjs/runtime/token/federation_bearer/index.js.map +1 -1
  42. package/dist/cjs/runtime/token/file.d.ts +6 -2
  43. package/dist/cjs/runtime/token/file.d.ts.map +1 -1
  44. package/dist/cjs/runtime/token/file.js +33 -11
  45. package/dist/cjs/runtime/token/file.js.map +1 -1
  46. package/dist/cjs/runtime/token/file_cache/async_renewable_bearer.d.ts +8 -3
  47. package/dist/cjs/runtime/token/file_cache/async_renewable_bearer.d.ts.map +1 -1
  48. package/dist/cjs/runtime/token/file_cache/async_renewable_bearer.js +110 -56
  49. package/dist/cjs/runtime/token/file_cache/async_renewable_bearer.js.map +1 -1
  50. package/dist/cjs/runtime/token/file_cache/file_bearer.d.ts +4 -1
  51. package/dist/cjs/runtime/token/file_cache/file_bearer.d.ts.map +1 -1
  52. package/dist/cjs/runtime/token/file_cache/file_bearer.js +25 -4
  53. package/dist/cjs/runtime/token/file_cache/file_bearer.js.map +1 -1
  54. package/dist/cjs/runtime/token/file_cache/renewable_bearer.d.ts +5 -2
  55. package/dist/cjs/runtime/token/file_cache/renewable_bearer.d.ts.map +1 -1
  56. package/dist/cjs/runtime/token/file_cache/renewable_bearer.js +47 -7
  57. package/dist/cjs/runtime/token/file_cache/renewable_bearer.js.map +1 -1
  58. package/dist/cjs/runtime/token/renewable.d.ts +8 -3
  59. package/dist/cjs/runtime/token/renewable.d.ts.map +1 -1
  60. package/dist/cjs/runtime/token/renewable.js +101 -54
  61. package/dist/cjs/runtime/token/renewable.js.map +1 -1
  62. package/dist/cjs/runtime/token/service_account.d.ts +7 -3
  63. package/dist/cjs/runtime/token/service_account.d.ts.map +1 -1
  64. package/dist/cjs/runtime/token/service_account.js +18 -6
  65. package/dist/cjs/runtime/token/service_account.js.map +1 -1
  66. package/dist/cjs/runtime/token.d.ts +2 -1
  67. package/dist/cjs/runtime/token.d.ts.map +1 -1
  68. package/dist/cjs/runtime/token.js +8 -4
  69. package/dist/cjs/runtime/token.js.map +1 -1
  70. package/dist/cjs/runtime/util/golang_parsers.d.ts +7 -0
  71. package/dist/cjs/runtime/util/golang_parsers.d.ts.map +1 -0
  72. package/dist/cjs/runtime/util/golang_parsers.js +81 -0
  73. package/dist/cjs/runtime/util/golang_parsers.js.map +1 -0
  74. package/dist/cjs/sdk.d.ts +15 -4
  75. package/dist/cjs/sdk.d.ts.map +1 -1
  76. package/dist/cjs/sdk.js +78 -49
  77. package/dist/cjs/sdk.js.map +1 -1
  78. package/dist/cjs/version.d.ts +1 -1
  79. package/dist/cjs/version.d.ts.map +1 -1
  80. package/dist/cjs/version.js +1 -1
  81. package/dist/cjs/version.js.map +1 -1
  82. package/dist/esm/api/nebius/iam/v1/index.d.ts +4 -0
  83. package/dist/esm/api/nebius/iam/v1/index.d.ts.map +1 -1
  84. package/dist/esm/api/nebius/iam/v1/index.js.map +1 -1
  85. package/dist/esm/index.d.ts +2 -0
  86. package/dist/esm/index.d.ts.map +1 -1
  87. package/dist/esm/index.js +2 -0
  88. package/dist/esm/index.js.map +1 -1
  89. package/dist/esm/runtime/cli_config.d.ts +12 -1
  90. package/dist/esm/runtime/cli_config.d.ts.map +1 -1
  91. package/dist/esm/runtime/cli_config.js +243 -135
  92. package/dist/esm/runtime/cli_config.js.map +1 -1
  93. package/dist/esm/runtime/cli_config_interfaces.d.ts +11 -2
  94. package/dist/esm/runtime/cli_config_interfaces.d.ts.map +1 -1
  95. package/dist/esm/runtime/error.d.ts.map +1 -1
  96. package/dist/esm/runtime/error.js +1 -1
  97. package/dist/esm/runtime/error.js.map +1 -1
  98. package/dist/esm/runtime/keepalive.d.ts +29 -0
  99. package/dist/esm/runtime/keepalive.d.ts.map +1 -0
  100. package/dist/esm/runtime/keepalive.js +105 -0
  101. package/dist/esm/runtime/keepalive.js.map +1 -0
  102. package/dist/esm/runtime/metrics.d.ts +85 -0
  103. package/dist/esm/runtime/metrics.d.ts.map +1 -0
  104. package/dist/esm/runtime/metrics.js +228 -0
  105. package/dist/esm/runtime/metrics.js.map +1 -0
  106. package/dist/esm/runtime/protos/wkt.d.ts.map +1 -1
  107. package/dist/esm/runtime/protos/wkt.js +1 -1
  108. package/dist/esm/runtime/protos/wkt.js.map +1 -1
  109. package/dist/esm/runtime/token/exchangeable.d.ts +5 -2
  110. package/dist/esm/runtime/token/exchangeable.d.ts.map +1 -1
  111. package/dist/esm/runtime/token/exchangeable.js +52 -34
  112. package/dist/esm/runtime/token/exchangeable.js.map +1 -1
  113. package/dist/esm/runtime/token/federated_credentials.d.ts +7 -3
  114. package/dist/esm/runtime/token/federated_credentials.d.ts.map +1 -1
  115. package/dist/esm/runtime/token/federated_credentials.js +14 -3
  116. package/dist/esm/runtime/token/federated_credentials.js.map +1 -1
  117. package/dist/esm/runtime/token/federation_account.d.ts +4 -0
  118. package/dist/esm/runtime/token/federation_account.d.ts.map +1 -1
  119. package/dist/esm/runtime/token/federation_account.js +10 -1
  120. package/dist/esm/runtime/token/federation_account.js.map +1 -1
  121. package/dist/esm/runtime/token/federation_bearer/index.d.ts +4 -1
  122. package/dist/esm/runtime/token/federation_bearer/index.d.ts.map +1 -1
  123. package/dist/esm/runtime/token/federation_bearer/index.js +42 -25
  124. package/dist/esm/runtime/token/federation_bearer/index.js.map +1 -1
  125. package/dist/esm/runtime/token/file.d.ts +6 -2
  126. package/dist/esm/runtime/token/file.d.ts.map +1 -1
  127. package/dist/esm/runtime/token/file.js +33 -11
  128. package/dist/esm/runtime/token/file.js.map +1 -1
  129. package/dist/esm/runtime/token/file_cache/async_renewable_bearer.d.ts +8 -3
  130. package/dist/esm/runtime/token/file_cache/async_renewable_bearer.d.ts.map +1 -1
  131. package/dist/esm/runtime/token/file_cache/async_renewable_bearer.js +110 -56
  132. package/dist/esm/runtime/token/file_cache/async_renewable_bearer.js.map +1 -1
  133. package/dist/esm/runtime/token/file_cache/file_bearer.d.ts +4 -1
  134. package/dist/esm/runtime/token/file_cache/file_bearer.d.ts.map +1 -1
  135. package/dist/esm/runtime/token/file_cache/file_bearer.js +25 -4
  136. package/dist/esm/runtime/token/file_cache/file_bearer.js.map +1 -1
  137. package/dist/esm/runtime/token/file_cache/renewable_bearer.d.ts +5 -2
  138. package/dist/esm/runtime/token/file_cache/renewable_bearer.d.ts.map +1 -1
  139. package/dist/esm/runtime/token/file_cache/renewable_bearer.js +47 -7
  140. package/dist/esm/runtime/token/file_cache/renewable_bearer.js.map +1 -1
  141. package/dist/esm/runtime/token/renewable.d.ts +8 -3
  142. package/dist/esm/runtime/token/renewable.d.ts.map +1 -1
  143. package/dist/esm/runtime/token/renewable.js +101 -54
  144. package/dist/esm/runtime/token/renewable.js.map +1 -1
  145. package/dist/esm/runtime/token/service_account.d.ts +7 -3
  146. package/dist/esm/runtime/token/service_account.d.ts.map +1 -1
  147. package/dist/esm/runtime/token/service_account.js +19 -7
  148. package/dist/esm/runtime/token/service_account.js.map +1 -1
  149. package/dist/esm/runtime/token.d.ts +2 -1
  150. package/dist/esm/runtime/token.d.ts.map +1 -1
  151. package/dist/esm/runtime/token.js +8 -4
  152. package/dist/esm/runtime/token.js.map +1 -1
  153. package/dist/esm/runtime/util/golang_parsers.d.ts +7 -0
  154. package/dist/esm/runtime/util/golang_parsers.d.ts.map +1 -0
  155. package/dist/esm/runtime/util/golang_parsers.js +76 -0
  156. package/dist/esm/runtime/util/golang_parsers.js.map +1 -0
  157. package/dist/esm/sdk.d.ts +15 -4
  158. package/dist/esm/sdk.d.ts.map +1 -1
  159. package/dist/esm/sdk.js +80 -51
  160. package/dist/esm/sdk.js.map +1 -1
  161. package/dist/esm/version.d.ts +1 -1
  162. package/dist/esm/version.d.ts.map +1 -1
  163. package/dist/esm/version.js +1 -1
  164. package/dist/esm/version.js.map +1 -1
  165. package/package.json +5 -5
@@ -1,5 +1,6 @@
1
1
  import { inspect } from 'util';
2
- import { ServiceAccount } from '../service_account/service_account.js';
2
+ import { authMetricsRecorder, } from '../metrics.js';
3
+ import { ServiceAccount, } from '../service_account/service_account.js';
3
4
  import { StaticReader } from '../service_account/static.js';
4
5
  import { Bearer, NamedBearer } from '../token.js';
5
6
  import { custom, customJson, inspectJson } from '../util/logging.js';
@@ -8,7 +9,9 @@ import { RenewableBearer } from './renewable.js';
8
9
  export class ServiceAccountBearer extends Bearer {
9
10
  $type = 'nebius.sdk.ServiceAccountBearer';
10
11
  _exchangeable;
12
+ _renewable;
11
13
  _source;
14
+ metrics;
12
15
  constructor(serviceAccount, opts) {
13
16
  super();
14
17
  let reader = null;
@@ -50,17 +53,20 @@ export class ServiceAccountBearer extends Bearer {
50
53
  const saId = serviceAccount.serviceAccountId;
51
54
  const publicKeyId = serviceAccount.publicKeyId;
52
55
  const maxRetries = opts?.maxRetries ?? 2;
53
- this._exchangeable = new ExchangeableBearer(reader, opts?.sdk ?? null, maxRetries, opts?.logger?.child('exchangeable'));
54
- const renewable = new RenewableBearer(this._exchangeable, {
56
+ this.metrics = authMetricsRecorder(opts?.metrics, 'service-account');
57
+ this._exchangeable = new ExchangeableBearer(reader, opts?.sdk ?? null, maxRetries, opts?.logger?.child('exchangeable'), this.metrics);
58
+ this._renewable = new RenewableBearer(this._exchangeable, {
55
59
  maxRetries,
56
60
  lifetimeSafeFraction: opts?.lifetimeSafeFraction,
57
61
  initialRetryTimeoutMs: opts?.initialRetryTimeoutMs,
58
62
  maxRetryTimeoutMs: opts?.maxRetryTimeoutMs,
59
63
  retryTimeoutExponent: opts?.retryTimeoutExponent,
60
64
  refreshRequestTimeoutMs: opts?.refreshRequestTimeoutMs,
65
+ metrics: this.metrics,
66
+ provider: 'service-account',
61
67
  logger: opts?.logger?.child('renewable'),
62
68
  });
63
- this._source = new NamedBearer(renewable, `service-account/${saId}/${publicKeyId}`);
69
+ this._source = new NamedBearer(this._renewable, `service-account/${saId}/${publicKeyId}`);
64
70
  }
65
71
  [custom]() {
66
72
  return `${this.$type}(${inspect(this._source)})`;
@@ -74,6 +80,11 @@ export class ServiceAccountBearer extends Bearer {
74
80
  setSDK(sdk) {
75
81
  this._exchangeable.setSDK(sdk);
76
82
  }
83
+ setMetrics(metrics) {
84
+ this.metrics.setMetrics(metrics);
85
+ this._exchangeable.setMetrics(this.metrics);
86
+ this._renewable.setMetrics(this.metrics);
87
+ }
77
88
  get wrapped() {
78
89
  return this._source;
79
90
  }
@@ -81,11 +92,12 @@ export class ServiceAccountBearer extends Bearer {
81
92
  return this._source.receiver();
82
93
  }
83
94
  }
84
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
95
  function isServiceAccountReader(x) {
86
- return (x &&
87
- typeof x === 'object' &&
96
+ return (isObject(x) &&
88
97
  typeof x.read === 'function' &&
89
98
  typeof x.getExchangeTokenRequest === 'function');
90
99
  }
100
+ function isObject(value) {
101
+ return typeof value === 'object' && value !== null;
102
+ }
91
103
  //# sourceMappingURL=service_account.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service_account.js","sourceRoot":"","sources":["../../../../src/runtime/token/service_account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service_account.js","sourceRoot":"","sources":["../../../../src/runtime/token/service_account.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,8 @@ export declare abstract class Bearer {
36
36
  abstract receiver(): Receiver;
37
37
  get name(): string | undefined;
38
38
  get wrapped(): Bearer | undefined;
39
- close(_graceMs?: number): Promise<void>;
39
+ get metricProvider(): string;
40
+ close(graceMs?: number): Promise<void>;
40
41
  }
41
42
  export declare class NamedBearer extends Bearer {
42
43
  [custom]: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/runtime/token.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,qBAAa,KAAK;IAUhB,CAAC,MAAM,CAAC,QAAI,MAAM;IATlB,SAAgB,KAAK,EAAE,wBAAwB,CAA4B;IAC3E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAO;gBAEjB,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI;IAS5C,CAAC,UAAU,CAAC,IAAI,MAAM;IAQtB,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,KAAK,IAAI,KAAK;IAIrB,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,UAAU,IAAI,IAAI,GAAG,SAAS,CAEjC;IAED,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,OAAO;IAKpB,MAAM,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAOtD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,KAAK;IAO5E,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAMhC;AAGD,8BAAsB,QAAQ;IAC5B,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAErC,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,KAAK,CAAC;IAEjB,IAAI,MAAM,IAAI,KAAK,GAAG,SAAS,CAE9B;IAEK,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAM3F,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO;CACrF;AAGD,8BAAsB,MAAM;IAC1B,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,IAAI,QAAQ;IAE7B,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAEK,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK9C;AAGD,qBAAa,WAAY,SAAQ,MAAM;IAQrC,CAAC,MAAM,CAAC,QAAI,MAAM;IALhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHxB,SAAgB,KAAK,4BAA4B;gBAE9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;IAOhC,CAAC,UAAU,CAAC,IAAI,OAAO;IAQvB,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,QAAQ,IAAI,QAAQ;CAGrB"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/runtime/token.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,qBAAa,KAAK;IAUhB,CAAC,MAAM,CAAC,QAAI,MAAM;IATlB,SAAgB,KAAK,EAAE,wBAAwB,CAA4B;IAC3E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAO;gBAEjB,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI;IAS5C,CAAC,UAAU,CAAC,IAAI,MAAM;IAQtB,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,KAAK,IAAI,KAAK;IAIrB,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,UAAU,IAAI,IAAI,GAAG,SAAS,CAEjC;IAED,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,OAAO;IAKpB,MAAM,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAOtD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,KAAK;IAO5E,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAMhC;AAGD,8BAAsB,QAAQ;IAC5B,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAErC,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,KAAK,CAAC;IAEjB,IAAI,MAAM,IAAI,KAAK,GAAG,SAAS,CAE9B;IAEK,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAM3F,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO;CACrF;AAGD,8BAAsB,MAAM;IAC1B,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,IAAI,QAAQ;IAE7B,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,IAAI,cAAc,IAAI,MAAM,CAI3B;IAEK,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7C;AAGD,qBAAa,WAAY,SAAQ,MAAM;IAQrC,CAAC,MAAM,CAAC,QAAI,MAAM;IALhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHxB,SAAgB,KAAK,4BAA4B;gBAE9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;IAOhC,CAAC,UAAU,CAAC,IAAI,OAAO;IAQvB,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,QAAQ,IAAI,QAAQ;CAGrB"}
@@ -89,10 +89,14 @@ export class Bearer {
89
89
  get wrapped() {
90
90
  return undefined;
91
91
  }
92
- async close(_graceMs) {
93
- if (this.wrapped && typeof this.wrapped.close === 'function') {
94
- await this.wrapped.close(_graceMs);
95
- }
92
+ get metricProvider() {
93
+ const namedProvider = this.name?.split('/')[0];
94
+ if (namedProvider)
95
+ return namedProvider;
96
+ return this.wrapped?.metricProvider ?? this.$type;
97
+ }
98
+ async close(graceMs) {
99
+ await this.wrapped?.close(graceMs);
96
100
  }
97
101
  }
98
102
  // Helper to label a bearer without changing behavior
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/runtime/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/runtime/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIpE,+CAA+C;AAC/C,MAAM,OAAO,KAAK;IACA,KAAK,GAA6B,wBAAwB,CAAC;IAC1D,IAAI,CAAS;IACb,IAAI,CAAQ;IAE7B,YAAY,KAAa,EAAE,UAAiB;QAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;IAED,CAAC,MAAM,CAAC;QACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,CAAC,UAAU,CAAC;QACV,MAAM,SAAS,GAAG,cAAc,CAAC,oBAAoB,EAAE,CAAC;QACxD,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI;SAC7C,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO,cAAc,CAAC;QAC1C,MAAM,KAAK,GAAa,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,cAAc,CAAC,oBAAoB,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SACtE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAoD;QAClE,MAAM,GAAG,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,EAAE,UAAU,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAc;QACnB,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,OAAgB,QAAQ;IAElB,OAAO,CAAoB;IAOrC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAkB,EAAE,OAA0C;QACxE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;CAGF;AAED,sFAAsF;AACtF,MAAM,OAAgB,MAAM;IAI1B,IAAI,IAAI;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CACF;AAED,qDAAqD;AACrD,MAAM,OAAO,WAAY,SAAQ,MAAM;IAGlB;IACA;IAHH,KAAK,GAAG,wBAAwB,CAAC;IACjD,YACmB,QAAgB,EAChB,KAAa;QAE9B,KAAK,EAAE,CAAC;QAHS,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAQ;IAGhC,CAAC;IACD,CAAC,MAAM,CAAC;QACN,OAAO,GAAG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,aAAa,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAChF,CAAC;IACD,CAAC,UAAU,CAAC;QACV,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export declare class GolangDurationParser {
2
+ static parseMs(name: string, value: string): number;
3
+ }
4
+ export declare class GolangBoolParser {
5
+ static parse(name: string, value: string): boolean;
6
+ }
7
+ //# sourceMappingURL=golang_parsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"golang_parsers.d.ts","sourceRoot":"","sources":["../../../../src/runtime/util/golang_parsers.ts"],"names":[],"mappings":"AAaA,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CA4CpD;AAED,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAoBnD"}
@@ -0,0 +1,76 @@
1
+ const durationUnitsMs = {
2
+ h: 60 * 60 * 1000,
3
+ m: 60 * 1000,
4
+ ms: 1,
5
+ ns: 1 / 1_000_000,
6
+ s: 1000,
7
+ us: 1 / 1000,
8
+ µs: 1 / 1000,
9
+ μs: 1 / 1000,
10
+ };
11
+ export class GolangDurationParser {
12
+ static parseMs(name, value) {
13
+ const trimmed = value.trim();
14
+ if (trimmed === '') {
15
+ throw new Error(`${name} is empty`);
16
+ }
17
+ if (trimmed === '0') {
18
+ return 0;
19
+ }
20
+ let sign = 1;
21
+ let input = trimmed;
22
+ if (input.startsWith('+') || input.startsWith('-')) {
23
+ sign = input.startsWith('-') ? -1 : 1;
24
+ input = input.slice(1);
25
+ }
26
+ if (input === '') {
27
+ throw new Error(`parse ${name}: invalid duration ${JSON.stringify(value)}`);
28
+ }
29
+ let index = 0;
30
+ let totalMs = 0;
31
+ const token = /(\d+(?:\.\d*)?|\.\d+)(ns|us|µs|μs|ms|s|m|h)/y;
32
+ while (index < input.length) {
33
+ token.lastIndex = index;
34
+ const match = token.exec(input);
35
+ if (!match) {
36
+ throw new Error(`parse ${name}: invalid duration ${JSON.stringify(value)}`);
37
+ }
38
+ const amount = Number(match[1]);
39
+ if (!Number.isFinite(amount)) {
40
+ throw new Error(`parse ${name}: invalid duration ${JSON.stringify(value)}`);
41
+ }
42
+ const unit = match[2];
43
+ totalMs += amount * durationUnitsMs[unit];
44
+ index = token.lastIndex;
45
+ }
46
+ totalMs *= sign;
47
+ if (totalMs < 0) {
48
+ throw new Error(`${name} must not be negative`);
49
+ }
50
+ const rounded = Math.round(totalMs);
51
+ return totalMs > 0 && rounded === 0 ? 1 : rounded;
52
+ }
53
+ }
54
+ export class GolangBoolParser {
55
+ static parse(name, value) {
56
+ switch (value.trim()) {
57
+ case '1':
58
+ case 't':
59
+ case 'T':
60
+ case 'TRUE':
61
+ case 'true':
62
+ case 'True':
63
+ return true;
64
+ case '0':
65
+ case 'f':
66
+ case 'F':
67
+ case 'FALSE':
68
+ case 'false':
69
+ case 'False':
70
+ return false;
71
+ default:
72
+ throw new Error(`parse ${name}: invalid boolean ${JSON.stringify(value)}`);
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=golang_parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"golang_parsers.js","sourceRoot":"","sources":["../../../../src/runtime/util/golang_parsers.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG;IACtB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACjB,CAAC,EAAE,EAAE,GAAG,IAAI;IACZ,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC,GAAG,SAAS;IACjB,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,CAAC,GAAG,IAAI;IACZ,EAAE,EAAE,CAAC,GAAG,IAAI;IACZ,EAAE,EAAE,CAAC,GAAG,IAAI;CACJ,CAAC;AAIX,MAAM,OAAO,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,KAAa;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,OAAO,CAAC;QACpB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,8CAA8C,CAAC;QAC7D,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAiB,CAAC;YACtC,OAAO,IAAI,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,OAAO,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,KAAa;QACtC,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACrB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC;YACd,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,OAAO,CAAC;YACb,KAAK,OAAO,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC;YACf;gBACE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;CACF"}
package/dist/esm/sdk.d.ts CHANGED
@@ -1,12 +1,15 @@
1
- import { CallOptions, ChannelCredentials, Client, ClientOptions, Interceptor, Metadata } from '@grpc/grpc-js';
1
+ import { Client, Metadata } from '@grpc/grpc-js';
2
+ import type { CallOptions, ChannelCredentials, ClientOptions, Interceptor } from '@grpc/grpc-js';
2
3
  import { GetProfileRequest, type GetProfileResponse } from './api/nebius/iam/v1/index.js';
4
+ import { type KeepaliveOptions } from './runtime/keepalive.js';
5
+ import { type AuthMetricsLike, type MetricsLike } from './runtime/metrics.js';
6
+ import { type Resolver } from './runtime/resolver.js';
7
+ import { ServiceAccount as SA, type Reader as SAReader } from './runtime/service_account/service_account.js';
8
+ import { Handler as SDKHandler, Logger as SDKLogger } from './runtime/util/logging.js';
3
9
  import type { Provider as AuthorizationProvider } from './runtime/authorization/provider.js';
4
10
  import type { ConfigReaderLike } from './runtime/cli_config_interfaces.js';
5
11
  import type { Request, RetryOptions } from './runtime/request.js';
6
- import { type Resolver } from './runtime/resolver.js';
7
- import { ServiceAccount as SA, type Reader as SAReader } from './runtime/service_account/service_account.js';
8
12
  import type { Token as AccessToken, Bearer as TokenBearer } from './runtime/token.js';
9
- import { Handler as SDKHandler, Logger as SDKLogger } from './runtime/util/logging.js';
10
13
  export interface SDKInterface {
11
14
  getClientByAddress(address: string): Client;
12
15
  getAddressFromServiceName(serviceName: string, apiServiceName?: string): string;
@@ -48,6 +51,9 @@ export interface SDKOptions {
48
51
  federationInvitationNoBrowserOpen?: boolean;
49
52
  federationInvitationTimeoutMs?: number;
50
53
  userAgentPrefix?: string;
54
+ keepalive?: KeepaliveOptions | false;
55
+ metrics?: MetricsLike;
56
+ authMetrics?: AuthMetricsLike;
51
57
  logger?: SDKLogger | SDKHandler | string | number;
52
58
  perAddress?: Record<string, {
53
59
  credentials?: ChannelCredentials;
@@ -68,9 +74,14 @@ export declare class SDK implements SDKInterface {
68
74
  private _perAddress;
69
75
  private _tlsRootCAs?;
70
76
  private _userAgent;
77
+ private _keepaliveConfig;
78
+ private _metrics;
79
+ private _authMetrics;
71
80
  constructor(options?: SDKOptions);
72
81
  get logger(): SDKLogger;
73
82
  private _initAuthorization;
83
+ private _configureMetricsOnReader;
84
+ private _isConfigMetricsAwareConfigReader;
74
85
  private _normalizeCredentials;
75
86
  private _mkSABearer;
76
87
  private _isAuthProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
package/dist/esm/sdk.js CHANGED
@@ -1,7 +1,9 @@
1
- import { Client, Metadata, connectivityState, credentials, } from '@grpc/grpc-js';
1
+ import { Client, connectivityState, credentials, Metadata, } from '@grpc/grpc-js';
2
2
  import { GetProfileRequest, ProfileService as ProfileServiceClient, } from './api/nebius/iam/v1/index.js';
3
3
  import { TokenProvider as TokenAuthProvider } from './runtime/authorization/token.js';
4
4
  import { domain as DEFAULT_DOMAIN } from './runtime/constants.js';
5
+ import { keepaliveClientOptions, keepaliveConfigFromOptions, } from './runtime/keepalive.js';
6
+ import { instrumentBearer, METRIC_RESULT_ERROR, METRIC_RESULT_SUCCESS, metricDurationMs, metricStart, recordConfigMetric, } from './runtime/metrics.js';
5
7
  import { Chain, Conventional, TemplateExpander } from './runtime/resolver.js';
6
8
  import { ServiceAccount as SA, } from './runtime/service_account/service_account.js';
7
9
  import { getSystemRootCAs, normalizeRootCAs } from './runtime/tls/system_certs.js';
@@ -9,9 +11,12 @@ import { FederationAccountBearer } from './runtime/token/federation_account.js';
9
11
  import { FileBearer } from './runtime/token/file.js';
10
12
  import { ServiceAccountBearer } from './runtime/token/service_account.js';
11
13
  import { StaticBearer } from './runtime/token/static.js';
12
- import { resolveLogger } from './runtime/util/logging.js';
14
+ import { resolveLogger, } from './runtime/util/logging.js';
13
15
  import { VERSION } from './version.js';
14
16
  const DEFAULT_CLOSE_TIMEOUT = 20000;
17
+ function isObject(value) {
18
+ return typeof value === 'object' && value !== null;
19
+ }
15
20
  export class SDK {
16
21
  _resolver;
17
22
  _parentId;
@@ -24,9 +29,22 @@ export class SDK {
24
29
  _perAddress = new Map();
25
30
  _tlsRootCAs;
26
31
  _userAgent;
32
+ _keepaliveConfig;
33
+ _metrics;
34
+ _authMetrics;
27
35
  constructor(options) {
28
36
  this._logger = resolveLogger(options?.logger, 'nebius.sdk');
29
37
  this._logger.debug('Initializing Nebius SDK');
38
+ this._metrics = options?.metrics;
39
+ this._authMetrics = options?.metrics ?? options?.authMetrics;
40
+ if (options?.metrics && options?.authMetrics) {
41
+ this._logger.warn('Both metrics and authMetrics provided; using metrics for auth callbacks.');
42
+ }
43
+ this._keepaliveConfig = keepaliveConfigFromOptions(options?.keepalive);
44
+ this._logger.debug('Using gRPC keepalive config', { keepalive: this._keepaliveConfig });
45
+ if (options?.configReader) {
46
+ this._configureMetricsOnReader(options.configReader);
47
+ }
30
48
  // Resolve domain
31
49
  let domain = options?.domain;
32
50
  if (domain && domain.trim() !== '') {
@@ -176,6 +194,8 @@ export class SDK {
176
194
  // Finally: pull from configReader if available
177
195
  const cr = options.configReader;
178
196
  if (cr) {
197
+ const configMetricsAware = this._isConfigMetricsAwareConfigReader(cr);
198
+ const start = metricStart();
179
199
  try {
180
200
  this._logger.debug('Using config reader for authorization.');
181
201
  const cred = cr.getCredentials({
@@ -185,15 +205,34 @@ export class SDK {
185
205
  sdk: this,
186
206
  logger: this._logger.child('config_reader'),
187
207
  });
208
+ if (!configMetricsAware) {
209
+ recordConfigMetric(this._metrics, 'credentialsResolve', 'config-reader', METRIC_RESULT_SUCCESS, metricDurationMs(start));
210
+ }
188
211
  const prov2 = this._normalizeCredentials(cred);
189
212
  if (prov2)
190
213
  this._authorizationProvider = prov2;
191
214
  }
192
215
  catch (err) {
216
+ if (!configMetricsAware) {
217
+ recordConfigMetric(this._metrics, 'credentialsResolve', 'config-reader', METRIC_RESULT_ERROR, metricDurationMs(start));
218
+ }
193
219
  this._logger.warn('Error using config reader for authorization.', { err });
194
220
  }
195
221
  }
196
222
  }
223
+ _configureMetricsOnReader(configReader) {
224
+ const reader = configReader;
225
+ if (this._metrics && typeof reader.setMetrics === 'function') {
226
+ reader.setMetrics(this._metrics);
227
+ return;
228
+ }
229
+ if (this._authMetrics && typeof reader.setAuthMetrics === 'function') {
230
+ reader.setAuthMetrics(this._authMetrics);
231
+ }
232
+ }
233
+ _isConfigMetricsAwareConfigReader(configReader) {
234
+ return Boolean(this._metrics) && configReader.emitsCredentialsResolveMetrics === true;
235
+ }
197
236
  _normalizeCredentials(init) {
198
237
  if (!init) {
199
238
  this._logger.trace('No credentials provided; authorization disabled.');
@@ -207,49 +246,52 @@ export class SDK {
207
246
  // Bearer
208
247
  if (this._isBearer(init)) {
209
248
  this._logger.trace('Using token bearer provider for authorization.');
210
- return new TokenAuthProvider(init);
249
+ return new TokenAuthProvider(instrumentBearer(init, this._authMetrics));
211
250
  }
212
251
  // Token
213
252
  if (this._isAccessToken(init)) {
214
253
  this._logger.trace('Using static token for authorization.', {
215
254
  token: init,
216
255
  });
217
- return new TokenAuthProvider(new StaticBearer(init));
256
+ return new TokenAuthProvider(instrumentBearer(new StaticBearer(init), this._authMetrics));
218
257
  }
219
258
  // token string
220
259
  if (typeof init === 'string') {
221
260
  this._logger.trace('Using token string for authorization.');
222
- return new TokenAuthProvider(new StaticBearer(init));
261
+ return new TokenAuthProvider(instrumentBearer(new StaticBearer(init), this._authMetrics));
223
262
  }
224
263
  // token file
225
264
  if (this._isTokenFile(init)) {
226
265
  this._logger.trace('Using token file for authorization.', {
227
266
  tokenFile: init.tokenFile,
228
267
  });
229
- return new TokenAuthProvider(new FileBearer(init.tokenFile));
268
+ return new TokenAuthProvider(instrumentBearer(new FileBearer(init.tokenFile), this._authMetrics));
230
269
  }
231
270
  // Federation direct config
232
271
  if (this._isFederationInit(init)) {
233
- const f = init;
234
272
  this._logger.trace('Using federation credentials for authorization.', {
235
- profile: f.profileName,
236
- clientId: f.clientId,
237
- federationEndpoint: f.federationEndpoint,
238
- federationId: f.federationId,
273
+ profile: init.profileName,
274
+ clientId: init.clientId,
275
+ federationEndpoint: init.federationEndpoint,
276
+ federationId: init.federationId,
239
277
  });
240
- return new TokenAuthProvider(new FederationAccountBearer(f.profileName, f.clientId, f.federationEndpoint, f.federationId, {
241
- writer: f.writer,
242
- noBrowserOpen: !!f.noBrowserOpen,
243
- timeoutMs: f.timeoutMs,
278
+ const bearer = new FederationAccountBearer(init.profileName, init.clientId, init.federationEndpoint, init.federationId, {
279
+ writer: init.writer,
280
+ noBrowserOpen: !!init.noBrowserOpen,
281
+ timeoutMs: init.timeoutMs,
244
282
  ca: this._tlsRootCAs,
283
+ metrics: this._authMetrics,
245
284
  logger: this._logger.child('federation_account'),
246
- }));
285
+ });
286
+ return new TokenAuthProvider(instrumentBearer(bearer, this._authMetrics));
247
287
  }
248
288
  // Service account (reader or concrete or raw params)
249
289
  if (this._isSAReader(init) || this._isSA(init) || this._isSAParams(init)) {
250
290
  this._logger.trace('Using service account for authorization.');
251
291
  const bearer = this._mkSABearer(init);
252
- return bearer ? new TokenAuthProvider(bearer) : undefined;
292
+ return bearer
293
+ ? new TokenAuthProvider(instrumentBearer(bearer, this._authMetrics))
294
+ : undefined;
253
295
  }
254
296
  this._logger.warn('Unrecognized credentials format; authorization disabled.', { init });
255
297
  return undefined;
@@ -262,6 +304,7 @@ export class SDK {
262
304
  });
263
305
  return new ServiceAccountBearer(sa, {
264
306
  sdk: this,
307
+ metrics: this._authMetrics,
265
308
  logger: this._logger.child('service_account'),
266
309
  });
267
310
  }
@@ -269,6 +312,7 @@ export class SDK {
269
312
  this._logger.trace('Using service account for authorization.', { sa });
270
313
  return new ServiceAccountBearer(sa, {
271
314
  sdk: this,
315
+ metrics: this._authMetrics,
272
316
  logger: this._logger.child('service_account'),
273
317
  });
274
318
  }
@@ -277,11 +321,11 @@ export class SDK {
277
321
  serviceAccountId: sa.serviceAccountId,
278
322
  publicKeyId: sa.publicKeyId,
279
323
  });
280
- const p = sa;
281
- return new ServiceAccountBearer(p.serviceAccountId, {
282
- publicKeyId: p.publicKeyId,
283
- privateKeyPem: p.privateKeyPem,
324
+ return new ServiceAccountBearer(sa.serviceAccountId, {
325
+ publicKeyId: sa.publicKeyId,
326
+ privateKeyPem: sa.privateKeyPem,
284
327
  sdk: this,
328
+ metrics: this._authMetrics,
285
329
  logger: this._logger.child('service_account'),
286
330
  });
287
331
  }
@@ -295,50 +339,37 @@ export class SDK {
295
339
  return undefined;
296
340
  }
297
341
  }
298
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
299
342
  _isAuthProvider(x) {
300
- return x && typeof x === 'object' && typeof x.authenticator === 'function';
343
+ return isObject(x) && typeof x.authenticator === 'function';
301
344
  }
302
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
345
  _isBearer(x) {
304
- return x && typeof x === 'object' && typeof x.receiver === 'function';
346
+ return isObject(x) && typeof x.receiver === 'function';
305
347
  }
306
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
307
348
  _isAccessToken(x) {
308
- return (x &&
309
- typeof x === 'object' &&
349
+ return (isObject(x) &&
310
350
  typeof x.token === 'string' &&
311
351
  x.$type === 'nebius.iam.AccessToken');
312
352
  }
313
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
314
353
  _isTokenFile(x) {
315
- return x && typeof x === 'object' && typeof x.tokenFile === 'string';
354
+ return isObject(x) && typeof x.tokenFile === 'string';
316
355
  }
317
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
318
356
  _isFederationInit(x) {
319
- return (x &&
320
- typeof x === 'object' &&
357
+ return (isObject(x) &&
321
358
  x.type === 'federation' &&
322
359
  typeof x.clientId === 'string' &&
323
360
  typeof x.federationEndpoint === 'string' &&
324
361
  typeof x.federationId === 'string');
325
362
  }
326
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
327
363
  _isSAReader(x) {
328
- return (x &&
329
- typeof x === 'object' &&
364
+ return (isObject(x) &&
330
365
  typeof x.read === 'function' &&
331
366
  typeof x.getExchangeTokenRequest === 'function');
332
367
  }
333
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
334
368
  _isSA(x) {
335
369
  return x instanceof SA;
336
370
  }
337
- _isSAParams(
338
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
339
- x) {
340
- return (x &&
341
- typeof x === 'object' &&
371
+ _isSAParams(x) {
372
+ return (isObject(x) &&
342
373
  typeof x.serviceAccountId === 'string' &&
343
374
  typeof x.publicKeyId === 'string' &&
344
375
  typeof x.privateKeyPem === 'string');
@@ -395,15 +426,12 @@ export class SDK {
395
426
  const logger = this._logger.withFields({ address });
396
427
  logger.trace('Getting gRPC client options by address.');
397
428
  const addrCfg = this._perAddress.get(address);
398
- const combinedInterceptors = [
399
- ...(this._extraInterceptors || []),
400
- ...(addrCfg?.interceptors ?? []),
401
- ];
429
+ const combinedInterceptors = [...this._extraInterceptors, ...(addrCfg?.interceptors ?? [])];
402
430
  const hasInts = combinedInterceptors.length > 0;
403
431
  if (hasInts) {
404
432
  logger.trace('Using combined interceptors.', {
405
433
  count: combinedInterceptors.length,
406
- hasExtraInterceptors: (this._extraInterceptors || []).length > 0,
434
+ hasExtraInterceptors: this._extraInterceptors.length > 0,
407
435
  hasPerAddressInterceptors: (addrCfg?.interceptors ?? []).length > 0,
408
436
  });
409
437
  }
@@ -420,10 +448,11 @@ export class SDK {
420
448
  };
421
449
  collect(this._clientOptions);
422
450
  collect(addrCfg?.clientOptions);
423
- const primaryUA = (primaryParts.length > 0 ? primaryParts.join(' ') + ' ' : '') + this._userAgent;
451
+ const primaryUA = [...primaryParts, this._userAgent].join(' ');
424
452
  const ret = {
425
- ...(this._clientOptions || {}),
426
- ...(addrCfg?.clientOptions || {}),
453
+ ...keepaliveClientOptions(this._keepaliveConfig),
454
+ ...(this._clientOptions ?? {}),
455
+ ...(addrCfg?.clientOptions ?? {}),
427
456
  ...(hasInts ? { interceptors: combinedInterceptors } : {}),
428
457
  'grpc.primary_user_agent': primaryUA,
429
458
  };
@@ -443,7 +472,7 @@ export class SDK {
443
472
  }
444
473
  setTokenBearerAsAuthorization(bearer) {
445
474
  this._logger.trace('Setting token bearer as authorization.', { bearer });
446
- this._authorizationProvider = new TokenAuthProvider(bearer);
475
+ this._authorizationProvider = new TokenAuthProvider(instrumentBearer(bearer, this._authMetrics));
447
476
  }
448
477
  // Allow adding extra interceptors (idempotency/cleaner analogs)
449
478
  addInterceptors(...ints) {