feat(dns): Implement DNS management functionality

- Added DnsManager and DnsEntry classes to handle DNS entries.
- Introduced new interfaces for DNS entry requests and data structures.
- Updated Cloudly class to include DnsManager instance.
- Enhanced app state to manage DNS entries and actions for creating, updating, and deleting DNS records.
- Created UI components for DNS management, including forms for adding and editing DNS entries.
- Updated overview and services views to reflect DNS entries.
- Added validation and formatting methods for DNS entries.
This commit is contained in:
2025-09-09 15:08:28 +00:00
parent 38e8b4086d
commit 766191899c
19 changed files with 2174 additions and 99 deletions

98
pnpm-lock.yaml generated
View File

@@ -33,8 +33,8 @@ importers:
specifier: ^3.0.9
version: 3.0.9
'@design.estate/dees-catalog':
specifier: ^1.11.2
version: 1.11.2(@tiptap/pm@2.26.1)
specifier: ^1.11.3
version: 1.11.3(@tiptap/pm@2.26.1)
'@design.estate/dees-domtools':
specifier: ^2.3.3
version: 2.3.3
@@ -476,8 +476,8 @@ packages:
'@dabh/diagnostics@2.0.3':
resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
'@design.estate/dees-catalog@1.11.2':
resolution: {integrity: sha512-gMK+wDKXDBPzfWmaJySotjjp5A9rwk2PQANQF8V6Q52xUfKKUv7gHj4eju+pN6qkUA5OUzdCDplUeUCrA8i37w==}
'@design.estate/dees-catalog@1.11.3':
resolution: {integrity: sha512-gXGi6PlaHY4+lXHo17p+R/L6/QaqtN/3JFzTUXPl4J0fVKqVrEp22+lf7uvgAhs4WpV1Vd/c9yoyQ6JmrNSj4g==}
'@design.estate/dees-comms@1.0.27':
resolution: {integrity: sha512-GvzTUwkV442LD60T08iqSoqvhA02Mou5lFvvqBPc4yBUiU7cZISqBx+76xvMgMIEI9Dx9JfTl4/2nW8MoVAanw==}
@@ -1200,68 +1200,68 @@ packages:
'@mongodb-js/saslprep@1.3.0':
resolution: {integrity: sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ==}
'@napi-rs/canvas-android-arm64@0.1.78':
resolution: {integrity: sha512-N1ikxztjrRmh8xxlG5kYm1RuNr8ZW1EINEDQsLhhuy7t0pWI/e7SH91uFVLZKCMDyjel1tyWV93b5fdCAi7ggw==}
'@napi-rs/canvas-android-arm64@0.1.79':
resolution: {integrity: sha512-ih6ZIztNDEXl7axvC4swOwLFrM9lOyJa9VAMq7xIBtEZhR/8IVDa0ZTup2fZEiTCmnjmXolzv7uDviHkOTEMKQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
'@napi-rs/canvas-darwin-arm64@0.1.78':
resolution: {integrity: sha512-FA3aCU3G5yGc74BSmnLJTObnZRV+HW+JBTrsU+0WVVaNyVKlb5nMvYAQuieQlRVemsAA2ek2c6nYtHh6u6bwFw==}
'@napi-rs/canvas-darwin-arm64@0.1.79':
resolution: {integrity: sha512-REMz1Fac2VlOYJDg+JjmQWSJc459cCgVom6GvKwWkDqzSjvG9BSo72MDmQY3uhb7r49Xuz5gTFcLYTfNcm4MoA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@napi-rs/canvas-darwin-x64@0.1.78':
resolution: {integrity: sha512-xVij69o9t/frixCDEoyWoVDKgE3ksLGdmE2nvBWVGmoLu94MWUlv2y4Qzf5oozBmydG5Dcm4pRHFBM7YWa1i6g==}
'@napi-rs/canvas-darwin-x64@0.1.79':
resolution: {integrity: sha512-uQxLg6Bll7zv/ljp/YIeiUFWfV9C/ESv+2ioUh60hIAypuhtg6hhtWE/KnoW7G48wQls5VUStvEnJbnJ7bPKlA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@napi-rs/canvas-linux-arm-gnueabihf@0.1.78':
resolution: {integrity: sha512-aSEXrLcIpBtXpOSnLhTg4jPsjJEnK7Je9KqUdAWjc7T8O4iYlxWxrXFIF8rV8J79h5jNdScgZpAUWYnEcutR3g==}
'@napi-rs/canvas-linux-arm-gnueabihf@0.1.79':
resolution: {integrity: sha512-X37B//TVIipL/3RyvyfNlbQK2uyIaK3PJ2bH7ZeU+jpkaYprBsV15GCN/LHTYAi6R0F/c53zK3aSFNKkGHM/Og==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
'@napi-rs/canvas-linux-arm64-gnu@0.1.78':
resolution: {integrity: sha512-dlEPRX1hLGKaY3UtGa1dtkA1uGgFITn2mDnfI6YsLlYyLJQNqHx87D1YTACI4zFCUuLr/EzQDzuX+vnp9YveVg==}
'@napi-rs/canvas-linux-arm64-gnu@0.1.79':
resolution: {integrity: sha512-+T1fuau1heabE6zGXiqZBGPH5fTIQF+xEu/u4fuugxEiChRYlhnPjkw26MBi8ePg/jmzxLfJEij6LMJQ4AQa2A==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@napi-rs/canvas-linux-arm64-musl@0.1.78':
resolution: {integrity: sha512-TsCfjOPZtm5Q/NO1EZHR5pwDPSPjPEttvnv44GL32Zn1uvudssjTLbvaG1jHq81Qxm16GTXEiYLmx4jOLZQYlg==}
'@napi-rs/canvas-linux-arm64-musl@0.1.79':
resolution: {integrity: sha512-KsrsR3+6uXv70W/1/kY0yRK4/bbdJgA1Vuxw4KyfSc6mjl1DMoYXDAjpBT/5w7AXy6cGG44jm3upvvt/y/dPfg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@napi-rs/canvas-linux-riscv64-gnu@0.1.78':
resolution: {integrity: sha512-+cpTTb0GDshEow/5Fy8TpNyzaPsYb3clQIjgWRmzRcuteLU+CHEU/vpYvAcSo7JxHYPJd8fjSr+qqh+nI5AtmA==}
'@napi-rs/canvas-linux-riscv64-gnu@0.1.79':
resolution: {integrity: sha512-EXaENnSJD6au6z4aKN2PpU9eVNWUsRI2cApm8gCa0WSRMaiYXZsFkXQmhB+Vz2pXahOS8BN2Zd8S1IeML/LCtg==}
engines: {node: '>= 10'}
cpu: [riscv64]
os: [linux]
'@napi-rs/canvas-linux-x64-gnu@0.1.78':
resolution: {integrity: sha512-wxRcvKfvYBgtrO0Uy8OmwvjlnTcHpY45LLwkwVNIWHPqHAsyoTyG/JBSfJ0p5tWRzMOPDCDqdhpIO4LOgXjeyg==}
'@napi-rs/canvas-linux-x64-gnu@0.1.79':
resolution: {integrity: sha512-3xZhHlE9e3cd9D7Comy6/TTSs/8PUGXEXymIwYQrA1QxHojAlAOFlVai4rffzXd0bHylZu+/wD76LodvYqF1Yw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@napi-rs/canvas-linux-x64-musl@0.1.78':
resolution: {integrity: sha512-vQFOGwC9QDP0kXlhb2LU1QRw/humXgcbVp8mXlyBqzc/a0eijlLF9wzyarHC1EywpymtS63TAj8PHZnhTYN6hg==}
'@napi-rs/canvas-linux-x64-musl@0.1.79':
resolution: {integrity: sha512-4yv550uCjIEoTFgrpxYZK67nFlDMCQa3LAheM2QrO+B8w1p5w04usIQSCHqHe6aPWlbLQCIqfVcew6/7Q4KuHg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@napi-rs/canvas-win32-x64-msvc@0.1.78':
resolution: {integrity: sha512-/eKlTZBtGUgpRKalzOzRr6h7KVSuziESWXgBcBnXggZmimwIJWPJlEcbrx5Tcwj8rPuZiANXQOG9pPgy9Q4LTQ==}
'@napi-rs/canvas-win32-x64-msvc@0.1.79':
resolution: {integrity: sha512-sD5qP2njBRnhNlTNFJDdpeCN6aR3qVamLySTwhX3ec8sdfeT/chf/x2dw2UXoIGMoVaVk/y2ifwxBj/h2a2jug==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@napi-rs/canvas@0.1.78':
resolution: {integrity: sha512-YaBHJvT+T1DoP16puvWM6w46Lq3VhwKIJ8th5m1iEJyGh7mibk5dT7flBvMQ1EH1LYmMzXJ+OUhu+8wQ9I6u7g==}
'@napi-rs/canvas@0.1.79':
resolution: {integrity: sha512-0SkvRRjyxY35eniEsQsjPYUMWunKlAWvionJOzJJADZF5ZDf/sL+ncJbMTV5LUiHg1iHOvVjWcuDOx/GNXr/lA==}
engines: {node: '>= 10'}
'@napi-rs/wasm-runtime@1.0.3':
@@ -6684,7 +6684,7 @@ snapshots:
enabled: 2.0.0
kuler: 2.0.0
'@design.estate/dees-catalog@1.11.2(@tiptap/pm@2.26.1)':
'@design.estate/dees-catalog@1.11.3(@tiptap/pm@2.26.1)':
dependencies:
'@design.estate/dees-domtools': 2.3.3
'@design.estate/dees-element': 2.1.2
@@ -7578,48 +7578,48 @@ snapshots:
dependencies:
sparse-bitfield: 3.0.3
'@napi-rs/canvas-android-arm64@0.1.78':
'@napi-rs/canvas-android-arm64@0.1.79':
optional: true
'@napi-rs/canvas-darwin-arm64@0.1.78':
'@napi-rs/canvas-darwin-arm64@0.1.79':
optional: true
'@napi-rs/canvas-darwin-x64@0.1.78':
'@napi-rs/canvas-darwin-x64@0.1.79':
optional: true
'@napi-rs/canvas-linux-arm-gnueabihf@0.1.78':
'@napi-rs/canvas-linux-arm-gnueabihf@0.1.79':
optional: true
'@napi-rs/canvas-linux-arm64-gnu@0.1.78':
'@napi-rs/canvas-linux-arm64-gnu@0.1.79':
optional: true
'@napi-rs/canvas-linux-arm64-musl@0.1.78':
'@napi-rs/canvas-linux-arm64-musl@0.1.79':
optional: true
'@napi-rs/canvas-linux-riscv64-gnu@0.1.78':
'@napi-rs/canvas-linux-riscv64-gnu@0.1.79':
optional: true
'@napi-rs/canvas-linux-x64-gnu@0.1.78':
'@napi-rs/canvas-linux-x64-gnu@0.1.79':
optional: true
'@napi-rs/canvas-linux-x64-musl@0.1.78':
'@napi-rs/canvas-linux-x64-musl@0.1.79':
optional: true
'@napi-rs/canvas-win32-x64-msvc@0.1.78':
'@napi-rs/canvas-win32-x64-msvc@0.1.79':
optional: true
'@napi-rs/canvas@0.1.78':
'@napi-rs/canvas@0.1.79':
optionalDependencies:
'@napi-rs/canvas-android-arm64': 0.1.78
'@napi-rs/canvas-darwin-arm64': 0.1.78
'@napi-rs/canvas-darwin-x64': 0.1.78
'@napi-rs/canvas-linux-arm-gnueabihf': 0.1.78
'@napi-rs/canvas-linux-arm64-gnu': 0.1.78
'@napi-rs/canvas-linux-arm64-musl': 0.1.78
'@napi-rs/canvas-linux-riscv64-gnu': 0.1.78
'@napi-rs/canvas-linux-x64-gnu': 0.1.78
'@napi-rs/canvas-linux-x64-musl': 0.1.78
'@napi-rs/canvas-win32-x64-msvc': 0.1.78
'@napi-rs/canvas-android-arm64': 0.1.79
'@napi-rs/canvas-darwin-arm64': 0.1.79
'@napi-rs/canvas-darwin-x64': 0.1.79
'@napi-rs/canvas-linux-arm-gnueabihf': 0.1.79
'@napi-rs/canvas-linux-arm64-gnu': 0.1.79
'@napi-rs/canvas-linux-arm64-musl': 0.1.79
'@napi-rs/canvas-linux-riscv64-gnu': 0.1.79
'@napi-rs/canvas-linux-x64-gnu': 0.1.79
'@napi-rs/canvas-linux-x64-musl': 0.1.79
'@napi-rs/canvas-win32-x64-msvc': 0.1.79
optional: true
'@napi-rs/wasm-runtime@1.0.3':
@@ -12345,7 +12345,7 @@ snapshots:
pdfjs-dist@4.10.38:
optionalDependencies:
'@napi-rs/canvas': 0.1.78
'@napi-rs/canvas': 0.1.79
peek-readable@4.1.0: {}