@ninenity/neutrun 1.0.0 → 1.9.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 (104) hide show
  1. package/README.md +3 -2
  2. package/dist/Emojis/Pool.d.ts.map +1 -1
  3. package/dist/Emojis/Pool.js +3 -0
  4. package/dist/Emojis/Pool.js.map +1 -1
  5. package/dist/Logger/index.js +1 -1
  6. package/dist/Shared/ChannelLoader.d.ts.map +1 -1
  7. package/dist/Shared/ChannelLoader.js +22 -8
  8. package/dist/Shared/ChannelLoader.js.map +1 -1
  9. package/dist/Shared/Client.d.ts +4 -0
  10. package/dist/Shared/Client.d.ts.map +1 -1
  11. package/dist/Shared/Client.js +32 -43
  12. package/dist/Shared/Client.js.map +1 -1
  13. package/dist/Shared/ComponentRuntime.d.ts.map +1 -1
  14. package/dist/Shared/ComponentRuntime.js +14 -3
  15. package/dist/Shared/ComponentRuntime.js.map +1 -1
  16. package/dist/Shared/ConfigLoader.d.ts.map +1 -1
  17. package/dist/Shared/ConfigLoader.js +33 -8
  18. package/dist/Shared/ConfigLoader.js.map +1 -1
  19. package/dist/Shared/CooldownManager.d.ts.map +1 -1
  20. package/dist/Shared/CooldownManager.js +6 -0
  21. package/dist/Shared/CooldownManager.js.map +1 -1
  22. package/dist/Shared/Definer.d.ts.map +1 -1
  23. package/dist/Shared/Definer.js +0 -9
  24. package/dist/Shared/Definer.js.map +1 -1
  25. package/dist/Shared/Environment.d.ts +10 -0
  26. package/dist/Shared/Environment.d.ts.map +1 -0
  27. package/dist/Shared/Environment.js +18 -0
  28. package/dist/Shared/Environment.js.map +1 -0
  29. package/dist/Shared/EventBus.d.ts.map +1 -1
  30. package/dist/Shared/EventBus.js +4 -1
  31. package/dist/Shared/EventBus.js.map +1 -1
  32. package/dist/Shared/ExpressApi.d.ts +114 -0
  33. package/dist/Shared/ExpressApi.d.ts.map +1 -0
  34. package/dist/Shared/ExpressApi.js +1009 -0
  35. package/dist/Shared/ExpressApi.js.map +1 -0
  36. package/dist/Shared/InteractionManager.d.ts.map +1 -1
  37. package/dist/Shared/InteractionManager.js +28 -4
  38. package/dist/Shared/InteractionManager.js.map +1 -1
  39. package/dist/Shared/LogTransport.d.ts +3 -1
  40. package/dist/Shared/LogTransport.d.ts.map +1 -1
  41. package/dist/Shared/LogTransport.js +19 -5
  42. package/dist/Shared/LogTransport.js.map +1 -1
  43. package/dist/Shared/Neutrun.d.ts +9 -9
  44. package/dist/Shared/Neutrun.d.ts.map +1 -1
  45. package/dist/Shared/Neutrun.js +87 -37
  46. package/dist/Shared/Neutrun.js.map +1 -1
  47. package/dist/Shared/NinenityApi.d.ts +103 -0
  48. package/dist/Shared/NinenityApi.d.ts.map +1 -0
  49. package/dist/Shared/NinenityApi.js +609 -0
  50. package/dist/Shared/NinenityApi.js.map +1 -0
  51. package/dist/Shared/Observability.d.ts +59 -0
  52. package/dist/Shared/Observability.d.ts.map +1 -0
  53. package/dist/Shared/Observability.js +184 -0
  54. package/dist/Shared/Observability.js.map +1 -0
  55. package/dist/Shared/Plugin.d.ts +1 -1
  56. package/dist/Shared/Plugin.d.ts.map +1 -1
  57. package/dist/Shared/Pool.d.ts.map +1 -1
  58. package/dist/Shared/Pool.js +3 -0
  59. package/dist/Shared/Pool.js.map +1 -1
  60. package/dist/Shared/ProcessManager.d.ts +2 -1
  61. package/dist/Shared/ProcessManager.d.ts.map +1 -1
  62. package/dist/Shared/ProcessManager.js +56 -26
  63. package/dist/Shared/ProcessManager.js.map +1 -1
  64. package/dist/Shared/QueueManager.d.ts.map +1 -1
  65. package/dist/Shared/QueueManager.js +35 -13
  66. package/dist/Shared/QueueManager.js.map +1 -1
  67. package/dist/Shared/RoleLoader.d.ts.map +1 -1
  68. package/dist/Shared/RoleLoader.js +22 -8
  69. package/dist/Shared/RoleLoader.js.map +1 -1
  70. package/dist/Shared/RuntimeAliases.d.ts +10 -0
  71. package/dist/Shared/RuntimeAliases.d.ts.map +1 -0
  72. package/dist/Shared/RuntimeAliases.js +29 -0
  73. package/dist/Shared/RuntimeAliases.js.map +1 -0
  74. package/dist/Shared/Supervisor.d.ts.map +1 -1
  75. package/dist/Shared/Supervisor.js +59 -6
  76. package/dist/Shared/Supervisor.js.map +1 -1
  77. package/dist/Shared/TelemetryService.d.ts +21 -0
  78. package/dist/Shared/TelemetryService.d.ts.map +1 -1
  79. package/dist/Shared/TelemetryService.js +95 -2
  80. package/dist/Shared/TelemetryService.js.map +1 -1
  81. package/dist/Shared/WebSocket.d.ts +1 -1
  82. package/dist/Shared/WebSocket.d.ts.map +1 -1
  83. package/dist/Shared/WebSocket.js +96 -39
  84. package/dist/Shared/WebSocket.js.map +1 -1
  85. package/dist/Types/Client.Type.d.ts +3 -3
  86. package/dist/Types/Client.Type.d.ts.map +1 -1
  87. package/dist/Types/Client.Type.js.map +1 -1
  88. package/dist/api.d.ts +3 -0
  89. package/dist/api.d.ts.map +1 -0
  90. package/dist/api.js +11 -0
  91. package/dist/api.js.map +1 -0
  92. package/dist/discordjs.d.ts +8 -0
  93. package/dist/discordjs.d.ts.map +1 -0
  94. package/dist/discordjs.js +24 -0
  95. package/dist/discordjs.js.map +1 -0
  96. package/dist/express.d.ts +13 -0
  97. package/dist/express.d.ts.map +1 -0
  98. package/dist/express.js +19 -0
  99. package/dist/express.js.map +1 -0
  100. package/dist/index.d.ts +14 -3
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +29 -2
  103. package/dist/index.js.map +1 -1
  104. package/package.json +28 -4
