Compare commits

...

327 Commits

Author SHA1 Message Date
dead451ab0 6.1.2 2025-03-20 17:52:17 +00:00
d7855494a7 fix(business/address): Improve documentation comments for address interface properties 2025-03-20 17:52:17 +00:00
0a12915c7e 6.1.1 2025-03-20 17:44:10 +00:00
9a942cafa5 fix(finance): Add clarifying comment for the buyerReference field in the invoice interface 2025-03-20 17:44:10 +00:00
0292b4fef4 6.1.0 2025-03-20 17:34:56 +00:00
2d9d2a5a47 feat(business/address): Add optional countryCode and coordinates properties to IAddress interface 2025-03-20 17:34:56 +00:00
079e315b23 6.0.1 2025-03-19 14:17:43 +00:00
caf3e4766f fix(business): Remove exports for company and person modules from the business index 2025-03-19 14:17:43 +00:00
50b5630aed 6.0.0 2025-03-19 14:16:55 +00:00
a8776be6b8 BREAKING CHANGE(TContact): new structure around TContact that combines functionality of previous interfaces like ICompany and IPerson 2025-03-19 14:16:55 +00:00
4e173d4dd4 Merge pull request 'feat: add registration info and refactor contact' (#1) from feat/add-registration-info into master
Reviewed-on: #1
2025-03-19 14:08:30 +00:00
edcbdea31f chore: fix typo 2025-03-18 16:49:51 +00:00
6072974bda feat: add registration info and refactor contact 2025-03-17 19:15:08 +00:00
8883bf181e 5.0.0 2025-03-11 12:07:33 +00:00
cd09a70232 BREAKING CHANGE(network): Update reverse proxy configuration to support multiple destination IPs and ports 2025-03-11 12:07:33 +00:00
e6811c75fc 4.4.4 2025-03-10 15:20:24 +00:00
e0ba9c6cef fix(business): Fixes typo in ILetter interface 2025-03-10 15:20:24 +00:00
90c56c6d4f 4.4.3 2025-03-07 14:21:32 +00:00
91caa9a747 fix(network): Fix destinationPort type for IReverseProxyConfig 2025-03-07 14:21:32 +00:00
115250edab 4.4.2 2025-03-07 14:20:18 +00:00
1127b8961f fix(dependencies): Updated package dependencies for improved stability and performance. 2025-03-07 14:20:18 +00:00
cc15835c8e 4.4.1 2025-03-07 14:18:42 +00:00
300ac01629 fix(business): Fix missing letterData property in ILetter interface. 2025-03-07 14:18:42 +00:00
a9a2f94f7e 4.4.0 2025-01-11 19:01:53 +01:00
5e8473d16b feat(website): Add ILinkBlock interface for managing groups of links 2025-01-11 19:01:53 +01:00
6366b4f990 4.3.0 2025-01-10 22:05:27 +01:00
a3e147f946 feat(website): Added new ILink interface to the website module. 2025-01-10 22:05:26 +01:00
1c6fc3666d 4.2.0 2024-12-11 12:53:04 +01:00
891b0f0f10 feat(dependencies): Update dependencies and enhance code documentation 2024-12-11 12:53:04 +01:00
96a31cbc71 4.1.2 2024-07-26 22:23:23 +02:00
450139682f fix(finance): Updated IInvoice interface to support various currencies. 2024-07-26 22:23:23 +02:00
741b361f4b 4.1.1 2024-07-26 22:20:19 +02:00
cabd160fb2 fix(finance): Fix IInvoice interface to correctly include the currency field 2024-07-26 22:20:18 +02:00
12a9e231ae 4.1.0 2024-07-26 16:51:34 +02:00
f9c7f90d73 feat(finance): Added notes field to IInvoice interface 2024-07-26 16:51:33 +02:00
6095e0ea5c 4.0.65 2024-07-24 15:16:28 +02:00
63b2bd59a2 fix(finance): Added type property to IInvoice interface 2024-07-24 15:16:27 +02:00
c4d13e6f8a 4.0.64 2024-07-18 21:01:09 +02:00
f6bda9a20c fix(business): Add relationship field to contact interface 2024-07-18 21:01:08 +02:00
4f1947d38a 4.0.63 2024-06-28 18:56:02 +02:00
c59ad68771 fix(saas): Refactor IProduct to separate IProductFeature interface 2024-06-28 18:56:01 +02:00
4d0af19155 4.0.62 2024-06-24 21:22:32 +02:00
d06b82faaa fix(dependencies): Updated dependencies to latest versions 2024-06-24 21:22:31 +02:00
c319415c76 4.0.61 2024-06-24 21:21:39 +02:00
75177cc097 fix(dependencies): Update dependencies to latest versions 2024-06-24 21:21:38 +02:00
85c4caa861 4.0.60 2024-06-19 18:27:24 +02:00
85ae355e2c fix(core): update 2024-06-19 18:27:23 +02:00
09ea75ed5b 4.0.59 2024-06-17 14:56:50 +02:00
58b3fbb03e fix(core): update 2024-06-17 14:56:49 +02:00
89698b30f6 4.0.58 2024-06-15 18:10:01 +02:00
09eaa7ff3b fix(core): update 2024-06-15 18:10:00 +02:00
806f28849f 4.0.57 2024-06-15 18:08:36 +02:00
dd4ff90b3b fix(core): update 2024-06-15 18:08:35 +02:00
cede9eaebf 4.0.56 2024-06-15 18:00:07 +02:00
a25425f0ac fix(core): update 2024-06-15 18:00:07 +02:00
54ad67c93e 4.0.55 2024-06-08 19:10:47 +02:00
dba7193605 fix(core): update 2024-06-08 19:10:46 +02:00
3cd02b61b3 4.0.54 2024-04-17 19:17:11 +02:00
f7fb032f4d fix(core): update 2024-04-17 19:17:10 +02:00
2cef38c54b 4.0.53 2024-04-17 19:16:04 +02:00
26cec00b4e fix(core): update 2024-04-17 19:16:04 +02:00
faa173b034 update documentation 2024-04-16 18:40:54 +02:00
e13236e10f 4.0.52 2024-02-17 20:54:54 +01:00
18d52a9018 fix(core): update 2024-02-17 20:54:53 +01:00
582b269d63 4.0.51 2024-02-13 01:08:22 +01:00
6293db82fd fix(core): update 2024-02-13 01:08:21 +01:00
eda528b6d9 4.0.50 2024-02-10 04:34:23 +01:00
4e52240ae7 fix(core): update 2024-02-10 04:34:22 +01:00
61b6835b31 4.0.49 2024-02-10 04:22:55 +01:00
48c65d726b fix(core): update 2024-02-10 04:22:54 +01:00
8b61ec02a2 4.0.48 2024-02-09 16:39:37 +01:00
90c3a9b3b4 fix(core): update 2024-02-09 16:39:37 +01:00
f25fb72924 4.0.47 2023-10-15 12:26:47 +02:00
995f7772ef fix(core): update 2023-10-15 12:26:46 +02:00
60a528aad4 4.0.46 2023-10-15 12:26:02 +02:00
310d60a84e fix(core): update 2023-10-15 12:26:01 +02:00
5fd5fc501f 4.0.45 2023-10-13 17:37:28 +02:00
bf79856f67 fix(core): update 2023-10-13 17:37:27 +02:00
b1025faa62 4.0.44 2023-10-13 17:31:29 +02:00
f22ec7d654 fix(core): update 2023-10-13 17:31:28 +02:00
585e9fd4b3 4.0.43 2023-09-13 13:31:30 +02:00
537c54b5f3 fix(core): update 2023-09-13 13:31:30 +02:00
2f95b5d2ef 4.0.42 2023-05-08 16:46:00 +02:00
c1f22e0cb1 fix(core): update 2023-05-08 16:45:59 +02:00
5c430fddfc 4.0.41 2023-05-08 15:05:52 +02:00
f9478aa3c2 fix(core): update 2023-05-08 15:05:52 +02:00
055b85c7c4 4.0.40 2023-05-06 21:21:02 +02:00
5730d87b0c fix(core): update 2023-05-06 21:21:01 +02:00
610fda5f36 4.0.39 2023-05-06 17:23:46 +02:00
e206405d70 fix(core): update 2023-05-06 17:23:46 +02:00
fdc63b0f4f 4.0.38 2023-04-19 21:06:51 +02:00
4307bb68a7 fix(core): update 2023-04-19 21:06:50 +02:00
5c60875d46 4.0.37 2023-04-19 21:03:08 +02:00
0a5443c646 fix(core): update 2023-04-19 21:03:08 +02:00
f38274e325 4.0.36 2023-04-05 14:30:31 +02:00
800123586e fix(core): update 2023-04-05 14:30:29 +02:00
bf37575140 4.0.35 2023-04-05 13:28:59 +02:00
c7420aba79 fix(core): update 2023-04-05 13:28:58 +02:00
3770b7dada 4.0.34 2023-03-14 11:55:33 +01:00
5b00b5d7e9 fix(core): update 2023-03-14 11:55:32 +01:00
e7d2eb5cab 4.0.33 2023-03-09 01:22:44 +01:00
b38a59f91a fix(core): update 2023-03-09 01:22:43 +01:00
f92abdfb4e 4.0.32 2023-03-09 01:21:06 +01:00
8bc0506b60 fix(core): update 2023-03-09 01:21:06 +01:00
8a690e5065 4.0.31 2023-02-15 20:19:25 +01:00
50b401db9b fix(core): update 2023-02-15 20:19:24 +01:00
96e86993bf 4.0.30 2023-02-06 16:16:29 +01:00
485ed3630d fix(core): update 2023-02-06 16:16:28 +01:00
9a6ffcbc03 4.0.29 2023-01-12 20:58:34 +01:00
d39d9c2a86 fix(core): update 2023-01-12 20:58:34 +01:00
3c67658a0e 4.0.28 2022-11-20 10:28:14 +01:00
e9d4a1641f fix(core): update 2022-11-20 10:28:14 +01:00
2cec65f8a0 4.0.27 2022-10-31 13:59:04 +01:00
d20073a2b0 fix(core): update 2022-10-31 13:59:03 +01:00
4563ba2404 4.0.26 2022-10-24 12:58:24 +02:00
62eeeecfef fix(core): update 2022-10-24 12:58:24 +02:00
c48c6a2d79 4.0.25 2022-10-24 10:10:53 +02:00
25d2bb077e fix(business.IContract): added contract logic 2022-10-24 10:10:52 +02:00
fee1e3cb58 4.0.24 2022-10-15 11:00:11 +02:00
66732c5f81 fix(core): update 2022-10-15 11:00:10 +02:00
62f78f0866 4.0.23 2022-10-15 10:51:42 +02:00
6bb30e4e5b fix(core): update 2022-10-15 10:51:42 +02:00
b0de29a26a 4.0.22 2022-10-15 10:51:25 +02:00
3363a12082 fix(core): update 2022-10-15 10:51:24 +02:00
b63ca0fd23 4.0.21 2022-09-14 09:40:03 +02:00
c95fd41f59 fix(core): update 2022-09-14 09:40:03 +02:00
38e5bd39d9 4.0.20 2022-09-14 08:43:55 +02:00
f978af4b4f fix(core): update 2022-09-14 08:43:54 +02:00
6f35eed240 4.0.19 2022-08-17 17:28:04 +02:00
636177b119 fix(core): update 2022-08-17 17:28:03 +02:00
05bd86a0ce 4.0.18 2022-08-17 15:46:43 +02:00
d4cc9f7843 fix(core): update 2022-08-17 15:46:42 +02:00
45e8460474 4.0.17 2022-06-16 12:25:27 +02:00
15bbb6ee22 fix(core): update 2022-06-16 12:25:26 +02:00
7bf736ec75 4.0.16 2022-06-15 22:37:40 +02:00
a43113860a fix(core): update 2022-06-15 22:37:40 +02:00
76cff5259b 4.0.15 2022-06-15 21:55:57 +02:00
34b49123e1 fix(core): update 2022-06-15 21:55:57 +02:00
ecf1b945b5 4.0.14 2022-06-15 21:29:39 +02:00
dd3182536e fix(core): update 2022-06-15 21:29:39 +02:00
5e8ab7012f 4.0.13 2022-06-15 01:17:47 +02:00
12a0a1402d fix(core): update 2022-06-15 01:17:47 +02:00
79c334da3b 4.0.12 2022-06-15 01:13:52 +02:00
5c71e8c97d fix(core): update 2022-06-15 01:13:51 +02:00
48b01b43ed 4.0.11 2022-06-15 01:11:42 +02:00
97d7b3cb61 fix(core): update 2022-06-15 01:11:41 +02:00
82d080a4f7 4.0.10 2022-06-15 00:44:08 +02:00
0c7875ca0d fix(core): update 2022-06-15 00:44:08 +02:00
e03fe0db7c 4.0.9 2022-06-14 23:09:58 +02:00
aa74f5d2e4 fix(core): update 2022-06-14 23:09:57 +02:00
55d5e89bb8 4.0.8 2022-06-12 19:29:28 +02:00
5838948117 fix(core): update 2022-06-12 19:29:27 +02:00
e5e3562eef 4.0.7 2022-06-11 12:56:39 +02:00
d081dc4b98 fix(core): update 2022-06-11 12:56:39 +02:00
ee9efae18d 4.0.6 2022-06-10 13:38:20 +02:00
df39fcbe37 fix(core): update 2022-06-10 13:38:20 +02:00
4ad0b3745e 4.0.5 2022-06-10 13:35:00 +02:00
7f53cb2f7f fix(core): update 2022-06-10 13:35:00 +02:00
59ca7e6c93 4.0.4 2022-06-10 13:31:18 +02:00
ba0237f9a7 fix(core): update 2022-06-10 13:31:18 +02:00
1609a2b65c 4.0.3 2022-06-05 16:44:48 +02:00
09f1496cf4 fix(core): update 2022-06-05 16:44:48 +02:00
5d96d25176 4.0.2 2022-04-28 14:25:21 +02:00
87a303f7be fix(core): update 2022-04-28 14:25:21 +02:00
34cb1384ea 4.0.1 2022-04-28 12:20:28 +02:00
d672b9973e fix(core): update 2022-04-28 12:20:27 +02:00
d8e1609851 4.0.0 2022-04-28 12:18:27 +02:00
9302766e91 BREAKING CHANGE(core): switch to esm 2022-04-28 12:18:26 +02:00
318e9a2476 3.0.48 2022-01-14 06:12:27 +01:00
7434f8a6a4 fix(core): update 2022-01-14 06:12:27 +01:00
0f23c88a45 3.0.47 2022-01-14 05:59:06 +01:00
9ef38d21d7 fix(core): update 2022-01-14 05:59:05 +01:00
058c8cbfc2 3.0.46 2022-01-14 05:17:56 +01:00
9f1b5df136 fix(core): update 2022-01-14 05:17:55 +01:00
1862444da9 3.0.45 2022-01-14 04:54:35 +01:00
c69b595fd1 fix(core): update 2022-01-14 04:54:35 +01:00
c761c7aeae 3.0.44 2022-01-14 04:50:26 +01:00
bd17b4c94f fix(core): update 2022-01-14 04:50:25 +01:00
a71106dcae 3.0.43 2022-01-14 04:45:56 +01:00
32608912b6 fix(core): update 2022-01-14 04:45:56 +01:00
b3fbaff314 3.0.42 2022-01-14 04:32:03 +01:00
3a334418cc fix(core): update 2022-01-14 04:32:02 +01:00
759a19c731 3.0.41 2022-01-08 04:56:56 +01:00
0bb5ee7fac fix(core): update 2022-01-08 04:56:55 +01:00
d9327084a0 3.0.40 2022-01-08 04:20:36 +01:00
14af89dc8b fix(core): update 2022-01-08 04:20:35 +01:00
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
8342460c65 3.0.5 2020-02-15 15:16:52 +00:00
363142392b fix(core): update 2020-02-15 15:16:51 +00:00
390ee5edb7 3.0.4 2020-02-09 16:38:23 +00:00
35341c49ab fix(core): update 2020-02-09 16:38:22 +00:00
ba42658ee9 3.0.3 2020-01-19 10:20:40 +00:00
68687c2bca fix(core): update 2020-01-19 10:20:39 +00:00
2b76f54408 3.0.2 2020-01-19 10:20:19 +00:00
64561ab878 fix(core): update 2020-01-19 10:20:19 +00:00
8bb8574da7 3.0.1 2020-01-19 10:19:39 +00:00
6a5ecfcb19 fix(core): update 2020-01-19 10:19:38 +00:00
9a1c79c5de 3.0.0 2020-01-19 09:57:18 +00:00
1da9d73e5a BREAKING CHANGE(removed direct links in favour of directory style api): update 2020-01-19 09:57:17 +00:00
75173b1b37 2.0.13 2019-11-03 01:21:38 +01:00
e826047b9c fix(core): update 2019-11-03 01:21:38 +01:00
dd39b5d2ce 2.0.12 2019-10-21 17:29:11 +02:00
ab24929c6c fix(core): update 2019-10-21 17:29:10 +02:00
5da0b73a9d 2.0.11 2019-10-02 11:30:22 +02:00
73e10fc59b fix(core): update 2019-10-02 11:30:21 +02:00
a2e8b41042 2.0.10 2019-10-02 11:11:22 +02:00
a0ff9427cb fix(core): update 2019-10-02 11:11:22 +02:00
e37485adbd 2.0.9 2019-10-01 11:28:47 +02:00
e1592f322c fix(core): update 2019-10-01 11:28:47 +02:00
6604a58885 2.0.8 2019-10-01 11:25:12 +02:00
312b6d0e67 fix(core): update 2019-10-01 11:25:12 +02:00
3565360610 2.0.7 2019-09-30 19:24:04 +02:00
f71b131d8d fix(core): update 2019-09-30 19:24:04 +02:00
a1638ff3fd 2.0.6 2019-08-31 12:53:59 +02:00
6b56a605fa fix(core): update 2019-08-31 12:53:59 +02:00
2042e3c08a 2.0.5 2019-08-22 12:21:20 +02:00
ac15227a94 fix(core): update 2019-08-22 12:21:19 +02:00
85adcbdba4 2.0.4 2019-08-22 12:20:47 +02:00
0ed11287eb fix(core): update 2019-08-22 12:20:46 +02:00
6b88e2632c 2.0.3 2019-08-21 15:47:09 +02:00
d017888b3c fix(core): update 2019-08-21 15:47:09 +02:00
7ad6e75fb0 2.0.2 2019-08-21 15:46:48 +02:00
50f8dffe97 fix(core): update 2019-08-21 15:46:48 +02:00
716228fcd3 2.0.1 2019-07-08 14:04:12 +02:00
a0c97dea45 fix(core): update 2019-07-08 14:04:11 +02:00
784bc6d956 2.0.0 2018-09-05 21:45:17 +02:00
8aac756af2 BREAKING CHANGE(IVoucher): rename IExpense to IVoucher 2018-09-05 21:45:17 +02:00
63d4561980 1.0.50 2018-09-04 00:19:59 +02:00
8befdba50a fix(core): update 2018-09-04 00:19:59 +02:00
24a0fb1a8a 1.0.49 2018-09-03 11:28:54 +02:00
b4ac1242e4 fix(IExpense): update contactRef to be of type IContact 2018-09-03 11:28:53 +02:00
fb26eec4c6 1.0.48 2018-08-07 21:54:07 +02:00
3912ed3167 fix(update IExpense): update 2018-08-07 21:54:06 +02:00
0dd921675e 1.0.47 2018-08-07 21:49:11 +02:00
343b81ac39 1.0.46 2018-08-07 19:05:16 +02:00
f848b2ae7c fix(IExpense): add date and description for Expenses 2018-08-07 19:05:16 +02:00
8558addaad 1.0.45 2018-08-07 15:17:23 +02:00
99bcfcd44c fix(update currencies): update 2018-08-07 15:17:22 +02:00
78df7e07e0 1.0.44 2018-08-07 13:53:55 +02:00
a03b54e5a1 fix(ITransaction): added .description 2018-08-07 13:53:55 +02:00
d27647009f 1.0.43 2018-07-25 23:43:16 +02:00
fe2d5269c3 fix(build): update build step 2018-07-25 23:43:16 +02:00
cc19c6c215 1.0.42 2018-07-25 22:37:42 +02:00
6e8c1f7aff fix(core): update 2018-07-25 22:37:42 +02:00
63d1e0f65a 1.0.41 2018-07-25 22:33:51 +02:00
f296ce24aa fix(ci): fix build step 2018-07-25 22:33:50 +02:00
b38b691458 1.0.40 2018-07-25 22:13:20 +02:00
64d8a0b0f8 fix(core): update 2018-07-25 22:13:19 +02:00
594c2cfe40 1.0.39 2018-07-22 23:14:11 +02:00
ac94cb1630 fix( ITransaction): import structure 2018-07-22 23:14:11 +02:00
ddea031bbe 1.0.38 2018-07-22 23:01:56 +02:00
6132076aed fix(core): update 2018-07-22 23:01:56 +02:00
a5bd50850e 1.0.37 2018-07-22 23:01:40 +02:00
8df838935c fix(core): update 2018-07-22 23:01:40 +02:00
504dbdea1f 1.0.36 2018-07-22 19:50:47 +02:00
c8d2095942 fix(ICheckingAccount): update 2018-07-22 19:50:47 +02:00
96f525ef0b 1.0.35 2018-07-22 19:28:11 +02:00
7eb2ce7fe3 fix(core): import structure 2018-07-22 19:28:11 +02:00
d67dc9ab44 1.0.34 2018-07-22 18:20:23 +02:00
c193fd4c59 fix(ci): add better docs 2018-07-22 18:20:22 +02:00
86 changed files with 11731 additions and 412 deletions

20
.gitignore vendored
View File

@ -1,4 +1,20 @@
.nogit/
# artifacts
coverage/
pages/
public/
node_modules/
pages/
# installs
node_modules/
# caches
.yarn/
.cache/
.rpt2_cache
# builds
dist/
dist_*/
# custom

View File

@ -1,141 +0,0 @@
# gitzone standard
image: hosttoday/ht-docker-node:npmci
cache:
paths:
- .npmci_cache/
key: "$CI_BUILD_STAGE"
stages:
- security
- test
- release
- metadata
# ====================
# security stage
# ====================
mirror:
stage: security
script:
- npmci git mirror
tags:
- docker
- notpriv
snyk:
stage: security
script:
- npmci command npm install -g snyk
- npmci command npm install --ignore-scripts
- npmci command snyk test
tags:
- docker
- notpriv
# ====================
# test stage
# ====================
testLEGACY:
stage: test
script:
- npmci node install legacy
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
allow_failure: true
testLTS:
stage: test
script:
- npmci node install lts
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
testSTABLE:
stage: test
script:
- npmci node install stable
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
release:
stage: release
script:
- npmci node install stable
- npmci npm publish
only:
- tags
tags:
- docker
- notpriv
# ====================
# metadata stage
# ====================
codequality:
stage: metadata
image: docker:stable
allow_failure: true
services:
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
paths: [codeclimate.json]
tags:
- docker
- priv
trigger:
stage: metadata
script:
- npmci trigger
only:
- tags
tags:
- docker
- notpriv
pages:
image: hosttoday/ht-docker-node:npmci
stage: metadata
script:
- npmci command npm install -g npmpage
- npmci command npmpage
tags:
- docker
- notpriv
only:
- tags
artifacts:
expire_in: 1 week
paths:
- public
allow_failure: true
windowsCompatibility:
image: stefanscherer/node-windows:10-build-tools
stage: metadata
script:
- npm install & npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- windows
allow_failure: true

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

@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "npm test",
"name": "Run npm test",
"request": "launch",
"type": "node-terminal"
}
]
}

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

