@rebornteam/reborn-api 4.6.0 → 4.8.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.
@@ -109,6 +109,7 @@ docs/Region.md
109
109
  docs/ReportApi.md
110
110
  docs/ReportCategory.md
111
111
  docs/SearchKind.md
112
+ docs/ServerHeartbeatRequest.md
112
113
  docs/ServerRegisterRequest.md
113
114
  docs/ServerSessionDTO.md
114
115
  docs/ServerSessionsApi.md
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- ## @rebornteam/reborn-api@4.6.0
1
+ ## @rebornteam/reborn-api@4.8.0
2
2
 
3
3
  This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments:
4
4
 
@@ -36,7 +36,7 @@ navigate to the folder of your consuming project and run one of the following co
36
36
  _published:_
37
37
 
38
38
  ```
39
- npm install @rebornteam/reborn-api@4.6.0 --save
39
+ npm install @rebornteam/reborn-api@4.8.0 --save
40
40
  ```
41
41
 
42
42
  _unPublished (not recommended):_
@@ -214,6 +214,7 @@ Class | Method | HTTP request | Description
214
214
  - [Region](docs/Region.md)
215
215
  - [ReportCategory](docs/ReportCategory.md)
216
216
  - [SearchKind](docs/SearchKind.md)
217
+ - [ServerHeartbeatRequest](docs/ServerHeartbeatRequest.md)
217
218
  - [ServerRegisterRequest](docs/ServerRegisterRequest.md)
218
219
  - [ServerSessionDTO](docs/ServerSessionDTO.md)
219
220
  - [SliceAdminAltAccount](docs/SliceAdminAltAccount.md)
package/api.ts 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.6.0
7
+ * The version of the OpenAPI document: 4.8.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -110,6 +110,10 @@ export interface AdminAltGraphEdge {
110
110
  * Number of distinct non-promiscuous connections these two players share. Drives edge thickness.
111
111
  */
112
112
  'sharedConnectionCount': number;
113
+ /**
114
+ * The distinct IP addresses the two players share — the address(es) this edge represents. Same cardinality as sharedConnectionCount.
115
+ */
116
+ 'sharedIpAddresses': Array<string>;
113
117
  }
114
118
  /**
115
119
  * One player node in an alt-graph traversal.
@@ -775,6 +779,10 @@ export interface AdminPlayerSession {
775
779
  * Closed session duration in seconds (ended_at − started_at). Null while active.
776
780
  */
777
781
  'durationSeconds'?: number | null;
782
+ /**
783
+ * When the player transferred to another server, the id of the session they moved to. Null for a normal disconnect or an active session.
784
+ */
785
+ 'transferredTo'?: string | null;
778
786
  }