@@ -10,10 +10,15 @@ const ConsoleLog_1 = require("./ConsoleLog");
10
10
  const Color_1 = __importDefault(require("../Logger/Color"));
11
11
  const Utils_1 = __importDefault(require("./Utils"));
12
12
  const Client_1 = require("./Client");
13
+ const ExpressApi_1 = require("./ExpressApi");
13
14
  const I18n_1 = __importDefault(require("../I18n"));
14
15
  const Supervisor_1 = require("./Supervisor");
16
+ const ProcessManager_1 = __importDefault(require("./ProcessManager"));
15
17
  let neutrunPath = null;
16
18
  let initCalled = false;
19
+ const MAX_STORAGE_FILE_BYTES = 10 * 1024 * 1024;
20
+ const MAX_CACHE_APPEND_ITEMS = 10_000;
21
+ const STORAGE_NAME_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$/;
17
22
  // O ComponentBuilder só é carregado no primeiro acesso a Neutrun.component.
18
23
  let componentModule = null;
19
24
  const getComponentModule = () => {
@@ -40,10 +45,26 @@ const init = (options) => {
40
45
  Supervisor_1.Supervisor.throwParentHandoff();
41
46
  }
42
47
  Supervisor_1.Supervisor.startChildDuties(options.settings?.supervisor);
48
+ // O supervisor pai não deve registrar os handlers de shutdown do bot;
49
+ // somente o processo que realmente executa Discord/API gerencia os recursos.
50
+ ProcessManager_1.default.init();
43
51
  const botInstance = options.bot;
44
52
  const baseDir = options.settings?.baseDir ?? process.cwd();
45
53
  const plugins = options.plugins ?? {};
54
+ const apiSettings = options.settings?.api;
55
+ if (apiSettings !== undefined) {
56
+ ExpressApi_1.Api.configureNeutrun(apiSettings);
57
+ }
46
58
  Utils_1.default.init(botInstance);
59
+ for (const [pluginName, plugin] of Object.entries(plugins)) {
60
+ if (!plugin)
61
+ continue;
62
+ if (typeof plugin !== 'object') {
63
+ throw new TypeError(`Plugin [${pluginName}] precisa implementar o contrato de plugin do Neutrun.`);
64
+ }
65
+ if (!botInstance.plugins.includes(plugin))
66
+ botInstance.plugins.push(plugin);
67
+ }
47
68
  const botRoot = path_1.default.dirname(baseDir);
48
69
  neutrunPath = path_1.default.join(botRoot, '.ninenity');
49
70
  const generatedPath = path_1.default.join(neutrunPath, 'Generated');
@@ -63,40 +84,21 @@ const init = (options) => {
63
84
  fs_1.default.writeFileSync(path_1.default.join(neutrunPath, 'telemetry.json'), '[]');
64
85
  }
65
86
  (0, ConsoleLog_1.logSuccess)(`Diretório ${(0, Color_1.default)('.ninenity/', 'cyan', 'bold')} preparado em: ${(0, Color_1.default)(neutrunPath, 'gray')}`);
66
- // Inicializar todos os plugins registrados no bot único
67
- for (const [pluginName, pluginInstance] of Object.entries(plugins)) {
68
- if (!pluginInstance)
69
- continue;
70
- try {
71
- if (typeof pluginInstance === 'function') {
72
- pluginInstance(botInstance);
73
- }
74
- else if (typeof pluginInstance === 'object') {
75
- if (typeof pluginInstance.onPreLogin === 'function') {
76
- pluginInstance.onPreLogin(botInstance);
77
- }
78
- else if (typeof pluginInstance.init === 'function') {
79
- pluginInstance.init(botInstance);
80
- }
81
- else if (typeof pluginInstance.load === 'function') {
82
- pluginInstance.load(botInstance);
83
- }
84
- else if (typeof pluginInstance.default === 'function') {
85
- pluginInstance.default(botInstance);
86
- }
87
- }
88
- }
89
- catch (err) {
90
- (0, ConsoleLog_1.logError)(`Erro ao inicializar plugin [${pluginName}]: ${err?.message || err}`);
91
- }
92
- }
93
87
  autoLoad(baseDir);
88
+ if (apiSettings !== undefined && apiSettings !== false && apiSettings.enabled !== false) {
89
+ botInstance.plugins.push({
90
+ name: 'NeutrunApi',
91
+ onPreLogin: () => ExpressApi_1.Api.start()
92
+ });
93
+ }
94
94
  };
