From 8ddad6e6523b5dc41e2a317e5b75bf60aab063bb Mon Sep 17 00:00:00 2001
From: Philipp Kunz <code@philkunz.com>
Date: Sat, 15 Mar 2025 16:21:37 +0000
Subject: [PATCH] fix(platformservice): Refactor module structure to update
 import paths and file organization

---
 changelog.md                                     |  8 ++++++++
 ts/00_commitinfo_data.ts                         |  2 +-
 ts/classes.platformservicedb.ts                  |  2 +-
 ...asses.apimanager.ts => classes.apimanager.ts} |  2 +-
 ...connector.mta.ts => classes.connector.mta.ts} |  2 +-
 ...s.emailservice.ts => classes.emailservice.ts} |  8 ++++----
 ...ses.rulemanager.ts => classes.rulemanager.ts} |  2 +-
 ...latemanager.ts => classes.templatemanager.ts} |  2 +-
 ts/index.ts                                      |  2 +-
 ...classes.letterservice.ts => letterservice.ts} |  2 +-
 ...asses.apimanager.ts => classes.apimanager.ts} | 10 +++++-----
 ...ses.dkimcreator.ts => classes.dkimcreator.ts} |  4 ++--
 ...s.dkimverifier.ts => classes.dkimverifier.ts} |  2 +-
 ...asses.dnsmanager.ts => classes.dnsmanager.ts} |  0
 .../{mta.classes.email.ts => classes.email.ts}   |  0
 ...s.emailsendjob.ts => classes.emailsendjob.ts} |  6 +++---
 ...s.emailsignjob.ts => classes.emailsignjob.ts} |  0
 ts/mta/{mta.classes.mta.ts => classes.mta.ts}    | 16 ++++++++--------
 ...asses.smtpserver.ts => classes.smtpserver.ts} |  4 ++--
 ts/mta/index.ts                                  | 14 +++++++-------
 ...ses.platformservice.ts => platformservice.ts} |  6 +++---
 ts/sms/smsservice.ts                             |  2 +-
 22 files changed, 52 insertions(+), 44 deletions(-)
 rename ts/email/{email.classes.apimanager.ts => classes.apimanager.ts} (97%)
 rename ts/email/{email.classes.connector.mta.ts => classes.connector.mta.ts} (98%)
 rename ts/email/{email.classes.emailservice.ts => classes.emailservice.ts} (92%)
 rename ts/email/{email.classes.rulemanager.ts => classes.rulemanager.ts} (99%)
 rename ts/email/{email.classes.templatemanager.ts => classes.templatemanager.ts} (85%)
 rename ts/letter/{classes.letterservice.ts => letterservice.ts} (94%)
 rename ts/mta/{mta.classes.apimanager.ts => classes.apimanager.ts} (98%)
 rename ts/mta/{mta.classes.dkimcreator.ts => classes.dkimcreator.ts} (97%)
 rename ts/mta/{mta.classes.dkimverifier.ts => classes.dkimverifier.ts} (92%)
 rename ts/mta/{mta.classes.dnsmanager.ts => classes.dnsmanager.ts} (100%)
 rename ts/mta/{mta.classes.email.ts => classes.email.ts} (100%)
 rename ts/mta/{mta.classes.emailsendjob.ts => classes.emailsendjob.ts} (99%)
 rename ts/mta/{mta.classes.emailsignjob.ts => classes.emailsignjob.ts} (100%)
 rename ts/mta/{mta.classes.mta.ts => classes.mta.ts} (98%)
 rename ts/mta/{mta.classes.smtpserver.ts => classes.smtpserver.ts} (99%)
 rename ts/{classes.platformservice.ts => platformservice.ts} (88%)

diff --git a/changelog.md b/changelog.md
index 27a8e88..d854c88 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,13 @@
 # Changelog
 
