@rool-dev/sdk 0.10.1 → 0.10.2-dev.0bf8edb
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 +79 -179
- package/dist/channel.d.ts +41 -129
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +220 -394
- package/dist/channel.js.map +1 -1
- package/dist/client.d.ts +3 -55
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -93
- package/dist/client.js.map +1 -1
- package/dist/graphql.d.ts +4 -46
- package/dist/graphql.d.ts.map +1 -1
- package/dist/graphql.js +28 -233
- package/dist/graphql.js.map +1 -1
- package/dist/index.d.ts +3 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/path.d.ts +6 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +47 -0
- package/dist/path.js.map +1 -0
- package/dist/reroute.d.ts +22 -0
- package/dist/reroute.d.ts.map +1 -0
- package/dist/reroute.js +61 -0
- package/dist/reroute.js.map +1 -0
- package/dist/rest.d.ts +9 -0
- package/dist/rest.d.ts.map +1 -1
- package/dist/rest.js +33 -1
- package/dist/rest.js.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +25 -10
- package/dist/router.js.map +1 -1
- package/dist/space.d.ts +10 -17
- package/dist/space.d.ts.map +1 -1
- package/dist/space.js +79 -55
- package/dist/space.js.map +1 -1
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +40 -32
- package/dist/subscription.js.map +1 -1
- package/dist/types.d.ts +52 -217
- package/dist/types.d.ts.map +1 -1
- package/dist/webdav.d.ts +44 -21
- package/dist/webdav.d.ts.map +1 -1
- package/dist/webdav.js +94 -57
- package/dist/webdav.js.map +1 -1
- package/package.json +2 -1
- package/dist/apps.d.ts +0 -30
- package/dist/apps.d.ts.map +0 -1
- package/dist/apps.js +0 -81
- package/dist/apps.js.map +0 -1
- package/dist/locations.d.ts +0 -34
- package/dist/locations.d.ts.map +0 -1
- package/dist/locations.js +0 -90
- package/dist/locations.js.map +0 -1
- package/dist/machine.d.ts +0 -16
- package/dist/machine.d.ts.map +0 -1
- package/dist/machine.js +0 -51
- package/dist/machine.js.map +0 -1
package/dist/webdav.js
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
+
import { machinePath } from './path.js';
|
|
2
|
+
import { fetchWithReroute, isThrowRetryable } from './reroute.js';
|
|
1
3
|
const XML_HEADER = '<?xml version="1.0" encoding="utf-8"?>';
|
|
4
|
+
function getTimezone() {
|
|
5
|
+
try {
|
|
6
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
2
12
|
const KNOWN_PROPS = [
|
|
3
13
|
'creationdate',
|
|
4
14
|
'displayname',
|
|
@@ -12,6 +22,8 @@ const KNOWN_PROPS = [
|
|
|
12
22
|
'resourcetype',
|
|
13
23
|
'supportedlock',
|
|
14
24
|
'current-user-privilege-set',
|
|
25
|
+
'supported-report-set',
|
|
26
|
+
'sync-token',
|
|
15
27
|
];
|
|
16
28
|
export class WebDAVError extends Error {
|
|
17
29
|
status;
|
|
@@ -30,38 +42,48 @@ export class RoolWebDAV {
|
|
|
30
42
|
webdavUrl;
|
|
31
43
|
spaceId;
|
|
32
44
|
authManager;
|
|
45
|
+
onRefused;
|
|
33
46
|
constructor(config) {
|
|
34
|
-
this.webdavUrl = config.webdavUrl
|
|
47
|
+
this.webdavUrl = normalizeWebDAVBaseUrl(config.webdavUrl);
|
|
35
48
|
this.spaceId = config.spaceId;
|
|
36
49
|
this.authManager = config.authManager;
|
|
50
|
+
this.onRefused = config.onRefused;
|
|
37
51
|
}
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
|
|
52
|
+
/** Update the WebDAV base URL (used after shard rerouting). */
|
|
53
|
+
setWebDAVUrl(webdavUrl) {
|
|
54
|
+
this.webdavUrl = normalizeWebDAVBaseUrl(webdavUrl);
|
|
41
55
|
}
|
|
42
|
-
/** Return the WebDAV href for a
|
|
43
|
-
href(path = '', options) {
|
|
56
|
+
/** Return the WebDAV href for a machine path. */
|
|
57
|
+
href(path = '/', options) {
|
|
44
58
|
return this.pathUrl(path, options).href;
|
|
45
59
|
}
|
|
46
|
-
/** Return the absolute WebDAV URL for a
|
|
47
|
-
url(path = '', options) {
|
|
60
|
+
/** Return the absolute WebDAV URL for a machine path. */
|
|
61
|
+
url(path = '/', options) {
|
|
48
62
|
const davPath = this.pathUrl(path, options);
|
|
49
|
-
return `${this.webdavUrl}${davPath.href
|
|
63
|
+
return `${this.webdavUrl}${davPath.href}`;
|
|
50
64
|
}
|
|
51
|
-
/** Low-level WebDAV request for a
|
|
52
|
-
async request(method, path = '', init = {}) {
|
|
65
|
+
/** Low-level WebDAV request for a machine path. Adds Rool auth and returns the raw Response. */
|
|
66
|
+
async request(method, path = '/', init = {}) {
|
|
53
67
|
const { collection, ...fetchInit } = init;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
68
|
+
const requestInit = { ...fetchInit, method };
|
|
69
|
+
// 421 (wrong shard) and 503 (draining) reject before executing server-side;
|
|
70
|
+
// a node that rolled fully away rejects the fetch opaquely (no CORS on the
|
|
71
|
+
// LB's 5xx). Both re-resolve the owner and retry. A one-shot ReadableStream
|
|
72
|
+
// body can't be re-sent, so it disables retries.
|
|
73
|
+
const onRefused = this.onRefused;
|
|
74
|
+
const bodyIsStream = typeof ReadableStream !== 'undefined' && requestInit.body instanceof ReadableStream;
|
|
75
|
+
return fetchWithReroute({
|
|
76
|
+
send: () => this.authenticatedFetch(this.url(path, { collection }), requestInit),
|
|
77
|
+
reroute: onRefused ? async () => this.setWebDAVUrl(await onRefused()) : undefined,
|
|
78
|
+
retryOnThrow: isThrowRetryable(method) && !bodyIsStream,
|
|
57
79
|
});
|
|
58
80
|
}
|
|
59
|
-
async options(path = '') {
|
|
81
|
+
async options(path = '/') {
|
|
60
82
|
return this.request('OPTIONS', path);
|
|
61
83
|
}
|
|
62
84
|
async propfind(path, options) {
|
|
63
85
|
const response = await this.request('PROPFIND', path, {
|
|
64
|
-
collection:
|
|
86
|
+
collection: true,
|
|
65
87
|
signal: options.signal,
|
|
66
88
|
headers: {
|
|
67
89
|
Depth: options.depth,
|
|
@@ -73,6 +95,21 @@ export class RoolWebDAV {
|
|
|
73
95
|
const xml = await response.text();
|
|
74
96
|
return parseMultiStatus(xml, this.spaceId);
|
|
75
97
|
}
|
|
98
|
+
async syncCollection(path, options) {
|
|
99
|
+
const response = await this.request('REPORT', path, {
|
|
100
|
+
collection: true,
|
|
101
|
+
signal: options.signal,
|
|
102
|
+
headers: { 'Content-Type': 'application/xml; charset=utf-8' },
|
|
103
|
+
body: syncCollectionXml(options),
|
|
104
|
+
});
|
|
105
|
+
await assertStatus(response, 207);
|
|
106
|
+
const xml = await response.text();
|
|
107
|
+
const multistatus = parseMultiStatus(xml, this.spaceId);
|
|
108
|
+
const token = textOf(xml, 'sync-token');
|
|
109
|
+
if (!token)
|
|
110
|
+
throw new Error('sync-collection response missing sync-token');
|
|
111
|
+
return { ...multistatus, token };
|
|
112
|
+
}
|
|
76
113
|
/** Return WebDAV quota usage for this space. */
|
|
77
114
|
async getStorageUsage() {
|
|
78
115
|
const result = await this.propfind('', {
|
|
@@ -123,7 +160,7 @@ export class RoolWebDAV {
|
|
|
123
160
|
}
|
|
124
161
|
async delete(path, options = {}) {
|
|
125
162
|
const response = await this.request('DELETE', path, {
|
|
126
|
-
collection:
|
|
163
|
+
collection: options.collection,
|
|
127
164
|
headers: writeHeaders(options),
|
|
128
165
|
});
|
|
129
166
|
await assertStatus(response, 204);
|
|
@@ -151,7 +188,7 @@ export class RoolWebDAV {
|
|
|
151
188
|
if (options.timeoutSeconds)
|
|
152
189
|
headers.set('Timeout', `Second-${options.timeoutSeconds}`);
|
|
153
190
|
const response = await this.request('LOCK', path, {
|
|
154
|
-
collection:
|
|
191
|
+
collection: options.collection,
|
|
155
192
|
signal: options.signal,
|
|
156
193
|
headers,
|
|
157
194
|
body: lockXml(options.owner ?? ''),
|
|
@@ -164,7 +201,7 @@ export class RoolWebDAV {
|
|
|
164
201
|
if (options.timeoutSeconds)
|
|
165
202
|
headers.set('Timeout', `Second-${options.timeoutSeconds}`);
|
|
166
203
|
const response = await this.request('LOCK', path, {
|
|
167
|
-
collection:
|
|
204
|
+
collection: options.collection,
|
|
168
205
|
signal: options.signal,
|
|
169
206
|
headers,
|
|
170
207
|
});
|
|
@@ -172,7 +209,7 @@ export class RoolWebDAV {
|
|
|
172
209
|
return lockResult(response, await response.text());
|
|
173
210
|
}
|
|
174
211
|
async unlock(token) {
|
|
175
|
-
const response = await this.request('UNLOCK', '', {
|
|
212
|
+
const response = await this.request('UNLOCK', '/', {
|
|
176
213
|
collection: true,
|
|
177
214
|
headers: { 'Lock-Token': `<${token}>` },
|
|
178
215
|
});
|
|
@@ -180,13 +217,12 @@ export class RoolWebDAV {
|
|
|
180
217
|
}
|
|
181
218
|
async moveOrCopy(method, source, destination, options) {
|
|
182
219
|
const headers = writeHeaders(options);
|
|
183
|
-
headers.set('Destination', this.url(destination
|
|
220
|
+
headers.set('Destination', this.url(destination));
|
|
184
221
|
if (options.overwrite !== undefined)
|
|
185
222
|
headers.set('Overwrite', options.overwrite ? 'T' : 'F');
|
|
186
223
|
if (method === 'COPY' && options.depth)
|
|
187
224
|
headers.set('Depth', options.depth);
|
|
188
225
|
const response = await this.request(method, source, {
|
|
189
|
-
collection: isCollectionInput(source),
|
|
190
226
|
headers,
|
|
191
227
|
});
|
|
192
228
|
await assertStatus(response, 201, 204);
|
|
@@ -199,6 +235,9 @@ export class RoolWebDAV {
|
|
|
199
235
|
const headers = new Headers(init.headers);
|
|
200
236
|
headers.set('Authorization', `Bearer ${tokens.accessToken}`);
|
|
201
237
|
headers.set('X-Rool-Token', tokens.roolToken);
|
|
238
|
+
const timezone = getTimezone();
|
|
239
|
+
if (timezone)
|
|
240
|
+
headers.set('X-Timezone', timezone);
|
|
202
241
|
const requestInit = { ...init, headers };
|
|
203
242
|
if (typeof ReadableStream !== 'undefined' && init.body instanceof ReadableStream) {
|
|
204
243
|
requestInit.duplex = 'half';
|
|
@@ -206,40 +245,25 @@ export class RoolWebDAV {
|
|
|
206
245
|
return fetch(url, requestInit);
|
|
207
246
|
}
|
|
208
247
|
pathUrl(path, options) {
|
|
209
|
-
const
|
|
210
|
-
|
|
248
|
+
const parsed = machinePath(path, { spaceId: this.spaceId });
|
|
249
|
+
if (parsed !== '/' && parsed !== '/space' && !parsed.startsWith('/space/') && parsed !== '/rool-drive' && !parsed.startsWith('/rool-drive/')) {
|
|
250
|
+
throw new Error('WebDAV paths must be machine paths under /space or /rool-drive');
|
|
251
|
+
}
|
|
252
|
+
const isCollection = options?.collection ?? parsed === '/';
|
|
211
253
|
const encodedSpace = encodeURIComponent(this.spaceId);
|
|
212
|
-
const encodedPath =
|
|
213
|
-
|
|
214
|
-
.
|
|
215
|
-
.map(encodeURIComponent)
|
|
216
|
-
.join('/');
|
|
254
|
+
const encodedPath = parsed === '/'
|
|
255
|
+
? ''
|
|
256
|
+
: parsed.slice(1).split('/').map(encodeURIComponent).join('/');
|
|
217
257
|
const suffix = encodedPath ? `/${encodedPath}` : '';
|
|
218
258
|
return {
|
|
219
|
-
href: `/
|
|
220
|
-
path:
|
|
259
|
+
href: `/space/${encodedSpace}${suffix}${isCollection ? '/' : ''}`,
|
|
260
|
+
path: parsed,
|
|
221
261
|
isCollection,
|
|
222
262
|
};
|
|
223
263
|
}
|
|
224
264
|
}
|
|
225
|
-
function
|
|
226
|
-
return
|
|
227
|
-
}
|
|
228
|
-
function normalizeWebDAVPath(path) {
|
|
229
|
-
const normalized = path.replace(/\/+$/, '');
|
|
230
|
-
if (normalized === '')
|
|
231
|
-
return '';
|
|
232
|
-
if (path.startsWith('/') || path.includes('\\'))
|
|
233
|
-
throw new Error('Invalid WebDAV path');
|
|
234
|
-
if (/^[a-z][a-z0-9+.-]*:/i.test(path))
|
|
235
|
-
throw new Error('Invalid WebDAV path');
|
|
236
|
-
if (/[\x00-\x1f\x7f]/.test(path))
|
|
237
|
-
throw new Error('Invalid WebDAV path');
|
|
238
|
-
const parts = normalized.split('/');
|
|
239
|
-
if (parts.some((part) => part === '' || part === '.' || part === '..')) {
|
|
240
|
-
throw new Error('Invalid WebDAV path');
|
|
241
|
-
}
|
|
242
|
-
return normalized;
|
|
265
|
+
function normalizeWebDAVBaseUrl(url) {
|
|
266
|
+
return url.replace(/\/+$/, '').replace(/\/dav$/, '');
|
|
243
267
|
}
|
|
244
268
|
function rangeHeader(range) {
|
|
245
269
|
if (typeof range === 'string')
|
|
@@ -253,7 +277,7 @@ function rangeHeader(range) {
|
|
|
253
277
|
return `bytes=${range.start}-${range.end}`;
|
|
254
278
|
}
|
|
255
279
|
function writeHeaders(options) {
|
|
256
|
-
const headers = new Headers();
|
|
280
|
+
const headers = new Headers(options.headers);
|
|
257
281
|
if (options.ifMatch)
|
|
258
282
|
headers.set('If-Match', options.ifMatch);
|
|
259
283
|
if (options.ifNoneMatch)
|
|
@@ -272,6 +296,18 @@ function propfindXml(props) {
|
|
|
272
296
|
const names = props.map((name) => `<d:${name}/>`).join('');
|
|
273
297
|
return `${XML_HEADER}<d:propfind xmlns:d="DAV:"><d:prop>${names}</d:prop></d:propfind>`;
|
|
274
298
|
}
|
|
299
|
+
function syncCollectionXml(options) {
|
|
300
|
+
if (options.limit !== undefined && (!Number.isSafeInteger(options.limit) || options.limit <= 0)) {
|
|
301
|
+
throw new Error('Invalid sync-collection limit');
|
|
302
|
+
}
|
|
303
|
+
const token = `<d:sync-token>${xmlEscape(options.token ?? '')}</d:sync-token>`;
|
|
304
|
+
const level = `<d:sync-level>${options.level}</d:sync-level>`;
|
|
305
|
+
const props = !options.props || options.props === 'allprop'
|
|
306
|
+
? '<d:prop><d:displayname/><d:getcontentlength/><d:getcontenttype/><d:getetag/><d:getlastmodified/><d:resourcetype/></d:prop>'
|
|
307
|
+
: `<d:prop>${options.props.map((name) => `<d:${name}/>`).join('')}</d:prop>`;
|
|
308
|
+
const limit = options.limit ? `<d:limit><d:nresults>${options.limit}</d:nresults></d:limit>` : '';
|
|
309
|
+
return `${XML_HEADER}<d:sync-collection xmlns:d="DAV:">${token}${level}${props}${limit}</d:sync-collection>`;
|
|
310
|
+
}
|
|
275
311
|
function lockXml(owner) {
|
|
276
312
|
return `${XML_HEADER}<d:lockinfo xmlns:d="DAV:"><d:lockscope><d:exclusive/></d:lockscope><d:locktype><d:write/></d:locktype><d:owner>${xmlEscape(owner)}</d:owner></d:lockinfo>`;
|
|
277
313
|
}
|
|
@@ -351,6 +387,8 @@ function parsePropValue(name, raw) {
|
|
|
351
387
|
return { canWrite: hasTag(raw, 'write') || hasTag(raw, 'bind') };
|
|
352
388
|
if (name === 'supportedlock')
|
|
353
389
|
return { write: hasTag(raw, 'write') };
|
|
390
|
+
if (name === 'supported-report-set')
|
|
391
|
+
return { reports: hasTag(raw, 'sync-collection') ? ['sync-collection'] : [] };
|
|
354
392
|
return xmlUnescape(stripTags(raw));
|
|
355
393
|
}
|
|
356
394
|
function toWebDAVProps(raw) {
|
|
@@ -362,6 +400,11 @@ function toWebDAVProps(raw) {
|
|
|
362
400
|
}
|
|
363
401
|
if (Array.isArray(raw.lockdiscovery))
|
|
364
402
|
props.locks = raw.lockdiscovery;
|
|
403
|
+
if (typeof raw['sync-token'] === 'string')
|
|
404
|
+
props.syncToken = raw['sync-token'];
|
|
405
|
+
const supportedReports = raw['supported-report-set'];
|
|
406
|
+
if (supportedReports?.reports)
|
|
407
|
+
props.supportedReports = supportedReports.reports;
|
|
365
408
|
const privileges = raw['current-user-privilege-set'];
|
|
366
409
|
if (privileges)
|
|
367
410
|
props.canWrite = !!privileges.canWrite;
|
|
@@ -393,13 +436,7 @@ function parseTimeout(value) {
|
|
|
393
436
|
}
|
|
394
437
|
function pathFromHref(href, spaceId) {
|
|
395
438
|
try {
|
|
396
|
-
|
|
397
|
-
const parts = pathname.split('/').filter(Boolean).map(decodeURIComponent);
|
|
398
|
-
if (parts[0] !== 'dav')
|
|
399
|
-
return href;
|
|
400
|
-
if (parts[1] !== spaceId)
|
|
401
|
-
return parts.slice(2).join('/');
|
|
402
|
-
return parts.slice(2).join('/');
|
|
439
|
+
return machinePath(href, { spaceId });
|
|
403
440
|
}
|
|
404
441
|
catch {
|
|
405
442
|
return href;
|
package/dist/webdav.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webdav.js","sourceRoot":"","sources":["../src/webdav.ts"],"names":[],"mappings":"AAoGA,MAAM,UAAU,GAAG,wCAAwC,CAAC;AAC5D,MAAM,WAAW,GAAG;IAClB,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,SAAS;IACT,iBAAiB;IACjB,eAAe;IACf,uBAAuB;IACvB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,4BAA4B;CACpB,CAAC;AAEX,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,IAAI,CAAS;IAEb,YAAY,QAAkB,EAAE,IAAY;QAC1C,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,8DAA8D;AAC9D,MAAM,OAAO,UAAU;IACb,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,WAAW,CAAc;IAEjC,YAAY,MAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACxC,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,IAAqB;QACxB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,wDAAwD;IACxD,IAAI,CAAC,OAAwB,EAAE,EAAE,OAAkC;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED,gEAAgE;IAChE,GAAG,CAAC,OAAwB,EAAE,EAAE,OAAkC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAwB,EAAE,EAAE,OAA0B,EAAE;QACpF,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;YAC7D,GAAG,SAAS;YACZ,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwB,EAAE;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAqB,EAAE,OAIrC;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE;YACpD,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,cAAc,EAAE,gCAAgC;aACjD;YACD,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACjC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,eAAe;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACrC,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;SACrD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,EAAE,cAAc,CAAC;QACxC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,KAAK,EAAE,mBAAmB,KAAK,QAAQ;YACnE,CAAC,CAAC,KAAK,CAAC,mBAAmB;YAC3B,CAAC,CAAC,IAAI,CAAC;QAET,OAAO;YACL,SAAS;YACT,cAAc;YACd,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc;SACxE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAqB,EAAE,UAG7B,EAAE;QACJ,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAqB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAqB,EAAE,IAAc,EAAE,UAM7C,EAAE;QACJ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,IAAI;SACL,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAqB,EAAE,UAGhC,EAAE;QACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;YAClD,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACnC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;SAC/B,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAqB,EAAE,UAAkC,EAAE;QACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE;YACjD,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;SAC/B,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAuB,EAAE,WAA4B,EAAE,UAI9D,EAAE;QACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7E,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAuB,EAAE,WAA4B,EAAE,UAG9D,EAAE;QACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7E,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAqB,EAAE,OAKjC;QACC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,cAAc,EAAE,gCAAgC;SACjD,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,cAAc;YAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAEvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;YAChD,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAqB,EAAE,KAAa,EAAE,UAGpD,EAAE;QACJ,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,cAAc;YAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAEvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;YAChD,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE;YAChD,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,KAAK,GAAG,EAAE;SACxC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAuB,EAAE,MAAuB,EAAE,WAA4B,EAAE,OAIxG;QACC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAClG,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7F,IAAI,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;YAClD,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC;YACrC,OAAO;SACR,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,IAAiB;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAE9C,MAAM,WAAW,GAAsC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;QAC5E,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,YAAY,cAAc,EAAE,CAAC;YACjF,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjC,CAAC;IAEO,OAAO,CAAC,IAAqB,EAAE,OAAkC;QACvE,MAAM,YAAY,GAAG,OAAO,EAAE,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,UAAU;aAC3B,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,kBAAkB,CAAC;aACvB,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO;YACL,IAAI,EAAE,QAAQ,YAAY,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/D,IAAI,EAAE,UAAU;YAChB,YAAY;SACb,CAAC;IACJ,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,IAAqB;IAC9C,OAAO,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAqB;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACxF,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC9E,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEzE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,KAA+C;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAClG,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,KAAK,CAAC,KAAK,GAAG,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtG,OAAO,SAAS,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,OAIrB;IACC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,KAA4D;IAC/E,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,GAAG,UAAU,sDAAsD,CAAC;IAC7E,CAAC;IACD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,GAAG,UAAU,uDAAuD,CAAC;IAC9E,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,GAAG,UAAU,sCAAsC,KAAK,wBAAwB,CAAC;AAC1F,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,GAAG,UAAU,mHAAmH,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC;AACnL,CAAC;AAED,SAAS,WAAW,CAAC,QAAkB;IACrC,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAyB;QAC1C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAClC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAkB;IACxC,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAO;IACxB,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAkB,EAAE,GAAG,QAAkB;IACnE,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO;IAC/C,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB,EAAE,GAAW;IACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACxF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,WAAW,CAAC;IAC7C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAEhE,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAmB;QACpC,KAAK;QACL,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzF,KAAK;QACL,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,OAAe;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACpG,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,OAAe;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IACnF,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE/E,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;QACjC,YAAY;QACZ,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzC,KAAK;QACL,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/D,IAAI,GAAG,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC;QAC9C,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,GAAW;IAC/C,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACnG,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IACD,IAAI,IAAI,KAAK,cAAc;QAAE,OAAO,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC3D,IAAI,IAAI,KAAK,4BAA4B;QAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;IAC5G,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;IACrE,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,GAA4B;IACjD,MAAM,KAAK,GAAgB,EAAE,GAAG,GAAG,EAAE,CAAC;IAEtC,IAAI,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,QAAQ;QAAE,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChG,IAAI,OAAO,GAAG,CAAC,uBAAuB,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,uBAAuB,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9F,KAAK,CAAC,mBAAmB,GAAG,GAAG,CAAC,uBAAuB,CAAkB,CAAC;IAC5E,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,aAAmC,CAAC;IAC5F,MAAM,UAAU,GAAG,GAAG,CAAC,4BAA4B,CAAuC,CAAC;IAC3F,IAAI,UAAU;QAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;IAEvD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpD,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QACnG,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;QAClC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,cAAc,EAAE,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QAChG,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QACzJ,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KAC5E,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB;IACxC,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,OAAe;IACjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC;QAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,IAAY;IACvC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,IAAY;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,IAAY;IAC5C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,IAAY;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,IAAY;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,KAAK,GAAG,EAAE;IACrC,OAAO,IAAI,MAAM,CAAC,uBAAuB,QAAQ,CAAC,IAAI,CAAC,+CAA+C,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClI,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,MAAM,CAAC,uBAAuB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,UAAU,CAAC,MAAqB;IACvC,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK;SACT,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"webdav.js","sourceRoot":"","sources":["../src/webdav.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rool-dev/sdk",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.2-dev.0bf8edb",
|
|
4
4
|
"description": "TypeScript SDK for working with Rool Spaces",
|
|
5
5
|
"packageManager": "pnpm@10.17.1",
|
|
6
6
|
"type": "module",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"build": "tsc",
|
|
25
25
|
"dev": "tsc --watch",
|
|
26
26
|
"typecheck": "tsc --noEmit",
|
|
27
|
+
"test": "node --import tsx --test test/*.test.ts",
|
|
27
28
|
"clean": "rm -rf dist",
|
|
28
29
|
"eval": "node --import tsx eval/main.ts"
|
|
29
30
|
},
|
package/dist/apps.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { ExtensionInfo, UploadExtensionOptions } from './types.js';
|
|
2
|
-
import type { AuthManager } from './auth.js';
|
|
3
|
-
export interface ExtensionsClientConfig {
|
|
4
|
-
extensionsUrl: string;
|
|
5
|
-
authManager: AuthManager;
|
|
6
|
-
}
|
|
7
|
-
export declare class ExtensionsClient {
|
|
8
|
-
private config;
|
|
9
|
-
constructor(config: ExtensionsClientConfig);
|
|
10
|
-
private getHeaders;
|
|
11
|
-
/**
|
|
12
|
-
* List all user extensions.
|
|
13
|
-
*/
|
|
14
|
-
list(): Promise<ExtensionInfo[]>;
|
|
15
|
-
/**
|
|
16
|
-
* Get info for a specific user extension.
|
|
17
|
-
*/
|
|
18
|
-
get(extensionId: string): Promise<ExtensionInfo | null>;
|
|
19
|
-
/**
|
|
20
|
-
* Upload or update a user extension bundle.
|
|
21
|
-
* @param extensionId - URL-safe identifier for the extension
|
|
22
|
-
* @param options - Bundle zip file (must include index.html and manifest.json)
|
|
23
|
-
*/
|
|
24
|
-
upload(extensionId: string, options: UploadExtensionOptions): Promise<ExtensionInfo>;
|
|
25
|
-
/**
|
|
26
|
-
* Delete a user extension permanently.
|
|
27
|
-
*/
|
|
28
|
-
delete(extensionId: string): Promise<void>;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=apps.d.ts.map
|
package/dist/apps.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,EAAE,sBAAsB;YAI5B,UAAU;IAMxB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IActC;;OAEG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAe7D;;;;OAIG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmB1F;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUjD"}
|
package/dist/apps.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
// =============================================================================
|
|
2
|
-
// Extensions Client
|
|
3
|
-
// REST API wrapper for user extension management (upload/delete/list/get)
|
|
4
|
-
// =============================================================================
|
|
5
|
-
function normalizeExtensionInfo(raw) {
|
|
6
|
-
return { ...raw, published: raw.published ?? false, marketplaceExtensionId: raw.marketplaceExtensionId ?? null };
|
|
7
|
-
}
|
|
8
|
-
export class ExtensionsClient {
|
|
9
|
-
config;
|
|
10
|
-
constructor(config) {
|
|
11
|
-
this.config = config;
|
|
12
|
-
}
|
|
13
|
-
async getHeaders() {
|
|
14
|
-
const tokens = await this.config.authManager.getTokens();
|
|
15
|
-
if (!tokens)
|
|
16
|
-
throw new Error('Not authenticated');
|
|
17
|
-
return { Authorization: `Bearer ${tokens.accessToken}`, 'X-Rool-Token': tokens.roolToken };
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* List all user extensions.
|
|
21
|
-
*/
|
|
22
|
-
async list() {
|
|
23
|
-
const response = await fetch(this.config.extensionsUrl, {
|
|
24
|
-
method: 'GET',
|
|
25
|
-
headers: await this.getHeaders(),
|
|
26
|
-
});
|
|
27
|
-
if (!response.ok) {
|
|
28
|
-
throw new Error(`Failed to list extensions: ${response.status} ${response.statusText}`);
|
|
29
|
-
}
|
|
30
|
-
const rows = await response.json();
|
|
31
|
-
return rows.map(normalizeExtensionInfo);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Get info for a specific user extension.
|
|
35
|
-
*/
|
|
36
|
-
async get(extensionId) {
|
|
37
|
-
const response = await fetch(`${this.config.extensionsUrl}/${encodeURIComponent(extensionId)}`, {
|
|
38
|
-
method: 'GET',
|
|
39
|
-
headers: await this.getHeaders(),
|
|
40
|
-
});
|
|
41
|
-
if (response.status === 404)
|
|
42
|
-
return null;
|
|
43
|
-
if (!response.ok) {
|
|
44
|
-
throw new Error(`Failed to get extension: ${response.status} ${response.statusText}`);
|
|
45
|
-
}
|
|
46
|
-
return normalizeExtensionInfo(await response.json());
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Upload or update a user extension bundle.
|
|
50
|
-
* @param extensionId - URL-safe identifier for the extension
|
|
51
|
-
* @param options - Bundle zip file (must include index.html and manifest.json)
|
|
52
|
-
*/
|
|
53
|
-
async upload(extensionId, options) {
|
|
54
|
-
const formData = new FormData();
|
|
55
|
-
formData.append('bundle', options.bundle);
|
|
56
|
-
const response = await fetch(`${this.config.extensionsUrl}/${encodeURIComponent(extensionId)}`, {
|
|
57
|
-
method: 'POST',
|
|
58
|
-
headers: await this.getHeaders(),
|
|
59
|
-
body: formData,
|
|
60
|
-
});
|
|
61
|
-
if (!response.ok) {
|
|
62
|
-
const errorBody = await response.json().catch(() => ({}));
|
|
63
|
-
const errorMessage = errorBody.error || `${response.status} ${response.statusText}`;
|
|
64
|
-
throw new Error(`Failed to upload extension: ${errorMessage}`);
|
|
65
|
-
}
|
|
66
|
-
return normalizeExtensionInfo(await response.json());
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Delete a user extension permanently.
|
|
70
|
-
*/
|
|
71
|
-
async delete(extensionId) {
|
|
72
|
-
const response = await fetch(`${this.config.extensionsUrl}/${encodeURIComponent(extensionId)}`, {
|
|
73
|
-
method: 'DELETE',
|
|
74
|
-
headers: await this.getHeaders(),
|
|
75
|
-
});
|
|
76
|
-
if (!response.ok && response.status !== 204) {
|
|
77
|
-
throw new Error(`Failed to delete extension: ${response.status} ${response.statusText}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=apps.js.map
|
package/dist/apps.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"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"}
|
package/dist/locations.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
export interface ParsedLocation {
|
|
2
|
-
collection: string;
|
|
3
|
-
basename: string;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Generate a 6-character alphanumeric basename.
|
|
7
|
-
* 62^6 ≈ 56.8B possible values.
|
|
8
|
-
*/
|
|
9
|
-
export declare function generateBasename(): string;
|
|
10
|
-
/**
|
|
11
|
-
* Build a canonical location string from a collection and basename.
|
|
12
|
-
* Validates both parts. Throws on invalid input.
|
|
13
|
-
*/
|
|
14
|
-
export declare function loc(collection: string, basename: string): string;
|
|
15
|
-
/**
|
|
16
|
-
* Parse a canonical location string into its collection and basename.
|
|
17
|
-
* Throws on malformed input. Use {@link normalizeLocation} first if the
|
|
18
|
-
* input might be a short form like `"article/welcome"`.
|
|
19
|
-
*/
|
|
20
|
-
export declare function parseLocation(location: string): ParsedLocation;
|
|
21
|
-
/**
|
|
22
|
-
* Normalize a user-provided location to the canonical full form.
|
|
23
|
-
*
|
|
24
|
-
* Accepts:
|
|
25
|
-
* - `/space/<collection>/<basename>.json` — canonical
|
|
26
|
-
* - `<collection>/<basename>` — short form
|
|
27
|
-
* - `<collection>/<basename>.json` — short form with extension
|
|
28
|
-
*
|
|
29
|
-
* Always returns the canonical form. Throws on malformed input.
|
|
30
|
-
*/
|
|
31
|
-
export declare function normalizeLocation(input: string): string;
|
|
32
|
-
/** Return true if `input` is a syntactically valid (full or short) location. */
|
|
33
|
-
export declare function isLocation(input: unknown): input is string;
|
|
34
|
-
//# sourceMappingURL=locations.d.ts.map
|
package/dist/locations.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../src/locations.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAQ9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAQ1D"}
|
package/dist/locations.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// =============================================================================
|
|
2
|
-
// Object location helpers
|
|
3
|
-
//
|
|
4
|
-
// An object lives at a "location" — a path of the form
|
|
5
|
-
// `/space/<collection>/<basename>.json`. The collection is the parent
|
|
6
|
-
// directory; the basename is the filename without `.json`. The two together
|
|
7
|
-
// fully identify the object inside its space.
|
|
8
|
-
//
|
|
9
|
-
// Functions here normalize user-provided strings, parse locations into their
|
|
10
|
-
// parts, and mint new locations when the caller doesn't pin a basename.
|
|
11
|
-
// =============================================================================
|
|
12
|
-
const COLLECTION_RE = /^[a-zA-Z][a-zA-Z0-9_-]*$/;
|
|
13
|
-
const BASENAME_RE = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;
|
|
14
|
-
const FULL_LOCATION_RE = /^\/space\/([^/]+)\/([^/]+)\.json$/;
|
|
15
|
-
const BASENAME_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
|
|
16
|
-
/**
|
|
17
|
-
* Generate a 6-character alphanumeric basename.
|
|
18
|
-
* 62^6 ≈ 56.8B possible values.
|
|
19
|
-
*/
|
|
20
|
-
export function generateBasename() {
|
|
21
|
-
let out = '';
|
|
22
|
-
for (let i = 0; i < 6; i++) {
|
|
23
|
-
out += BASENAME_CHARS[Math.floor(Math.random() * BASENAME_CHARS.length)];
|
|
24
|
-
}
|
|
25
|
-
return out;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Build a canonical location string from a collection and basename.
|
|
29
|
-
* Validates both parts. Throws on invalid input.
|
|
30
|
-
*/
|
|
31
|
-
export function loc(collection, basename) {
|
|
32
|
-
if (!COLLECTION_RE.test(collection)) {
|
|
33
|
-
throw new Error(`Invalid collection "${collection}". Must start with a letter and contain only alphanumeric characters, hyphens, and underscores.`);
|
|
34
|
-
}
|
|
35
|
-
if (!BASENAME_RE.test(basename)) {
|
|
36
|
-
throw new Error(`Invalid basename "${basename}". Must start with an alphanumeric character and contain only alphanumeric characters, hyphens, and underscores.`);
|
|
37
|
-
}
|
|
38
|
-
return `/space/${collection}/${basename}.json`;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Parse a canonical location string into its collection and basename.
|
|
42
|
-
* Throws on malformed input. Use {@link normalizeLocation} first if the
|
|
43
|
-
* input might be a short form like `"article/welcome"`.
|
|
44
|
-
*/
|
|
45
|
-
export function parseLocation(location) {
|
|
46
|
-
const match = FULL_LOCATION_RE.exec(location);
|
|
47
|
-
if (!match)
|
|
48
|
-
throw new Error(`Invalid location "${location}". Expected /space/<collection>/<basename>.json.`);
|
|
49
|
-
const [, collection, basename] = match;
|
|
50
|
-
if (!COLLECTION_RE.test(collection) || !BASENAME_RE.test(basename)) {
|
|
51
|
-
throw new Error(`Invalid location "${location}".`);
|
|
52
|
-
}
|
|
53
|
-
return { collection, basename };
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Normalize a user-provided location to the canonical full form.
|
|
57
|
-
*
|
|
58
|
-
* Accepts:
|
|
59
|
-
* - `/space/<collection>/<basename>.json` — canonical
|
|
60
|
-
* - `<collection>/<basename>` — short form
|
|
61
|
-
* - `<collection>/<basename>.json` — short form with extension
|
|
62
|
-
*
|
|
63
|
-
* Always returns the canonical form. Throws on malformed input.
|
|
64
|
-
*/
|
|
65
|
-
export function normalizeLocation(input) {
|
|
66
|
-
if (input.startsWith('/space/')) {
|
|
67
|
-
parseLocation(input); // validate
|
|
68
|
-
return input;
|
|
69
|
-
}
|
|
70
|
-
// Short form: "collection/basename" or "collection/basename.json"
|
|
71
|
-
const stripped = input.endsWith('.json') ? input.slice(0, -5) : input;
|
|
72
|
-
const slash = stripped.indexOf('/');
|
|
73
|
-
if (slash <= 0 || stripped.indexOf('/', slash + 1) !== -1) {
|
|
74
|
-
throw new Error(`Invalid location "${input}". Expected /space/<collection>/<basename>.json or <collection>/<basename>.`);
|
|
75
|
-
}
|
|
76
|
-
return loc(stripped.slice(0, slash), stripped.slice(slash + 1));
|
|
77
|
-
}
|
|
78
|
-
/** Return true if `input` is a syntactically valid (full or short) location. */
|
|
79
|
-
export function isLocation(input) {
|
|
80
|
-
if (typeof input !== 'string')
|
|
81
|
-
return false;
|
|
82
|
-
try {
|
|
83
|
-
normalizeLocation(input);
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=locations.js.map
|
package/dist/locations.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"locations.js","sourceRoot":"","sources":["../src/locations.ts"],"names":[],"mappings":"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"}
|