@serve.zone/dcrouter 6.4.5 → 6.5.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.
@@ -30571,14 +30571,13 @@ ${JSON.stringify(a.details,null,2)}
30571
30571
  .heading2=${"Manage remote ingress edge registrations"}
30572
30572
  .data=${this.riState.edges}
30573
30573
  .displayFunction=${o=>({name:o.name,status:this.getEdgeStatusHtml(o),publicIp:this.getEdgePublicIp(o.id),ports:this.getPortsHtml(o.listenPorts),tunnels:this.getEdgeTunnelCount(o.id),lastHeartbeat:this.getLastHeartbeat(o.id)})}
30574
- .dataActions=${[{name:"Regenerate Secret",iconName:"lucide:key",type:["row"],action:async o=>{await ta.dispatchAction(swt,o.id)}},{name:"Delete",iconName:"lucide:trash2",type:["row"],action:async o=>{await ta.dispatchAction(rwt,o.id)}}]}
30575
- .createNewAction=${async()=>{let{DeesModal:o}=await Promise.resolve().then(()=>(wo(),Gs)),d=await o.createAndShow({heading:"Create Edge Node",content:w`
30576
- <dees-form>
30577
- <dees-input-text .key=${"name"} .label=${"Name"} .required=${!0}></dees-input-text>
30578
- <dees-input-text .key=${"listenPorts"} .label=${"Listen Ports (comma-separated)"} .required=${!0} .value=${"443,25"}></dees-input-text>
30579
- <dees-input-text .key=${"tags"} .label=${"Tags (comma-separated, optional)"}></dees-input-text>
30580
- </dees-form>
30581
- `,menuOptions:[]});if(d){let c=d,h=(c.name?c.listenPorts:"443").split(",").map(f=>parseInt(f.trim(),10)).filter(f=>!isNaN(f)),l=c.tags?c.tags.split(",").map(f=>f.trim()).filter(Boolean):void 0;await ta.dispatchAction(iwt,{name:c.name,listenPorts:h,tags:l})}}}
30574
+ .dataActions=${[{name:"Create Edge Node",iconName:"lucide:plus",type:["header"],actionFunc:async()=>{let{DeesModal:o}=await Promise.resolve().then(()=>(wo(),Gs)),d=await o.createAndShow({heading:"Create Edge Node",content:w`
30575
+ <dees-form>
30576
+ <dees-input-text .key=${"name"} .label=${"Name"} .required=${!0}></dees-input-text>
30577
+ <dees-input-text .key=${"listenPorts"} .label=${"Listen Ports (comma-separated)"} .required=${!0} .value=${"443,25"}></dees-input-text>
30578
+ <dees-input-text .key=${"tags"} .label=${"Tags (comma-separated, optional)"}></dees-input-text>
30579
+ </dees-form>
30580
+ `,menuOptions:[]});if(d){let c=d,h=(c.name?c.listenPorts:"443").split(",").map(f=>parseInt(f.trim(),10)).filter(f=>!isNaN(f)),l=c.tags?c.tags.split(",").map(f=>f.trim()).filter(Boolean):void 0;await ta.dispatchAction(iwt,{name:c.name,listenPorts:h,tags:l})}}},{name:"Regenerate Secret",iconName:"lucide:key",type:["row"],action:async o=>{await ta.dispatchAction(swt,o.id)}},{name:"Delete",iconName:"lucide:trash2",type:["row"],action:async o=>{await ta.dispatchAction(rwt,o.id)}}]}
30582
30581
  ></dees-table>
30583
30582
  </div>
30584
30583
  `}getEdgeStatus(a){return this.riState.statuses.find(i=>i.edgeId===a)}getEdgeStatusHtml(a){return a.enabled?this.getEdgeStatus(a.id)?.connected?w`<span class="statusBadge connected">Connected</span>`:w`<span class="statusBadge disconnected">Disconnected</span>`:w`<span class="statusBadge disabled">Disabled</span>`}getEdgePublicIp(a){return this.getEdgeStatus(a)?.publicIp||"-"}getPortsHtml(a){return w`<div class="portsDisplay">${a.map(i=>w`<span class="portBadge">${i}</span>`)}</div>`}getEdgeTunnelCount(a){return this.getEdgeStatus(a)?.activeTunnels||0}getLastHeartbeat(a){let i=this.getEdgeStatus(a);if(!i?.lastHeartbeat)return"-";let r=Date.now()-i.lastHeartbeat;return r<6e4?`${Math.floor(r/1e3)}s ago`:r<36e5?`${Math.floor(r/6e4)}m ago`:`${Math.floor(r/36e5)}h ago`}};Kl=U1(Uwt),fU=new WeakMap,pt(Kl,4,"riState",jwt,en,fU),en=pt(Kl,0,"OpsViewRemoteIngress",Wwt,en),o1(en,"styles",[u.defaultStyles,aa,X`
@@ -30798,4 +30797,4 @@ ibantools/jsnext/ibantools.js:
30798
30797
  * @preferred
