@rebornteam/reborn-api 4.0.0 → 4.6.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/api.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.6.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1583,6 +1583,39 @@ const AdminJobsApiAxiosParamCreator = function (configuration) {
1583
1583
  options: localVarRequestOptions,
1584
1584
  };
1585
1585
  }),
1586
+ /**
1587
+ * 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).
1588
+ * @summary Download a job\'s CSV artifact
1589
+ * @param {string} id Job id
1590
+ * @param {*} [options] Override http request option.
1591
+ * @throws {RequiredError}
1592
+ */
1593
+ downloadArtifact: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
1594
+ // verify required parameter 'id' is not null or undefined
1595
+ (0, common_1.assertParamExists)('downloadArtifact', 'id', id);
1596
+ const localVarPath = `/admin/job/{id}/artifact.csv`
1597
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1598
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1599
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1600
+ let baseOptions;
1601
+ if (configuration) {
1602
+ baseOptions = configuration.baseOptions;
1603
+ }
1604
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
1605
+ const localVarHeaderParameter = {};
1606
+ const localVarQueryParameter = {};
1607
+ // authentication DiscordAuth required
1608
+ // http bearer authentication required
1609
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1610
+ localVarHeaderParameter['Accept'] = 'text/csv';
1611
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1612
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1613
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1614
+ return {
1615
+ url: (0, common_1.toPathString)(localVarUrlObj),
1616
+ options: localVarRequestOptions,
1617
+ };
1618
+ }),
1586
1619
  /**
1587
1620
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1588
1621
  * @summary Get one async job
@@ -1680,6 +1713,22 @@ const AdminJobsApiFp = function (configuration) {
1680
1713
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1681
1714
  });
1682
1715
  },
1716
+ /**
1717
+ * 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).
1718
+ * @summary Download a job\'s CSV artifact
1719
+ * @param {string} id Job id
1720
+ * @param {*} [options] Override http request option.
1721
+ * @throws {RequiredError}
1722
+ */
1723
+ downloadArtifact(id, options) {
1724
+ return __awaiter(this, void 0, void 0, function* () {
1725
+ var _a, _b, _c;
1726
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.downloadArtifact(id, options);
1727
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1728
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminJobsApi.downloadArtifact']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1729
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1730
+ });
1731
+ },
1683
1732
  /**
1684
1733
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1685
1734
  * @summary Get one async job
@@ -1732,6 +1781,16 @@ const AdminJobsApiFactory = function (configuration, basePath, axios) {
1732
1781
  cancel(id, options) {
1733
1782
  return localVarFp.cancel(id, options).then((request) => request(axios, basePath));
1734
1783
  },
1784
+ /**
1785
+ * 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).
1786
+ * @summary Download a job\'s CSV artifact
1787
+ * @param {string} id Job id
1788
+ * @param {*} [options] Override http request option.
1789
+ * @throws {RequiredError}
1790
+ */
1791
+ downloadArtifact(id, options) {
1792
+ return localVarFp.downloadArtifact(id, options).then((request) => request(axios, basePath));
1793
+ },
1735
1794
  /**
1736
1795
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1737
1796
  * @summary Get one async job
@@ -1770,6 +1829,16 @@ class AdminJobsApi extends base_1.BaseAPI {
1770
1829
  cancel(id, options) {
1771
1830
  return (0, exports.AdminJobsApiFp)(this.configuration).cancel(id, options).then((request) => request(this.axios, this.basePath));
1772
1831
  }
1832
+ /**
1833
+ * 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).
1834
+ * @summary Download a job\'s CSV artifact
1835
+ * @param {string} id Job id
1836
+ * @param {*} [options] Override http request option.
1837
+ * @throws {RequiredError}
1838
+ */
1839
+ downloadArtifact(id, options) {
1840
+ return (0, exports.AdminJobsApiFp)(this.configuration).downloadArtifact(id, options).then((request) => request(this.axios, this.basePath));
1841
+ }
1773
1842
  /**
1774
1843
  * The polling target — the admin UI hits this every ~2 s while a job is running to update its progress bar.
1775
1844
  * @summary Get one async job
@@ -1835,6 +1904,35 @@ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1835
1904
  options: localVarRequestOptions,
1836
1905
  };
1837
1906
  }),
1907
+ /**
1908
+ * 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.
1909
+ * @summary Start a username backfill job
1910
+ * @param {*} [options] Override http request option.
1911
+ * @throws {RequiredError}
1912
+ */
1913
+ backfillUsernames: (...args_1) => __awaiter(this, [...args_1], void 0, function* (options = {}) {
1914
+ const localVarPath = `/admin/player/backfill-usernames`;
1915
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1916
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
1917
+ let baseOptions;
1918
+ if (configuration) {
1919
+ baseOptions = configuration.baseOptions;
1920
+ }
1921
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
1922
+ const localVarHeaderParameter = {};
1923
+ const localVarQueryParameter = {};
1924
+ // authentication DiscordAuth required
1925
+ // http bearer authentication required
1926
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
1927
+ localVarHeaderParameter['Accept'] = 'application/json';
1928
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
1929
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1930
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
1931
+ return {
1932
+ url: (0, common_1.toPathString)(localVarUrlObj),
1933
+ options: localVarRequestOptions,
1934
+ };
1935
+ }),
1838
1936
  /**
1839
1937
  * 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.
1840
1938
  * @summary Bulk-revoke PROPAGATED links by source
@@ -1943,6 +2041,43 @@ const AdminPlayersApiAxiosParamCreator = function (configuration) {
1943
2041
  options: localVarRequestOptions,
1944
2042
  };
1945
2043
  }),
2044
+ /**
2045
+ * 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.
2046
+ * @summary Alt-graph traversal rooted at a player
2047
+ * @param {string} uuid Player Minecraft UUID
2048
+ * @param {number} [depth] Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2.
2049
+ * @param {*} [options] Override http request option.
2050
+ * @throws {RequiredError}
2051
+ */
2052
+ getAltGraph: (uuid_1, depth_1, ...args_1) => __awaiter(this, [uuid_1, depth_1, ...args_1], void 0, function* (uuid, depth, options = {}) {
2053
+ // verify required parameter 'uuid' is not null or undefined
2054
+ (0, common_1.assertParamExists)('getAltGraph', 'uuid', uuid);
2055
+ const localVarPath = `/admin/player/{uuid}/alt-graph`
2056
+ .replace(`{${"uuid"}}`, encodeURIComponent(String(uuid)));
2057
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2058
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
2059
+ let baseOptions;
2060
+ if (configuration) {
2061
+ baseOptions = configuration.baseOptions;
2062
+ }
2063
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
2064
+ const localVarHeaderParameter = {};
2065
+ const localVarQueryParameter = {};
2066
+ // authentication DiscordAuth required
2067
+ // http bearer authentication required
2068
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
2069
+ if (depth !== undefined) {
2070
+ localVarQueryParameter['depth'] = depth;
2071
+ }
2072
+ localVarHeaderParameter['Accept'] = 'application/json';
2073
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
2074
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2075
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
2076
+ return {
2077
+ url: (0, common_1.toPathString)(localVarUrlObj),
2078
+ options: localVarRequestOptions,
2079
+ };
2080
+ }),
1946
2081
  /**
1947
2082
  * Returns full detail for a single player including all known usernames and punishment scoring.
1948
2083
  * @summary Get player detail
@@ -2488,6 +2623,21 @@ const AdminPlayersApiFp = function (configuration) {
2488
2623
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2489
2624
  });
2490
2625
  },
2626
+ /**
2627
+ * 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.
2628
+ * @summary Start a username backfill job
2629
+ * @param {*} [options] Override http request option.
2630
+ * @throws {RequiredError}
2631
+ */
2632
+ backfillUsernames(options) {
2633
+ return __awaiter(this, void 0, void 0, function* () {
2634
+ var _a, _b, _c;
2635
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.backfillUsernames(options);
2636
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2637
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.backfillUsernames']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2638
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2639
+ });
2640
+ },
2491
2641
  /**
2492
2642
  * 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.
2493
2643
  * @summary Bulk-revoke PROPAGATED links by source
@@ -2538,6 +2688,23 @@ const AdminPlayersApiFp = function (configuration) {
2538
2688
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2539
2689
  });
2540
2690
  },
2691
+ /**
2692
+ * 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.
2693
+ * @summary Alt-graph traversal rooted at a player
2694
+ * @param {string} uuid Player Minecraft UUID
2695
+ * @param {number} [depth] Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2.
2696
+ * @param {*} [options] Override http request option.
2697
+ * @throws {RequiredError}
2698
+ */
2699
+ getAltGraph(uuid, depth, options) {
2700
+ return __awaiter(this, void 0, void 0, function* () {
2701
+ var _a, _b, _c;
2702
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getAltGraph(uuid, depth, options);
2703
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
2704
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPlayersApi.getAltGraph']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
2705
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
2706
+ });
2707
+ },
2541
2708
  /**
2542
2709
  * Returns full detail for a single player including all known usernames and punishment scoring.
2543
2710
  * @summary Get player detail
@@ -2793,6 +2960,15 @@ const AdminPlayersApiFactory = function (configuration, basePath, axios) {
2793
2960
  addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2794
2961
  return localVarFp.addAltExemption(uuid, adminCreateAltExemptionRequest, options).then((request) => request(axios, basePath));
2795
2962
  },
2963
+ /**
2964
+ * 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.
2965
+ * @summary Start a username backfill job
2966
+ * @param {*} [options] Override http request option.
2967
+ * @throws {RequiredError}
2968
+ */
2969
+ backfillUsernames(options) {
2970
+ return localVarFp.backfillUsernames(options).then((request) => request(axios, basePath));
2971
+ },
2796
2972
  /**
2797
2973
  * 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.
2798
2974
  * @summary Bulk-revoke PROPAGATED links by source
@@ -2825,6 +3001,17 @@ const AdminPlayersApiFactory = function (configuration, basePath, axios) {
2825
3001
  deletePlayerNote(uuid, noteId, options) {
2826
3002
  return localVarFp.deletePlayerNote(uuid, noteId, options).then((request) => request(axios, basePath));
2827
3003
  },
3004
+ /**
3005
+ * 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.
3006
+ * @summary Alt-graph traversal rooted at a player
3007
+ * @param {string} uuid Player Minecraft UUID
3008
+ * @param {number} [depth] Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2.
3009
+ * @param {*} [options] Override http request option.
3010
+ * @throws {RequiredError}
3011
+ */
3012
+ getAltGraph(uuid, depth, options) {
3013
+ return localVarFp.getAltGraph(uuid, depth, options).then((request) => request(axios, basePath));
3014
+ },
2828
3015
  /**
2829
3016
  * Returns full detail for a single player including all known usernames and punishment scoring.
2830
3017
  * @summary Get player detail
@@ -2994,6 +3181,15 @@ class AdminPlayersApi extends base_1.BaseAPI {
2994
3181
  addAltExemption(uuid, adminCreateAltExemptionRequest, options) {
2995
3182
  return (0, exports.AdminPlayersApiFp)(this.configuration).addAltExemption(uuid, adminCreateAltExemptionRequest, options).then((request) => request(this.axios, this.basePath));
2996
3183
  }
3184
+ /**
3185
+ * 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.
3186
+ * @summary Start a username backfill job
3187
+ * @param {*} [options] Override http request option.
3188
+ * @throws {RequiredError}
3189
+ */
3190
+ backfillUsernames(options) {
3191
+ return (0, exports.AdminPlayersApiFp)(this.configuration).backfillUsernames(options).then((request) => request(this.axios, this.basePath));
3192
+ }
2997
3193
  /**
2998
3194
  * 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.
2999
3195
  * @summary Bulk-revoke PROPAGATED links by source
@@ -3026,6 +3222,17 @@ class AdminPlayersApi extends base_1.BaseAPI {
3026
3222
  deletePlayerNote(uuid, noteId, options) {
3027
3223
  return (0, exports.AdminPlayersApiFp)(this.configuration).deletePlayerNote(uuid, noteId, options).then((request) => request(this.axios, this.basePath));
3028
3224
  }
3225
+ /**
3226
+ * 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.
3227
+ * @summary Alt-graph traversal rooted at a player
3228
+ * @param {string} uuid Player Minecraft UUID
3229
+ * @param {number} [depth] Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2.
3230
+ * @param {*} [options] Override http request option.
3231
+ * @throws {RequiredError}
3232
+ */
3233
+ getAltGraph(uuid, depth, options) {
3234
+ return (0, exports.AdminPlayersApiFp)(this.configuration).getAltGraph(uuid, depth, options).then((request) => request(this.axios, this.basePath));
3235
+ }
3029
3236
  /**
3030
3237
  * Returns full detail for a single player including all known usernames and punishment scoring.
3031
3238
  * @summary Get player detail
@@ -3289,6 +3496,39 @@ const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
3289
3496
  options: localVarRequestOptions,
3290
3497
  };
3291
3498
  }),
3499
+ /**
3500
+ * 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\'.
3501
+ * @summary List a punishment\'s current participants
3502
+ * @param {number} id Punishment id
3503
+ * @param {*} [options] Override http request option.
3504
+ * @throws {RequiredError}
3505
+ */
3506
+ getPunishmentTargets: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
3507
+ // verify required parameter 'id' is not null or undefined
3508
+ (0, common_1.assertParamExists)('getPunishmentTargets', 'id', id);
3509
+ const localVarPath = `/admin/punishment/{id}/targets`
3510
+ .replace(`{${"id"}}`, encodeURIComponent(String(id)));
3511
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3512
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3513
+ let baseOptions;
3514
+ if (configuration) {
3515
+ baseOptions = configuration.baseOptions;
3516
+ }
3517
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
3518
+ const localVarHeaderParameter = {};
3519
+ const localVarQueryParameter = {};
3520
+ // authentication DiscordAuth required
3521
+ // http bearer authentication required
3522
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3523
+ localVarHeaderParameter['Accept'] = 'application/json';
3524
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3525
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3526
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3527
+ return {
3528
+ url: (0, common_1.toPathString)(localVarUrlObj),
3529
+ options: localVarRequestOptions,
3530
+ };
3531
+ }),
3292
3532
  /**
3293
3533
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3294
3534
  * @summary List punishments
@@ -3348,6 +3588,35 @@ const AdminPunishmentsApiAxiosParamCreator = function (configuration) {
3348
3588
  options: localVarRequestOptions,
3349
3589
  };
3350
3590
  }),
3591
+ /**
3592
+ * 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.
3593
+ * @summary Start an alt-propagation sweep job
3594
+ * @param {*} [options] Override http request option.
3595
+ * @throws {RequiredError}
3596
+ */
3597
+ propagationSweep: (...args_1) => __awaiter(this, [...args_1], void 0, function* (options = {}) {
3598
+ const localVarPath = `/admin/punishment/propagation-sweep`;
3599
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
3600
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
3601
+ let baseOptions;
3602
+ if (configuration) {
3603
+ baseOptions = configuration.baseOptions;
3604
+ }
3605
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
3606
+ const localVarHeaderParameter = {};
3607
+ const localVarQueryParameter = {};
3608
+ // authentication DiscordAuth required
3609
+ // http bearer authentication required
3610
+ yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
3611
+ localVarHeaderParameter['Accept'] = 'application/json';
3612
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
3613
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3614
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
3615
+ return {
3616
+ url: (0, common_1.toPathString)(localVarUrlObj),
3617
+ options: localVarRequestOptions,
3618
+ };
3619
+ }),
3351
3620
  /**
3352
3621
  * Search for players by UUID or username, or look up all players associated with an IP address.
3353
3622
  * @summary Search punishment targets
@@ -3441,6 +3710,22 @@ const AdminPunishmentsApiFp = function (configuration) {
3441
3710
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3442
3711
  });
3443
3712
  },
3713
+ /**
3714
+ * 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\'.
3715
+ * @summary List a punishment\'s current participants
3716
+ * @param {number} id Punishment id
3717
+ * @param {*} [options] Override http request option.
3718
+ * @throws {RequiredError}
3719
+ */
3720
+ getPunishmentTargets(id, options) {
3721
+ return __awaiter(this, void 0, void 0, function* () {
3722
+ var _a, _b, _c;
3723
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.getPunishmentTargets(id, options);
3724
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3725
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPunishmentsApi.getPunishmentTargets']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3726
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3727
+ });
3728
+ },
3444
3729
  /**
3445
3730
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3446
3731
  * @summary List punishments
@@ -3463,6 +3748,21 @@ const AdminPunishmentsApiFp = function (configuration) {
3463
3748
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3464
3749
  });
3465
3750
  },
3751
+ /**
3752
+ * 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.
3753
+ * @summary Start an alt-propagation sweep job
3754
+ * @param {*} [options] Override http request option.
3755
+ * @throws {RequiredError}
3756
+ */
3757
+ propagationSweep(options) {
3758
+ return __awaiter(this, void 0, void 0, function* () {
3759
+ var _a, _b, _c;
3760
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.propagationSweep(options);
3761
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
3762
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['AdminPunishmentsApi.propagationSweep']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
3763
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3764
+ });
3765
+ },
3466
3766
  /**
3467
3767
  * Search for players by UUID or username, or look up all players associated with an IP address.
3468
3768
  * @summary Search punishment targets
@@ -3519,6 +3819,16 @@ const AdminPunishmentsApiFactory = function (configuration, basePath, axios) {
3519
3819
  editPunishment(id, adminUpdatePunishmentRequest, options) {
3520
3820
  return localVarFp.editPunishment(id, adminUpdatePunishmentRequest, options).then((request) => request(axios, basePath));
3521
3821
  },
3822
+ /**
3823
+ * 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\'.
3824
+ * @summary List a punishment\'s current participants
3825
+ * @param {number} id Punishment id
3826
+ * @param {*} [options] Override http request option.
3827
+ * @throws {RequiredError}
3828
+ */
3829
+ getPunishmentTargets(id, options) {
3830
+ return localVarFp.getPunishmentTargets(id, options).then((request) => request(axios, basePath));
3831
+ },
3522
3832
  /**
3523
3833
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3524
3834
  * @summary List punishments
@@ -3535,6 +3845,15 @@ const AdminPunishmentsApiFactory = function (configuration, basePath, axios) {
3535
3845
  getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3536
3846
  return localVarFp.getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(axios, basePath));
3537
3847
  },
3848
+ /**
3849
+ * 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.
3850
+ * @summary Start an alt-propagation sweep job
3851
+ * @param {*} [options] Override http request option.
3852
+ * @throws {RequiredError}
3853
+ */
3854
+ propagationSweep(options) {
3855
+ return localVarFp.propagationSweep(options).then((request) => request(axios, basePath));
3856
+ },
3538
3857
  /**
3539
3858
  * Search for players by UUID or username, or look up all players associated with an IP address.
3540
3859
  * @summary Search punishment targets
@@ -3583,6 +3902,16 @@ class AdminPunishmentsApi extends base_1.BaseAPI {
3583
3902
  editPunishment(id, adminUpdatePunishmentRequest, options) {
3584
3903
  return (0, exports.AdminPunishmentsApiFp)(this.configuration).editPunishment(id, adminUpdatePunishmentRequest, options).then((request) => request(this.axios, this.basePath));
3585
3904
  }
3905
+ /**
3906
+ * 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\'.
3907
+ * @summary List a punishment\'s current participants
3908
+ * @param {number} id Punishment id
3909
+ * @param {*} [options] Override http request option.
3910
+ * @throws {RequiredError}
3911
+ */
3912
+ getPunishmentTargets(id, options) {
3913
+ return (0, exports.AdminPunishmentsApiFp)(this.configuration).getPunishmentTargets(id, options).then((request) => request(this.axios, this.basePath));
3914
+ }
3586
3915
  /**
3587
3916
  * Returns a paginated list of punishments with optional filtering by player UUID, username, IP address, type, and date range.
3588
3917
  * @summary List punishments
@@ -3599,6 +3928,15 @@ class AdminPunishmentsApi extends base_1.BaseAPI {
3599
3928
  getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options) {
3600
3929
  return (0, exports.AdminPunishmentsApiFp)(this.configuration).getPunishments(pageable, uuid, username, ipAddress, type, issuedAfter, issuedBefore, options).then((request) => request(this.axios, this.basePath));
3601
3930
  }
3931
+ /**
3932
+ * 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.
3933
+ * @summary Start an alt-propagation sweep job
3934
+ * @param {*} [options] Override http request option.
3935
+ * @throws {RequiredError}
3936
+ */
3937
+ propagationSweep(options) {
3938
+ return (0, exports.AdminPunishmentsApiFp)(this.configuration).propagationSweep(options).then((request) => request(this.axios, this.basePath));
3939
+ }
3602
3940
  /**
3603
3941
  * Search for players by UUID or username, or look up all players associated with an IP address.
3604
3942
  * @summary Search punishment targets
@@ -4602,7 +4940,7 @@ exports.PlayerApi = PlayerApi;
4602
4940
  const PlayerSessionsApiAxiosParamCreator = function (configuration) {
4603
4941
  return {
4604
4942
  /**
4605
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4943
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4606
4944
  * @summary Close the active player session
4607
4945
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4608
4946
  * @param {*} [options] Override http request option.
@@ -4625,6 +4963,7 @@ const PlayerSessionsApiAxiosParamCreator = function (configuration) {
4625
4963
  // http bearer authentication required
4626
4964
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
4627
4965
  localVarHeaderParameter['Content-Type'] = 'application/json';
4966
+ localVarHeaderParameter['Accept'] = 'application/json';
4628
4967
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
4629
4968
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4630
4969
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
@@ -4678,7 +5017,7 @@ const PlayerSessionsApiFp = function (configuration) {
4678
5017
  const localVarAxiosParamCreator = (0, exports.PlayerSessionsApiAxiosParamCreator)(configuration);
4679
5018
  return {
4680
5019
  /**
4681
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
5020
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4682
5021
  * @summary Close the active player session
4683
5022
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4684
5023
  * @param {*} [options] Override http request option.
@@ -4719,7 +5058,7 @@ const PlayerSessionsApiFactory = function (configuration, basePath, axios) {
4719
5058
  const localVarFp = (0, exports.PlayerSessionsApiFp)(configuration);
4720
5059
  return {
4721
5060
  /**
4722
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
5061
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4723
5062
  * @summary Close the active player session
4724
5063
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4725
5064
  * @param {*} [options] Override http request option.
@@ -4746,7 +5085,7 @@ exports.PlayerSessionsApiFactory = PlayerSessionsApiFactory;
4746
5085
  */
4747
5086
  class PlayerSessionsApi extends base_1.BaseAPI {
4748
5087
  /**
4749
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
5088
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4750
5089
  * @summary Close the active player session
4751
5090
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4752
5091
  * @param {*} [options] Override http request option.
package/dist/base.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.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/base.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.6.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/common.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.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/common.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.6.0
9
9
  *
10
10
  *
11
11
  * 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.6.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.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).