zuburi-game-platform 0.1.2 → 0.1.4
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 +53 -96
- package/dist/achievements/listAchievements.d.ts.map +1 -1
- package/dist/achievements/listAchievements.js +1 -1
- package/dist/achievements/listAchievements.js.map +1 -1
- package/dist/errors/GamePlatformError.d.ts +1 -1
- package/dist/errors/GamePlatformError.d.ts.map +1 -1
- package/dist/errors/GamePlatformError.js.map +1 -1
- package/dist/errors/normalizeError.d.ts.map +1 -1
- package/dist/errors/normalizeError.js +0 -1
- package/dist/errors/normalizeError.js.map +1 -1
- package/dist/events/emitEvent.d.ts.map +1 -1
- package/dist/events/emitEvent.js +0 -4
- package/dist/events/emitEvent.js.map +1 -1
- package/dist/internal/callRpc.js +1 -1
- package/dist/internal/mappers.d.ts.map +1 -1
- package/dist/internal/mappers.js +0 -2
- package/dist/internal/mappers.js.map +1 -1
- package/dist/login-bonus/getStatus.d.ts.map +1 -1
- package/dist/login-bonus/getStatus.js +1 -1
- package/dist/login-bonus/getStatus.js.map +1 -1
- package/dist/points/getAccount.d.ts.map +1 -1
- package/dist/points/getAccount.js +1 -1
- package/dist/points/getAccount.js.map +1 -1
- package/dist/state/getState.d.ts.map +1 -1
- package/dist/state/getState.js +1 -1
- package/dist/state/getState.js.map +1 -1
- package/dist/types/event.d.ts +0 -3
- package/dist/types/event.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/events/idempotency.d.ts +0 -2
- package/dist/events/idempotency.d.ts.map +0 -1
- package/dist/events/idempotency.js +0 -14
- package/dist/events/idempotency.js.map +0 -1
- package/dist/points/listTransactions.d.ts +0 -5
- package/dist/points/listTransactions.d.ts.map +0 -1
- package/dist/points/listTransactions.js +0 -17
- package/dist/points/listTransactions.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,120 +1,104 @@
|
|
|
1
1
|
# zuburi-game-platform
|
|
2
2
|
|
|
3
|
-
ZUBURI のゲームから ZUBURI Game Platform
|
|
4
|
-
|
|
5
|
-
このパッケージは **npmjs.org の public package** として配布します。リポジトリ全体ではなく、`packages/game-platform` の内容だけが publish 対象です。
|
|
6
|
-
|
|
7
|
-
## Package
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
Package: zuburi-game-platform
|
|
11
|
-
Registry: https://registry.npmjs.org/
|
|
12
|
-
```
|
|
3
|
+
ZUBURI のゲームから ZUBURI Game Platform を利用するための React 非依存 TypeScript SDK です。
|
|
13
4
|
|
|
14
5
|
## Install
|
|
15
6
|
|
|
16
|
-
GitHub Packages 用の `.npmrc` や GitHub 認証は不要です。
|
|
17
|
-
|
|
18
7
|
```bash
|
|
19
8
|
pnpm add zuburi-game-platform @supabase/supabase-js
|
|
20
9
|
```
|
|
21
10
|
|
|
22
|
-
npm / yarn など、npm registry を利用できる別の package manager からも通常どおり install できます。
|
|
23
|
-
|
|
24
11
|
## Basic usage
|
|
25
12
|
|
|
26
|
-
SDK は Supabase Client を生成しません。ゲームが既に利用している、ログイン Session 付きの Client を注入します。
|
|
27
|
-
|
|
28
13
|
```ts
|
|
29
|
-
import { createGamePlatformClient } from 'zuburi-game-platform'
|
|
30
|
-
import { supabase } from '../lib/supabase'
|
|
14
|
+
import { createGamePlatformClient } from 'zuburi-game-platform'
|
|
15
|
+
import { supabase } from '../lib/supabase'
|
|
31
16
|
|
|
32
17
|
export const platform = createGamePlatformClient({
|
|
33
18
|
supabase,
|
|
34
19
|
gameId: 'coffee_roaster',
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
const state = await platform.getState();
|
|
38
|
-
const account = await platform.points.getAccount();
|
|
39
|
-
const achievements = await platform.achievements.list();
|
|
20
|
+
})
|
|
40
21
|
```
|
|
41
22
|
|
|
42
|
-
|
|
23
|
+
SDK は Supabase Client を生成しません。`service_role` / Secret key / `userId` は渡しません。
|
|
43
24
|
|
|
44
|
-
##
|
|
25
|
+
## Storage policy
|
|
26
|
+
|
|
27
|
+
Game Platform は履歴を蓄積せず、現在状態を保持する state-first 構成です。
|
|
45
28
|
|
|
46
|
-
|
|
29
|
+
保持する主な値:
|
|
30
|
+
|
|
31
|
+
- ポイント現在残高・累積獲得・累積消費
|
|
32
|
+
- 実績進捗・解除状態
|
|
33
|
+
- ログインボーナス現在状態
|
|
34
|
+
- 各ゲームの必要な集計値
|
|
35
|
+
|
|
36
|
+
イベント履歴、ポイント増減履歴、開封履歴などは原則保存しません。
|
|
37
|
+
|
|
38
|
+
詳細: [`../../docs/STATE_FIRST_STORAGE_POLICY.md`](../../docs/STATE_FIRST_STORAGE_POLICY.md)
|
|
39
|
+
|
|
40
|
+
## Client events
|
|
47
41
|
|
|
48
42
|
```ts
|
|
49
|
-
await platform.events.emit({
|
|
43
|
+
const result = await platform.events.emit({
|
|
50
44
|
type: 'tutorial_completed',
|
|
51
45
|
sourceId: 'tutorial:v1',
|
|
52
|
-
})
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
`sourceId` がある場合、標準の idempotency key は次です。
|
|
46
|
+
})
|
|
56
47
|
|
|
57
|
-
|
|
58
|
-
|
|
48
|
+
console.log(result.points.balance)
|
|
49
|
+
console.log(result.achievements.unlocked)
|
|
59
50
|
```
|
|
60
51
|
|
|
61
|
-
|
|
52
|
+
`sourceId` は Event Definition で必要な場合の識別情報です。イベントはDBへ永続保存されません。
|
|
62
53
|
|
|
63
|
-
|
|
54
|
+
永続イベント行による idempotency 管理を行わないため、SDKは**書き込みRPCを自動リトライしません**。読み取りRPCのみ一時エラー時に最大1回リトライします。
|
|
55
|
+
|
|
56
|
+
## Typed events
|
|
64
57
|
|
|
65
58
|
```ts
|
|
66
59
|
type CoffeeRoasterEvents = {
|
|
67
|
-
tutorial_completed: {
|
|
68
|
-
value?: never;
|
|
69
|
-
metadata?: never;
|
|
70
|
-
};
|
|
71
|
-
|
|
60
|
+
tutorial_completed: { value?: never; metadata?: never }
|
|
72
61
|
roast_completed: {
|
|
73
|
-
value: number
|
|
74
|
-
metadata?: {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
};
|
|
62
|
+
value: number
|
|
63
|
+
metadata?: { difficulty?: 'normal' | 'hard' }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
79
66
|
|
|
80
67
|
const platform = createGamePlatformClient<CoffeeRoasterEvents>({
|
|
81
68
|
supabase,
|
|
82
69
|
gameId: 'coffee_roaster',
|
|
83
|
-
})
|
|
70
|
+
})
|
|
84
71
|
```
|
|
85
72
|
|
|
86
|
-
Event Definition はゲーム側で型を持ち、共通 SDK 自体へゲーム固有 Event をハードコードしません。
|
|
87
|
-
|
|
88
73
|
## Points
|
|
89
74
|
|
|
90
75
|
```ts
|
|
91
|
-
const account = await platform.points.getAccount()
|
|
76
|
+
const account = await platform.points.getAccount()
|
|
77
|
+
|
|
78
|
+
account.balance
|
|
79
|
+
account.lifetimeEarned
|
|
80
|
+
account.lifetimeSpent
|
|
92
81
|
```
|
|
93
82
|
|
|
94
|
-
|
|
83
|
+
ポイント履歴取得、`points.add()`、`points.set()` はありません。
|
|
95
84
|
|
|
96
85
|
## Achievements
|
|
97
86
|
|
|
98
87
|
```ts
|
|
99
|
-
const achievements = await platform.achievements.list()
|
|
88
|
+
const achievements = await platform.achievements.list()
|
|
100
89
|
```
|
|
101
90
|
|
|
102
|
-
|
|
91
|
+
進捗・解除判定・報酬付与は Backend が行います。
|
|
103
92
|
|
|
104
93
|
## Login bonus
|
|
105
94
|
|
|
106
95
|
```ts
|
|
107
|
-
const status = await platform.loginBonus.getStatus()
|
|
108
|
-
const result = await platform.loginBonus.claimAvailable()
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
特定 Campaign だけ受け取る場合:
|
|
112
|
-
|
|
113
|
-
```ts
|
|
114
|
-
await platform.loginBonus.claimProgram('summer_campaign_2026');
|
|
96
|
+
const status = await platform.loginBonus.getStatus()
|
|
97
|
+
const result = await platform.loginBonus.claimAvailable()
|
|
98
|
+
await platform.loginBonus.claimProgram('summer_campaign_2026')
|
|
115
99
|
```
|
|
116
100
|
|
|
117
|
-
|
|
101
|
+
受取履歴を毎回追加せず、ユーザー・プログラムごとの現在状態を更新します。
|
|
118
102
|
|
|
119
103
|
## Development write guard
|
|
120
104
|
|
|
@@ -123,10 +107,10 @@ const platform = createGamePlatformClient({
|
|
|
123
107
|
supabase,
|
|
124
108
|
gameId: 'coffee_roaster',
|
|
125
109
|
writesEnabled: import.meta.env.VITE_DEVELOPMENT_MODE !== 'true',
|
|
126
|
-
})
|
|
110
|
+
})
|
|
127
111
|
```
|
|
128
112
|
|
|
129
|
-
`writesEnabled=false` の場合、Event送信とLogin Bonus claimは `WRITE_DISABLED`
|
|
113
|
+
`writesEnabled=false` の場合、Event送信とLogin Bonus claimは `WRITE_DISABLED` になります。
|
|
130
114
|
|
|
131
115
|
## Security boundary
|
|
132
116
|
|
|
@@ -135,52 +119,25 @@ SDKは意図的に以下を提供しません。
|
|
|
135
119
|
```text
|
|
136
120
|
points.add()
|
|
137
121
|
points.set()
|
|
122
|
+
points.listTransactions()
|
|
138
123
|
achievements.unlock()
|
|
139
124
|
achievements.setProgress()
|
|
140
125
|
events.emitTrusted()
|
|
141
126
|
```
|
|
142
127
|
|
|
143
|
-
|
|
128
|
+
スコア・勝敗など改変耐性が必要な処理はゲーム固有RPCで検証してください。
|
|
144
129
|
|
|
145
130
|
## Repository development
|
|
146
131
|
|
|
147
|
-
この monorepo は pnpm workspace を使用します。repository root で実行してください。
|
|
148
|
-
|
|
149
132
|
```bash
|
|
150
133
|
pnpm install
|
|
151
134
|
pnpm check
|
|
152
135
|
```
|
|
153
136
|
|
|
154
|
-
|
|
137
|
+
SDK build は `dist` を削除してから生成します。
|
|
155
138
|
|
|
156
139
|
## Publishing
|
|
157
140
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
`main` へ commit / push すると `Release Game Platform SDK` GitHub Action が自動で起動し、必要なら patch version を +1 したうえで、GitHub Actions 上で次を実行します。
|
|
161
|
-
|
|
162
|
-
```text
|
|
163
|
-
pnpm install
|
|
164
|
-
pnpm run release
|
|
165
|
-
npm pack --dry-run
|
|
166
|
-
version / dist / release-build.json の自動 commit
|
|
167
|
-
tag 作成
|
|
168
|
-
npmjs.org publish
|
|
169
|
-
GitHub Release 作成
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
release 用 bot commit は次の形式です。
|
|
173
|
-
|
|
174
|
-
```text
|
|
175
|
-
chore(release): zuburi-game-platform v0.1.1 [skip ci]
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
失敗途中の release を手動再実行した場合、現在の release tag が main HEAD を指していれば同じ version を再利用します。
|
|
179
|
-
|
|
180
|
-
手動再実行は GitHub の Actions → `Release Game Platform SDK` → `Run workflow` から行えます。
|
|
181
|
-
|
|
182
|
-
詳細は [`../../docs/PUBLISHING.md`](../../docs/PUBLISHING.md) を参照してください。
|
|
183
|
-
|
|
184
|
-
## Supported backend
|
|
141
|
+
`main` への変更は既存の Release workflow の対象です。
|
|
185
142
|
|
|
186
|
-
|
|
143
|
+
詳細: [`../../docs/PUBLISHING.md`](../../docs/PUBLISHING.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listAchievements.d.ts","sourceRoot":"","sources":["../../src/achievements/listAchievements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,gBAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"listAchievements.d.ts","sourceRoot":"","sources":["../../src/achievements/listAchievements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQ7B"}
|
|
@@ -2,7 +2,7 @@ import { callRpc } from "../internal/callRpc.js";
|
|
|
2
2
|
import { mapAchievementState } from "../internal/mappers.js";
|
|
3
3
|
import { array, record } from "../internal/validators.js";
|
|
4
4
|
export async function listAchievements(supabase, gameId, logger) {
|
|
5
|
-
const raw = await callRpc(supabase, "game_platform_v1_list_achievements", { p_game_id: gameId }, { logger });
|
|
5
|
+
const raw = await callRpc(supabase, "game_platform_v1_list_achievements", { p_game_id: gameId }, { logger, retries: 1 });
|
|
6
6
|
return array(record(raw, "achievement response").items, "achievement response.items").map(mapAchievementState);
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=listAchievements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listAchievements.js","sourceRoot":"","sources":["../../src/achievements/listAchievements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIzD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA2B,EAC3B,MAAc,EACd,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"listAchievements.js","sourceRoot":"","sources":["../../src/achievements/listAchievements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIzD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA2B,EAC3B,MAAc,EACd,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,QAAQ,EACR,oCAAoC,EACpC,EAAE,SAAS,EAAE,MAAM,EAAE,EACrB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CACvB,CAAA;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAChH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type GamePlatformErrorCode = "AUTH_REQUIRED" | "PROFILE_REQUIRED" | "GAME_NOT_FOUND" | "GAME_INACTIVE" | "EVENT_NOT_FOUND" | "EVENT_NOT_ALLOWED" | "SOURCE_ID_REQUIRED" | "INVALID_EVENT_VALUE" | "INVALID_METADATA" | "
|
|
1
|
+
export type GamePlatformErrorCode = "AUTH_REQUIRED" | "PROFILE_REQUIRED" | "GAME_NOT_FOUND" | "GAME_INACTIVE" | "EVENT_NOT_FOUND" | "EVENT_NOT_ALLOWED" | "SOURCE_ID_REQUIRED" | "INVALID_EVENT_VALUE" | "INVALID_METADATA" | "LOGIN_PROGRAM_NOT_FOUND" | "LOGIN_PROGRAM_NOT_ELIGIBLE" | "NETWORK_ERROR" | "RPC_ERROR" | "INVALID_RESPONSE" | "INVALID_ARGUMENT" | "API_VERSION_MISMATCH" | "WRITE_DISABLED";
|
|
2
2
|
export declare class GamePlatformError extends Error {
|
|
3
3
|
readonly code: GamePlatformErrorCode;
|
|
4
4
|
readonly retryable: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GamePlatformError.d.ts","sourceRoot":"","sources":["../../src/errors/GamePlatformError.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,kBAAkB,GAClB,
|
|
1
|
+
{"version":3,"file":"GamePlatformError.d.ts","sourceRoot":"","sources":["../../src/errors/GamePlatformError.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,kBAAkB,GAClB,yBAAyB,GACzB,4BAA4B,GAC5B,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,kBAAkB,GAClB,sBAAsB,GACtB,gBAAgB,CAAA;AAEpB,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,SAAkB,KAAK,EAAE,OAAO,CAAA;gBAG9B,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAQzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GamePlatformError.js","sourceRoot":"","sources":["../../src/errors/GamePlatformError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GamePlatformError.js","sourceRoot":"","sources":["../../src/errors/GamePlatformError.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,CAAuB;IAC3B,SAAS,CAAS;IACT,KAAK,CAAS;IAEhC,YACE,IAA2B,EAC3B,OAAe,EACf,UAAoD,EAAE;QAEtD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;QAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC5B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeError.d.ts","sourceRoot":"","sources":["../../src/errors/normalizeError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"normalizeError.d.ts","sourceRoot":"","sources":["../../src/errors/normalizeError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,wBAAwB,CAAA;AAqDtF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAwBhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeError.js","sourceRoot":"","sources":["../../src/errors/normalizeError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,wBAAwB,CAAA;AAEtF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAwB;IACpD,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,
|
|
1
|
+
{"version":3,"file":"normalizeError.js","sourceRoot":"","sources":["../../src/errors/normalizeError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,wBAAwB,CAAA;AAEtF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAwB;IACpD,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,yBAAyB;IACzB,4BAA4B;CAC7B,CAAC,CAAA;AASF,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAI,KAAsB,CAAC,OAAO,CAAA;QAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAA;IACjD,CAAC;IACD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YACvF,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,OAAe;IAC1D,IAAI,KAAK,YAAY,SAAS,IAAI,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/F,OAAO,wFAAwF,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC/G,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,IAAI,GAAI,KAAsB,CAAC,IAAI,CAAA;IACzC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AACjG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,iBAAiB;QAAE,OAAO,KAAK,CAAA;IAEpD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,iBAAiB,CAAC,eAAe,EAAE,OAAO,EAAE;YACrD,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,KAAK;SACb,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE;YACjD,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,KAAK;SACb,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitEvent.d.ts","sourceRoot":"","sources":["../../src/events/emitEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"emitEvent.d.ts","sourceRoot":"","sources":["../../src/events/emitEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEjF,wBAAsB,SAAS,CAC7B,OAAO,SAAS,QAAQ,EACxB,KAAK,SAAS,MAAM,OAAO,GAAG,MAAM,EAEpC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,EACxC,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAuBtB"}
|
package/dist/events/emitEvent.js
CHANGED
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
import { GamePlatformError } from "../errors/GamePlatformError.js";
|
|
2
2
|
import { callRpc } from "../internal/callRpc.js";
|
|
3
3
|
import { mapEventResult } from "../internal/mappers.js";
|
|
4
|
-
import { createIdempotencyKey } from "./idempotency.js";
|
|
5
4
|
export async function emitEvent(supabase, gameId, writesEnabled, input, logger) {
|
|
6
5
|
if (!writesEnabled) {
|
|
7
6
|
throw new GamePlatformError("WRITE_DISABLED", "Game Platform writes are disabled");
|
|
8
7
|
}
|
|
9
|
-
const idempotencyKey = createIdempotencyKey(gameId, input.type, "sourceId" in input ? input.sourceId : undefined, "idempotencyKey" in input ? input.idempotencyKey : undefined);
|
|
10
8
|
const raw = await callRpc(supabase, "game_platform_v1_emit_event", {
|
|
11
9
|
p_game_id: gameId,
|
|
12
10
|
p_event_type: input.type,
|
|
13
11
|
p_value: "value" in input ? input.value ?? null : null,
|
|
14
12
|
p_source_id: "sourceId" in input ? input.sourceId ?? null : null,
|
|
15
|
-
p_idempotency_key: idempotencyKey,
|
|
16
13
|
p_metadata: "metadata" in input ? input.metadata ?? {} : {},
|
|
17
14
|
}, { logger });
|
|
18
15
|
const result = mapEventResult(raw);
|
|
19
16
|
logger?.debug?.("Game Platform event processed", {
|
|
20
17
|
eventType: input.type,
|
|
21
|
-
duplicate: result.duplicate,
|
|
22
18
|
});
|
|
23
19
|
return result;
|
|
24
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitEvent.js","sourceRoot":"","sources":["../../src/events/emitEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"emitEvent.js","sourceRoot":"","sources":["../../src/events/emitEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAIvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAI7B,QAA2B,EAC3B,MAAc,EACd,aAAsB,EACtB,KAAwC,EACxC,MAA2B;IAE3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,mCAAmC,CAAC,CAAA;IACpF,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,QAAQ,EACR,6BAA6B,EAC7B;QACE,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,KAAK,CAAC,IAAI;QACxB,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;QACtD,WAAW,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;QAChE,UAAU,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;KAC5D,EACD,EAAE,MAAM,EAAE,CACX,CAAA;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC,+BAA+B,EAAE;QAC/C,SAAS,EAAE,KAAK,CAAC,IAAI;KACtB,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/internal/callRpc.js
CHANGED
|
@@ -3,7 +3,7 @@ import { GamePlatformError } from "../errors/GamePlatformError.js";
|
|
|
3
3
|
import { validateApiVersion } from "./validateApiVersion.js";
|
|
4
4
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
5
5
|
export async function callRpc(client, name, params, options = {}) {
|
|
6
|
-
const maxRetries = options.retries ??
|
|
6
|
+
const maxRetries = options.retries ?? 0;
|
|
7
7
|
let attempt = 0;
|
|
8
8
|
while (true) {
|
|
9
9
|
const startedAt = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../src/internal/mappers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3J,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAO1D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAelE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAWxE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAiBpE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAM7D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAa3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../src/internal/mappers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3J,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAO1D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAelE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAWxE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAiBpE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAM7D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAa3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAuBxD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAUxD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,CAarE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,2BAA2B,CAIxE"}
|
package/dist/internal/mappers.js
CHANGED
|
@@ -85,9 +85,7 @@ export function mapEventResult(raw) {
|
|
|
85
85
|
return {
|
|
86
86
|
apiVersion: 1,
|
|
87
87
|
ok: true,
|
|
88
|
-
duplicate: boolean(value.duplicate, "event result.duplicate"),
|
|
89
88
|
event: {
|
|
90
|
-
id: string(event.id, "event.id"),
|
|
91
89
|
gameId: string(event.game_id, "event.game_id"),
|
|
92
90
|
type: string(event.event_type, "event.event_type"),
|
|
93
91
|
origin: literal(event.origin, ["client", "trusted"], "event.origin"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../src/internal/mappers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../src/internal/mappers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStatus.d.ts","sourceRoot":"","sources":["../../src/login-bonus/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"getStatus.d.ts","sourceRoot":"","sources":["../../src/login-bonus/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAQ3B"}
|
|
@@ -2,7 +2,7 @@ import { callRpc } from "../internal/callRpc.js";
|
|
|
2
2
|
import { mapLoginStatus } from "../internal/mappers.js";
|
|
3
3
|
import { record } from "../internal/validators.js";
|
|
4
4
|
export async function getLoginBonusStatus(supabase, gameId, logger) {
|
|
5
|
-
const raw = await callRpc(supabase, "game_platform_v1_get_login_bonus_status", { p_game_id: gameId }, { logger });
|
|
5
|
+
const raw = await callRpc(supabase, "game_platform_v1_get_login_bonus_status", { p_game_id: gameId }, { logger, retries: 1 });
|
|
6
6
|
return mapLoginStatus(record(raw, "login bonus response").login_bonus);
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=getStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../src/login-bonus/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAA2B,EAC3B,MAAc,EACd,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../src/login-bonus/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAA2B,EAC3B,MAAc,EACd,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,QAAQ,EACR,yCAAyC,EACzC,EAAE,SAAS,EAAE,MAAM,EAAE,EACrB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CACvB,CAAA;IACD,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,WAAW,CAAC,CAAA;AACxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../src/points/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../src/points/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAQvB"}
|
|
@@ -2,7 +2,7 @@ import { callRpc } from "../internal/callRpc.js";
|
|
|
2
2
|
import { mapPointAccount } from "../internal/mappers.js";
|
|
3
3
|
import { record } from "../internal/validators.js";
|
|
4
4
|
export async function getPointAccount(supabase, logger) {
|
|
5
|
-
const raw = await callRpc(supabase, "game_platform_v1_get_point_account", undefined, { logger });
|
|
5
|
+
const raw = await callRpc(supabase, "game_platform_v1_get_point_account", undefined, { logger, retries: 1 });
|
|
6
6
|
return mapPointAccount(record(raw, "point account response").account);
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=getAccount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../src/points/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAA2B,EAC3B,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../src/points/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAA2B,EAC3B,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,QAAQ,EACR,oCAAoC,EACpC,SAAS,EACT,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CACvB,CAAA;IACD,OAAO,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAA;AACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getState.d.ts","sourceRoot":"","sources":["../../src/state/getState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"getState.d.ts","sourceRoot":"","sources":["../../src/state/getState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAQ5B"}
|
package/dist/state/getState.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { callRpc } from "../internal/callRpc.js";
|
|
2
2
|
import { mapState } from "../internal/mappers.js";
|
|
3
3
|
export async function getState(supabase, gameId, logger) {
|
|
4
|
-
const raw = await callRpc(supabase, "game_platform_v1_get_state", { p_game_id: gameId }, { logger });
|
|
4
|
+
const raw = await callRpc(supabase, "game_platform_v1_get_state", { p_game_id: gameId }, { logger, retries: 1 });
|
|
5
5
|
return mapState(raw);
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=getState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getState.js","sourceRoot":"","sources":["../../src/state/getState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAIjD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,QAA2B,EAC3B,MAAc,EACd,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"getState.js","sourceRoot":"","sources":["../../src/state/getState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAIjD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,QAA2B,EAC3B,MAAc,EACd,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,QAAQ,EACR,4BAA4B,EAC5B,EAAE,SAAS,EAAE,MAAM,EAAE,EACrB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CACvB,CAAA;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC"}
|
package/dist/types/event.d.ts
CHANGED
|
@@ -17,7 +17,6 @@ type PropertyInput<T extends EventSpec, K extends "value" | "metadata", Fallback
|
|
|
17
17
|
export type EmitEventInputFor<TEvents extends EventMap, TType extends keyof TEvents & string> = {
|
|
18
18
|
type: TType;
|
|
19
19
|
sourceId?: string;
|
|
20
|
-
idempotencyKey?: string;
|
|
21
20
|
} & PropertyInput<TEvents[TType], "value", number> & PropertyInput<TEvents[TType], "metadata", JsonObject>;
|
|
22
21
|
export type DefaultEventMap = Record<string, {
|
|
23
22
|
value?: number;
|
|
@@ -26,9 +25,7 @@ export type DefaultEventMap = Record<string, {
|
|
|
26
25
|
export type EventResult = {
|
|
27
26
|
apiVersion: 1;
|
|
28
27
|
ok: true;
|
|
29
|
-
duplicate: boolean;
|
|
30
28
|
event: {
|
|
31
|
-
id: string;
|
|
32
29
|
gameId: string;
|
|
33
30
|
type: string;
|
|
34
31
|
origin: "client" | "trusted";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/types/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACtB,QAAQ,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAEhD,KAAK,aAAa,CAChB,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,OAAO,GAAG,UAAU,EAC9B,QAAQ,IACN,CAAC,SAAS,MAAM,CAAC,GACjB,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAAE,GACvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpB;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK;CAAE,GACpB;KAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACtB;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ;CAAE,CAAA;AAE3B,MAAM,MAAM,iBAAiB,CAC3B,OAAO,SAAS,QAAQ,EACxB,KAAK,SAAS,MAAM,OAAO,GAAG,MAAM,IAClC;IACF,IAAI,EAAE,KAAK,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/types/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACtB,QAAQ,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAEhD,KAAK,aAAa,CAChB,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,OAAO,GAAG,UAAU,EAC9B,QAAQ,IACN,CAAC,SAAS,MAAM,CAAC,GACjB,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAAE,GACvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpB;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK;CAAE,GACpB;KAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACtB;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ;CAAE,CAAA;AAE3B,MAAM,MAAM,iBAAiB,CAC3B,OAAO,SAAS,QAAQ,EACxB,KAAK,SAAS,MAAM,OAAO,GAAG,MAAM,IAClC;IACF,IAAI,EAAE,KAAK,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAC9C,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AAEzD,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,CAAA;CAAE,CAC1C,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,CAAC,CAAA;IACb,EAAE,EAAE,IAAI,CAAA;IACR,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;KAC7B,CAAA;IACD,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,mBAAmB,EAAE,CAAA;QAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAA;KAChC,CAAA;CACF,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zuburi-game-platform",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Framework-independent TypeScript SDK for KZTK Game Platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
|
-
"build": "tsc -p tsconfig.build.json",
|
|
29
|
+
"build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json",
|
|
30
30
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
31
31
|
"test": "pnpm run build && node --test tests/*.test.mjs"
|
|
32
32
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/events/idempotency.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAaR"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export function createIdempotencyKey(gameId, eventType, sourceId, explicitKey) {
|
|
2
|
-
const explicit = explicitKey?.trim();
|
|
3
|
-
if (explicit)
|
|
4
|
-
return explicit;
|
|
5
|
-
const source = sourceId?.trim();
|
|
6
|
-
if (source)
|
|
7
|
-
return `${gameId}:${eventType}:${source}`;
|
|
8
|
-
const cryptoObject = globalThis.crypto;
|
|
9
|
-
if (cryptoObject && typeof cryptoObject.randomUUID === "function") {
|
|
10
|
-
return cryptoObject.randomUUID();
|
|
11
|
-
}
|
|
12
|
-
return `gp:${Date.now()}:${Math.random().toString(36).slice(2)}:${Math.random().toString(36).slice(2)}`;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=idempotency.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/events/idempotency.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,SAAiB,EACjB,QAAiB,EACjB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,WAAW,EAAE,IAAI,EAAE,CAAA;IACpC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,MAAM,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC/B,IAAI,MAAM;QAAE,OAAO,GAAG,MAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAA;IAErD,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAA;IACtC,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAClE,OAAO,YAAY,CAAC,UAAU,EAAE,CAAA;IAClC,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AACzG,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type SupabaseRpcClient } from "../internal/callRpc.js";
|
|
2
|
-
import type { GamePlatformLogger } from "../types/api.js";
|
|
3
|
-
import type { ListTransactionsOptions, PointTransactionPage } from "../types/point.js";
|
|
4
|
-
export declare function listTransactions(supabase: SupabaseRpcClient, options?: ListTransactionsOptions, logger?: GamePlatformLogger): Promise<PointTransactionPage>;
|
|
5
|
-
//# sourceMappingURL=listTransactions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listTransactions.d.ts","sourceRoot":"","sources":["../../src/points/listTransactions.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAEtF,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,uBAA4B,EACrC,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAkB/B"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { GamePlatformError } from "../errors/GamePlatformError.js";
|
|
2
|
-
import { callRpc } from "../internal/callRpc.js";
|
|
3
|
-
import { decodeCursor, mapTransactionPage } from "../internal/mappers.js";
|
|
4
|
-
export async function listTransactions(supabase, options = {}, logger) {
|
|
5
|
-
const limit = options.limit ?? 30;
|
|
6
|
-
if (!Number.isInteger(limit) || limit < 1 || limit > 100) {
|
|
7
|
-
throw new GamePlatformError("INVALID_ARGUMENT", "Transaction limit must be an integer between 1 and 100");
|
|
8
|
-
}
|
|
9
|
-
const cursor = decodeCursor(options.cursor);
|
|
10
|
-
const raw = await callRpc(supabase, "game_platform_v1_list_transactions", {
|
|
11
|
-
p_limit: limit,
|
|
12
|
-
p_before_created_at: cursor?.created_at ?? null,
|
|
13
|
-
p_before_id: cursor?.id ?? null,
|
|
14
|
-
}, { logger });
|
|
15
|
-
return mapTransactionPage(raw);
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=listTransactions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listTransactions.js","sourceRoot":"","sources":["../../src/points/listTransactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAIzE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA2B,EAC3B,UAAmC,EAAE,EACrC,MAA2B;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QACzD,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,wDAAwD,CAAC,CAAA;IAC3G,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,QAAQ,EACR,oCAAoC,EACpC;QACE,OAAO,EAAE,KAAK;QACd,mBAAmB,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI;QAC/C,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI;KAChC,EACD,EAAE,MAAM,EAAE,CACX,CAAA;IACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAChC,CAAC"}
|