+## 2025-03-15 - 2.2.1 - fix(platformservice)
+Refactor module structure to update import paths and file organization
+
+- Removed obsolete file 'ts/classes.platformservice.ts' and updated references to use 'ts/platformservice.ts'.
+- Updated import paths in PlatformServiceDb, EmailService, and other modules to use new file structure.
+- Renamed and moved files in the email, mta, letter, and sms directories to align with new module layout.
+- Fixed references to external modules (e.g. '@serve.zone/interfaces', '@push.rocks/*', etc.) to reflect the updated paths.
+
 ## 2025-03-15 - 2.2.0 - feat(plugins)
 Add smartproxy support by including the @push.rocks/smartproxy dependency and exporting it in the plugins module.
 
diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts
index e7c9c28..c86e35e 100644
--- a/ts/00_commitinfo_data.ts
+++ b/ts/00_commitinfo_data.ts
@@ -3,6 +3,6 @@
  */
 export const commitinfo = {
   name: '@serve.zone/platformservice',
-  version: '2.2.0',
+  version: '2.2.1',
   description: 'A multifaceted platform service handling mail, SMS, letter delivery, and AI services.'
 }
diff --git a/ts/classes.platformservicedb.ts b/ts/classes.platformservicedb.ts
index 4669b8a..bb36078 100644
--- a/ts/classes.platformservicedb.ts
+++ b/ts/classes.platformservicedb.ts
@@ -1,5 +1,5 @@
 import * as plugins from './plugins.js';
-import { SzPlatformService } from './classes.platformservice.js';
+import { SzPlatformService } from './platformservice.js';
 
 
 
diff --git a/ts/email/email.classes.apimanager.ts b/ts/email/classes.apimanager.ts
similarity index 97%
rename from ts/email/email.classes.apimanager.ts
rename to ts/email/classes.apimanager.ts
index 9fe75ab..a685d51 100644
--- a/ts/email/email.classes.apimanager.ts
+++ b/ts/email/classes.apimanager.ts
@@ -1,5 +1,5 @@
 import * as plugins from '../plugins.js';