95
95
  const autoLoad = (baseDir) => {
96
96
  if (!fs_1.default.existsSync(baseDir))
97
97
  return;
98
+ const failures = [];
98
99
  const loadFilesRecursively = (dir) => {
99
- const entries = fs_1.default.readdirSync(dir, { withFileTypes: true });
100
+ const entries = fs_1.default.readdirSync(dir, { withFileTypes: true })
101
+ .sort((left, right) => left.name.localeCompare(right.name, 'en'));
100
102
  for (const entry of entries) {
101
103
  const fullPath = path_1.default.join(dir, entry.name);
102
104
  if (entry.isDirectory()) {
@@ -122,6 +124,8 @@ const autoLoad = (baseDir) => {
122
124
  }
123
125
  }
124
126
  catch (error) {
127
+ const failure = new Error(`Falha ao carregar ${fullPath}`, { cause: error });
128
+ failures.push(failure);
125
129
  (0, ConsoleLog_1.logError)(`Erro ao carregar arquivo ${(0, Color_1.default)(entry.name, 'cyan', 'bold')}: ${error}`);
126
130
  }
127
131
  }
@@ -134,6 +138,7 @@ const autoLoad = (baseDir) => {
134
138
  path_1.default.join(baseDir, 'Shared', 'Settings'),
135
139
  path_1.default.join(baseDir, 'Shared', 'Translate'),
136
140
  path_1.default.join(baseDir, 'Shared', 'Translations'),
141
+ path_1.default.join(baseDir, 'Api'),
137
142
  path_1.default.join(baseDir, 'Discord', 'Commands'),
138
143
  path_1.default.join(baseDir, 'Discord', 'Events'),
139
144
  path_1.default.join(baseDir, 'Discord', 'Interactions'),
@@ -147,6 +152,9 @@ const autoLoad = (baseDir) => {
147
152
  loadFilesRecursively(fullTargetDir);
148
153
  }
149
154
  }
155
+ if (failures.length > 0) {
156
+ throw new AggregateError(failures, `Neutrun interrompeu a inicialização porque ${failures.length} arquivo(s) falharam no auto-loader.`);
157
+ }
150
158
  };
151
159
  const getPath = () => {
152
160
  if (!neutrunPath) {
@@ -167,10 +175,10 @@ const getGeneratedPath = (filename) => {
167
175
  return filename ? path_1.default.join(genDir, filename) : genDir;
168
176
  };
169
177
  const filePath = (name) => {
170
- return path_1.default.join(getPath(), `${name}.json`);
178
+ return path_1.default.join(getPath(), `${normalizeStorageName(name)}.json`);
171
179
  };
172
180
  const cachePath = (name) => {
173
- return path_1.default.join(getPath(), 'cache', `${name}.json`);
181
+ return path_1.default.join(getPath(), 'cache', `${normalizeStorageName(name)}.json`);
174
182
  };
175
183
  // ────────────────────────────────────────────────────────────────────────────────
176
184
  const read = (name) => {
@@ -178,16 +186,22 @@ const read = (name) => {
178
186
  if (!fs_1.default.existsSync(file))
179
187
  return null;
180
188
  try {
189
+ const stats = fs_1.default.statSync(file);
190
+ if (!stats.isFile() || stats.size > MAX_STORAGE_FILE_BYTES) {
191
+ (0, ConsoleLog_1.logWarn)(`Arquivo de storage ignorado por tamanho/tipo inválido: ${path_1.default.basename(file)}`, 'Storage');
192
+ return null;
193
+ }
181
194
  const content = fs_1.default.readFileSync(file, 'utf-8');
182
195
  return JSON.parse(content);
183
196
  }
184
- catch {
197
+ catch (error) {
198
+ (0, ConsoleLog_1.logWarn)(`Falha ao ler ${path_1.default.basename(file)}: ${error}`, 'Storage');
185
199
  return null;
186
200
  }
187
201
  };
188
202
  const write = (name, data) => {
189
203
  const file = filePath(name);
190
- fs_1.default.writeFileSync(file, JSON.stringify(data, null, 2));
204
+ writeJsonAtomic(file, data);
191
205
  };
192
206
  // ────────────────────────────────────────────────────────────────────────────────
193
207
  const cacheRead = (name) => {
@@ -195,10 +209,16 @@ const cacheRead = (name) => {
195
209
  if (!fs_1.default.existsSync(file))
196
210
  return null;
197
211
  try {
212
+ const stats = fs_1.default.statSync(file);
213
+ if (!stats.isFile() || stats.size > MAX_STORAGE_FILE_BYTES) {
214
+ (0, ConsoleLog_1.logWarn)(`Cache ignorado por tamanho/tipo inválido: ${path_1.default.basename(file)}`, 'Storage');
215
+ return null;
216
+ }
198
217
  const content = fs_1.default.readFileSync(file, 'utf-8');
199
218
  return JSON.parse(content);
200
219
  }
201
- catch {
220
+ catch (error) {
221
+ (0, ConsoleLog_1.logWarn)(`Falha ao ler cache ${path_1.default.basename(file)}: ${error}`, 'Storage');
202
222
  return null;
203
223
  }
204
224
  };
@@ -207,18 +227,44 @@ const cacheWrite = (name, data) => {
207
227
  const dir = path_1.default.dirname(file);
208
228
  if (!fs_1.default.existsSync(dir))
209
229
  fs_1.default.mkdirSync(dir, { recursive: true });
210
- fs_1.default.writeFileSync(file, JSON.stringify(data, null, 2));
230
+ writeJsonAtomic(file, data);
211
231
  };
212
232
  const cacheAppend = (name, item) => {
213
233
  const existing = cacheRead(name) ?? [];
214
234
  existing.push(item);
215
- cacheWrite(name, existing);
235
+ cacheWrite(name, existing.slice(-MAX_CACHE_APPEND_ITEMS));
216
236
  };
217
237
  const cacheClear = (name) => {
218
238
  const file = cachePath(name);
219
239
  if (fs_1.default.existsSync(file))
220
240
  fs_1.default.unlinkSync(file);
221
241
  };
242
+ const normalizeStorageName = (name) => {
243
+ const normalized = String(name || '').trim();
244
+ if (!STORAGE_NAME_PATTERN.test(normalized) ||
245
+ normalized.includes('..')) {
246
+ throw new TypeError('Nome de storage inválido. Use apenas letras, números, ponto, hífen e underscore.');
247
+ }
248
+ return normalized;
249
+ };
250
+ const writeJsonAtomic = (file, data) => {
251
+ const serialized = JSON.stringify(data, null, 2);
252
+ if (serialized === undefined) {
253
+ throw new TypeError('Storage precisa receber um valor serializável em JSON.');
254
+ }
255
+ if (Buffer.byteLength(serialized, 'utf8') > MAX_STORAGE_FILE_BYTES) {
256
+ throw new RangeError(`Storage excede o limite de ${MAX_STORAGE_FILE_BYTES} bytes.`);
257
+ }
258
+ const temporaryPath = `${file}.${process.pid}.${Date.now()}.tmp`;
259
+ try {
260
+ fs_1.default.writeFileSync(temporaryPath, serialized, 'utf8');
261
+ fs_1.default.renameSync(temporaryPath, file);
262
+ }
263
+ finally {
264
+ if (fs_1.default.existsSync(temporaryPath))
265
+ fs_1.default.unlinkSync(temporaryPath);
266
+ }
267
+ };
222
268
  // ────────────────────────────────────────────────────────────────────────────────
223
269
  const isInitialized = () => {
224
270
  return neutrunPath !== null;
@@ -239,17 +285,21 @@ const Neutrun = {
239
285
  * O getter é sempre atual — `const { bot } = Neutrun` captura o valor do
240
286
  * momento da desestruturação, então prefira o acesso direto em módulos
241
287
  * carregados antes do init. A instância passa a existir no momento do
242
- * `new Bot({...})`; acessar antes disso é erro de programação e lança
288
+ * `new BotClient({...})`; acessar antes disso é erro de programação e lança
243
289
  * com uma mensagem orientando o fluxo correto.
244
290
  */
245
291
  get bot() {
246
292
  const instance = Client_1.Bot.Instance;
247
293
  if (!instance) {
248
294
  throw new Error('Neutrun.bot foi acessado antes da criação do bot. Crie a instância ' +
249
- 'com new Bot({...}) na settings file e chame Neutrun.init({ bot }) no entry.');
295
+ 'com new BotClient({...}) na settings file e chame Neutrun.init({ bot }) no entry.');
250
296
  }
251
297
  return instance;
252
298
  },
299
+ /** Aplicação Express embutida no processo do bot. */
300
+ get api() {
301
+ return ExpressApi_1.Api;
302
+ },
253
303
  init,
254
304
  isInitialized,
255
305
  getPath,
@@ -1 +1 @@
1
- {"version":3,"file":"Neutrun.js","sourceRoot":"","sources":["../../src/Shared/Neutrun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Neutrun.js","sourceRoot":"","sources":["../../src/Shared/Neutrun.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { type BotEnvironment } from './Environment';
2
+ type NinenityHeaders = ConstructorParameters<typeof Headers>[0];
3
+ export interface NinenityRetryOptions {
4
+ enabled?: boolean;
5
+ maxAttempts?: number;
6
+ baseDelayMs?: number;
7
+ maxDelayMs?: number;
8
+ statuses?: number[];
9
+ methods?: string[];
10
+ respectRetryAfter?: boolean;
11
+ }
12
+ export interface NinenityCircuitBreakerOptions {
13
+ enabled?: boolean;
14
+ failureThreshold?: number;
15
+ cooldownMs?: number;
16
+ }
17
+ export interface NinenityClientOptions {
18
+ baseUrl?: string;
19
+ apiKey?: string;
20
+ apiSecret?: string;
21
+ botId?: string;
22
+ installationId?: string;
23
+ environment?: BotEnvironment;
24
+ timeoutMs?: number;
25
+ maxResponseBytes?: number;
26
+ retry?: boolean | NinenityRetryOptions;
27
+ circuitBreaker?: boolean | NinenityCircuitBreakerOptions;
28
+ /** Compatibilidade para testes/adapters existentes. O transporte padrão é Axios. */
29
+ fetch?: typeof globalThis.fetch;
30
+ }
31
+ export interface NinenityRequestOptions extends Omit<RequestInit, 'body' | 'headers' | 'method'> {
32
+ body?: unknown;
33
+ headers?: NinenityHeaders;
34
+ query?: Record<string, string | number | boolean | null | undefined>;
35
+ timeoutMs?: number;
36
+ retry?: boolean | NinenityRetryOptions;
37
+ idempotencyKey?: string;
38
+ correlationId?: string;
39
+ }
40
+ export interface NinenityResponse<T> {
41
+ data: T;
42
+ status: number;
43
+ ok: boolean;
44
+ headers: Headers;
45
+ }
46
+ export declare class NinenityError<T = unknown> extends Error {
47
+ readonly status: number;
48
+ readonly data: T;
49
+ readonly url: string;
50
+ readonly response: NinenityResponse<T>;
51
+ constructor(message: string, response: NinenityResponse<T>, url: string);
52
+ }
53
+ export declare class NinenityNetworkError extends Error {
54
+ readonly url: string;
55
+ readonly code?: string;
56
+ constructor(message: string, url: string, options?: {
57
+ code?: string;
58
+ cause?: unknown;
59
+ });
60
+ }
61
+ export declare class NinenityTimeoutError extends NinenityNetworkError {
62
+ readonly timeoutMs: number;
63
+ constructor(url: string, timeoutMs: number, cause?: unknown);
64
+ }
65
+ export declare class NinenityCircuitOpenError extends Error {
66
+ readonly retryAfterMs: number;
67
+ constructor(retryAfterMs: number);
68
+ }
69
+ export declare class NinenityClient {
70
+ readonly baseUrl: string;
71
+ private readonly apiKey;
72
+ private readonly apiSecret;
73
+ private readonly botId?;
74
+ private readonly installationId?;
75
+ private readonly environment;
76
+ private readonly timeoutMs;
77
+ private readonly maxResponseBytes;
78
+ private readonly fetchImpl?;
79
+ private readonly axiosImpl;
80
+ private readonly retryOptions;
81
+ private readonly circuitOptions;
82
+ private circuitState;
83
+ private circuitFailures;
84
+ private circuitOpenedAt;
85
+ private halfOpenRequestActive;
86
+ constructor(options?: NinenityClientOptions);
87
+ get isConfigured(): boolean;
88
+ get<T>(path: string, options?: NinenityRequestOptions): Promise<NinenityResponse<T>>;
89
+ post<T>(path: string, body?: unknown, options?: Omit<NinenityRequestOptions, 'body'>): Promise<NinenityResponse<T>>;
90
+ put<T>(path: string, body?: unknown, options?: Omit<NinenityRequestOptions, 'body'>): Promise<NinenityResponse<T>>;
91
+ patch<T>(path: string, body?: unknown, options?: Omit<NinenityRequestOptions, 'body'>): Promise<NinenityResponse<T>>;
92
+ delete<T>(path: string, options?: NinenityRequestOptions): Promise<NinenityResponse<T>>;
93
+ request<T = unknown>(method: string, path: string, options?: NinenityRequestOptions): Promise<NinenityResponse<T>>;
94
+ private createHeaders;
95
+ private executeWithAxios;
96
+ private executeWithFetch;
97
+ private acquireCircuitPermission;
98
+ private recordCircuitSuccess;
99
+ private recordCircuitFailure;
100
+ }
101
+ export declare const Ninenity: NinenityClient;
102
+ export {};
103
+ //# sourceMappingURL=NinenityApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NinenityApi.d.ts","sourceRoot":"","sources":["../../src/Shared/NinenityApi.ts"],"names":[],"mappings":"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"}