@serve.zone/dcrouter 13.4.2 → 13.7.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.
Files changed (148) hide show
  1. package/dist_serve/bundle.js +1779 -1375
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/classes.dcrouter.d.ts +2 -5
  4. package/dist_ts/classes.dcrouter.js +41 -10
  5. package/dist_ts/db/documents/classes.dns-provider.doc.d.ts +22 -0
  6. package/dist_ts/db/documents/classes.dns-provider.doc.js +134 -0
  7. package/dist_ts/db/documents/classes.dns-record.doc.d.ts +21 -0
  8. package/dist_ts/db/documents/classes.dns-record.doc.js +143 -0
  9. package/dist_ts/db/documents/classes.domain.doc.d.ts +22 -0
  10. package/dist_ts/db/documents/classes.domain.doc.js +146 -0
  11. package/dist_ts/db/documents/index.d.ts +3 -0
  12. package/dist_ts/db/documents/index.js +5 -1
  13. package/dist_ts/dns/index.d.ts +2 -0
  14. package/dist_ts/dns/index.js +3 -0
  15. package/dist_ts/dns/manager.dns.d.ts +227 -0
  16. package/dist_ts/dns/manager.dns.js +747 -0
  17. package/dist_ts/dns/providers/cloudflare.provider.d.ts +21 -0
  18. package/dist_ts/dns/providers/cloudflare.provider.js +106 -0
  19. package/dist_ts/dns/providers/factory.d.ts +23 -0
  20. package/dist_ts/dns/providers/factory.js +38 -0
  21. package/dist_ts/dns/providers/index.d.ts +3 -0
  22. package/dist_ts/dns/providers/index.js +4 -0
  23. package/dist_ts/dns/providers/interfaces.d.ts +54 -0
  24. package/dist_ts/dns/providers/interfaces.js +2 -0
  25. package/dist_ts/opsserver/classes.opsserver.d.ts +4 -0
  26. package/dist_ts/opsserver/classes.opsserver.js +9 -1
  27. package/dist_ts/opsserver/handlers/admin.handler.d.ts +9 -0
  28. package/dist_ts/opsserver/handlers/admin.handler.js +12 -1
  29. package/dist_ts/opsserver/handlers/config.handler.js +11 -2
  30. package/dist_ts/opsserver/handlers/dns-provider.handler.d.ts +16 -0
  31. package/dist_ts/opsserver/handlers/dns-provider.handler.js +119 -0
  32. package/dist_ts/opsserver/handlers/dns-record.handler.d.ts +13 -0
  33. package/dist_ts/opsserver/handlers/dns-record.handler.js +98 -0
  34. package/dist_ts/opsserver/handlers/domain.handler.d.ts +13 -0
  35. package/dist_ts/opsserver/handlers/domain.handler.js +124 -0
  36. package/dist_ts/opsserver/handlers/index.d.ts +4 -0
  37. package/dist_ts/opsserver/handlers/index.js +5 -1
  38. package/dist_ts/opsserver/handlers/users.handler.d.ts +12 -0
  39. package/dist_ts/opsserver/handlers/users.handler.js +24 -0
  40. package/dist_ts_interfaces/data/dns-provider.d.ts +112 -0
  41. package/dist_ts_interfaces/data/dns-provider.js +27 -0
  42. package/dist_ts_interfaces/data/dns-record.d.ts +40 -0
  43. package/dist_ts_interfaces/data/dns-record.js +2 -0
  44. package/dist_ts_interfaces/data/domain.d.ts +34 -0
  45. package/dist_ts_interfaces/data/domain.js +2 -0
  46. package/dist_ts_interfaces/data/index.d.ts +3 -0
  47. package/dist_ts_interfaces/data/index.js +4 -1
  48. package/dist_ts_interfaces/data/route-management.d.ts +1 -1
  49. package/dist_ts_interfaces/requests/dns-providers.d.ts +117 -0
  50. package/dist_ts_interfaces/requests/dns-providers.js +2 -0
  51. package/dist_ts_interfaces/requests/dns-records.d.ts +89 -0
  52. package/dist_ts_interfaces/requests/dns-records.js +2 -0
  53. package/dist_ts_interfaces/requests/domains.d.ts +118 -0
  54. package/dist_ts_interfaces/requests/domains.js +2 -0
  55. package/dist_ts_interfaces/requests/index.d.ts +4 -0
  56. package/dist_ts_interfaces/requests/index.js +5 -1
  57. package/dist_ts_interfaces/requests/users.d.ts +19 -0
  58. package/dist_ts_interfaces/requests/users.js +3 -0
  59. package/dist_ts_web/00_commitinfo_data.js +1 -1
  60. package/dist_ts_web/appstate.d.ts +85 -0
  61. package/dist_ts_web/appstate.js +339 -6
  62. package/dist_ts_web/elements/access/index.d.ts +1 -0
  63. package/dist_ts_web/elements/access/index.js +2 -1
  64. package/dist_ts_web/elements/access/ops-view-apitokens.js +1 -1
  65. package/dist_ts_web/elements/access/ops-view-users.d.ts +11 -0
  66. package/dist_ts_web/elements/access/ops-view-users.js +190 -0
  67. package/dist_ts_web/elements/domains/dns-provider-form.d.ts +58 -0
  68. package/dist_ts_web/elements/domains/dns-provider-form.js +268 -0
  69. package/dist_ts_web/elements/domains/index.d.ts +5 -0
  70. package/dist_ts_web/elements/domains/index.js +6 -0
  71. package/dist_ts_web/elements/{ops-view-certificates.d.ts → domains/ops-view-certificates.d.ts} +1 -1
  72. package/dist_ts_web/elements/{ops-view-certificates.js → domains/ops-view-certificates.js} +5 -5
  73. package/dist_ts_web/elements/domains/ops-view-dns.d.ts +17 -0
  74. package/dist_ts_web/elements/domains/ops-view-dns.js +304 -0
  75. package/dist_ts_web/elements/domains/ops-view-domains.d.ts +18 -0
  76. package/dist_ts_web/elements/domains/ops-view-domains.js +361 -0
  77. package/dist_ts_web/elements/domains/ops-view-providers.d.ts +21 -0
  78. package/dist_ts_web/elements/domains/ops-view-providers.js +316 -0
  79. package/dist_ts_web/elements/email/ops-view-email-security.js +1 -1
  80. package/dist_ts_web/elements/email/ops-view-emails.js +1 -1
  81. package/dist_ts_web/elements/index.d.ts +1 -1
  82. package/dist_ts_web/elements/index.js +2 -2
  83. package/dist_ts_web/elements/network/ops-view-network-activity.js +6 -2
  84. package/dist_ts_web/elements/network/ops-view-networktargets.js +1 -1
  85. package/dist_ts_web/elements/network/ops-view-remoteingress.js +1 -1
  86. package/dist_ts_web/elements/network/ops-view-routes.js +1 -1
  87. package/dist_ts_web/elements/network/ops-view-sourceprofiles.js +1 -1
  88. package/dist_ts_web/elements/network/ops-view-targetprofiles.js +1 -1
  89. package/dist_ts_web/elements/network/ops-view-vpn.js +1 -1
  90. package/dist_ts_web/elements/ops-dashboard.js +16 -5
  91. package/dist_ts_web/elements/ops-view-logs.js +1 -1
  92. package/dist_ts_web/elements/overview/ops-view-config.js +3 -3
  93. package/dist_ts_web/elements/overview/ops-view-overview.js +1 -1
  94. package/dist_ts_web/elements/security/ops-view-security-authentication.js +1 -1
  95. package/dist_ts_web/elements/security/ops-view-security-blocked.js +1 -1
  96. package/dist_ts_web/elements/security/ops-view-security-overview.js +1 -1
  97. package/dist_ts_web/router.d.ts +1 -1
  98. package/dist_ts_web/router.js +5 -3
  99. package/package.json +2 -2
  100. package/ts/00_commitinfo_data.ts +1 -1
  101. package/ts/classes.dcrouter.ts +46 -17
  102. package/ts/db/documents/classes.dns-provider.doc.ts +63 -0
  103. package/ts/db/documents/classes.dns-record.doc.ts +62 -0
  104. package/ts/db/documents/classes.domain.doc.ts +66 -0
  105. package/ts/db/documents/index.ts +5 -0
  106. package/ts/dns/index.ts +2 -0
  107. package/ts/dns/manager.dns.ts +869 -0
  108. package/ts/dns/providers/cloudflare.provider.ts +131 -0
  109. package/ts/dns/providers/factory.ts +48 -0
  110. package/ts/dns/providers/index.ts +3 -0
  111. package/ts/dns/providers/interfaces.ts +67 -0
  112. package/ts/opsserver/classes.opsserver.ts +8 -0
  113. package/ts/opsserver/handlers/admin.handler.ts +12 -0
  114. package/ts/opsserver/handlers/config.handler.ts +10 -1
  115. package/ts/opsserver/handlers/dns-provider.handler.ts +159 -0
  116. package/ts/opsserver/handlers/dns-record.handler.ts +127 -0
  117. package/ts/opsserver/handlers/domain.handler.ts +161 -0
  118. package/ts/opsserver/handlers/index.ts +5 -1
  119. package/ts/opsserver/handlers/users.handler.ts +30 -0
  120. package/ts_web/00_commitinfo_data.ts +1 -1
  121. package/ts_web/appstate.ts +460 -5
  122. package/ts_web/elements/access/index.ts +1 -0
  123. package/ts_web/elements/access/ops-view-apitokens.ts +1 -1
  124. package/ts_web/elements/access/ops-view-users.ts +140 -0
  125. package/ts_web/elements/domains/dns-provider-form.ts +216 -0
  126. package/ts_web/elements/domains/index.ts +5 -0
  127. package/ts_web/elements/{ops-view-certificates.ts → domains/ops-view-certificates.ts} +4 -4
  128. package/ts_web/elements/domains/ops-view-dns.ts +273 -0
  129. package/ts_web/elements/domains/ops-view-domains.ts +335 -0
  130. package/ts_web/elements/domains/ops-view-providers.ts +284 -0
  131. package/ts_web/elements/email/ops-view-email-security.ts +1 -1
  132. package/ts_web/elements/email/ops-view-emails.ts +1 -1
  133. package/ts_web/elements/index.ts +1 -1
  134. package/ts_web/elements/network/ops-view-network-activity.ts +5 -1
  135. package/ts_web/elements/network/ops-view-networktargets.ts +1 -1
  136. package/ts_web/elements/network/ops-view-remoteingress.ts +1 -1
  137. package/ts_web/elements/network/ops-view-routes.ts +1 -1
  138. package/ts_web/elements/network/ops-view-sourceprofiles.ts +1 -1
  139. package/ts_web/elements/network/ops-view-targetprofiles.ts +1 -1
  140. package/ts_web/elements/network/ops-view-vpn.ts +1 -1
  141. package/ts_web/elements/ops-dashboard.ts +16 -4
  142. package/ts_web/elements/ops-view-logs.ts +1 -1
  143. package/ts_web/elements/overview/ops-view-config.ts +2 -2
  144. package/ts_web/elements/overview/ops-view-overview.ts +1 -1
  145. package/ts_web/elements/security/ops-view-security-authentication.ts +1 -1
  146. package/ts_web/elements/security/ops-view-security-blocked.ts +1 -1
  147. package/ts_web/elements/security/ops-view-security-overview.ts +1 -1
  148. package/ts_web/router.ts +4 -2
