Compare commits

...

68 Commits

Author SHA1 Message Date
f1b62ce326 3.0.39 2022-01-08 04:19:18 +01:00
662909a84b fix(core): update 2022-01-08 04:19:18 +01:00
10c7111cbb 3.0.38 2022-01-08 02:29:24 +01:00
ae8c091f2d fix(core): update 2022-01-08 02:29:24 +01:00
2026a84865 3.0.37 2021-12-10 17:50:55 +01:00
6f0a8dcfac fix(core): update 2021-12-10 17:50:55 +01:00
7d148166c3 3.0.36 2021-11-07 03:17:52 +01:00
cd380c9791 fix(core): update 2021-11-07 03:17:51 +01:00
2a3236c2a6 3.0.35 2021-11-07 03:16:41 +01:00
cb556f71da fix(core): update 2021-11-07 03:16:41 +01:00
416aa9ee1e 3.0.34 2021-10-05 14:56:38 +02:00
3375f8aa4f fix(core): update 2021-10-05 14:56:37 +02:00
283e53fea3 3.0.33 2021-02-18 19:46:55 +00:00
ae396892bc fix(core): update 2021-02-18 19:46:55 +00:00
e292ec1de9 3.0.32 2021-02-15 21:36:27 +00:00
b1107a5945 fix(core): update 2021-02-15 21:36:26 +00:00
45149ff081 3.0.31 2021-02-15 21:31:01 +00:00
caef1047e4 fix(core): update 2021-02-15 21:31:01 +00:00
1b36f64e4c 3.0.30 2021-02-15 15:29:59 +00:00
3cabc47e51 fix(core): update 2021-02-15 15:29:58 +00:00
2c6a9d9fae 3.0.29 2020-10-31 10:53:14 +00:00
1ee8d36b68 fix(core): update 2020-10-31 10:53:14 +00:00
d6351421b3 3.0.28 2020-10-31 10:52:33 +00:00
d8ae73007a fix(core): update 2020-10-31 10:52:33 +00:00
9a63a9197b 3.0.27 2020-10-29 17:32:46 +00:00
07d5665deb fix(core): update 2020-10-29 17:32:45 +00:00
9a14f7e356 3.0.26 2020-10-29 11:40:14 +00:00
600ca80d33 fix(core): update 2020-10-29 11:40:14 +00:00
c6a9893ce1 3.0.25 2020-08-24 15:51:52 +00:00
ea60921761 fix(core): update 2020-08-24 15:51:51 +00:00
fef1ddcd93 3.0.24 2020-08-18 14:59:34 +00:00
c54db0d9a8 fix(core): update 2020-08-18 14:59:34 +00:00
5120d9b9bd 3.0.23 2020-08-18 14:46:00 +00:00
2e40bc20df fix(core): update 2020-08-18 14:45:59 +00:00
f64721addc 3.0.22 2020-08-18 14:39:16 +00:00
17cc1c646a fix(core): update 2020-08-18 14:39:15 +00:00
2a92733329 3.0.21 2020-08-04 09:38:50 +00:00
6d0993d381 fix(CI): should now test merge requests with public GitLab.com runners 2020-08-04 09:38:49 +00:00
5724d96f23 3.0.20 2020-07-23 08:29:29 +00:00
70fc60d865 fix(core): update 2020-07-23 08:29:28 +00:00
e21d6dabe1 3.0.19 2020-07-23 05:36:55 +00:00
335717a025 fix(core): update 2020-07-23 05:36:55 +00:00
69afa1dfcb 3.0.18 2020-06-26 20:20:44 +00:00
b2e11c9841 fix(core): update 2020-06-26 20:20:43 +00:00
69cb421ad1 3.0.17 2020-03-25 20:12:10 +00:00
c7f210a526 fix(core): update 2020-03-25 20:12:09 +00:00
7c3976d169 3.0.16 2020-03-25 11:40:26 +00:00
6f92823f56 fix(core): update 2020-03-25 11:40:26 +00:00
dac8ca4be5 3.0.15 2020-03-25 11:40:11 +00:00
a227973238 fix(core): update 2020-03-25 11:40:10 +00:00
2307e01c81 3.0.14 2020-03-24 23:13:01 +00:00
852626457f fix(core): update 2020-03-24 23:13:01 +00:00
ce8708266f 3.0.13 2020-03-22 22:21:48 +00:00
4027eedf64 fix(core): update 2020-03-22 22:21:47 +00:00
14314ee394 3.0.12 2020-03-06 14:23:04 +00:00
44b849bf86 fix(core): update 2020-03-06 14:23:04 +00:00
b985bf1d30 3.0.11 2020-03-06 13:15:07 +00:00
7f29739ca0 fix(company): added website to definition 2020-03-06 13:15:06 +00:00
c453dc9001 3.0.10 2020-02-20 22:13:58 +00:00
cd4127da73 fix(core): update 2020-02-20 22:13:57 +00:00
ab5f8bf470 3.0.9 2020-02-20 22:13:15 +00:00
968219384d fix(core): update 2020-02-20 22:13:14 +00:00
dd5ca4b3f1 3.0.8 2020-02-20 22:06:38 +00:00
3c99bfe922 fix(core): update 2020-02-20 22:06:37 +00:00
4f62bfb622 3.0.7 2020-02-15 16:28:47 +00:00
5f00526a7c fix(core): update 2020-02-15 16:28:46 +00:00
0c1b9b3345 3.0.6 2020-02-15 15:17:47 +00:00
b32d64e5f2 fix(core): update 2020-02-15 15:17:46 +00:00
29 changed files with 25452 additions and 1610 deletions

