@thewhateverapp/platform 0.7.25 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/realtime/index.d.ts +138 -0
- package/dist/client/realtime/index.d.ts.map +1 -0
- package/dist/client/realtime/index.js +438 -0
- package/dist/client/realtime/index.js.map +1 -0
- package/dist/client/realtime/types.d.ts +143 -0
- package/dist/client/realtime/types.d.ts.map +1 -0
- package/dist/client/realtime/types.js +7 -0
- package/dist/client/realtime/types.js.map +1 -0
- package/dist/env.d.ts +1 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/keyspace/index.d.ts +86 -0
- package/dist/keyspace/index.d.ts.map +1 -0
- package/dist/keyspace/index.js +929 -0
- package/dist/keyspace/index.js.map +1 -0
- package/dist/keyspace/types.d.ts +377 -0
- package/dist/keyspace/types.d.ts.map +1 -0
- package/dist/keyspace/types.js +8 -0
- package/dist/keyspace/types.js.map +1 -0
- package/dist/realtime/index.d.ts +97 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +247 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/types.d.ts +198 -0
- package/dist/realtime/types.d.ts.map +1 -0
- package/dist/realtime/types.js +8 -0
- package/dist/realtime/types.js.map +1 -0
- package/package.json +7 -2
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side Realtime Types
|
|
3
|
+
*
|
|
4
|
+
* Types for the useRealtime React hook and RealtimeClient class.
|
|
5
|
+
*/
|
|
6
|
+
import type { RealtimeMessage, RealtimeConnectionState } from '../../realtime/types';
|
|
7
|
+
export type { RealtimeMessage, RealtimeConnectionState };
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for the realtime client
|
|
10
|
+
*/
|
|
11
|
+
export interface RealtimeClientConfig {
|
|
12
|
+
/**
|
|
13
|
+
* Base URL for WebSocket connection
|
|
14
|
+
* @default 'wss://realtime.thewhatever.app'
|
|
15
|
+
*/
|
|
16
|
+
baseUrl?: string;
|
|
17
|
+
/**
|
|
18
|
+
* App ID for channel isolation
|
|
19
|
+
*/
|
|
20
|
+
appId: string;
|
|
21
|
+
/**
|
|
22
|
+
* Initial channels to subscribe to
|
|
23
|
+
*/
|
|
24
|
+
channels?: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Auto-reconnect on disconnect
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
autoReconnect?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Reconnect delay in milliseconds
|
|
32
|
+
* @default 1000
|
|
33
|
+
*/
|
|
34
|
+
reconnectDelay?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Maximum reconnect attempts (0 = unlimited)
|
|
37
|
+
* @default 10
|
|
38
|
+
*/
|
|
39
|
+
maxReconnectAttempts?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Ping interval in milliseconds (0 = disabled)
|
|
42
|
+
* @default 30000
|
|
43
|
+
*/
|
|
44
|
+
pingInterval?: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Options for the useRealtime hook
|
|
48
|
+
*/
|
|
49
|
+
export interface UseRealtimeOptions {
|
|
50
|
+
/**
|
|
51
|
+
* Base URL for WebSocket connection
|
|
52
|
+
* @default 'wss://realtime.thewhatever.app'
|
|
53
|
+
*/
|
|
54
|
+
baseUrl?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Initial channels to subscribe to
|
|
57
|
+
*/
|
|
58
|
+
channels?: string[];
|
|
59
|
+
/**
|
|
60
|
+
* Auto-reconnect on disconnect
|
|
61
|
+
* @default true
|
|
62
|
+
*/
|
|
63
|
+
autoReconnect?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Reconnect delay in milliseconds
|
|
66
|
+
* @default 1000
|
|
67
|
+
*/
|
|
68
|
+
reconnectDelay?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Maximum reconnect attempts (0 = unlimited)
|
|
71
|
+
* @default 10
|
|
72
|
+
*/
|
|
73
|
+
maxReconnectAttempts?: number;
|
|
74
|
+
/**
|
|
75
|
+
* Callback when connected
|
|
76
|
+
*/
|
|
77
|
+
onConnect?: () => void;
|
|
78
|
+
/**
|
|
79
|
+
* Callback when disconnected
|
|
80
|
+
*/
|
|
81
|
+
onDisconnect?: () => void;
|
|
82
|
+
/**
|
|
83
|
+
* Callback when reconnecting
|
|
84
|
+
*/
|
|
85
|
+
onReconnecting?: (attempt: number) => void;
|
|
86
|
+
/**
|
|
87
|
+
* Callback on error
|
|
88
|
+
*/
|
|
89
|
+
onError?: (error: Error) => void;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Return type of the useRealtime hook
|
|
93
|
+
*/
|
|
94
|
+
export interface UseRealtimeReturn<T = unknown> {
|
|
95
|
+
/**
|
|
96
|
+
* Current connection state
|
|
97
|
+
*/
|
|
98
|
+
state: RealtimeConnectionState;
|
|
99
|
+
/**
|
|
100
|
+
* Whether connected
|
|
101
|
+
*/
|
|
102
|
+
isConnected: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Currently subscribed channels
|
|
105
|
+
*/
|
|
106
|
+
channels: string[];
|
|
107
|
+
/**
|
|
108
|
+
* Last received data (generic type)
|
|
109
|
+
*/
|
|
110
|
+
lastMessage: {
|
|
111
|
+
channel: string;
|
|
112
|
+
data: T;
|
|
113
|
+
} | null;
|
|
114
|
+
/**
|
|
115
|
+
* Subscribe to a channel
|
|
116
|
+
*/
|
|
117
|
+
subscribe: (channel: string) => void;
|
|
118
|
+
/**
|
|
119
|
+
* Unsubscribe from a channel
|
|
120
|
+
*/
|
|
121
|
+
unsubscribe: (channel: string) => void;
|
|
122
|
+
/**
|
|
123
|
+
* Publish data to a channel (client-to-server-to-all)
|
|
124
|
+
*/
|
|
125
|
+
publish: (channel: string, data: T) => void;
|
|
126
|
+
/**
|
|
127
|
+
* Manually reconnect
|
|
128
|
+
*/
|
|
129
|
+
reconnect: () => void;
|
|
130
|
+
/**
|
|
131
|
+
* Disconnect and cleanup
|
|
132
|
+
*/
|
|
133
|
+
disconnect: () => void;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Message handler callback type
|
|
137
|
+
*/
|
|
138
|
+
export type MessageHandler<T = unknown> = (data: T, channel: string) => void;
|
|
139
|
+
/**
|
|
140
|
+
* Connection state change handler
|
|
141
|
+
*/
|
|
142
|
+
export type StateChangeHandler = (state: RealtimeConnectionState) => void;
|
|
143
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/realtime/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAErF,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC5C;;OAEG;IACH,KAAK,EAAE,uBAAuB,CAAC;IAE/B;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAEjD;;OAEG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;OAEG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/realtime/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/env.d.ts
CHANGED
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,WAAW,GAAG,MAAM,WAAW,CAAC;AAIrC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAQ5C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,WAAW,GAAG,MAAM,WAAW,CAAC;AAIrC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAQ5C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
package/dist/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAmBH,IAAI,WAAW,GAAuB,IAAI,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAqB;IACxD,WAAW,GAAG,QAAQ,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,mCAAmC;YACjC,mGAAmG,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,WAAW,KAAK,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -38,6 +38,10 @@ export { getAI, createAI } from './ai';
|
|
|
38
38
|
export type { AIServiceProvider, AIProvider, AICapability, AskOptions, PromptRequest, PromptResponse, ImageInput, } from './ai/types';
|
|
39
39
|
export { getTileState } from './tile-state';
|
|
40
40
|
export type { TileStateProvider, Comment, Report, } from './tile-state/types';
|
|
41
|
+
export { getRealtime, createRealtime, createRealtimeHttp, getRealtimeWebSocketUrl } from './realtime';
|
|
42
|
+
export type { RealtimeProvider, RealtimeEnv, RealtimeHttpConfig, RealtimeMessage, RealtimeMessageType, RealtimeStats, PublishOptions, PublishResult, RealtimeConnectionOptions, RealtimeConnectionState, RealtimeConnection, } from './realtime/types';
|
|
43
|
+
export { getKeyspace, createKeyspace, createKeyspaceHttp } from './keyspace';
|
|
44
|
+
export type { KeyspaceProvider, KeyspaceEnv, KeyspaceHttpConfig, JsonValue, OperationResult, CounterAPI, KVAPI, QueueAPI, SetAPI, LeaderboardAPI, LeaderboardEntry, HashAPI, RateLimitAPI, RateLimitResult, LockAPI, LockResult, LockCheckResult, LockReleaseResult, } from './keyspace/types';
|
|
41
45
|
export { ProductionStorage } from './storage/production';
|
|
42
46
|
export { MockStorage } from './storage/mock';
|
|
43
47
|
export { ProductionDB } from './db/production';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9D,mBAAmB,SAAS,CAAC;AAO7B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACvC,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACjD,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,IAAI,kBAAkB,EACjC,UAAU,IAAI,iBAAiB,EAC/B,UAAU,IAAI,iBAAiB,EAC/B,SAAS,IAAI,gBAAgB,EAC7B,UAAU,IAAI,iBAAiB,GAChC,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACvC,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EACV,iBAAiB,EACjB,OAAO,EACP,MAAM,GACP,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9D,mBAAmB,SAAS,CAAC;AAO7B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACvC,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACjD,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,IAAI,kBAAkB,EACjC,UAAU,IAAI,iBAAiB,EAC/B,UAAU,IAAI,iBAAiB,EAC/B,SAAS,IAAI,gBAAgB,EAC7B,UAAU,IAAI,iBAAiB,GAChC,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACvC,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EACV,iBAAiB,EACjB,OAAO,EACP,MAAM,GACP,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACtG,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,aAAa,EACb,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7E,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,UAAU,EACV,KAAK,EACL,QAAQ,EACR,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,eAAe,EACf,OAAO,EACP,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -41,6 +41,10 @@ export { getStorage, createStorage } from './r2';
|
|
|
41
41
|
export { getAI, createAI } from './ai';
|
|
42
42
|
// Tile State - Durable Objects for real-time state
|
|
43
43
|
export { getTileState } from './tile-state';
|
|
44
|
+
// Realtime - WebSocket pub/sub via Durable Objects
|
|
45
|
+
export { getRealtime, createRealtime, createRealtimeHttp, getRealtimeWebSocketUrl } from './realtime';
|
|
46
|
+
// Keyspace - Redis-inspired shared state (counters, kv, queues, sets, leaderboards, etc.)
|
|
47
|
+
export { getKeyspace, createKeyspace, createKeyspaceHttp } from './keyspace';
|
|
44
48
|
// =============================================================================
|
|
45
49
|
// Platform API Clients (for web apps, admin tools)
|
|
46
50
|
// =============================================================================
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,0EAA0E;AAC1E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AAGf,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9D,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAEhF,mDAAmD;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAazD,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAWvC,gCAAgC;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAYjD,6DAA6D;AAC7D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAWvC,mDAAmD;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,0EAA0E;AAC1E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AAGf,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9D,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAEhF,mDAAmD;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAazD,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAWvC,gCAAgC;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAYjD,6DAA6D;AAC7D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAWvC,mDAAmD;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,mDAAmD;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAetG,0FAA0F;AAC1F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAsB7E,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keyspace API
|
|
3
|
+
*
|
|
4
|
+
* Redis-inspired shared state service providing counters, KV, queues,
|
|
5
|
+
* sets, leaderboards, hashes, rate limiting, and distributed locks.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { getCloudflareContext } from '@opennextjs/cloudflare';
|
|
10
|
+
* import { configurePlatformEnv, getKeyspace } from '@thewhateverapp/platform';
|
|
11
|
+
*
|
|
12
|
+
* export async function POST(req: NextRequest) {
|
|
13
|
+
* configurePlatformEnv(() => getCloudflareContext().env);
|
|
14
|
+
*
|
|
15
|
+
* const keyspace = await getKeyspace();
|
|
16
|
+
*
|
|
17
|
+
* // Increment counter
|
|
18
|
+
* const count = await keyspace.counter('visitors').increment();
|
|
19
|
+
*
|
|
20
|
+
* // Store value with TTL
|
|
21
|
+
* await keyspace.kv.set('session', { user: 'john' }, 3600);
|
|
22
|
+
*
|
|
23
|
+
* // Add to leaderboard
|
|
24
|
+
* await keyspace.leaderboard('scores').add('player1', 100);
|
|
25
|
+
*
|
|
26
|
+
* return NextResponse.json({ count });
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import type { KeyspaceProvider, KeyspaceEnv, KeyspaceHttpConfig } from './types';
|
|
31
|
+
export type * from './types';
|
|
32
|
+
/**
|
|
33
|
+
* Create a Keyspace instance using HTTP with API key authentication
|
|
34
|
+
*
|
|
35
|
+
* Use this when service bindings are not available (e.g., external services, testing).
|
|
36
|
+
* The API key must have 'keyspace' or '*' permission.
|
|
37
|
+
*
|
|
38
|
+
* @param config - HTTP configuration with API key
|
|
39
|
+
* @returns Keyspace provider instance
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const keyspace = createKeyspaceHttp({
|
|
44
|
+
* apiKey: 'wtvr_jwt_eyJ...',
|
|
45
|
+
* baseUrl: 'https://keyspace.thewhatever.app', // optional
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* const count = await keyspace.counter('visitors').increment();
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function createKeyspaceHttp(config: KeyspaceHttpConfig): KeyspaceProvider;
|
|
52
|
+
/**
|
|
53
|
+
* Get a Keyspace instance for the current request
|
|
54
|
+
*
|
|
55
|
+
* @param reqOrEnv - Optional: object with env property, or env object directly.
|
|
56
|
+
* If not provided, uses the env configured via configurePlatformEnv().
|
|
57
|
+
* @returns Keyspace provider instance
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Using configured env (recommended)
|
|
62
|
+
* configurePlatformEnv(() => getCloudflareContext().env);
|
|
63
|
+
* const keyspace = await getKeyspace();
|
|
64
|
+
*
|
|
65
|
+
* // Or pass env directly
|
|
66
|
+
* const keyspace = await getKeyspace({ env });
|
|
67
|
+
* const keyspace = await getKeyspace(env);
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function getKeyspace(reqOrEnv?: {
|
|
71
|
+
env: KeyspaceEnv;
|
|
72
|
+
} | KeyspaceEnv): Promise<KeyspaceProvider>;
|
|
73
|
+
/**
|
|
74
|
+
* Create a Keyspace instance directly (for advanced usage)
|
|
75
|
+
*
|
|
76
|
+
* @param env - Environment with KEYSPACE binding
|
|
77
|
+
* @param appId - Optional app ID for isolation (defaults to env.APP_ID or 'default')
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const keyspace = createKeyspace({ KEYSPACE: env.KEYSPACE }, 'my-app-id');
|
|
82
|
+
* await keyspace.counter('visitors').increment();
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function createKeyspace(env: KeyspaceEnv, appId?: string): KeyspaceProvider;
|
|
86
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/keyspace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAgBnB,MAAM,SAAS,CAAC;AASjB,mBAAmB,SAAS,CAAC;AAg4B7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,gBAAgB,CAK/E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,CAAC,EAAE;IAAE,GAAG,EAAE,WAAW,CAAA;CAAE,GAAG,WAAW,GAC5C,OAAO,CAAC,gBAAgB,CAAC,CA0C3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAUjF"}
|