@haverstack/core 0.40.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -59
- package/dist/access.d.ts +34 -36
- package/dist/access.d.ts.map +1 -1
- package/dist/access.js +65 -42
- package/dist/access.js.map +1 -1
- package/dist/{combine.d.ts → adapter/combine.d.ts} +8 -1
- package/dist/adapter/combine.d.ts.map +1 -0
- package/dist/{combine.js → adapter/combine.js} +7 -0
- package/dist/adapter/combine.js.map +1 -0
- package/dist/{adapter-entry.d.ts → adapter/index.d.ts} +6 -5
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/{adapter-entry.js → adapter/index.js} +5 -4
- package/dist/adapter/index.js.map +1 -0
- package/dist/{sort.d.ts → adapter/sort.d.ts} +20 -20
- package/dist/adapter/sort.d.ts.map +1 -0
- package/dist/{sort.js → adapter/sort.js} +37 -27
- package/dist/adapter/sort.js.map +1 -0
- package/dist/associations/identity.d.ts +93 -0
- package/dist/associations/identity.d.ts.map +1 -0
- package/dist/associations/identity.js +198 -0
- package/dist/associations/identity.js.map +1 -0
- package/dist/associations/validation.d.ts +90 -0
- package/dist/associations/validation.d.ts.map +1 -0
- package/dist/associations/validation.js +339 -0
- package/dist/associations/validation.js.map +1 -0
- package/dist/attachment-records.d.ts +48 -0
- package/dist/attachment-records.d.ts.map +1 -0
- package/dist/attachment-records.js +52 -0
- package/dist/attachment-records.js.map +1 -0
- package/dist/collection.d.ts +182 -0
- package/dist/collection.d.ts.map +1 -0
- package/dist/collection.js +407 -0
- package/dist/collection.js.map +1 -0
- package/dist/content-match.d.ts +25 -0
- package/dist/content-match.d.ts.map +1 -0
- package/dist/content-match.js +51 -0
- package/dist/content-match.js.map +1 -0
- package/dist/content-translation.d.ts +42 -0
- package/dist/content-translation.d.ts.map +1 -0
- package/dist/content-translation.js +108 -0
- package/dist/content-translation.js.map +1 -0
- package/dist/did/did.d.ts.map +1 -0
- package/dist/{did.js → did/did.js} +3 -4
- package/dist/did/did.js.map +1 -0
- package/dist/{did-entry.d.ts → did/index.d.ts} +1 -1
- package/dist/did/index.d.ts.map +1 -0
- package/dist/{did-entry.js → did/index.js} +3 -3
- package/dist/did/index.js.map +1 -0
- package/dist/errors.d.ts +36 -63
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +35 -58
- package/dist/errors.js.map +1 -1
- package/dist/grants.d.ts +20 -43
- package/dist/grants.d.ts.map +1 -1
- package/dist/grants.js +71 -134
- package/dist/grants.js.map +1 -1
- package/dist/id.d.ts +13 -31
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +13 -31
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +14 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +141 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +219 -0
- package/dist/install.js.map +1 -0
- package/dist/merge.d.ts.map +1 -1
- package/dist/merge.js +5 -11
- package/dist/merge.js.map +1 -1
- package/dist/migration-steps.d.ts +102 -0
- package/dist/migration-steps.d.ts.map +1 -0
- package/dist/migration-steps.js +293 -0
- package/dist/migration-steps.js.map +1 -0
- package/dist/query-validation.d.ts +28 -94
- package/dist/query-validation.d.ts.map +1 -1
- package/dist/query-validation.js +156 -336
- package/dist/query-validation.js.map +1 -1
- package/dist/record-changes.d.ts +2 -117
- package/dist/record-changes.d.ts.map +1 -1
- package/dist/record-changes.js +10 -212
- package/dist/record-changes.js.map +1 -1
- package/dist/schema.d.ts +18 -7
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +59 -30
- package/dist/schema.js.map +1 -1
- package/dist/scoped-stack/authority.d.ts +156 -0
- package/dist/scoped-stack/authority.d.ts.map +1 -0
- package/dist/scoped-stack/authority.js +384 -0
- package/dist/scoped-stack/authority.js.map +1 -0
- package/dist/scoped-stack/scoped-stack.d.ts +338 -0
- package/dist/scoped-stack/scoped-stack.d.ts.map +1 -0
- package/dist/scoped-stack/scoped-stack.js +776 -0
- package/dist/scoped-stack/scoped-stack.js.map +1 -0
- package/dist/scoped-stack/subscription.d.ts +55 -0
- package/dist/scoped-stack/subscription.d.ts.map +1 -0
- package/dist/scoped-stack/subscription.js +110 -0
- package/dist/scoped-stack/subscription.js.map +1 -0
- package/dist/stack/attachments.d.ts +24 -0
- package/dist/stack/attachments.d.ts.map +1 -0
- package/dist/stack/attachments.js +113 -0
- package/dist/stack/attachments.js.map +1 -0
- package/dist/{changes.d.ts → stack/changes.d.ts} +29 -65
- package/dist/stack/changes.d.ts.map +1 -0
- package/dist/{changes.js → stack/changes.js} +32 -66
- package/dist/stack/changes.js.map +1 -0
- package/dist/stack/client.d.ts +271 -0
- package/dist/stack/client.d.ts.map +1 -0
- package/dist/stack/client.js +9 -0
- package/dist/stack/client.js.map +1 -0
- package/dist/stack/identity-bindings.d.ts.map +1 -0
- package/dist/{identity-bindings.js → stack/identity-bindings.js} +8 -14
- package/dist/stack/identity-bindings.js.map +1 -0
- package/dist/stack/install-app.d.ts +22 -0
- package/dist/stack/install-app.d.ts.map +1 -0
- package/dist/stack/install-app.js +260 -0
- package/dist/stack/install-app.js.map +1 -0
- package/dist/stack/integrity.d.ts +94 -0
- package/dist/stack/integrity.d.ts.map +1 -0
- package/dist/stack/integrity.js +268 -0
- package/dist/stack/integrity.js.map +1 -0
- package/dist/{limits.d.ts → stack/limits.d.ts} +2 -5
- package/dist/stack/limits.d.ts.map +1 -0
- package/dist/{limits.js → stack/limits.js} +3 -6
- package/dist/stack/limits.js.map +1 -0
- package/dist/stack/migrations.d.ts +59 -0
- package/dist/stack/migrations.d.ts.map +1 -0
- package/dist/stack/migrations.js +141 -0
- package/dist/stack/migrations.js.map +1 -0
- package/dist/{stack-reads.d.ts → stack/reads.d.ts} +33 -6
- package/dist/stack/reads.d.ts.map +1 -0
- package/dist/{stack-reads.js → stack/reads.js} +49 -7
- package/dist/stack/reads.js.map +1 -0
- package/dist/stack/record-id.d.ts +35 -0
- package/dist/stack/record-id.d.ts.map +1 -0
- package/dist/stack/record-id.js +82 -0
- package/dist/stack/record-id.js.map +1 -0
- package/dist/stack/stack.d.ts +438 -0
- package/dist/stack/stack.d.ts.map +1 -0
- package/dist/stack/stack.js +1366 -0
- package/dist/stack/stack.js.map +1 -0
- package/dist/stack/system-types.d.ts +16 -0
- package/dist/stack/system-types.d.ts.map +1 -0
- package/dist/stack/system-types.js +111 -0
- package/dist/stack/system-types.js.map +1 -0
- package/dist/stack/type-grants.d.ts +20 -0
- package/dist/stack/type-grants.d.ts.map +1 -0
- package/dist/stack/type-grants.js +69 -0
- package/dist/stack/type-grants.js.map +1 -0
- package/dist/stack/write-expectation.d.ts +78 -0
- package/dist/stack/write-expectation.d.ts.map +1 -0
- package/dist/stack/write-expectation.js +71 -0
- package/dist/stack/write-expectation.js.map +1 -0
- package/dist/testing.d.ts +21 -26
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +50 -70
- package/dist/testing.js.map +1 -1
- package/dist/type-handle.d.ts +67 -78
- package/dist/type-handle.d.ts.map +1 -1
- package/dist/type-handle.js +44 -111
- package/dist/type-handle.js.map +1 -1
- package/dist/types/adapter.d.ts +223 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/adapter.js +5 -0
- package/dist/types/adapter.js.map +1 -0
- package/dist/types/associations.d.ts +156 -0
- package/dist/types/associations.d.ts.map +1 -0
- package/dist/types/associations.js +13 -0
- package/dist/types/associations.js.map +1 -0
- package/dist/types/capabilities.d.ts +89 -0
- package/dist/types/capabilities.d.ts.map +1 -0
- package/dist/types/capabilities.js +5 -0
- package/dist/types/capabilities.js.map +1 -0
- package/dist/types/events.d.ts +155 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +5 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/ids.d.ts +43 -0
- package/dist/types/ids.d.ts.map +1 -0
- package/dist/types/ids.js +5 -0
- package/dist/types/ids.js.map +1 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/journal.d.ts +47 -0
- package/dist/types/journal.d.ts.map +1 -0
- package/dist/types/journal.js +5 -0
- package/dist/types/journal.js.map +1 -0
- package/dist/types/query.d.ts +185 -0
- package/dist/types/query.d.ts.map +1 -0
- package/dist/types/query.js +10 -0
- package/dist/types/query.js.map +1 -0
- package/dist/types/records.d.ts +76 -0
- package/dist/types/records.d.ts.map +1 -0
- package/dist/types/records.js +5 -0
- package/dist/types/records.js.map +1 -0
- package/dist/types/schema.d.ts +74 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +5 -0
- package/dist/types/schema.js.map +1 -0
- package/dist/types/system.d.ts +161 -0
- package/dist/types/system.d.ts.map +1 -0
- package/dist/types/system.js +32 -0
- package/dist/types/system.js.map +1 -0
- package/dist/types/tokens.d.ts +39 -0
- package/dist/types/tokens.d.ts.map +1 -0
- package/dist/types/tokens.js +5 -0
- package/dist/types/tokens.js.map +1 -0
- package/dist/validate.d.ts +29 -70
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +65 -97
- package/dist/validate.js.map +1 -1
- package/dist/{attachment-download.d.ts → wire/attachment-download.d.ts} +0 -57
- package/dist/wire/attachment-download.d.ts.map +1 -0
- package/dist/{attachment-download.js → wire/attachment-download.js} +0 -61
- package/dist/wire/attachment-download.js.map +1 -0
- package/dist/{auth.d.ts → wire/auth.d.ts} +5 -8
- package/dist/wire/auth.d.ts.map +1 -0
- package/dist/{auth.js → wire/auth.js} +5 -8
- package/dist/wire/auth.js.map +1 -0
- package/dist/{wire-body.d.ts → wire/body.d.ts} +13 -5
- package/dist/wire/body.d.ts.map +1 -0
- package/dist/{wire-body.js → wire/body.js} +65 -7
- package/dist/wire/body.js.map +1 -0
- package/dist/{wire-entry.d.ts → wire/index.d.ts} +12 -12
- package/dist/wire/index.d.ts.map +1 -0
- package/dist/{wire-entry.js → wire/index.js} +13 -17
- package/dist/wire/index.js.map +1 -0
- package/dist/{wire-record.d.ts → wire/record.d.ts} +10 -22
- package/dist/wire/record.d.ts.map +1 -0
- package/dist/{wire-record.js → wire/record.js} +12 -24
- package/dist/wire/record.js.map +1 -0
- package/dist/{wire-request.d.ts → wire/request.d.ts} +20 -37
- package/dist/wire/request.d.ts.map +1 -0
- package/dist/{wire-request.js → wire/request.js} +79 -54
- package/dist/wire/request.js.map +1 -0
- package/package.json +7 -7
- package/dist/adapter-entry.d.ts.map +0 -1
- package/dist/adapter-entry.js.map +0 -1
- package/dist/attachment-download.d.ts.map +0 -1
- package/dist/attachment-download.js.map +0 -1
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js.map +0 -1
- package/dist/changes.d.ts.map +0 -1
- package/dist/changes.js.map +0 -1
- package/dist/combine.d.ts.map +0 -1
- package/dist/combine.js.map +0 -1
- package/dist/did-entry.d.ts.map +0 -1
- package/dist/did-entry.js.map +0 -1
- package/dist/did.d.ts.map +0 -1
- package/dist/did.js.map +0 -1
- package/dist/identity-bindings.d.ts.map +0 -1
- package/dist/identity-bindings.js.map +0 -1
- package/dist/limits.d.ts.map +0 -1
- package/dist/limits.js.map +0 -1
- package/dist/record-id.d.ts +0 -70
- package/dist/record-id.d.ts.map +0 -1
- package/dist/record-id.js +0 -127
- package/dist/record-id.js.map +0 -1
- package/dist/scoped-stack.d.ts +0 -532
- package/dist/scoped-stack.d.ts.map +0 -1
- package/dist/scoped-stack.js +0 -1219
- package/dist/scoped-stack.js.map +0 -1
- package/dist/sort.d.ts.map +0 -1
- package/dist/sort.js.map +0 -1
- package/dist/stack-reads.d.ts.map +0 -1
- package/dist/stack-reads.js.map +0 -1
- package/dist/stack.d.ts +0 -971
- package/dist/stack.d.ts.map +0 -1
- package/dist/stack.js +0 -2012
- package/dist/stack.js.map +0 -1
- package/dist/types.d.ts +0 -1250
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -49
- package/dist/types.js.map +0 -1
- package/dist/wire-body.d.ts.map +0 -1
- package/dist/wire-body.js.map +0 -1
- package/dist/wire-entry.d.ts.map +0 -1
- package/dist/wire-entry.js.map +0 -1
- package/dist/wire-record.d.ts.map +0 -1
- package/dist/wire-record.js.map +0 -1
- package/dist/wire-request.d.ts.map +0 -1
- package/dist/wire-request.js.map +0 -1
- /package/dist/{did.d.ts → did/did.d.ts} +0 -0
- /package/dist/{identity-bindings.d.ts → stack/identity-bindings.d.ts} +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Stack — Wire Request Bodies
|
|
3
3
|
* -------------------------------------------------------
|
|
4
4
|
* The JSON bodies of the endpoints core specifies but runs no server for:
|
|
5
|
-
* the auth handshake, `PATCH /entity`, `POST /types
|
|
6
|
-
* `POST /records/:id/migrate`. Each parser names every key its endpoint
|
|
5
|
+
* the auth handshake, `PATCH /entity`, `POST /types`,
|
|
6
|
+
* `POST /records/:id/migrate` and `POST /installs`. Each parser names every key its endpoint
|
|
7
7
|
* defines, so a server refuses the rest without keeping its own copy of
|
|
8
8
|
* the list — a copy that drifts the first time core adds a field.
|
|
9
9
|
*
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
* DID's form — so judging them here would let two answers drift.
|
|
17
17
|
* See docs/spec/wire-format.md § Unrecognized input.
|
|
18
18
|
*/
|
|
19
|
-
import { StackBadRequestError, StackValidationError } from '
|
|
20
|
-
import { assertKnownKeys, validateAssociation } from '
|
|
19
|
+
import { ARGUMENTS_INVALID, StackBadRequestError, StackValidationError } from '../errors.js';
|
|
20
|
+
import { assertKnownKeys, validateAssociation } from '../associations/validation.js';
|
|
21
21
|
export function requireBody(body, label) {
|
|
22
22
|
if (typeof body !== 'object' || body === null || Array.isArray(body))
|
|
23
23
|
throw new StackBadRequestError(`Invalid ${label}: expected an object`);
|
|
@@ -29,7 +29,7 @@ export function requireBody(body, label) {
|
|
|
29
29
|
* class carries the path.
|
|
30
30
|
*/
|
|
31
31
|
export function fieldError(path, message) {
|
|
32
|
-
throw new StackValidationError([{ path, message }]);
|
|
32
|
+
throw new StackValidationError([{ path, message }], ARGUMENTS_INVALID);
|
|
33
33
|
}
|
|
34
34
|
/** A body carrying only `keys`; anything else is refused rather than ignored. */
|
|
35
35
|
function requireKnownBody(body, keys, label) {
|
|
@@ -119,7 +119,7 @@ export function parseAssociationEditsBody(body) {
|
|
|
119
119
|
const association = requiredObject(edit, 'association', `${label} ${path}`);
|
|
120
120
|
const errors = validateAssociation(association, `${path}.association`);
|
|
121
121
|
if (errors.length > 0)
|
|
122
|
-
throw new StackValidationError(errors);
|
|
122
|
+
throw new StackValidationError(errors, ARGUMENTS_INVALID);
|
|
123
123
|
return { op: edit.op, association };
|
|
124
124
|
});
|
|
125
125
|
}
|
|
@@ -174,4 +174,62 @@ export function parseMigrationBody(body) {
|
|
|
174
174
|
content: requiredObject(b, 'content', label),
|
|
175
175
|
};
|
|
176
176
|
}
|
|
177
|
-
|
|
177
|
+
// -------------------------------------------------------
|
|
178
|
+
// POST /installs
|
|
179
|
+
// -------------------------------------------------------
|
|
180
|
+
/**
|
|
181
|
+
* Parse a `POST /installs` body, `{ manifest }`, into the manifest
|
|
182
|
+
* `planInstall()` takes. Each type is read as a `POST /types` body is.
|
|
183
|
+
* Which families a manifest may define, and which requests the grant rules
|
|
184
|
+
* allow, are `planInstall()`'s to judge. See docs/spec/wire-format.md § Installs.
|
|
185
|
+
*/
|
|
186
|
+
export function parseInstallBody(body) {
|
|
187
|
+
const b = requireKnownBody(body, ['manifest'], 'install body');
|
|
188
|
+
const m = requireKnownBody(requiredObject(b, 'manifest', 'install body'), ['appId', 'name', 'version', 'types', 'requests'], 'manifest');
|
|
189
|
+
const manifest = {
|
|
190
|
+
appId: nestedString(m, 'manifest', 'appId'),
|
|
191
|
+
name: nestedString(m, 'manifest', 'name'),
|
|
192
|
+
types: nestedArray(m, 'manifest', 'types').map((t, i) => {
|
|
193
|
+
if (typeof t !== 'object' || t === null || Array.isArray(t))
|
|
194
|
+
fieldError(`manifest.types[${i}]`, 'a type must be an object');
|
|
195
|
+
return parseTypeBody(t);
|
|
196
|
+
}),
|
|
197
|
+
requests: nestedArray(m, 'manifest', 'requests').map((r, i) => {
|
|
198
|
+
const path = `manifest.requests[${i}]`;
|
|
199
|
+
if (typeof r !== 'object' || r === null || Array.isArray(r))
|
|
200
|
+
fieldError(path, 'a request must be an object');
|
|
201
|
+
const req = requireKnownBody(r, ['baseId', 'actions'], path);
|
|
202
|
+
const actions = nestedArray(req, path, 'actions');
|
|
203
|
+
actions.forEach((a, j) => {
|
|
204
|
+
if (typeof a !== 'string')
|
|
205
|
+
fieldError(`${path}.actions[${j}]`, 'an action must be a string');
|
|
206
|
+
});
|
|
207
|
+
return { baseId: nestedString(req, path, 'baseId'), actions: actions };
|
|
208
|
+
}),
|
|
209
|
+
};
|
|
210
|
+
if (m.version !== undefined) {
|
|
211
|
+
if (typeof m.version !== 'string')
|
|
212
|
+
fieldError('manifest.version', 'version must be a string');
|
|
213
|
+
manifest.version = m.version;
|
|
214
|
+
}
|
|
215
|
+
return manifest;
|
|
216
|
+
}
|
|
217
|
+
/** A required string inside a nested object, its 422 naming the full path. */
|
|
218
|
+
function nestedString(obj, at, key) {
|
|
219
|
+
const value = obj[key];
|
|
220
|
+
if (value === undefined)
|
|
221
|
+
throw new StackBadRequestError(`Invalid ${at}: ${key} is required`);
|
|
222
|
+
if (typeof value !== 'string')
|
|
223
|
+
fieldError(`${at}.${key}`, `${key} must be a string`);
|
|
224
|
+
return value;
|
|
225
|
+
}
|
|
226
|
+
/** A required array inside a nested object, its 422 naming the full path. */
|
|
227
|
+
function nestedArray(obj, at, key) {
|
|
228
|
+
const value = obj[key];
|
|
229
|
+
if (value === undefined)
|
|
230
|
+
throw new StackBadRequestError(`Invalid ${at}: ${key} is required`);
|
|
231
|
+
if (!Array.isArray(value))
|
|
232
|
+
fieldError(`${at}.${key}`, `${key} must be an array`);
|
|
233
|
+
return value;
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../src/wire/body.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,15 +16,15 @@ export { authOriginFromUrl } from './auth.js';
|
|
|
16
16
|
export { InvalidAuthChallengeError } from './auth.js';
|
|
17
17
|
export { isSafeAttachmentContentType, inferContentTypeFromFilename, resolveAttachmentDownloadContentType, NOSNIFF_HEADER_NAME, NOSNIFF_HEADER_VALUE, } from './attachment-download.js';
|
|
18
18
|
export type { AttachmentDownloadContentType } from './attachment-download.js';
|
|
19
|
-
export { firstRecordedAttachment, resolveReferencedAttachment } from '
|
|
20
|
-
export type { StackTokenStore, TokenInfo, TokenSession } from '
|
|
21
|
-
export { parseQueryParams, parseQueryBody, parseChangeParams, parseJournalParams, parseVersionsParams, parseGetRecordParams, parseDeleteParams, parseDownloadParams, parseAssociationParams, parseIfMatch, parseUploadFilename, parsePositiveInt, } from './
|
|
22
|
-
export { assertQueryTravels } from './
|
|
23
|
-
export type { ParsedChangeParams, ParsedDownloadParams, ParsedAssociationParams, } from './
|
|
24
|
-
export { parseDate } from './
|
|
25
|
-
export { createOptionsFromWireRecord, changesFromWireBody } from './
|
|
26
|
-
export type { WireCreateRequest } from './
|
|
27
|
-
export { parseAssociationEditsBody, parseAuthChallengeBody, parseAuthTokenBody, parseEntityPatchBody, parseTypeBody, parseMigrationBody, } from './
|
|
28
|
-
export type { WireAuthChallengeRequest, WireAuthTokenRequest, WireEntityPatch, WireMigrationRequest, } from './
|
|
29
|
-
export { isOwnerActingAlone } from '
|
|
30
|
-
//# sourceMappingURL=
|
|
19
|
+
export { firstRecordedAttachment, resolveReferencedAttachment } from '../attachment-records.js';
|
|
20
|
+
export type { StackTokenStore, TokenInfo, TokenSession } from '../types/index.js';
|
|
21
|
+
export { parseQueryParams, parseQueryBody, parseChangeParams, parseJournalParams, parseVersionsParams, parseGetRecordParams, parseDeleteParams, parseDownloadParams, parseAssociationParams, parseIfMatch, parseUploadFilename, parsePositiveInt, } from './request.js';
|
|
22
|
+
export { assertQueryTravels } from './request.js';
|
|
23
|
+
export type { ParsedChangeParams, ParsedDownloadParams, ParsedAssociationParams, } from './request.js';
|
|
24
|
+
export { parseDate } from './request.js';
|
|
25
|
+
export { createOptionsFromWireRecord, changesFromWireBody } from './record.js';
|
|
26
|
+
export type { WireCreateRequest } from './record.js';
|
|
27
|
+
export { parseAssociationEditsBody, parseAuthChallengeBody, parseAuthTokenBody, parseEntityPatchBody, parseTypeBody, parseMigrationBody, parseInstallBody, } from './body.js';
|
|
28
|
+
export type { WireAuthChallengeRequest, WireAuthTokenRequest, WireEntityPatch, WireMigrationRequest, } from './body.js';
|
|
29
|
+
export { isOwnerActingAlone } from '../access.js';
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wire/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAK9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,oCAAoC,EACpC,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAM9E,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAIhG,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMlF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAKzC,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAKnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
export { buildAuthChallengePayload, signAuthChallenge, verifyAuthChallenge, didCredentialFromKeypair, base64urlEncode, base64urlDecode, } from './auth.js';
|
|
14
14
|
// No in-repo caller: a server must derive the signing origin from its own
|
|
15
|
-
// configured public origin
|
|
16
|
-
// it does that with.
|
|
15
|
+
// configured public origin — this is the primitive it does that with.
|
|
17
16
|
export { authOriginFromUrl } from './auth.js';
|
|
18
17
|
// Thrown by authOriginFromUrl, buildAuthChallengePayload and
|
|
19
18
|
// base64urlDecode above — all public, so a caller needs this to
|
|
@@ -23,33 +22,30 @@ export { isSafeAttachmentContentType, inferContentTypeFromFilename, resolveAttac
|
|
|
23
22
|
// No in-repo caller: resolveAttachmentDownloadContentType() takes
|
|
24
23
|
// storedMimeType as an input rather than selecting the record itself — a
|
|
25
24
|
// server must call these to pick the record a download describes and pass
|
|
26
|
-
// the winner in. Contract, not internal.
|
|
27
|
-
export { firstRecordedAttachment, resolveReferencedAttachment } from '
|
|
25
|
+
// the winner in. Contract, not internal.
|
|
26
|
+
export { firstRecordedAttachment, resolveReferencedAttachment } from '../attachment-records.js';
|
|
28
27
|
// No in-repo caller: the parse half of the request encoding adapter-api
|
|
29
|
-
// builds, so a server decodes
|
|
30
|
-
//
|
|
31
|
-
//
|
|
32
|
-
|
|
33
|
-
// Contract, not internal — and the round trip against the builders is
|
|
34
|
-
// pinned by a test, which is what having both halves here buys.
|
|
35
|
-
export { parseQueryParams, parseQueryBody, parseChangeParams, parseJournalParams, parseVersionsParams, parseGetRecordParams, parseDeleteParams, parseDownloadParams, parseAssociationParams, parseIfMatch, parseUploadFilename, parsePositiveInt, } from './wire-request.js';
|
|
28
|
+
// builds, so a server decodes every query-bearing route with these rather
|
|
29
|
+
// than transcribing the parameter table. Contract, not internal — the
|
|
30
|
+
// round trip against the builders is pinned by a test.
|
|
31
|
+
export { parseQueryParams, parseQueryBody, parseChangeParams, parseJournalParams, parseVersionsParams, parseGetRecordParams, parseDeleteParams, parseDownloadParams, parseAssociationParams, parseIfMatch, parseUploadFilename, parsePositiveInt, } from './request.js';
|
|
36
32
|
// The build-side half of the fields that never travel: adapter-api refuses
|
|
37
33
|
// them before encoding, so which encoding a server's content reach selects
|
|
38
34
|
// never decides whether a family query widens or is refused.
|
|
39
|
-
export { assertQueryTravels } from './
|
|
35
|
+
export { assertQueryTravels } from './request.js';
|
|
40
36
|
// Re-exported by @haverstack/wire-types for the response side: one wire
|
|
41
37
|
// date decoding, used by both halves.
|
|
42
|
-
export { parseDate } from './
|
|
38
|
+
export { parseDate } from './request.js';
|
|
43
39
|
// No in-repo caller: the create half of the same contract, so a server
|
|
44
40
|
// inherits which half of a record body it may trust rather than deciding
|
|
45
41
|
// field by field. See docs/spec/wire-format.md § Records.
|
|
46
|
-
export { createOptionsFromWireRecord, changesFromWireBody } from './
|
|
42
|
+
export { createOptionsFromWireRecord, changesFromWireBody } from './record.js';
|
|
47
43
|
// No in-repo caller: the bodies of the remaining endpoints core specifies,
|
|
48
44
|
// so a server refuses a key they do not define without keeping its own
|
|
49
45
|
// list of the ones they do. See docs/spec/wire-format.md § Unrecognized input.
|
|
50
|
-
export { parseAssociationEditsBody, parseAuthChallengeBody, parseAuthTokenBody, parseEntityPatchBody, parseTypeBody, parseMigrationBody, } from './
|
|
46
|
+
export { parseAssociationEditsBody, parseAuthChallengeBody, parseAuthTokenBody, parseEntityPatchBody, parseTypeBody, parseMigrationBody, parseInstallBody, } from './body.js';
|
|
51
47
|
// The tier gating purge, commitMigration() and includeUnlisted, which
|
|
52
48
|
// a server must decide for those routes itself. Computing it as "is the
|
|
53
49
|
// owner" is a privilege bug with no symptom.
|
|
54
|
-
export { isOwnerActingAlone } from '
|
|
55
|
-
//# sourceMappingURL=
|
|
50
|
+
export { isOwnerActingAlone } from '../access.js';
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wire/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AAGnB,0EAA0E;AAC1E,sEAAsE;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,6DAA6D;AAC7D,gEAAgE;AAChE,oDAAoD;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,oCAAoC,EACpC,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,kEAAkE;AAClE,yEAAyE;AACzE,0EAA0E;AAC1E,yCAAyC;AACzC,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAMhG,wEAAwE;AACxE,0EAA0E;AAC1E,sEAAsE;AACtE,uDAAuD;AACvD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,2EAA2E;AAC3E,2EAA2E;AAC3E,6DAA6D;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOlD,wEAAwE;AACxE,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,uEAAuE;AACvE,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG/E,2EAA2E;AAC3E,uEAAuE;AACvE,+EAA+E;AAC/E,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAQnB,sEAAsE;AACtE,wEAAwE;AACxE,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* for servers in other languages, so they live in the spec rather than
|
|
11
11
|
* here: docs/spec/wire-format.md § Records.
|
|
12
12
|
*/
|
|
13
|
-
import type { BackdatableCreateRecordOptions } from '
|
|
14
|
-
import type { EntityId, RecordChangeSet, TokenSession, TypeId } from '
|
|
13
|
+
import type { BackdatableCreateRecordOptions } from '../stack/client.js';
|
|
14
|
+
import type { EntityId, RecordChangeSet, TokenSession, TypeId } from '../types/index.js';
|
|
15
15
|
/**
|
|
16
16
|
* A `POST /records` body as the three arguments `ScopedStack.create()`
|
|
17
17
|
* takes. Not spread-ready, so a call site reads as three deliberate things.
|
|
@@ -23,28 +23,16 @@ export type WireCreateRequest = {
|
|
|
23
23
|
options: Omit<BackdatableCreateRecordOptions, 'createdBy'>;
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
26
|
-
* Read a `POST /records` body as a create. Takes the session
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* Beyond shape, values are `Stack`'s to judge — an id's legality, a
|
|
31
|
-
* permission's contents, the content's schema — since judging them twice
|
|
32
|
-
* would let the two answers drift.
|
|
26
|
+
* Read a `POST /records` body as a create. Takes the session, not a
|
|
27
|
+
* precomputed boolean, so the owner-acting-alone decision stays with its
|
|
28
|
+
* rule. Values beyond shape are `Stack`'s to judge, or two answers drift.
|
|
33
29
|
*/
|
|
34
30
|
export declare function createOptionsFromWireRecord(body: unknown, session: TokenSession, ownerEntityId: EntityId): WireCreateRequest;
|
|
35
31
|
/**
|
|
36
|
-
* Read a `PATCH /records/:id` body as a change set.
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* `unlisted` silently fails to publish.
|
|
41
|
-
*
|
|
42
|
-
* `StackBadRequestError` (400) for a key that addresses nothing and
|
|
43
|
-
* `StackValidationError` (422) for one whose value is the wrong shape —
|
|
44
|
-
* the same split every other write endpoint makes. Content keys are
|
|
45
|
-
* `Stack`'s to judge, so `contentPatch` is checked for being an object and
|
|
46
|
-
* nothing more.
|
|
47
|
-
* See docs/spec/wire-format.md § Records.
|
|
32
|
+
* Read a `PATCH /records/:id` body as a change set. An unrecognized key is
|
|
33
|
+
* refused (400), not ignored — a dropped `permissions` silently fails to
|
|
34
|
+
* share — and a wrong-shaped value is a 422. `contentPatch` is checked for
|
|
35
|
+
* being an object only; content is `Stack`'s. See docs/spec/wire-format.md § Records.
|
|
48
36
|
*/
|
|
49
37
|
export declare function changesFromWireBody(body: unknown): RecordChangeSet;
|
|
50
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/wire/record.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,KAAK,EACV,QAAQ,EAGR,eAAe,EAEf,YAAY,EACZ,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,0EAA0E;IAC1E,OAAO,EAAE,IAAI,CAAC,8BAA8B,EAAE,WAAW,CAAC,CAAC;CAC5D,CAAC;AAsDF;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,QAAQ,GACtB,iBAAiB,CAyCnB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAoDlE"}
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* for servers in other languages, so they live in the spec rather than
|
|
11
11
|
* here: docs/spec/wire-format.md § Records.
|
|
12
12
|
*/
|
|
13
|
-
import { isOwnerActingAlone } from '
|
|
14
|
-
import { StackBadRequestError } from '
|
|
15
|
-
import { fieldError, requireBody } from './
|
|
16
|
-
import { RECORD_CHANGE_SET_KEYS } from '
|
|
13
|
+
import { isOwnerActingAlone } from '../access.js';
|
|
14
|
+
import { StackBadRequestError } from '../errors.js';
|
|
15
|
+
import { fieldError, requireBody } from './body.js';
|
|
16
|
+
import { RECORD_CHANGE_SET_KEYS } from '../types/index.js';
|
|
17
17
|
/**
|
|
18
18
|
* Every top-level key a wire record carries — a `StackRecord`'s, so a new
|
|
19
19
|
* field fails to compile here until it is listed. A create body is a whole
|
|
@@ -69,13 +69,9 @@ function ownerDate(body, key) {
|
|
|
69
69
|
return date;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
|
-
* Read a `POST /records` body as a create. Takes the session
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* Beyond shape, values are `Stack`'s to judge — an id's legality, a
|
|
77
|
-
* permission's contents, the content's schema — since judging them twice
|
|
78
|
-
* would let the two answers drift.
|
|
72
|
+
* Read a `POST /records` body as a create. Takes the session, not a
|
|
73
|
+
* precomputed boolean, so the owner-acting-alone decision stays with its
|
|
74
|
+
* rule. Values beyond shape are `Stack`'s to judge, or two answers drift.
|
|
79
75
|
*/
|
|
80
76
|
export function createOptionsFromWireRecord(body, session, ownerEntityId) {
|
|
81
77
|
const record = requireBody(body, 'record body');
|
|
@@ -119,18 +115,10 @@ export function createOptionsFromWireRecord(body, session, ownerEntityId) {
|
|
|
119
115
|
return { typeId, content: content, options };
|
|
120
116
|
}
|
|
121
117
|
/**
|
|
122
|
-
* Read a `PATCH /records/:id` body as a change set.
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* `unlisted` silently fails to publish.
|
|
127
|
-
*
|
|
128
|
-
* `StackBadRequestError` (400) for a key that addresses nothing and
|
|
129
|
-
* `StackValidationError` (422) for one whose value is the wrong shape —
|
|
130
|
-
* the same split every other write endpoint makes. Content keys are
|
|
131
|
-
* `Stack`'s to judge, so `contentPatch` is checked for being an object and
|
|
132
|
-
* nothing more.
|
|
133
|
-
* See docs/spec/wire-format.md § Records.
|
|
118
|
+
* Read a `PATCH /records/:id` body as a change set. An unrecognized key is
|
|
119
|
+
* refused (400), not ignored — a dropped `permissions` silently fails to
|
|
120
|
+
* share — and a wrong-shaped value is a 422. `contentPatch` is checked for
|
|
121
|
+
* being an object only; content is `Stack`'s. See docs/spec/wire-format.md § Records.
|
|
134
122
|
*/
|
|
135
123
|
export function changesFromWireBody(body) {
|
|
136
124
|
const envelope = requireBody(body, 'record body');
|
|
@@ -173,4 +161,4 @@ export function changesFromWireBody(body) {
|
|
|
173
161
|
}
|
|
174
162
|
return changes;
|
|
175
163
|
}
|
|
176
|
-
//# sourceMappingURL=
|
|
164
|
+
//# sourceMappingURL=record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/wire/record.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* servers already map to 400 — see docs/spec/wire-format.md § Error
|
|
25
25
|
* responses.
|
|
26
26
|
*/
|
|
27
|
-
import type { DataAssociation, ChangeFilter, JournalQuery, VersionsQuery, StackQuery } from '
|
|
27
|
+
import type { DataAssociation, ChangeFilter, JournalQuery, VersionsQuery, StackQuery } from '../types/index.js';
|
|
28
28
|
/** Parse an ISO date string from a wire body; undefined if absent or invalid. */
|
|
29
29
|
export declare function parseDate(val: unknown): Date | undefined;
|
|
30
30
|
/**
|
|
@@ -34,17 +34,11 @@ export declare function parseDate(val: unknown): Date | undefined;
|
|
|
34
34
|
*/
|
|
35
35
|
export declare function parsePositiveInt(raw: string, label: string): number;
|
|
36
36
|
/**
|
|
37
|
-
* The client half of the same refusal,
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* carries both fields to a server that refuses them, while search params
|
|
43
|
-
* have nowhere to put them and would drop them into a wider result set.
|
|
44
|
-
*
|
|
45
|
-
* Absent and explicitly `undefined` are the same thing here, as they are
|
|
46
|
-
* to `Stack.query()`. The parsers above test key presence instead, because
|
|
47
|
-
* over the wire writing the key at all is a client that meant to send it.
|
|
37
|
+
* The client half of the same refusal, before a request is built.
|
|
38
|
+
* `Stack.query()` resolves `baseId` and `presentAt` itself, so this catches
|
|
39
|
+
* the direct adapter call, where search params would drop them into a wider
|
|
40
|
+
* result. Absent and `undefined` are one here; the parsers test presence,
|
|
41
|
+
* since over the wire a written key is one the client meant to send.
|
|
48
42
|
*/
|
|
49
43
|
export declare function assertQueryTravels(query: StackQuery): void;
|
|
50
44
|
/**
|
|
@@ -56,11 +50,9 @@ export declare function assertQueryTravels(query: StackQuery): void;
|
|
|
56
50
|
*/
|
|
57
51
|
export declare function parseQueryParams(url: URL): StackQuery;
|
|
58
52
|
/**
|
|
59
|
-
* Build a `StackQuery` from a `POST /records/query`
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* `Date`. `undefined` is the absent body; `null` or any other non-object
|
|
63
|
-
* is refused, so a server hands over no body as `undefined`.
|
|
53
|
+
* Build a `StackQuery` from a `POST /records/query` body — the superset
|
|
54
|
+
* form, which also carries `filter.content`, with ISO date strings decoded.
|
|
55
|
+
* `undefined` is the absent body; any other non-object is refused.
|
|
64
56
|
* See docs/spec/wire-format.md § Records.
|
|
65
57
|
*/
|
|
66
58
|
export declare function parseQueryBody(raw: unknown): StackQuery;
|
|
@@ -82,21 +74,15 @@ export type ParsedChangeParams = {
|
|
|
82
74
|
*/
|
|
83
75
|
export declare function parseChangeParams(url: URL): ParsedChangeParams;
|
|
84
76
|
/**
|
|
85
|
-
* Parse `GET /records/:id/journal`'s
|
|
86
|
-
* `
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* `afterSeq` is a journal `seq` — a dense per-record integer, never the
|
|
91
|
-
* change feed's opaque cursor. See docs/spec/wire-format.md § Journal.
|
|
77
|
+
* Parse `GET /records/:id/journal`'s params into a `JournalQuery`. Absent
|
|
78
|
+
* stays absent: omitting `limit` reads the whole log, which a default page
|
|
79
|
+
* size would truncate. `afterSeq` is a journal `seq`, never a feed cursor.
|
|
80
|
+
* See docs/spec/wire-format.md § Journal.
|
|
92
81
|
*/
|
|
93
82
|
export declare function parseJournalParams(url: URL): JournalQuery;
|
|
94
83
|
/**
|
|
95
|
-
* Parse `GET /records/:id/versions`'s
|
|
96
|
-
*
|
|
97
|
-
* parseJournalParams() leaves them so.
|
|
98
|
-
*
|
|
99
|
-
* `beforeVersion` is a snapshot's `version`, exclusive.
|
|
84
|
+
* Parse `GET /records/:id/versions`'s params into a `VersionsQuery`; absent
|
|
85
|
+
* stays absent, as in parseJournalParams(). `beforeVersion` is exclusive.
|
|
100
86
|
* See docs/spec/wire-format.md § Versions.
|
|
101
87
|
*/
|
|
102
88
|
export declare function parseVersionsParams(url: URL): VersionsQuery;
|
|
@@ -140,13 +126,10 @@ export type ParsedAssociationParams = {
|
|
|
140
126
|
*/
|
|
141
127
|
export declare function parseAssociationParams(url: URL): ParsedAssociationParams;
|
|
142
128
|
/**
|
|
143
|
-
* Parse
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* only thing it was sent to do. Weak comparators (`W/"5"`) are refused for
|
|
148
|
-
* the same reason — a version match is exact or it is nothing.
|
|
149
|
-
* See docs/spec/wire-format.md § Records.
|
|
129
|
+
* Parse `If-Match: "5"` into `ifVersion`. Anything but a bare, optionally
|
|
130
|
+
* quoted version — weak `W/"5"` included — is refused, not read as absent:
|
|
131
|
+
* degrading the fence to last-writer-wins defeats the one thing it was
|
|
132
|
+
* sent for. See docs/spec/wire-format.md § Records.
|
|
150
133
|
*/
|
|
151
134
|
export declare function parseIfMatch(header: string | undefined): number | undefined;
|
|
152
135
|
/**
|
|
@@ -156,4 +139,4 @@ export declare function parseIfMatch(header: string | undefined): number | undef
|
|
|
156
139
|
* quoted form. See docs/spec/wire-format.md § Upload.
|
|
157
140
|
*/
|
|
158
141
|
export declare function parseUploadFilename(header: string | undefined): string | undefined;
|
|
159
|
-
//# sourceMappingURL=
|
|
142
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/wire/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEZ,YAAY,EACZ,aAAa,EASb,UAAU,EACX,MAAM,mBAAmB,CAAC;AAM3B,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAIxD;AA2ED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnE;AA6KD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAE1D;AA2ID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAuErD;AAmDD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CA2EvD;AAMD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,kBAAkB,CAkC9D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAQzD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAU3D;AAMD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,CAG1E;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAG9D;AAMD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzF,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,oBAAoB,CAQlE;AAMD,MAAM,MAAM,uBAAuB,GAAG;IAAE,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,uBAAuB,CAYxE;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAYlF"}
|