mindoodb 0.0.54 → 0.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.mjs +1 -0
- package/dist/core/BaseMindooDB.d.ts +10 -4
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +50 -3
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +15 -6
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantFactory.d.ts +3 -5
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantFactory.js +9 -2
- package/dist/core/BaseMindooTenantFactory.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/types.d.ts +56 -10
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/uri/joinRequestUri.d.ts +7 -1
- package/dist/core/uri/joinRequestUri.d.ts.map +1 -1
- package/dist/core/uri/joinRequestUri.js +67 -0
- package/dist/core/uri/joinRequestUri.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeRequestedDocKeyIds = normalizeRequestedDocKeyIds;
|
|
3
4
|
exports.encodeJoinRequestUri = encodeJoinRequestUri;
|
|
4
5
|
exports.decodeJoinRequestUri = decodeJoinRequestUri;
|
|
5
6
|
exports.normalizeJoinRequestPayload = normalizeJoinRequestPayload;
|
|
7
|
+
/**
|
|
8
|
+
* Codec for `mdb://join-request/...` URIs.
|
|
9
|
+
*
|
|
10
|
+
* A join request carries two SPKI public keys, and the RSA-3072 encryption key
|
|
11
|
+
* dominates the payload: PEM armor plus 64-character line wrapping, base64 over
|
|
12
|
+
* the DER, then base64url again over the whole JSON document. The `v: 3` form
|
|
13
|
+
* drops the armor and shortens the field names, which takes a typical request
|
|
14
|
+
* from roughly 1100 to 700 characters. That is the difference between a QR code
|
|
15
|
+
* that only scans from a full-screen dialog and one that scans inline.
|
|
16
|
+
*
|
|
17
|
+
* `v: 1` / `v: 2` requests (verbose, PEM-armored) stay decodable so URIs already
|
|
18
|
+
* in flight — in someone's mailbox, on a printout — keep working.
|
|
19
|
+
*/
|
|
20
|
+
const types_1 = require("../types");
|
|
6
21
|
const MindooURI_1 = require("./MindooURI");
|
|
7
22
|
/** Transport version for the compact, PEM-stripped payload. */
|
|
8
23
|
const COMPACT_VERSION = 3;
|
|
@@ -21,6 +36,10 @@ const MAX_KEY_BASE64_CHARS = 8192;
|
|
|
21
36
|
const MAX_USERNAME_CHARS = 512;
|
|
22
37
|
/** Device labels are a short human note (§6.5), not free-form storage. */
|
|
23
38
|
const MAX_LABEL_CHARS = 256;
|
|
39
|
+
/** Key-id hint list: a convenience for the admin UI, not a payload channel. */
|
|
40
|
+
const MAX_REQUESTED_KEY_IDS = 32;
|
|
41
|
+
const MAX_REQUESTED_KEY_ID_CHARS = 128;
|
|
42
|
+
const REQUESTED_KEY_ID_PATTERN = /^[A-Za-z0-9_$.-]+$/;
|
|
24
43
|
const BASE64_PATTERN = /^[A-Za-z0-9+/]+={0,2}$/;
|
|
25
44
|
/** Rebuild the canonical PEM produced by `BaseMindooTenantFactory.uint8ArrayToPEM`. */
|
|
26
45
|
function toPem(base64) {
|
|
@@ -76,6 +95,42 @@ function readOptionalText(value, max) {
|
|
|
76
95
|
}
|
|
77
96
|
return trimmed.slice(0, max);
|
|
78
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Normalize a requester-supplied key-id hint. Always includes `$publicinfos`
|
|
100
|
+
* when the caller named any keys. Unknown / oversized ids are dropped rather
|
|
101
|
+
* than rejected so an older admin client can still decode the rest.
|
|
102
|
+
*/
|
|
103
|
+
function normalizeRequestedDocKeyIds(value) {
|
|
104
|
+
if (!Array.isArray(value)) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
const ids = [];
|
|
108
|
+
const seen = new Set();
|
|
109
|
+
for (const raw of value) {
|
|
110
|
+
if (typeof raw !== "string") {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const id = raw.trim();
|
|
114
|
+
if (!id ||
|
|
115
|
+
id.length > MAX_REQUESTED_KEY_ID_CHARS ||
|
|
116
|
+
!REQUESTED_KEY_ID_PATTERN.test(id) ||
|
|
117
|
+
seen.has(id)) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
seen.add(id);
|
|
121
|
+
ids.push(id);
|
|
122
|
+
if (ids.length >= MAX_REQUESTED_KEY_IDS) {
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (ids.length === 0) {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
if (!ids.includes(types_1.PUBLIC_INFOS_KEY_ID)) {
|
|
130
|
+
ids.unshift(types_1.PUBLIC_INFOS_KEY_ID);
|
|
131
|
+
}
|
|
132
|
+
return ids;
|
|
133
|
+
}
|
|
79
134
|
/**
|
|
80
135
|
* Encode a join request, preferring the compact `v: 3` payload.
|
|
81
136
|
*
|
|
@@ -102,6 +157,10 @@ function encodeJoinRequestUri(request) {
|
|
|
102
157
|
if (typeof userKey === "string") {
|
|
103
158
|
payload.k = userKey;
|
|
104
159
|
}
|
|
160
|
+
const requestedDocKeyIds = normalizeRequestedDocKeyIds(request.requestedDocKeyIds);
|
|
161
|
+
if (requestedDocKeyIds) {
|
|
162
|
+
payload.d = requestedDocKeyIds;
|
|
163
|
+
}
|
|
105
164
|
return (0, MindooURI_1.encodeMindooURI)("join-request", payload);
|
|
106
165
|
}
|
|
107
166
|
/**
|
|
@@ -141,6 +200,10 @@ function normalizeJoinRequestPayload(payload, version) {
|
|
|
141
200
|
if (typeof payload.k === "string" && payload.k) {
|
|
142
201
|
request.userPublicKey = readCompactKey(payload.k, "k");
|
|
143
202
|
}
|
|
203
|
+
const requestedDocKeyIds = normalizeRequestedDocKeyIds(payload.d);
|
|
204
|
+
if (requestedDocKeyIds) {
|
|
205
|
+
request.requestedDocKeyIds = requestedDocKeyIds;
|
|
206
|
+
}
|
|
144
207
|
return request;
|
|
145
208
|
}
|
|
146
209
|
if (version === 1 || version === 2) {
|
|
@@ -161,6 +224,10 @@ function normalizeJoinRequestPayload(payload, version) {
|
|
|
161
224
|
if (userPublicKey) {
|
|
162
225
|
request.userPublicKey = userPublicKey;
|
|
163
226
|
}
|
|
227
|
+
const requestedDocKeyIds = normalizeRequestedDocKeyIds(payload.requestedDocKeyIds);
|
|
228
|
+
if (requestedDocKeyIds) {
|
|
229
|
+
request.requestedDocKeyIds = requestedDocKeyIds;
|
|
230
|
+
}
|
|
164
231
|
return request;
|
|
165
232
|
}
|
|
166
233
|
throw new Error(`Unsupported join request version ${version}. Update this client to accept it.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joinRequestUri.js","sourceRoot":"","sources":["../../../src/core/uri/joinRequestUri.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"joinRequestUri.js","sourceRoot":"","sources":["../../../src/core/uri/joinRequestUri.ts"],"names":[],"mappings":"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"}
|