miakapi 3.0.31 → 4.0.0-alpha.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.
Files changed (124) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +358 -0
  3. package/contracts/miakapp-v3.json +6 -0
  4. package/dist/access-token-provider.d.ts +8 -0
  5. package/dist/access-token-provider.d.ts.map +1 -0
  6. package/dist/access-token-provider.js +167 -0
  7. package/dist/access-token-provider.js.map +1 -0
  8. package/dist/api.d.ts +224 -0
  9. package/dist/api.d.ts.map +1 -0
  10. package/dist/api.js +47 -0
  11. package/dist/api.js.map +1 -0
  12. package/dist/browser-api.d.ts +113 -0
  13. package/dist/browser-api.d.ts.map +1 -0
  14. package/dist/browser-api.js +2 -0
  15. package/dist/browser-api.js.map +1 -0
  16. package/dist/browser-client.d.ts +3 -0
  17. package/dist/browser-client.d.ts.map +1 -0
  18. package/dist/browser-client.js +678 -0
  19. package/dist/browser-client.js.map +1 -0
  20. package/dist/browser-relay-credential-provider.d.ts +3 -0
  21. package/dist/browser-relay-credential-provider.d.ts.map +1 -0
  22. package/dist/browser-relay-credential-provider.js +243 -0
  23. package/dist/browser-relay-credential-provider.js.map +1 -0
  24. package/dist/browser.d.ts +4 -0
  25. package/dist/browser.d.ts.map +1 -0
  26. package/dist/browser.js +4 -0
  27. package/dist/browser.js.map +1 -0
  28. package/dist/coordinator.d.ts +3 -0
  29. package/dist/coordinator.d.ts.map +1 -0
  30. package/dist/coordinator.js +544 -0
  31. package/dist/coordinator.js.map +1 -0
  32. package/dist/index.d.ts +4 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +4 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/internal/browser-errors.d.ts +31 -0
  37. package/dist/internal/browser-errors.d.ts.map +1 -0
  38. package/dist/internal/browser-errors.js +69 -0
  39. package/dist/internal/browser-errors.js.map +1 -0
  40. package/dist/internal/browser-socket.d.ts +8 -0
  41. package/dist/internal/browser-socket.d.ts.map +1 -0
  42. package/dist/internal/browser-socket.js +204 -0
  43. package/dist/internal/browser-socket.js.map +1 -0
  44. package/dist/internal/calls.d.ts +33 -0
  45. package/dist/internal/calls.d.ts.map +1 -0
  46. package/dist/internal/calls.js +525 -0
  47. package/dist/internal/calls.js.map +1 -0
  48. package/dist/internal/control-plane-response.d.ts +10 -0
  49. package/dist/internal/control-plane-response.d.ts.map +1 -0
  50. package/dist/internal/control-plane-response.js +283 -0
  51. package/dist/internal/control-plane-response.js.map +1 -0
  52. package/dist/internal/declarations.d.ts +62 -0
  53. package/dist/internal/declarations.d.ts.map +1 -0
  54. package/dist/internal/declarations.js +427 -0
  55. package/dist/internal/declarations.js.map +1 -0
  56. package/dist/internal/errors.d.ts +31 -0
  57. package/dist/internal/errors.d.ts.map +1 -0
  58. package/dist/internal/errors.js +72 -0
  59. package/dist/internal/errors.js.map +1 -0
  60. package/dist/internal/events.d.ts +27 -0
  61. package/dist/internal/events.d.ts.map +1 -0
  62. package/dist/internal/events.js +207 -0
  63. package/dist/internal/events.js.map +1 -0
  64. package/dist/internal/presence.d.ts +15 -0
  65. package/dist/internal/presence.d.ts.map +1 -0
  66. package/dist/internal/presence.js +99 -0
  67. package/dist/internal/presence.js.map +1 -0
  68. package/dist/internal/resources.d.ts +33 -0
  69. package/dist/internal/resources.d.ts.map +1 -0
  70. package/dist/internal/resources.js +136 -0
  71. package/dist/internal/resources.js.map +1 -0
  72. package/dist/internal/runtime.d.ts +34 -0
  73. package/dist/internal/runtime.d.ts.map +1 -0
  74. package/dist/internal/runtime.js +17 -0
  75. package/dist/internal/runtime.js.map +1 -0
  76. package/dist/internal/session.d.ts +33 -0
  77. package/dist/internal/session.d.ts.map +1 -0
  78. package/dist/internal/session.js +199 -0
  79. package/dist/internal/session.js.map +1 -0
  80. package/dist/internal/socket.d.ts +6 -0
  81. package/dist/internal/socket.d.ts.map +1 -0
  82. package/dist/internal/socket.js +176 -0
  83. package/dist/internal/socket.js.map +1 -0
  84. package/dist/internal/state.d.ts +21 -0
  85. package/dist/internal/state.d.ts.map +1 -0
  86. package/dist/internal/state.js +133 -0
  87. package/dist/internal/state.js.map +1 -0
  88. package/dist/internal/user-calls.d.ts +27 -0
  89. package/dist/internal/user-calls.d.ts.map +1 -0
  90. package/dist/internal/user-calls.js +325 -0
  91. package/dist/internal/user-calls.js.map +1 -0
  92. package/dist/internal/user-session.d.ts +36 -0
  93. package/dist/internal/user-session.d.ts.map +1 -0
  94. package/dist/internal/user-session.js +250 -0
  95. package/dist/internal/user-session.js.map +1 -0
  96. package/dist/internal/user-state.d.ts +21 -0
  97. package/dist/internal/user-state.d.ts.map +1 -0
  98. package/dist/internal/user-state.js +240 -0
  99. package/dist/internal/user-state.js.map +1 -0
  100. package/dist/internal/validation.d.ts +32 -0
  101. package/dist/internal/validation.d.ts.map +1 -0
  102. package/dist/internal/validation.js +553 -0
  103. package/dist/internal/validation.js.map +1 -0
  104. package/dist/protocol/codec.d.ts +75 -0
  105. package/dist/protocol/codec.d.ts.map +1 -0
  106. package/dist/protocol/codec.js +1091 -0
  107. package/dist/protocol/codec.js.map +1 -0
  108. package/dist/protocol/session.d.ts +14 -0
  109. package/dist/protocol/session.d.ts.map +1 -0
  110. package/dist/protocol/session.js +125 -0
  111. package/dist/protocol/session.js.map +1 -0
  112. package/dist/protocol/user-session.d.ts +14 -0
  113. package/dist/protocol/user-session.d.ts.map +1 -0
  114. package/dist/protocol/user-session.js +116 -0
  115. package/dist/protocol/user-session.js.map +1 -0
  116. package/package.json +57 -9
  117. package/.eslintrc.js +0 -16
  118. package/.gitattributes +0 -2
  119. package/main.js +0 -305
  120. package/miakode.js +0 -56
  121. package/screenshots/bigGrid.jpg +0 -0
  122. package/screenshots/formExample.jpg +0 -0
  123. package/screenshots/properties&table.jpg +0 -0
  124. package/test.js +0 -45