4
.gitignore vendored
View File

@ -15,8 +15,6 @@ node_modules/
# builds
dist/
dist_web/
dist_serve/
dist_ts_web/
dist_*/
# custom

View File

@ -19,22 +19,35 @@ mirror:
stage: security
script:
- npmci git mirror
only:
- tags
tags:
- lossless
- docker
- notpriv
snyk:
image: registry.gitlab.com/hosttoday/ht-docker-node:snyk
auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
tags:
- docker
auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --ignore-scripts
- npmci command snyk test
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
tags:
- lossless
- docker
- notpriv
allow_failure: true
# ====================
# test stage
@ -49,9 +62,7 @@ testStable:
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- lossless
- docker
- priv
testBuild:
stage: test
@ -62,9 +73,7 @@ testBuild:
- npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- lossless
- docker
- notpriv
release:
stage: release
@ -84,6 +93,8 @@ release:
codequality:
stage: metadata
allow_failure: true
only:
- tags
script:
- npmci command npm install -g tslint typescript
- npmci npm prepare

29
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,29 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "current file",
"type": "node",
"request": "launch",
"args": [
"${relativeFile}"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": "test.ts",
"type": "node",
"request": "launch",
"args": [
"test/test.ts"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
}
]
}

26
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,26 @@
{
"json.schemas": [
{
"fileMatch": ["/npmextra.json"],
"schema": {
"type": "object",
"properties": {
"npmci": {
"type": "object",
"description": "settings for npmci"
},
"gitzone": {
"type": "object",
"description": "settings for gitzone",
"properties": {
"projectType": {
"type": "string",
"enum": ["website", "element", "service", "npm", "wcc"]
}
}
}
}
}
}
]
}

View File

