@lilaquadrat/interfaces 1.34.0 → 1.35.0

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/lib/cjs/CustomerPerson.d.ts +1 -1
  3. package/lib/cjs/Invoice.d.ts +34 -0
  4. package/lib/cjs/InvoiceAttachment.d.ts +7 -0
  5. package/lib/cjs/InvoiceLine.d.ts +12 -0
  6. package/lib/cjs/InvoiceParty.d.ts +15 -0
  7. package/lib/cjs/InvoicePaymentMeans.d.ts +9 -0
  8. package/lib/cjs/InvoiceReferences.d.ts +5 -0
  9. package/lib/cjs/InvoiceTaxBreakdown.d.ts +5 -0
  10. package/lib/cjs/InvoiceTotals.d.ts +7 -0
  11. package/lib/cjs/InvoiceWithXml.d.ts +4 -0
  12. package/lib/cjs/ProjectDomainWithSecret.d.ts +1 -1
  13. package/lib/cjs/index.d.ts +9 -0
  14. package/lib/esm/CustomerPerson.d.ts +1 -1
  15. package/lib/esm/Invoice.d.ts +34 -0
  16. package/lib/esm/Invoice.js +2 -0
  17. package/lib/esm/Invoice.js.map +1 -0
  18. package/lib/esm/InvoiceAttachment.d.ts +7 -0
  19. package/lib/esm/InvoiceAttachment.js +2 -0
  20. package/lib/esm/InvoiceAttachment.js.map +1 -0
  21. package/lib/esm/InvoiceLine.d.ts +12 -0
  22. package/lib/esm/InvoiceLine.js +2 -0
  23. package/lib/esm/InvoiceLine.js.map +1 -0
  24. package/lib/esm/InvoiceParty.d.ts +15 -0
  25. package/lib/esm/InvoiceParty.js +2 -0
  26. package/lib/esm/InvoiceParty.js.map +1 -0
  27. package/lib/esm/InvoicePaymentMeans.d.ts +9 -0
  28. package/lib/esm/InvoicePaymentMeans.js +2 -0
  29. package/lib/esm/InvoicePaymentMeans.js.map +1 -0
  30. package/lib/esm/InvoiceReferences.d.ts +5 -0
  31. package/lib/esm/InvoiceReferences.js +2 -0
  32. package/lib/esm/InvoiceReferences.js.map +1 -0
  33. package/lib/esm/InvoiceTaxBreakdown.d.ts +5 -0
  34. package/lib/esm/InvoiceTaxBreakdown.js +2 -0
  35. package/lib/esm/InvoiceTaxBreakdown.js.map +1 -0
  36. package/lib/esm/InvoiceTotals.d.ts +7 -0
  37. package/lib/esm/InvoiceTotals.js +2 -0
  38. package/lib/esm/InvoiceTotals.js.map +1 -0
  39. package/lib/esm/InvoiceWithXml.d.ts +4 -0
  40. package/lib/esm/InvoiceWithXml.js +2 -0
  41. package/lib/esm/InvoiceWithXml.js.map +1 -0
  42. package/lib/esm/ProjectDomainWithSecret.d.ts +1 -1
  43. package/lib/esm/index.d.ts +9 -0
  44. package/package.json +1 -1
  45. package/src/CustomerPerson.ts +1 -1
  46. package/src/Invoice.ts +38 -0
  47. package/src/InvoiceAttachment.ts +7 -0
  48. package/src/InvoiceLine.ts +12 -0
  49. package/src/InvoiceParty.ts +15 -0
  50. package/src/InvoicePaymentMeans.ts +9 -0
  51. package/src/InvoiceReferences.ts +5 -0
  52. package/src/InvoiceTaxBreakdown.ts +5 -0
  53. package/src/InvoiceTotals.ts +7 -0
  54. package/src/InvoiceWithXml.ts +5 -0
  55. package/src/ProjectDomainWithSecret.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [1.35.0](https://github.com/lilaquadrat/interfaces/compare/v1.34.1...v1.35.0) (2026-01-16)
6
+
7
+
8
+ ### Features
9
+
10
+ * **Invoice:** add invoice-related interfaces and types for structured invoice management ([ac928be](https://github.com/lilaquadrat/interfaces/commit/ac928be59e4009c2d23402a0f4e3e38ba3b8678a))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **CustomerPerson:** make prename optional in CustomerPerson interface ([0826980](https://github.com/lilaquadrat/interfaces/commit/0826980f7eb341058e5fbae5c8d48cac7c3af7ae))
16
+
17
+ ### [1.34.1](https://github.com/lilaquadrat/interfaces/compare/v1.34.0...v1.34.1) (2026-01-03)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **ProjectDomain:** rename interface to ProjectDomainWithSecret for clarity ([617e7ae](https://github.com/lilaquadrat/interfaces/commit/617e7aecc2efafd10227902754f5b32c18b8a5a7))
23
+
5
24
  ## [1.34.0](https://github.com/lilaquadrat/interfaces/compare/v1.33.2...v1.34.0) (2026-01-03)
6
25
 
7
26
 
@@ -2,7 +2,7 @@ import { CustomerAccounts } from "./CustomerAccounts";
2
2
  import { CustomerBase } from "./CustomerBase";
3
3
  export interface CustomerPerson extends CustomerBase {
4
4
  type?: 'person';
5
- prename: string;
5
+ prename?: string;
6
6
  gender?: 'm' | 'w' | 'd';
7
7
  accounts?: CustomerAccounts[];
8
8
  }
@@ -0,0 +1,34 @@
1
+ import { ObjectId } from "mongodb";
2
+ import { InvoiceAttachment } from "./InvoiceAttachment";
3
+ import { InvoiceLine } from "./InvoiceLine";
4
+ import { InvoiceParty } from "./InvoiceParty";
5
+ import { InvoicePaymentMeans } from "./InvoicePaymentMeans";
6
+ import { InvoiceReferences } from "./InvoiceReferences";
7
+ import { InvoiceTaxBreakdown } from "./InvoiceTaxBreakdown";
8
+ import { InvoiceTotals } from "./InvoiceTotals";
9
+ export type InvoiceProfile = 'zugferd-basic' | 'zugferd-comfort' | 'zugferd-extended' | 'xrechnung';
10
+ export type InvoiceState = 'draft' | 'issued' | 'sent' | 'paid' | 'cancelled';
11
+ export interface Invoice {
12
+ _id?: ObjectId;
13
+ id?: number | string;
14
+ company: string;
15
+ project: string;
16
+ app: string;
17
+ profile: InvoiceProfile;
18
+ state: InvoiceState;
19
+ invoiceNumber?: string;
20
+ issueDate: string;
21
+ deliveryDate?: string;
22
+ dueDate?: string;
23
+ seller: InvoiceParty;
24
+ buyer: InvoiceParty;
25
+ lines: InvoiceLine[];
26
+ taxBreakdown: InvoiceTaxBreakdown[];
27
+ totals: InvoiceTotals;
28
+ paymentMeans?: InvoicePaymentMeans;
29
+ references?: InvoiceReferences;
30
+ notes?: string[];
31
+ attachments?: InvoiceAttachment[];
32
+ paymentId?: ObjectId;
33
+ customer?: ObjectId;
34
+ }
@@ -0,0 +1,7 @@
1
+ export interface InvoiceAttachment {
2
+ type: 'pdf' | 'xml';
3
+ name: string;
4
+ mimeType: string;
5
+ key?: string;
6
+ size?: number;
7
+ }
@@ -0,0 +1,12 @@
1
+ export interface InvoiceLine {
2
+ description: string;
3
+ quantity: number;
4
+ unitPrice: number;
5
+ taxRate: number;
6
+ taxAmount: number;
7
+ netAmount: number;
8
+ grossAmount: number;
9
+ unit?: string;
10
+ position?: number;
11
+ productId?: string;
12
+ }
@@ -0,0 +1,15 @@
1
+ export interface InvoiceParty {
2
+ name: string;
3
+ street: string;
4
+ zipcode: string;
5
+ city: string;
6
+ countryCode: string;
7
+ vatId?: string;
8
+ taxNumber?: string;
9
+ legalEntity?: string;
10
+ contactName?: string;
11
+ contactEmail?: string;
12
+ buyerReference?: string;
13
+ gln?: string;
14
+ leitwegId?: string;
15
+ }
@@ -0,0 +1,9 @@
1
+ export interface InvoicePaymentMeans {
2
+ method: 'sepa-credit-transfer' | 'bank-transfer' | 'card' | 'cash';
3
+ iban?: string;
4
+ bic?: string;
5
+ accountHolder?: string;
6
+ sepaMandateId?: string;
7
+ paymentTerms?: string;
8
+ dueDate?: string;
9
+ }
@@ -0,0 +1,5 @@
1
+ export interface InvoiceReferences {
2
+ orderReference?: string;
3
+ contractReference?: string;
4
+ paymentReference?: string;
5
+ }
@@ -0,0 +1,5 @@
1
+ export interface InvoiceTaxBreakdown {
2
+ rate: number;
3
+ baseAmount: number;
4
+ taxAmount: number;
5
+ }
@@ -0,0 +1,7 @@
1
+ export interface InvoiceTotals {
2
+ netTotal: number;
3
+ taxTotal: number;
4
+ grossTotal: number;
5
+ currency: string;
6
+ rounding?: number;
7
+ }
@@ -0,0 +1,4 @@
1
+ import { Invoice } from "./Invoice";
2
+ export interface InvoiceWithXml extends Invoice {
3
+ xml: string;
4
+ }
@@ -1,6 +1,6 @@
1
1
  import { Domain } from "./Domain";
2
2
  import { Secret } from "./Secret";
3
- export interface ProjectDomain extends Omit<Domain, 'secret'> {
3
+ export interface ProjectDomainWithSecret extends Omit<Domain, 'secret'> {
4
4
  company: string;
5
5
  project: string;
6
6
  secret: Secret;
@@ -106,6 +106,15 @@ export * from './IdentifiersEntity';
106
106
  export * from './ImportExportData';
107
107
  export * from './ImportJob';
108
108
  export * from './IndexModule';
109
+ export * from './Invoice';
110
+ export * from './InvoiceAttachment';
111
+ export * from './InvoiceLine';
112
+ export * from './InvoiceParty';
113
+ export * from './InvoicePaymentMeans';
114
+ export * from './InvoiceReferences';
115
+ export * from './InvoiceTaxBreakdown';
116
+ export * from './InvoiceTotals';
117
+ export * from './InvoiceWithXml';
109
118
  export * from './Link';
110
119
  export * from './LinkGroupElement';
111
120
  export * from './List';
@@ -2,7 +2,7 @@ import { CustomerAccounts } from "./CustomerAccounts";
2
2
  import { CustomerBase } from "./CustomerBase";
3
3
  export interface CustomerPerson extends CustomerBase {
4
4
  type?: 'person';
5
- prename: string;
5
+ prename?: string;
6
6
  gender?: 'm' | 'w' | 'd';
7
7
  accounts?: CustomerAccounts[];
8
8
  }
@@ -0,0 +1,34 @@
1
+ import { ObjectId } from "mongodb";
2
+ import { InvoiceAttachment } from "./InvoiceAttachment";
3
+ import { InvoiceLine } from "./InvoiceLine";
4
+ import { InvoiceParty } from "./InvoiceParty";
5
+ import { InvoicePaymentMeans } from "./InvoicePaymentMeans";
6
+ import { InvoiceReferences } from "./InvoiceReferences";
7
+ import { InvoiceTaxBreakdown } from "./InvoiceTaxBreakdown";
8
+ import { InvoiceTotals } from "./InvoiceTotals";
9
+ export type InvoiceProfile = 'zugferd-basic' | 'zugferd-comfort' | 'zugferd-extended' | 'xrechnung';
10
+ export type InvoiceState = 'draft' | 'issued' | 'sent' | 'paid' | 'cancelled';
11
+ export interface Invoice {
12
+ _id?: ObjectId;
13
+ id?: number | string;
14
+ company: string;
15
+ project: string;
16
+ app: string;
17
+ profile: InvoiceProfile;
18
+ state: InvoiceState;
19
+ invoiceNumber?: string;
20
+ issueDate: string;
21
+ deliveryDate?: string;
22
+ dueDate?: string;
23
+ seller: InvoiceParty;
24
+ buyer: InvoiceParty;
25
+ lines: InvoiceLine[];
26
+ taxBreakdown: InvoiceTaxBreakdown[];
27
+ totals: InvoiceTotals;
28
+ paymentMeans?: InvoicePaymentMeans;
29
+ references?: InvoiceReferences;
30
+ notes?: string[];
31
+ attachments?: InvoiceAttachment[];
32
+ paymentId?: ObjectId;
33
+ customer?: ObjectId;
34
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Invoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Invoice.js","sourceRoot":"","sources":["../../src/Invoice.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export interface InvoiceAttachment {
2
+ type: 'pdf' | 'xml';
3
+ name: string;
4
+ mimeType: string;
5
+ key?: string;
6
+ size?: number;
7
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoiceAttachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceAttachment.js","sourceRoot":"","sources":["../../src/InvoiceAttachment.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export interface InvoiceLine {
2
+ description: string;
3
+ quantity: number;
4
+ unitPrice: number;
5
+ taxRate: number;
6
+ taxAmount: number;
7
+ netAmount: number;
8
+ grossAmount: number;
9
+ unit?: string;
10
+ position?: number;
11
+ productId?: string;
12
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoiceLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceLine.js","sourceRoot":"","sources":["../../src/InvoiceLine.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ export interface InvoiceParty {
2
+ name: string;
3
+ street: string;
4
+ zipcode: string;
5
+ city: string;
6
+ countryCode: string;
7
+ vatId?: string;
8
+ taxNumber?: string;
9
+ legalEntity?: string;
10
+ contactName?: string;
11
+ contactEmail?: string;
12
+ buyerReference?: string;
13
+ gln?: string;
14
+ leitwegId?: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoiceParty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceParty.js","sourceRoot":"","sources":["../../src/InvoiceParty.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export interface InvoicePaymentMeans {
2
+ method: 'sepa-credit-transfer' | 'bank-transfer' | 'card' | 'cash';
3
+ iban?: string;
4
+ bic?: string;
5
+ accountHolder?: string;
6
+ sepaMandateId?: string;
7
+ paymentTerms?: string;
8
+ dueDate?: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoicePaymentMeans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoicePaymentMeans.js","sourceRoot":"","sources":["../../src/InvoicePaymentMeans.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export interface InvoiceReferences {
2
+ orderReference?: string;
3
+ contractReference?: string;
4
+ paymentReference?: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoiceReferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceReferences.js","sourceRoot":"","sources":["../../src/InvoiceReferences.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export interface InvoiceTaxBreakdown {
2
+ rate: number;
3
+ baseAmount: number;
4
+ taxAmount: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoiceTaxBreakdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceTaxBreakdown.js","sourceRoot":"","sources":["../../src/InvoiceTaxBreakdown.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export interface InvoiceTotals {
2
+ netTotal: number;
3
+ taxTotal: number;
4
+ grossTotal: number;
5
+ currency: string;
6
+ rounding?: number;
7
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoiceTotals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceTotals.js","sourceRoot":"","sources":["../../src/InvoiceTotals.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { Invoice } from "./Invoice";
2
+ export interface InvoiceWithXml extends Invoice {
3
+ xml: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoiceWithXml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoiceWithXml.js","sourceRoot":"","sources":["../../src/InvoiceWithXml.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { Domain } from "./Domain";
2
2
  import { Secret } from "./Secret";
3
- export interface ProjectDomain extends Omit<Domain, 'secret'> {
3
+ export interface ProjectDomainWithSecret extends Omit<Domain, 'secret'> {
4
4
  company: string;
5
5
  project: string;
6
6
  secret: Secret;
@@ -106,6 +106,15 @@ export * from './IdentifiersEntity';
106
106
  export * from './ImportExportData';
107
107
  export * from './ImportJob';
108
108
  export * from './IndexModule';
109
+ export * from './Invoice';
110
+ export * from './InvoiceAttachment';
111
+ export * from './InvoiceLine';
112
+ export * from './InvoiceParty';
113
+ export * from './InvoicePaymentMeans';
114
+ export * from './InvoiceReferences';
115
+ export * from './InvoiceTaxBreakdown';
116
+ export * from './InvoiceTotals';
117
+ export * from './InvoiceWithXml';
109
118
  export * from './Link';
110
119
  export * from './LinkGroupElement';
111
120
  export * from './List';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lilaquadrat/interfaces",
3
- "version": "1.34.0",
3
+ "version": "1.35.0",
4
4
  "description": "interfaces in context of lilaquadrat STUDIO",
5
5
  "author": {
6
6
  "email": "m.schuebel@lila2.de",
@@ -5,7 +5,7 @@ export interface CustomerPerson extends CustomerBase {
5
5
 
6
6
  type?: 'person'
7
7
 
8
- prename: string
8
+ prename?: string
9
9
 
10
10
  // birthday?: Date
11
11
  gender?: 'm' | 'w' | 'd'
package/src/Invoice.ts ADDED
@@ -0,0 +1,38 @@
1
+ import { ObjectId } from "mongodb"
2
+ import { InvoiceAttachment } from "./InvoiceAttachment"
3
+ import { InvoiceLine } from "./InvoiceLine"
4
+ import { InvoiceParty } from "./InvoiceParty"
5
+ import { InvoicePaymentMeans } from "./InvoicePaymentMeans"
6
+ import { InvoiceReferences } from "./InvoiceReferences"
7
+ import { InvoiceTaxBreakdown } from "./InvoiceTaxBreakdown"
8
+ import { InvoiceTotals } from "./InvoiceTotals"
9
+
10
+ export type InvoiceProfile = 'zugferd-basic' | 'zugferd-comfort' | 'zugferd-extended' | 'xrechnung'
11
+
12
+ export type InvoiceState = 'draft' | 'issued' | 'sent' | 'paid' | 'cancelled'
13
+
14
+ export interface Invoice {
15
+ _id?: ObjectId
16
+ id?: number | string
17
+ company: string
18
+ project: string
19
+ app: string
20
+ profile: InvoiceProfile
21
+ state: InvoiceState
22
+ invoiceNumber?: string
23
+ issueDate: string
24
+ deliveryDate?: string
25
+ dueDate?: string
26
+ seller: InvoiceParty
27
+ buyer: InvoiceParty
28
+ lines: InvoiceLine[]
29
+ taxBreakdown: InvoiceTaxBreakdown[]
30
+ totals: InvoiceTotals
31
+ paymentMeans?: InvoicePaymentMeans
32
+ references?: InvoiceReferences
33
+ notes?: string[]
34
+ attachments?: InvoiceAttachment[]
35
+ paymentId?: ObjectId
36
+ customer?: ObjectId
37
+ }
38
+
@@ -0,0 +1,7 @@
1
+ export interface InvoiceAttachment {
2
+ type: 'pdf' | 'xml'
3
+ name: string
4
+ mimeType: string
5
+ key?: string
6
+ size?: number
7
+ }
@@ -0,0 +1,12 @@
1
+ export interface InvoiceLine {
2
+ description: string
3
+ quantity: number
4
+ unitPrice: number
5
+ taxRate: number
6
+ taxAmount: number
7
+ netAmount: number
8
+ grossAmount: number
9
+ unit?: string
10
+ position?: number
11
+ productId?: string
12
+ }
@@ -0,0 +1,15 @@
1
+ export interface InvoiceParty {
2
+ name: string
3
+ street: string
4
+ zipcode: string
5
+ city: string
6
+ countryCode: string
7
+ vatId?: string
8
+ taxNumber?: string
9
+ legalEntity?: string
10
+ contactName?: string
11
+ contactEmail?: string
12
+ buyerReference?: string
13
+ gln?: string
14
+ leitwegId?: string
15
+ }
@@ -0,0 +1,9 @@
1
+ export interface InvoicePaymentMeans {
2
+ method: 'sepa-credit-transfer' | 'bank-transfer' | 'card' | 'cash'
3
+ iban?: string
4
+ bic?: string
5
+ accountHolder?: string
6
+ sepaMandateId?: string
7
+ paymentTerms?: string
8
+ dueDate?: string
9
+ }
@@ -0,0 +1,5 @@
1
+ export interface InvoiceReferences {
2
+ orderReference?: string
3
+ contractReference?: string
4
+ paymentReference?: string
5
+ }
@@ -0,0 +1,5 @@
1
+ export interface InvoiceTaxBreakdown {
2
+ rate: number
3
+ baseAmount: number
4
+ taxAmount: number
5
+ }
@@ -0,0 +1,7 @@
1
+ export interface InvoiceTotals {
2
+ netTotal: number
3
+ taxTotal: number
4
+ grossTotal: number
5
+ currency: string
6
+ rounding?: number
7
+ }
@@ -0,0 +1,5 @@
1
+ import { Invoice } from "./Invoice"
2
+
3
+ export interface InvoiceWithXml extends Invoice {
4
+ xml: string
5
+ }
@@ -1,7 +1,7 @@
1
1
  import { Domain } from "./Domain";
2
2
  import { Secret } from "./Secret";
3
3
 
4
- export interface ProjectDomain extends Omit<Domain, 'secret'> {
4
+ export interface ProjectDomainWithSecret extends Omit<Domain, 'secret'> {
5
5
  company: string
6
6
  project: string
7
7
  secret: Secret