@serve.zone/dcrouter 13.11.0 → 13.13.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/dist_serve/bundle.js +333 -305
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.dcrouter.js +6 -5
- package/dist_ts/db/documents/classes.email-domain.doc.d.ts +1 -0
- package/dist_ts/db/documents/classes.email-domain.doc.js +8 -2
- package/dist_ts/dns/manager.dns.d.ts +46 -8
- package/dist_ts/dns/manager.dns.js +189 -36
- package/dist_ts/email/classes.email-domain.manager.d.ts +1 -0
- package/dist_ts/email/classes.email-domain.manager.js +6 -2
- package/dist_ts/opsserver/handlers/config.handler.js +2 -2
- package/dist_ts/opsserver/handlers/domain.handler.js +14 -1
- package/dist_ts/opsserver/handlers/email-domain.handler.js +2 -1
- package/dist_ts_interfaces/data/email-domain.d.ts +3 -1
- package/dist_ts_interfaces/requests/domains.d.ts +24 -0
- package/dist_ts_interfaces/requests/email-domains.d.ts +2 -0
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/appstate.d.ts +7 -0
- package/dist_ts_web/appstate.js +18 -1
- package/dist_ts_web/elements/domains/ops-view-domains.d.ts +1 -0
- package/dist_ts_web/elements/domains/ops-view-domains.js +97 -1
- package/dist_ts_web/elements/email/ops-view-email-domains.js +8 -1
- package/package.json +2 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.dcrouter.ts +5 -4
- package/ts/db/documents/classes.email-domain.doc.ts +3 -0
- package/ts/dns/manager.dns.ts +219 -35
- package/ts/email/classes.email-domain.manager.ts +6 -1
- package/ts/opsserver/handlers/config.handler.ts +1 -1
- package/ts/opsserver/handlers/domain.handler.ts +18 -0
- package/ts/opsserver/handlers/email-domain.handler.ts +1 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/appstate.ts +27 -0
- package/ts_web/elements/domains/ops-view-domains.ts +99 -0
- package/ts_web/elements/email/ops-view-email-domains.ts +7 -0
- package/dist_ts_oci_container/plugins.d.ts +0 -3
- package/dist_ts_oci_container/plugins.js +0 -4
|
@@ -176,6 +176,15 @@ let OpsViewDomains = (() => {
|
|
|
176
176
|
});
|
|
177
177
|
},
|
|
178
178
|
},
|
|
179
|
+
{
|
|
180
|
+
name: 'Migrate',
|
|
181
|
+
iconName: 'lucide:arrow-right-left',
|
|
182
|
+
type: ['inRow', 'contextmenu'],
|
|
183
|
+
actionFunc: async (actionData) => {
|
|
184
|
+
const domain = actionData.item;
|
|
185
|
+
await this.showMigrateDialog(domain);
|
|
186
|
+
},
|
|
187
|
+
},
|
|
179
188
|
{
|
|
180
189
|
name: 'Delete',
|
|
181
190
|
iconName: 'lucide:trash2',
|
|
@@ -327,6 +336,93 @@ let OpsViewDomains = (() => {
|
|
|
327
336
|
],
|
|
328
337
|
});
|
|
329
338
|
}
|
|
339
|
+
async showMigrateDialog(domain) {
|
|
340
|
+
const { DeesModal, DeesToast } = await import('@design.estate/dees-catalog');
|
|
341
|
+
const providers = this.domainsState.providers;
|
|
342
|
+
// Build target options based on current source
|
|
343
|
+
const targetOptions = [];
|
|
344
|
+
if (domain.source === 'provider') {
|
|
345
|
+
targetOptions.push({ option: 'DcRouter (authoritative)', key: 'dcrouter' });
|
|
346
|
+
}
|
|
347
|
+
// Add all providers (except the current one if already provider-managed)
|
|
348
|
+
for (const p of providers) {
|
|
349
|
+
if (domain.source === 'provider' && domain.providerId === p.id)
|
|
350
|
+
continue;
|
|
351
|
+
targetOptions.push({ option: `${p.name} (${p.type})`, key: `provider:${p.id}` });
|
|
352
|
+
}
|
|
353
|
+
if (domain.source === 'dcrouter') {
|
|
354
|
+
targetOptions.unshift({ option: 'DcRouter (authoritative)', key: 'dcrouter' });
|
|
355
|
+
}
|
|
356
|
+
if (targetOptions.length === 0) {
|
|
357
|
+
DeesToast.show({
|
|
358
|
+
message: 'No migration targets available. Add a DNS provider first.',
|
|
359
|
+
type: 'warning',
|
|
360
|
+
duration: 3000,
|
|
361
|
+
});
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
const currentLabel = domain.source === 'dcrouter'
|
|
365
|
+
? 'DcRouter (authoritative)'
|
|
366
|
+
: providers.find((p) => p.id === domain.providerId)?.name || 'Provider';
|
|
367
|
+
DeesModal.createAndShow({
|
|
368
|
+
heading: `Migrate: ${domain.name}`,
|
|
369
|
+
content: html `
|
|
370
|
+
<dees-form>
|
|
371
|
+
<dees-input-text
|
|
372
|
+
.key=${'currentSource'}
|
|
373
|
+
.label=${'Current source'}
|
|
374
|
+
.value=${currentLabel}
|
|
375
|
+
.disabled=${true}
|
|
376
|
+
></dees-input-text>
|
|
377
|
+
<dees-input-dropdown
|
|
378
|
+
.key=${'target'}
|
|
379
|
+
.label=${'Migrate to'}
|
|
380
|
+
.description=${'Select the target DNS management'}
|
|
381
|
+
.options=${targetOptions}
|
|
382
|
+
.required=${true}
|
|
383
|
+
></dees-input-dropdown>
|
|
384
|
+
<dees-input-checkbox
|
|
385
|
+
.key=${'deleteExisting'}
|
|
386
|
+
.label=${'Delete existing records at provider first'}
|
|
387
|
+
.description=${'Removes all records at the provider before pushing migrated records'}
|
|
388
|
+
.value=${true}
|
|
389
|
+
></dees-input-checkbox>
|
|
390
|
+
</dees-form>
|
|
391
|
+
`,
|
|
392
|
+
menuOptions: [
|
|
393
|
+
{ name: 'Cancel', action: async (m) => m.destroy() },
|
|
394
|
+
{
|
|
395
|
+
name: 'Migrate',
|
|
396
|
+
action: async (m) => {
|
|
397
|
+
const form = m.shadowRoot?.querySelector('.content')?.querySelector('dees-form');
|
|
398
|
+
if (!form)
|
|
399
|
+
return;
|
|
400
|
+
const data = await form.collectFormData();
|
|
401
|
+
const targetKey = typeof data.target === 'object' ? data.target.key : data.target;
|
|
402
|
+
if (!targetKey)
|
|
403
|
+
return;
|
|
404
|
+
let targetSource;
|
|
405
|
+
let targetProviderId;
|
|
406
|
+
if (targetKey === 'dcrouter') {
|
|
407
|
+
targetSource = 'dcrouter';
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
targetSource = 'provider';
|
|
411
|
+
targetProviderId = targetKey.replace('provider:', '');
|
|
412
|
+
}
|
|
413
|
+
await appstate.domainsStatePart.dispatchAction(appstate.migrateDomainAction, {
|
|
414
|
+
id: domain.id,
|
|
415
|
+
targetSource,
|
|
416
|
+
targetProviderId,
|
|
417
|
+
deleteExistingProviderRecords: targetSource === 'provider' ? Boolean(data.deleteExisting) : false,
|
|
418
|
+
});
|
|
419
|
+
DeesToast.show({ message: `Domain ${domain.name} migrated successfully`, type: 'success', duration: 3000 });
|
|
420
|
+
m.destroy();
|
|
421
|
+
},
|
|
422
|
+
},
|
|
423
|
+
],
|
|
424
|
+
});
|
|
425
|
+
}
|
|
330
426
|
async deleteDomain(domain) {
|
|
331
427
|
const { DeesModal } = await import('@design.estate/dees-catalog');
|
|
332
428
|
DeesModal.createAndShow({
|
|
@@ -359,4 +455,4 @@ let OpsViewDomains = (() => {
|
|
|
359
455
|
return OpsViewDomains = _classThis;
|
|
360
456
|
})();
|
|
361
457
|
export { OpsViewDomains };
|
|
362
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctZG9tYWlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9kb21haW5zL29wcy12aWV3LWRvbWFpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsR0FDWCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0lBUy9CLGNBQWM7NEJBRDFCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7OzhCQUFuQixTQUFRLFdBQVc7Ozs7d0NBQzVDLEtBQUssRUFBRTtZQUNSLHlMQUFTLFlBQVksNkJBQVosWUFBWSxtR0FBaUU7WUFGeEYsNktBMFRDOzs7O1FBeFRDLHFGQUFnRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFHLEVBQUM7UUFBdEYsSUFBUyxZQUFZLGtEQUFpRTtRQUF0RixJQUFTLFlBQVksd0RBQWlFO1FBRXRGO1lBQ0UsS0FBSyxFQUFFLENBQUM7O1lBQ1IsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNwRSxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFD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
|
|
458
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctZG9tYWlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9kb21haW5zL29wcy12aWV3LWRvbWFpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsR0FDWCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0lBUy9CLGNBQWM7NEJBRDFCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7OzhCQUFuQixTQUFRLFdBQVc7Ozs7d0NBQzVDLEtBQUssRUFBRTtZQUNSLHlMQUFTLFlBQVksNkJBQVosWUFBWSxtR0FBaUU7WUFGeEYsNktBNlpDOzs7O1FBM1pDLHFGQUFnRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFHLEVBQUM7UUFBdEYsSUFBUyxZQUFZLGtEQUFpRTtRQUF0RixJQUFTLFlBQVksd0RBQWlFO1FBRXRGO1lBQ0UsS0FBSyxFQUFFLENBQUM7O1lBQ1IsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNwRSxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFD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
|
|
@@ -293,6 +293,11 @@ let OpsViewEmailDomains = (() => {
|
|
|
293
293
|
.options=${domainOptions}
|
|
294
294
|
.required=${true}
|
|
295
295
|
></dees-input-dropdown>
|
|
296
|
+
<dees-input-text
|
|
297
|
+
.key=${'subdomain'}
|
|
298
|
+
.label=${'Subdomain'}
|
|
299
|
+
.description=${'Leave empty for bare domain, e.g. "mail" for mail.example.com'}
|
|
300
|
+
></dees-input-text>
|
|
296
301
|
<dees-input-text
|
|
297
302
|
.key=${'dkimSelector'}
|
|
298
303
|
.label=${'DKIM Selector'}
|
|
@@ -331,8 +336,10 @@ let OpsViewEmailDomains = (() => {
|
|
|
331
336
|
const keySize = typeof data.dkimKeySize === 'object'
|
|
332
337
|
? parseInt(data.dkimKeySize.key, 10)
|
|
333
338
|
: parseInt(data.dkimKeySize || '2048', 10);
|
|
339
|
+
const subdomain = data.subdomain?.trim() || undefined;
|
|
334
340
|
await appstate.emailDomainsStatePart.dispatchAction(appstate.createEmailDomainAction, {
|
|
335
341
|
linkedDomainId,
|
|
342
|
+
subdomain,
|
|
336
343
|
dkimSelector: data.dkimSelector || 'default',
|
|
337
344
|
dkimKeySize: keySize,
|
|
338
345
|
rotateKeys: Boolean(data.rotateKeys),
|
|
@@ -400,4 +407,4 @@ let OpsViewEmailDomains = (() => {
|
|
|
400
407
|
return OpsViewEmailDomains = _classThis;
|
|
401
408
|
})();
|
|
402
409
|
export { OpsViewEmailDomains };
|
|
403
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctZW1haWwtZG9tYWlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9lbWFpbC9vcHMtdmlldy1lbWFpbC1kb21haW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztJQVNqRCxtQkFBbUI7NEJBRC9CLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQzs7OztzQkFDQyxXQUFXOzs7Ozs7O21DQUFuQixTQUFRLFdBQVc7Ozs7NkNBQ2pELEtBQUssRUFBRTt3Q0FJUCxLQUFLLEVBQUU7WUFIUix3TUFBUyxpQkFBaUIsNkJBQWpCLGlCQUFpQiw2R0FDbUI7WUFHN0MseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUFpRTtZQU54Riw2S0ErV0M7Ozs7UUE3V0MsK0ZBQ0UsUUFBUSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRyxFQUFDO1FBRDdDLElBQVMsaUJBQWlCLHVEQUNtQjtRQUQ3QyxJQUFTLGlCQUFpQiw2REFDbUI7UUFHN0MscUpBQWdELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUcsR0FBQztRQUF0RixJQUFTLFlBQVksa0RBQWlFO1FBQXRGLElBQVMsWUFBWSx3REFBaUU7UUFFdEY7WUFDRSxLQUFLLEVBQUUsQ0FBQzs7WUFDUixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMscUJB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
|
|
410
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctZW1haWwtZG9tYWlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9lbWFpbC9vcHMtdmlldy1lbWFpbC1kb21haW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztJQVNqRCxtQkFBbUI7NEJBRC9CLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQzs7OztzQkFDQyxXQUFXOzs7Ozs7O21DQUFuQixTQUFRLFdBQVc7Ozs7NkNBQ2pELEtBQUssRUFBRTt3Q0FJUCxLQUFLLEVBQUU7WUFIUix3TUFBUyxpQkFBaUIsNkJBQWpCLGlCQUFpQiw2R0FDbUI7WUFHN0MseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUFpRTtZQU54Riw2S0FzWEM7Ozs7UUFwWEMsK0ZBQ0UsUUFBUSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRyxFQUFDO1FBRDdDLElBQVMsaUJBQWlCLHVEQUNtQjtRQUQ3QyxJQUFTLGlCQUFpQiw2REFDbUI7UUFHN0MscUpBQWdELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUcsR0FBQztRQUF0RixJQUFTLFlBQVksa0RBQWlFO1FBQXRGLElBQVMsWUFBWSx3REFBaUU7UUFFdEY7WUFDRSxLQUFLLEVBQUUsQ0FBQzs7WUFDUixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hFLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFFRCxLQUFLLENBQUMsaUJBQWlCO1lBQ3JCLE1BQU0sS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDaEMsTUFBTSxRQUFRLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RixNQUFNLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLDhCQUE4QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hHLENBQUM7UUFFTSxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLFdBQVc7WUFDWCxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0JBbUJlLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7O3NCQUluQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7c0JBSW5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7O3NCQVVuQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7S0FFcEQ7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7WUFDL0MsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDL0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLE9BQU87Z0JBQzFCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLE9BQU87Z0JBQzNCLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLE9BQU87Z0JBQzVCLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FDaEMsQ0FBQyxNQUFNLENBQUM7WUFDVCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztZQUUvQyxNQUFNLEtBQUssR0FBaUI7Z0JBQzFCO29CQUNFLEVBQUUsRUFBRSxPQUFPO29CQUNYLEtBQUssRUFBRSxlQUFlO29CQUN0QixLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU07b0JBQ3JCLElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRSxjQUFjO29CQUNwQixLQUFLLEVBQUUsU0FBUztpQkFDakI7Z0JBQ0Q7b0JBQ0UsRUFBRSxFQUFFLE9BQU87b0JBQ1gsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLEtBQUssRUFBRSxVQUFVO29CQUNqQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsY0FBYztvQkFDcEIsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCO2dCQUNEO29CQUNFLEVBQUUsRUFBRSxRQUFRO29CQUNaLEtBQUssRUFBRSxRQUFRO29CQUNmLEtBQUssRUFBRSxVQUFVO29CQUNqQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsc0JBQXNCO29CQUM1QixLQUFLLEVBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUM5QztnQkFDRDtvQkFDRSxFQUFFLEVBQUUsTUFBTTtvQkFDVixLQUFLLEVBQUUsYUFBYTtvQkFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTTtvQkFDckQsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCO2FBQ0YsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFBOzs7OzttQkFLSSxLQUFLOzBCQUNFLEdBQUc7eUJBQ0o7Z0JBQ2I7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO3dCQUNqQixNQUFNLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQ2pELFFBQVEsQ0FBQyx1QkFBdUIsRUFDaEMsSUFBSSxDQUNMLENBQUM7b0JBQ0osQ0FBQztpQkFDRjthQUNGOzs7O3NCQUlXLGVBQWU7c0JBQ2Ysb0NBQW9DO2tCQUN4QyxPQUFPOytCQUNNLElBQUk7NkJBQ04sQ0FBQyxDQUErQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztnQkFDaEQsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO2dCQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDNUMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7YUFDL0MsQ0FBQzt5QkFDYTtnQkFDYjtvQkFDRSxJQUFJLEVBQUUsa0JBQWtCO29CQUN4QixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFRO29CQUN2QixVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUU7d0JBQ3JCLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQ2hDLENBQUM7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQVE7b0JBQ3JDLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBZSxFQUFFLEVBQUU7d0JBQ3BDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFvQyxDQUFDO3dCQUMxRCxNQUFNLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQ2pELFFBQVEsQ0FBQyx5QkFBeUIsRUFDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FDTCxDQUFDO3dCQUNGLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO3dCQUNsRSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDaEcsQ0FBQztpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZUFBZTtvQkFDckIsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBUTtvQkFDckMsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFlLEVBQUUsRUFBRTt3QkFDcEMsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQW9DLENBQUM7d0JBQzFELE1BQU0sUUFBUSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FDakQsUUFBUSxDQUFDLDZCQUE2QixFQUN0QyxDQUFDLENBQUMsRUFBRSxDQUNMLENBQUM7d0JBQ0YsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7d0JBQ2xFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsK0JBQStCLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUMxRyxDQUFDO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFFBQVEsRUFBRSxhQUFhO29CQUN2QixJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFRO29CQUNyQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQWUsRUFBRSxFQUFFO3dCQUNwQyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBb0MsQ0FBQzt3QkFDMUQsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLENBQUM7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQVE7b0JBQ3JDLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBZSxFQUFFLEVBQUU7d0JBQ3BDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFvQyxDQUFDO3dCQUMxRCxNQUFNLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQ2pELFFBQVEsQ0FBQyx1QkFBdUIsRUFDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FDTCxDQUFDO29CQUNKLENBQUM7aUJBQ0Y7YUFDRjs7OztLQUlOLENBQUM7UUFDSixDQUFDO1FBRU8sZUFBZSxDQUFDLE1BQXdDO1lBQzlELE9BQU8sSUFBSSxDQUFBLDRCQUE0QixNQUFNLEtBQUssTUFBTSxTQUFTLENBQUM7UUFDcEUsQ0FBQztRQUVPLGlCQUFpQixDQUFDLGNBQXNCO1lBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxjQUFjLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLElBQUksQ0FBQSwwQ0FBMEMsQ0FBQztZQUNuRSxNQUFNLEtBQUssR0FDVCxNQUFNLENBQUMsTUFBTSxLQUFLLFVBQVU7Z0JBQzFCLENBQUMsQ0FBQyxVQUFVO2dCQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksSUFBSSxVQUFVLENBQUM7WUFDOUYsT0FBTyxJQUFJLENBQUEsNkJBQTZCLEtBQUssU0FBUyxDQUFDO1FBQ3pELENBQUM7UUFFTyxLQUFLLENBQUMsZ0JBQWdCO1lBQzVCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDMUQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHO2dCQUNqQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUU7YUFDVixDQUFDLENBQUMsQ0FBQztZQUVKLFNBQVMsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUE7OzttQkFHQSxnQkFBZ0I7cUJBQ2QsUUFBUTsyQkFDRiwrQkFBK0I7dUJBQ25DLGFBQWE7d0JBQ1osSUFBSTs7O21CQUdULFdBQVc7cUJBQ1QsV0FBVzsyQkFDTCwrREFBK0Q7OzttQkFHdkUsY0FBYztxQkFDWixlQUFlOzJCQUNULG9DQUFvQztxQkFDMUMsU0FBUzs7O21CQUdYLGFBQWE7cUJBQ1gsZUFBZTt1QkFDYjtvQkFDVCxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO29CQUM3QyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtvQkFDL0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUU7aUJBQ2hDOzhCQUNpQixFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFOzs7bUJBR3hELFlBQVk7cUJBQ1YsdUJBQXVCO3FCQUN2QixLQUFLOzs7T0FHbkI7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUN6RDt3QkFDRSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQU0sRUFBRSxFQUFFOzRCQUN2QixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7NEJBQ2pGLElBQUksQ0FBQyxJQUFJO2dDQUFFLE9BQU87NEJBQ2xCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDOzRCQUMxQyxNQUFNLGNBQWMsR0FDbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFFBQVE7Z0NBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUc7Z0NBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDOzRCQUMxQixNQUFNLE9BQU8sR0FDWCxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUTtnQ0FDbEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0NBQ3BDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7NEJBRS9DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksU0FBUyxDQUFDOzRCQUN0RCxNQUFNLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQ2pELFFBQVEsQ0FBQyx1QkFBdUIsRUFDaEM7Z0NBQ0UsY0FBYztnQ0FDZCxTQUFTO2dDQUNULFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLFNBQVM7Z0NBQzVDLFdBQVcsRUFBRSxPQUFPO2dDQUNwQixVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7NkJBQ3JDLENBQ0YsQ0FBQzs0QkFDRixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ2QsQ0FBQztxQkFDRjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsV0FBeUM7WUFDMUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBRTdFLDZCQUE2QjtZQUM3QixJQUFJLE9BQU8sR0FBc0MsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQztnQkFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNFLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQzdCLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNmLENBQUM7WUFFRCxTQUFTLENBQUMsYUFBYSxDQUFDO2dCQUN0QixPQUFPLEVBQUUsZ0JBQWdCLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQzdDLE9BQU8sRUFBRSxJQUFJLENBQUE7O2tCQUVELE9BQU87NkJBQ0ksQ0FBQyxDQUFrQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMxRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7b0JBQ1osSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO29CQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztvQkFDZCxNQUFNLEVBQUUsSUFBSSxDQUFBLDRCQUE0QixDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLFNBQVM7aUJBQ3ZFLENBQUM7eUJBQ2E7b0JBQ2I7d0JBQ0UsSUFBSSxFQUFFLFlBQVk7d0JBQ2xCLFFBQVEsRUFBRSxhQUFhO3dCQUN2QixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQVE7d0JBQ3RCLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBZSxFQUFFLEVBQUU7NEJBQ3BDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUF1QyxDQUFDOzRCQUMvRCxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDL0MsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUN0RixDQUFDO3FCQUNGO2lCQUNGOzs7T0FHSjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1g7d0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjt3QkFDMUIsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFNLEVBQUUsRUFBRTs0QkFDdkIsTUFBTSxRQUFRLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUNqRCxRQUFRLENBQUMsNkJBQTZCLEVBQ3RDLFdBQVcsQ0FBQyxFQUFFLENBQ2YsQ0FBQzs0QkFDRixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7NEJBQ3hGLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFDZCxDQUFDO3FCQUNGO29CQUNELEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2lCQUN6RDthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7O1lBclhVLHVEQUFtQjs7Ozs7U0FBbkIsbUJBQW1CIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/dcrouter",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "13.
|
|
4
|
+
"version": "13.13.0",
|
|
5
5
|
"description": "A multifaceted routing service handling mail and SMS delivery functions.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@api.global/typedserver": "^8.4.6",
|
|
36
36
|
"@api.global/typedsocket": "^4.1.2",
|
|
37
37
|
"@apiclient.xyz/cloudflare": "^7.1.0",
|
|
38
|
-
"@design.estate/dees-catalog": "^3.78.
|
|
38
|
+
"@design.estate/dees-catalog": "^3.78.2",
|
|
39
39
|
"@design.estate/dees-element": "^2.2.4",
|
|
40
40
|
"@push.rocks/lik": "^6.4.0",
|
|
41
41
|
"@push.rocks/projectinfo": "^5.1.0",
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/classes.dcrouter.ts
CHANGED
|
@@ -930,15 +930,16 @@ export class DcRouter {
|
|
|
930
930
|
}
|
|
931
931
|
|
|
932
932
|
// Configure DNS-01 challenge if any DnsProviderDoc exists in the DB AND
|
|
933
|
-
// ACME is enabled. The DnsManager dispatches each challenge
|
|
934
|
-
//
|
|
933
|
+
// ACME is enabled. The DnsManager dispatches each challenge through the
|
|
934
|
+
// unified createRecord()/deleteRecord() path — works for both dcrouter-hosted
|
|
935
|
+
// zones and provider-managed zones. Only domains under management get certs.
|
|
935
936
|
let challengeHandlers: any[] = [];
|
|
936
937
|
if (
|
|
937
938
|
acmeConfig &&
|
|
938
939
|
this.dnsManager &&
|
|
939
|
-
(await this.dnsManager.
|
|
940
|
+
(await this.dnsManager.hasAnyManagedDomain())
|
|
940
941
|
) {
|
|
941
|
-
logger.log('info', 'Configuring DNS-01 challenge for ACME via DnsManager (
|
|
942
|
+
logger.log('info', 'Configuring DNS-01 challenge for ACME via DnsManager (managed domains)');
|
|
942
943
|
const convenientDnsProvider = this.dnsManager.buildAcmeConvenientDnsProvider();
|
|
943
944
|
const dns01Handler = new plugins.smartacme.handlers.Dns01Handler(convenientDnsProvider);
|
|
944
945
|
challengeHandlers.push(dns01Handler);
|
|
@@ -20,6 +20,9 @@ export class EmailDomainDoc extends plugins.smartdata.SmartDataDbDoc<EmailDomain
|
|
|
20
20
|
@plugins.smartdata.svDb()
|
|
21
21
|
public linkedDomainId: string = '';
|
|
22
22
|
|
|
23
|
+
@plugins.smartdata.svDb()
|
|
24
|
+
public subdomain?: string;
|
|
25
|
+
|
|
23
26
|
@plugins.smartdata.svDb()
|
|
24
27
|
public dkim!: IEmailDomainDkim;
|
|
25
28
|
|
package/ts/dns/manager.dns.ts
CHANGED
|
@@ -296,70 +296,99 @@ export class DnsManager {
|
|
|
296
296
|
}
|
|
297
297
|
|
|
298
298
|
/**
|
|
299
|
-
*
|
|
300
|
-
*
|
|
299
|
+
* Find the DomainDoc that covers a given FQDN, regardless of source
|
|
300
|
+
* (dcrouter-hosted or provider-managed). Uses longest-suffix match.
|
|
301
301
|
*/
|
|
302
|
-
public async
|
|
303
|
-
const
|
|
304
|
-
|
|
302
|
+
public async findDomainForFqdn(fqdn: string): Promise<DomainDoc | null> {
|
|
303
|
+
const lower = fqdn.toLowerCase().replace(/^\*\./, '').replace(/\.$/, '');
|
|
304
|
+
const allDomains = await DomainDoc.findAll();
|
|
305
|
+
// Sort by name length descending for longest-match-wins
|
|
306
|
+
allDomains.sort((a, b) => b.name.length - a.name.length);
|
|
307
|
+
for (const domain of allDomains) {
|
|
308
|
+
if (lower === domain.name || lower.endsWith(`.${domain.name}`)) {
|
|
309
|
+
return domain;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return null;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Delete all DNS records matching a name and type under a domain.
|
|
317
|
+
* Used for ACME challenge cleanup (may have multiple TXT records at the same name).
|
|
318
|
+
*/
|
|
319
|
+
public async deleteRecordsByNameAndType(
|
|
320
|
+
domainId: string,
|
|
321
|
+
name: string,
|
|
322
|
+
type: TDnsRecordType,
|
|
323
|
+
): Promise<void> {
|
|
324
|
+
const records = await DnsRecordDoc.findByDomainId(domainId);
|
|
325
|
+
for (const rec of records) {
|
|
326
|
+
if (rec.name.toLowerCase() === name.toLowerCase() && rec.type === type) {
|
|
327
|
+
await this.deleteRecord(rec.id);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* True if any domain is under management (dcrouter-hosted or provider-managed).
|
|
334
|
+
* Used by setupSmartProxy() to decide whether to wire SmartAcme with a DNS-01 handler.
|
|
335
|
+
*/
|
|
336
|
+
public async hasAnyManagedDomain(): Promise<boolean> {
|
|
337
|
+
const domains = await DomainDoc.findAll();
|
|
338
|
+
return domains.length > 0;
|
|
305
339
|
}
|
|
306
340
|
|
|
307
341
|
/**
|
|
308
|
-
* Build an IConvenientDnsProvider that
|
|
309
|
-
* the
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
342
|
+
* Build an IConvenientDnsProvider that routes ACME DNS-01 challenges through
|
|
343
|
+
* the DnsManager abstraction. Challenges are dispatched via createRecord() /
|
|
344
|
+
* deleteRecord(), which transparently handle both dcrouter-hosted zones
|
|
345
|
+
* (embedded DnsServer) and provider-managed zones (e.g. Cloudflare API).
|
|
346
|
+
*
|
|
347
|
+
* Only domains under management (with a DomainDoc in DB) are supported —
|
|
348
|
+
* this acts as the management gate for certificate issuance.
|
|
313
349
|
*/
|
|
314
350
|
public buildAcmeConvenientDnsProvider(): plugins.tsclass.network.IConvenientDnsProvider {
|
|
315
351
|
const self = this;
|
|
316
352
|
const adapter = {
|
|
317
353
|
async acmeSetDnsChallenge(dnsChallenge: { hostName: string; challenge: string }) {
|
|
318
|
-
const
|
|
319
|
-
if (!
|
|
354
|
+
const domainDoc = await self.findDomainForFqdn(dnsChallenge.hostName);
|
|
355
|
+
if (!domainDoc) {
|
|
320
356
|
throw new Error(
|
|
321
|
-
`DnsManager: no
|
|
322
|
-
'Add
|
|
357
|
+
`DnsManager: no managed domain found for ${dnsChallenge.hostName}. ` +
|
|
358
|
+
'Add the domain in Domains before issuing certificates.',
|
|
323
359
|
);
|
|
324
360
|
}
|
|
325
|
-
// Clean
|
|
361
|
+
// Clean leftover challenge records first to avoid duplicates.
|
|
326
362
|
try {
|
|
327
|
-
|
|
328
|
-
for (const r of existing) {
|
|
329
|
-
if (r.type === 'TXT' && r.name === dnsChallenge.hostName) {
|
|
330
|
-
await client.deleteRecord(dnsChallenge.hostName, r.providerRecordId).catch(() => {});
|
|
331
|
-
}
|
|
332
|
-
}
|
|
363
|
+
await self.deleteRecordsByNameAndType(domainDoc.id, dnsChallenge.hostName, 'TXT');
|
|
333
364
|
} catch (err: unknown) {
|
|
334
365
|
logger.log('warn', `DnsManager: failed to clean existing TXT for ${dnsChallenge.hostName}: ${(err as Error).message}`);
|
|
335
366
|
}
|
|
336
|
-
|
|
367
|
+
// Create the challenge TXT record via the unified path
|
|
368
|
+
await self.createRecord({
|
|
369
|
+
domainId: domainDoc.id,
|
|
337
370
|
name: dnsChallenge.hostName,
|
|
338
371
|
type: 'TXT',
|
|
339
372
|
value: dnsChallenge.challenge,
|
|
340
373
|
ttl: 120,
|
|
374
|
+
createdBy: 'acme-dns01',
|
|
341
375
|
});
|
|
342
376
|
},
|
|
343
377
|
async acmeRemoveDnsChallenge(dnsChallenge: { hostName: string; challenge: string }) {
|
|
344
|
-
const
|
|
345
|
-
if (!
|
|
378
|
+
const domainDoc = await self.findDomainForFqdn(dnsChallenge.hostName);
|
|
379
|
+
if (!domainDoc) {
|
|
346
380
|
// The domain may have been removed; nothing to clean up.
|
|
347
381
|
return;
|
|
348
382
|
}
|
|
349
383
|
try {
|
|
350
|
-
|
|
351
|
-
for (const r of existing) {
|
|
352
|
-
if (r.type === 'TXT' && r.name === dnsChallenge.hostName) {
|
|
353
|
-
await client.deleteRecord(dnsChallenge.hostName, r.providerRecordId);
|
|
354
|
-
}
|
|
355
|
-
}
|
|
384
|
+
await self.deleteRecordsByNameAndType(domainDoc.id, dnsChallenge.hostName, 'TXT');
|
|
356
385
|
} catch (err: unknown) {
|
|
357
386
|
logger.log('warn', `DnsManager: failed to remove TXT for ${dnsChallenge.hostName}: ${(err as Error).message}`);
|
|
358
387
|
}
|
|
359
388
|
},
|
|
360
389
|
async isDomainSupported(domain: string): Promise<boolean> {
|
|
361
|
-
const
|
|
362
|
-
return !!
|
|
390
|
+
const domainDoc = await self.findDomainForFqdn(domain);
|
|
391
|
+
return !!domainDoc;
|
|
363
392
|
},
|
|
364
393
|
};
|
|
365
394
|
return { convenience: adapter } as plugins.tsclass.network.IConvenientDnsProvider;
|
|
@@ -642,6 +671,151 @@ export class DnsManager {
|
|
|
642
671
|
return await DnsRecordDoc.findById(id);
|
|
643
672
|
}
|
|
644
673
|
|
|
674
|
+
// ==========================================================================
|
|
675
|
+
// Domain migration
|
|
676
|
+
// ==========================================================================
|
|
677
|
+
|
|
678
|
+
/**
|
|
679
|
+
* Migrate a domain between dcrouter-hosted and provider-managed.
|
|
680
|
+
* Transfers all records to the target and updates domain metadata.
|
|
681
|
+
*/
|
|
682
|
+
public async migrateDomain(args: {
|
|
683
|
+
id: string;
|
|
684
|
+
targetSource: 'dcrouter' | 'provider';
|
|
685
|
+
targetProviderId?: string;
|
|
686
|
+
deleteExistingProviderRecords?: boolean;
|
|
687
|
+
}): Promise<{ success: boolean; recordsMigrated?: number; message?: string }> {
|
|
688
|
+
const domain = await DomainDoc.findById(args.id);
|
|
689
|
+
if (!domain) return { success: false, message: 'Domain not found' };
|
|
690
|
+
|
|
691
|
+
if (domain.source === args.targetSource && domain.providerId === args.targetProviderId) {
|
|
692
|
+
return { success: false, message: 'Domain is already in the target configuration' };
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
const records = await DnsRecordDoc.findByDomainId(domain.id);
|
|
696
|
+
|
|
697
|
+
if (args.targetSource === 'provider') {
|
|
698
|
+
return this.migrateToDnsProvider(domain, records, args.targetProviderId!, args.deleteExistingProviderRecords ?? false);
|
|
699
|
+
} else {
|
|
700
|
+
return this.migrateToDcrouter(domain, records);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
/**
|
|
705
|
+
* Migrate domain from dcrouter-hosted (or another provider) to an external DNS provider.
|
|
706
|
+
*/
|
|
707
|
+
private async migrateToDnsProvider(
|
|
708
|
+
domain: DomainDoc,
|
|
709
|
+
records: DnsRecordDoc[],
|
|
710
|
+
targetProviderId: string,
|
|
711
|
+
deleteExistingProviderRecords: boolean,
|
|
712
|
+
): Promise<{ success: boolean; recordsMigrated?: number; message?: string }> {
|
|
713
|
+
// Validate the target provider exists
|
|
714
|
+
const client = await this.getProviderClientById(targetProviderId);
|
|
715
|
+
if (!client) {
|
|
716
|
+
return { success: false, message: 'Target DNS provider not found' };
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
// Find the zone at the provider
|
|
720
|
+
const providerDomains = await client.listDomains();
|
|
721
|
+
const zone = providerDomains.find(
|
|
722
|
+
(z) => z.name.toLowerCase() === domain.name.toLowerCase(),
|
|
723
|
+
);
|
|
724
|
+
if (!zone) {
|
|
725
|
+
return { success: false, message: `Zone "${domain.name}" not found at the target provider` };
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
// Optionally delete existing records at the provider
|
|
729
|
+
if (deleteExistingProviderRecords) {
|
|
730
|
+
try {
|
|
731
|
+
const existingProviderRecords = await client.listRecords(domain.name);
|
|
732
|
+
for (const pr of existingProviderRecords) {
|
|
733
|
+
await client.deleteRecord(domain.name, pr.providerRecordId).catch(() => {});
|
|
734
|
+
}
|
|
735
|
+
logger.log('info', `Deleted ${existingProviderRecords.length} existing records at provider for ${domain.name}`);
|
|
736
|
+
} catch (err: unknown) {
|
|
737
|
+
logger.log('warn', `Failed to clean existing provider records for ${domain.name}: ${(err as Error).message}`);
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
// Push each local record to the provider
|
|
742
|
+
let migrated = 0;
|
|
743
|
+
for (const rec of records) {
|
|
744
|
+
try {
|
|
745
|
+
const providerRecord = await client.createRecord(domain.name, {
|
|
746
|
+
name: rec.name,
|
|
747
|
+
type: rec.type as any,
|
|
748
|
+
value: rec.value,
|
|
749
|
+
ttl: rec.ttl,
|
|
750
|
+
});
|
|
751
|
+
// Unregister from embedded DnsServer if it was dcrouter-hosted
|
|
752
|
+
if (domain.source === 'dcrouter') {
|
|
753
|
+
this.unregisterRecordFromDnsServer(rec);
|
|
754
|
+
}
|
|
755
|
+
// Update the record doc to synced
|
|
756
|
+
rec.source = 'synced' as TDnsRecordSource;
|
|
757
|
+
rec.providerRecordId = providerRecord.providerRecordId;
|
|
758
|
+
await rec.save();
|
|
759
|
+
migrated++;
|
|
760
|
+
} catch (err: unknown) {
|
|
761
|
+
logger.log('warn', `Failed to migrate record ${rec.name} ${rec.type} to provider: ${(err as Error).message}`);
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
// Update domain metadata
|
|
766
|
+
domain.source = 'provider';
|
|
767
|
+
domain.authoritative = false;
|
|
768
|
+
domain.providerId = targetProviderId;
|
|
769
|
+
domain.externalZoneId = zone.externalId;
|
|
770
|
+
domain.nameservers = zone.nameservers;
|
|
771
|
+
domain.lastSyncedAt = Date.now();
|
|
772
|
+
domain.updatedAt = Date.now();
|
|
773
|
+
await domain.save();
|
|
774
|
+
|
|
775
|
+
logger.log('info', `Domain ${domain.name} migrated to provider (${migrated} records)`);
|
|
776
|
+
return { success: true, recordsMigrated: migrated };
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
/**
|
|
780
|
+
* Migrate domain from provider-managed to dcrouter-hosted (authoritative).
|
|
781
|
+
*/
|
|
782
|
+
private async migrateToDcrouter(
|
|
783
|
+
domain: DomainDoc,
|
|
784
|
+
records: DnsRecordDoc[],
|
|
785
|
+
): Promise<{ success: boolean; recordsMigrated?: number; message?: string }> {
|
|
786
|
+
// Register each record with the embedded DnsServer
|
|
787
|
+
let migrated = 0;
|
|
788
|
+
for (const rec of records) {
|
|
789
|
+
try {
|
|
790
|
+
this.registerRecordWithDnsServer(rec);
|
|
791
|
+
// Update the record doc to local
|
|
792
|
+
rec.source = 'local' as TDnsRecordSource;
|
|
793
|
+
rec.providerRecordId = undefined;
|
|
794
|
+
await rec.save();
|
|
795
|
+
migrated++;
|
|
796
|
+
} catch (err: unknown) {
|
|
797
|
+
logger.log('warn', `Failed to register record ${rec.name} ${rec.type} with DnsServer: ${(err as Error).message}`);
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
// Update domain metadata
|
|
802
|
+
domain.source = 'dcrouter';
|
|
803
|
+
domain.authoritative = true;
|
|
804
|
+
domain.providerId = undefined;
|
|
805
|
+
domain.externalZoneId = undefined;
|
|
806
|
+
domain.nameservers = undefined;
|
|
807
|
+
domain.lastSyncedAt = undefined;
|
|
808
|
+
domain.updatedAt = Date.now();
|
|
809
|
+
await domain.save();
|
|
810
|
+
|
|
811
|
+
logger.log('info', `Domain ${domain.name} migrated to dcrouter (${migrated} records)`);
|
|
812
|
+
return { success: true, recordsMigrated: migrated };
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
// ==========================================================================
|
|
816
|
+
// Record CRUD
|
|
817
|
+
// ==========================================================================
|
|
818
|
+
|
|
645
819
|
public async createRecord(args: {
|
|
646
820
|
domainId: string;
|
|
647
821
|
name: string;
|
|
@@ -759,14 +933,24 @@ export class DnsManager {
|
|
|
759
933
|
}
|
|
760
934
|
}
|
|
761
935
|
}
|
|
762
|
-
// For
|
|
763
|
-
// so the record
|
|
764
|
-
|
|
936
|
+
// For dcrouter-hosted records: unregister the handler from the embedded DnsServer
|
|
937
|
+
// so the record stops being served immediately (not just after restart).
|
|
938
|
+
if (domain.source === 'dcrouter' && this.dnsServer) {
|
|
939
|
+
this.unregisterRecordFromDnsServer(doc);
|
|
940
|
+
}
|
|
765
941
|
|
|
766
942
|
await doc.delete();
|
|
767
943
|
return { success: true };
|
|
768
944
|
}
|
|
769
945
|
|
|
946
|
+
/**
|
|
947
|
+
* Unregister a record's handler from the embedded DnsServer.
|
|
948
|
+
*/
|
|
949
|
+
public unregisterRecordFromDnsServer(rec: DnsRecordDoc): void {
|
|
950
|
+
if (!this.dnsServer) return;
|
|
951
|
+
this.dnsServer.unregisterHandler(rec.name, [rec.type]);
|
|
952
|
+
}
|
|
953
|
+
|
|
770
954
|
// ==========================================================================
|
|
771
955
|
// Internal helpers
|
|
772
956
|
// ==========================================================================
|