@awiki/dsh-plugin 0.3.11-rc.1 → 0.3.11-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +12 -4
  2. package/README.zh.md +9 -3
  3. package/lib/client.js +748 -146
  4. package/lib/client.js.map +1 -1
  5. package/lib/index.js +391 -101
  6. package/lib/provider.js +32 -2
  7. package/lib/{sdk-adapter-CYcJH7sM.mjs → sdk-adapter-DpqT2en9.mjs} +17 -7
  8. package/lib/typert.host.js +181 -117
  9. package/lib/typert.remote-client.d.ts +3 -1
  10. package/lib/typert.remote-client.d.ts.map +1 -1
  11. package/lib/typert.remote-client.js +181 -117
  12. package/lib/types/base64.d.ts +4 -0
  13. package/lib/types/base64.d.ts.map +1 -0
  14. package/lib/types/base64.js +28 -0
  15. package/lib/types/base64.js.map +1 -0
  16. package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
  17. package/lib/types/client/AwikiIdentityAccess.js +55 -34
  18. package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
  19. package/lib/types/client/AwikiMail.d.ts +1 -1
  20. package/lib/types/client/AwikiMail.d.ts.map +1 -1
  21. package/lib/types/client/AwikiMail.js +139 -6
  22. package/lib/types/client/AwikiMail.js.map +1 -1
  23. package/lib/types/client/AwikiOverlay.js +1 -1
  24. package/lib/types/client/AwikiOverlay.js.map +1 -1
  25. package/lib/types/client/controller.d.ts +7 -1
  26. package/lib/types/client/controller.d.ts.map +1 -1
  27. package/lib/types/client/controller.js +29 -1
  28. package/lib/types/client/controller.js.map +1 -1
  29. package/lib/types/client/index.d.ts.map +1 -1
  30. package/lib/types/client/index.js +2 -0
  31. package/lib/types/client/index.js.map +1 -1
  32. package/lib/types/client/mail-attachment.d.ts +40 -0
  33. package/lib/types/client/mail-attachment.d.ts.map +1 -0
  34. package/lib/types/client/mail-attachment.js +187 -0
  35. package/lib/types/client/mail-attachment.js.map +1 -0
  36. package/lib/types/client/slots.d.ts +5 -1
  37. package/lib/types/client/slots.d.ts.map +1 -1
  38. package/lib/types/external-http-auth.d.ts +3 -1
  39. package/lib/types/external-http-auth.d.ts.map +1 -1
  40. package/lib/types/external-http-auth.js +2 -2
  41. package/lib/types/external-http-auth.js.map +1 -1
  42. package/lib/types/identity-handle.d.ts +5 -0
  43. package/lib/types/identity-handle.d.ts.map +1 -0
  44. package/lib/types/identity-handle.js +33 -0
  45. package/lib/types/identity-handle.js.map +1 -0
  46. package/lib/types/index.d.ts +10 -2
  47. package/lib/types/index.d.ts.map +1 -1
  48. package/lib/types/index.js +81 -26
  49. package/lib/types/index.js.map +1 -1
  50. package/lib/types/mail-attachment-client.d.ts +14 -0
  51. package/lib/types/mail-attachment-client.d.ts.map +1 -0
  52. package/lib/types/mail-attachment-client.js +173 -0
  53. package/lib/types/mail-attachment-client.js.map +1 -0
  54. package/lib/types/mail.d.ts +28 -2
  55. package/lib/types/mail.d.ts.map +1 -1
  56. package/lib/types/mail.js +79 -2
  57. package/lib/types/mail.js.map +1 -1
  58. package/lib/types/package-version.generated.d.ts +1 -1
  59. package/lib/types/package-version.generated.js +1 -1
  60. package/lib/types/provider.d.ts +1 -1
  61. package/lib/types/provider.d.ts.map +1 -1
  62. package/lib/types/provider.js +12 -1
  63. package/lib/types/provider.js.map +1 -1
  64. package/lib/types/registration-policy.d.ts +1 -3
  65. package/lib/types/registration-policy.d.ts.map +1 -1
  66. package/lib/types/registration-policy.js +1 -9
  67. package/lib/types/registration-policy.js.map +1 -1
  68. package/lib/types/sdk-adapter.d.ts +2 -1
  69. package/lib/types/sdk-adapter.d.ts.map +1 -1
  70. package/lib/types/sdk-adapter.js +13 -4
  71. package/lib/types/sdk-adapter.js.map +1 -1
  72. package/lib/types/tools.d.ts +1 -1
  73. package/lib/types/tools.d.ts.map +1 -1
  74. package/lib/types/tools.js +20 -4
  75. package/lib/types/tools.js.map +1 -1
  76. package/lib/types/types.d.ts +39 -2
  77. package/lib/types/types.d.ts.map +1 -1
  78. package/lib/types/types.js.map +1 -1
  79. package/lib/types/update-policy.d.ts +1 -1
  80. package/package.json +4 -4
