@game-infra/api-schemas-core 0.0.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/README.md +62 -0
- package/dist/aiProvider.d.ts +23 -0
- package/dist/aiProvider.d.ts.map +1 -0
- package/dist/aiProvider.js +23 -0
- package/dist/aiProvider.js.map +1 -0
- package/dist/apiConfig.d.ts +49 -0
- package/dist/apiConfig.d.ts.map +1 -0
- package/dist/apiConfig.js +39 -0
- package/dist/apiConfig.js.map +1 -0
- package/dist/auth.d.ts +92 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +66 -0
- package/dist/auth.js.map +1 -0
- package/dist/backup.d.ts +82 -0
- package/dist/backup.d.ts.map +1 -0
- package/dist/backup.js +51 -0
- package/dist/backup.js.map +1 -0
- package/dist/common.d.ts +36 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +37 -0
- package/dist/common.js.map +1 -0
- package/dist/contracts.d.ts +420 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +168 -0
- package/dist/contracts.js.map +1 -0
- package/dist/feedback.d.ts +36 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/feedback.js +28 -0
- package/dist/feedback.js.map +1 -0
- package/dist/gameEntity.d.ts +87 -0
- package/dist/gameEntity.d.ts.map +1 -0
- package/dist/gameEntity.js +64 -0
- package/dist/gameEntity.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/savegame.d.ts +55 -0
- package/dist/savegame.d.ts.map +1 -0
- package/dist/savegame.js +38 -0
- package/dist/savegame.js.map +1 -0
- package/package.json +39 -0
package/dist/feedback.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { object, optional, string, picklist, pipe, minLength, maxLength, email, } from "valibot";
|
|
2
|
+
import { createSuccessResponseSchema } from "./common.js";
|
|
3
|
+
/**
|
|
4
|
+
* Feedback type enum
|
|
5
|
+
*/
|
|
6
|
+
export const FeedbackType = {
|
|
7
|
+
BUG: "bug",
|
|
8
|
+
SUGGESTION: "suggestion",
|
|
9
|
+
GENERAL: "general",
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Feedback submit request schema
|
|
13
|
+
*/
|
|
14
|
+
export const FeedbackSubmitRequestSchema = object({
|
|
15
|
+
type: picklist(Object.values(FeedbackType)),
|
|
16
|
+
content: pipe(string(), minLength(1), maxLength(5000)),
|
|
17
|
+
email: optional(pipe(string(), email())),
|
|
18
|
+
gameVersion: optional(string()),
|
|
19
|
+
browser: optional(string()),
|
|
20
|
+
platform: optional(string()),
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Feedback submit response schema
|
|
24
|
+
*/
|
|
25
|
+
export const FeedbackSubmitResponseSchema = createSuccessResponseSchema({
|
|
26
|
+
message: optional(string()),
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,SAAS,EACT,KAAK,GACN,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;CACV,CAAC;AAOX;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;IAChD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;IACtE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { type InferOutput } from "valibot";
|
|
2
|
+
/**
|
|
3
|
+
* Game entity save request schema
|
|
4
|
+
* Used for creating or updating a game entity
|
|
5
|
+
*/
|
|
6
|
+
export declare const GameEntitySaveRequestSchema: import("valibot").ObjectSchema<{
|
|
7
|
+
readonly entityId: import("valibot").StringSchema<undefined>;
|
|
8
|
+
readonly entityType: import("valibot").StringSchema<undefined>;
|
|
9
|
+
readonly entityData: import("valibot").StringSchema<undefined>;
|
|
10
|
+
}, undefined>;
|
|
11
|
+
export type GameEntitySaveRequest = InferOutput<typeof GameEntitySaveRequestSchema>;
|
|
12
|
+
/**
|
|
13
|
+
* Game entity save response schema
|
|
14
|
+
*/
|
|
15
|
+
export declare const GameEntitySaveResponseSchema: import("valibot").ObjectSchema<{
|
|
16
|
+
readonly success: import("valibot").BooleanSchema<undefined>;
|
|
17
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
18
|
+
} & {
|
|
19
|
+
entityId: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
20
|
+
}, undefined>;
|
|
21
|
+
export type GameEntitySaveResponse = InferOutput<typeof GameEntitySaveResponseSchema>;
|
|
22
|
+
/**
|
|
23
|
+
* Game entity load response schema
|
|
24
|
+
*/
|
|
25
|
+
export declare const GameEntityLoadResponseSchema: import("valibot").ObjectSchema<{
|
|
26
|
+
readonly success: import("valibot").BooleanSchema<undefined>;
|
|
27
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
28
|
+
} & {
|
|
29
|
+
entityId: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
30
|
+
entityType: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
31
|
+
entityData: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
32
|
+
updatedAt: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
33
|
+
}, undefined>;
|
|
34
|
+
export type GameEntityLoadResponse = InferOutput<typeof GameEntityLoadResponseSchema>;
|
|
35
|
+
/**
|
|
36
|
+
* Game entity info (for list responses)
|
|
37
|
+
*/
|
|
38
|
+
export declare const GameEntityInfoSchema: import("valibot").ObjectSchema<{
|
|
39
|
+
readonly entityId: import("valibot").StringSchema<undefined>;
|
|
40
|
+
readonly entityType: import("valibot").StringSchema<undefined>;
|
|
41
|
+
readonly updatedAt: import("valibot").StringSchema<undefined>;
|
|
42
|
+
}, undefined>;
|
|
43
|
+
export type GameEntityInfo = InferOutput<typeof GameEntityInfoSchema>;
|
|
44
|
+
/**
|
|
45
|
+
* Game entity list response schema
|
|
46
|
+
*/
|
|
47
|
+
export declare const GameEntityListResponseSchema: import("valibot").ObjectSchema<{
|
|
48
|
+
readonly success: import("valibot").BooleanSchema<undefined>;
|
|
49
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
50
|
+
} & {
|
|
51
|
+
entities: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
52
|
+
readonly entityId: import("valibot").StringSchema<undefined>;
|
|
53
|
+
readonly entityType: import("valibot").StringSchema<undefined>;
|
|
54
|
+
readonly updatedAt: import("valibot").StringSchema<undefined>;
|
|
55
|
+
}, undefined>, undefined>, undefined>;
|
|
56
|
+
}, undefined>;
|
|
57
|
+
export type GameEntityListResponse = InferOutput<typeof GameEntityListResponseSchema>;
|
|
58
|
+
/**
|
|
59
|
+
* Game entity delete response schema
|
|
60
|
+
*/
|
|
61
|
+
export declare const GameEntityDeleteResponseSchema: import("valibot").ObjectSchema<{
|
|
62
|
+
readonly success: import("valibot").BooleanSchema<undefined>;
|
|
63
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
64
|
+
}, undefined>;
|
|
65
|
+
export type GameEntityDeleteResponse = InferOutput<typeof GameEntityDeleteResponseSchema>;
|
|
66
|
+
/**
|
|
67
|
+
* Bulk save request - save multiple entities at once
|
|
68
|
+
*/
|
|
69
|
+
export declare const GameEntityBulkSaveRequestSchema: import("valibot").ObjectSchema<{
|
|
70
|
+
readonly entities: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
71
|
+
readonly entityId: import("valibot").StringSchema<undefined>;
|
|
72
|
+
readonly entityType: import("valibot").StringSchema<undefined>;
|
|
73
|
+
readonly entityData: import("valibot").StringSchema<undefined>;
|
|
74
|
+
}, undefined>, undefined>;
|
|
75
|
+
}, undefined>;
|
|
76
|
+
export type GameEntityBulkSaveRequest = InferOutput<typeof GameEntityBulkSaveRequestSchema>;
|
|
77
|
+
/**
|
|
78
|
+
* Bulk save response
|
|
79
|
+
*/
|
|
80
|
+
export declare const GameEntityBulkSaveResponseSchema: import("valibot").ObjectSchema<{
|
|
81
|
+
readonly success: import("valibot").BooleanSchema<undefined>;
|
|
82
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
83
|
+
} & {
|
|
84
|
+
savedCount: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
85
|
+
}, undefined>;
|
|
86
|
+
export type GameEntityBulkSaveResponse = InferOutput<typeof GameEntityBulkSaveResponseSchema>;
|
|
87
|
+
//# sourceMappingURL=gameEntity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gameEntity.d.ts","sourceRoot":"","sources":["../src/gameEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAmC,MAAM,SAAS,CAAC;AAO5E;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;aAItC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;aAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;aAKvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;aAI/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;aAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;aAAkC,CAAC;AAE9E,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE1F;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;;;;aAQ1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAE5F;;GAEG;AACH,eAAO,MAAM,gCAAgC;;;;;aAE3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { object, optional, string, array } from "valibot";
|
|
2
|
+
import { createSuccessResponseSchema } from "./common.js";
|
|
3
|
+
// NOTE: the game-specific `EntityTypes` const (spell/item/persona/secret) was
|
|
4
|
+
// intentionally dropped during the game-infra extraction. `entityType` is a
|
|
5
|
+
// plain `string()` in every schema below; games re-tighten it via config.
|
|
6
|
+
/**
|
|
7
|
+
* Game entity save request schema
|
|
8
|
+
* Used for creating or updating a game entity
|
|
9
|
+
*/
|
|
10
|
+
export const GameEntitySaveRequestSchema = object({
|
|
11
|
+
entityId: string(),
|
|
12
|
+
entityType: string(),
|
|
13
|
+
entityData: string(), // JSON string of the entity
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Game entity save response schema
|
|
17
|
+
*/
|
|
18
|
+
export const GameEntitySaveResponseSchema = createSuccessResponseSchema({
|
|
19
|
+
entityId: optional(string()),
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Game entity load response schema
|
|
23
|
+
*/
|
|
24
|
+
export const GameEntityLoadResponseSchema = createSuccessResponseSchema({
|
|
25
|
+
entityId: optional(string()),
|
|
26
|
+
entityType: optional(string()),
|
|
27
|
+
entityData: optional(string()),
|
|
28
|
+
updatedAt: optional(string()),
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Game entity info (for list responses)
|
|
32
|
+
*/
|
|
33
|
+
export const GameEntityInfoSchema = object({
|
|
34
|
+
entityId: string(),
|
|
35
|
+
entityType: string(),
|
|
36
|
+
updatedAt: string(),
|
|
37
|
+
});
|
|
38
|
+
/**
|
|
39
|
+
* Game entity list response schema
|
|
40
|
+
*/
|
|
41
|
+
export const GameEntityListResponseSchema = createSuccessResponseSchema({
|
|
42
|
+
entities: optional(array(GameEntityInfoSchema)),
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* Game entity delete response schema
|
|
46
|
+
*/
|
|
47
|
+
export const GameEntityDeleteResponseSchema = createSuccessResponseSchema({});
|
|
48
|
+
/**
|
|
49
|
+
* Bulk save request - save multiple entities at once
|
|
50
|
+
*/
|
|
51
|
+
export const GameEntityBulkSaveRequestSchema = object({
|
|
52
|
+
entities: array(object({
|
|
53
|
+
entityId: string(),
|
|
54
|
+
entityType: string(),
|
|
55
|
+
entityData: string(),
|
|
56
|
+
})),
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Bulk save response
|
|
60
|
+
*/
|
|
61
|
+
export const GameEntityBulkSaveResponseSchema = createSuccessResponseSchema({
|
|
62
|
+
savedCount: optional(string()),
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=gameEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gameEntity.js","sourceRoot":"","sources":["../src/gameEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAE1E;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;IAChD,QAAQ,EAAE,MAAM,EAAE;IAClB,UAAU,EAAE,MAAM,EAAE;IACpB,UAAU,EAAE,MAAM,EAAE,EAAE,4BAA4B;CACnD,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;IACtE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;IACtE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;IACzC,QAAQ,EAAE,MAAM,EAAE;IAClB,UAAU,EAAE,MAAM,EAAE;IACpB,SAAS,EAAE,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;IACtE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;CAChD,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;AAI9E;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC;IACpD,QAAQ,EAAE,KAAK,CACb,MAAM,CAAC;QACL,QAAQ,EAAE,MAAM,EAAE;QAClB,UAAU,EAAE,MAAM,EAAE;QACpB,UAAU,EAAE,MAAM,EAAE;KACrB,CAAC,CACH;CACF,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,2BAA2B,CAAC;IAC1E,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC/B,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { ApiResponseSchema, createSuccessResponseSchema, TimestampFieldsSchema, EntityMetadataSchema, } from "./common.js";
|
|
2
|
+
export type { ApiResponse, TimestampFields, EntityMetadata } from "./common.js";
|
|
3
|
+
export { AI_PROVIDERS, AIProviderSchema } from "./aiProvider.js";
|
|
4
|
+
export type { AIProviderType } from "./aiProvider.js";
|
|
5
|
+
export { AuthValidation, RegisterRequestSchema, AuthResponseFieldsSchema, RegisterResponseSchema, LoginRequestSchema, LoginResponseSchema, ValidateTokenRequestSchema, ValidateTokenResponseSchema, ValidateServiceTokenResponseSchema, } from "./auth.js";
|
|
6
|
+
export type { RegisterRequest, RegisterResponse, LoginRequest, LoginResponse, ValidateTokenRequest, ValidateTokenResponse, ValidateServiceTokenResponse, } from "./auth.js";
|
|
7
|
+
export { BackupInfoSchema, TriggerBackupResponseSchema, ListBackupsResponseSchema, RestoreBackupRequestSchema, RestoreBackupResponseSchema, DownloadBackupResponseSchema, } from "./backup.js";
|
|
8
|
+
export type { BackupInfo, TriggerBackupResponse, ListBackupsResponse, RestoreBackupRequest, RestoreBackupResponse, DownloadBackupResponse, } from "./backup.js";
|
|
9
|
+
export { FeedbackType, FeedbackSubmitRequestSchema, FeedbackSubmitResponseSchema, } from "./feedback.js";
|
|
10
|
+
export type { FeedbackSubmitRequest, FeedbackSubmitResponse } from "./feedback.js";
|
|
11
|
+
export { SavegameSaveRequestSchema, SavegameSaveResponseSchema, SavegameLoadResponseSchema, SaveSlotSchema, SavegameListSlotsResponseSchema, } from "./savegame.js";
|
|
12
|
+
export type { SavegameSaveRequest, SavegameSaveResponse, SavegameLoadResponse, SaveSlot, SavegameListSlotsResponse, } from "./savegame.js";
|
|
13
|
+
export { GameEntitySaveRequestSchema, GameEntitySaveResponseSchema, GameEntityLoadResponseSchema, GameEntityInfoSchema, GameEntityListResponseSchema, GameEntityDeleteResponseSchema, GameEntityBulkSaveRequestSchema, GameEntityBulkSaveResponseSchema, } from "./gameEntity.js";
|
|
14
|
+
export type { GameEntitySaveRequest, GameEntitySaveResponse, GameEntityLoadResponse, GameEntityInfo, GameEntityListResponse, GameEntityDeleteResponse, GameEntityBulkSaveRequest, GameEntityBulkSaveResponse, } from "./gameEntity.js";
|
|
15
|
+
export { DEFAULT_DEVELOPMENT_API_URL, createApiUrlResolver } from "./apiConfig.js";
|
|
16
|
+
export type { ApiUrlResolverOptions, ApiUrlResolver } from "./apiConfig.js";
|
|
17
|
+
export { authRegisterContract, authLoginContract, authValidateContract, authValidateServiceTokenContract, savegameSaveContract, savegameLoadContract, savegameListSlotsContract, gameEntitySaveContract, gameEntityUpdateContract, gameEntityLoadContract, gameEntityListContract, gameEntityListAllContract, gameEntityDeleteContract, gameEntityBulkSaveContract, backupTriggerContract, backupListContract, backupRestoreContract, backupDownloadContract, feedbackSubmitContract, heartbeatContract, } from "./contracts.js";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAGnF,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,+BAA+B,GAChC,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,EACR,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAK5E,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,gCAAgC,EAChC,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Common response wrappers + shared field schemas
|
|
2
|
+
export { ApiResponseSchema, createSuccessResponseSchema, TimestampFieldsSchema, EntityMetadataSchema, } from "./common.js";
|
|
3
|
+
// AI provider enum
|
|
4
|
+
export { AI_PROVIDERS, AIProviderSchema } from "./aiProvider.js";
|
|
5
|
+
// Auth
|
|
6
|
+
export { AuthValidation, RegisterRequestSchema, AuthResponseFieldsSchema, RegisterResponseSchema, LoginRequestSchema, LoginResponseSchema, ValidateTokenRequestSchema, ValidateTokenResponseSchema, ValidateServiceTokenResponseSchema, } from "./auth.js";
|
|
7
|
+
// Backup
|
|
8
|
+
export { BackupInfoSchema, TriggerBackupResponseSchema, ListBackupsResponseSchema, RestoreBackupRequestSchema, RestoreBackupResponseSchema, DownloadBackupResponseSchema, } from "./backup.js";
|
|
9
|
+
// Feedback
|
|
10
|
+
export { FeedbackType, FeedbackSubmitRequestSchema, FeedbackSubmitResponseSchema, } from "./feedback.js";
|
|
11
|
+
// Savegame
|
|
12
|
+
export { SavegameSaveRequestSchema, SavegameSaveResponseSchema, SavegameLoadResponseSchema, SaveSlotSchema, SavegameListSlotsResponseSchema, } from "./savegame.js";
|
|
13
|
+
// Game entities
|
|
14
|
+
export { GameEntitySaveRequestSchema, GameEntitySaveResponseSchema, GameEntityLoadResponseSchema, GameEntityInfoSchema, GameEntityListResponseSchema, GameEntityDeleteResponseSchema, GameEntityBulkSaveRequestSchema, GameEntityBulkSaveResponseSchema, } from "./gameEntity.js";
|
|
15
|
+
// API URL resolver factory
|
|
16
|
+
export { DEFAULT_DEVELOPMENT_API_URL, createApiUrlResolver } from "./apiConfig.js";
|
|
17
|
+
// Typed endpoint contracts (toad-contracts). Each contract carries its own
|
|
18
|
+
// `pathResolver`; wire them into a client via @toad-contracts/frontend-http-client.
|
|
19
|
+
export { authRegisterContract, authLoginContract, authValidateContract, authValidateServiceTokenContract, savegameSaveContract, savegameLoadContract, savegameListSlotsContract, gameEntitySaveContract, gameEntityUpdateContract, gameEntityLoadContract, gameEntityListContract, gameEntityListAllContract, gameEntityDeleteContract, gameEntityBulkSaveContract, backupTriggerContract, backupListContract, backupRestoreContract, backupDownloadContract, feedbackSubmitContract, heartbeatContract, } from "./contracts.js";
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO;AACP,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,WAAW,CAAC;AAWnB,SAAS;AACT,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AAUrB,WAAW;AACX,OAAO,EACL,YAAY,EACZ,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AAGvB,WAAW;AACX,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,+BAA+B,GAChC,MAAM,eAAe,CAAC;AASvB,gBAAgB;AAChB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AAYzB,2BAA2B;AAC3B,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGnF,2EAA2E;AAC3E,oFAAoF;AAEpF,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,gCAAgC,EAChC,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type InferOutput } from "valibot";
|
|
2
|
+
/**
|
|
3
|
+
* Savegame save request schema
|
|
4
|
+
* Note: userId, gameId, and saveSlot are now in the URL path
|
|
5
|
+
*/
|
|
6
|
+
export declare const SavegameSaveRequestSchema: import("valibot").ObjectSchema<{
|
|
7
|
+
readonly gameVersion: import("valibot").StringSchema<undefined>;
|
|
8
|
+
readonly compressedData: import("valibot").StringSchema<undefined>;
|
|
9
|
+
}, undefined>;
|
|
10
|
+
export type SavegameSaveRequest = InferOutput<typeof SavegameSaveRequestSchema>;
|
|
11
|
+
/**
|
|
12
|
+
* Savegame save response schema
|
|
13
|
+
* Simple success/error response with no additional data
|
|
14
|
+
*/
|
|
15
|
+
export declare const SavegameSaveResponseSchema: import("valibot").ObjectSchema<{
|
|
16
|
+
readonly success: import("valibot").BooleanSchema<undefined>;
|
|
17
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
18
|
+
}, undefined>;
|
|
19
|
+
export type SavegameSaveResponse = InferOutput<typeof SavegameSaveResponseSchema>;
|
|
20
|
+
/**
|
|
21
|
+
* Savegame load response schema
|
|
22
|
+
*/
|
|
23
|
+
export declare const SavegameLoadResponseSchema: import("valibot").ObjectSchema<{
|
|
24
|
+
readonly success: import("valibot").BooleanSchema<undefined>;
|
|
25
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
26
|
+
} & {
|
|
27
|
+
compressedData: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
28
|
+
gameVersion: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
29
|
+
updatedAt: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
30
|
+
}, undefined>;
|
|
31
|
+
export type SavegameLoadResponse = InferOutput<typeof SavegameLoadResponseSchema>;
|
|
32
|
+
/**
|
|
33
|
+
* Save slot info schema
|
|
34
|
+
*/
|
|
35
|
+
export declare const SaveSlotSchema: import("valibot").ObjectSchema<{
|
|
36
|
+
readonly saveSlot: import("valibot").NumberSchema<undefined>;
|
|
37
|
+
readonly gameVersion: import("valibot").StringSchema<undefined>;
|
|
38
|
+
readonly updatedAt: import("valibot").StringSchema<undefined>;
|
|
39
|
+
}, undefined>;
|
|
40
|
+
export type SaveSlot = InferOutput<typeof SaveSlotSchema>;
|
|
41
|
+
/**
|
|
42
|
+
* Savegame list slots response schema
|
|
43
|
+
*/
|
|
44
|
+
export declare const SavegameListSlotsResponseSchema: import("valibot").ObjectSchema<{
|
|
45
|
+
readonly success: import("valibot").BooleanSchema<undefined>;
|
|
46
|
+
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
47
|
+
} & {
|
|
48
|
+
slots: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
49
|
+
readonly saveSlot: import("valibot").NumberSchema<undefined>;
|
|
50
|
+
readonly gameVersion: import("valibot").StringSchema<undefined>;
|
|
51
|
+
readonly updatedAt: import("valibot").StringSchema<undefined>;
|
|
52
|
+
}, undefined>, undefined>, undefined>;
|
|
53
|
+
}, undefined>;
|
|
54
|
+
export type SavegameListSlotsResponse = InferOutput<typeof SavegameListSlotsResponseSchema>;
|
|
55
|
+
//# sourceMappingURL=savegame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"savegame.d.ts","sourceRoot":"","sources":["../src/savegame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAA2C,MAAM,SAAS,CAAC;AAGpF;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;aAGpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;aAAkC,CAAC;AAE1E,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAElF;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;aAIrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAElF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;aAIzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;aAE1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
|
package/dist/savegame.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { number, object, optional, string, array } from "valibot";
|
|
2
|
+
import { createSuccessResponseSchema } from "./common.js";
|
|
3
|
+
/**
|
|
4
|
+
* Savegame save request schema
|
|
5
|
+
* Note: userId, gameId, and saveSlot are now in the URL path
|
|
6
|
+
*/
|
|
7
|
+
export const SavegameSaveRequestSchema = object({
|
|
8
|
+
gameVersion: string(),
|
|
9
|
+
compressedData: string(),
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* Savegame save response schema
|
|
13
|
+
* Simple success/error response with no additional data
|
|
14
|
+
*/
|
|
15
|
+
export const SavegameSaveResponseSchema = createSuccessResponseSchema({});
|
|
16
|
+
/**
|
|
17
|
+
* Savegame load response schema
|
|
18
|
+
*/
|
|
19
|
+
export const SavegameLoadResponseSchema = createSuccessResponseSchema({
|
|
20
|
+
compressedData: optional(string()),
|
|
21
|
+
gameVersion: optional(string()),
|
|
22
|
+
updatedAt: optional(string()),
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Save slot info schema
|
|
26
|
+
*/
|
|
27
|
+
export const SaveSlotSchema = object({
|
|
28
|
+
saveSlot: number(),
|
|
29
|
+
gameVersion: string(),
|
|
30
|
+
updatedAt: string(),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Savegame list slots response schema
|
|
34
|
+
*/
|
|
35
|
+
export const SavegameListSlotsResponseSchema = createSuccessResponseSchema({
|
|
36
|
+
slots: optional(array(SaveSlotSchema)),
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=savegame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"savegame.js","sourceRoot":"","sources":["../src/savegame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;IAC9C,WAAW,EAAE,MAAM,EAAE;IACrB,cAAc,EAAE,MAAM,EAAE;CACzB,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;AAI1E;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;IACpE,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClC,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;IACnC,QAAQ,EAAE,MAAM,EAAE;IAClB,WAAW,EAAE,MAAM,EAAE;IACrB,SAAS,EAAE,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,2BAA2B,CAAC;IACzE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;CACvC,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@game-infra/api-schemas-core",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Generic service API contract: auth, savegame, game-entity, backup, feedback, heartbeat schemas + toad-contracts endpoint definitions",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
8
|
+
"type": "module",
|
|
9
|
+
"sideEffects": false,
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@toad-contracts/core": "0.4.0",
|
|
21
|
+
"@toad-contracts/valibot": "0.5.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/node": "^22.19.7",
|
|
25
|
+
"rimraf": "^6.1.3",
|
|
26
|
+
"typescript": "^7.0.2",
|
|
27
|
+
"valibot": "^1.4.0",
|
|
28
|
+
"vitest": "^4.0.0"
|
|
29
|
+
},
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"valibot": "^1.4.0"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "rimraf dist && tsc --project tsconfig.build.json",
|
|
35
|
+
"typecheck": "tsc --noEmit",
|
|
36
|
+
"test": "vitest run",
|
|
37
|
+
"clean": "rimraf dist"
|
|
38
|
+
}
|
|
39
|
+
}
|