@@ -0,0 +1,117 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type * as authInterfaces from '../data/auth.js';
3
+ import type { IDnsProviderPublic, IProviderDomainListing, TDnsProviderType, TDnsProviderCredentials } from '../data/dns-provider.js';
4
+ /**
5
+ * Get all DNS providers (public view, no secrets).
6
+ */
7
+ export interface IReq_GetDnsProviders extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetDnsProviders> {
8
+ method: 'getDnsProviders';
9
+ request: {
10
+ identity?: authInterfaces.IIdentity;
11
+ apiToken?: string;
12
+ };
13
+ response: {
14
+ providers: IDnsProviderPublic[];
15
+ };
16
+ }
17
+ /**
18
+ * Get a single DNS provider by id.
19
+ */
20
+ export interface IReq_GetDnsProvider extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetDnsProvider> {
21
+ method: 'getDnsProvider';
22
+ request: {
23
+ identity?: authInterfaces.IIdentity;
24
+ apiToken?: string;
25
+ id: string;
26
+ };
27
+ response: {
28
+ provider: IDnsProviderPublic | null;
29
+ };
30
+ }
31
+ /**
32
+ * Create a new DNS provider.
33
+ */
34
+ export interface IReq_CreateDnsProvider extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateDnsProvider> {
35
+ method: 'createDnsProvider';
36
+ request: {
37
+ identity?: authInterfaces.IIdentity;
38
+ apiToken?: string;
39
+ name: string;
40
+ type: TDnsProviderType;
41
+ credentials: TDnsProviderCredentials;
42
+ };
43
+ response: {
44
+ success: boolean;
45
+ id?: string;
46
+ message?: string;
47
+ };
48
+ }
49
+ /**
50
+ * Update a DNS provider. Only supplied fields are updated.
51
+ * Pass `credentials` to rotate the secret.
52
+ */
53
+ export interface IReq_UpdateDnsProvider extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateDnsProvider> {
54
+ method: 'updateDnsProvider';
55
+ request: {
56
+ identity?: authInterfaces.IIdentity;
57
+ apiToken?: string;
58
+ id: string;
59
+ name?: string;
60
+ credentials?: TDnsProviderCredentials;
61
+ };
62
+ response: {
63
+ success: boolean;
64
+ message?: string;
65
+ };
66
+ }
67
+ /**
68
+ * Delete a DNS provider. Fails if any IDomain still references it
69
+ * unless `force: true` is set.
70
+ */
71
+ export interface IReq_DeleteDnsProvider extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteDnsProvider> {
72
+ method: 'deleteDnsProvider';
73
+ request: {
74
+ identity?: authInterfaces.IIdentity;
75
+ apiToken?: string;
76
+ id: string;
77
+ force?: boolean;
78
+ };
79
+ response: {
80
+ success: boolean;
81
+ message?: string;
82
+ };
83
+ }
84
+ /**
85
+ * Test the connection to a DNS provider. Used both for newly-saved
86
+ * providers and on demand from the UI.
87
+ */
88
+ export interface IReq_TestDnsProvider extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_TestDnsProvider> {
89
+ method: 'testDnsProvider';
90
+ request: {
91
+ identity?: authInterfaces.IIdentity;
92
+ apiToken?: string;
93
+ id: string;
94
+ };
95
+ response: {
96
+ ok: boolean;
97
+ error?: string;
98
+ testedAt: number;
99
+ };
100
+ }
101
+ /**
102
+ * List the domains visible to a DNS provider's API account.
103
+ * Used when importing — does NOT persist anything.
104
+ */
105
+ export interface IReq_ListProviderDomains extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ListProviderDomains> {
106
+ method: 'listProviderDomains';
107
+ request: {
108
+ identity?: authInterfaces.IIdentity;
109
+ apiToken?: string;
110
+ providerId: string;
111
+ };
112
+ response: {
113
+ success: boolean;
114
+ domains?: IProviderDomainListing[];
115
+ message?: string;
116
+ };
117
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLXByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2ludGVyZmFjZXMvcmVxdWVzdHMvZG5zLXByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQyJ9
@@ -0,0 +1,89 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type * as authInterfaces from '../data/auth.js';
3
+ import type { IDnsRecord, TDnsRecordType } from '../data/dns-record.js';
4
+ /**
5
+ * Get all DNS records for a domain.
6
+ */
7
+ export interface IReq_GetDnsRecords extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetDnsRecords> {
8
+ method: 'getDnsRecords';
9
+ request: {
10
+ identity?: authInterfaces.IIdentity;
11
+ apiToken?: string;
12
+ domainId: string;
13
+ };
14
+ response: {
15
+ records: IDnsRecord[];
16
+ };
17
+ }
18
+ /**
19
+ * Get a single DNS record by id.
20
+ */
21
+ export interface IReq_GetDnsRecord extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetDnsRecord> {
22
+ method: 'getDnsRecord';
23
+ request: {
24
+ identity?: authInterfaces.IIdentity;
25
+ apiToken?: string;
26
+ id: string;
27
+ };
28
+ response: {
29
+ record: IDnsRecord | null;
30
+ };
31
+ }
32
+ /**
33
+ * Create a new DNS record.
34
+ *
35
+ * For manual domains: registers the record with the embedded DnsServer.
36
+ * For provider domains: pushes the record to the provider API.
37
+ */
38
+ export interface IReq_CreateDnsRecord extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateDnsRecord> {
39
+ method: 'createDnsRecord';
40
+ request: {
41
+ identity?: authInterfaces.IIdentity;
42
+ apiToken?: string;
43
+ domainId: string;
44
+ name: string;
45
+ type: TDnsRecordType;
46
+ value: string;
47
+ ttl?: number;
48
+ proxied?: boolean;
49
+ };
50
+ response: {
51
+ success: boolean;
52
+ id?: string;
53
+ message?: string;
54
+ };
55
+ }
56
+ /**
57
+ * Update a DNS record.
58
+ */
59
+ export interface IReq_UpdateDnsRecord extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateDnsRecord> {
60
+ method: 'updateDnsRecord';
61
+ request: {
62
+ identity?: authInterfaces.IIdentity;
63
+ apiToken?: string;
64
+ id: string;
65
+ name?: string;
66
+ value?: string;
67
+ ttl?: number;
68
+ proxied?: boolean;
69
+ };
70
+ response: {
71
+ success: boolean;
72
+ message?: string;
73
+ };
74
+ }
75
+ /**
76
+ * Delete a DNS record.
77
+ */
78
+ export interface IReq_DeleteDnsRecord extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteDnsRecord> {
79
+ method: 'deleteDnsRecord';
80
+ request: {
81
+ identity?: authInterfaces.IIdentity;
82
+ apiToken?: string;
83
+ id: string;
84
+ };
85
+ response: {
86
+ success: boolean;
87
+ message?: string;
88
+ };
89
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLXJlY29yZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2Rucy1yZWNvcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDIn0=
@@ -0,0 +1,118 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type * as authInterfaces from '../data/auth.js';
3
+ import type { IDomain } from '../data/domain.js';
4
+ /**
5
+ * Get all domains under management.
6
+ */
7
+ export interface IReq_GetDomains extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetDomains> {
8
+ method: 'getDomains';
9
+ request: {
10
+ identity?: authInterfaces.IIdentity;
11
+ apiToken?: string;
12
+ };
13
+ response: {
14
+ domains: IDomain[];
15
+ };
16
+ }
17
+ /**
18
+ * Get a single domain by id.
19
+ */
20
+ export interface IReq_GetDomain extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetDomain> {
21
+ method: 'getDomain';
22
+ request: {
23
+ identity?: authInterfaces.IIdentity;
24
+ apiToken?: string;
25
+ id: string;
26
+ };
27
+ response: {
28
+ domain: IDomain | null;
29
+ };
30
+ }
31
+ /**
32
+ * Create a manual (authoritative) domain. dcrouter will serve DNS
33
+ * records for this domain via the embedded smartdns.DnsServer.
34
+ */
35
+ export interface IReq_CreateDomain extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateDomain> {
36
+ method: 'createDomain';
37
+ request: {
38
+ identity?: authInterfaces.IIdentity;
39
+ apiToken?: string;
40
+ name: string;
41
+ description?: string;
42
+ };
43
+ response: {
44
+ success: boolean;
45
+ id?: string;
46
+ message?: string;
47
+ };
48
+ }
49
+ /**
50
+ * Import one or more domains from a DNS provider. For each imported
51
+ * domain, records are pulled from the provider into DnsRecordDoc.
52
+ */
53
+ export interface IReq_ImportDomain extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ImportDomain> {
54
+ method: 'importDomain';
55
+ request: {
56
+ identity?: authInterfaces.IIdentity;
57
+ apiToken?: string;
58
+ providerId: string;
59
+ /** FQDN(s) of the zone(s) to import — must be visible to the provider account. */
60
+ domainNames: string[];
61
+ };
62
+ response: {
63
+ success: boolean;
64
+ importedIds?: string[];
65
+ message?: string;
66
+ };
67
+ }
68
+ /**
69
+ * Update a domain's metadata. Cannot change source / providerId once set.
70
+ */
71
+ export interface IReq_UpdateDomain extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateDomain> {
72
+ method: 'updateDomain';
73
+ request: {
74
+ identity?: authInterfaces.IIdentity;
75
+ apiToken?: string;
76
+ id: string;
77
+ description?: string;
78
+ };
79
+ response: {
80
+ success: boolean;
81
+ message?: string;
82
+ };
83
+ }
84
+ /**
85
+ * Delete a domain and all of its DNS records.
86
+ * For provider-managed domains, this only removes dcrouter's local record —
87
+ * it does NOT delete the zone at the provider.
88
+ */
89
+ export interface IReq_DeleteDomain extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteDomain> {
90
+ method: 'deleteDomain';
91
+ request: {
92
+ identity?: authInterfaces.IIdentity;
93
+ apiToken?: string;
94
+ id: string;
95
+ };
96
+ response: {
97
+ success: boolean;
98
+ message?: string;
99
+ };
100
+ }
101
+ /**
102
+ * Force-resync a provider-managed domain: re-pulls all records from the
103
+ * provider API, replacing the cached DnsRecordDocs.
104
+ * No-op for manual domains.
105
+ */
106
+ export interface IReq_SyncDomain extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_SyncDomain> {
107
+ method: 'syncDomain';
108
+ request: {
109
+ identity?: authInterfaces.IIdentity;
110
+ apiToken?: string;
111
+ id: string;
112
+ };
113
+ response: {
114
+ success: boolean;
115
+ recordCount?: number;
116
+ message?: string;
117
+ };
118
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2ludGVyZmFjZXMvcmVxdWVzdHMvZG9tYWlucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQyJ9
@@ -13,3 +13,7 @@ export * from './vpn.js';
13
13
  export * from './source-profiles.js';
14
14
  export * from './target-profiles.js';
15
15
  export * from './network-targets.js';
16
+ export * from './users.js';
17
+ export * from './dns-providers.js';
18
+ export * from './domains.js';
19
+ export * from './dns-records.js';
@@ -13,4 +13,8 @@ export * from './vpn.js';
13
13
  export * from './source-profiles.js';
14
14
  export * from './target-profiles.js';
15
15
  export * from './network-targets.js';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDIn0=
16
+ export * from './users.js';
17
+ export * from './dns-providers.js';
18
+ export * from './domains.js';
19
+ export * from './dns-records.js';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQyJ9
@@ -0,0 +1,19 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ /**
4
+ * List all OpsServer users (admin-only, read-only).
5
+ * Deliberately omits password/secret fields from the response.
6
+ */
7
+ export interface IReq_ListUsers extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ListUsers> {
8
+ method: 'listUsers';
9
+ request: {
10
+ identity: authInterfaces.IIdentity;
11
+ };
12
+ response: {
13
+ users: Array<{
14
+ id: string;
15
+ username: string;
16
+ role: string;
17
+ }>;
18
+ };
19
+ }
@@ -0,0 +1,3 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as authInterfaces from '../data/auth.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL3VzZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxjQUFjLE1BQU0saUJBQWlCLENBQUMifQ==
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '13.4.2',
6
+ version: '13.7.0',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSwwRUFBMEU7Q0FDeEYsQ0FBQSJ9
@@ -120,6 +120,18 @@ export interface IRouteManagementState {
120
120
  lastUpdated: number;
121
121
  }
122
122
  export declare const routeManagementStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IRouteManagementState>;
123
+ export interface IUser {
124
+ id: string;
125
+ username: string;
126
+ role: string;
127
+ }
128
+ export interface IUsersState {
129
+ users: IUser[];
130
+ isLoading: boolean;
131
+ error: string | null;
132
+ lastUpdated: number;
133
+ }
134
+ export declare const usersStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IUsersState>;
123
135
  export declare const loginAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ILoginState, {
124
136
  username: string;
125
137
  password: string;
@@ -308,6 +320,78 @@ export declare const deleteTargetAction: plugins.deesElement.domtools.plugins.sm
308
320
  id: string;
309
321
  force?: boolean;
310
322
  }>;
323
+ export interface IDomainsState {
324
+ providers: interfaces.data.IDnsProviderPublic[];
325
+ domains: interfaces.data.IDomain[];
326
+ records: interfaces.data.IDnsRecord[];
327
+ /** id of the currently-selected domain in the DNS records subview. */
328
+ selectedDomainId: string | null;
329
+ isLoading: boolean;
330
+ error: string | null;
331
+ lastUpdated: number;
332
+ }
333
+ export declare const domainsStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IDomainsState>;
334
+ export declare const fetchDomainsAndProvidersAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, unknown>;
335
+ export declare const fetchDnsRecordsForDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
336
+ domainId: string;
337
+ }>;
338
+ export declare const createDnsProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
339
+ name: string;
340
+ type: interfaces.data.TDnsProviderType;
341
+ credentials: interfaces.data.TDnsProviderCredentials;
342
+ }>;
343
+ export declare const updateDnsProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
344
+ id: string;
345
+ name?: string;
346
+ credentials?: interfaces.data.TDnsProviderCredentials;
347
+ }>;
348
+ export declare const deleteDnsProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
349
+ id: string;
350
+ force?: boolean;
351
+ }>;
352
+ export declare const testDnsProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
353
+ id: string;
354
+ }>;
355
+ /** One-shot fetch for the import-domain modal. Does NOT modify state. */
356
+ export declare function fetchProviderDomains(providerId: string): Promise<{
357
+ success: boolean;
358
+ domains?: interfaces.data.IProviderDomainListing[];
359
+ message?: string;
360
+ }>;
361
+ export declare const createManualDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
362
+ name: string;
363
+ description?: string;
364
+ }>;
365
+ export declare const importDomainsFromProviderAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
366
+ providerId: string;
367
+ domainNames: string[];
368
+ }>;
369
+ export declare const deleteDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
370
+ id: string;
371
+ }>;
372
+ export declare const syncDomainAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
373
+ id: string;
374
+ }>;
375
+ export declare const createDnsRecordAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
376
+ domainId: string;
377
+ name: string;
378
+ type: interfaces.data.TDnsRecordType;
379
+ value: string;
380
+ ttl?: number;
381
+ proxied?: boolean;
382
+ }>;
383
+ export declare const updateDnsRecordAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
384
+ id: string;
385
+ domainId: string;
386
+ name?: string;
387
+ value?: string;
388
+ ttl?: number;
389
+ proxied?: boolean;
390
+ }>;
391
+ export declare const deleteDnsRecordAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IDomainsState, {
392
+ id: string;
393
+ domainId: string;
394
+ }>;
311
395
  export declare const fetchMergedRoutesAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, unknown>;
312
396
  export declare const createRouteAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, {
313
397
  route: any;
@@ -331,6 +415,7 @@ export declare const setRouteOverrideAction: plugins.deesElement.domtools.plugin
331
415
  }>;
332
416
  export declare const removeRouteOverrideAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, string>;
333
417
  export declare const fetchApiTokensAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRouteManagementState, unknown>;
418
+ export declare const fetchUsersAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IUsersState, unknown>;
334
419
  export declare function createApiToken(name: string, scopes: interfaces.data.TApiTokenScope[], expiresInDays?: number | null): Promise<{
335
420
  success: boolean;
336
421
  tokenId?: string;