@@ -0,0 +1,173 @@
1
+ /** Host-owned Mail HTTP transport. Identity signs exact bytes; no attachment SDK facade is needed. */
2
+ import { createHash } from 'node:crypto';
3
+ import { AWIKI_EXTERNAL_HTTP_MAX_BODY_BYTES, AwikiExternalHttpAuthError } from "./external-http-auth.js";
4
+ import { mailAttachmentContentType, mailAttachmentFileName } from "./mail.js";
5
+ import { standardBase64Syntax } from "./base64.js";
6
+ import { AwikiSdkError } from "./sdk-adapter.js";
7
+ /** Reserve JSON escaping, recipients, subject, body text and ten attachment metadata records. */
8
+ export const MAIL_HTTP_UPLOAD_MAX_BYTES = Math.floor((AWIKI_EXTERNAL_HTTP_MAX_BODY_BYTES - 512 * 1024) / 4) * 3;
9
+ const RESPONSE_METADATA_BYTES = 64 * 1024;
10
+ const TIMEOUT_MS = 30_000;
11
+ function invalid() { throw new AwikiSdkError('remote'); }
12
+ function record(value) {
13
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
14
+ invalid();
15
+ return value;
16
+ }
17
+ function text(value, max) {
18
+ if (typeof value !== 'string' || value.length === 0 || value.trim() !== value || /[\p{C}]/u.test(value) || Buffer.byteLength(value) > max)
19
+ invalid();
20
+ return value;
21
+ }
22
+ function integer(value) {
23
+ if (!Number.isSafeInteger(value) || value < 0)
24
+ invalid();
25
+ return value;
26
+ }
27
+ /** Enforce the budget before JSON aggregation, even without Content-Length. */
28
+ async function bounded(response, maxBytes) {
29
+ const declared = response.headers.get('content-length');
30
+ if (declared !== null && (!/^\d+$/u.test(declared) || Number(declared) > maxBytes)) {
31
+ await response.body?.cancel().catch(() => { });
32
+ invalid();
33
+ }
34
+ if (response.body === null)
35
+ return new Uint8Array();
36
+ const reader = response.body.getReader();
37
+ const chunks = [];
38
+ let length = 0;
39
+ try {
40
+ while (true) {
41
+ const chunk = await reader.read();
42
+ if (chunk.done)
43
+ break;
44
+ length += chunk.value.byteLength;
45
+ if (length > maxBytes) {
46
+ await reader.cancel().catch(() => { });
47
+ invalid();
48
+ }
49
+ chunks.push(chunk.value);
50
+ }
51
+ }
52
+ finally {
53
+ reader.releaseLock();
54
+ }
55
+ const bytes = new Uint8Array(length);
56
+ let offset = 0;
57
+ for (const chunk of chunks) {
58
+ bytes.set(chunk, offset);
59
+ offset += chunk.byteLength;
60
+ }
61
+ return bytes;
62
+ }
63
+ function serviceFailure(code) {
64
+ if (code === 401 || code === 1401)
65
+ throw new AwikiSdkError('not-registered');
66
+ if (code === 403 || code === 1403)
67
+ throw new AwikiSdkError('forbidden');
68
+ if (code === 404 || code === 1404)
69
+ throw new AwikiSdkError('not-found');
70
+ if (code === 413 || code === 1413)
71
+ throw new AwikiSdkError('attachment-too-large');
72
+ if (code === 429 || code === 1429)
73
+ throw new AwikiSdkError('rate-limited');
74
+ invalid();
75
+ }
76
+ export class AwikiMailAttachmentClient {
77
+ origin;
78
+ auth;
79
+ constructor(origin, auth) {
80
+ this.origin = origin;
81
+ this.auth = auth;
82
+ }
83
+ async send(request) {
84
+ const result = await this.rpc('mail.send', {
85
+ to: request.to, cc: request.cc, subject: request.subject, body_text: request.bodyText, body_html: null,
86
+ attachments: request.attachments.map(value => ({
87
+ filename: value.fileName, content_type: value.contentType, content_base64: Buffer.from(value.bytes).toString('base64'),
88
+ })),
89
+ }, RESPONSE_METADATA_BYTES, false);
90
+ if (result.accepted !== true || result.status !== 'sent'
91
+ || (result.ok !== undefined && result.ok !== true) || (result.success !== undefined && result.success !== true))
92
+ invalid();
93
+ const messageId = result.message_id ?? result.messageId ?? result.id;
94
+ const warnings = result.warnings ?? [];
95
+ if (!Array.isArray(warnings) || warnings.length > 100)
96
+ invalid();
97
+ return {
98
+ accepted: true,
99
+ ...(messageId === undefined || messageId === null ? {} : { messageId: text(messageId, 2048) }),
100
+ warnings: warnings.map(value => text(value, 1024)),
101
+ };
102
+ }
103
+ async download(request, maxBytes) {
104
+ const result = await this.rpc('mail.getAttachment', {
105
+ message_id: request.localMessageId, attachment_index: request.attachmentIndex,
106
+ }, Math.ceil(maxBytes / 3) * 4 + RESPONSE_METADATA_BYTES, true);
107
+ if (integer(result.index ?? result.attachment_index ?? result.attachmentIndex) !== request.attachmentIndex)
108
+ invalid();
109
+ const sizeBytes = integer(result.size ?? result.size_bytes ?? result.sizeBytes);
110
+ if (sizeBytes > maxBytes)
111
+ throw new AwikiSdkError('attachment-too-large');
112
+ let fileName;
113
+ let contentType;
114
+ try {
115
+ fileName = mailAttachmentFileName(result.filename ?? result.name);
116
+ contentType = mailAttachmentContentType(result.content_type ?? result.contentType ?? result.mime_type);
117
+ }
118
+ catch {
119
+ invalid();
120
+ }
121
+ const content = result.content_base64 ?? result.contentBase64 ?? result.base64;
122
+ if (typeof content !== 'string' || content.length !== Math.ceil(sizeBytes / 3) * 4 || !standardBase64Syntax(content))
123
+ invalid();
124
+ const bytes = Buffer.from(content, 'base64');
125
+ if (bytes.byteLength !== sizeBytes || bytes.toString('base64') !== content)
126
+ invalid();
127
+ return { fileName, contentType, sizeBytes, sha256: createHash('sha256').update(bytes).digest('hex'), bytesBase64: content };
128
+ }
129
+ async rpc(method, params, maxResponseBytes, allowAuthRetry) {
130
+ const body = JSON.stringify({ jsonrpc: '2.0', id: 1, method, params });
131
+ if (Buffer.byteLength(body) > AWIKI_EXTERNAL_HTTP_MAX_BODY_BYTES)
132
+ throw new AwikiSdkError('attachment-too-large');
133
+ const abort = new AbortController();
134
+ const timer = setTimeout(() => abort.abort(), TIMEOUT_MS);
135
+ let dispatched = false;
136
+ try {
137
+ const request = new Request(new URL('/mail/rpc', this.origin), {
138
+ method: 'POST', headers: { accept: 'application/json', 'content-type': 'application/json' },
139
+ body, redirect: 'error', signal: abort.signal,
140
+ });
141
+ const response = await this.auth.dispatch(request, async (signed) => {
142
+ dispatched = true;
143
+ const raw = await fetch(signed);
144
+ // Bound every attempt, including authentication rejection responses.
145
+ const bytes = await bounded(raw, maxResponseBytes);
146
+ return new Response(bytes, { status: raw.status, headers: raw.headers });
147
+ }, { allowAuthRetry });
148
+ if (!response.ok)
149
+ serviceFailure(response.status);
150
+ const envelope = record(JSON.parse(await response.text()));
151
+ if (envelope.jsonrpc !== '2.0' || envelope.id !== 1)
152
+ invalid();
153
+ if (envelope.error != null)
154
+ serviceFailure(integer(record(envelope.error).code));
155
+ return record(envelope.result);
156
+ }
157
+ catch (error) {
158
+ if (error instanceof AwikiSdkError)
159
+ throw error;
160
+ if (error instanceof AwikiExternalHttpAuthError) {
161
+ if (error.code === 'not-registered' || error.code === 'signed-out')
162
+ throw new AwikiSdkError(error.code);
163
+ if (error.code === 'body-too-large')
164
+ throw new AwikiSdkError('attachment-too-large');
165
+ }
166
+ throw new AwikiSdkError(dispatched && !allowAuthRetry ? 'delivery-unknown' : 'network');
167
+ }
168
+ finally {
169
+ clearTimeout(timer);
170
+ }
171
+ }
172
+ }
173
+ //# sourceMappingURL=mail-attachment-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-attachment-client.js","sourceRoot":"","sources":["../../src/mail-attachment-client.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,kCAAkC,EAAE,0BAA0B,EAA8B,MAAM,yBAAyB,CAAA;AACpI,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAsC,MAAM,WAAW,CAAA;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,iGAAiG;AACjG,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,kCAAkC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAC/G,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAA;AACzC,MAAM,UAAU,GAAG,MAAM,CAAA;AAEzB,SAAS,OAAO,KAAY,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;AAC/D,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAClF,OAAO,KAAgC,CAAA;AACzC,CAAC;AACD,SAAS,IAAI,CAAC,KAAc,EAAE,GAAW;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG;QAAE,OAAO,EAAE,CAAA;IACpJ,OAAO,KAAK,CAAA;AACd,CAAC;AACD,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IACpE,OAAO,KAAe,CAAA;AACxB,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,OAAO,CAAC,QAAkB,EAAE,QAAgB;IACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACvD,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;QACnF,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC7C,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,UAAU,EAAE,CAAA;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IACxC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YACjC,IAAI,KAAK,CAAC,IAAI;gBAAE,MAAK;YACrB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAA;YAChC,IAAI,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAAC,OAAO,EAAE,CAAA;YAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;YAAS,CAAC;QAAC,MAAM,CAAC,WAAW,EAAE,CAAA;IAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;IAAC,CAAC;IACpF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAC5E,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;IACvE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;IACvE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAA;IAClF,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC,CAAA;IAC1E,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,OAAO,yBAAyB;IACP;IAAiC;IAA9D,YAA6B,MAAc,EAAmB,IAA2B;QAA5D,WAAM,GAAN,MAAM,CAAQ;QAAmB,SAAI,GAAJ,IAAI,CAAuB;IAAG,CAAC;IAE7F,KAAK,CAAC,IAAI,CAAC,OAAsC;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;YACzC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI;YACtG,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACvH,CAAC,CAAC;SACJ,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAA;QAClC,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;eACnD,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QAC5H,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAA;QACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAA;QACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,EAAE,CAAA;QAChE,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAuB,EAAE,CAAC;YACpH,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACnD,CAAA;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA2C,EAAE,QAAgB;QAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAClD,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC,eAAe;SAC9E,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,uBAAuB,EAAE,IAAI,CAAC,CAAA;QAC/D,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,eAAe;YAAE,OAAO,EAAE,CAAA;QACrH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/E,IAAI,SAAS,GAAG,QAAQ;YAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAA;QACzE,IAAI,QAAgB,CAAA;QACpB,IAAI,WAAmB,CAAA;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;YACjE,WAAW,GAAG,yBAAyB,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,CAAA;QACxG,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAA;QAAC,CAAC;QACrB,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,CAAA;QAC9E,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAA;QAC/H,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC5C,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,OAAO;YAAE,OAAO,EAAE,CAAA;QACrF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAA;IAC7H,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,MAAe,EAAE,gBAAwB,EAAE,cAAuB;QAClG,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACtE,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,kCAAkC;YAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAA;QACjH,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAA;QACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAA;QACzD,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC3F,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;aAC9C,CAAC,CAAA;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;gBAChE,UAAU,GAAG,IAAI,CAAA;gBACjB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAA;gBAC/B,qEAAqE;gBACrE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;gBAClD,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YAC1E,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAA;YACtB,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAC1D,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,CAAC,EAAE,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAA;YAC9D,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAChF,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,aAAa;gBAAE,MAAM,KAAK,CAAA;YAC/C,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;gBAChD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;oBAAE,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACvG,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;oBAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAA;YACtF,CAAC;YACD,MAAM,IAAI,aAAa,CAAC,UAAU,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACzF,CAAC;gBAAS,CAAC;YAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAAC,CAAC;IACnC,CAAC;CACF"}
@@ -1,8 +1,34 @@
1
1
  /** Host-owned validation for on-demand mail requests. */
