@tstdl/base 0.92.129 → 0.92.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/ai.service.js +4 -4
- package/api/server/api-controller.js +1 -2
- package/document-management/api/document-management.api.d.ts +25 -55
- package/document-management/api/document-management.api.js +9 -18
- package/document-management/models/document-request-collection-assignment.model.d.ts +7 -0
- package/document-management/models/{document-request-collection.model.js → document-request-collection-assignment.model.js} +6 -6
- package/document-management/models/index.d.ts +1 -1
- package/document-management/models/index.js +1 -1
- package/document-management/server/api/document-management.api.d.ts +26 -0
- package/document-management/server/api/document-management.api.js +169 -0
- package/document-management/server/api/index.d.ts +1 -0
- package/document-management/server/api/index.js +1 -0
- package/document-management/server/drizzle/{0000_cool_victor_mancha.sql → 0000_magical_madame_hydra.sql} +128 -96
- package/document-management/server/drizzle/meta/0000_snapshot.json +768 -492
- package/document-management/server/drizzle/meta/_journal.json +2 -9
- package/document-management/server/index.d.ts +1 -0
- package/document-management/server/index.js +1 -0
- package/document-management/server/schemas.d.ts +3 -2
- package/document-management/server/schemas.js +3 -2
- package/document-management/server/services/document-category-type.service.d.ts +2 -0
- package/document-management/server/services/document-category-type.service.js +26 -15
- package/document-management/server/services/document-collection.service.js +13 -2
- package/document-management/server/services/document-file.service.js +15 -4
- package/document-management/server/services/document-management-ai.service.js +19 -8
- package/document-management/server/services/document-management-ancillary.service.d.ts +21 -40
- package/document-management/server/services/document-management-ancillary.service.js +25 -14
- package/document-management/server/services/document-management.service.d.ts +1 -1
- package/document-management/server/services/document-management.service.js +53 -34
- package/document-management/server/services/document-property.service.d.ts +2 -34
- package/document-management/server/services/document-property.service.js +20 -8
- package/document-management/server/services/document-request.service.js +11 -11
- package/document-management/server/services/document-validation.service.js +15 -4
- package/document-management/server/services/document-workflow.service.js +27 -16
- package/document-management/server/services/document.service.d.ts +10 -2
- package/document-management/server/services/document.service.js +61 -8
- package/document-management/server/services/index.d.ts +1 -0
- package/document-management/server/services/index.js +1 -0
- package/document-management/server/services/singleton.d.ts +4 -0
- package/document-management/server/services/singleton.js +12 -0
- package/document-management/service-models/document.service-model.d.ts +8 -9
- package/document-management/service-models/document.service-model.js +1 -1
- package/eslint.config.js +1 -0
- package/examples/document-management/categories-and-types.d.ts +324 -0
- package/examples/document-management/categories-and-types.js +363 -0
- package/examples/document-management/main.d.ts +7 -8
- package/examples/document-management/main.js +86 -27
- package/injector/decorators.d.ts +1 -0
- package/injector/decorators.js +41 -12
- package/injector/inject.d.ts +12 -2
- package/injector/injector.d.ts +3 -2
- package/injector/injector.js +87 -36
- package/injector/symbols.d.ts +1 -0
- package/injector/symbols.js +1 -0
- package/module/modules/web-server.module.js +4 -4
- package/orm/server/database.d.ts +0 -4
- package/orm/server/database.js +0 -4
- package/orm/server/drizzle/schema-converter.js +5 -4
- package/orm/server/module.d.ts +0 -4
- package/orm/server/module.js +0 -2
- package/orm/server/query-converter.js +11 -38
- package/orm/server/repository.d.ts +3 -2
- package/orm/server/repository.js +2 -2
- package/orm/server/transaction.d.ts +5 -4
- package/orm/server/transaction.js +8 -3
- package/orm/server/transactional.js +3 -3
- package/orm/sqls.d.ts +4 -1
- package/orm/sqls.js +4 -1
- package/package.json +4 -4
- package/reflection/registry.js +6 -6
- package/document-management/models/document-request-collection.model.d.ts +0 -7
- package/document-management/server/drizzle/0001_concerned_quentin_quire.sql +0 -2
- package/document-management/server/drizzle/meta/0001_snapshot.json +0 -1932
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import { defineEnum } from '../../enumeration/index.js';
|
|
2
|
+
export const TstdlDocumentCategory = defineEnum('TstdlDocumentCategory', {
|
|
3
|
+
// Top-Level Kategorien
|
|
4
|
+
PersoenlicheDokumente: 'persoenliche-dokumente',
|
|
5
|
+
Finanzen: 'finanzen',
|
|
6
|
+
ArbeitBeruf: 'arbeit-beruf',
|
|
7
|
+
HausWohnung: 'haus-wohnung',
|
|
8
|
+
Fahrzeuge: 'fahrzeuge',
|
|
9
|
+
HobbyFreizeit: 'hobby-freizeit',
|
|
10
|
+
DigitalesLizenzen: 'digitales-lizenzen',
|
|
11
|
+
Sonstiges: 'sonstiges',
|
|
12
|
+
// Persönliche Dokumente Unterkategorien
|
|
13
|
+
Ausweisdokumente: 'ausweisdokumente',
|
|
14
|
+
VertraegePrivat: 'vertraege-privat',
|
|
15
|
+
Versicherungsvertraege: 'versicherungsvertraege', // Unterkategorie von Verträge (Privat)
|
|
16
|
+
KfzVersicherung: 'kfz-versicherung', // Unterkategorie von Versicherungsverträge
|
|
17
|
+
ZeugnisseZertifikate: 'zeugnisse-zertifikate',
|
|
18
|
+
Gesundheit: 'gesundheit',
|
|
19
|
+
KorrespondenzPrivat: 'korrespondenz-privat',
|
|
20
|
+
// Finanzen Unterkategorien
|
|
21
|
+
Bankunterlagen: 'bankunterlagen',
|
|
22
|
+
Steuerunterlagen: 'steuerunterlagen',
|
|
23
|
+
Investitionen: 'investitionen',
|
|
24
|
+
AktienWertpapiere: 'aktien-wertpapiere', // Unterkategorie von Investitionen
|
|
25
|
+
ImmobilienFinanzen: 'immobilien-finanzen', // Unterkategorie von Investitionen
|
|
26
|
+
RechnungenBezahlt: 'rechnungen-bezahlt',
|
|
27
|
+
// Arbeit & Beruf Unterkategorien
|
|
28
|
+
ArbeitsvertraegeVereinbarungen: 'arbeitsvertraege-vereinbarungen',
|
|
29
|
+
Projekte: 'projekte',
|
|
30
|
+
ProjektAlpha: 'projekt-alpha', // Unterkategorie von Projekte
|
|
31
|
+
ProjektBeta: 'projekt-beta', // Unterkategorie von Projekte
|
|
32
|
+
WeiterbildungSchulung: 'weiterbildung-schulung',
|
|
33
|
+
Bewerbungsunterlagen: 'bewerbungsunterlagen',
|
|
34
|
+
// Haus & Wohnung Unterkategorien
|
|
35
|
+
HandwerkerRechnungen: 'handwerker-rechnungen', // Allgemeine Kategorie
|
|
36
|
+
Sanitaerarbeiten: 'sanitaerarbeiten', // Unterkategorie von HandwerkerRechnungen
|
|
37
|
+
Elektroarbeiten: 'elektroarbeiten', // Unterkategorie von HandwerkerRechnungen
|
|
38
|
+
Malerarbeiten: 'malerarbeiten', // Unterkategorie von HandwerkerRechnungen
|
|
39
|
+
});
|
|
40
|
+
export const TstdlCategoryParents = {
|
|
41
|
+
[TstdlDocumentCategory.PersoenlicheDokumente]: null,
|
|
42
|
+
[TstdlDocumentCategory.Finanzen]: null,
|
|
43
|
+
[TstdlDocumentCategory.ArbeitBeruf]: null,
|
|
44
|
+
[TstdlDocumentCategory.HausWohnung]: null,
|
|
45
|
+
[TstdlDocumentCategory.Fahrzeuge]: null,
|
|
46
|
+
[TstdlDocumentCategory.HobbyFreizeit]: null,
|
|
47
|
+
[TstdlDocumentCategory.DigitalesLizenzen]: null,
|
|
48
|
+
[TstdlDocumentCategory.Sonstiges]: null,
|
|
49
|
+
// Persönliche Dokumente Unterkategorien
|
|
50
|
+
[TstdlDocumentCategory.Ausweisdokumente]: TstdlDocumentCategory.PersoenlicheDokumente,
|
|
51
|
+
[TstdlDocumentCategory.VertraegePrivat]: TstdlDocumentCategory.PersoenlicheDokumente,
|
|
52
|
+
[TstdlDocumentCategory.Versicherungsvertraege]: TstdlDocumentCategory.VertraegePrivat,
|
|
53
|
+
[TstdlDocumentCategory.KfzVersicherung]: TstdlDocumentCategory.Versicherungsvertraege,
|
|
54
|
+
[TstdlDocumentCategory.ZeugnisseZertifikate]: TstdlDocumentCategory.PersoenlicheDokumente,
|
|
55
|
+
[TstdlDocumentCategory.Gesundheit]: TstdlDocumentCategory.PersoenlicheDokumente,
|
|
56
|
+
[TstdlDocumentCategory.KorrespondenzPrivat]: TstdlDocumentCategory.PersoenlicheDokumente,
|
|
57
|
+
// Finanzen Unterkategorien
|
|
58
|
+
[TstdlDocumentCategory.Bankunterlagen]: TstdlDocumentCategory.Finanzen,
|
|
59
|
+
[TstdlDocumentCategory.Steuerunterlagen]: TstdlDocumentCategory.Finanzen,
|
|
60
|
+
[TstdlDocumentCategory.Investitionen]: TstdlDocumentCategory.Finanzen,
|
|
61
|
+
[TstdlDocumentCategory.AktienWertpapiere]: TstdlDocumentCategory.Investitionen,
|
|
62
|
+
[TstdlDocumentCategory.ImmobilienFinanzen]: TstdlDocumentCategory.Investitionen,
|
|
63
|
+
[TstdlDocumentCategory.RechnungenBezahlt]: TstdlDocumentCategory.Finanzen,
|
|
64
|
+
// Arbeit & Beruf Unterkategorien
|
|
65
|
+
[TstdlDocumentCategory.ArbeitsvertraegeVereinbarungen]: TstdlDocumentCategory.ArbeitBeruf,
|
|
66
|
+
[TstdlDocumentCategory.Projekte]: TstdlDocumentCategory.ArbeitBeruf,
|
|
67
|
+
[TstdlDocumentCategory.ProjektAlpha]: TstdlDocumentCategory.Projekte,
|
|
68
|
+
[TstdlDocumentCategory.ProjektBeta]: TstdlDocumentCategory.Projekte,
|
|
69
|
+
[TstdlDocumentCategory.WeiterbildungSchulung]: TstdlDocumentCategory.ArbeitBeruf,
|
|
70
|
+
[TstdlDocumentCategory.Bewerbungsunterlagen]: TstdlDocumentCategory.ArbeitBeruf,
|
|
71
|
+
// Haus & Wohnung Unterkategorien
|
|
72
|
+
[TstdlDocumentCategory.HandwerkerRechnungen]: TstdlDocumentCategory.HausWohnung,
|
|
73
|
+
[TstdlDocumentCategory.Sanitaerarbeiten]: TstdlDocumentCategory.HandwerkerRechnungen,
|
|
74
|
+
[TstdlDocumentCategory.Elektroarbeiten]: TstdlDocumentCategory.HandwerkerRechnungen,
|
|
75
|
+
[TstdlDocumentCategory.Malerarbeiten]: TstdlDocumentCategory.HandwerkerRechnungen,
|
|
76
|
+
};
|
|
77
|
+
export const TstdlDocumentCategoryLabels = {
|
|
78
|
+
// Top-Level Labels
|
|
79
|
+
[TstdlDocumentCategory.PersoenlicheDokumente]: 'Persönliche Dokumente',
|
|
80
|
+
[TstdlDocumentCategory.Finanzen]: 'Finanzen',
|
|
81
|
+
[TstdlDocumentCategory.ArbeitBeruf]: 'Arbeit & Beruf',
|
|
82
|
+
[TstdlDocumentCategory.HausWohnung]: 'Haus & Wohnung',
|
|
83
|
+
[TstdlDocumentCategory.Fahrzeuge]: 'Fahrzeuge',
|
|
84
|
+
[TstdlDocumentCategory.HobbyFreizeit]: 'Hobby & Freizeit',
|
|
85
|
+
[TstdlDocumentCategory.DigitalesLizenzen]: 'Digitales & Lizenzen',
|
|
86
|
+
[TstdlDocumentCategory.Sonstiges]: 'Sonstiges',
|
|
87
|
+
// Persönliche Dokumente Unterkategorien Labels
|
|
88
|
+
[TstdlDocumentCategory.Ausweisdokumente]: 'Ausweisdokumente',
|
|
89
|
+
[TstdlDocumentCategory.VertraegePrivat]: 'Verträge (Privat)',
|
|
90
|
+
[TstdlDocumentCategory.Versicherungsvertraege]: 'Versicherungsverträge',
|
|
91
|
+
[TstdlDocumentCategory.KfzVersicherung]: 'Kfz-Versicherung',
|
|
92
|
+
[TstdlDocumentCategory.ZeugnisseZertifikate]: 'Zeugnisse und Zertifikate',
|
|
93
|
+
[TstdlDocumentCategory.Gesundheit]: 'Gesundheit',
|
|
94
|
+
[TstdlDocumentCategory.KorrespondenzPrivat]: 'Korrespondenz',
|
|
95
|
+
// Finanzen Unterkategorien Labels
|
|
96
|
+
[TstdlDocumentCategory.Bankunterlagen]: 'Bankunterlagen',
|
|
97
|
+
[TstdlDocumentCategory.Steuerunterlagen]: 'Steuerunterlagen',
|
|
98
|
+
[TstdlDocumentCategory.Investitionen]: 'Investitionen',
|
|
99
|
+
[TstdlDocumentCategory.AktienWertpapiere]: 'Aktien / Wertpapiere',
|
|
100
|
+
[TstdlDocumentCategory.ImmobilienFinanzen]: 'Immobilien (Finanzen)',
|
|
101
|
+
[TstdlDocumentCategory.RechnungenBezahlt]: 'Rechnungen (bezahlt)',
|
|
102
|
+
// Arbeit & Beruf Unterkategorien Labels
|
|
103
|
+
[TstdlDocumentCategory.ArbeitsvertraegeVereinbarungen]: 'Arbeitsverträge & Vereinbarungen',
|
|
104
|
+
[TstdlDocumentCategory.Projekte]: 'Projekte',
|
|
105
|
+
[TstdlDocumentCategory.ProjektAlpha]: 'Projekt Alpha',
|
|
106
|
+
[TstdlDocumentCategory.ProjektBeta]: 'Projekt Beta',
|
|
107
|
+
[TstdlDocumentCategory.WeiterbildungSchulung]: 'Weiterbildung & Schulung',
|
|
108
|
+
[TstdlDocumentCategory.Bewerbungsunterlagen]: 'Bewerbungsunterlagen',
|
|
109
|
+
// Haus & Wohnung Unterkategorien Labels
|
|
110
|
+
[TstdlDocumentCategory.HandwerkerRechnungen]: 'Handwerkerrechnungen',
|
|
111
|
+
[TstdlDocumentCategory.Sanitaerarbeiten]: 'Sanitärarbeiten',
|
|
112
|
+
[TstdlDocumentCategory.Elektroarbeiten]: 'Elektroarbeiten',
|
|
113
|
+
[TstdlDocumentCategory.Malerarbeiten]: 'Malerarbeiten',
|
|
114
|
+
};
|
|
115
|
+
export const TstdlDocumentType = defineEnum('TstdlDocumentType', {
|
|
116
|
+
// Persönliche Dokumente
|
|
117
|
+
Personalausweis: 'personalausweis',
|
|
118
|
+
Reisepass: 'reisepass',
|
|
119
|
+
Fuehrerschein: 'fuehrerschein',
|
|
120
|
+
Geburtsurkunde: 'geburtsurkunde',
|
|
121
|
+
Mietvertrag: 'mietvertrag',
|
|
122
|
+
Handyvertrag: 'handyvertrag',
|
|
123
|
+
HaftpflichtversicherungPolice: 'haftpflichtversicherung-police',
|
|
124
|
+
HausratversicherungPolice: 'hausratversicherung-police',
|
|
125
|
+
KfzVersicherungPolice: 'kfz-versicherung-police',
|
|
126
|
+
KfzVersicherungSchadensmeldung: 'kfz-versicherung-schadensmeldung',
|
|
127
|
+
KrankenversicherungPolice: 'krankenversicherung-police',
|
|
128
|
+
Arztbrief: 'arztbrief',
|
|
129
|
+
Impfpass: 'impfpass',
|
|
130
|
+
Roentgenbilder: 'roentgenbilder',
|
|
131
|
+
RezeptArchiviert: 'rezept-archiviert',
|
|
132
|
+
WichtigerBriefPrivat: 'wichtiger-brief-privat',
|
|
133
|
+
EmailArchiviertPrivat: 'email-archiviert-privat',
|
|
134
|
+
Schulzeugnis: 'schulzeugnis',
|
|
135
|
+
Universitaetsabschluss: 'universitaetsabschluss',
|
|
136
|
+
ArbeitszeugnisPrivat: 'arbeitszeugnis-privat',
|
|
137
|
+
Weiterbildungszertifikat: 'weiterbildungszertifikat',
|
|
138
|
+
// Finanzen
|
|
139
|
+
KontoauszugGirokonto: 'kontoauszug-girokonto',
|
|
140
|
+
KontoauszugSparkonto: 'kontoauszug-sparkonto',
|
|
141
|
+
Kreditkartenabrechnung: 'kreditkartenabrechnung',
|
|
142
|
+
Darlehensvertrag: 'darlehensvertrag',
|
|
143
|
+
Steuererklaerung: 'steuererklaerung', // Jahreszahlen sind Instanzen des Typs
|
|
144
|
+
BelegSteuererklaerung: 'beleg-steuererklaerung',
|
|
145
|
+
Steuerbescheid: 'steuerbescheid',
|
|
146
|
+
AktienKaufbeleg: 'aktien-kaufbeleg',
|
|
147
|
+
AktienVerkaufsbeleg: 'aktien-verkaufsbeleg',
|
|
148
|
+
Depotuebersicht: 'depotuebersicht',
|
|
149
|
+
Grundbuchauszug: 'grundbuchauszug',
|
|
150
|
+
NotarvertragImmobilie: 'notarvertrag-immobilie',
|
|
151
|
+
Haushaltsrechnung: 'haushaltsrechnung', // Strom, Gas, Wasser
|
|
152
|
+
OnlineBestellungRechnung: 'online-bestellung-rechnung',
|
|
153
|
+
// Arbeit & Beruf
|
|
154
|
+
AktuellerArbeitsvertrag: 'aktueller-arbeitsvertrag',
|
|
155
|
+
Gehaltsabrechnung: 'gehaltsabrechnung',
|
|
156
|
+
ZusatzvereinbarungArbeit: 'zusatzvereinbarung-arbeit',
|
|
157
|
+
ProjektAlphaPlanung: 'projekt-alpha-planung',
|
|
158
|
+
ProjektAlphaBericht: 'projekt-alpha-bericht',
|
|
159
|
+
ProjektAlphaPraesentation: 'projekt-alpha-praesentation',
|
|
160
|
+
ProjektBetaKonzept: 'projekt-beta-konzept',
|
|
161
|
+
ProjektBetaKorrespondenz: 'projekt-beta-korrespondenz',
|
|
162
|
+
TeilnahmebescheinigungSchulung: 'teilnahmebescheinigung-schulung',
|
|
163
|
+
Schulungsunterlage: 'schulungsunterlage',
|
|
164
|
+
Lebenslauf: 'lebenslauf',
|
|
165
|
+
AnschreibenBewerbung: 'anschreiben-bewerbung',
|
|
166
|
+
ReferenzBewerbung: 'referenz-bewerbung',
|
|
167
|
+
// Haus & Wohnung
|
|
168
|
+
GrundrissPlan: 'grundriss-plan',
|
|
169
|
+
Nebenkostenabrechnung: 'nebenkostenabrechnung',
|
|
170
|
+
Uebergabeprotokoll: 'uebergabeprotokoll',
|
|
171
|
+
AnleitungGarantieGeraet: 'anleitung-garantie-geraet',
|
|
172
|
+
AngebotSanitaer: 'angebot-sanitaer',
|
|
173
|
+
RechnungSanitaer: 'rechnung-sanitaer',
|
|
174
|
+
AngebotElektro: 'angebot-elektro',
|
|
175
|
+
RechnungElektro: 'rechnung-elektro',
|
|
176
|
+
AngebotMaler: 'angebot-maler',
|
|
177
|
+
RechnungMaler: 'rechnung-maler',
|
|
178
|
+
// Fahrzeuge
|
|
179
|
+
Fahrzeugschein: 'fahrzeugschein',
|
|
180
|
+
Fahrzeugbrief: 'fahrzeugbrief',
|
|
181
|
+
VersicherungsnachweisFahrzeug: 'versicherungsnachweis-fahrzeug',
|
|
182
|
+
TUEVBericht: 'tuev-bericht',
|
|
183
|
+
WerkstattrechnungFahrzeug: 'werkstattrechnung-fahrzeug',
|
|
184
|
+
// Hobby & Freizeit
|
|
185
|
+
MitgliedschaftVerein: 'mitgliedschaft-verein',
|
|
186
|
+
Reisebuchungsbestaetigung: 'reisebuchungsbestaetigung',
|
|
187
|
+
ReiseTicketArchiviert: 'reise-ticket-archiviert',
|
|
188
|
+
AnleitungSportGeraet: 'anleitung-sport-geraet',
|
|
189
|
+
// Digitales & Lizenzen
|
|
190
|
+
Softwarelizenz: 'softwarelizenz',
|
|
191
|
+
Domainregistrierung: 'domainregistrierung',
|
|
192
|
+
ZugangsdatenNotiz: 'zugangsdaten-notiz', // Hinweis: Zugangsdaten sollten separat und sicher verwaltet werden!
|
|
193
|
+
// Sonstiges
|
|
194
|
+
WichtigeNotiz: 'wichtige-notiz',
|
|
195
|
+
FotoDokumentation: 'foto-dokumentation',
|
|
196
|
+
ScanWichtigeKleinigkeit: 'scan-wichtige-kleinigkeit',
|
|
197
|
+
});
|
|
198
|
+
export const TstdlDocumentTypeLabels = {
|
|
199
|
+
// Persönliche Dokumente Labels
|
|
200
|
+
[TstdlDocumentType.Personalausweis]: 'Personalausweis',
|
|
201
|
+
[TstdlDocumentType.Reisepass]: 'Reisepass',
|
|
202
|
+
[TstdlDocumentType.Fuehrerschein]: 'Führerschein',
|
|
203
|
+
[TstdlDocumentType.Geburtsurkunde]: 'Geburtsurkunde',
|
|
204
|
+
[TstdlDocumentType.Mietvertrag]: 'Mietvertrag',
|
|
205
|
+
[TstdlDocumentType.Handyvertrag]: 'Handyvertrag',
|
|
206
|
+
[TstdlDocumentType.HaftpflichtversicherungPolice]: 'Haftpflichtversicherung (Police)',
|
|
207
|
+
[TstdlDocumentType.HausratversicherungPolice]: 'Hausratversicherung (Police)',
|
|
208
|
+
[TstdlDocumentType.KfzVersicherungPolice]: 'Kfz-Versicherung (Police)',
|
|
209
|
+
[TstdlDocumentType.KfzVersicherungSchadensmeldung]: 'Kfz-Versicherung (Schadensmeldung)',
|
|
210
|
+
[TstdlDocumentType.KrankenversicherungPolice]: 'Krankenversicherung (Police)',
|
|
211
|
+
[TstdlDocumentType.Arztbrief]: 'Arztbrief',
|
|
212
|
+
[TstdlDocumentType.Impfpass]: 'Impfpass',
|
|
213
|
+
[TstdlDocumentType.Roentgenbilder]: 'Röntgenbilder',
|
|
214
|
+
[TstdlDocumentType.RezeptArchiviert]: 'Rezept (archiviert)',
|
|
215
|
+
[TstdlDocumentType.WichtigerBriefPrivat]: 'Wichtiger Brief (Privat)',
|
|
216
|
+
[TstdlDocumentType.EmailArchiviertPrivat]: 'E-Mail (archiviert)',
|
|
217
|
+
[TstdlDocumentType.Schulzeugnis]: 'Schulzeugnis',
|
|
218
|
+
[TstdlDocumentType.Universitaetsabschluss]: 'Universitätsabschluss',
|
|
219
|
+
[TstdlDocumentType.ArbeitszeugnisPrivat]: 'Arbeitszeugnis', // Kann doppelt genutzt werden, falls es in persönlichen und Berufsordnern sein soll
|
|
220
|
+
[TstdlDocumentType.Weiterbildungszertifikat]: 'Weiterbildungszertifikat',
|
|
221
|
+
// Finanzen Labels
|
|
222
|
+
[TstdlDocumentType.KontoauszugGirokonto]: 'Kontoauszug (Girokonto)',
|
|
223
|
+
[TstdlDocumentType.KontoauszugSparkonto]: 'Kontoauszug (Sparkonto)',
|
|
224
|
+
[TstdlDocumentType.Kreditkartenabrechnung]: 'Kreditkartenabrechnung',
|
|
225
|
+
[TstdlDocumentType.Darlehensvertrag]: 'Darlehensvertrag',
|
|
226
|
+
[TstdlDocumentType.Steuererklaerung]: 'Steuererklärung',
|
|
227
|
+
[TstdlDocumentType.BelegSteuererklaerung]: 'Beleg für Steuererklärung',
|
|
228
|
+
[TstdlDocumentType.Steuerbescheid]: 'Steuerbescheid',
|
|
229
|
+
[TstdlDocumentType.AktienKaufbeleg]: 'Aktien Kaufbeleg',
|
|
230
|
+
[TstdlDocumentType.AktienVerkaufsbeleg]: 'Aktien Verkaufsbeleg',
|
|
231
|
+
[TstdlDocumentType.Depotuebersicht]: 'Depotübersicht',
|
|
232
|
+
[TstdlDocumentType.Grundbuchauszug]: 'Grundbuchauszug',
|
|
233
|
+
[TstdlDocumentType.NotarvertragImmobilie]: 'Notarvertrag (Immobilie)',
|
|
234
|
+
[TstdlDocumentType.Haushaltsrechnung]: 'Haushaltsrechnung',
|
|
235
|
+
[TstdlDocumentType.OnlineBestellungRechnung]: 'Online-Bestellung (Rechnung)',
|
|
236
|
+
// Arbeit & Beruf Labels
|
|
237
|
+
[TstdlDocumentType.AktuellerArbeitsvertrag]: 'Aktueller Arbeitsvertrag',
|
|
238
|
+
[TstdlDocumentType.Gehaltsabrechnung]: 'Gehaltsabrechnung',
|
|
239
|
+
[TstdlDocumentType.ZusatzvereinbarungArbeit]: 'Zusatzvereinbarung',
|
|
240
|
+
[TstdlDocumentType.ProjektAlphaPlanung]: 'Projekt Alpha - Planung',
|
|
241
|
+
[TstdlDocumentType.ProjektAlphaBericht]: 'Projekt Alpha - Bericht',
|
|
242
|
+
[TstdlDocumentType.ProjektAlphaPraesentation]: 'Projekt Alpha - Präsentation',
|
|
243
|
+
[TstdlDocumentType.ProjektBetaKonzept]: 'Projekt Beta - Konzept',
|
|
244
|
+
[TstdlDocumentType.ProjektBetaKorrespondenz]: 'Projekt Beta - Korrespondenz',
|
|
245
|
+
[TstdlDocumentType.TeilnahmebescheinigungSchulung]: 'Teilnahmebescheinigung',
|
|
246
|
+
[TstdlDocumentType.Schulungsunterlage]: 'Schulungsunterlage',
|
|
247
|
+
[TstdlDocumentType.Lebenslauf]: 'Lebenslauf',
|
|
248
|
+
[TstdlDocumentType.AnschreibenBewerbung]: 'Anschreiben (Bewerbung)',
|
|
249
|
+
[TstdlDocumentType.ReferenzBewerbung]: 'Referenz (Bewerbung)',
|
|
250
|
+
// Haus & Wohnung Labels
|
|
251
|
+
[TstdlDocumentType.GrundrissPlan]: 'Grundriss & Plan',
|
|
252
|
+
[TstdlDocumentType.Nebenkostenabrechnung]: 'Nebenkostenabrechnung',
|
|
253
|
+
[TstdlDocumentType.Uebergabeprotokoll]: 'Übergabeprotokoll',
|
|
254
|
+
[TstdlDocumentType.AnleitungGarantieGeraet]: 'Anleitung & Garantie (Gerät)',
|
|
255
|
+
[TstdlDocumentType.AngebotSanitaer]: 'Angebot Sanitär',
|
|
256
|
+
[TstdlDocumentType.RechnungSanitaer]: 'Rechnung Sanitär',
|
|
257
|
+
[TstdlDocumentType.AngebotElektro]: 'Angebot Elektro',
|
|
258
|
+
[TstdlDocumentType.RechnungElektro]: 'Rechnung Elektro',
|
|
259
|
+
[TstdlDocumentType.AngebotMaler]: 'Angebot Maler',
|
|
260
|
+
[TstdlDocumentType.RechnungMaler]: 'Rechnung Maler',
|
|
261
|
+
// Fahrzeuge Labels
|
|
262
|
+
[TstdlDocumentType.Fahrzeugschein]: 'Fahrzeugschein',
|
|
263
|
+
[TstdlDocumentType.Fahrzeugbrief]: 'Fahrzeugbrief',
|
|
264
|
+
[TstdlDocumentType.VersicherungsnachweisFahrzeug]: 'Versicherungsnachweis (Fahrzeug)',
|
|
265
|
+
[TstdlDocumentType.TUEVBericht]: 'TÜV-Bericht',
|
|
266
|
+
[TstdlDocumentType.WerkstattrechnungFahrzeug]: 'Werkstattrechnung (Fahrzeug)',
|
|
267
|
+
// Hobby & Freizeit Labels
|
|
268
|
+
[TstdlDocumentType.MitgliedschaftVerein]: 'Mitgliedschaft (Verein/Fitness)',
|
|
269
|
+
[TstdlDocumentType.Reisebuchungsbestaetigung]: 'Reisebuchungsbestätigung',
|
|
270
|
+
[TstdlDocumentType.ReiseTicketArchiviert]: 'Reise-Ticket (archiviert)',
|
|
271
|
+
[TstdlDocumentType.AnleitungSportGeraet]: 'Anleitung (Sportgeräte, Instrumente etc.)',
|
|
272
|
+
// Digitales & Lizenzen Labels
|
|
273
|
+
[TstdlDocumentType.Softwarelizenz]: 'Softwarelizenz',
|
|
274
|
+
[TstdlDocumentType.Domainregistrierung]: 'Domainregistrierung',
|
|
275
|
+
[TstdlDocumentType.ZugangsdatenNotiz]: 'Zugangsdaten (Notiz)',
|
|
276
|
+
// Sonstiges Labels
|
|
277
|
+
[TstdlDocumentType.WichtigeNotiz]: 'Wichtige Notiz',
|
|
278
|
+
[TstdlDocumentType.FotoDokumentation]: 'Foto (Dokumentation)',
|
|
279
|
+
[TstdlDocumentType.ScanWichtigeKleinigkeit]: 'Scan von wichtiger Kleinigkeit',
|
|
280
|
+
};
|
|
281
|
+
export const TstdlDocumentTypeCategories = {
|
|
282
|
+
// Persönliche Dokumente Zuordnungen
|
|
283
|
+
[TstdlDocumentType.Personalausweis]: TstdlDocumentCategory.Ausweisdokumente,
|
|
284
|
+
[TstdlDocumentType.Reisepass]: TstdlDocumentCategory.Ausweisdokumente,
|
|
285
|
+
[TstdlDocumentType.Fuehrerschein]: TstdlDocumentCategory.Ausweisdokumente,
|
|
286
|
+
[TstdlDocumentType.Geburtsurkunde]: TstdlDocumentCategory.Ausweisdokumente,
|
|
287
|
+
[TstdlDocumentType.Mietvertrag]: TstdlDocumentCategory.VertraegePrivat,
|
|
288
|
+
[TstdlDocumentType.Handyvertrag]: TstdlDocumentCategory.VertraegePrivat,
|
|
289
|
+
[TstdlDocumentType.HaftpflichtversicherungPolice]: TstdlDocumentCategory.Versicherungsvertraege,
|
|
290
|
+
[TstdlDocumentType.HausratversicherungPolice]: TstdlDocumentCategory.Versicherungsvertraege,
|
|
291
|
+
[TstdlDocumentType.KfzVersicherungPolice]: TstdlDocumentCategory.KfzVersicherung,
|
|
292
|
+
[TstdlDocumentType.KfzVersicherungSchadensmeldung]: TstdlDocumentCategory.KfzVersicherung,
|
|
293
|
+
[TstdlDocumentType.KrankenversicherungPolice]: TstdlDocumentCategory.Versicherungsvertraege,
|
|
294
|
+
[TstdlDocumentType.Arztbrief]: TstdlDocumentCategory.Gesundheit,
|
|
295
|
+
[TstdlDocumentType.Impfpass]: TstdlDocumentCategory.Gesundheit,
|
|
296
|
+
[TstdlDocumentType.Roentgenbilder]: TstdlDocumentCategory.Gesundheit,
|
|
297
|
+
[TstdlDocumentType.RezeptArchiviert]: TstdlDocumentCategory.Gesundheit,
|
|
298
|
+
[TstdlDocumentType.WichtigerBriefPrivat]: TstdlDocumentCategory.KorrespondenzPrivat,
|
|
299
|
+
[TstdlDocumentType.EmailArchiviertPrivat]: TstdlDocumentCategory.KorrespondenzPrivat,
|
|
300
|
+
[TstdlDocumentType.Schulzeugnis]: TstdlDocumentCategory.ZeugnisseZertifikate,
|
|
301
|
+
[TstdlDocumentType.Universitaetsabschluss]: TstdlDocumentCategory.ZeugnisseZertifikate,
|
|
302
|
+
[TstdlDocumentType.ArbeitszeugnisPrivat]: TstdlDocumentCategory.ZeugnisseZertifikate, // Kann auch Arbeitsverträge & Vereinbarungen sein, je nach Kontext
|
|
303
|
+
[TstdlDocumentType.Weiterbildungszertifikat]: TstdlDocumentCategory.ZeugnisseZertifikate,
|
|
304
|
+
// Finanzen Zuordnungen
|
|
305
|
+
[TstdlDocumentType.KontoauszugGirokonto]: TstdlDocumentCategory.Bankunterlagen,
|
|
306
|
+
[TstdlDocumentType.KontoauszugSparkonto]: TstdlDocumentCategory.Bankunterlagen,
|
|
307
|
+
[TstdlDocumentType.Kreditkartenabrechnung]: TstdlDocumentCategory.Bankunterlagen,
|
|
308
|
+
[TstdlDocumentType.Darlehensvertrag]: TstdlDocumentCategory.Bankunterlagen,
|
|
309
|
+
[TstdlDocumentType.Steuererklaerung]: TstdlDocumentCategory.Steuerunterlagen,
|
|
310
|
+
[TstdlDocumentType.BelegSteuererklaerung]: TstdlDocumentCategory.Steuerunterlagen,
|
|
311
|
+
[TstdlDocumentType.Steuerbescheid]: TstdlDocumentCategory.Steuerunterlagen,
|
|
312
|
+
[TstdlDocumentType.AktienKaufbeleg]: TstdlDocumentCategory.AktienWertpapiere,
|
|
313
|
+
[TstdlDocumentType.AktienVerkaufsbeleg]: TstdlDocumentCategory.AktienWertpapiere,
|
|
314
|
+
[TstdlDocumentType.Depotuebersicht]: TstdlDocumentCategory.AktienWertpapiere,
|
|
315
|
+
[TstdlDocumentType.Grundbuchauszug]: TstdlDocumentCategory.ImmobilienFinanzen,
|
|
316
|
+
[TstdlDocumentType.NotarvertragImmobilie]: TstdlDocumentCategory.ImmobilienFinanzen,
|
|
317
|
+
[TstdlDocumentType.Haushaltsrechnung]: TstdlDocumentCategory.RechnungenBezahlt,
|
|
318
|
+
[TstdlDocumentType.OnlineBestellungRechnung]: TstdlDocumentCategory.RechnungenBezahlt,
|
|
319
|
+
// Arbeit & Beruf Zuordnungen
|
|
320
|
+
[TstdlDocumentType.AktuellerArbeitsvertrag]: TstdlDocumentCategory.ArbeitsvertraegeVereinbarungen,
|
|
321
|
+
[TstdlDocumentType.Gehaltsabrechnung]: TstdlDocumentCategory.ArbeitsvertraegeVereinbarungen,
|
|
322
|
+
[TstdlDocumentType.ZusatzvereinbarungArbeit]: TstdlDocumentCategory.ArbeitsvertraegeVereinbarungen,
|
|
323
|
+
[TstdlDocumentType.ProjektAlphaPlanung]: TstdlDocumentCategory.ProjektAlpha,
|
|
324
|
+
[TstdlDocumentType.ProjektAlphaBericht]: TstdlDocumentCategory.ProjektAlpha,
|
|
325
|
+
[TstdlDocumentType.ProjektAlphaPraesentation]: TstdlDocumentCategory.ProjektAlpha,
|
|
326
|
+
[TstdlDocumentType.ProjektBetaKonzept]: TstdlDocumentCategory.ProjektBeta,
|
|
327
|
+
[TstdlDocumentType.ProjektBetaKorrespondenz]: TstdlDocumentCategory.ProjektBeta,
|
|
328
|
+
[TstdlDocumentType.TeilnahmebescheinigungSchulung]: TstdlDocumentCategory.WeiterbildungSchulung,
|
|
329
|
+
[TstdlDocumentType.Schulungsunterlage]: TstdlDocumentCategory.WeiterbildungSchulung,
|
|
330
|
+
[TstdlDocumentType.Lebenslauf]: TstdlDocumentCategory.Bewerbungsunterlagen,
|
|
331
|
+
[TstdlDocumentType.AnschreibenBewerbung]: TstdlDocumentCategory.Bewerbungsunterlagen,
|
|
332
|
+
[TstdlDocumentType.ReferenzBewerbung]: TstdlDocumentCategory.Bewerbungsunterlagen,
|
|
333
|
+
// Haus & Wohnung Zuordnungen
|
|
334
|
+
[TstdlDocumentType.GrundrissPlan]: TstdlDocumentCategory.HausWohnung,
|
|
335
|
+
[TstdlDocumentType.Nebenkostenabrechnung]: TstdlDocumentCategory.HausWohnung,
|
|
336
|
+
[TstdlDocumentType.Uebergabeprotokoll]: TstdlDocumentCategory.HausWohnung,
|
|
337
|
+
[TstdlDocumentType.AnleitungGarantieGeraet]: TstdlDocumentCategory.HausWohnung,
|
|
338
|
+
[TstdlDocumentType.AngebotSanitaer]: TstdlDocumentCategory.Sanitaerarbeiten,
|
|
339
|
+
[TstdlDocumentType.RechnungSanitaer]: TstdlDocumentCategory.Sanitaerarbeiten,
|
|
340
|
+
[TstdlDocumentType.AngebotElektro]: TstdlDocumentCategory.Elektroarbeiten,
|
|
341
|
+
[TstdlDocumentType.RechnungElektro]: TstdlDocumentCategory.Elektroarbeiten,
|
|
342
|
+
[TstdlDocumentType.AngebotMaler]: TstdlDocumentCategory.Malerarbeiten,
|
|
343
|
+
[TstdlDocumentType.RechnungMaler]: TstdlDocumentCategory.Malerarbeiten,
|
|
344
|
+
// Fahrzeuge Zuordnungen
|
|
345
|
+
[TstdlDocumentType.Fahrzeugschein]: TstdlDocumentCategory.Fahrzeuge,
|
|
346
|
+
[TstdlDocumentType.Fahrzeugbrief]: TstdlDocumentCategory.Fahrzeuge,
|
|
347
|
+
[TstdlDocumentType.VersicherungsnachweisFahrzeug]: TstdlDocumentCategory.Fahrzeuge,
|
|
348
|
+
[TstdlDocumentType.TUEVBericht]: TstdlDocumentCategory.Fahrzeuge,
|
|
349
|
+
[TstdlDocumentType.WerkstattrechnungFahrzeug]: TstdlDocumentCategory.Fahrzeuge,
|
|
350
|
+
// Hobby & Freizeit Zuordnungen
|
|
351
|
+
[TstdlDocumentType.MitgliedschaftVerein]: TstdlDocumentCategory.HobbyFreizeit,
|
|
352
|
+
[TstdlDocumentType.Reisebuchungsbestaetigung]: TstdlDocumentCategory.HobbyFreizeit,
|
|
353
|
+
[TstdlDocumentType.ReiseTicketArchiviert]: TstdlDocumentCategory.HobbyFreizeit,
|
|
354
|
+
[TstdlDocumentType.AnleitungSportGeraet]: TstdlDocumentCategory.HobbyFreizeit,
|
|
355
|
+
// Digitales & Lizenzen Zuordnungen
|
|
356
|
+
[TstdlDocumentType.Softwarelizenz]: TstdlDocumentCategory.DigitalesLizenzen,
|
|
357
|
+
[TstdlDocumentType.Domainregistrierung]: TstdlDocumentCategory.DigitalesLizenzen,
|
|
358
|
+
[TstdlDocumentType.ZugangsdatenNotiz]: TstdlDocumentCategory.DigitalesLizenzen,
|
|
359
|
+
// Sonstiges Zuordnungen
|
|
360
|
+
[TstdlDocumentType.WichtigeNotiz]: TstdlDocumentCategory.Sonstiges,
|
|
361
|
+
[TstdlDocumentType.FotoDokumentation]: TstdlDocumentCategory.Sonstiges,
|
|
362
|
+
[TstdlDocumentType.ScanWichtigeKleinigkeit]: TstdlDocumentCategory.Sonstiges,
|
|
363
|
+
};
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import '../../polyfills.js';
|
|
2
2
|
import type { DocumentCollection, DocumentWorkflowStep } from '../../document-management/index.js';
|
|
3
3
|
import { DocumentManagementAncillaryService, type DocumentCollectionMetadata } from '../../document-management/server/index.js';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ExampleDocumentManagementAncillaryService extends DocumentManagementAncillaryService {
|
|
5
5
|
_resolveMetadata(collections: DocumentCollection[]): DocumentCollectionMetadata[];
|
|
6
|
+
getUserId(_token?: unknown): string;
|
|
7
|
+
canCreateDocuments(_collectionId: string, _token?: unknown): boolean;
|
|
8
|
+
canUpdateDocuments(_collectionId: string, _token?: unknown): boolean;
|
|
9
|
+
canDeleteDocuments(_collectionId: string, _token?: unknown): boolean;
|
|
10
|
+
canAssignDocuments(_collectionId: string, _token?: unknown): boolean;
|
|
11
|
+
canManageRequests(_collectionId: string, _token?: unknown): boolean;
|
|
6
12
|
canReadCollection(_collectionId: string, _token?: unknown): boolean;
|
|
7
|
-
canWriteCollection(_collectionId: string, _token?: unknown): boolean;
|
|
8
13
|
canApproveDocument(_documentId: string, _token?: unknown): boolean;
|
|
9
14
|
canRejectDocument(_documentId: string, _token?: unknown): boolean;
|
|
10
|
-
canReadDocumentRequest(_requestId: string, _token?: unknown): boolean;
|
|
11
|
-
canAssignDocumentToRequest(_requestId: string, _documentId: string, _token?: unknown): boolean;
|
|
12
15
|
canManageCategoriesAndTypes(_token?: unknown): boolean;
|
|
13
16
|
canReadDocumentRequestsTemplates(_token?: unknown): boolean;
|
|
14
17
|
canManageDocumentRequestsTemplates(_token?: unknown): boolean;
|
|
15
|
-
canCreateUnassignedDocument(_token?: unknown): boolean;
|
|
16
|
-
canCreateRequestAssignedDocument(_token?: unknown): boolean;
|
|
17
|
-
canDeleteDocument(_documentId: string, _token?: unknown): boolean;
|
|
18
|
-
canManageDocumentRequest(_token?: unknown): boolean;
|
|
19
18
|
canManageValidationDefinitions(_token?: unknown): boolean;
|
|
20
19
|
canProgressDocumentWorkflow(_documentId: string, _currentWorkflowStep: DocumentWorkflowStep, _token?: unknown): boolean;
|
|
21
20
|
}
|
|
@@ -5,59 +5,118 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import '../../polyfills.js';
|
|
8
|
+
import { configureAiService } from '../../ai/index.js';
|
|
9
|
+
import { configureApiServer } from '../../api/server/module.js';
|
|
8
10
|
import { Application } from '../../application/application.js';
|
|
9
|
-
import {
|
|
11
|
+
import { AuthenticationApiRequestTokenProvider } from '../../authentication/server/authentication-api-request-token.provider.js';
|
|
12
|
+
import { DocumentCategoryTypeService, DocumentCollectionService, DocumentManagementAncillaryService, DocumentManagementApiController, DocumentRequestService } from '../../document-management/server/index.js';
|
|
10
13
|
import { configureDocumentManagement, migrateDocumentManagementSchema } from '../../document-management/server/module.js';
|
|
11
14
|
import { DocumentManagementService } from '../../document-management/server/services/document-management.service.js';
|
|
12
|
-
import { Singleton } from '../../injector/index.js';
|
|
13
|
-
import { injectManyAsync } from '../../injector/inject.js';
|
|
15
|
+
import { Injector, Singleton } from '../../injector/index.js';
|
|
16
|
+
import { inject, injectManyAsync, runInInjectionContext } from '../../injector/inject.js';
|
|
17
|
+
import { configureLocalMessageBus } from '../../message-bus/index.js';
|
|
14
18
|
import { configureS3ObjectStorage } from '../../object-storage/index.js';
|
|
15
|
-
|
|
19
|
+
import { configureOrm } from '../../orm/server/index.js';
|
|
20
|
+
import { configurePostgresQueue, migratePostgresQueueSchema } from '../../queue/postgres/index.js';
|
|
21
|
+
import { boolean, positiveInteger, string } from '../../utils/config-parser.js';
|
|
22
|
+
import { TstdlCategoryParents, TstdlDocumentCategoryLabels, TstdlDocumentTypeCategories, TstdlDocumentTypeLabels } from './categories-and-types.js';
|
|
23
|
+
const config = {
|
|
24
|
+
database: {
|
|
25
|
+
host: string('DATABASE_HOST', '127.0.0.1'),
|
|
26
|
+
port: positiveInteger('DATABASE_PORT', 5432),
|
|
27
|
+
user: string('DATABASE_USER', 'tstdl'),
|
|
28
|
+
pass: string('DATABASE_PASS', 'wf7rq6glrk5jykne'),
|
|
29
|
+
database: string('DATABASE_NAME', 'tstdl'),
|
|
30
|
+
schema: string('DATABASE_SCHEMA', 'tstdl'),
|
|
31
|
+
},
|
|
32
|
+
ai: {
|
|
33
|
+
apiKey: string('AI_API_KEY', undefined),
|
|
34
|
+
keyFile: string('AI_API_KEY_FILE', undefined),
|
|
35
|
+
vertex: {
|
|
36
|
+
project: string('AI_VERTEX_PROJECT', undefined),
|
|
37
|
+
location: string('AI_VERTEX_LOCATION', undefined),
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
s3: {
|
|
41
|
+
endpoint: string('S3_ENDPOINT', 'http://localhost:9000'),
|
|
42
|
+
accessKey: string('S3_ACCESS_KEY', 'tstdl-dev'),
|
|
43
|
+
secretKey: string('S3_SECRET_KEY', 'tstdl-dev'),
|
|
44
|
+
bucket: string('S3_BUCKET', undefined),
|
|
45
|
+
bucketPerModule: boolean('S3_BUCKET_PER_MODULE', true),
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
let ExampleDocumentManagementAncillaryService = class ExampleDocumentManagementAncillaryService extends DocumentManagementAncillaryService {
|
|
16
49
|
_resolveMetadata(collections) {
|
|
17
|
-
return collections.map((collection) => ({ name: collection.
|
|
50
|
+
return collections.map((collection) => ({ name: collection.id, group: null }));
|
|
18
51
|
}
|
|
52
|
+
getUserId(_token) { return 'user-id'; }
|
|
53
|
+
canCreateDocuments(_collectionId, _token) { return true; }
|
|
54
|
+
canUpdateDocuments(_collectionId, _token) { return true; }
|
|
55
|
+
canDeleteDocuments(_collectionId, _token) { return true; }
|
|
56
|
+
canAssignDocuments(_collectionId, _token) { return true; }
|
|
57
|
+
canManageRequests(_collectionId, _token) { return true; }
|
|
19
58
|
canReadCollection(_collectionId, _token) { return true; }
|
|
20
|
-
canWriteCollection(_collectionId, _token) { return true; }
|
|
21
59
|
canApproveDocument(_documentId, _token) { return true; }
|
|
22
60
|
canRejectDocument(_documentId, _token) { return true; }
|
|
23
|
-
canReadDocumentRequest(_requestId, _token) { return true; }
|
|
24
|
-
canAssignDocumentToRequest(_requestId, _documentId, _token) { return true; }
|
|
25
61
|
canManageCategoriesAndTypes(_token) { return true; }
|
|
26
62
|
canReadDocumentRequestsTemplates(_token) { return true; }
|
|
27
63
|
canManageDocumentRequestsTemplates(_token) { return true; }
|
|
28
|
-
canCreateUnassignedDocument(_token) { return true; }
|
|
29
|
-
canCreateRequestAssignedDocument(_token) { return true; }
|
|
30
|
-
canDeleteDocument(_documentId, _token) { return true; }
|
|
31
|
-
canManageDocumentRequest(_token) { return true; }
|
|
32
64
|
canManageValidationDefinitions(_token) { return true; }
|
|
33
65
|
canProgressDocumentWorkflow(_documentId, _currentWorkflowStep, _token) { return true; }
|
|
34
66
|
};
|
|
35
|
-
|
|
67
|
+
ExampleDocumentManagementAncillaryService = __decorate([
|
|
36
68
|
Singleton()
|
|
37
|
-
],
|
|
38
|
-
export {
|
|
69
|
+
], ExampleDocumentManagementAncillaryService);
|
|
70
|
+
export { ExampleDocumentManagementAncillaryService };
|
|
39
71
|
async function bootstrap() {
|
|
72
|
+
const injector = inject(Injector);
|
|
73
|
+
configurePostgresQueue();
|
|
74
|
+
configureLocalMessageBus();
|
|
75
|
+
configureOrm({
|
|
76
|
+
connection: {
|
|
77
|
+
host: config.database.host,
|
|
78
|
+
port: config.database.port,
|
|
79
|
+
user: config.database.user,
|
|
80
|
+
password: config.database.pass,
|
|
81
|
+
database: config.database.database,
|
|
82
|
+
},
|
|
83
|
+
});
|
|
40
84
|
configureDocumentManagement({
|
|
41
|
-
ancillaryService:
|
|
85
|
+
ancillaryService: ExampleDocumentManagementAncillaryService,
|
|
42
86
|
fileObjectStorageModule: 'documents',
|
|
43
87
|
filePreviewObjectStorageModule: 'document-previews',
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
88
|
+
});
|
|
89
|
+
configureS3ObjectStorage({
|
|
90
|
+
endpoint: config.s3.endpoint,
|
|
91
|
+
bucket: config.s3.bucket,
|
|
92
|
+
bucketPerModule: config.s3.bucketPerModule,
|
|
93
|
+
accessKey: config.s3.accessKey,
|
|
94
|
+
secretKey: config.s3.secretKey,
|
|
95
|
+
});
|
|
96
|
+
configureApiServer({
|
|
97
|
+
controllers: [DocumentManagementApiController],
|
|
98
|
+
requestTokenProvider: AuthenticationApiRequestTokenProvider,
|
|
99
|
+
gatewayOptions: {
|
|
100
|
+
prefix: null,
|
|
101
|
+
cors: {
|
|
102
|
+
default: {
|
|
103
|
+
autoAccessControlAllowOrigin: 'http://localhost:4200',
|
|
104
|
+
accessControlAllowHeaders: 'Content-Type, Authorization',
|
|
105
|
+
},
|
|
49
106
|
},
|
|
50
107
|
},
|
|
51
108
|
});
|
|
52
|
-
|
|
53
|
-
|
|
109
|
+
configureAiService({
|
|
110
|
+
apiKey: config.ai.apiKey,
|
|
111
|
+
keyFile: config.ai.keyFile,
|
|
112
|
+
});
|
|
113
|
+
await runInInjectionContext(injector, async () => await migrateDocumentManagementSchema());
|
|
114
|
+
await runInInjectionContext(injector, async () => await migratePostgresQueueSchema());
|
|
54
115
|
}
|
|
55
116
|
async function main() {
|
|
56
|
-
const [documentManagementService, documentCollectionService
|
|
117
|
+
const [documentManagementService, documentCollectionService] = await injectManyAsync(DocumentManagementService, DocumentCollectionService, DocumentCategoryTypeService, DocumentRequestService);
|
|
118
|
+
const { categories, types } = await documentManagementService.initializeCategoriesAndTypes(TstdlDocumentCategoryLabels, TstdlCategoryParents, TstdlDocumentTypeLabels, TstdlDocumentTypeCategories);
|
|
57
119
|
const collection = await documentCollectionService.createCollection(null);
|
|
58
|
-
const category = await documentCategoryTypeService.createCategory('Testkategorie', null);
|
|
59
|
-
const type = await documentCategoryTypeService.createType('Testtyp', category.id);
|
|
60
|
-
const request = await documentRequestService.createRequest(type.id, [collection.id], null);
|
|
61
120
|
const data = await documentManagementService.loadData([collection.id]);
|
|
62
121
|
console.log(data);
|
|
63
122
|
}
|
package/injector/decorators.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export type InjectableOptionsWithoutLifecycle<T, A> = Simplify<TypedOmit<Injecta
|
|
|
18
18
|
* @param constructor class to replace with
|
|
19
19
|
*/
|
|
20
20
|
export declare function ReplaceClass<T>(constructor: Constructor<T>): ClassDecorator;
|
|
21
|
+
export declare function InjectableOptions<T = any, A = any, C extends Record = Record>(options: InjectableOptions<T, A, C>): ClassDecorator;
|
|
21
22
|
/**
|
|
22
23
|
* Globally registers the class for injection
|
|
23
24
|
* @param options registration options
|
package/injector/decorators.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
-
import { createClassDecorator, createDecorator } from '../reflection/index.js';
|
|
2
|
+
import { createClassDecorator, createDecorator, reflectionRegistry } from '../reflection/index.js';
|
|
3
3
|
import { toArray } from '../utils/array/array.js';
|
|
4
|
-
import { isDefined, isFunction } from '../utils/type-guards.js';
|
|
4
|
+
import { isDefined, isFunction, isNotNull } from '../utils/type-guards.js';
|
|
5
5
|
import { Injector } from './injector.js';
|
|
6
|
-
import { injectMetadataSymbol, injectableMetadataSymbol } from './symbols.js';
|
|
6
|
+
import { injectMetadataSymbol, injectableMetadataSymbol, injectableOptionsSymbol } from './symbols.js';
|
|
7
7
|
/**
|
|
8
8
|
* Helper decorator to replace a class definition with an other
|
|
9
9
|
* can be used for example to type external classes with the {@link Resolvable} interface
|
|
@@ -12,25 +12,54 @@ import { injectMetadataSymbol, injectableMetadataSymbol } from './symbols.js';
|
|
|
12
12
|
export function ReplaceClass(constructor) {
|
|
13
13
|
return createClassDecorator({ handler: () => constructor });
|
|
14
14
|
}
|
|
15
|
+
export function InjectableOptions(options) {
|
|
16
|
+
return createClassDecorator({
|
|
17
|
+
data: { [injectableOptionsSymbol]: options },
|
|
18
|
+
mergeData: true,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
15
21
|
/**
|
|
16
22
|
* Globally registers the class for injection
|
|
17
23
|
* @param options registration options
|
|
18
24
|
*/
|
|
19
25
|
export function Injectable(options = {}) {
|
|
20
26
|
return createClassDecorator({
|
|
21
|
-
data: {
|
|
27
|
+
data: {
|
|
28
|
+
[injectableMetadataSymbol]: {},
|
|
29
|
+
[injectableOptionsSymbol]: options,
|
|
30
|
+
},
|
|
22
31
|
mergeData: true,
|
|
23
|
-
handler: (data) => {
|
|
32
|
+
handler: (data, metadata) => {
|
|
24
33
|
const { alias: aliases, provider, ...registrationOptions } = options;
|
|
25
34
|
const token = data.constructor;
|
|
35
|
+
let mergedRegistationOptions = registrationOptions;
|
|
36
|
+
if (isNotNull(metadata.parent)) {
|
|
37
|
+
const parentOptions = reflectionRegistry.getMetadata(metadata.parent)?.data.tryGet(injectableOptionsSymbol);
|
|
38
|
+
if (isDefined(parentOptions)) {
|
|
39
|
+
const { alias: _, provider: __, ...parentRegistrationOptions } = parentOptions;
|
|
40
|
+
mergedRegistationOptions = {
|
|
41
|
+
...parentRegistrationOptions,
|
|
42
|
+
...registrationOptions,
|
|
43
|
+
providers: [...(parentRegistrationOptions.providers ?? []), ...(registrationOptions.providers ?? [])],
|
|
44
|
+
afterResolve: (instance, argument, context) => {
|
|
45
|
+
parentRegistrationOptions.afterResolve?.(instance, argument, context);
|
|
46
|
+
registrationOptions.afterResolve?.(instance, argument, context);
|
|
47
|
+
},
|
|
48
|
+
metadata: {
|
|
49
|
+
...parentRegistrationOptions.metadata,
|
|
50
|
+
...registrationOptions.metadata,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
26
55
|
const targetProvider = provider ?? { useClass: token };
|
|
27
|
-
Injector.register(token, targetProvider,
|
|
56
|
+
Injector.register(token, targetProvider, mergedRegistationOptions);
|
|
28
57
|
if (isDefined(aliases)) {
|
|
29
58
|
for (const alias of toArray(aliases)) {
|
|
30
|
-
Injector.register(alias, { useToken: token }
|
|
59
|
+
Injector.register(alias, { useToken: token });
|
|
31
60
|
}
|
|
32
61
|
}
|
|
33
|
-
}
|
|
62
|
+
},
|
|
34
63
|
});
|
|
35
64
|
}
|
|
36
65
|
/**
|
|
@@ -109,8 +138,8 @@ export function InjectArg(mapperOrKey) {
|
|
|
109
138
|
injectArgumentMapper: isFunction(mapperOrKey)
|
|
110
139
|
? mapperOrKey
|
|
111
140
|
: isDefined(mapperOrKey)
|
|
112
|
-
? (
|
|
113
|
-
: (
|
|
141
|
+
? (value) => value[mapperOrKey]
|
|
142
|
+
: (value) => value,
|
|
114
143
|
});
|
|
115
144
|
}
|
|
116
145
|
export function ForwardArg(mapper = (value) => value) {
|
|
@@ -131,7 +160,7 @@ export function Optional() {
|
|
|
131
160
|
export function ForwardRef(token, argument, options) {
|
|
132
161
|
const injectMetadata = {
|
|
133
162
|
forwardRef: token ?? true,
|
|
134
|
-
forwardRefTypeHint: options?.forwardRefTypeHint
|
|
163
|
+
forwardRefTypeHint: options?.forwardRefTypeHint,
|
|
135
164
|
};
|
|
136
165
|
if (isDefined(argument)) {
|
|
137
166
|
injectMetadata.resolveArgumentProvider = () => argument;
|
|
@@ -144,6 +173,6 @@ function createInjectDecorator(metadata) {
|
|
|
144
173
|
accessor: true,
|
|
145
174
|
constructorParameter: true,
|
|
146
175
|
data: { [injectMetadataSymbol]: metadata },
|
|
147
|
-
mergeData: true
|
|
176
|
+
mergeData: true,
|
|
148
177
|
});
|
|
149
178
|
}
|