Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
808a9cc856 | |||
be1c8d1164 | |||
2ecb2f3aa0 | |||
01dcdebda5 | |||
2adcc249de | |||
543e696bfc |
16
package.json
16
package.json
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@serve.zone/platformservice",
|
"name": "@serve.zone/platformservice",
|
||||||
"version": "1.0.3",
|
"private": true,
|
||||||
|
"version": "1.0.6",
|
||||||
"description": "contains the platformservice container with mail, sms, letter, ai services.",
|
"description": "contains the platformservice container with mail, sms, letter, ai services.",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
"typings": "dist_ts/index.d.ts",
|
"typings": "dist_ts/index.d.ts",
|
||||||
@ -11,7 +12,7 @@
|
|||||||
"test": "(tstest test/)",
|
"test": "(tstest test/)",
|
||||||
"start": "(node --max_old_space_size=100 ./cli.js)",
|
"start": "(node --max_old_space_size=100 ./cli.js)",
|
||||||
"startTs": "(node cli.ts.js)",
|
"startTs": "(node cli.ts.js)",
|
||||||
"build": "(tsbuild --web --allowimplicitany)"
|
"localPublish": ""
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@git.zone/tsbuild": "^2.1.17",
|
"@git.zone/tsbuild": "^2.1.17",
|
||||||
@ -23,6 +24,9 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@api.global/typedrequest": "^3.0.4",
|
"@api.global/typedrequest": "^3.0.4",
|
||||||
"@api.global/typedserver": "^3.0.20",
|
"@api.global/typedserver": "^3.0.20",
|
||||||
|
"@api.global/typedsocket": "^3.0.0",
|
||||||
|
"@apiclient.xyz/cloudflare": "^6.0.3",
|
||||||
|
"@apiclient.xyz/letterxpress": "^1.0.16",
|
||||||
"@push.rocks/projectinfo": "^5.0.1",
|
"@push.rocks/projectinfo": "^5.0.1",
|
||||||
"@push.rocks/qenv": "^6.0.5",
|
"@push.rocks/qenv": "^6.0.5",
|
||||||
"@push.rocks/smartdata": "^5.0.7",
|
"@push.rocks/smartdata": "^5.0.7",
|
||||||
@ -30,8 +34,14 @@
|
|||||||
"@push.rocks/smartlog": "^3.0.3",
|
"@push.rocks/smartlog": "^3.0.3",
|
||||||
"@push.rocks/smartmail": "^1.0.24",
|
"@push.rocks/smartmail": "^1.0.24",
|
||||||
"@push.rocks/smartpath": "^5.0.5",
|
"@push.rocks/smartpath": "^5.0.5",
|
||||||
|
"@push.rocks/smartpromise": "^4.0.3",
|
||||||
"@push.rocks/smartrequest": "^2.0.21",
|
"@push.rocks/smartrequest": "^2.0.21",
|
||||||
|
"@push.rocks/smartrx": "^3.0.7",
|
||||||
"@push.rocks/smartstate": "^2.0.0",
|
"@push.rocks/smartstate": "^2.0.0",
|
||||||
"@serve.zone/interfaces": "^1.0.34"
|
"@serve.zone/interfaces": "^1.0.34",
|
||||||
|
"@tsclass/tsclass": "^4.0.51",
|
||||||
|
"mailauth": "^4.6.5",
|
||||||
|
"mailparser": "^3.6.7",
|
||||||
|
"uuid": "^9.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1517
pnpm-lock.yaml
generated
1517
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@serve.zone/platformservice',
|
name: '@serve.zone/platformservice',
|
||||||
version: '1.0.3',
|
version: '1.0.6',
|
||||||
description: 'contains the platformservice container with mail, sms, letter, ai services.'
|
description: 'contains the platformservice container with mail, sms, letter, ai services.'
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from './plugins.js';
|
||||||
import * as paths from './paths.js';
|
import * as paths from './paths.js';
|
||||||
import { PlatformServiceDb } from './classes.platformservicedb.js'
|
import { PlatformServiceDb } from './classes.platformservicedb.js'
|
||||||
|
import { EmailService } from './email/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';
|
||||||
|
|
||||||
export class SzPlatformService {
|
export class SzPlatformService {
|
||||||
public projectinfo: plugins.projectinfo.ProjectInfo;
|
public projectinfo: plugins.projectinfo.ProjectInfo;
|
||||||
@ -10,9 +14,28 @@ export class SzPlatformService {
|
|||||||
public typedserver: plugins.typedserver.TypedServer;
|
public typedserver: plugins.typedserver.TypedServer;
|
||||||
public typedrouter = new plugins.typedrequest.TypedRouter();
|
public typedrouter = new plugins.typedrequest.TypedRouter();
|
||||||
|
|
||||||
|
// SubServices
|
||||||
|
public emailService: EmailService;
|
||||||
|
public letterService: LetterService;
|
||||||
|
public mtaService: MtaService;
|
||||||
|
public smsService: SmsService;
|
||||||
|
|
||||||
public async start() {
|
public async start() {
|
||||||
this.platformserviceDb = new PlatformServiceDb(this);
|
this.platformserviceDb = new PlatformServiceDb(this);
|
||||||
this.projectinfo = new plugins.projectinfo.ProjectInfo(paths.packageDir);
|
this.projectinfo = new plugins.projectinfo.ProjectInfo(paths.packageDir);
|
||||||
|
|
||||||
|
// lets start the sub services
|
||||||
|
this.emailService = new EmailService(this);
|
||||||
|
this.letterService = new LetterService(this, {
|
||||||
|
letterxpressUser: await this.serviceQenv.getEnvVarOnDemand('LETTER_API_USER'),
|
||||||
|
letterxpressToken: await this.serviceQenv.getEnvVarOnDemand('LETTER_API_TOKEN')
|
||||||
|
});
|
||||||
|
this.mtaService = new MtaService(this);
|
||||||
|
this.smsService = new SmsService(this, {
|
||||||
|
apiGatewayApiToken: await this.serviceQenv.getEnvVarOnDemand('SMS_API_TOKEN'),
|
||||||
|
});
|
||||||
|
|
||||||
|
// lets start the server finally
|
||||||
this.typedserver = new plugins.typedserver.TypedServer({
|
this.typedserver = new plugins.typedserver.TypedServer({
|
||||||
cors: true,
|
cors: true,
|
||||||
});
|
});
|
||||||
|
@ -6,6 +6,11 @@ import { ApiManager } from './email.classes.apimanager.js';
|
|||||||
import { logger } from '../logger.js';
|
import { logger } from '../logger.js';
|
||||||
import type { SzPlatformService } from '../classes.platformservice.js';
|
import type { SzPlatformService } from '../classes.platformservice.js';
|
||||||
|
|
||||||
|
|
||||||
|
export interface IEmailConstructorOptions {
|
||||||
|
mailgunApiKey: string;
|
||||||
|
}
|
||||||
|
|
||||||
export class EmailService {
|
export class EmailService {
|
||||||
public platformServiceRef: SzPlatformService;
|
public platformServiceRef: SzPlatformService;
|
||||||
|
|
||||||
|
17
ts/letter/classes.letterservice.ts
Normal file
17
ts/letter/classes.letterservice.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import type { SzPlatformService } from '../classes.platformservice.js';
|
||||||
|
import * as plugins from '../plugins.js';
|
||||||
|
|
||||||
|
export interface ILetterConstructorOptions {
|
||||||
|
letterxpressUser: string;
|
||||||
|
letterxpressToken: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class LetterService {
|
||||||
|
public platformServiceRef: SzPlatformService;
|
||||||
|
public options: ILetterConstructorOptions;
|
||||||
|
|
||||||
|
constructor(platformServiceRefArg: SzPlatformService, optionsArg: ILetterConstructorOptions) {
|
||||||
|
this.platformServiceRef = platformServiceRefArg;
|
||||||
|
this.options = optionsArg;
|
||||||
|
}
|
||||||
|
}
|
0
ts/letter/index.ts
Normal file
0
ts/letter/index.ts
Normal file
@ -1,4 +1,4 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
|
|
||||||
export class ApiManager {
|
export class ApiManager {
|
||||||
public typedrouter = new plugins.typedrequest.TypedRouter();
|
public typedrouter = new plugins.typedrequest.TypedRouter();
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
import * as paths from './paths.js';
|
import * as paths from '../paths.js';
|
||||||
|
|
||||||
import { Email } from './mta.classes.email.js';
|
import { Email } from './mta.classes.email.js';
|
||||||
import type { MTA } from './mta.classes.mta.js';
|
import type { MtaService } from './mta.classes.mta.js';
|
||||||
|
|
||||||
const readFile = plugins.util.promisify(plugins.fs.readFile);
|
const readFile = plugins.util.promisify(plugins.fs.readFile);
|
||||||
const writeFile = plugins.util.promisify(plugins.fs.writeFile);
|
const writeFile = plugins.util.promisify(plugins.fs.writeFile);
|
||||||
@ -16,7 +16,7 @@ export interface IKeyPaths {
|
|||||||
export class DKIMCreator {
|
export class DKIMCreator {
|
||||||
private keysDir: string;
|
private keysDir: string;
|
||||||
|
|
||||||
constructor(metaRef: MTA, keysDir = paths.keysDir) {
|
constructor(metaRef: MtaService, keysDir = paths.keysDir) {
|
||||||
this.keysDir = keysDir;
|
this.keysDir = keysDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
import { MTA } from './mta.classes.mta.js';
|
import { MtaService } from './mta.classes.mta.js';
|
||||||
|
|
||||||
class DKIMVerifier {
|
class DKIMVerifier {
|
||||||
public mtaRef: MTA;
|
public mtaRef: MtaService;
|
||||||
|
|
||||||
constructor(mtaRefArg: MTA) {
|
constructor(mtaRefArg: MtaService) {
|
||||||
this.mtaRef = mtaRefArg;
|
this.mtaRef = mtaRefArg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import type { MTA } from './mta.classes.mta.js';
|
import type { MtaService } from './mta.classes.mta.js';
|
||||||
import * as plugins from './plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
|
|
||||||
export class DNSManager {
|
export class DNSManager {
|
||||||
public mtaRef: MTA;
|
public mtaRef: MtaService;
|
||||||
|
|
||||||
constructor(mtaRefArg: MTA) {
|
constructor(mtaRefArg: MtaService) {
|
||||||
this.mtaRef = mtaRefArg;
|
this.mtaRef = mtaRefArg;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,16 +1,16 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
import * as paths from './paths.js';
|
import * as paths from '../paths.js';
|
||||||
import { Email } from './mta.classes.email.js';
|
import { Email } from './mta.classes.email.js';
|
||||||
import { EmailSignJob } from './mta.classes.emailsignjob.js';
|
import { EmailSignJob } from './mta.classes.emailsignjob.js';
|
||||||
import type { MTA } from './mta.classes.mta.js';
|
import type { MtaService } from './mta.classes.mta.js';
|
||||||
|
|
||||||
export class EmailSendJob {
|
export class EmailSendJob {
|
||||||
mtaRef: MTA;
|
mtaRef: MtaService;
|
||||||
private email: Email;
|
private email: Email;
|
||||||
private socket: plugins.net.Socket | plugins.tls.TLSSocket = null;
|
private socket: plugins.net.Socket | plugins.tls.TLSSocket = null;
|
||||||
private mxRecord: string = null;
|
private mxRecord: string = null;
|
||||||
|
|
||||||
constructor(mtaRef: MTA, emailArg: Email) {
|
constructor(mtaRef: MtaService, emailArg: Email) {
|
||||||
this.email = emailArg;
|
this.email = emailArg;
|
||||||
this.mtaRef = mtaRef;
|
this.mtaRef = mtaRef;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
import type { MTA } from './mta.classes.mta.js';
|
import type { MtaService } from './mta.classes.mta.js';
|
||||||
|
|
||||||
interface Headers {
|
interface Headers {
|
||||||
[key: string]: string;
|
[key: string]: string;
|
||||||
@ -13,10 +13,10 @@ interface IEmailSignJobOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class EmailSignJob {
|
export class EmailSignJob {
|
||||||
mtaRef: MTA;
|
mtaRef: MtaService;
|
||||||
jobOptions: IEmailSignJobOptions;
|
jobOptions: IEmailSignJobOptions;
|
||||||
|
|
||||||
constructor(mtaRefArg: MTA, options: IEmailSignJobOptions) {
|
constructor(mtaRefArg: MtaService, options: IEmailSignJobOptions) {
|
||||||
this.mtaRef = mtaRefArg;
|
this.mtaRef = mtaRefArg;
|
||||||
this.jobOptions = options;
|
this.jobOptions = options;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
|
|
||||||
import { Email } from './mta.classes.email.js';
|
import { Email } from './mta.classes.email.js';
|
||||||
import { EmailSendJob } from './mta.classes.emailsendjob.js';
|
import { EmailSendJob } from './mta.classes.emailsendjob.js';
|
||||||
@ -6,14 +6,17 @@ import { DKIMCreator } from './mta.classes.dkimcreator.js';
|
|||||||
import { DKIMVerifier } from './mta.classes.dkimverifier.js';
|
import { DKIMVerifier } from './mta.classes.dkimverifier.js';
|
||||||
import { SMTPServer } from './mta.classes.smtpserver.js';
|
import { SMTPServer } from './mta.classes.smtpserver.js';
|
||||||
import { DNSManager } from './mta.classes.dnsmanager.js';
|
import { DNSManager } from './mta.classes.dnsmanager.js';
|
||||||
|
import type { SzPlatformService } from '../classes.platformservice.js';
|
||||||
|
|
||||||
export class MTA {
|
export class MtaService {
|
||||||
|
public platformServiceRef: SzPlatformService;
|
||||||
public server: SMTPServer;
|
public server: SMTPServer;
|
||||||
public dkimCreator: DKIMCreator;
|
public dkimCreator: DKIMCreator;
|
||||||
public dkimVerifier: DKIMVerifier;
|
public dkimVerifier: DKIMVerifier;
|
||||||
public dnsManager: DNSManager;
|
public dnsManager: DNSManager;
|
||||||
|
|
||||||
constructor() {
|
constructor(platformServiceRefArg: SzPlatformService) {
|
||||||
|
this.platformServiceRef = platformServiceRefArg;
|
||||||
this.dkimCreator = new DKIMCreator(this);
|
this.dkimCreator = new DKIMCreator(this);
|
||||||
this.dkimVerifier = new DKIMVerifier(this);
|
this.dkimVerifier = new DKIMVerifier(this);
|
||||||
this.dnsManager = new DNSManager(this);
|
this.dnsManager = new DNSManager(this);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
import * as paths from './paths.js';
|
import * as paths from '../paths.js';
|
||||||
import { Email } from './mta.classes.email.js';
|
import { Email } from './mta.classes.email.js';
|
||||||
import type { MTA } from './mta.classes.mta.js';
|
import type { MtaService } from './mta.classes.mta.js';
|
||||||
|
|
||||||
export interface ISmtpServerOptions {
|
export interface ISmtpServerOptions {
|
||||||
port: number;
|
port: number;
|
||||||
@ -10,12 +10,12 @@ export interface ISmtpServerOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class SMTPServer {
|
export class SMTPServer {
|
||||||
public mtaRef: MTA;
|
public mtaRef: MtaService;
|
||||||
private smtpServerOptions: ISmtpServerOptions;
|
private smtpServerOptions: ISmtpServerOptions;
|
||||||
private server: plugins.net.Server;
|
private server: plugins.net.Server;
|
||||||
private emailBufferStringMap: Map<plugins.net.Socket, string>;
|
private emailBufferStringMap: Map<plugins.net.Socket, string>;
|
||||||
|
|
||||||
constructor(mtaRefArg: MTA, optionsArg: ISmtpServerOptions) {
|
constructor(mtaRefArg: MtaService, optionsArg: ISmtpServerOptions) {
|
||||||
console.log('SMTPServer instance is being created...');
|
console.log('SMTPServer instance is being created...');
|
||||||
|
|
||||||
this.mtaRef = mtaRefArg;
|
this.mtaRef = mtaRefArg;
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
import * as plugins from './plugins.js';
|
|
||||||
|
|
||||||
export const cwd = plugins.path.join(
|
|
||||||
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
|
||||||
'../'
|
|
||||||
);
|
|
||||||
export const assetsDir = plugins.path.join(cwd, './assets');
|
|
||||||
export const keysDir = plugins.path.join(assetsDir, './keys');
|
|
||||||
export const dnsRecordsDir = plugins.path.join(assetsDir, './dns-records');
|
|
||||||
export const sentEmailsDir = plugins.path.join(assetsDir, './sent-emails');
|
|
||||||
export const receivedEmailsDir = plugins.path.join(assetsDir, './received-emails');
|
|
||||||
plugins.smartfile.fs.ensureDirSync(keysDir);
|
|
@ -1,67 +0,0 @@
|
|||||||
// node native
|
|
||||||
import * as dns from 'dns';
|
|
||||||
import * as fs from 'fs';
|
|
||||||
import * as crypto from 'crypto';
|
|
||||||
import * as net from 'net';
|
|
||||||
import * as path from 'path';
|
|
||||||
import * as tls from 'tls';
|
|
||||||
import * as util from 'util';
|
|
||||||
|
|
||||||
export {
|
|
||||||
dns,
|
|
||||||
fs,
|
|
||||||
crypto,
|
|
||||||
net,
|
|
||||||
path,
|
|
||||||
tls,
|
|
||||||
util,
|
|
||||||
}
|
|
||||||
|
|
||||||
// @apiclient.xyz/cloudflare
|
|
||||||
import * as cloudflare from '@apiclient.xyz/cloudflare';
|
|
||||||
|
|
||||||
export {
|
|
||||||
cloudflare,
|
|
||||||
}
|
|
||||||
|
|
||||||
// @apiglobal scope
|
|
||||||
import * as typedrequest from '@apiglobal/typedrequest';
|
|
||||||
import * as typedsocket from '@apiglobal/typedsocket';
|
|
||||||
|
|
||||||
export {
|
|
||||||
typedrequest,
|
|
||||||
typedsocket,
|
|
||||||
}
|
|
||||||
|
|
||||||
// pushrocks scope
|
|
||||||
import * as smartfile from '@pushrocks/smartfile';
|
|
||||||
import * as smartpath from '@pushrocks/smartpath';
|
|
||||||
import * as smartpromise from '@pushrocks/smartpromise';
|
|
||||||
import * as smartrx from '@pushrocks/smartrx';
|
|
||||||
|
|
||||||
export {
|
|
||||||
smartfile,
|
|
||||||
smartpath,
|
|
||||||
smartpromise,
|
|
||||||
smartrx,
|
|
||||||
}
|
|
||||||
|
|
||||||
// tsclass scope
|
|
||||||
import * as tsclass from '@tsclass/tsclass';
|
|
||||||
|
|
||||||
export {
|
|
||||||
tsclass,
|
|
||||||
}
|
|
||||||
|
|
||||||
// third party
|
|
||||||
import * as mailauth from 'mailauth';
|
|
||||||
import { dkimSign } from 'mailauth/lib/dkim/sign.js';
|
|
||||||
import mailparser from 'mailparser';
|
|
||||||
import * as uuid from 'uuid';
|
|
||||||
|
|
||||||
export {
|
|
||||||
mailauth,
|
|
||||||
dkimSign,
|
|
||||||
mailparser,
|
|
||||||
uuid,
|
|
||||||
}
|
|
@ -4,3 +4,9 @@ export const packageDir = plugins.path.join(
|
|||||||
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
||||||
'../'
|
'../'
|
||||||
);
|
);
|
||||||
|
export const assetsDir = plugins.path.join(packageDir, './assets');
|
||||||
|
export const keysDir = plugins.path.join(assetsDir, './keys');
|
||||||
|
export const dnsRecordsDir = plugins.path.join(assetsDir, './dns-records');
|
||||||
|
export const sentEmailsDir = plugins.path.join(assetsDir, './sent-emails');
|
||||||
|
export const receivedEmailsDir = plugins.path.join(assetsDir, './received-emails');
|
||||||
|
plugins.smartfile.fs.ensureDirSync(keysDir);
|
@ -1,8 +1,20 @@
|
|||||||
// node native
|
// node native
|
||||||
|
import * as dns from 'dns';
|
||||||
|
import * as fs from 'fs';
|
||||||
|
import * as crypto from 'crypto';
|
||||||
|
import * as net from 'net';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
import * as tls from 'tls';
|
||||||
|
import * as util from 'util';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
path
|
dns,
|
||||||
|
fs,
|
||||||
|
crypto,
|
||||||
|
net,
|
||||||
|
path,
|
||||||
|
tls,
|
||||||
|
util,
|
||||||
}
|
}
|
||||||
|
|
||||||
// @serve.zone scope
|
// @serve.zone scope
|
||||||
@ -15,10 +27,12 @@ export {
|
|||||||
// @api.global scope
|
// @api.global scope
|
||||||
import * as typedrequest from '@api.global/typedrequest';
|
import * as typedrequest from '@api.global/typedrequest';
|
||||||
import * as typedserver from '@api.global/typedserver';
|
import * as typedserver from '@api.global/typedserver';
|
||||||
|
import * as typedsocket from '@api.global/typedsocket';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
typedrequest,
|
typedrequest,
|
||||||
typedserver,
|
typedserver,
|
||||||
|
typedsocket,
|
||||||
}
|
}
|
||||||
|
|
||||||
// @push.rocks scope
|
// @push.rocks scope
|
||||||
@ -29,6 +43,35 @@ import * as smartfile from '@push.rocks/smartfile';
|
|||||||
import * as smartlog from '@push.rocks/smartlog';
|
import * as smartlog from '@push.rocks/smartlog';
|
||||||
import * as smartmail from '@push.rocks/smartmail';
|
import * as smartmail from '@push.rocks/smartmail';
|
||||||
import * as smartpath from '@push.rocks/smartpath';
|
import * as smartpath from '@push.rocks/smartpath';
|
||||||
|
import * as smartpromise from '@push.rocks/smartpromise';
|
||||||
import * as smartrequest from '@push.rocks/smartrequest';
|
import * as smartrequest from '@push.rocks/smartrequest';
|
||||||
|
import * as smartrx from '@push.rocks/smartrx';
|
||||||
|
|
||||||
export { projectinfo, qenv, smartdata, smartfile, smartlog, smartmail, smartpath, smartrequest };
|
export { projectinfo, qenv, smartdata, smartfile, smartlog, smartmail, smartpath, smartpromise, smartrequest, smartrx };
|
||||||
|
|
||||||
|
// apiclient.xyz scope
|
||||||
|
import * as letterxpress from '@apiclient.xyz/letterxpress';
|
||||||
|
|
||||||
|
export {
|
||||||
|
letterxpress,
|
||||||
|
}
|
||||||
|
|
||||||
|
// tsclass scope
|
||||||
|
import * as tsclass from '@tsclass/tsclass';
|
||||||
|
|
||||||
|
export {
|
||||||
|
tsclass,
|
||||||
|
}
|
||||||
|
|
||||||
|
// third party
|
||||||
|
import * as mailauth from 'mailauth';
|
||||||
|
import { dkimSign } from 'mailauth/lib/dkim/sign.js';
|
||||||
|
import mailparser from 'mailparser';
|
||||||
|
import * as uuid from 'uuid';
|
||||||
|
|
||||||
|
export {
|
||||||
|
mailauth,
|
||||||
|
dkimSign,
|
||||||
|
mailparser,
|
||||||
|
uuid,
|
||||||
|
}
|
||||||
|
@ -4,7 +4,7 @@ import { logger } from '../logger.js';
|
|||||||
import type { SzPlatformService } from '../classes.platformservice.js';
|
import type { SzPlatformService } from '../classes.platformservice.js';
|
||||||
|
|
||||||
export interface ISmsConstructorOptions {
|
export interface ISmsConstructorOptions {
|
||||||
apiToken: string;
|
apiGatewayApiToken: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SmsService {
|
export class SmsService {
|
||||||
@ -63,7 +63,7 @@ export class SmsService {
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
requestBody: JSON.stringify(payload),
|
requestBody: JSON.stringify(payload),
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Basic ${Buffer.from(`${this.options.apiToken}:`).toString('base64')}`,
|
Authorization: `Basic ${Buffer.from(`${this.options.apiGatewayApiToken}:`).toString('base64')}`,
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user