30799
30798
  *)
30800
30799
  */
30801
- //# sourceMappingURL=bundle-1771264080434.js.map
30800
+ //# sourceMappingURL=bundle-1771281767291.js.map
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '6.4.5',
6
+ version: '6.5.0',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxzQkFBc0I7SUFDNUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDBFQUEwRTtDQUN4RixDQUFBIn0=
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '6.4.5',
6
+ version: '6.5.0',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSwwRUFBMEU7Q0FDeEYsQ0FBQSJ9
@@ -224,6 +224,40 @@ let OpsViewRemoteIngress = (() => {
224
224
  lastHeartbeat: this.getLastHeartbeat(edge.id),
225
225
  })}
226
226
  .dataActions=${[
227
+ {
228
+ name: 'Create Edge Node',
229
+ iconName: 'lucide:plus',
230
+ type: ['header'],
231
+ actionFunc: async () => {
232
+ const { DeesModal } = await import('@design.estate/dees-catalog');
233
+ const result = await DeesModal.createAndShow({
234
+ heading: 'Create Edge Node',
235
+ content: html `
236
+ <dees-form>
237
+ <dees-input-text .key=${'name'} .label=${'Name'} .required=${true}></dees-input-text>
238
+ <dees-input-text .key=${'listenPorts'} .label=${'Listen Ports (comma-separated)'} .required=${true} .value=${'443,25'}></dees-input-text>
239
+ <dees-input-text .key=${'tags'} .label=${'Tags (comma-separated, optional)'}></dees-input-text>
240
+ </dees-form>
241
+ `,
242
+ menuOptions: [],
243
+ });
244
+ if (result) {
245
+ const formData = result;
246
+ const ports = (formData.name ? formData.listenPorts : '443')
247
+ .split(',')
248
+ .map((p) => parseInt(p.trim(), 10))
249
+ .filter((p) => !isNaN(p));
250
+ const tags = formData.tags
251
+ ? formData.tags.split(',').map((t) => t.trim()).filter(Boolean)
252
+ : undefined;
253
+ await appstate.remoteIngressStatePart.dispatchAction(appstate.createRemoteIngressAction, {
254
+ name: formData.name,
255
+ listenPorts: ports,
256
+ tags,
257
+ });
258
+ }
259
+ },
260
+ },
227
261
  {
228
262
  name: 'Regenerate Secret',
229
263
  iconName: 'lucide:key',
@@ -241,35 +275,6 @@ let OpsViewRemoteIngress = (() => {
241
275
  },
242
276
  },
243
277
  ]}
244
- .createNewAction=${async () => {
245
- const { DeesModal } = await import('@design.estate/dees-catalog');
246
- const result = await DeesModal.createAndShow({
247
- heading: 'Create Edge Node',
248
- content: html `
249
- <dees-form>
250
- <dees-input-text .key=${'name'} .label=${'Name'} .required=${true}></dees-input-text>
251
- <dees-input-text .key=${'listenPorts'} .label=${'Listen Ports (comma-separated)'} .required=${true} .value=${'443,25'}></dees-input-text>
252
- <dees-input-text .key=${'tags'} .label=${'Tags (comma-separated, optional)'}></dees-input-text>
253
- </dees-form>
254
- `,
255
- menuOptions: [],
256
- });
257
- if (result) {
258
- const formData = result;
259
- const ports = (formData.name ? formData.listenPorts : '443')
260
- .split(',')
261
- .map((p) => parseInt(p.trim(), 10))
262
- .filter((p) => !isNaN(p));
263
- const tags = formData.tags
264
- ? formData.tags.split(',').map((t) => t.trim()).filter(Boolean)
265
- : undefined;
266
- await appstate.remoteIngressStatePart.dispatchAction(appstate.createRemoteIngressAction, {
267
- name: formData.name,
268
- listenPorts: ports,
269
- tags,
270
- });
271
- }
272
- }}
273
278
  ></dees-table>
274
279
  </div>
275
280
  `;
@@ -316,4 +321,4 @@ let OpsViewRemoteIngress = (() => {
316
321
  return OpsViewRemoteIngress = _classThis;
317
322
  })();
318
323
  export { OpsViewRemoteIngress };
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctcmVtb3RlaW5ncmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9vcHMtdmlldy1yZW1vdGVpbmdyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssUUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxVQUFVLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztJQVNqRCxvQkFBb0I7NEJBRGhDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7O29DQUFuQixTQUFRLFdBQVc7Ozs7bUNBQ2xELEtBQUssRUFBRTtZQUNSLDBLQUFTLE9BQU8sNkJBQVAsT0FBTyx5RkFBNEU7WUFGOUYsNktBOFFDOzs7O1FBNVFDLDJFQUFpRCxRQUFRLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLEVBQUM7UUFBNUYsSUFBUyxPQUFPLDZDQUE0RTtRQUE1RixJQUFTLE9BQU8sbURBQTRFO1FBRTVGO1lBQ0UsS0FBSyxFQUFFLENBQUM7O1lBQ1IsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDdkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoQztRQUVELEtB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
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctcmVtb3RlaW5ncmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9vcHMtdmlldy1yZW1vdGVpbmdyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssUUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxVQUFVLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztJQVNqRCxvQkFBb0I7NEJBRGhDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7O29DQUFuQixTQUFRLFdBQVc7Ozs7bUNBQ2xELEtBQUssRUFBRTtZQUNSLDBLQUFTLE9BQU8sNkJBQVAsT0FBTyx5RkFBNEU7WUFGOUYsNktBbVJDOzs7O1FBalJDLDJFQUFpRCxRQUFRLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLEVBQUM7UUFBNUYsSUFBUyxPQUFPLDZDQUE0RTtRQUE1RixJQUFTLE9BQU8sbURBQTRFO1FBRTVGO1lBQ0UsS0FBSyxFQUFFLENBQUM7O1lBQ1IsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDdkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoQztRQUVELEtB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@serve.zone/dcrouter",
3
3
  "private": false,
4
- "version": "6.4.5",
4
+ "version": "6.5.0",
5
5
  "description": "A multifaceted routing service handling mail and SMS delivery functions.",
6
6
  "type": "module",
7
7
  "exports": {
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '6.4.5',
6
+ version: '6.5.0',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  }
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '6.4.5',
6
+ version: '6.5.0',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  }
@@ -192,6 +192,43 @@ export class OpsViewRemoteIngress extends DeesElement {
192
192
  lastHeartbeat: this.getLastHeartbeat(edge.id),
193
193
  })}
194
194
  .dataActions=${[
195
+ {
196
+ name: 'Create Edge Node',
197
+ iconName: 'lucide:plus',
198
+ type: ['header'],
199
+ actionFunc: async () => {
200
+ const { DeesModal } = await import('@design.estate/dees-catalog');
201
+ const result = await DeesModal.createAndShow({
202
+ heading: 'Create Edge Node',
203
+ content: html`
204
+ <dees-form>
205
+ <dees-input-text .key=${'name'} .label=${'Name'} .required=${true}></dees-input-text>
206
+ <dees-input-text .key=${'listenPorts'} .label=${'Listen Ports (comma-separated)'} .required=${true} .value=${'443,25'}></dees-input-text>
207
+ <dees-input-text .key=${'tags'} .label=${'Tags (comma-separated, optional)'}></dees-input-text>
208
+ </dees-form>
209
+ `,
210
+ menuOptions: [],
211
+ });
212
+ if (result) {
213
+ const formData = result as any;
214
+ const ports = (formData.name ? formData.listenPorts : '443')
215
+ .split(',')
216
+ .map((p: string) => parseInt(p.trim(), 10))
217
+ .filter((p: number) => !isNaN(p));
218
+ const tags = formData.tags
219
+ ? formData.tags.split(',').map((t: string) => t.trim()).filter(Boolean)
220
+ : undefined;
221
+ await appstate.remoteIngressStatePart.dispatchAction(
222
+ appstate.createRemoteIngressAction,
223
+ {
224
+ name: formData.name,
225
+ listenPorts: ports,
226
+ tags,
227
+ },
228
+ );
229
+ }
230
+ },
231
+ },
195
232
  {
196
233
  name: 'Regenerate Secret',
197
234
  iconName: 'lucide:key',
@@ -215,38 +252,6 @@ export class OpsViewRemoteIngress extends DeesElement {
215
252
  },
216
253
  },
217
254
  ]}
218
- .createNewAction=${async () => {
219
- const { DeesModal } = await import('@design.estate/dees-catalog');
220
- const result = await DeesModal.createAndShow({
221
- heading: 'Create Edge Node',
222
- content: html`
223
- <dees-form>
224
- <dees-input-text .key=${'name'} .label=${'Name'} .required=${true}></dees-input-text>
225
- <dees-input-text .key=${'listenPorts'} .label=${'Listen Ports (comma-separated)'} .required=${true} .value=${'443,25'}></dees-input-text>
226
- <dees-input-text .key=${'tags'} .label=${'Tags (comma-separated, optional)'}></dees-input-text>
227
- </dees-form>
228
- `,
229
- menuOptions: [],
230
- });
231
- if (result) {
232
- const formData = result as any;
233
- const ports = (formData.name ? formData.listenPorts : '443')
234
- .split(',')
235
- .map((p: string) => parseInt(p.trim(), 10))
236
- .filter((p: number) => !isNaN(p));
237
- const tags = formData.tags
238
- ? formData.tags.split(',').map((t: string) => t.trim()).filter(Boolean)
239
- : undefined;
240
- await appstate.remoteIngressStatePart.dispatchAction(
241
- appstate.createRemoteIngressAction,
242
- {
243
- name: formData.name,
244
- listenPorts: ports,
245
- tags,
246
- },
247
- );
248
- }
249
- }}
250
255
  ></dees-table>
251
256
  </div>
252
257
  `;