@ -1,62 +0,0 @@
# tsclass
common classes for TypeScript
## Availabililty
[![npm](https://tsclass.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/tsclass)
[![git](https://tsclass.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/tsclass/tsclass)
[![git](https://tsclass.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/tsclass/tsclass)
[![docs](https://tsclass.gitlab.io/assets/repo-button-docs.svg)](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.svg)](https://www.npmjs.com/package/tsclass)
[![Dependency Status](https://david-dm.org/tsclass/tsclass.svg)](https://david-dm.org/tsclass/tsclass)
[![bitHound Dependencies](https://www.bithound.io/github/tsclass/tsclass/badges/dependencies.svg)](https://www.bithound.io/github/tsclass/tsclass/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/tsclass/tsclass/badges/code.svg)](https://www.bithound.io/github/tsclass/tsclass)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage
Use TypeScript for best in class instellisense.
tsclass exposes many commonly used objects as interface to implement (-> extends keyword) by individual implementations.
They come complete with best in class intellisense and are easy to require.
```javascript
import { IInvoice } from 'tsclass';
class myOwnInvoice implements IInvoice {
constructor() {
super(); // you need to call super() in the constructor
}
}
```
### Time/Date
- Date
- Time
### Publications/Websites/Blogs
- Article
- Author
### Finance
- Invoice
> The modules in bold letters exist as own modules and can be used seperately
For further information read the linked docs at the top of this README.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
[![repo-footer](https://tsclass.gitlab.io/assets/repo-footer.svg)](https://push.rocks)

290
changelog.md Normal file
View File

@ -0,0 +1,290 @@
# Changelog
## 2025-03-20 - 6.1.2 - fix(business/address)
Improve documentation comments for address interface properties
- Added detailed comments for the 'coordinates' property to explain its usage
- Added detailed comments for the 'eAddress' property to describe the storage of electronic contact information
## 2025-03-20 - 6.1.1 - fix(finance)
Add clarifying comment for the buyerReference field in the invoice interface
- Document buyerReference as an optional field to help buyers identify the invoice
## 2025-03-20 - 6.1.0 - feat(business/address)
Add optional countryCode and coordinates properties to IAddress interface
- Extend address interface with an optional countryCode property
- Add optional coordinates object with lat and lng for geographic metadata
## 2025-03-19 - 6.0.1 - fix(business)
Remove exports for 'company' and 'person' modules from the business index
- Removed export statement for './company.js' in ts/business/index.ts
- Removed export statement for './person.js' in ts/business/index.ts
## 2025-03-19 - 6.0.0 - BREAKING CHANGE(TContact)
Reaffirm project metadata and documentation consistency
- Verified commitinfo data, package.json, and README content for correctness
- No functional code changes were introduced
## 2025-03-11 - 5.0.0 - BREAKING CHANGE(network)
Update reverse proxy configuration to support multiple destination IPs and ports
- Replaced 'destinationIp' and 'destinationPort' with 'destinationIps' (array) and 'destinationPorts' (array) to enable multiple destinations
## 2025-03-10 - 4.4.4 - fix(business)
Fixes typo in ILetter interface
- Removed unused property 'letterData' from ILetter content structure.
## 2025-03-07 - 4.4.3 - fix(network)
Fix destinationPort type for IReverseProxyConfig
- Corrected the type of destinationPort in IReverseProxyConfig from 'string' to 'number'.
## 2025-03-07 - 4.4.2 - fix(dependencies)
Updated package dependencies for improved stability and performance.
- Updated 'type-fest' dependency to version ^4.37.0.
- Updated '@git.zone/tsbuild' to version ^2.2.6.
- Updated '@git.zone/tstest' to version ^1.0.96.
- Updated '@push.rocks/tapbundle' to ^5.5.6.
- Updated '@types/node' to ^22.13.9.
## 2025-03-07 - 4.4.1 - fix(business)
Fix missing letterData property in ILetter interface.
- Added missing letterData property to the content structure of the ILetter interface.
- Ensured consistency and completeness of ILetter interface for proper data handling of letter components.
## 2025-01-11 - 4.4.0 - feat(website)
Add ILinkBlock interface for managing groups of links
- Introduced a new interface ILinkBlock in ts/website/linkblock.ts for managing grouped links.
- Exported ILinkBlock from ts/website/index.ts to make it available for external usage.
## 2025-01-10 - 4.3.0 - feat(website)
Added new ILink interface to the website module.
- Introduced ILink interface with properties like url, text, description, icon, and target.
- Updated ts/website/index.ts to export the new link interface.
## 2024-12-11 - 4.2.0 - feat(dependencies)
Update dependencies and enhance code documentation
- Updated 'type-fest' dependency from ^4.20.1 to ^4.30.0 for improved type definitions.
- Updated development dependencies for better development experience.
- Enhanced code documentation for the ICommitInfo interface with detailed JSDoc comments.
## 2024-07-26 - 4.1.2 - fix(finance)
Updated IInvoice interface to support various currencies.
- Changed the 'currency' field in the IInvoice interface from fixed 'EUR' to type TCurrency.
## 2024-07-26 - 4.1.1 - fix(finance)
Fix IInvoice interface to correctly include the currency field
- Corrected the IInvoice interface definition in `ts/finance/invoice.ts`
- Moved `position` field to the top of the IInvoiceItem interface
## 2024-07-26 - 4.1.0 - feat(finance)
Added notes field to IInvoice interface
- Expanded IInvoice interface to include notes field allowing additional notes for invoices.
## 2024-07-24 - 4.0.65 - fix(finance)
Added 'type' property to IInvoice interface
- Added 'type' property to the IInvoice interface in the finance domain.
- This property indicates whether the invoice is a 'creditnote' or 'debitnote'.
## 2024-07-18 - 4.0.64 - fix(business)
Add relationship field to contact interface
- Added 'relationship' field to the IContact interface in ts/business/contact.ts
## 2024-06-28 - 4.0.63 - fix(saas)
Refactor IProduct to separate IProductFeature interface
- Updated @types/node from 20.14.8 to 20.14.9
- Refactored IProduct's features property to a standalone IProductFeature interface in saas/product.ts
## 2024-06-24 - 4.0.62 - fix(dependencies)
Updated dependencies to latest versions
- Updated 'dependencies > type-fest' to version ^4.20.1
- Updated 'devDependencies > @git.zone/tsbuild' to version ^2.1.82
- Updated 'devDependencies > @git.zone/tsrun' to version ^1.2.49
- Updated 'devDependencies > @git.zone/tstest' to version ^1.0.90
- Updated 'devDependencies > @push.rocks/tapbundle' to version ^5.0.23
- Updated 'devDependencies > @types/node' to version ^20.14.8
## 2024-06-24 - 4.0.61 - fix(dependencies)
Update dependencies to latest versions
- Updated 'dependencies > type-fest' to version ^4.20.1
- Updated 'devDependencies > @git.zone/tsbuild' to version ^2.1.82
- Updated 'devDependencies > @git.zone/tsrun' to version ^1.2.49
- Updated 'devDependencies > @git.zone/tstest' to version ^1.0.90
- Updated 'devDependencies > @push.rocks/tapbundle' to version ^5.0.23
- Updated 'devDependencies > @types/node' to version ^20.14.8
## 2024-06-19 - 4.0.59 - core
Fixes and updates to core functionalities.
- Multiple updates and fixes applied to the core codebase
## 2024-06-17 - 4.0.59 to 4.0.56 - core
Routine updates and fixes to the core.
- Multiple core updates and fixes
## 2024-06-08 - 4.0.54 - core
Core fixes applied.
- Various fixes in the core functionality
## 2024-04-17 - 4.0.53 - core
Core functionality updated with fixes.
- Updates and fixes to core features
## 2024-04-16 - 4.0.52 - documentation
Documentation update.
- Documentation improved and updated
## 2024-02-17 - 4.0.51 - core
Fixes for core applied.
- Multiple core fixes implemented
## 2024-02-10 - 4.0.48 - core
Routine core updates and fixes.
- Several updates and fixes for core functionality
## 2023-10-15 - 4.0.46 - core
Core updates.
- Core functionalities updated and fixes applied
## 2023-10-13 - 4.0.44 - core
Routine fixes for core functionalities.
- Various updates to core functionalities
## 2023-09-13 - 4.0.43 - core
Core updates and fixes.
- Several core updates and fixes
## 2023-05-08 - 4.0.41 - core
Core updates.
- Core functionalities updated
## 2023-05-06 - 4.0.39 - core
Core updates and fixes.
- Multiple core updates and fixes
## 2023-04-19 - 4.0.37 - core
Routine core updates.
- Core fixes and updates applied
## 2023-04-05 - 4.0.35 - core
Core functionalities updated.
- Core functionalities updated and fixes applied
## 2023-03-14 - 4.0.33 - core
Routine core fixes and updates.
- Core functionalities updated
## 2023-03-09 - 4.0.32 - core
Routine maintenance for core.
- Core updates and fixes
## 2023-02-15 - 4.0.31 - core
Core updates applied.
- Fixes and updates to core functionalities
## 2023-02-06 - 4.0.30 - core
Routine fixes.
- Multiple core updates and fixes
## 2023-01-12 - 4.0.29 - core
Core updates applied.
- Fixes and updates to core functionalities
## 2022-11-20 - 4.0.27 - core
Routine core fixes.
- Core functionalities updated and fixed
## 2022-10-31 - 4.0.26 - core
Routine maintenance and fixes.
- Core functionalities updated
## 2022-10-24 - 4.0.24 - business.IContract
Added business logic for contracts.
- Added IContract logic to business module
## 2022-09-14 - 4.0.21 - core
Routine core updates and fixes.
- Core functionalities updated and fixed
## 2022-08-17 - 4.0.18 - core
Routine maintenance for core.
- Core functionalities updated and fixes applied
## 2022-06-16 - 4.0.17 - core
Routine fixes.
- Core functionalities updated
## 2022-04-28 - 4.0.0 - core
Major update with significant core changes.
- Switch to ESM format
- Multiple core functionalities updated and fixed

View File

View File

View File

@ -1,8 +1,35 @@
{
"npmci": {
"npmGlobalTools": [
"npmts"
],
"npmGlobalTools": [],
"npmAccessLevel": "public"
},
"gitzone": {
"projectType": "npm",
"module": {
"githost": "code.foss.global",
"gitscope": "tsclass",
"gitrepo": "tsclass",
"description": "Provides TypeScript definitions for various business, financial, networking, content, and other common classes.",
"npmPackagename": "@tsclass/tsclass",
"license": "MIT",
"keywords": [
"TypeScript",
"Classes",
"Interfaces",
"Code Quality",
"Networking",
"Business",
"Finance",
"Content Management",
"Containerization",
"Database",
"Event Management",
"Authentication",
"Web Development"
]
}
},
"tsdoc": {
"legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
}
}

108
package-lock.json generated
View File

@ -1,108 +0,0 @@
{
"name": "@tsclass/tsclass",
"version": "1.0.33",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@gitzone/tsrun": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@gitzone/tsrun/-/tsrun-1.0.5.tgz",
"integrity": "sha512-zSiRnlvNAlBmrqknwH9B0gIRx7IEegPzmN+DZ4yN3f+L62WlVbKyPLeeV09SKE8BFiGo+0VIGiQW3EV/9mXMfw==",
"dev": true,
"requires": {
"ts-node": "^6.1.0",
"typescript": "^2.9.1"
}
},
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
"dev": true
},
"buffer-from": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
"integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
"dev": true
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
"make-error": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
"integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==",
"dev": true
},
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
}
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"source-map-support": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz",
"integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
"ts-node": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-6.1.1.tgz",
"integrity": "sha512-79FnymLGDBd/nXoiak1L6w6fd9Zz9Ge/x8/Aglaeh31KkqRLDzbfT1vBGlO5dqc76WzufTlW4IYl7e01CVUF5A==",
"dev": true,
"requires": {
"arrify": "^1.0.0",
"diff": "^3.1.0",
"make-error": "^1.1.1",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
"source-map-support": "^0.5.6",
"yn": "^2.0.0"
}
},
"typescript": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
"integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
"dev": true
},
"yn": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
"integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
"dev": true
}
}
}

View File

@ -1,13 +1,15 @@
{
"name": "@tsclass/tsclass",
"version": "1.0.33",
"version": "6.1.2",
"private": false,
"description": "common classes for TypeScript",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"description": "Provides TypeScript definitions for various business, financial, networking, content, and other common classes.",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
"type": "module",
"scripts": {
"test": "tsrun test/test.ts",
"build": "npmts --notest"
"test": "tstest test/",
"build": "(tsbuild --web)",
"buildDocs": "tsdoc"
},
"repository": {
"type": "git",
@ -15,7 +17,18 @@
},
"keywords": [
"TypeScript",
"Classes"
"Classes",
"Interfaces",
"Code Quality",
"Networking",
"Business",
"Finance",
"Content Management",
"Containerization",
"Database",
"Event Management",
"Authentication",
"Web Development"
],
"author": "Lossless GmbH",
"license": "MIT",
@ -23,8 +36,29 @@
"url": "https://github.com/tsclass/tsclass/issues"
},
"homepage": "https://github.com/tsclass/tsclass#readme",
"dependencies": {},
"dependencies": {
"type-fest": "^4.37.0"
},
"devDependencies": {
"@gitzone/tsrun": "^1.0.5"
}
"@git.zone/tsbuild": "^2.2.6",
"@git.zone/tsrun": "^1.3.3",
"@git.zone/tstest": "^1.0.96",
"@push.rocks/tapbundle": "^5.5.6",
"@types/node": "^22.13.9"
},
"files": [
"ts/**/*",
"ts_web/**/*",
"dist/**/*",
"dist_*/**/*",
"dist_ts/**/*",
"dist_ts_web/**/*",
"assets/**/*",
"cli.js",
"npmextra.json",
"readme.md"
],
"browserslist": [
"last 1 chrome versions"
]
}

10226
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

1
readme.hints.md Normal file
View File

@ -0,0 +1 @@

144
readme.md Normal file
View File

@ -0,0 +1,144 @@
# @tsclass/tsclass
common classes for TypeScript
## Install
To install `@tsclass/tsclass`, run the following command in your project directory:
```bash
npm install @tsclass/tsclass
```
This will add `@tsclass/tsclass` to your project's dependencies.
## Usage
`@tsclass/tsclass` offers a comprehensive TypeScript library that provides common classes and interfaces for various domains, including business, finance, content, networking, and more. The package utilizes ESM syntax and is intended for use with TypeScript for optimal developer experience.
### Getting Started
First, ensure that you are using ES Modules in your TypeScript project by having `"type": "module"` in your `package.json`, and install the package as described above.
### Importing Classes and Interfaces
You can import classes and interfaces from `@tsclass/tsclass` as follows:
```typescript
import { business, finance, content } from '@tsclass/tsclass';
```
### Business Domain
The business domain includes classes for managing contacts, companies, and projects. Here is how you can work with a company and contact classes:
```typescript
import { business } from '@tsclass/tsclass';
const companyContact: business.TContact = {
type: 'company',
name: 'Example Company',
address: {
streetName: 'Main St',
houseNumber: '123',
postalCode: '12345',
city: 'Example City',
country: 'Exland'
},
description: 'An example company for demonstration purposes.',
email: 'contact@example.com'
};
const exampleCompany: business.TCompany = {
name: 'Example Company',
foundedDate: {
day: 1,
month: 1,
year: 2020
},
status: 'active',
contact: companyContact
};
```
### Finance Domain
The finance domain provides interfaces for working with invoices, transactions, and payment information. Heres how you can define an invoice:
```typescript
import { finance } from '@tsclass/tsclass';
const exampleInvoice: finance.IInvoice = {
id: 'INV12345',
billedBy: companyContact,
billedTo: companyContact, // In a real scenario, this should be a different contact.
status: 'draft',
items: [
{
name: 'Product 1',
unitType: 'Item',
unitQuantity: 2,
unitNetPrice: 50,
vatPercentage: 20,
currency: 'EUR'
}
],
dueInDays: 30,
reverseCharge: false
};
```
### Network Domain
Networking interfaces, such as those for managing SSH keys or network nodes, are available under the `network` namespace:
```typescript
import { network } from '@tsclass/tsclass';
const sshKey: network.ISshKey = {
keyName: 'example-ssh-key',
public: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...'
// Private key is typically kept secret and not included in source code
};
```
### Storage Domain
Interfaces for storage management, such as S3 descriptors, can be found under the `storage` namespace:
```typescript
import { storage } from '@tsclass/tsclass';
const s3Descriptor: storage.IS3Descriptor = {
endpoint: 's3.example.com',
accessKey: 'AKIAIOSFODNN7EXAMPLE',
accessSecret: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
useSsl: true
};
```
### Content and More
`@tsclass/tsclass` also provides classes for the content domain (e.g., articles, authors) and many other utilities across different fields. The examples above only scratch the surface of what `@tsclass/tsclass` offers. Depending on your project's needs, explore other domains and interfaces provided by the library.
Remember, while `@tsclass/tsclass` aims to streamline the TypeScript development process by providing ready-to-use classes and interfaces, it is crucial to adapt these examples to your specific project requirements, ensuring that all aspects, such as security (especially for networking and storage operations), are adequately handled.
For a deeper look into all available classes and interfaces, refer to the TypeScript definitions in the package. This will also give you insight into additional functionalities such as content management, events, authentication, and more detailed use cases within each domain.
## License and Legal Information
This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository.
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
### Trademarks
This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.
### Company Information
Task Venture Capital GmbH
Registered at District court Bremen HRB 35230 HB, Germany
For any legal inquiries or if you require further information, please contact us via email at hello@task.vc.
By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.

9
test/test.both.ts Normal file
View File

@ -0,0 +1,9 @@
import { tap, expect } from '@push.rocks/tapbundle';
import * as tsclass from '../ts/index.js';
tap.test('should assign a correct type', async () => {
let contact: tsclass.business.TContact;
});
tap.start();

View File

@ -1,3 +0,0 @@
import * as tsclass from '../ts/index';
let contact: tsclass.IContact;

8
ts/00_commitinfo_data.ts Normal file
View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @push.rocks/commitinfo
*/
export const commitinfo = {
name: '@tsclass/tsclass',
version: '6.1.2',
description: 'Provides TypeScript definitions for various business, financial, networking, content, and other common classes.'
}

View File

@ -0,0 +1,5 @@
import { type IInvoice } from "../finance/invoice.js";
export function createLetterFromInvoice(invoiceArg: IInvoice) {
}

View File

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

View File

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

View File

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

View File

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

View File

@ -5,4 +5,22 @@ export interface IAddress {
postalCode: string;
city: string;
country: string;
countryCode?: string;
/**
* allows storage of coordinates for this address
* useful for countries where addresses are not unique
*/
coordinates?: {
lat: number;
lng: number;
};
/**
* allows storage of electronic means to reach this address
* can be phone, email
*/
eAddress?: {
email?: string;
phone?: string;
peppolId?: string;
};
}

View File

@ -1,17 +0,0 @@
import { IContact } from '../index';
import { IDate } from '../index';
/**
* describes a company's lifecycle state
*/
export type TCompanyStatus = 'planed' | 'founding' | 'active' | 'liquidation' | 'closed';
/**
* describes a company
*/
export interface ICompany {
name: string;
foundedDate: IDate;
closedDate: IDate;
status: TCompanyStatus;
}

View File

@ -1,31 +1,60 @@
import { IAddress } from '../index';
import { finance, general } from "../index.js";
import { business } from "../index.js";
export type TContactSalutation = 'Mr' | 'Ms' | 'Mrs';
export type TSocialLinks = {
type: "facebook" | "twitter" | "linkedin" | string;
url: string;
};
export type TContactType = 'person' | 'company';
export type TRegistrationDetails = {
vatId: string;
registrationId: string;
registrationName: string;
};
export type TContactTitle = 'Doctor' | 'Professor';
export interface IContact {
// =======
// general
// =======
salutation?: TContactSalutation;
type: TContactType;
title?: TContactTitle;
type TContactEnvelope<TYPE extends string, FIELDS> = {
type: TYPE;
name: string;
surname?: string;
legalEntity?: string;
address: IAddress;
address: business.IAddress;
description: string;
legalEntity?: string;
customerNumber?: string;
relationship?: "customer" | "supplier" | "partner" | "employee" | "other";
email?: string;
phone?: string;
fax?: string;
// =========
// financial
// =========
vatId?: string;
bankAccountNumber?: string;
}
logoUrl?: string;
website?: string;
socials?: TSocialLinks[];
sepaConnection?: finance.ISepaConnection;
} & FIELDS;
export type TPerson = TContactEnvelope<
"person",
{
surname: string;
salutation: "Mr" | "Ms" | "Mrs";
sex: "male" | "female" | "other";
title: "Doctor" | "Professor";
registrationDetails?: TRegistrationDetails;
legalProxyFor?: {
type: "self" | "other";
contact?: TContact;
};
}
>;
export type TCompany = TContactEnvelope<
"company",
{
registrationDetails: TRegistrationDetails;
foundedDate: general.IDate;
closedDate: general.IDate;
status: "planned" | "founding" | "active" | "liquidation" | "closed";
}
>;
export type TContact = TPerson | TCompany;

20
ts/business/contract.ts Normal file
View File

@ -0,0 +1,20 @@
import * as database from "../database/index.js";
import type { TPerson } from "./index.js";
export interface IContract {
parties: {
signingOrder: number;
referencedAs: string;
person: TPerson;
role: "signer" | "cc";
signature: {
given: boolean;
timestamp?: number;
location?: string;
ip?: string;
verifications?: [];
};
}[];
contractTextMarkdown: string;
actions: database.IObjectAction[];
}

6
ts/business/index.ts Normal file
View File

@ -0,0 +1,6 @@
export * from './address.js';
export * from './contact.js';
export * from './job.js';
export * from './letter.js';
export * from './pdf.js';
export * from './project.js';

17
ts/business/job.ts Normal file
View File

@ -0,0 +1,17 @@
import * as finance from "../finance/index.js";
import { type TContact } from "./contact.js";
export class IJob {
type: "contract" | "employment";
techTags?: string[];
qualificationTags?: string[];
languages?: {
name: string;
level: "basic" | "intermediate" | "advanced" | "native";
}[];
name: string;
description: string;
monthlyTotal: number;
currency: finance.TCurrency;
from: TContact;
contact: TContact;
}

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

@ -0,0 +1,35 @@
import * as business from "./index.js";
import * as finance from "../finance/index.js";
import * as database from "../database/index.js";
export interface ILetter {
versionInfo: {
type: "draft" | "final";
/**
* should follow semVer
*/
version: string;
};
incidenceId: string;
type: "invoice" | "notice" | "warning" | "verification" | "contract";
date: number;
from: business.TContact;
to: business.TContact;
legalContact: business.TContact;
logoUrl: string;
subject: string;
accentColor?: string;
needsCoverSheet: boolean;
content: {
textData: string[];
invoiceData?: finance.IInvoice;
contractData?: {
id: string;
contractDate: number;
};
timesheetData: string;
};
pdf?: business.IPdf;
pdfAttachments: business.IPdf[];
language: string;
objectActions: database.IObjectAction[];
}

8
ts/business/pdf.ts Normal file
View File

@ -0,0 +1,8 @@
export interface IPdf {
name: string;
id: string;
metadata: {
textExtraction: string;
};
buffer: Uint8Array;
}

18
ts/business/project.ts Normal file
View File

@ -0,0 +1,18 @@
export interface IProject {
active: boolean;
category: 'SaaS' | 'IaaS' | 'Media' | 'Blockchain' | 'Open Source' | 'Consulting' | 'internal' | 'partner';
branch?: null;
branchId? : string;
domain: string;
redirectDomains: string[];
gitlab: string;
name: string;
social: {
facebook?: string;
gitlab?: string;
github?: string;
twitter?: string;
};
tagLine: string;
tags: string[];
}

View File

@ -1 +0,0 @@
export type TDnsRecord = 'A' | 'AAAA' | 'CNAME' | 'TXT' | 'SRV' | 'LOC' | 'MX' | 'NS' | 'SPF';

20
ts/code/commitinfo.ts Normal file
View File

@ -0,0 +1,20 @@
export interface ICommitInfo {
/**
* the name of the project
*/
name: string;
/**
* the current version of the project
*/
version: string;
/**
* the description of the project
*/
description: string;
/**
* the changelog of the project
*/
changelog?: string[];
}

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

@ -0,0 +1,2 @@
export * from './commitinfo.js';
export * from './statusobject.js';

13
ts/code/statusobject.ts Normal file
View File

@ -0,0 +1,13 @@
export type TStatus = 'ok' | 'partly_ok' | 'not_ok';
export interface IStatusObject {
id?: string;
name: string;
combinedStatus?: TStatus;
combinedStatusText: string;
details: Array<{
name: string;
value: string;
status: TStatus;
statusText: 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.js';
export * from './volumemount.js';

View File

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

View File

@ -1,6 +1,24 @@
import { IAuthor } from '../index';
import { content } from '../index.js';
/**
* a general content article:
* * can be news
* * can be a productdescription,
* * can be anything that has text with a title
*/
export interface IArticle<T = any> {
/**
* the main url of an article
*/
url?: string;
/**
* the mainimage of the article
*/
featuredImageUrl?: string;
referenceObject?: T;
export interface IArticle {
/**
* the title of an article
*/
@ -9,13 +27,18 @@ export interface IArticle {
/**
* the Author of an article
*/
author: IAuthor;
author: content.IAuthor;
/**
* the content of an article
*/
content: string;
/**
* a timestamp for when the article was written
*/
timestamp: number;
/**
* the tags of an article
*/

View File

@ -1,6 +1,8 @@
import { IDate } from '../index';
import { IArticle } from '../index';
import { general, content } from '../index.js';
/**
* answers the question "Who wrote that?"
*/
export interface IAuthor {
/**
* the first name of an author
@ -15,10 +17,10 @@ export interface IAuthor {
/**
* the birthday of an author
*/
birthday: IDate;
birthday: general.IDate;
/**
* articles of an author
*/
articles: IArticle[];
articles: content.IArticle[];
}

View File

@ -0,0 +1,10 @@
import { type IArticle } from './article.js';
/**
* a set of articles that together form a body of documentation
*/
export interface IDocumentationSet {
id: string;
creationTimestamp: number;
articles: IArticle[];
}

3
ts/content/index.ts Normal file
View File

@ -0,0 +1,3 @@
export * from './article.js';
export * from './author.js';
export * from './documentationset.js';

4
ts/database/index.ts Normal file
View File

@ -0,0 +1,4 @@
export * from './mongodescriptor.js';
export * from './objectaction.js';
export * from './objectstatus.js';
export * from './wrappeddata.js';

View File

@ -0,0 +1,25 @@
/**
* contains the complete info for how to connect to a mongodb database.
*/
export interface IMongoDescriptor {
/**
* the URL to connect to
*/
mongoDbUrl: string;
/**
* the db to use for the project
*/
mongoDbName?: string;
/**
* a username to use to connect to the database
*/
mongoDbUser?: string;
/**
* an optional password that will be replace <PASSWORD> in the connection string
*/
mongoDbPass?: string;
}

View File

@ -0,0 +1,8 @@
export interface IObjectAction {
timestamp: number;
name: string;
userId: string;
data: any;
message: string;
privateMessage: string;
}

View File

@ -0,0 +1,7 @@
export interface IObjectStatus {
current: 'active' | 'inactive' | 'hidden' | 'markedForDeletion';
scheduledDeletion: number;
justForLooks: {
scheduledDeletionIso: string;
};
}

View File

@ -0,0 +1,3 @@
export interface IWrappedData<T> {
data: T;
}

View File

@ -0,0 +1,10 @@
/**
* a contract event describes any kind of sale
*/
export interface IEvent_Contract {
contractId: string;
date: number;
enddate: number;
product: string;
type: 'single purchase' | 'subscription' | 'canceled';
}

6
ts/events/index.ts Normal file
View File

@ -0,0 +1,6 @@
export * from './contractevent.js';
export * from './moneyevent.js';
export * from './releaseevent.js';
export * from './requestevent.js';
export * from './sessionevent.js';
export * from './userevent.js';

6
ts/events/moneyevent.ts Normal file
View File

@ -0,0 +1,6 @@
export interface IEvent_Money {
transferId: string;
valueInEuro: number;
channel: 'sepa' | 'creditcard' | 'paypal' | 'cardano';
direction: 'internal' | 'outgoing' | 'incoming';
}

View File

@ -0,0 +1,6 @@
export interface IEvent_Release {
releaseType: 'Apple App Store' | 'Google Play' | 'npm package' | 'dockerimage';
dockerImageUrl: string;
npmPackageUrl: string;
appleAppStoreIdentifier: string;
}

View File

@ -0,0 +1,5 @@
export interface IEvent_Request {
httpMethod: string;
httpRoute: string;
durationToResponse: number;
}

View File

@ -0,0 +1,4 @@
export interface IEvent_Session {
userID: string;
sessionType: 'new' | 'reactivated';
}

1
ts/events/userevent.ts Normal file
View File

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

View File

@ -1,8 +1,7 @@
import { TCurrency } from "./currency";
import { IPayment } from "./payment";
import { finance } from '../index.js';
export interface ICheckingAccount {
name: string;
currency: TCurrency;
payment: IPayment[];
}
currency: finance.TCurrency;
transactions?: finance.ITransaction[];
}

View File

@ -1 +1,172 @@
export type TCurrency = 'eur' | 'usd' | 'sek'
export type TCurrency =
| 'AED'
| 'AFN'
| 'ALL'
| 'AMD'
| 'ANG'
| 'AOA'
| 'ARS'
| 'AUD'
| 'AWG'
| 'AZN'
| 'BAM'
| 'BBD'
| 'BDT'
| 'BGN'
| 'BHD'
| 'BIF'
| 'BMD'
| 'BND'
| 'BOB'
| 'BRL'
| 'BSD'
| 'BTC'
| 'BTN'
| 'BWP'
| 'BYR'
| 'BZD'
| 'CAD'
| 'CDF'
| 'CHF'
| 'CLF'
| 'CLP'
| 'CNY'
| 'COP'
| 'CRC'
| 'CUC'
| 'CUP'
| 'CVE'
| 'CZK'
| 'DJF'
| 'DKK'
| 'DOP'
| 'DZD'
| 'EEK'
| 'EGP'
| 'ERN'
| 'ETB'
| 'EUR'
| 'FJD'
| 'FKP'
| 'GBP'
| 'GEL'
| 'GGP'
| 'GHS'
| 'GIP'
| 'GMD'
| 'GNF'
| 'GTQ'
| 'GYD'
| 'HKD'
| 'HNL'
| 'HRK'
| 'HTG'
| 'HUF'
| 'IDR'
| 'ILS'
| 'IMP'
| 'INR'
| 'IQD'
| 'IRR'
| 'ISK'
| 'JEP'
| 'JMD'
| 'JOD'
| 'JPY'
| 'KES'
| 'KGS'
| 'KHR'
| 'KMF'
| 'KPW'
| 'KRW'
| 'KWD'
| 'KYD'
| 'KZT'
| 'LAK'
| 'LBP'
| 'LKR'
| 'LRD'
| 'LSL'
| 'LTL'
| 'LVL'
| 'LYD'
| 'MAD'
| 'MDL'
| 'MGA'
| 'MKD'
| 'MMK'
| 'MNT'
| 'MOP'
| 'MRO'
| 'MTL'
| 'MUR'
| 'MVR'
| 'MWK'
| 'MXN'
| 'MYR'
| 'MZN'
| 'NAD'
| 'NGN'
| 'NIO'
| 'NOK'
| 'NPR'
| 'NZD'
| 'OMR'
| 'PAB'
| 'PEN'
| 'PGK'
| 'PHP'
| 'PKR'
| 'PLN'
| 'PYG'
| 'QAR'
| 'RON'
| 'RSD'
| 'RUB'
| 'RWF'
| 'SAR'
| 'SBD'
| 'SCR'
| 'SDG'
| 'SEK'
| 'SGD'
| 'SHP'
| 'SLL'
| 'SOS'
| 'SRD'
| 'STD'
| 'SVC'
| 'SYP'
| 'SZL'
| 'THB'
| 'TJS'
| 'TMT'
| 'TND'
| 'TOP'
| 'TRY'
| 'TTD'
| 'TWD'
| 'TZS'
| 'UAH'
| 'UGX'
| 'USD'
| 'UYU'
| 'UZS'
| 'VEF'
| 'VND'
| 'VUV'
| 'WST'
| 'XAF'
| 'XAG'
| 'XAU'
| 'XCD'
| 'XDR'
| 'XOF'
| 'XPD'
| 'XPF'
| 'XPT'
| 'YER'
| 'ZAR'
| 'ZMK'
| 'ZMW'
| 'ZWL';

View File

@ -1,14 +1,17 @@
import { IInvoice } from './invoice';
import { IContact } from '../business/contact';
import { business } from '../index.js';
export interface IExpenseItem {
description: string;
asset?: boolean;
accountingType?: any;
amount: number;
taxPercentage: number;
}
export interface IExpense {
voucherFile?: any
export interface IVoucher {
voucherFile?: any;
date: Date;
description: string;
expenseItems: IExpenseItem[];
contactRef: string;
accountRef: string;
contactRef: business.TContact;
}

6
ts/finance/index.ts Normal file
View File

@ -0,0 +1,6 @@
export * from './checkingaccount.js';
export * from './currency.js';
export * from './expense.js';
export * from './invoice.js';
export * from './payment.js';
export * from './transaction.js';

View File

@ -1,17 +1,46 @@
import { IContact } from '..';
import { business, finance } from '../index.js';
import type { TCurrency } from './currency.js';
export type TInvoiceStatus = 'draft' | 'invoice' | 'paid' | 'refunded';
export interface IInvoiceItem {
position: number;
name: string;
articleNumber?: string;
unitType: string;
quantity: number;
unitQuantity: number;
unitNetPrice: number;
vatPercentage: number;
}
export interface IInvoice {
billedBy: IContact;
billedTo: IContact;
id: string;
billedBy: business.TContact;
billedTo: business.TContact;
/**
* buyer reference is an optional field, that helps the buyer to identify the invoice
*/
buyerReference?: string;
type: 'creditnote' | 'debitnote';
status: TInvoiceStatus;
items: IInvoiceItem[];
periodOfPerformance?: {
from: number;
to: number;
};
deliveryDate?: number;
dueInDays: number;
reverseCharge: boolean;
printResult?: {
pdfBufferString: string;
totalNet: number;
totalGross: number;
vatGroups: {
percentage: number;
items: IInvoiceItem[];
};
};
notes: string[];
paymentOptions?: finance.IPaymentOptionInfo;
currency: TCurrency;
}

View File

@ -1,4 +1,14 @@
export interface IPayment {
amount: number;
date: Date;
export interface ISepaConnection {
institution?: string;
iban: string;
bic: string;
}
export interface IPayPalConnection {
email: string;
}
export interface IPaymentOptionInfo {
sepaConnection: ISepaConnection;
payPal: IPayPalConnection;
}

View File

@ -0,0 +1,8 @@
export interface ITransaction {
id?: string;
accountId?: string;
amount: number;
date: Date;
description: string;
name: string;
}

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

@ -0,0 +1,2 @@
export * from './date.js';
export * from './time.js';

View File

@ -1,22 +1,39 @@
// Business
export * from './business/address';
export * from './business/company';
export * from './business/contact';
import * as business from './business/index.js';
// Code
import * as code from './code/index.js';
// Container
import * as container from './container/index.js';
// Database
import * as database from './database/index.js';
// Finance
export * from './finance/checkingaccount';
export * from './finance/currency';
export * from './finance/expense';
export * from './finance/invoice';
export * from './finance/payment'
// Cloud
export * from './cloud/dns';
import * as finance from './finance/index.js';
// Content
export * from './content/article';
export * from './content/author';
import * as content from './content/index.js';
// General
export * from './general/date';
export * from './general/time';
import * as general from './general/index.js';
// Network
import * as network from './network/index.js';
// SaaS
import * as saas from './saas/index.js';
// Storage
import * as storage from './storage/index.js';
// Website
import * as website from './website/index.js';
export { business, container, code, database, finance, content, general, network, saas, storage, website };
import type * as typeFest from 'type-fest';
import * as typeFestOwn from './typefest.own.js';
export { type typeFest, type typeFestOwn };

9
ts/network/cert.ts Normal file
View File

@ -0,0 +1,9 @@
export interface ICert {
id: string;
domainName: string;
created: number;
validUntil: number;
privateKey: string;
publicKey: string;
csr: string;
}

29
ts/network/cname.ts Normal file
View File

@ -0,0 +1,29 @@
import { type ICert } from "./cert.js";
export class ICnameDescriptor {
/**
* the original domain that is being cnamed
*/
cnamedDomain: string;
/**
* the cname proxy domain
* the domain that is used for the cname dns entry
*/
cnameProxyDomain: string;
/**
* the internal target url
*/
targetUrl: string;
/**
* a description
*/
description: string;
/**
* the ssl certificate
*/
sslCertificate?: ICert;
};

10
ts/network/device.ts Normal file
View File

@ -0,0 +1,10 @@
export interface IDevice {
id: string;
resolutionWidth?: number;
resolutionHeight?: number;
dpi?: number;
manufacturer?: string;
name?: string;
ipv4?: string;
ipv6?: string;
}

28
ts/network/dns.ts Normal file
View File

@ -0,0 +1,28 @@
export type TDnsRecordType =
| "A"
| "AAAA"
| "CNAME"
| "LOC"
| "PTR"
| "MX"
| "NAPTR"
| "NS"
| "SRV"
| "TXT"
| "CAA"
| "CERT"
| "DNSKEY"
| "DS"
| "HTTPS"
| "SMIMEA"
| "SSHFP"
| "SVCB"
| "TLSA"
| "URI";
export interface IDnsRecord {
name: string;
type: TDnsRecordType;
value: string;
dnsSecEnabled: boolean;
}

View File

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

View File

@ -0,0 +1,31 @@
export interface IDomainDelegation {
/**
* only if it applis: the origininating url
*/
fullUrl: string;
/**
* the full domain name
*/
fullDomain: string;
/**
* the domain, meaning whats usually considered a domain like google.com
*/
domain: string;
/**
* the public suffix, meaning whats usually considered a public suffix like .com
*/
publicSuffix: string;
/**
* the domain without the public suffix
*/
domainWithoutSuffix: string;
/**
* the subdomain, meaning whats usually considered a subdomain like www
*/
subdomain: string;
isIcann?: boolean;
dnsSecEnabled?: boolean;
}

11
ts/network/index.ts Normal file
View File

@ -0,0 +1,11 @@
export * from './cert.js';
export * from './cname.js';
export * from './device.js';
export * from './dns.js';
export * from './dnschallenge.js';
export * from './domaindelegation.js';
export * from './jwt.js';
export * from './networknode.js';
export * from './request.js';
export * from './reverseproxy.js';
export * from './ssh.js';

4
ts/network/jwt.ts Normal file
View File

@ -0,0 +1,4 @@
export interface IJwtKeypair {
privatePem: string;
publicPem: string;
}

View File

@ -0,0 +1,6 @@
export interface INetworkNode {
name: string;
ipv4: string;
ipv6: string;
securityLevel: 'private' | 'public' | 'confidential';
}

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>;

View File

@ -0,0 +1,12 @@
export interface IReverseProxyConfig {
destinationIps: string[];
destinationPorts: number[];
hostName: string;
privateKey: string;
publicKey: string;
authentication?: {
type: 'Basic';
user: string;
pass: string;
};
}

5
ts/network/ssh.ts Normal file
View File

@ -0,0 +1,5 @@
export interface ISshKey {
keyName: string;
public: string;
private?: string;
}

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

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

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

@ -0,0 +1,22 @@
import type { TCompany } from "../business/contact.js";
export interface IProduct {
name: string;
slogan: string;
description: string;
os: "web-based";
category: "Business Application";
offers: any[];
features: IProductFeature[];
landingPage: string;
appLink: string;
logoLink: string;
publisher?: TCompany;
}
export interface IProductFeature {
heading: string;
description: string;
linkText: string;
linkUrl: string;
}

View File

@ -0,0 +1,14 @@
import { type IProduct } from './product.js';
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;
}

16
ts/storage/index.ts Normal file
View File

@ -0,0 +1,16 @@
export interface IS3Descriptor {
endpoint: string;
port?: number | string;
useSsl?: boolean;
accessKey: string;
accessSecret: string;
/**
* may be used to preselect a certain bucket
*/
bucketName?: string;
/**
* may be used to preselect a certain directory
*/
directoryPath?: string;
region?: string;
}

8
ts/typefest.own.ts Normal file
View File

@ -0,0 +1,8 @@
type SecondArgument<T> = T extends (arg1: any, arg2: infer P, ...args: any[]) => any ? P : never;
type ValueType<T> = T extends { [key: string]: infer U } ? U : never;
export type {
SecondArgument,
ValueType
}

3
ts/website/index.ts Normal file
View File

@ -0,0 +1,3 @@
export * from './link.js';
export * from './menuitem.js';
export * from './linkblock.js';

7
ts/website/link.ts Normal file
View File

@ -0,0 +1,7 @@
export interface ILink {
url: string;
text?: string;
description?: string;
icon?: string;
target?: '_blank' | '_self' | '_parent' | '_top';
}

6
ts/website/linkblock.ts Normal file
View File

@ -0,0 +1,6 @@
import type { ILink } from './link.js';
export interface ILinkBlock {
title: string;
links: ILink[];
}

5
ts/website/menuitem.ts Normal file
View File

@ -0,0 +1,5 @@
export interface IMenuItem<T = any, U = any> {
name: string;
iconName?: string;
action: (optionsArg?: T) => Promise<U>;
}

14
tsconfig.json Normal file
View File

@ -0,0 +1,14 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"verbatimModuleSyntax": true
},
"exclude": [
"dist_*/**/*.d.ts"
]
}

View File

@ -1,3 +0,0 @@
{
"extends": "tslint-config-standard"
}