2
- import type { AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailReadRequest, AwikiMailSendRequest } from './types.ts';
2
+ import type { AwikiMailAttachmentDownloadRequest, AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailReadRequest, AwikiMailSendRequest } from './types.ts';
3
+ export declare const MAIL_ATTACHMENT_SERVICE_MAX_COUNT = 10;
4
+ export declare const MAIL_ATTACHMENT_SERVICE_MAX_BYTES: number;
5
+ export declare const MAIL_ATTACHMENT_SERVICE_TOTAL_MAX_BYTES: number;
6
+ export interface AwikiMailAttachmentLimits {
7
+ readonly maxCount: number;
8
+ readonly maxBytes: number;
9
+ readonly totalMaxBytes: number;
10
+ }
11
+ export interface AwikiValidatedMailSendAttachment {
12
+ readonly fileName: string;
13
+ readonly contentType: string;
14
+ readonly sizeBytes: number;
15
+ readonly sha256: string;
16
+ readonly bytes: Uint8Array;
17
+ }
18
+ export interface AwikiValidatedMailSendRequest {
19
+ readonly to: readonly string[];
20
+ readonly cc: readonly string[];
21
+ readonly subject: string;
22
+ readonly bodyText: string;
23
+ readonly attachments: readonly AwikiValidatedMailSendAttachment[];
24
+ }
25
+ export declare const DEFAULT_MAIL_ATTACHMENT_LIMITS: AwikiMailAttachmentLimits;
26
+ export declare function mailAttachmentFileName(value: unknown): string;
27
+ export declare function mailAttachmentContentType(value: unknown): string;
3
28
  /** Resolve mailbox defaults before the provider is invoked. */