@@ -0,0 +1,283 @@
1
+ const MAXIMUM_RESPONSE_BYTES = 65_536;
2
+ const MAXIMUM_JSON_DEPTH = 8;
3
+ const MAXIMUM_JSON_VALUES = 128;
4
+ const MAXIMUM_JSON_STRING_BYTES = 16_384;
5
+ const MAXIMUM_JSON_OBJECT_ENTRIES = 32;
6
+ const MAXIMUM_JSON_ARRAY_ITEMS = 32;
7
+ const CONTROL_CHARACTER = /\p{Cc}/u;
8
+ const UTF8 = new TextEncoder();
9
+ function invalidResponse() {
10
+ throw new TypeError('Invalid control-plane response');
11
+ }
12
+ export function cancelResponseBody(response) {
13
+ try {
14
+ const cancellation = response?.body?.cancel();
15
+ void cancellation?.catch(() => undefined);
16
+ }
17
+ catch {
18
+ // Rejection still wins even if a custom Fetch implementation exposes a hostile body.
19
+ }
20
+ }
21
+ function hasUnpairedSurrogate(value) {
22
+ for (let index = 0; index < value.length; index += 1) {
23
+ const unit = value.charCodeAt(index);
24
+ if (unit >= 0xd800 && unit <= 0xdbff) {
25
+ const following = value.charCodeAt(index + 1);
26
+ if (index + 1 >= value.length || following < 0xdc00 || following > 0xdfff)
27
+ return true;
28
+ index += 1;
29
+ }
30
+ else if (unit >= 0xdc00 && unit <= 0xdfff) {
31
+ return true;
32
+ }
33
+ }
34
+ return false;
35
+ }
36
+ export function exactResponseRecord(value, required, optional) {
37
+ if (value === null || Array.isArray(value) || typeof value !== 'object')
38
+ return invalidResponse();
39
+ const keys = Object.keys(value);
40
+ const allowed = new Set([...required, ...optional]);
41
+ if (Reflect.ownKeys(value).length !== keys.length
42
+ || required.some((key) => !Object.hasOwn(value, key))
43
+ || keys.some((key) => !allowed.has(key)))
44
+ return invalidResponse();
45
+ return value;
46
+ }
47
+ export function boundedResponseString(value, minimum, maximum) {
48
+ if (typeof value !== 'string'
49
+ || hasUnpairedSurrogate(value)
50
+ || CONTROL_CHARACTER.test(value))
51
+ return invalidResponse();
52
+ const bytes = UTF8.encode(value).byteLength;
53
+ if (bytes < minimum || bytes > maximum)
54
+ return invalidResponse();
55
+ return value;
56
+ }
57
+ export function canonicalRelayUrl(value) {
58
+ const relayUrl = boundedResponseString(value, 1, 2_048);
59
+ let parsed;
60
+ try {
61
+ parsed = new URL(relayUrl);
62
+ }
63
+ catch {
64
+ return invalidResponse();
65
+ }
66
+ if (parsed.protocol !== 'wss:'
67
+ || parsed.hostname === ''
68
+ || parsed.username !== ''
69
+ || parsed.password !== ''
70
+ || parsed.search !== ''
71
+ || parsed.hash !== ''
72
+ || !parsed.pathname.endsWith('/ws')
73
+ || parsed.href !== relayUrl)
74
+ return invalidResponse();
75
+ return relayUrl;
76
+ }
77
+ export function parseResponseJson(input) {
78
+ let text;
79
+ try {
80
+ text = new TextDecoder('utf-8', { fatal: true }).decode(input);
81
+ }
82
+ catch {
83
+ return invalidResponse();
84
+ }
85
+ let index = 0;
86
+ let values = 0;
87
+ const skipWhitespace = () => {
88
+ while (index < text.length) {
89
+ const code = text.charCodeAt(index);
90
+ if (code !== 0x20 && code !== 0x09 && code !== 0x0a && code !== 0x0d)
91
+ break;
92
+ index += 1;
93
+ }
94
+ };
95
+ const parseString = () => {
96
+ if (text[index] !== '"')
97
+ return invalidResponse();
98
+ const start = index;
99
+ index += 1;
100
+ let escaped = false;
101
+ while (index < text.length) {
102
+ const character = text[index];
103
+ if (!escaped && character === '"') {
104
+ index += 1;
105
+ let decoded;
106
+ try {
107
+ decoded = JSON.parse(text.slice(start, index));
108
+ }
109
+ catch {
110
+ return invalidResponse();
111
+ }
112
+ if (typeof decoded !== 'string'
113
+ || hasUnpairedSurrogate(decoded)
114
+ || UTF8.encode(decoded).byteLength > MAXIMUM_JSON_STRING_BYTES) {
115
+ return invalidResponse();
116
+ }
117
+ return decoded;
118
+ }
119
+ if (!escaped && character === '\\')
120
+ escaped = true;
121
+ else
122
+ escaped = false;
123
+ index += 1;
124
+ }
125
+ return invalidResponse();
126
+ };
127
+ const parseNumber = () => {
128
+ const match = /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?/.exec(text.slice(index));
129
+ if (match === null)
130
+ return invalidResponse();
131
+ index += match[0].length;
132
+ const number = Number(match[0]);
133
+ if (!Number.isFinite(number))
134
+ return invalidResponse();
135
+ return number;
136
+ };
137
+ const parseValue = (depth) => {
138
+ if (depth > MAXIMUM_JSON_DEPTH)
139
+ return invalidResponse();
140
+ values += 1;
141
+ if (values > MAXIMUM_JSON_VALUES)
142
+ return invalidResponse();
143
+ skipWhitespace();
144
+ const character = text[index];
145
+ if (character === '"')
146
+ return parseString();
147
+ if (character === '-' || (character !== undefined && character >= '0' && character <= '9')) {
148
+ return parseNumber();
149
+ }
150
+ if (text.startsWith('true', index)) {
151
+ index += 4;
152
+ return true;
153
+ }
154
+ if (text.startsWith('false', index)) {
155
+ index += 5;
156
+ return false;
157
+ }
158
+ if (text.startsWith('null', index)) {
159
+ index += 4;
160
+ return null;
161
+ }
162
+ if (character === '[') {
163
+ index += 1;
164
+ const result = [];
165
+ skipWhitespace();
166
+ if (text[index] === ']') {
167
+ index += 1;
168
+ return result;
169
+ }
170
+ while (true) {
171
+ if (result.length >= MAXIMUM_JSON_ARRAY_ITEMS)
172
+ return invalidResponse();
173
+ result.push(parseValue(depth + 1));
174
+ skipWhitespace();
175
+ if (text[index] === ']') {
176
+ index += 1;
177
+ return result;
178
+ }
179
+ if (text[index] !== ',')
180
+ return invalidResponse();
181
+ index += 1;
182
+ skipWhitespace();
183
+ }
184
+ }
185
+ if (character === '{') {
186
+ index += 1;
187
+ const result = Object.create(null);
188
+ const keys = new Set();
189
+ skipWhitespace();
190
+ if (text[index] === '}') {
191
+ index += 1;
192
+ return result;
193
+ }
194
+ while (true) {
195
+ if (keys.size >= MAXIMUM_JSON_OBJECT_ENTRIES)
196
+ return invalidResponse();
197
+ const key = parseString();
198
+ if (keys.has(key) || key === '__proto__' || key === 'prototype' || key === 'constructor') {
199
+ return invalidResponse();
200
+ }
201
+ keys.add(key);
202
+ skipWhitespace();
203
+ if (text[index] !== ':')
204
+ return invalidResponse();
205
+ index += 1;
206
+ result[key] = parseValue(depth + 1);
207
+ skipWhitespace();
208
+ if (text[index] === '}') {
209
+ index += 1;
210
+ return result;
211
+ }
212
+ if (text[index] !== ',')
213
+ return invalidResponse();
214
+ index += 1;
215
+ skipWhitespace();
216
+ }
217
+ }
218
+ return invalidResponse();
219
+ };
220
+ skipWhitespace();
221
+ const parsed = parseValue(1);
222
+ skipWhitespace();
223
+ if (index !== text.length)
224
+ return invalidResponse();
225
+ return parsed;
226
+ }
227
+ export async function boundedResponseBody(response, signal) {
228
+ const contentLength = response.headers.get('content-length');
229
+ if (contentLength !== null
230
+ && (!/^(?:0|[1-9][0-9]*)$/.test(contentLength)
231
+ || Number(contentLength) > MAXIMUM_RESPONSE_BYTES)) {
232
+ cancelResponseBody(response);
233
+ return invalidResponse();
234
+ }
235
+ if (response.body === null)
236
+ return invalidResponse();
237
+ const reader = response.body.getReader();
238
+ const chunks = [];
239
+ let size = 0;
240
+ const cancelReader = () => {
241
+ try {
242
+ void reader.cancel().catch(() => undefined);
243
+ }
244
+ catch {
245
+ // The caller's validation or cancellation result remains authoritative.
246
+ }
247
+ };
248
+ if (signal !== undefined) {
249
+ signal.addEventListener('abort', cancelReader, { once: true });
250
+ if (signal.aborted)
251
+ cancelReader();
252
+ }
253
+ try {
254
+ while (true) {
255
+ const item = await reader.read();
256
+ if (item.done)
257
+ break;
258
+ size += item.value.byteLength;
259
+ if (size > MAXIMUM_RESPONSE_BYTES) {
260
+ cancelReader();
261
+ return invalidResponse();
262
+ }
263
+ chunks.push(item.value);
264
+ }
265
+ }
266
+ catch {
267
+ return invalidResponse();
268
+ }
269
+ finally {
270
+ signal?.removeEventListener('abort', cancelReader);
271
+ reader.releaseLock();
272
+ }
273
+ if (size === 0)
274
+ return invalidResponse();
275
+ const body = new Uint8Array(size);
276
+ let offset = 0;
277
+ for (const chunk of chunks) {
278
+ body.set(chunk, offset);
279
+ offset += chunk.byteLength;
280
+ }
281
+ return body;
282
+ }
283
+ //# sourceMappingURL=control-plane-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-plane-response.js","sourceRoot":"","sources":["../../src/internal/control-plane-response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { CoordinatorAccess, CoordinatorConfiguration, DeclarationReceipt, EventDeclaration, FunctionHandler, ProtocolValue, UserEventAccess, UserStateAccess } from '../api.js';
2
+ import { type Frame } from '../protocol/codec.js';
3
+ import { type CoordinatorError } from './errors.js';
4
+ import type { RelaySession } from './session.js';
5
+ export type DeclarationDomain = 'state' | 'state_access' | 'events' | 'event_access' | 'functions';
6
+ export declare const DECLARATION_DOMAINS: readonly DeclarationDomain[];
7
+ interface DeclarationRevisions {
8
+ state: number;
9
+ state_access: number;
10
+ events: number;
11
+ event_access: number;
12
+ functions: number;
13
+ }
14
+ export interface DeclarationSnapshot {
15
+ state: Readonly<Record<string, ProtocolValue>>;
16
+ stateAccess: readonly UserStateAccess[];
17
+ events: readonly EventDeclaration[];
18
+ eventAccess: readonly UserEventAccess[];
19
+ functions: Readonly<Record<string, FunctionHandler>>;
20
+ revisions: DeclarationRevisions;
21
+ }
22
+ export interface ActiveDeclarations {
23
+ readonly snapshot: DeclarationSnapshot;
24
+ readonly receipt: DeclarationReceipt;
25
+ readonly stateIds: ReadonlyMap<string, number>;
26
+ readonly topicIds: ReadonlyMap<string, number>;
27
+ readonly functionIds: ReadonlyMap<string, number>;
28
+ }
29
+ export interface DeclarationHost {
30
+ nextRequestId(): number;
31
+ currentSession(): RelaySession | undefined;
32
+ synchronizing(): void;
33
+ activeDeclarationsChanged(active: ActiveDeclarations): void;
34
+ declarationsReady(receipt: DeclarationReceipt): void;
35
+ declarationFailure(failure: CoordinatorError, hasActiveConfiguration: boolean, hasQueuedSnapshot: boolean): void;
36
+ transportFailure(error: unknown): void;
37
+ }
38
+ export declare class DeclarationManager {
39
+ #private;
40
+ constructor(host: DeclarationHost);
41
+ get desired(): DeclarationSnapshot;
42
+ get active(): ActiveDeclarations | undefined;
43
+ configure(configuration: CoordinatorConfiguration): void;
44
+ declareState(state: Readonly<Record<string, ProtocolValue>>, signal?: AbortSignal): Promise<DeclarationReceipt>;
45
+ declareStateAccess(stateAccess: readonly UserStateAccess[], signal?: AbortSignal): Promise<DeclarationReceipt>;
46
+ declareEvents(events: readonly EventDeclaration[], signal?: AbortSignal): Promise<DeclarationReceipt>;
47
+ declareEventAccess(eventAccess: readonly UserEventAccess[], signal?: AbortSignal): Promise<DeclarationReceipt>;
48
+ declareFunctions(functions: Readonly<Record<string, FunctionHandler>>, signal?: AbortSignal): Promise<DeclarationReceipt>;
49
+ synchronize(session: RelaySession): void;
50
+ handleFrame(frame: Frame): boolean;
51
+ handleError(requestId: number, code: number, retryable: boolean): boolean;
52
+ disconnected(): void;
53
+ stop(): void;
54
+ }
55
+ export declare class AccessManager implements CoordinatorAccess {
56
+ #private;
57
+ constructor(declarations: DeclarationManager);
58
+ declareState(entries: readonly UserStateAccess[], options?: import('../api.js').DeclarationOptions): Promise<DeclarationReceipt>;
59
+ declareEvents(entries: readonly UserEventAccess[], options?: import('../api.js').DeclarationOptions): Promise<DeclarationReceipt>;
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=declarations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations.d.ts","sourceRoot":"","sources":["../../src/internal/declarations.ts"],"names":[],"mappings":"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"}