779
787
  /**
780
788
  * Aggregate session statistics for one player. Computed on demand from player_session.
@@ -1821,6 +1829,15 @@ export const SearchKind = {
1821
1829
  export type SearchKind = typeof SearchKind[keyof typeof SearchKind];
1822
1830
 
1823
1831
 
1832
+ /**
1833
+ * Optional heartbeat payload carrying the players currently on this server session.
1834
+ */
1835
+ export interface ServerHeartbeatRequest {
1836
+ /**
1837
+ * UUIDs of players currently on this server session. Open sessions for this server whose player is absent from this list are auto-closed. Omit to heartbeat without reconciling player sessions.
1838
+ */
1839
+ 'activePlayers'?: Array<string> | null;
1840
+ }
1824
1841
  export interface ServerRegisterRequest {
1825
1842
  'region': Region;
1826
1843
  'gameType': GameType;
@@ -7761,13 +7778,14 @@ export class ReportApi extends BaseAPI {
7761
7778
  export const ServerSessionsApiAxiosParamCreator = function (configuration?: Configuration) {
7762
7779
  return {
7763
7780
  /**
7764
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
7781
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
7765
7782
  * @summary Send a heartbeat
7766
7783
  * @param {string} id Session UUID returned from the registration call
7784
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
7767
7785
  * @param {*} [options] Override http request option.
7768
7786
  * @throws {RequiredError}
7769
7787
  */
7770
- heartbeat: async (id: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
7788
+ heartbeat: async (id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
7771
7789
  // verify required parameter 'id' is not null or undefined
7772
7790
  assertParamExists('heartbeat', 'id', id)
7773
7791
  const localVarPath = `/v1/servers/{id}/heartbeat`
@@ -7787,10 +7805,12 @@ export const ServerSessionsApiAxiosParamCreator = function (configuration?: Conf
7787
7805
  // http bearer authentication required
7788
7806
  await setBearerAuthToObject(localVarHeaderParameter, configuration)
7789
7807
 
7808
+ localVarHeaderParameter['Content-Type'] = 'application/json';
7790
7809
 
7791
7810
  setSearchParams(localVarUrlObj, localVarQueryParameter);
7792
7811
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7793
7812
  localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
7813
+ localVarRequestOptions.data = serializeDataIfNeeded(serverHeartbeatRequest, localVarRequestOptions, configuration)
7794
7814
 
7795
7815
  return {
7796
7816
  url: toPathString(localVarUrlObj),
@@ -7951,14 +7971,15 @@ export const ServerSessionsApiFp = function(configuration?: Configuration) {
7951
7971
  const localVarAxiosParamCreator = ServerSessionsApiAxiosParamCreator(configuration)
7952
7972
  return {
7953
7973
  /**
7954
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
7974
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
7955
7975
  * @summary Send a heartbeat
7956
7976
  * @param {string} id Session UUID returned from the registration call
7977
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
7957
7978
  * @param {*} [options] Override http request option.
7958
7979
  * @throws {RequiredError}
7959
7980
  */
7960
- async heartbeat(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
7961
- const localVarAxiosArgs = await localVarAxiosParamCreator.heartbeat(id, options);
7981
+ async heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
7982
+ const localVarAxiosArgs = await localVarAxiosParamCreator.heartbeat(id, serverHeartbeatRequest, options);
7962
7983
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7963
7984
  const localVarOperationServerBasePath = operationServerMap['ServerSessionsApi.heartbeat']?.[localVarOperationServerIndex]?.url;
7964
7985
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -8023,14 +8044,15 @@ export const ServerSessionsApiFactory = function (configuration?: Configuration,
8023
8044
  const localVarFp = ServerSessionsApiFp(configuration)
8024
8045
  return {
8025
8046
  /**
8026
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
8047
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
8027
8048
  * @summary Send a heartbeat
8028
8049
  * @param {string} id Session UUID returned from the registration call
8050
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
8029
8051
  * @param {*} [options] Override http request option.
8030
8052
  * @throws {RequiredError}
8031
8053
  */
8032
- heartbeat(id: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
8033
- return localVarFp.heartbeat(id, options).then((request) => request(axios, basePath));
8054
+ heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig): AxiosPromise<void> {
8055
+ return localVarFp.heartbeat(id, serverHeartbeatRequest, options).then((request) => request(axios, basePath));
8034
8056
  },
8035
8057
  /**
8036
8058
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
@@ -8078,14 +8100,15 @@ export const ServerSessionsApiFactory = function (configuration?: Configuration,
8078
8100
  */
8079
8101
  export class ServerSessionsApi extends BaseAPI {
8080
8102
  /**
8081
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
8103
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
8082
8104
  * @summary Send a heartbeat
8083
8105
  * @param {string} id Session UUID returned from the registration call
8106
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
8084
8107
  * @param {*} [options] Override http request option.
8085
8108
  * @throws {RequiredError}
8086
8109
  */
8087
- public heartbeat(id: string, options?: RawAxiosRequestConfig) {
8088
- return ServerSessionsApiFp(this.configuration).heartbeat(id, options).then((request) => request(this.axios, this.basePath));
8110
+ public heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig) {
8111
+ return ServerSessionsApiFp(this.configuration).heartbeat(id, serverHeartbeatRequest, options).then((request) => request(this.axios, this.basePath));
8089
8112
  }
8090
8113
 
8091
8114
  /**
package/base.ts 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.6.0
7
+ * The version of the OpenAPI document: 4.8.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/common.ts 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.6.0
7
+ * The version of the OpenAPI document: 4.8.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/configuration.ts CHANGED
@@ -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.6.0
6
+ * The version of the OpenAPI document: 4.8.0
7
7
  *
8
8
  *
9
9
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/api.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.6.0
5
+ * The version of the OpenAPI document: 4.8.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -100,6 +100,10 @@ export interface AdminAltGraphEdge {
100
100
  * Number of distinct non-promiscuous connections these two players share. Drives edge thickness.
101
101
  */
102
102
  'sharedConnectionCount': number;
103
+ /**
104
+ * The distinct IP addresses the two players share — the address(es) this edge represents. Same cardinality as sharedConnectionCount.
105
+ */
106
+ 'sharedIpAddresses': Array<string>;
103
107
  }
104
108
  /**
105
109
  * One player node in an alt-graph traversal.
@@ -755,6 +759,10 @@ export interface AdminPlayerSession {
755
759
  * Closed session duration in seconds (ended_at − started_at). Null while active.
756
760
  */
757
761
  'durationSeconds'?: number | null;
762
+ /**
763
+ * When the player transferred to another server, the id of the session they moved to. Null for a normal disconnect or an active session.
764
+ */
765
+ 'transferredTo'?: string | null;
758
766
  }
759
767
  /**
760
768
  * Aggregate session statistics for one player. Computed on demand from player_session.
@@ -1737,6 +1745,15 @@ export declare const SearchKind: {
1737
1745
  readonly Ip: "IP";
1738
1746
  };
1739
1747
  export type SearchKind = typeof SearchKind[keyof typeof SearchKind];
1748
+ /**
1749
+ * Optional heartbeat payload carrying the players currently on this server session.
1750
+ */
1751
+ export interface ServerHeartbeatRequest {
1752
+ /**
1753
+ * UUIDs of players currently on this server session. Open sessions for this server whose player is absent from this list are auto-closed. Omit to heartbeat without reconciling player sessions.
1754
+ */
1755
+ 'activePlayers'?: Array<string> | null;
1756
+ }
1740
1757
  export interface ServerRegisterRequest {
1741
1758
  'region': Region;
1742
1759
  'gameType': GameType;
@@ -4546,13 +4563,14 @@ export declare class ReportApi extends BaseAPI {
4546
4563
  */
4547
4564
  export declare const ServerSessionsApiAxiosParamCreator: (configuration?: Configuration) => {
4548
4565
  /**
4549
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
4566
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
4550
4567
  * @summary Send a heartbeat
4551
4568
  * @param {string} id Session UUID returned from the registration call
4569
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
4552
4570
  * @param {*} [options] Override http request option.
4553
4571
  * @throws {RequiredError}
4554
4572
  */
4555
- heartbeat: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
4573
+ heartbeat: (id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
4556
4574
  /**
4557
4575
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
4558
4576
  * @summary List all server sessions
@@ -4589,13 +4607,14 @@ export declare const ServerSessionsApiAxiosParamCreator: (configuration?: Config
4589
4607
  */
4590
4608
  export declare const ServerSessionsApiFp: (configuration?: Configuration) => {
4591
4609
  /**
4592
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
4610
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
4593
4611
  * @summary Send a heartbeat
4594
4612
  * @param {string} id Session UUID returned from the registration call
4613
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
4595
4614
  * @param {*} [options] Override http request option.
4596
4615
  * @throws {RequiredError}
4597
4616
  */
4598
- heartbeat(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
4617
+ heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
4599
4618
  /**
4600
4619
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
4601
4620
  * @summary List all server sessions
@@ -4632,13 +4651,14 @@ export declare const ServerSessionsApiFp: (configuration?: Configuration) => {
4632
4651
  */
4633
4652
  export declare const ServerSessionsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
4634
4653
  /**
4635
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
4654
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
4636
4655
  * @summary Send a heartbeat
4637
4656
  * @param {string} id Session UUID returned from the registration call
4657
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
4638
4658
  * @param {*} [options] Override http request option.
4639
4659
  * @throws {RequiredError}
4640
4660
  */
4641
- heartbeat(id: string, options?: RawAxiosRequestConfig): AxiosPromise<void>;
4661
+ heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
4642
4662
  /**
4643
4663
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
4644
4664
  * @summary List all server sessions
@@ -4675,13 +4695,14 @@ export declare const ServerSessionsApiFactory: (configuration?: Configuration, b
4675
4695
  */
4676
4696
  export declare class ServerSessionsApi extends BaseAPI {
4677
4697
  /**
4678
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
4698
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
4679
4699
  * @summary Send a heartbeat
4680
4700
  * @param {string} id Session UUID returned from the registration call
4701
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
4681
4702
  * @param {*} [options] Override http request option.
4682
4703
  * @throws {RequiredError}
4683
4704
  */
4684
- heartbeat(id: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
4705
+ heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
4685
4706
  /**
4686
4707
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
4687
4708
  * @summary List all server sessions
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.6.0
8
+ * The version of the OpenAPI document: 4.8.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5589,13 +5589,14 @@ exports.ReportApi = ReportApi;
5589
5589
  const ServerSessionsApiAxiosParamCreator = function (configuration) {
5590
5590
  return {
5591
5591
  /**
5592
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
5592
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
5593
5593
  * @summary Send a heartbeat
5594
5594
  * @param {string} id Session UUID returned from the registration call
5595
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
5595
5596
  * @param {*} [options] Override http request option.
5596
5597
  * @throws {RequiredError}
5597
5598
  */
5598
- heartbeat: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
5599
+ heartbeat: (id_1, serverHeartbeatRequest_1, ...args_1) => __awaiter(this, [id_1, serverHeartbeatRequest_1, ...args_1], void 0, function* (id, serverHeartbeatRequest, options = {}) {
5599
5600
  // verify required parameter 'id' is not null or undefined
5600
5601
  (0, common_1.assertParamExists)('heartbeat', 'id', id);
5601
5602
  const localVarPath = `/v1/servers/{id}/heartbeat`
@@ -5612,9 +5613,11 @@ const ServerSessionsApiAxiosParamCreator = function (configuration) {
5612
5613
  // authentication DiscordAuth required
5613
5614
  // http bearer authentication required
5614
5615
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
5616
+ localVarHeaderParameter['Content-Type'] = 'application/json';
5615
5617
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
5616
5618
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
5617
5619
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
5620
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serverHeartbeatRequest, localVarRequestOptions, configuration);
5618
5621
  return {
5619
5622
  url: (0, common_1.toPathString)(localVarUrlObj),
5620
5623
  options: localVarRequestOptions,
@@ -5754,16 +5757,17 @@ const ServerSessionsApiFp = function (configuration) {
5754
5757
  const localVarAxiosParamCreator = (0, exports.ServerSessionsApiAxiosParamCreator)(configuration);
5755
5758
  return {
5756
5759
  /**
5757
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
5760
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
5758
5761
  * @summary Send a heartbeat
5759
5762
  * @param {string} id Session UUID returned from the registration call
5763
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
5760
5764
  * @param {*} [options] Override http request option.
5761
5765
  * @throws {RequiredError}
5762
5766
  */
5763
- heartbeat(id, options) {
5767
+ heartbeat(id, serverHeartbeatRequest, options) {
5764
5768
  return __awaiter(this, void 0, void 0, function* () {
5765
5769
  var _a, _b, _c;
5766
- const localVarAxiosArgs = yield localVarAxiosParamCreator.heartbeat(id, options);
5770
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.heartbeat(id, serverHeartbeatRequest, options);
5767
5771
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
5768
5772
  const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['ServerSessionsApi.heartbeat']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
5769
5773
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -5841,14 +5845,15 @@ const ServerSessionsApiFactory = function (configuration, basePath, axios) {
5841
5845
  const localVarFp = (0, exports.ServerSessionsApiFp)(configuration);
5842
5846
  return {
5843
5847
  /**
5844
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
5848
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
5845
5849
  * @summary Send a heartbeat
5846
5850
  * @param {string} id Session UUID returned from the registration call
5851
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
5847
5852
  * @param {*} [options] Override http request option.
5848
5853
  * @throws {RequiredError}
5849
5854
  */
5850
- heartbeat(id, options) {
5851
- return localVarFp.heartbeat(id, options).then((request) => request(axios, basePath));
5855
+ heartbeat(id, serverHeartbeatRequest, options) {
5856
+ return localVarFp.heartbeat(id, serverHeartbeatRequest, options).then((request) => request(axios, basePath));
5852
5857
  },
5853
5858
  /**
5854
5859
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
@@ -5896,14 +5901,15 @@ exports.ServerSessionsApiFactory = ServerSessionsApiFactory;
5896
5901
  */
5897
5902
  class ServerSessionsApi extends base_1.BaseAPI {
5898
5903
  /**
5899
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
5904
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
5900
5905
  * @summary Send a heartbeat
5901
5906
  * @param {string} id Session UUID returned from the registration call
5907
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
5902
5908
  * @param {*} [options] Override http request option.
5903
5909
  * @throws {RequiredError}
5904
5910
  */
5905
- heartbeat(id, options) {
5906
- return (0, exports.ServerSessionsApiFp)(this.configuration).heartbeat(id, options).then((request) => request(this.axios, this.basePath));
5911
+ heartbeat(id, serverHeartbeatRequest, options) {
5912
+ return (0, exports.ServerSessionsApiFp)(this.configuration).heartbeat(id, serverHeartbeatRequest, options).then((request) => request(this.axios, this.basePath));
5907
5913
  }
5908
5914
  /**
5909
5915
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
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.6.0
5
+ * The version of the OpenAPI document: 4.8.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.6.0
8
+ * The version of the OpenAPI document: 4.8.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.6.0
5
+ * The version of the OpenAPI document: 4.8.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.6.0
8
+ * The version of the OpenAPI document: 4.8.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.6.0
5
+ * The version of the OpenAPI document: 4.8.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.6.0
7
+ * The version of the OpenAPI document: 4.8.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/api.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.6.0
5
+ * The version of the OpenAPI document: 4.8.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -100,6 +100,10 @@ export interface AdminAltGraphEdge {
100
100
  * Number of distinct non-promiscuous connections these two players share. Drives edge thickness.
101
101
  */
102
102
  'sharedConnectionCount': number;
103
+ /**
104
+ * The distinct IP addresses the two players share — the address(es) this edge represents. Same cardinality as sharedConnectionCount.
105
+ */
106
+ 'sharedIpAddresses': Array<string>;
103
107
  }
104
108
  /**
105
109
  * One player node in an alt-graph traversal.
@@ -755,6 +759,10 @@ export interface AdminPlayerSession {
755
759
  * Closed session duration in seconds (ended_at − started_at). Null while active.
756
760
  */
757
761
  'durationSeconds'?: number | null;
762
+ /**
763
+ * When the player transferred to another server, the id of the session they moved to. Null for a normal disconnect or an active session.
764
+ */
765
+ 'transferredTo'?: string | null;
758
766
  }
759
767
  /**
760
768
  * Aggregate session statistics for one player. Computed on demand from player_session.
@@ -1737,6 +1745,15 @@ export declare const SearchKind: {
1737
1745
  readonly Ip: "IP";
1738
1746
  };
1739
1747
  export type SearchKind = typeof SearchKind[keyof typeof SearchKind];
1748
+ /**
1749
+ * Optional heartbeat payload carrying the players currently on this server session.
1750
+ */
1751
+ export interface ServerHeartbeatRequest {
1752
+ /**
1753
+ * UUIDs of players currently on this server session. Open sessions for this server whose player is absent from this list are auto-closed. Omit to heartbeat without reconciling player sessions.
1754
+ */
1755
+ 'activePlayers'?: Array<string> | null;
1756
+ }
1740
1757
  export interface ServerRegisterRequest {
1741
1758
  'region': Region;
1742
1759
  'gameType': GameType;
@@ -4546,13 +4563,14 @@ export declare class ReportApi extends BaseAPI {
4546
4563
  */
4547
4564
  export declare const ServerSessionsApiAxiosParamCreator: (configuration?: Configuration) => {
4548
4565
  /**
4549
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
4566
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
4550
4567
  * @summary Send a heartbeat
4551
4568
  * @param {string} id Session UUID returned from the registration call
4569
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
4552
4570
  * @param {*} [options] Override http request option.
4553
4571
  * @throws {RequiredError}
4554
4572
  */
4555
- heartbeat: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
4573
+ heartbeat: (id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
4556
4574
  /**
4557
4575
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
4558
4576
  * @summary List all server sessions
@@ -4589,13 +4607,14 @@ export declare const ServerSessionsApiAxiosParamCreator: (configuration?: Config
4589
4607
  */
4590
4608
  export declare const ServerSessionsApiFp: (configuration?: Configuration) => {
4591
4609
  /**
4592
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
4610
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
4593
4611
  * @summary Send a heartbeat
4594
4612
  * @param {string} id Session UUID returned from the registration call
4613
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
4595
4614
  * @param {*} [options] Override http request option.
4596
4615
  * @throws {RequiredError}
4597
4616
  */
4598
- heartbeat(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
4617
+ heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
4599
4618
  /**
4600
4619
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
4601
4620
  * @summary List all server sessions
@@ -4632,13 +4651,14 @@ export declare const ServerSessionsApiFp: (configuration?: Configuration) => {
4632
4651
  */
4633
4652
  export declare const ServerSessionsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
4634
4653
  /**
4635
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
4654
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
4636
4655
  * @summary Send a heartbeat
4637
4656
  * @param {string} id Session UUID returned from the registration call
4657
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
4638
4658
  * @param {*} [options] Override http request option.
4639
4659
  * @throws {RequiredError}
4640
4660
  */
4641
- heartbeat(id: string, options?: RawAxiosRequestConfig): AxiosPromise<void>;
4661
+ heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
4642
4662
  /**
4643
4663
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
4644
4664
  * @summary List all server sessions
@@ -4675,13 +4695,14 @@ export declare const ServerSessionsApiFactory: (configuration?: Configuration, b
4675
4695
  */
4676
4696
  export declare class ServerSessionsApi extends BaseAPI {
4677
4697
  /**
4678
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
4698
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
4679
4699
  * @summary Send a heartbeat
4680
4700
  * @param {string} id Session UUID returned from the registration call
4701
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
4681
4702
  * @param {*} [options] Override http request option.
4682
4703
  * @throws {RequiredError}
4683
4704
  */
4684
- heartbeat(id: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
4705
+ heartbeat(id: string, serverHeartbeatRequest?: ServerHeartbeatRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
4685
4706
  /**
4686
4707
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
4687
4708
  * @summary List all server sessions
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.6.0
7
+ * The version of the OpenAPI document: 4.8.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5525,13 +5525,14 @@ export class ReportApi extends BaseAPI {
5525
5525
  export const ServerSessionsApiAxiosParamCreator = function (configuration) {
5526
5526
  return {
5527
5527
  /**
5528
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
5528
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
5529
5529
  * @summary Send a heartbeat
5530
5530
  * @param {string} id Session UUID returned from the registration call
5531
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
5531
5532
  * @param {*} [options] Override http request option.
5532
5533
  * @throws {RequiredError}
5533
5534
  */
5534
- heartbeat: (id_1, ...args_1) => __awaiter(this, [id_1, ...args_1], void 0, function* (id, options = {}) {
5535
+ heartbeat: (id_1, serverHeartbeatRequest_1, ...args_1) => __awaiter(this, [id_1, serverHeartbeatRequest_1, ...args_1], void 0, function* (id, serverHeartbeatRequest, options = {}) {
5535
5536
  // verify required parameter 'id' is not null or undefined
5536
5537
  assertParamExists('heartbeat', 'id', id);
5537
5538
  const localVarPath = `/v1/servers/{id}/heartbeat`
@@ -5548,9 +5549,11 @@ export const ServerSessionsApiAxiosParamCreator = function (configuration) {
5548
5549
  // authentication DiscordAuth required
5549
5550
  // http bearer authentication required
5550
5551
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
5552
+ localVarHeaderParameter['Content-Type'] = 'application/json';
5551
5553
  setSearchParams(localVarUrlObj, localVarQueryParameter);
5552
5554
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
5553
5555
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
5556
+ localVarRequestOptions.data = serializeDataIfNeeded(serverHeartbeatRequest, localVarRequestOptions, configuration);
5554
5557
  return {
5555
5558
  url: toPathString(localVarUrlObj),
5556
5559
  options: localVarRequestOptions,
@@ -5689,16 +5692,17 @@ export const ServerSessionsApiFp = function (configuration) {
5689
5692
  const localVarAxiosParamCreator = ServerSessionsApiAxiosParamCreator(configuration);
5690
5693
  return {
5691
5694
  /**
5692
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
5695
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
5693
5696
  * @summary Send a heartbeat
5694
5697
  * @param {string} id Session UUID returned from the registration call
5698
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
5695
5699
  * @param {*} [options] Override http request option.
5696
5700
  * @throws {RequiredError}
5697
5701
  */
5698
- heartbeat(id, options) {
5702
+ heartbeat(id, serverHeartbeatRequest, options) {
5699
5703
  return __awaiter(this, void 0, void 0, function* () {
5700
5704
  var _a, _b, _c;
5701
- const localVarAxiosArgs = yield localVarAxiosParamCreator.heartbeat(id, options);
5705
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.heartbeat(id, serverHeartbeatRequest, options);
5702
5706
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
5703
5707
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['ServerSessionsApi.heartbeat']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
5704
5708
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -5775,14 +5779,15 @@ export const ServerSessionsApiFactory = function (configuration, basePath, axios
5775
5779
  const localVarFp = ServerSessionsApiFp(configuration);
5776
5780
  return {
5777
5781
  /**
5778
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
5782
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
5779
5783
  * @summary Send a heartbeat
5780
5784
  * @param {string} id Session UUID returned from the registration call
5785
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
5781
5786
  * @param {*} [options] Override http request option.
5782
5787
  * @throws {RequiredError}
5783
5788
  */
5784
- heartbeat(id, options) {
5785
- return localVarFp.heartbeat(id, options).then((request) => request(axios, basePath));
5789
+ heartbeat(id, serverHeartbeatRequest, options) {
5790
+ return localVarFp.heartbeat(id, serverHeartbeatRequest, options).then((request) => request(axios, basePath));
5786
5791
  },
5787
5792
  /**
5788
5793
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
@@ -5829,14 +5834,15 @@ export const ServerSessionsApiFactory = function (configuration, basePath, axios
5829
5834
  */
5830
5835
  export class ServerSessionsApi extends BaseAPI {
5831
5836
  /**
5832
- * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
5837
+ * Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
5833
5838
  * @summary Send a heartbeat
5834
5839
  * @param {string} id Session UUID returned from the registration call
5840
+ * @param {ServerHeartbeatRequest} [serverHeartbeatRequest]
5835
5841
  * @param {*} [options] Override http request option.
5836
5842
  * @throws {RequiredError}
5837
5843
  */
5838
- heartbeat(id, options) {
5839
- return ServerSessionsApiFp(this.configuration).heartbeat(id, options).then((request) => request(this.axios, this.basePath));
5844
+ heartbeat(id, serverHeartbeatRequest, options) {
5845
+ return ServerSessionsApiFp(this.configuration).heartbeat(id, serverHeartbeatRequest, options).then((request) => request(this.axios, this.basePath));
5840
5846
  }
5841
5847
  /**
5842
5848
  * Returns all server sessions — both online and historical — ordered by start time descending. Used by the web UI to populate the session filter dropdown.
@@ -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.6.0
5
+ * The version of the OpenAPI document: 4.8.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.6.0
7
+ * The version of the OpenAPI document: 4.8.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.6.0
5
+ * The version of the OpenAPI document: 4.8.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.6.0
7
+ * The version of the OpenAPI document: 4.8.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.6.0
5
+ * The version of the OpenAPI document: 4.8.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.6.0
6
+ * The version of the OpenAPI document: 4.8.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.6.0
5
+ * The version of the OpenAPI document: 4.8.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.6.0
7
+ * The version of the OpenAPI document: 4.8.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.6.0
5
+ * The version of the OpenAPI document: 4.8.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.6.0
8
+ * The version of the OpenAPI document: 4.8.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
9
9
  **fromUuid** | **string** | One endpoint of the edge | [default to undefined]
10
10
  **toUuid** | **string** | Other endpoint of the edge. The pair is emitted only once — the SQL ensures fromUuid &lt; toUuid lexicographically. | [default to undefined]
11
11
  **sharedConnectionCount** | **number** | Number of distinct non-promiscuous connections these two players share. Drives edge thickness. | [default to undefined]
12
+ **sharedIpAddresses** | **Array&lt;string&gt;** | The distinct IP addresses the two players share — the address(es) this edge represents. Same cardinality as sharedConnectionCount. | [default to undefined]
12
13
 
13
14
  ## Example
14
15
 
@@ -19,6 +20,7 @@ const instance: AdminAltGraphEdge = {
19
20
  fromUuid,
20
21
  toUuid,
21
22
  sharedConnectionCount,
23
+ sharedIpAddresses,
22
24
  };
23
25
  ```
24
26
 
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
12
12
  **startedAt** | **string** | When the player joined (ISO-8601) | [default to undefined]
13
13
  **endedAt** | **string** | When the player disconnected (ISO-8601). Null while the session is still active. | [optional] [default to undefined]
14
14
  **durationSeconds** | **number** | Closed session duration in seconds (ended_at − started_at). Null while active. | [optional] [default to undefined]
15
+ **transferredTo** | **string** | When the player transferred to another server, the id of the session they moved to. Null for a normal disconnect or an active session. | [optional] [default to undefined]
15
16
 
16
17
  ## Example
17
18
 
@@ -25,6 +26,7 @@ const instance: AdminPlayerSession = {
25
26
  startedAt,
26
27
  endedAt,
27
28
  durationSeconds,
29
+ transferredTo,
28
30
  };
29
31
  ```
30
32
 
@@ -0,0 +1,21 @@
1
+ # ServerHeartbeatRequest
2
+
3
+ Optional heartbeat payload carrying the players currently on this server session.
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **activePlayers** | **Array&lt;string&gt;** | UUIDs of players currently on this server session. Open sessions for this server whose player is absent from this list are auto-closed. Omit to heartbeat without reconciling player sessions. | [optional] [default to undefined]
10
+
11
+ ## Example
12
+
13
+ ```typescript
14
+ import { ServerHeartbeatRequest } from '@rebornteam/reborn-api';
15
+
16
+ const instance: ServerHeartbeatRequest = {
17
+ activePlayers,
18
+ };
19
+ ```
20
+
21
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -13,23 +13,26 @@ All URIs are relative to *https://api.smsh.sh*
13
13
  # **heartbeat**
14
14
  > heartbeat()
15
15
 
16
- Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server.
16
+ Updates the `last_heartbeat` timestamp for the given session, keeping it marked as online. Sessions that miss heartbeats for more than 2 minutes are automatically tombstoned by the scheduler. Call this every 30 seconds from the game server. Optionally include an `activePlayers` list (the UUIDs currently on this server). When present, the API reconciles player sessions for this server: any open session whose player is absent from the list is closed, and linked to the player\'s new session if they transferred to another server. Omit the body for a plain liveness heartbeat.
17
17
 
18
18
  ### Example
19
19
 
20
20
  ```typescript
21
21
  import {
22
22
  ServerSessionsApi,
23
- Configuration
23
+ Configuration,
24
+ ServerHeartbeatRequest
24
25
  } from '@rebornteam/reborn-api';
25
26
 
26
27
  const configuration = new Configuration();
27
28
  const apiInstance = new ServerSessionsApi(configuration);
28
29
 
29
30
  let id: string; //Session UUID returned from the registration call (default to undefined)
31
+ let serverHeartbeatRequest: ServerHeartbeatRequest; // (optional)
30
32
 
31
33
  const { status, data } = await apiInstance.heartbeat(
32
- id
34
+ id,
35
+ serverHeartbeatRequest
33
36
  );
34
37
  ```
35
38
 
@@ -37,6 +40,7 @@ const { status, data } = await apiInstance.heartbeat(
37
40
 
38
41
  |Name | Type | Description | Notes|
39
42
  |------------- | ------------- | ------------- | -------------|
43
+ | **serverHeartbeatRequest** | **ServerHeartbeatRequest**| | |
40
44
  | **id** | [**string**] | Session UUID returned from the registration call | defaults to undefined|
41
45
 
42
46
 
@@ -50,7 +54,7 @@ void (empty response body)
50
54
 
51
55
  ### HTTP request headers
52
56
 
53
- - **Content-Type**: Not defined
57
+ - **Content-Type**: application/json
54
58
  - **Accept**: Not defined
55
59
 
56
60
 
package/index.ts 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.6.0
7
+ * The version of the OpenAPI document: 4.8.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rebornteam/reborn-api",
3
- "version": "4.6.0",
3
+ "version": "4.8.0",
4
4
  "description": "OpenAPI client for @rebornteam/reborn-api",
5
5
  "author": "OpenAPI-Generator Contributors",
6
6
  "repository": {