-import { EmailService } from './email.classes.emailservice.js';
+import { EmailService } from './classes.emailservice.js';
 import { logger } from '../logger.js';
 
 export class ApiManager {
diff --git a/ts/email/email.classes.connector.mta.ts b/ts/email/classes.connector.mta.ts
similarity index 98%
rename from ts/email/email.classes.connector.mta.ts
rename to ts/email/classes.connector.mta.ts
index 02b9b53..f86c761 100644
--- a/ts/email/email.classes.connector.mta.ts
+++ b/ts/email/classes.connector.mta.ts
@@ -1,5 +1,5 @@
 import * as plugins from '../plugins.js';
-import { EmailService } from './email.classes.emailservice.js';
+import { EmailService } from './classes.emailservice.js';
 import { logger } from '../logger.js';
 
 // Import MTA classes
diff --git a/ts/email/email.classes.emailservice.ts b/ts/email/classes.emailservice.ts
similarity index 92%
rename from ts/email/email.classes.emailservice.ts
rename to ts/email/classes.emailservice.ts
index 5005641..088acce 100644
--- a/ts/email/email.classes.emailservice.ts
+++ b/ts/email/classes.emailservice.ts
@@ -1,10 +1,10 @@
 import * as plugins from '../plugins.js';
 import * as paths from '../paths.js';
-import { MtaConnector } from './email.classes.connector.mta.js';
-import { RuleManager } from './email.classes.rulemanager.js';
-import { ApiManager } from './email.classes.apimanager.js';
+import { MtaConnector } from './classes.connector.mta.js';
+import { RuleManager } from './classes.rulemanager.js';
+import { ApiManager } from './classes.apimanager.js';
 import { logger } from '../logger.js';
-import type { SzPlatformService } from '../classes.platformservice.js';
+import type { SzPlatformService } from '../platformservice.js';
 
 // Import MTA service
 import { MtaService, type IMtaConfig } from '../mta/index.js';
diff --git a/ts/email/email.classes.rulemanager.ts b/ts/email/classes.rulemanager.ts
similarity index 99%
rename from ts/email/email.classes.rulemanager.ts
rename to ts/email/classes.rulemanager.ts
index 2bbcfb5..3c786ac 100644
--- a/ts/email/email.classes.rulemanager.ts
+++ b/ts/email/classes.rulemanager.ts
@@ -1,5 +1,5 @@
 import * as plugins from '../plugins.js';
-import { EmailService } from './email.classes.emailservice.js';
+import { EmailService } from './classes.emailservice.js';
 import { logger } from '../logger.js';
 
 export class RuleManager {
diff --git a/ts/email/email.classes.templatemanager.ts b/ts/email/classes.templatemanager.ts
similarity index 85%
rename from ts/email/email.classes.templatemanager.ts
rename to ts/email/classes.templatemanager.ts
index 5daaae8..710e44a 100644
--- a/ts/email/email.classes.templatemanager.ts
+++ b/ts/email/classes.templatemanager.ts
@@ -1,4 +1,4 @@
-import * as plugins from './email.plugins.js';
+import * as plugins from '../plugins.js';
 
 export class TemplateManager {
   public smartmailDefault = new plugins.smartmail.Smartmail({
diff --git a/ts/index.ts b/ts/index.ts
index 84534ef..c1fcedc 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,4 +1,4 @@
 export * from './00_commitinfo_data.js';
-import { SzPlatformService } from './classes.platformservice.js';
+import { SzPlatformService } from './platformservice.js';
 
 export const runCli = async () => {}
\ No newline at end of file
diff --git a/ts/letter/classes.letterservice.ts b/ts/letter/letterservice.ts
similarity index 94%
rename from ts/letter/classes.letterservice.ts
rename to ts/letter/letterservice.ts
index 37b0214..eab0462 100644
--- a/ts/letter/classes.letterservice.ts
+++ b/ts/letter/letterservice.ts
@@ -1,4 +1,4 @@
-import type { SzPlatformService } from '../classes.platformservice.js';
+import type { SzPlatformService } from '../platformservice.js';
 import * as plugins from '../plugins.js';
 
 export interface ILetterConstructorOptions {
diff --git a/ts/mta/mta.classes.apimanager.ts b/ts/mta/classes.apimanager.ts
similarity index 98%
rename from ts/mta/mta.classes.apimanager.ts
rename to ts/mta/classes.apimanager.ts
index efb0c5e..40c26f4 100644
--- a/ts/mta/mta.classes.apimanager.ts
+++ b/ts/mta/classes.apimanager.ts
@@ -1,9 +1,9 @@
 import * as plugins from '../plugins.js';
-import { Email } from './mta.classes.email.js';
-import type { IEmailOptions } from './mta.classes.email.js';
-import { DeliveryStatus } from './mta.classes.emailsendjob.js';
-import type { MtaService } from './mta.classes.mta.js';
-import type { IDnsRecord } from './mta.classes.dnsmanager.js';
+import { Email } from './classes.email.js';
+import type { IEmailOptions } from './classes.email.js';
+import { DeliveryStatus } from './classes.emailsendjob.js';
+import type { MtaService } from './classes.mta.js';
+import type { IDnsRecord } from './classes.dnsmanager.js';
 
 /**
  * Authentication options for API requests
diff --git a/ts/mta/mta.classes.dkimcreator.ts b/ts/mta/classes.dkimcreator.ts
similarity index 97%
rename from ts/mta/mta.classes.dkimcreator.ts
rename to ts/mta/classes.dkimcreator.ts
index a3df47f..bde399f 100644
--- a/ts/mta/mta.classes.dkimcreator.ts
+++ b/ts/mta/classes.dkimcreator.ts
@@ -1,8 +1,8 @@
 import * as plugins from '../plugins.js';
 import * as paths from '../paths.js';
 
-import { Email } from './mta.classes.email.js';
-import type { MtaService } from './mta.classes.mta.js';
+import { Email } from './classes.email.js';
+import type { MtaService } from './classes.mta.js';
 
 const readFile = plugins.util.promisify(plugins.fs.readFile);
 const writeFile = plugins.util.promisify(plugins.fs.writeFile);
diff --git a/ts/mta/mta.classes.dkimverifier.ts b/ts/mta/classes.dkimverifier.ts
similarity index 92%
rename from ts/mta/mta.classes.dkimverifier.ts
rename to ts/mta/classes.dkimverifier.ts
index 1d03ad1..ed9ed69 100644
--- a/ts/mta/mta.classes.dkimverifier.ts
+++ b/ts/mta/classes.dkimverifier.ts
@@ -1,5 +1,5 @@
 import * as plugins from '../plugins.js';
-import { MtaService } from './mta.classes.mta.js';
+import { MtaService } from './classes.mta.js';
 
 class DKIMVerifier {
   public mtaRef: MtaService;
diff --git a/ts/mta/mta.classes.dnsmanager.ts b/ts/mta/classes.dnsmanager.ts
similarity index 100%
rename from ts/mta/mta.classes.dnsmanager.ts
rename to ts/mta/classes.dnsmanager.ts
diff --git a/ts/mta/mta.classes.email.ts b/ts/mta/classes.email.ts
similarity index 100%
rename from ts/mta/mta.classes.email.ts
rename to ts/mta/classes.email.ts
diff --git a/ts/mta/mta.classes.emailsendjob.ts b/ts/mta/classes.emailsendjob.ts
similarity index 99%
rename from ts/mta/mta.classes.emailsendjob.ts
rename to ts/mta/classes.emailsendjob.ts
index 545cef3..2216ac1 100644
--- a/ts/mta/mta.classes.emailsendjob.ts
+++ b/ts/mta/classes.emailsendjob.ts
@@ -1,8 +1,8 @@
 import * as plugins from '../plugins.js';
 import * as paths from '../paths.js';
-import { Email } from './mta.classes.email.js';
-import { EmailSignJob } from './mta.classes.emailsignjob.js';
-import type { MtaService } from './mta.classes.mta.js';
+import { Email } from './classes.email.js';
+import { EmailSignJob } from './classes.emailsignjob.js';
+import type { MtaService } from './classes.mta.js';
 
 // Configuration options for email sending
 export interface IEmailSendOptions {
diff --git a/ts/mta/mta.classes.emailsignjob.ts b/ts/mta/classes.emailsignjob.ts
similarity index 100%
rename from ts/mta/mta.classes.emailsignjob.ts
rename to ts/mta/classes.emailsignjob.ts
diff --git a/ts/mta/mta.classes.mta.ts b/ts/mta/classes.mta.ts
similarity index 98%
rename from ts/mta/mta.classes.mta.ts
rename to ts/mta/classes.mta.ts
index 4dce52c..122a221 100644
--- a/ts/mta/mta.classes.mta.ts
+++ b/ts/mta/classes.mta.ts
@@ -1,14 +1,14 @@
 import * as plugins from '../plugins.js';
 import * as paths from '../paths.js';
 
-import { Email } from './mta.classes.email.js';
-import { EmailSendJob, DeliveryStatus } from './mta.classes.emailsendjob.js';
-import { DKIMCreator } from './mta.classes.dkimcreator.js';
-import { DKIMVerifier } from './mta.classes.dkimverifier.js';
-import { SMTPServer, type ISmtpServerOptions } from './mta.classes.smtpserver.js';
-import { DNSManager } from './mta.classes.dnsmanager.js';
-import { ApiManager } from './mta.classes.apimanager.js';
-import type { SzPlatformService } from '../classes.platformservice.js';
+import { Email } from './classes.email.js';
+import { EmailSendJob, DeliveryStatus } from './classes.emailsendjob.js';
+import { DKIMCreator } from './classes.dkimcreator.js';
+import { DKIMVerifier } from './classes.dkimverifier.js';
+import { SMTPServer, type ISmtpServerOptions } from './classes.smtpserver.js';
+import { DNSManager } from './classes.dnsmanager.js';
+import { ApiManager } from './classes.apimanager.js';
+import type { SzPlatformService } from '../platformservice.js';
 
 /**
  * Configuration options for the MTA service
diff --git a/ts/mta/mta.classes.smtpserver.ts b/ts/mta/classes.smtpserver.ts
similarity index 99%
rename from ts/mta/mta.classes.smtpserver.ts
rename to ts/mta/classes.smtpserver.ts
index 0c7c740..cf22e1c 100644
--- a/ts/mta/mta.classes.smtpserver.ts
+++ b/ts/mta/classes.smtpserver.ts
@@ -1,7 +1,7 @@
 import * as plugins from '../plugins.js';
 import * as paths from '../paths.js';
-import { Email } from './mta.classes.email.js';
-import type { MtaService } from './mta.classes.mta.js';
+import { Email } from './classes.email.js';
+import type { MtaService } from './classes.mta.js';
 
 export interface ISmtpServerOptions {
   port: number;
diff --git a/ts/mta/index.ts b/ts/mta/index.ts
index 807c547..f1d3b3c 100644
--- a/ts/mta/index.ts
+++ b/ts/mta/index.ts
@@ -1,7 +1,7 @@
-export * from './mta.classes.dkimcreator.js';
-export * from './mta.classes.emailsignjob.js';
-export * from './mta.classes.dkimverifier.js';
-export * from './mta.classes.mta.js';
-export * from './mta.classes.smtpserver.js';
-export * from './mta.classes.emailsendjob.js';
-export * from './mta.classes.email.js';
+export * from './classes.dkimcreator.js';
+export * from './classes.emailsignjob.js';
+export * from './classes.dkimverifier.js';
+export * from './classes.mta.js';
+export * from './classes.smtpserver.js';
+export * from './classes.emailsendjob.js';
+export * from './classes.email.js';
diff --git a/ts/classes.platformservice.ts b/ts/platformservice.ts
similarity index 88%
rename from ts/classes.platformservice.ts
rename to ts/platformservice.ts
index 61688f9..6868ccb 100644
--- a/ts/classes.platformservice.ts
+++ b/ts/platformservice.ts
@@ -1,10 +1,10 @@
 import * as plugins from './plugins.js';
 import * as paths from './paths.js';
 import { PlatformServiceDb } from './classes.platformservicedb.js'
-import { EmailService } from './email/email.classes.emailservice.js';
+import { EmailService } from './email/classes.emailservice.js';
 import { SmsService } from './sms/smsservice.js';
-import { LetterService } from './letter/classes.letterservice.js';
-import { MtaService } from './mta/mta.classes.mta.js';
+import { LetterService } from './letter/letterservice.js';
+import { MtaService } from './mta/classes.mta.js';
 
 export class SzPlatformService {
   public projectinfo: plugins.projectinfo.ProjectInfo;
diff --git a/ts/sms/smsservice.ts b/ts/sms/smsservice.ts
index 857a9b2..f5d8beb 100644
--- a/ts/sms/smsservice.ts
+++ b/ts/sms/smsservice.ts
@@ -1,7 +1,7 @@
 import * as plugins from '../plugins.js';
 import * as paths from '../paths.js';
 import { logger } from '../logger.js';
-import type { SzPlatformService } from '../classes.platformservice.js';
+import type { SzPlatformService } from '../platformservice.js';
 
 export interface ISmsConstructorOptions {
   apiGatewayApiToken: string;