feat(cloudron): add tirreno package artifacts

- Add CloudronStack/output/CloudronPackages-Artifacts/tirreno/ directory and its contents
- Includes package manifest, Dockerfile, source code, documentation, and build artifacts
- Add tirreno-1761840148.tar.gz as a build artifact
- Add tirreno-cloudron-package-1761841304.tar.gz as the Cloudron package
- Include all necessary files for the tirreno Cloudron package

This adds the complete tirreno Cloudron package artifacts to the repository.
This commit is contained in:
2025-10-30 11:43:06 -05:00
parent 0ce353ea9d
commit 91d52d2de5
1692 changed files with 202851 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
import {BasePanel} from './BasePanel.js?v=2';
import {
renderEmail,
renderReputation,
renderBoolean,
renderDefaultIfEmptyElement,
renderDate,
renderClickableDomain,
renderHttpCode,
} from '../DataRenderers.js?v=2';
export class EmailPanel extends BasePanel {
constructor() {
let eventParams = {
enrichment: true,
type: 'email',
url: '/admin/emailDetails',
cardId: 'email-card',
panelClosed: 'emailPanelClosed',
closePanel: 'closeEmailPanel',
rowClicked: 'emailTableRowClicked',
};
super(eventParams);
}
proceedData(data) {
data.email = renderEmail(data, 'long');
data.reputation = renderReputation(data);
// to 'No breach'
data.data_breach = renderBoolean(data.data_breach === null ? null : !data.data_breach);
// to 'No Profiles'
// data.profiles = renderBoolean(data.profiles === null ? null : data.profiles === 0);
data.data_breaches = renderDefaultIfEmptyElement(data.data_breaches);
data.earliest_breach = renderDate(data.earliest_breach);
data.fraud_detected = renderBoolean(data.fraud_detected);
data.blockemails = renderBoolean(data.blockemails);
// TODO: return alert_list back in next release
//data.alert_list = renderBoolean(data.alert_list);
data.domain_contact_email = renderBoolean(data.domain_contact_email);
data.free_email_provider = renderBoolean(data.free_email_provider);
const domain_record = {
domain: data.domain,
id: data.domain_id,
};
data.domain = renderClickableDomain(domain_record, 'long');
data.blockdomains = renderBoolean(data.blockdomains);
data.disabled = renderBoolean(data.disabled);
data.mx_record = renderBoolean(data.mx_record === null ? null : !data.mx_record);
data.disposable_domains = renderBoolean(data.disposable_domains);
data.disabled = renderBoolean(data.disabled);
data.tranco_rank = renderDefaultIfEmptyElement(data.tranco_rank);
data.creation_date = renderDate(data.creation_date);
data.expiration_date = renderDate(data.expiration_date);
data.closest_snapshot = renderDate(data.closest_snapshot);
data.return_code = renderHttpCode({http_code: data.return_code});
// also data.checked is used
return data;
}
}