@awiki/dsh-plugin 0.3.7 → 0.3.11-rc.1
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 +112 -73
- package/README.zh.md +91 -62
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/cordis.patch.yml +6 -5
- package/lib/builtin-tenants.json +22 -0
- package/lib/builtin-tenants.sha256 +1 -0
- package/lib/client.js +9281 -2379
- package/lib/client.js.map +1 -1
- package/lib/index.js +3553 -1138
- package/lib/model-proxy-contract.js +19 -11
- package/lib/provider.js +73 -17
- package/lib/{sdk-adapter--trNlr-T.mjs → sdk-adapter-CYcJH7sM.mjs} +374 -101
- package/lib/typert.host.js +1595 -168
- package/lib/typert.remote-client.d.ts +43 -7
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +1595 -168
- package/lib/types/builtin-tenant-config.d.ts +19 -0
- package/lib/types/builtin-tenant-config.d.ts.map +1 -0
- package/lib/types/builtin-tenant-config.js +57 -0
- package/lib/types/builtin-tenant-config.js.map +1 -0
- package/lib/types/client/AwikiDeviceJoinReminder.d.ts +15 -0
- package/lib/types/client/AwikiDeviceJoinReminder.d.ts.map +1 -0
- package/lib/types/client/AwikiDeviceJoinReminder.js +74 -0
- package/lib/types/client/AwikiDeviceJoinReminder.js.map +1 -0
- package/lib/types/client/AwikiDevices.d.ts +33 -0
- package/lib/types/client/AwikiDevices.d.ts.map +1 -0
- package/lib/types/client/AwikiDevices.js +141 -0
- package/lib/types/client/AwikiDevices.js.map +1 -0
- package/lib/types/client/AwikiGroupDetails.d.ts.map +1 -1
- package/lib/types/client/AwikiGroupDetails.js +16 -13
- package/lib/types/client/AwikiGroupDetails.js.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.d.ts +17 -8
- package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.js +269 -37
- package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
- package/lib/types/client/AwikiIntegrationSettings.d.ts +21 -0
- package/lib/types/client/AwikiIntegrationSettings.d.ts.map +1 -0
- package/lib/types/client/AwikiIntegrationSettings.js +105 -0
- package/lib/types/client/AwikiIntegrationSettings.js.map +1 -0
- package/lib/types/client/AwikiMail.d.ts +1 -1
- package/lib/types/client/AwikiMail.d.ts.map +1 -1
- package/lib/types/client/AwikiMail.js +17 -137
- package/lib/types/client/AwikiMail.js.map +1 -1
- package/lib/types/client/AwikiOverlay.d.ts +0 -1
- package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
- package/lib/types/client/AwikiOverlay.js +26 -28
- package/lib/types/client/AwikiOverlay.js.map +1 -1
- package/lib/types/client/AwikiProfileCard.d.ts.map +1 -1
- package/lib/types/client/AwikiProfileCard.js +17 -18
- package/lib/types/client/AwikiProfileCard.js.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts +6 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.js +74 -30
- package/lib/types/client/AwikiRecoveryForm.js.map +1 -1
- package/lib/types/client/AwikiSettingsSection.d.ts +28 -13
- package/lib/types/client/AwikiSettingsSection.d.ts.map +1 -1
- package/lib/types/client/AwikiSettingsSection.js +93 -61
- package/lib/types/client/AwikiSettingsSection.js.map +1 -1
- package/lib/types/client/AwikiUpdates.d.ts +10 -0
- package/lib/types/client/AwikiUpdates.d.ts.map +1 -0
- package/lib/types/client/AwikiUpdates.js +57 -0
- package/lib/types/client/AwikiUpdates.js.map +1 -0
- package/lib/types/client/awiki-client-bridge.d.ts +2 -2
- package/lib/types/client/awiki-client-bridge.d.ts.map +1 -1
- package/lib/types/client/awiki-client-bridge.js +4 -1
- package/lib/types/client/awiki-client-bridge.js.map +1 -1
- package/lib/types/client/controller.d.ts +92 -44
- package/lib/types/client/controller.d.ts.map +1 -1
- package/lib/types/client/controller.js +761 -334
- package/lib/types/client/controller.js.map +1 -1
- package/lib/types/client/drafts.d.ts +31 -0
- package/lib/types/client/drafts.d.ts.map +1 -0
- package/lib/types/client/drafts.js +94 -0
- package/lib/types/client/drafts.js.map +1 -0
- package/lib/types/client/image-cache.d.ts +2 -2
- package/lib/types/client/image-cache.d.ts.map +1 -1
- package/lib/types/client/image-cache.js +15 -2
- package/lib/types/client/image-cache.js.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +64 -19
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/integration-operation.d.ts +9 -0
- package/lib/types/client/integration-operation.d.ts.map +1 -0
- package/lib/types/client/integration-operation.js +54 -0
- package/lib/types/client/integration-operation.js.map +1 -0
- package/lib/types/client/mail-list-cache.d.ts +2 -0
- package/lib/types/client/mail-list-cache.d.ts.map +1 -1
- package/lib/types/client/mail-list-cache.js +18 -0
- package/lib/types/client/mail-list-cache.js.map +1 -1
- package/lib/types/client/otp-cooldown.d.ts +7 -0
- package/lib/types/client/otp-cooldown.d.ts.map +1 -0
- package/lib/types/client/otp-cooldown.js +29 -0
- package/lib/types/client/otp-cooldown.js.map +1 -0
- package/lib/types/client/settings-controller.d.ts +38 -2
- package/lib/types/client/settings-controller.d.ts.map +1 -1
- package/lib/types/client/settings-controller.js +206 -10
- package/lib/types/client/settings-controller.js.map +1 -1
- package/lib/types/client/settings-locales.d.ts +1 -1
- package/lib/types/client/settings-locales.d.ts.map +1 -1
- package/lib/types/client/settings-locales.js +192 -14
- package/lib/types/client/settings-locales.js.map +1 -1
- package/lib/types/client/slots.d.ts +21 -10
- package/lib/types/client/slots.d.ts.map +1 -1
- package/lib/types/client/slots.js +0 -1
- package/lib/types/client/slots.js.map +1 -1
- package/lib/types/client/store.d.ts +1 -1
- package/lib/types/client/store.d.ts.map +1 -1
- package/lib/types/client/store.js +1 -1
- package/lib/types/client/store.js.map +1 -1
- package/lib/types/conversation-preferences.d.ts.map +1 -1
- package/lib/types/conversation-preferences.js +0 -17
- package/lib/types/conversation-preferences.js.map +1 -1
- package/lib/types/desktop-distribution.d.ts +25 -0
- package/lib/types/desktop-distribution.d.ts.map +1 -0
- package/lib/types/desktop-distribution.js +57 -0
- package/lib/types/desktop-distribution.js.map +1 -0
- package/lib/types/domain.d.ts +1 -1
- package/lib/types/domain.d.ts.map +1 -1
- package/lib/types/domain.js +2 -1
- package/lib/types/domain.js.map +1 -1
- package/lib/types/index.d.ts +165 -41
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +1594 -535
- package/lib/types/index.js.map +1 -1
- package/lib/types/integration-client.d.ts +17 -0
- package/lib/types/integration-client.d.ts.map +1 -0
- package/lib/types/integration-client.js +233 -0
- package/lib/types/integration-client.js.map +1 -0
- package/lib/types/legacy-sent-mail-cache.d.ts +4 -0
- package/lib/types/legacy-sent-mail-cache.d.ts.map +1 -0
- package/lib/types/legacy-sent-mail-cache.js +29 -0
- package/lib/types/legacy-sent-mail-cache.js.map +1 -0
- package/lib/types/listener-state.d.ts +5 -3
- package/lib/types/listener-state.d.ts.map +1 -1
- package/lib/types/listener-state.js +28 -13
- package/lib/types/listener-state.js.map +1 -1
- package/lib/types/listener.d.ts +9 -32
- package/lib/types/listener.d.ts.map +1 -1
- package/lib/types/listener.js +13 -128
- package/lib/types/listener.js.map +1 -1
- package/lib/types/mail-list-client.d.ts +12 -0
- package/lib/types/mail-list-client.d.ts.map +1 -0
- package/lib/types/mail-list-client.js +254 -0
- package/lib/types/mail-list-client.js.map +1 -0
- package/lib/types/mail-recovery-observability.d.ts +8 -0
- package/lib/types/mail-recovery-observability.d.ts.map +1 -0
- package/lib/types/mail-recovery-observability.js +119 -0
- package/lib/types/mail-recovery-observability.js.map +1 -0
- package/lib/types/mail.d.ts +2 -28
- package/lib/types/mail.d.ts.map +1 -1
- package/lib/types/mail.js +2 -79
- package/lib/types/mail.js.map +1 -1
- package/lib/types/model-proxy-contract.d.ts +8 -8
- package/lib/types/model-proxy-contract.d.ts.map +1 -1
- package/lib/types/model-proxy-contract.js +15 -8
- package/lib/types/model-proxy-contract.js.map +1 -1
- package/lib/types/package-version.generated.d.ts +4 -0
- package/lib/types/package-version.generated.d.ts.map +1 -0
- package/lib/types/package-version.generated.js +4 -0
- package/lib/types/package-version.generated.js.map +1 -0
- package/lib/types/profile-state.d.ts +2 -13
- package/lib/types/profile-state.d.ts.map +1 -1
- package/lib/types/profile-state.js +3 -20
- package/lib/types/profile-state.js.map +1 -1
- package/lib/types/provider-api.d.ts +134 -43
- package/lib/types/provider-api.d.ts.map +1 -1
- package/lib/types/provider.d.ts +8 -2
- package/lib/types/provider.d.ts.map +1 -1
- package/lib/types/provider.js +76 -16
- package/lib/types/provider.js.map +1 -1
- package/lib/types/realtime-supervisor.d.ts +60 -0
- package/lib/types/realtime-supervisor.d.ts.map +1 -0
- package/lib/types/realtime-supervisor.js +255 -0
- package/lib/types/realtime-supervisor.js.map +1 -0
- package/lib/types/registration-policy.d.ts +7 -0
- package/lib/types/registration-policy.d.ts.map +1 -0
- package/lib/types/registration-policy.js +21 -0
- package/lib/types/registration-policy.js.map +1 -0
- package/lib/types/sdk-adapter.d.ts +62 -11
- package/lib/types/sdk-adapter.d.ts.map +1 -1
- package/lib/types/sdk-adapter.js +285 -123
- package/lib/types/sdk-adapter.js.map +1 -1
- package/lib/types/settings-rpc-contract.d.ts +63 -5
- package/lib/types/settings-rpc-contract.d.ts.map +1 -1
- package/lib/types/settings-rpc-contract.js +108 -5
- package/lib/types/settings-rpc-contract.js.map +1 -1
- package/lib/types/settings-rpc.d.ts +14 -1
- package/lib/types/settings-rpc.d.ts.map +1 -1
- package/lib/types/settings-rpc.js +132 -3
- package/lib/types/settings-rpc.js.map +1 -1
- package/lib/types/settings-transport.d.ts +7 -0
- package/lib/types/settings-transport.d.ts.map +1 -0
- package/lib/types/settings-transport.js +52 -0
- package/lib/types/settings-transport.js.map +1 -0
- package/lib/types/tenant-registry.d.ts +74 -0
- package/lib/types/tenant-registry.d.ts.map +1 -0
- package/lib/types/tenant-registry.js +440 -0
- package/lib/types/tenant-registry.js.map +1 -0
- package/lib/types/tools.d.ts +1 -1
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/tools.js +4 -20
- package/lib/types/tools.js.map +1 -1
- package/lib/types/types.d.ts +249 -66
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/lib/types/update-policy.d.ts +51 -0
- package/lib/types/update-policy.d.ts.map +1 -0
- package/lib/types/update-policy.js +379 -0
- package/lib/types/update-policy.js.map +1 -0
- package/lib/types/version.d.ts +4 -0
- package/lib/types/version.d.ts.map +1 -0
- package/lib/types/version.js +44 -0
- package/lib/types/version.js.map +1 -0
- package/package.json +88 -61
- package/lib/types/base64.d.ts +0 -4
- package/lib/types/base64.d.ts.map +0 -1
- package/lib/types/base64.js +0 -28
- package/lib/types/base64.js.map +0 -1
- package/lib/types/client/mail-attachment.d.ts +0 -40
- package/lib/types/client/mail-attachment.d.ts.map +0 -1
- package/lib/types/client/mail-attachment.js +0 -187
- package/lib/types/client/mail-attachment.js.map +0 -1
- package/lib/types/sent-mail-store.d.ts +0 -27
- package/lib/types/sent-mail-store.d.ts.map +0 -1
- package/lib/types/sent-mail-store.js +0 -348
- package/lib/types/sent-mail-store.js.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/** Loopback-only Host transport for AWiki's durable plugin settings. */
|
|
2
|
-
import { SettingsConflictError,
|
|
2
|
+
import { SettingsConflictError, } from '@deepseek-ai/dsh-settings';
|
|
3
3
|
import { AWIKI_DOMAIN_FIELD, AWIKI_SETTINGS_NAMESPACE, normalizeAwikiDomain } from "./domain.js";
|
|
4
4
|
import { AWIKI_SETTINGS_RPC_ENDPOINTS, } from "./settings-rpc-contract.js";
|
|
5
|
+
import { AWIKI_BUILTIN_TENANT_CONFIG, } from "./builtin-tenant-config.js";
|
|
5
6
|
function isRecord(value) {
|
|
6
7
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
7
8
|
}
|
|
@@ -75,11 +76,139 @@ function cancelled() {
|
|
|
75
76
|
},
|
|
76
77
|
};
|
|
77
78
|
}
|
|
79
|
+
function publicTenantView(value) {
|
|
80
|
+
return {
|
|
81
|
+
schemaVersion: value.schemaVersion,
|
|
82
|
+
officialCatalogVersion: value.officialCatalogVersion,
|
|
83
|
+
generation: value.generation,
|
|
84
|
+
activeTenantId: value.activeTenantId,
|
|
85
|
+
tenants: value.tenants.map(tenant => {
|
|
86
|
+
const slot = tenant.tenantId === 'builtin-primary'
|
|
87
|
+
? 'primary'
|
|
88
|
+
: tenant.tenantId === 'builtin-secondary' ? 'secondary' : undefined;
|
|
89
|
+
return {
|
|
90
|
+
tenantId: tenant.tenantId,
|
|
91
|
+
storageScopeId: tenant.storageScopeId,
|
|
92
|
+
kind: tenant.kind,
|
|
93
|
+
displayName: tenant.displayName,
|
|
94
|
+
...(slot === undefined
|
|
95
|
+
? {}
|
|
96
|
+
: { displayNames: AWIKI_BUILTIN_TENANT_CONFIG.tenants[slot].displayName }),
|
|
97
|
+
backendBaseUrl: tenant.backendBaseUrl,
|
|
98
|
+
didHost: tenant.didHost,
|
|
99
|
+
lifecycle: tenant.lifecycle,
|
|
100
|
+
storageLayout: tenant.storageLayout,
|
|
101
|
+
};
|
|
102
|
+
}),
|
|
103
|
+
switching: value.switching,
|
|
104
|
+
...value.diagnostic === undefined ? {} : { diagnostic: value.diagnostic },
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function tenantRejected(error) {
|
|
108
|
+
return {
|
|
109
|
+
ok: false,
|
|
110
|
+
error: {
|
|
111
|
+
code: 'settings-rejected',
|
|
112
|
+
message: error instanceof Error && error.message.startsWith('awiki:')
|
|
113
|
+
? error.message
|
|
114
|
+
: 'The Host rejected the AWiki tenant change.',
|
|
115
|
+
details: { ns: AWIKI_SETTINGS_NAMESPACE },
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
78
119
|
/** Build a handler whose provider lookup remains correct across Cordis reinjection. */
|
|
79
|
-
export function createAwikiSettingsRpcHandler(getProvider) {
|
|
120
|
+
export function createAwikiSettingsRpcHandler(getProvider, tenantManagement) {
|
|
80
121
|
return async (endpoint, payload, signal) => {
|
|
81
122
|
if (signal.aborted)
|
|
82
123
|
return cancelled();
|
|
124
|
+
if (endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.describeDesktopUpdate
|
|
125
|
+
|| endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.refreshDesktopUpdate) {
|
|
126
|
+
if (!isRecord(payload))
|
|
127
|
+
return badRequest();
|
|
128
|
+
try {
|
|
129
|
+
const value = endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.refreshDesktopUpdate
|
|
130
|
+
? await tenantManagement?.refreshDesktopUpdate?.()
|
|
131
|
+
: tenantManagement?.describeDesktopUpdate?.();
|
|
132
|
+
return { ok: true, value: value ?? null };
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return unavailable();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.describeTenants) {
|
|
139
|
+
if (!isRecord(payload) || tenantManagement === undefined)
|
|
140
|
+
return unavailable();
|
|
141
|
+
try {
|
|
142
|
+
return { ok: true, value: publicTenantView(tenantManagement.describe()) };
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
return tenantRejected(error);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.createTenant) {
|
|
149
|
+
if (!isRecord(payload) || typeof payload.displayName !== 'string' || typeof payload.domain !== 'string'
|
|
150
|
+
|| tenantManagement === undefined)
|
|
151
|
+
return badRequest();
|
|
152
|
+
try {
|
|
153
|
+
return { ok: true, value: publicTenantView(tenantManagement.create(payload.displayName, payload.domain)) };
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
return tenantRejected(error);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.renameTenant) {
|
|
160
|
+
if (!isRecord(payload) || typeof payload.tenantId !== 'string' || typeof payload.displayName !== 'string'
|
|
161
|
+
|| tenantManagement === undefined)
|
|
162
|
+
return badRequest();
|
|
163
|
+
try {
|
|
164
|
+
return { ok: true, value: publicTenantView(tenantManagement.rename(payload.tenantId, payload.displayName)) };
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
return tenantRejected(error);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.switchTenant) {
|
|
171
|
+
if (!isRecord(payload) || typeof payload.tenantId !== 'string' || tenantManagement === undefined)
|
|
172
|
+
return badRequest();
|
|
173
|
+
try {
|
|
174
|
+
return { ok: true, value: publicTenantView(await tenantManagement.switch(payload.tenantId)) };
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
return tenantRejected(error);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.archiveTenant) {
|
|
181
|
+
if (!isRecord(payload) || typeof payload.tenantId !== 'string' || tenantManagement === undefined)
|
|
182
|
+
return badRequest();
|
|
183
|
+
try {
|
|
184
|
+
return { ok: true, value: publicTenantView(tenantManagement.archive(payload.tenantId)) };
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
return tenantRejected(error);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.describeUpdatePolicy) {
|
|
191
|
+
const describeUpdate = tenantManagement?.describeUpdate;
|
|
192
|
+
if (!isRecord(payload) || describeUpdate === undefined)
|
|
193
|
+
return unavailable();
|
|
194
|
+
try {
|
|
195
|
+
return { ok: true, value: describeUpdate.call(tenantManagement) };
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
return tenantRejected(error);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (endpoint === AWIKI_SETTINGS_RPC_ENDPOINTS.refreshUpdatePolicy) {
|
|
202
|
+
const refreshUpdate = tenantManagement?.refreshUpdate;
|
|
203
|
+
if (!isRecord(payload) || refreshUpdate === undefined)
|
|
204
|
+
return unavailable();
|
|
205
|
+
try {
|
|
206
|
+
return { ok: true, value: await refreshUpdate.call(tenantManagement) };
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
return tenantRejected(error);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
83
212
|
const provider = getProvider();
|
|
84
213
|
if (provider === undefined)
|
|
85
214
|
return unavailable();
|
|
@@ -114,7 +243,7 @@ export function createAwikiSettingsRpcHandler(getProvider) {
|
|
|
114
243
|
return badRequest();
|
|
115
244
|
}
|
|
116
245
|
try {
|
|
117
|
-
await provider.mutate(
|
|
246
|
+
await provider.mutate(AWIKI_SETTINGS_NAMESPACE, [operation], revision);
|
|
118
247
|
const current = view(provider);
|
|
119
248
|
return current === undefined ? unavailable() : { ok: true, value: current };
|
|
120
249
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-rpc.js","sourceRoot":"","sources":["../../src/settings-rpc.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"settings-rpc.js","sourceRoot":"","sources":["../../src/settings-rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Keep AWiki settings local while using Connection's authenticated Fetch carrier. */
|
|
2
|
+
import type { ConnectionRpcHandler, HostConnectionHandle } from '@deepseek-ai/dsh-client-connection';
|
|
3
|
+
/** Register exact buffered routes; Connection applies authentication before dispatch. */
|
|
4
|
+
export declare function registerAwikiSettingsTransport(connection: Pick<HostConnectionHandle, 'fetch'>, handler: ConnectionRpcHandler): void;
|
|
5
|
+
/** Shared carrier for the AWiki and Model Proxy plugin-owned local operations. */
|
|
6
|
+
export declare function registerAwikiLoopbackRpc(connection: Pick<HostConnectionHandle, 'fetch'>, channel: string, endpoints: readonly string[], handler: ConnectionRpcHandler): void;
|
|
7
|
+
//# sourceMappingURL=settings-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-transport.d.ts","sourceRoot":"","sources":["../../src/settings-transport.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAGpG,yFAAyF;AACzF,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAC/C,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAC/C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAwCN"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AWIKI_SETTINGS_RPC_CHANNEL, AWIKI_SETTINGS_RPC_ENDPOINTS } from "./settings-rpc-contract.js";
|
|
2
|
+
/** Register exact buffered routes; Connection applies authentication before dispatch. */
|
|
3
|
+
export function registerAwikiSettingsTransport(connection, handler) {
|
|
4
|
+
registerAwikiLoopbackRpc(connection, AWIKI_SETTINGS_RPC_CHANNEL, Object.values(AWIKI_SETTINGS_RPC_ENDPOINTS), handler);
|
|
5
|
+
}
|
|
6
|
+
/** Shared carrier for the AWiki and Model Proxy plugin-owned local operations. */
|
|
7
|
+
export function registerAwikiLoopbackRpc(connection, channel, endpoints, handler) {
|
|
8
|
+
for (const endpoint of endpoints) {
|
|
9
|
+
connection.fetch.register({
|
|
10
|
+
path: `${channel}/${endpoint}`,
|
|
11
|
+
methods: ['POST'],
|
|
12
|
+
requestBody: 'buffered',
|
|
13
|
+
async fetch(request) {
|
|
14
|
+
// Authentication alone also permits trusted LAN clients. Keep this
|
|
15
|
+
// plugin's settings surface limited to the loopback page authority.
|
|
16
|
+
// The Fetch bridge uses dsh.internal as its synthetic URL authority.
|
|
17
|
+
// The original Host header has already passed Connection's origin/auth fence.
|
|
18
|
+
const authority = request.headers.get('host') ?? '';
|
|
19
|
+
if (!/^(?:localhost|127\.0\.0\.1|\[::1\])(?::[0-9]{1,5})?$/iu.test(authority)) {
|
|
20
|
+
return new Response('forbidden', { status: 403 });
|
|
21
|
+
}
|
|
22
|
+
if (request.headers.get('content-type')?.split(';', 1)[0]?.trim().toLowerCase() !== 'application/json') {
|
|
23
|
+
return new Response('unsupported content type', { status: 415 });
|
|
24
|
+
}
|
|
25
|
+
let body;
|
|
26
|
+
try {
|
|
27
|
+
body = await request.json();
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return new Response('invalid request', { status: 400 });
|
|
31
|
+
}
|
|
32
|
+
if (typeof body !== 'object' || body === null || Array.isArray(body)) {
|
|
33
|
+
return new Response('invalid request', { status: 400 });
|
|
34
|
+
}
|
|
35
|
+
const envelope = body;
|
|
36
|
+
if (Object.keys(envelope).sort().join(',') !== 'method,payload,rpcId,type'
|
|
37
|
+
|| envelope.type !== 'client-request' || envelope.method !== endpoint
|
|
38
|
+
|| typeof envelope.rpcId !== 'string' || envelope.rpcId.length === 0 || envelope.rpcId.length > 256) {
|
|
39
|
+
return new Response('invalid request', { status: 400 });
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const result = await handler(endpoint, envelope.payload, request.signal);
|
|
43
|
+
return Response.json({ type: 'server-response', rpcId: envelope.rpcId, result });
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return new Response('AWiki settings unavailable', { status: 500 });
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=settings-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-transport.js","sourceRoot":"","sources":["../../src/settings-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/** Host-owned durable AWiki tenant catalog and storage-scope migration. */
|
|
2
|
+
import { type AwikiBuiltinTenantSlot } from './builtin-tenant-config.ts';
|
|
3
|
+
export declare const AWIKI_TENANT_REGISTRY_SCHEMA_VERSION = 1;
|
|
4
|
+
export declare const AWIKI_OFFICIAL_CATALOG_VERSION = 2;
|
|
5
|
+
export declare const AWIKI_PRIMARY_TENANT_ID = "builtin-primary";
|
|
6
|
+
export declare const AWIKI_SECONDARY_TENANT_ID = "builtin-secondary";
|
|
7
|
+
/** Compatibility aliases for existing callers; the persisted IDs are generic slots. */
|
|
8
|
+
export declare const AWIKI_CHINA_TENANT_ID = "builtin-primary";
|
|
9
|
+
export declare const AWIKI_GLOBAL_TENANT_ID = "builtin-secondary";
|
|
10
|
+
export type AwikiTenantKind = 'built_in' | 'custom';
|
|
11
|
+
export type AwikiTenantLifecycle = 'active' | 'inactive' | 'archived';
|
|
12
|
+
export type AwikiTenantStorageLayout = 'scope-v1' | 'legacy-base' | 'domain-v1';
|
|
13
|
+
export interface AwikiTenantEndpoints {
|
|
14
|
+
readonly userServiceUrl: string;
|
|
15
|
+
readonly messageServiceUrl: string;
|
|
16
|
+
readonly mailServiceUrl: string;
|
|
17
|
+
readonly messageServicePublicUrl: string;
|
|
18
|
+
readonly messageServiceDid: string;
|
|
19
|
+
}
|
|
20
|
+
export interface AwikiTenantProfile {
|
|
21
|
+
readonly tenantId: string;
|
|
22
|
+
readonly storageScopeId: string;
|
|
23
|
+
readonly kind: AwikiTenantKind;
|
|
24
|
+
readonly displayName: string;
|
|
25
|
+
readonly backendBaseUrl: string;
|
|
26
|
+
readonly didHost: string;
|
|
27
|
+
readonly lifecycle: AwikiTenantLifecycle;
|
|
28
|
+
readonly storageLayout: AwikiTenantStorageLayout;
|
|
29
|
+
readonly endpoints: AwikiTenantEndpoints;
|
|
30
|
+
}
|
|
31
|
+
export interface AwikiTenantRegistryDocument {
|
|
32
|
+
readonly schemaVersion: typeof AWIKI_TENANT_REGISTRY_SCHEMA_VERSION;
|
|
33
|
+
readonly officialCatalogVersion: typeof AWIKI_OFFICIAL_CATALOG_VERSION;
|
|
34
|
+
readonly generation: number;
|
|
35
|
+
readonly activeTenantId: string;
|
|
36
|
+
readonly tenants: readonly AwikiTenantProfile[];
|
|
37
|
+
}
|
|
38
|
+
export interface AwikiTenantRegistryView {
|
|
39
|
+
readonly schemaVersion: number;
|
|
40
|
+
readonly officialCatalogVersion: number;
|
|
41
|
+
readonly generation: number;
|
|
42
|
+
readonly activeTenantId: string;
|
|
43
|
+
readonly tenants: readonly AwikiTenantProfile[];
|
|
44
|
+
readonly switching: boolean;
|
|
45
|
+
readonly diagnostic?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface AwikiTenantLegacySeed extends AwikiTenantEndpoints {
|
|
48
|
+
readonly domain: string;
|
|
49
|
+
/** Treat this deployment configuration as an existing environment even when its directory is empty. */
|
|
50
|
+
readonly configured: boolean;
|
|
51
|
+
/** Optional one-time classification for a pre-registry data root. */
|
|
52
|
+
readonly legacyTenantSlot?: AwikiBuiltinTenantSlot;
|
|
53
|
+
}
|
|
54
|
+
/** Durable registry. All mutations are synchronous, backup-aware, and atomic. */
|
|
55
|
+
export declare class AwikiTenantRegistry {
|
|
56
|
+
readonly baseStateRoot: string;
|
|
57
|
+
readonly filePath: string;
|
|
58
|
+
readonly backupPath: string;
|
|
59
|
+
readonly diagnosticPath: string;
|
|
60
|
+
private document;
|
|
61
|
+
private readonly persistent;
|
|
62
|
+
private constructor();
|
|
63
|
+
static open(baseStateRoot: string, seed: AwikiTenantLegacySeed): AwikiTenantRegistry;
|
|
64
|
+
snapshot(switching?: boolean): AwikiTenantRegistryView;
|
|
65
|
+
active(): AwikiTenantProfile;
|
|
66
|
+
find(tenantId: string): AwikiTenantProfile | undefined;
|
|
67
|
+
stateRoot(tenant: AwikiTenantProfile): string;
|
|
68
|
+
createCustom(displayName: string, rawDomain: string): AwikiTenantProfile;
|
|
69
|
+
renameCustom(tenantId: string, displayName: string): AwikiTenantProfile;
|
|
70
|
+
archiveCustom(tenantId: string): void;
|
|
71
|
+
commitActive(tenantId: string): AwikiTenantRegistryDocument;
|
|
72
|
+
private persist;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=tenant-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-registry.d.ts","sourceRoot":"","sources":["../../src/tenant-registry.ts"],"names":[],"mappings":"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"}
|