@ -4,6 +4,7 @@
"npmAccessLevel": "public"
},
"gitzone": {
"projectType": "npm",
"module": {
"githost": "gitlab.com",
"gitscope": "tsclass",

26779
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,13 @@
{
"name": "@tsclass/tsclass",
"version": "3.0.5",
"version": "3.0.39",
"private": false,
"description": "common classes for TypeScript",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
"scripts": {
"test": "tstest test/",
"build": "tsbuild"
"build": "(tsbuild --web)"
},
"repository": {
"type": "git",
@ -24,24 +24,29 @@
},
"homepage": "https://github.com/tsclass/tsclass#readme",
"dependencies": {
"@pushrocks/tapbundle": "^3.0.13"
"type-fest": "^2.8.0"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.17",
"@gitzone/tsrun": "^1.2.8",
"@gitzone/tstest": "^1.0.27",
"tslint": "^5.20.0",
"@gitzone/tsbuild": "^2.1.28",
"@gitzone/tsrun": "^1.2.18",
"@gitzone/tstest": "^1.0.60",
"@pushrocks/tapbundle": "^3.2.15",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0"
},
"files": [
"ts/**/*",
"ts_web/**/*",
"dist/**/*",
"dist_web/**/*",
"dist_*/**/*",
"dist_ts/**/*",
"dist_ts_web/**/*",
"assets/**/*",
"cli.js",
"npmextra.json",
"readme.md"
],
"browserslist": [
"last 1 chrome versions"
]
}

View File

@ -8,13 +8,20 @@ common classes for TypeScript
* [docs (typedoc)](https://tsclass.gitlab.io/tsclass/)
## Status for master
[![build status](https://gitlab.com/tsclass/tsclass/badges/master/build.svg)](https://gitlab.com/tsclass/tsclass/commits/master)
[![coverage report](https://gitlab.com/tsclass/tsclass/badges/master/coverage.svg)](https://gitlab.com/tsclass/tsclass/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/@tsclass/tsclass.svg)](https://www.npmjs.com/package/@tsclass/tsclass)
[![Known Vulnerabilities](https://snyk.io/test/npm/@tsclass/tsclass/badge.svg)](https://snyk.io/test/npm/@tsclass/tsclass)
[![TypeScript](https://img.shields.io/badge/TypeScript->=%203.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-prettier-ff69b4.svg)](https://prettier.io/)
Status Category | Status Badge
-- | --
GitLab Pipelines | [![pipeline status](https://gitlab.com/tsclass/tsclass/badges/master/pipeline.svg)](https://lossless.cloud)
GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/tsclass/tsclass/badges/master/coverage.svg)](https://lossless.cloud)
npm | [![npm downloads per month](https://badgen.net/npm/dy/@tsclass/tsclass)](https://lossless.cloud)
Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/tsclass/tsclass)](https://lossless.cloud)
TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@tsclass/tsclass)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@tsclass/tsclass)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@tsclass/tsclass)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage
@ -49,7 +56,6 @@ class myOwnInvoice implements IInvoice {
> The modules in bold letters exist as own modules and can be used seperately
## Contribution
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)

View File

@ -0,0 +1,6 @@
export interface IClaim {
userName: string;
userId: string;
validUntil: number;
roles: string[];
}

View File

@ -0,0 +1 @@
export * from './claim';

View File

@ -0,0 +1,7 @@
import { IClaim } from './claim';
export interface IProcessedClaim {
originalJWT: string;
claim: IClaim;
signed: boolean;
}

View File

@ -19,8 +19,13 @@ export interface IContact {
address: business.IAddress;
description: string;
customerNumber?: string;
email?: string;
logoUrl?: string;
website?: string;
facebookUrl?: string;
twitterUrl?: string;
phone?: string;
fax?: string;

View File

@ -1,4 +1,5 @@
export * from './address';
export * from './company';
export * from './contact';
export * from './letter';
export * from './person';

16
ts/business/letter.ts Normal file
View File

@ -0,0 +1,16 @@
import * as business from './';
import * as finance from '../finance';
export interface ILetter {
incidenceId: string;
from: business.IAddress;
to: business.IAddress;
subject: string;
text: string[];
invoice?: finance.IInvoice;
contractRef: string;
timesheetRef: string;
pdfAttachments: Uint8Array[];
legalContact: business.IContact;
language: string;
}

View File

@ -0,0 +1,9 @@
export interface IContainer {
registryUrl: string;
tag: string;
/**
* version is usually derived from labels
*/
version: string;
labels: string[];
}

2
ts/container/index.ts Normal file
View File

@ -0,0 +1,2 @@
export * from './container';
export * from './volumemount';

View File

@ -0,0 +1,4 @@
export interface IVolumeMount {
hostFsPath: string;
containerFsPath: string;
}

View File

@ -1,6 +1,18 @@
import { content } from '..';
export interface IArticle {
export interface IArticle<T = any> {
/**
* the main url of an article
*/
url?: string;
/**
* the mainimage of the article
*/
featuredImageUrl?: string;
referenceObject?: T;
/**
* the title of an article
*/
@ -16,6 +28,11 @@ export interface IArticle {
*/
content: string;
/**
* a timestamp for when the article was written
*/
timestamp: number;
/**
* the tags of an article
*/

View File

@ -3,5 +3,5 @@ import { finance } from '../';
export interface ICheckingAccount {
name: string;
currency: finance.TCurrency;
transactions: finance.ITransaction[];
transactions?: finance.ITransaction[];
}

View File

@ -5,8 +5,10 @@ export type TInvoiceStatus = 'draft' | 'invoice' | 'paid' | 'refunded';
export interface IInvoiceItem {
name: string;
unitType: string;
quantity: number;
unitQuantity: number;
unitNetPrice: number;
vatPercentage: number;
currency: 'EUR';
}
export interface IInvoice {
@ -14,4 +16,13 @@ export interface IInvoice {
billedTo: business.IContact;
status: TInvoiceStatus;
items: IInvoiceItem[];
printResult?: {
pdfBufferString: string;
totalNet: number;
totalGross: number;
vatGroups: {
percentage: number;
items: IInvoiceItem[];
}
};
}

View File

@ -1,6 +1,9 @@
// Business
import * as business from './business';
// Container
import * as container from './container';
// Finance
import * as finance from './finance';
@ -13,4 +16,11 @@ import * as general from './general';
// Network
import * as network from './network';
export { business, finance, content, general, network };
// SaaS
import * as saas from './saas';
export { business, container, finance, content, general, network, saas };
import type * as typeFest from 'type-fest';
export { typeFest };

View File

@ -13,8 +13,8 @@ export type TDnsRecordType =
| 'TXT';
export interface IDnsRecord {
chunked?: string[];
name: string;
type: TDnsRecordType;
value: string;
dnsSecEnabled: boolean;
}

View File

@ -1,4 +1,4 @@
export interface IDnsChallenge {
hostName: string;
challenge: string;
}
}

View File

@ -2,4 +2,5 @@ export * from './cert';
export * from './dns';
export * from './dnschallenge';
export * from './networknode';
export * from './request';
export * from './reverseproxy';

26
ts/network/request.ts Normal file
View File

@ -0,0 +1,26 @@
export interface ISimpleRequest {
headers: {};
parsedUrl: {
hash: string;
host: string;
hostname: string;
href: string;
readonly origin: string;
password: string;
pathname: string;
port: string;
protocol: string;
search: string;
readonly searchParams: any;
username: string;
toString: () => string;
toJSON: () => string;
};
body?: string | object | Buffer;
}
export interface ISimpleResponse {
headers: { [key: string]: string };
body: string;
}
export type IRenderFunction = (req: ISimpleRequest) => Promise<ISimpleResponse>;

2
ts/saas/index.ts Normal file
View File

@ -0,0 +1,2 @@
export * from './subscriptionplan';
export * from './product';

1
ts/saas/product.ts Normal file
View File

@ -0,0 +1 @@
export interface IProduct {}

View File

@ -0,0 +1,14 @@
import { IProduct } from './product';
export interface ISubscriptionPlan {
name: string;
unit: 'device' | 'user';
quantity: boolean;
availableTerms: {
period: 'daily' | 'weekly' | 'monthly' | 'yearly';
price: number;
currency: 'EUR' | 'USD';
}[];
containedProducts: IProduct[];
limits: any;
}