4
29
  export declare function mailInboxRequest(request?: AwikiMailInboxRequest): AwikiMailInboxRequest;
5
30
  export declare function mailReadRequest(request: AwikiMailReadRequest): AwikiMailReadRequest;
6
31
  export declare function mailMarkReadRequest(request: AwikiMailMarkReadRequest): AwikiMailMarkReadRequest;
7
- export declare function mailSendRequest(request: AwikiMailSendRequest): AwikiMailSendRequest;
32
+ export declare function mailSendRequest(request: AwikiMailSendRequest, limits?: AwikiMailAttachmentLimits): AwikiValidatedMailSendRequest;
33
+ export declare function mailAttachmentDownloadRequest(request: AwikiMailAttachmentDownloadRequest): AwikiMailAttachmentDownloadRequest;
8
34
  //# sourceMappingURL=mail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/mail.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EAExB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AA6BnB,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,qBAA0B,GAAG,qBAAqB,CAS3F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAEnF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,wBAAwB,CAO/F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAenF"}
1
+ {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/mail.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAMzD,OAAO,KAAK,EACV,kCAAkC,EAClC,qBAAqB,EACrB,wBAAwB,EAExB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AAKnB,eAAO,MAAM,iCAAiC,KAAK,CAAA;AACnD,eAAO,MAAM,iCAAiC,QAAmB,CAAA;AACjE,eAAO,MAAM,uCAAuC,QAAmB,CAAA;AAEvE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,gCAAgC,EAAE,CAAA;CAClE;AAED,eAAO,MAAM,8BAA8B,EAAE,yBAI3C,CAAA;AAyBF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAU7D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKhE;AAcD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,qBAA0B,GAAG,qBAAqB,CAS3F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAEnF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,wBAAwB,CAO/F;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,oBAAoB,EAC7B,MAAM,GAAE,yBAA0D,GACjE,6BAA6B,CAiC/B;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,kCAAkC,GAC1C,kCAAkC,CAQpC"}
package/lib/types/mail.js CHANGED
@@ -1,7 +1,17 @@
1
1
  /** Host-owned validation for on-demand mail requests. */
2
+ import { createHash } from 'node:crypto';
3
+ import { standardBase64Syntax } from "./base64.js";
2
4
  const U32_MAX = 0xffff_ffff;
3
5
  const MAX_MESSAGE_IDS = 100;
4
6
  const MAX_RECIPIENTS = 20;
7
+ export const MAIL_ATTACHMENT_SERVICE_MAX_COUNT = 10;
8
+ export const MAIL_ATTACHMENT_SERVICE_MAX_BYTES = 10 * 1024 * 1024;
9
+ export const MAIL_ATTACHMENT_SERVICE_TOTAL_MAX_BYTES = 18 * 1024 * 1024;
10
+ export const DEFAULT_MAIL_ATTACHMENT_LIMITS = Object.freeze({
11
+ maxCount: MAIL_ATTACHMENT_SERVICE_MAX_COUNT,
12
+ maxBytes: MAIL_ATTACHMENT_SERVICE_MAX_BYTES,
13
+ totalMaxBytes: MAIL_ATTACHMENT_SERVICE_TOTAL_MAX_BYTES,
14
+ });
5
15
  function reject() {
6
16
  throw new TypeError('invalid AWiki mail request');
7
17
  }
@@ -25,6 +35,41 @@ function address(value) {
25
35
  reject();
26
36
  return value;
27
37
  }
38
+ export function mailAttachmentFileName(value) {
39
+ if (typeof value !== 'string'
40
+ || value.length === 0
41
+ || value.trim() !== value
42
+ || value.replace(/[. ]+$/u, '') !== value
43
+ || value === '.'
44
+ || value === '..'
45
+ || Buffer.byteLength(value, 'utf8') > 255
46
+ || /[\\/\p{C}]/u.test(value))
47
+ reject();
48
+ return value;
49
+ }
50
+ export function mailAttachmentContentType(value) {
51
+ if (value === '')
52
+ return 'application/octet-stream';
53
+ if (typeof value !== 'string'
54
+ || !/^[A-Za-z0-9!#$&^_.+-]+\/[A-Za-z0-9!#$&^_.+-]+$/u.test(value))
55
+ reject();
56
+ return value;
57
+ }
58
+ function attachmentBytes(value, sizeBytes, maxBytes) {
59
+ if (typeof value !== 'string')
60
+ reject();
61
+ const expectedEncodedLength = Math.ceil(sizeBytes / 3) * 4;
62
+ if (value.length !== expectedEncodedLength
63
+ || value.length % 4 !== 0
64
+ || !standardBase64Syntax(value))
65
+ reject();
66
+ const bytes = Buffer.from(value, 'base64');
67
+ if (bytes.byteLength !== sizeBytes || bytes.byteLength > maxBytes)
68
+ reject();
69
+ if (Buffer.from(bytes).toString('base64') !== value)
70
+ reject();
71
+ return bytes;
72
+ }
28
73
  /** Resolve mailbox defaults before the provider is invoked. */
29
74
  export function mailInboxRequest(request = {}) {
30
75
  const folder = token(request.folder ?? 'inbox', 64);
@@ -51,7 +96,7 @@ export function mailMarkReadRequest(request) {
51
96
  messageIds: request.messageIds.map(value => token(value, 2_048)),
52
97
  };
53
98
  }
54
- export function mailSendRequest(request) {
99
+ export function mailSendRequest(request, limits = DEFAULT_MAIL_ATTACHMENT_LIMITS) {
55
100
  if (!Array.isArray(request.to) || request.to.length === 0 || !Array.isArray(request.cc ?? []))
56
101
  reject();
57
102
  const to = request.to.map(address);
@@ -70,6 +115,38 @@ export function mailSendRequest(request) {
70
115
  || request.bodyText.trim().length === 0
71
116
  || Buffer.byteLength(request.bodyText, 'utf8') > 65_536)
72
117
  reject();
73
- return { to, cc, subject: request.subject, bodyText: request.bodyText };
118
+ if (!Array.isArray(request.attachments ?? []) || (request.attachments?.length ?? 0) > limits.maxCount)
119
+ reject();
120
+ let totalBytes = 0;
121
+ const attachments = (request.attachments ?? []).map((attachment) => {
122
+ if (typeof attachment !== 'object' || attachment === null || Array.isArray(attachment))
123
+ reject();
124
+ if (!Number.isSafeInteger(attachment.sizeBytes)
125
+ || attachment.sizeBytes < 0
126
+ || attachment.sizeBytes > limits.maxBytes)
127
+ reject();
128
+ const bytes = attachmentBytes(attachment.bytesBase64, attachment.sizeBytes, limits.maxBytes);
129
+ totalBytes += bytes.byteLength;
130
+ if (!Number.isSafeInteger(totalBytes) || totalBytes > limits.totalMaxBytes)
131
+ reject();
132
+ return {
133
+ fileName: mailAttachmentFileName(attachment.fileName),
134
+ contentType: mailAttachmentContentType(attachment.contentType),
135
+ sizeBytes: bytes.byteLength,
136
+ sha256: createHash('sha256').update(bytes).digest('hex'),
137
+ bytes,
138
+ };
139
+ });
140
+ return { to, cc, subject: request.subject, bodyText: request.bodyText, attachments };
141
+ }
142
+ export function mailAttachmentDownloadRequest(request) {
143
+ if (!Number.isSafeInteger(request.attachmentIndex)
144
+ || request.attachmentIndex < 0
145
+ || request.attachmentIndex > U32_MAX)
146
+ reject();
147
+ return {
148
+ localMessageId: token(request.localMessageId, 2_048),
149
+ attachmentIndex: request.attachmentIndex,
150
+ };
74
151
  }
75
152
  //# sourceMappingURL=mail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/mail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/mail.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /** Generated from package.json by scripts/sync-package-versions.mjs. */
2
- export declare const DSH_AWIKI_PACKAGE_VERSION: "0.3.11-rc.1";
2
+ export declare const DSH_AWIKI_PACKAGE_VERSION: "0.3.11-rc.2";
3
3
  export declare const DSH_AWIKI_MODEL_PROXY_PACKAGE_VERSION: "0.1.7-rc.1";
4
4
  //# sourceMappingURL=package-version.generated.d.ts.map
@@ -1,4 +1,4 @@
1
1
  /** Generated from package.json by scripts/sync-package-versions.mjs. */
2
- export const DSH_AWIKI_PACKAGE_VERSION = "0.3.11-rc.1";
2
+ export const DSH_AWIKI_PACKAGE_VERSION = "0.3.11-rc.2";
3
3
  export const DSH_AWIKI_MODEL_PROXY_PACKAGE_VERSION = "0.1.7-rc.1";
4
4
  //# sourceMappingURL=package-version.generated.js.map
@@ -1,6 +1,6 @@
1
1
  /** Production AWiki provider backed by the versioned Rust IM Core Node bridge. */
2
2
  import type { Context } from '@deepseek-ai/cordis';
3
- import type { AnpIdentityServiceContract } from '@agent-network-protocol/dsh-anp-identity';
3
+ import { type AnpIdentityServiceContract } from '@agent-network-protocol/dsh-anp-identity';
4
4
  declare module '@deepseek-ai/cordis' {
5
5
  interface Context {
6
6
  anpIdentity: AnpIdentityServiceContract;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAEV,0BAA0B,EAC3B,MAAM,0CAA0C,CAAA;AAQjD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,WAAW,EAAE,0BAA0B,CAAA;KACxC;CACF;AAED,qDAAqD;AACrD,eAAO,MAAM,IAAI,4BAA4B,CAAA;AAC7C,gFAAgF;AAChF,eAAO,MAAM,MAAM,UAA2B,CAAA;AA2B9C,4EAA4E;AAC5E,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CvD"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,0CAA0C,CAAA;AASjD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,WAAW,EAAE,0BAA0B,CAAA;KACxC;CACF;AAED,qDAAqD;AACrD,eAAO,MAAM,IAAI,4BAA4B,CAAA;AAC7C,gFAAgF;AAChF,eAAO,MAAM,MAAM,UAA2B,CAAA;AA2B9C,4EAA4E;AAC5E,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDvD"}
@@ -1,6 +1,8 @@
1
1
  /** Production AWiki provider backed by the versioned Rust IM Core Node bridge. */
2
2
  import { setTimeout as delay } from 'node:timers/promises';
3
3
  import { openImCoreNodeClient } from '@awiki/im-core-node';
4
+ import { AnpIdentityPluginError, } from '@agent-network-protocol/dsh-anp-identity';
5
+ import { syncAnpIdentityHandle } from "./identity-handle.js";
4
6
  import { RustSdkAdapter } from "./sdk-adapter.js";
5
7
  /** Cordis plugin name used by Loader diagnostics. */
6
8
  export const name = 'awiki-rust-sdk-provider';
@@ -51,7 +53,16 @@ export async function apply(ctx) {
51
53
  externalHttpAllowInsecureLoopbackForTesting: options.allowInsecureLoopbackForTesting,
52
54
  identityProvider: lease,
53
55
  };
54
- return new RustSdkAdapter(openImCoreNodeClient(openOptions));
56
+ return new RustSdkAdapter(openImCoreNodeClient(openOptions), async (identity) => {
57
+ try {
58
+ await syncAnpIdentityHandle(ctx.anpIdentity, identity);
59
+ }
60
+ catch (error) {
61
+ // Registration is already committed; retry metadata projection on the next identity read.
62
+ const code = error instanceof AnpIdentityPluginError ? error.code : 'unexpected_error';
63
+ ctx.logger.warn('AWiki Handle synchronization failed (code=%s, did=%s, handle=%s); retrying on the next identity read.', code, identity.did, identity.handle);
64
+ }
65
+ });
55
66
  });
56
67
  return async () => {
57
68
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- /** Product registration policy for invite-only short Handles. */
1
+ /** Registration presentation and Handle normalization; admission is owned by the server. */
2
2
  export declare const SHORT_HANDLE_INVITE_MESSAGE = "\u6CE8\u518C\u5C11\u4E8E5\u4F4D\u7684handle\u9700\u8981\u4F7F\u7528\u9080\u8BF7\u7801\uFF0C\u76EE\u524D\u6682\u4E0D\u652F\u6301\u81EA\u4E3B\u6CE8\u518C\u3002";
3
3
  /** Return the canonical local part when the input has valid WNS local-part syntax. */
4
4
  export declare function registrationHandleLocalPart(value: string): string | undefined;
5
- /** One- through four-character Handle registrations require the unavailable invitation flow. */
6
- export declare function shortHandleInviteRequired(value: string): boolean;
7
5
  //# sourceMappingURL=registration-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registration-policy.d.ts","sourceRoot":"","sources":["../../src/registration-policy.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,eAAO,MAAM,2BAA2B,kKAAqC,CAAA;AAI7E,sFAAsF;AACtF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM7E;AAED,gGAAgG;AAChG,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKhE"}
1
+ {"version":3,"file":"registration-policy.d.ts","sourceRoot":"","sources":["../../src/registration-policy.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAE5F,eAAO,MAAM,2BAA2B,kKAAqC,CAAA;AAI7E,sFAAsF;AACtF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM7E"}
@@ -1,4 +1,4 @@
1
- /** Product registration policy for invite-only short Handles. */
1
+ /** Registration presentation and Handle normalization; admission is owned by the server. */
2
2
  export const SHORT_HANDLE_INVITE_MESSAGE = '注册少于5位的handle需要使用邀请码,目前暂不支持自主注册。';
3
3
  const HANDLE_LOCAL_PART = /^(?!-)(?!.*--)[a-z0-9-]{1,63}(?<!-)$/u;
4
4
  /** Return the canonical local part when the input has valid WNS local-part syntax. */
@@ -10,12 +10,4 @@ export function registrationHandleLocalPart(value) {
10
10
  const localPart = (dot < 0 ? normalized : normalized.slice(0, dot)).trim();
11
11
  return HANDLE_LOCAL_PART.test(localPart) ? localPart : undefined;
12
12
  }
13
- /** One- through four-character Handle registrations require the unavailable invitation flow. */
14
- export function shortHandleInviteRequired(value) {
15
- const localPart = registrationHandleLocalPart(value);
16
- if (localPart === undefined)
17
- return false;
18
- const length = Array.from(localPart).length;
19
- return length >= 1 && length <= 4;
20
- }
21
13
  //# sourceMappingURL=registration-policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registration-policy.js","sourceRoot":"","sources":["../../src/registration-policy.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAA;AAE7E,MAAM,iBAAiB,GAAG,uCAAuC,CAAA;AAEjE,sFAAsF;AACtF,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACnF,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAClE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,MAAM,SAAS,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;IACpD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAA;IAC3C,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"registration-policy.js","sourceRoot":"","sources":["../../src/registration-policy.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAE5F,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAA;AAE7E,MAAM,iBAAiB,GAAG,uCAAuC,CAAA;AAEjE,sFAAsF;AACtF,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACnF,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAClE,CAAC"}
@@ -17,6 +17,7 @@ export declare class AwikiSdkError extends Error {
17
17
  }
18
18
  /** Adapt the Rust Node bridge to the frozen Host provider interface. */
19
19
  export declare class RustSdkAdapter implements AwikiSdkClient {
20
+ private readonly onIdentity?;
20
21
  readonly trustedUserPresenceSupported: boolean;
21
22
  private readonly client;
22
23
  private readonly refreshingDisplayPeers;
@@ -27,7 +28,7 @@ export declare class RustSdkAdapter implements AwikiSdkClient {
27
28
  readonly realtime: AwikiSdkRealtimeClient;
28
29
  readonly agentInbox: AwikiSdkAgentInboxClient;
29
30
  readonly listener: AwikiSdkListenerClient;
30
- constructor(client: ImCoreNodeClient | Promise<ImCoreNodeClient>);
31
+ constructor(client: ImCoreNodeClient | Promise<ImCoreNodeClient>, onIdentity?: ((value: AwikiIdentity) => Promise<void>) | undefined);
31
32
  private run;
32
33
  private displayableMessages;
33
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/sdk-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/sdk-adapter.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ const RUST_FAILURE_CODES = {
13
13
  invalid_otp: 'invalid-otp',
14
14
  challenge_expired: 'challenge-expired',
15
15
  handle_unavailable: 'handle-unavailable',
16
+ short_handle_invite_required: 'short-handle-invite-required',
16
17
  not_found: 'not-found',
17
18
  permission_denied: 'forbidden',
18
19
  group_not_member: 'group-membership-required',
@@ -21,7 +22,7 @@ const RUST_FAILURE_CODES = {
21
22
  local_identity_recovery_required: 'identity-recovery-required',
22
23
  conflict: 'conflict',
23
24
  join_required: 'handle-unavailable',
24
- state_in_use: 'conflict',
25
+ state_in_use: 'state-in-use',
25
26
  rate_limited: 'rate-limited',
26
27
  timeout: 'network',
27
28
  transport_unavailable: 'network',
@@ -431,6 +432,7 @@ function externalHttpAttempt(value) {
431
432
  }
432
433
  /** Adapt the Rust Node bridge to the frozen Host provider interface. */
433
434
  export class RustSdkAdapter {
435
+ onIdentity;
434
436
  trustedUserPresenceSupported = process.platform === 'darwin' && process.arch === 'x64';
435
437
  client;
436
438
  refreshingDisplayPeers = new Set();
@@ -463,7 +465,8 @@ export class RustSdkAdapter {
463
465
  realtime;
464
466
  agentInbox;
465
467
  listener;
466
- constructor(client) {
468
+ constructor(client, onIdentity) {
469
+ this.onIdentity = onIdentity;
467
470
  this.client = Promise.resolve(client);
468
471
  this.realtime = {
469
472
  syncNow: reason => this.listenerSyncNow(reason),
@@ -758,7 +761,11 @@ export class RustSdkAdapter {
758
761
  getIdentity() {
759
762
  return this.run(async (client) => {
760
763
  const value = await client.getDefaultIdentity();
761
- return value === null ? null : identity(value);
764
+ if (value === null)
765
+ return null;
766
+ const result = identity(value);
767
+ await this.onIdentity?.(result);
768
+ return result;
762
769
  });
763
770
  }
764
771
  sendRegistrationOtp(request) {
@@ -771,7 +778,9 @@ export class RustSdkAdapter {
771
778
  return this.run(async (client) => {
772
779
  const value = await client.completeRegistrationWithOutcome(request);
773
780
  if (value.status === 'registered') {
774
- return { status: 'registered', identity: identity(value.identity) };
781
+ const result = identity(value.identity);
782
+ await this.onIdentity?.(result);
783
+ return { status: 'registered', identity: result };
775
784
  }
776
785
  return {
777
786
  status: 'join-required',