@rebornteam/reborn-api 4.0.0 → 4.5.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.
package/dist/esm/api.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.0.0
7
+ * The version of the OpenAPI document: 4.5.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1563,6 +1563,39 @@ export const AdminJobsApiAxiosParamCreator = function (configuration) {
1563
1563
  options: localVarRequestOptions,
1564
1564
  };
1565
1565
  }),
1566
+ /**
1567
+ * Returns the CSV emitted by the job — typically one row per record the job touched. The first line is a header; subsequent lines are RFC-4180 escaped data rows. 404 when the job has no artifact (either it didn\'t emit one, or it hasn\'t finished yet).
1568
+ * @summary Download a job\'s CSV artifact
1569
+ * @param {string} id Job id
1570
+ * @param {*} [options] Override http request option.
1571
+ * @throws {RequiredError}
1572
+ */
1573
+ downloadArtifact: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
1574
+ // verify required parameter 'id' is not null or undefined
1575
+ assertParamExists('downloadArtifact', 'id', id);
1576
+ const localVarPath = `/admin/job/{id}/artifact.csv`
1577
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1578
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1579
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1580
+ let baseOptions;
1581
+ if (configuration) {
1582
+ baseOptions = configuration.baseOptions;
1583
+ }
1584
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1585
+ const localVarHeaderParameter = {};
1586
+ const localVarQueryParameter = {};
1587
+ // authentication DiscordAuth required
1588
+ // http bearer authentication required
1589
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1590
+ localVarHeaderParameter['Accept'] = 'text/csv';
1591
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1592
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1593
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1594
+ return {
1595
+ url: toPathString(localVarUrlObj),
1596
+ options: localVarRequestOptions,
1597
+ };
1598
+ }),
1566
1599
  /**
1567
1600
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1568
1601
  * @summary Get one async job
@@ -1659,6 +1692,22 @@ export const AdminJobsApiFp = function (configuration) {
1659
1692
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1660
1693
  });
1661
1694
  },
1695
+ /**
1696
+ * Returns the CSV emitted by the job — typically one row per record the job touched. The first line is a header; subsequent lines are RFC-4180 escaped data rows. 404 when the job has no artifact (either it didn\'t emit one, or it hasn\'t finished yet).
1697
+ * @summary Download a job\'s CSV artifact
1698
+ * @param {string} id Job id
1699
+ * @param {*} [options] Override http request option.
1700
+ * @throws {RequiredError}
1701
+ */
1702
+ downloadArtifact(id, options) {
1703
+ return __awaiter(this, void 0, void 0, function* () {
1704
+ var _a, _b, _c;
1705
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.downloadArtifact(id, options);
1706
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1707
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminJobsApi.downloadArtifact']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1708
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1709
+ });
1710
+ },
1662
1711
  /**
1663
1712
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1664
1713
  * @summary Get one async job
@@ -1710,6 +1759,16 @@ export const AdminJobsApiFactory = function (configuration, basePath, axios) {
1710
1759
  cancel(id, options) {
1711
1760
  return localVarFp.cancel(id, options).then((request) => request(axios, basePath));
1712
1761
  },
1762
+ /**
1763
+ * Returns the CSV emitted by the job — typically one row per record the job touched. The first line is a header; subsequent lines are RFC-4180 escaped data rows. 404 when the job has no artifact (either it didn\'t emit one, or it hasn\'t finished yet).
1764
+ * @summary Download a job\'s CSV artifact
1765
+ * @param {string} id Job id
1766
+ * @param {*} [options] Override http request option.
1767
+ * @throws {RequiredError}
1768
+ */
1769
+ downloadArtifact(id, options) {
1770
+ return localVarFp.downloadArtifact(id, options).then((request) => request(axios, basePath));
1771
+ },
1713
1772
  /**
1714
1773
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1715
1774
  * @summary Get one async job
@@ -1747,6 +1806,16 @@ export class AdminJobsApi extends BaseAPI {
1747
1806
  cancel(id, options) {
1748
1807
  return AdminJobsApiFp(this.configuration).cancel(id, options).then((request) => request(this.axios, this.basePath));
1749
1808
  }
1809
+ /**
1810
+ * Returns the CSV emitted by the job — typically one row per record the job touched. The first line is a header; subsequent lines are RFC-4180 escaped data rows. 404 when the job has no artifact (either it didn\'t emit one, or it hasn\'t finished yet).
1811
+ * @summary Download a job\'s CSV artifact
1812
+ * @param {string} id Job id
1813
+ * @param {*} [options] Override http request option.
1814
+ * @throws {RequiredError}
1815
+ */
1816
+ downloadArtifact(id, options) {
1817
+ return AdminJobsApiFp(this.configuration).downloadArtifact(id, options).then((request) => request(this.axios, this.basePath));
1818
+ }
1750
1819
  /**
1751
1820
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1752
1821
  * @summary Get one async job
@@ -1811,6 +1880,35 @@ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1811
1880
  options: localVarRequestOptions,
1812
1881
  };
1813
1882
  }),
1883
+ /**
1884
+ * Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
1885
+ * @summary Start a username backfill job
1886
+ * @param {*} [options] Override http request option.
1887
+ * @throws {RequiredError}
1888
+ */
1889
+ backfillUsernames: (...args_1) => __awaiter(this, [...args_1], void 0, function* (options = {}) {
1890
+ const localVarPath = `/admin/player/backfill-usernames`;
1891
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1892
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1893
+ let baseOptions;
1894
+ if (configuration) {
1895
+ baseOptions = configuration.baseOptions;
1896
+ }
1897
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1898
+ const localVarHeaderParameter = {};
1899
+ const localVarQueryParameter = {};
1900
+ // authentication DiscordAuth required
1901
+ // http bearer authentication required
1902
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
1903
+ localVarHeaderParameter['Accept'] = 'application/json';
1904
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1905
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1906
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1907
+ return {
1908
+ url: toPathString(localVarUrlObj),
1909
+ options: localVarRequestOptions,
1910
+ };
1911
+ }),
1814
1912
  /**
1815
1913
  * Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
1816
1914
  * @summary Bulk-revoke PROPAGATED links by source
@@ -1919,6 +2017,43 @@ export const AdminPlayersApiAxiosParamCreator = function (configuration) {
1919
2017
  options: localVarRequestOptions,
1920
2018
  };
1921
2019
  }),
2020
+ /**
2021
+ * Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
2022
+ * @summary Alt-graph traversal rooted at a player
2023
+ * @param {string} uuid Player Minecraft UUID
2024
+ * @param {number} [depth] Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2.
2025
+ * @param {*} [options] Override http request option.
2026
+ * @throws {RequiredError}
2027
+ */
2028
+ getAltGraph: (uuid_1, depth_1, ...args_1) => __awaiter(this, [uuid_1, depth_1, ...args_1], void 0, function* (uuid, depth, options = {}) {
2029
+ // verify required parameter 'uuid' is not null or undefined
2030
+ assertParamExists('getAltGraph', 'uuid', uuid);
2031
+ const localVarPath = `/admin/player/{uuid}/alt-graph`
2032
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2033
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2034
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2035
+ let baseOptions;
2036
+ if (configuration) {
2037
+ baseOptions = configuration.baseOptions;
2038
+ }
2039
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2040
+ const localVarHeaderParameter = {};
2041
+ const localVarQueryParameter = {};
2042
+ // authentication DiscordAuth required
2043
+ // http bearer authentication required
2044
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
2045
+ if (depth !== undefined) {
2046
+ localVarQueryParameter['depth'] = depth;
2047
+ }
2048
+ localVarHeaderParameter['Accept'] = 'application/json';
2049
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2050
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2051
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2052
+ return {
2053
+ url: toPathString(localVarUrlObj),
2054
+ options: localVarRequestOptions,
2055
+ };
2056
+ }),
1922
2057
  /**
1923
2058
  * Returns full detail for a single player including all known usernames and punishment scoring.
1924
2059
  * @summary Get player detail
@@ -2463,6 +2598,21 @@ export const AdminPlayersApiFp = function (configuration) {
2463
2598
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2464
2599
  });
2465
2600
  },
2601
+ /**
2602
+ * Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
2603
+ * @summary Start a username backfill job
2604
+ * @param {*} [options] Override http request option.
2605
+ * @throws {RequiredError}
2606
+ */
2607
+ backfillUsernames(options) {
2608
+ return __awaiter(this, void 0, void 0, function* () {
2609
+ var _a, _b, _c;
2610
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.backfillUsernames(options);
2611
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2612
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.backfillUsernames']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2613
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2614
+ });
2615
+ },
2466
2616
  /**
2467
2617
  * Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
2468
2618
  * @summary Bulk-revoke PROPAGATED links by source
@@ -2513,6 +2663,23 @@ export const AdminPlayersApiFp = function (configuration) {
2513
2663
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2514
2664
  });
2515
2665
  },
2666
+ /**
2667
+ * Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
2668
+ * @summary Alt-graph traversal rooted at a player
2669
+ * @param {string} uuid Player Minecraft UUID
2670
+ * @param {number} [depth] Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2.
2671
+ * @param {*} [options] Override http request option.
2672
+ * @throws {RequiredError}
2673
+ */
2674
+ getAltGraph(uuid, depth, options) {
2675
+ return __awaiter(this, void 0, void 0, function* () {
2676
+ var _a, _b, _c;
2677
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getAltGraph(uuid, depth, options);
2678
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2679
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPlayersApi.getAltGraph']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2680
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2681
+ });
2682
+ },
2516
2683
  /**
2517
2684
  * Returns full detail for a single player including all known usernames and punishment scoring.
2518
2685
  * @summary Get player detail
@@ -2767,6 +2934,15 @@ export const AdminPlayersApiFactory = function (configuration, basePath, axios)
2767
2934
  addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2768
2935
  return localVarFp.addAltExemption(uuid, adminCreateAltExemptionRequest, options).then((request) => request(axios, basePath));
2769
2936
  },
2937
+ /**
2938
+ * Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
2939
+ * @summary Start a username backfill job
2940
+ * @param {*} [options] Override http request option.
2941
+ * @throws {RequiredError}
2942
+ */
2943
+ backfillUsernames(options) {
2944
+ return localVarFp.backfillUsernames(options).then((request) => request(axios, basePath));
2945
+ },
2770
2946
  /**
2771
2947
  * Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
2772
2948
  * @summary Bulk-revoke PROPAGATED links by source
@@ -2799,6 +2975,17 @@ export const AdminPlayersApiFactory = function (configuration, basePath, axios)
2799
2975
  deletePlayerNote(uuid, noteId, options) {
2800
2976
  return localVarFp.deletePlayerNote(uuid, noteId, options).then((request) => request(axios, basePath));
2801
2977
  },
2978
+ /**
2979
+ * Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
2980
+ * @summary Alt-graph traversal rooted at a player
2981
+ * @param {string} uuid Player Minecraft UUID
2982
+ * @param {number} [depth] Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2.
2983
+ * @param {*} [options] Override http request option.
2984
+ * @throws {RequiredError}
2985
+ */
2986
+ getAltGraph(uuid, depth, options) {
2987
+ return localVarFp.getAltGraph(uuid, depth, options).then((request) => request(axios, basePath));
2988
+ },
2802
2989
  /**
2803
2990
  * Returns full detail for a single player including all known usernames and punishment scoring.
2804
2991
  * @summary Get player detail
@@ -2967,6 +3154,15 @@ export class AdminPlayersApi extends BaseAPI {
2967
3154
  addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2968
3155
  return AdminPlayersApiFp(this.configuration).addAltExemption(uuid, adminCreateAltExemptionRequest, options).then((request) => request(this.axios, this.basePath));
2969
3156
  }
3157
+ /**
3158
+ * Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
3159
+ * @summary Start a username backfill job
3160
+ * @param {*} [options] Override http request option.
3161
+ * @throws {RequiredError}
3162
+ */
3163
+ backfillUsernames(options) {
3164
+ return AdminPlayersApiFp(this.configuration).backfillUsernames(options).then((request) => request(this.axios, this.basePath));
3165
+ }
2970
3166
  /**
2971
3167
  * Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
2972
3168
  * @summary Bulk-revoke PROPAGATED links by source
@@ -2999,6 +3195,17 @@ export class AdminPlayersApi extends BaseAPI {
2999
3195
  deletePlayerNote(uuid, noteId, options) {
3000
3196
  return AdminPlayersApiFp(this.configuration).deletePlayerNote(uuid, noteId, options).then((request) => request(this.axios, this.basePath));
3001
3197
  }
3198
+ /**
3199
+ * Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
3200
+ * @summary Alt-graph traversal rooted at a player
3201
+ * @param {string} uuid Player Minecraft UUID
3202
+ * @param {number} [depth] Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2.
3203
+ * @param {*} [options] Override http request option.
3204
+ * @throws {RequiredError}
3205
+ */
3206
+ getAltGraph(uuid, depth, options) {
3207
+ return AdminPlayersApiFp(this.configuration).getAltGraph(uuid, depth, options).then((request) => request(this.axios, this.basePath));
3208
+ }
3002
3209
  /**
3003
3210
  * Returns full detail for a single player including all known usernames and punishment scoring.
3004
3211
  * @summary Get player detail
@@ -3261,6 +3468,39 @@ export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
3261
3468
  options: localVarRequestOptions,
3262
3469
  };
3263
3470
  }),
3471
+ /**
3472
+ * Returns the active DIRECT player_punishment UUIDs and the live connection_punishment IPs for a punishment. Used by the admin edit dialog to render the editable participant list. PROPAGATED links are excluded — they\'re an enforcement detail, not part of \'who the admin attached to this punishment\'.
3473
+ * @summary List a punishment\'s current participants
3474
+ * @param {number} id Punishment id
3475
+ * @param {*} [options] Override http request option.
3476
+ * @throws {RequiredError}
3477
+ */
3478
+ getPunishmentTargets: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
3479
+ // verify required parameter 'id' is not null or undefined
3480
+ assertParamExists('getPunishmentTargets', 'id', id);
3481
+ const localVarPath = `/admin/punishment/{id}/targets`
3482
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
3483
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3484
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3485
+ let baseOptions;
3486
+ if (configuration) {
3487
+ baseOptions = configuration.baseOptions;
3488
+ }
3489
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
3490
+ const localVarHeaderParameter = {};
3491
+ const localVarQueryParameter = {};
3492
+ // authentication DiscordAuth required
3493
+ // http bearer authentication required
3494
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3495
+ localVarHeaderParameter['Accept'] = 'application/json';
3496
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3497
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3498
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3499
+ return {
3500
+ url: toPathString(localVarUrlObj),
3501
+ options: localVarRequestOptions,
3502
+ };
3503
+ }),
3264
3504
  /**
3265
3505
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3266
3506
  * @summary List punishments
@@ -3320,6 +3560,35 @@ export const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
3320
3560
  options: localVarRequestOptions,
3321
3561
  };
3322
3562
  }),
3563
+ /**
3564
+ * Submits an async job that walks every player and re-runs the aggressive-mode propagation logic (tier-1 own-IP plus tier-2 alt-driven). Useful after toggling aggressive-mode on, or after a propagation-rule change, to backfill PROPAGATED player_punishment rows that would otherwise only appear on each player\'s next login. Idempotent — ON CONFLICT DO NOTHING. Returns immediately with a job id; poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel.
3565
+ * @summary Start an alt-propagation sweep job
3566
+ * @param {*} [options] Override http request option.
3567
+ * @throws {RequiredError}
3568
+ */
3569
+ propagationSweep: (...args_1) => __awaiter(this, [...args_1], void 0, function* (options = {}) {
3570
+ const localVarPath = `/admin/punishment/propagation-sweep`;
3571
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3572
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3573
+ let baseOptions;
3574
+ if (configuration) {
3575
+ baseOptions = configuration.baseOptions;
3576
+ }
3577
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
3578
+ const localVarHeaderParameter = {};
3579
+ const localVarQueryParameter = {};
3580
+ // authentication DiscordAuth required
3581
+ // http bearer authentication required
3582
+ yield setBearerAuthToObject(localVarHeaderParameter, configuration);
3583
+ localVarHeaderParameter['Accept'] = 'application/json';
3584
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3585
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3586
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3587
+ return {
3588
+ url: toPathString(localVarUrlObj),
3589
+ options: localVarRequestOptions,
3590
+ };
3591
+ }),
3323
3592
  /**
3324
3593
  * Search for players by UUID or username, or look up all players associated with an IP address.
3325
3594
  * @summary Search punishment targets
@@ -3412,6 +3681,22 @@ export const AdminPunishmentsApiFp = function (configuration) {
3412
3681
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3413
3682
  });
3414
3683
  },
3684
+ /**
3685
+ * Returns the active DIRECT player_punishment UUIDs and the live connection_punishment IPs for a punishment. Used by the admin edit dialog to render the editable participant list. PROPAGATED links are excluded — they\'re an enforcement detail, not part of \'who the admin attached to this punishment\'.
3686
+ * @summary List a punishment\'s current participants
3687
+ * @param {number} id Punishment id
3688
+ * @param {*} [options] Override http request option.
3689
+ * @throws {RequiredError}
3690
+ */
3691
+ getPunishmentTargets(id, options) {
3692
+ return __awaiter(this, void 0, void 0, function* () {
3693
+ var _a, _b, _c;
3694
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPunishmentTargets(id, options);
3695
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3696
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.getPunishmentTargets']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3697
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3698
+ });
3699
+ },
3415
3700
  /**
3416
3701
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3417
3702
  * @summary List punishments
@@ -3434,6 +3719,21 @@ export const AdminPunishmentsApiFp = function (configuration) {
3434
3719
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3435
3720
  });
3436
3721
  },
3722
+ /**
3723
+ * Submits an async job that walks every player and re-runs the aggressive-mode propagation logic (tier-1 own-IP plus tier-2 alt-driven). Useful after toggling aggressive-mode on, or after a propagation-rule change, to backfill PROPAGATED player_punishment rows that would otherwise only appear on each player\'s next login. Idempotent — ON CONFLICT DO NOTHING. Returns immediately with a job id; poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel.
3724
+ * @summary Start an alt-propagation sweep job
3725
+ * @param {*} [options] Override http request option.
3726
+ * @throws {RequiredError}
3727
+ */
3728
+ propagationSweep(options) {
3729
+ return __awaiter(this, void 0, void 0, function* () {
3730
+ var _a, _b, _c;
3731
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.propagationSweep(options);
3732
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3733
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['AdminPunishmentsApi.propagationSweep']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3734
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3735
+ });
3736
+ },
3437
3737
  /**
3438
3738
  * Search for players by UUID or username, or look up all players associated with an IP address.
3439
3739
  * @summary Search punishment targets
@@ -3489,6 +3789,16 @@ export const AdminPunishmentsApiFactory = function (configuration, basePath, axi
3489
3789
  editPunishment(id, adminUpdatePunishmentRequest, options) {
3490
3790
  return localVarFp.editPunishment(id, adminUpdatePunishmentRequest, options).then((request) => request(axios, basePath));
3491
3791
  },
3792
+ /**
3793
+ * Returns the active DIRECT player_punishment UUIDs and the live connection_punishment IPs for a punishment. Used by the admin edit dialog to render the editable participant list. PROPAGATED links are excluded — they\'re an enforcement detail, not part of \'who the admin attached to this punishment\'.
3794
+ * @summary List a punishment\'s current participants
3795
+ * @param {number} id Punishment id
3796
+ * @param {*} [options] Override http request option.
3797
+ * @throws {RequiredError}
3798
+ */
3799
+ getPunishmentTargets(id, options) {
3800
+ return localVarFp.getPunishmentTargets(id, options).then((request) => request(axios, basePath));
3801
+ },
3492
3802
  /**
3493
3803
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3494
3804
  * @summary List punishments
@@ -3505,6 +3815,15 @@ export const AdminPunishmentsApiFactory = function (configuration, basePath, axi
3505
3815
  getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3506
3816
  return localVarFp.getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(axios, basePath));
3507
3817
  },
3818
+ /**
3819
+ * Submits an async job that walks every player and re-runs the aggressive-mode propagation logic (tier-1 own-IP plus tier-2 alt-driven). Useful after toggling aggressive-mode on, or after a propagation-rule change, to backfill PROPAGATED player_punishment rows that would otherwise only appear on each player\'s next login. Idempotent — ON CONFLICT DO NOTHING. Returns immediately with a job id; poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel.
3820
+ * @summary Start an alt-propagation sweep job
3821
+ * @param {*} [options] Override http request option.
3822
+ * @throws {RequiredError}
3823
+ */
3824
+ propagationSweep(options) {
3825
+ return localVarFp.propagationSweep(options).then((request) => request(axios, basePath));
3826
+ },
3508
3827
  /**
3509
3828
  * Search for players by UUID or username, or look up all players associated with an IP address.
3510
3829
  * @summary Search punishment targets
@@ -3552,6 +3871,16 @@ export class AdminPunishmentsApi extends BaseAPI {
3552
3871
  editPunishment(id, adminUpdatePunishmentRequest, options) {
3553
3872
  return AdminPunishmentsApiFp(this.configuration).editPunishment(id, adminUpdatePunishmentRequest, options).then((request) => request(this.axios, this.basePath));
3554
3873
  }
3874
+ /**
3875
+ * Returns the active DIRECT player_punishment UUIDs and the live connection_punishment IPs for a punishment. Used by the admin edit dialog to render the editable participant list. PROPAGATED links are excluded — they\'re an enforcement detail, not part of \'who the admin attached to this punishment\'.
3876
+ * @summary List a punishment\'s current participants
3877
+ * @param {number} id Punishment id
3878
+ * @param {*} [options] Override http request option.
3879
+ * @throws {RequiredError}
3880
+ */
3881
+ getPunishmentTargets(id, options) {
3882
+ return AdminPunishmentsApiFp(this.configuration).getPunishmentTargets(id, options).then((request) => request(this.axios, this.basePath));
3883
+ }
3555
3884
  /**
3556
3885
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3557
3886
  * @summary List punishments
@@ -3568,6 +3897,15 @@ export class AdminPunishmentsApi extends BaseAPI {
3568
3897
  getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3569
3898
  return AdminPunishmentsApiFp(this.configuration).getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(this.axios, this.basePath));
3570
3899
  }
3900
+ /**
3901
+ * Submits an async job that walks every player and re-runs the aggressive-mode propagation logic (tier-1 own-IP plus tier-2 alt-driven). Useful after toggling aggressive-mode on, or after a propagation-rule change, to backfill PROPAGATED player_punishment rows that would otherwise only appear on each player\'s next login. Idempotent — ON CONFLICT DO NOTHING. Returns immediately with a job id; poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel.
3902
+ * @summary Start an alt-propagation sweep job
3903
+ * @param {*} [options] Override http request option.
3904
+ * @throws {RequiredError}
3905
+ */
3906
+ propagationSweep(options) {
3907
+ return AdminPunishmentsApiFp(this.configuration).propagationSweep(options).then((request) => request(this.axios, this.basePath));
3908
+ }
3571
3909
  /**
3572
3910
  * Search for players by UUID or username, or look up all players associated with an IP address.
3573
3911
  * @summary Search punishment targets
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.0.0
5
+ * The version of the OpenAPI document: 4.5.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/base.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.0.0
7
+ * The version of the OpenAPI document: 4.5.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.0.0
5
+ * The version of the OpenAPI document: 4.5.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.0.0
7
+ * The version of the OpenAPI document: 4.5.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.0.0
5
+ * The version of the OpenAPI document: 4.5.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -3,7 +3,7 @@
3
3
  * Reborn API
4
4
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
5
5
  *
6
- * The version of the OpenAPI document: 4.0.0
6
+ * The version of the OpenAPI document: 4.5.0
7
7
  *
8
8
  *
9
9
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.0.0
5
+ * The version of the OpenAPI document: 4.5.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.0.0
7
+ * The version of the OpenAPI document: 4.5.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.0.0
5
+ * The version of the OpenAPI document: 4.5.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Reborn API
6
6
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
7
7
  *
8
- * The version of the OpenAPI document: 4.0.0
8
+ * The version of the OpenAPI document: 4.5.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -0,0 +1,27 @@
1
+ # AdminAltGraph
2
+
3
+ Alt-graph rooted at a player, walked out to the requested hop depth.
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **rootUuid** | **string** | UUID of the focal player. Always appears in nodes at depth=0. | [default to undefined]
10
+ **depth** | **number** | Maximum hop depth walked. Capped server-side at MAX_PROPAGATION_DEPTH. | [default to undefined]
11
+ **nodes** | [**Array<AdminAltGraphNode>**](AdminAltGraphNode.md) | Every player reachable from the root within {@code depth} hops, including the root at depth=0. | [default to undefined]
12
+ **edges** | [**Array<AdminAltGraphEdge>**](AdminAltGraphEdge.md) | Undirected edges between any two players in nodes that share at least one non-promiscuous connection. | [default to undefined]
13
+
14
+ ## Example
15
+
16
+ ```typescript
17
+ import { AdminAltGraph } from '@rebornteam/reborn-api';
18
+
19
+ const instance: AdminAltGraph = {
20
+ rootUuid,
21
+ depth,
22
+ nodes,
23
+ edges,
24
+ };
25
+ ```
26
+
27
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -0,0 +1,25 @@
1
+ # AdminAltGraphEdge
2
+
3
+ Undirected edge in an alt-graph traversal.
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **fromUuid** | **string** | One endpoint of the edge | [default to undefined]
10
+ **toUuid** | **string** | Other endpoint of the edge. The pair is emitted only once — the SQL ensures fromUuid < toUuid lexicographically. | [default to undefined]
11
+ **sharedConnectionCount** | **number** | Number of distinct non-promiscuous connections these two players share. Drives edge thickness. | [default to undefined]
12
+
13
+ ## Example
14
+
15
+ ```typescript
16
+ import { AdminAltGraphEdge } from '@rebornteam/reborn-api';
17
+
18
+ const instance: AdminAltGraphEdge = {
19
+ fromUuid,
20
+ toUuid,
21
+ sharedConnectionCount,
22
+ };
23
+ ```
24
+
25
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)