@fin.cx/einvoice 6.0.0 → 6.1.1
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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/plugins.browser.d.ts +15 -0
- package/dist_ts/plugins.browser.js +33 -0
- package/dist_ts/vendor/pdflib.browser.d.ts +2 -0
- package/dist_ts/vendor/pdflib.browser.js +6 -0
- package/package.json +5 -1
- package/readme.md +6 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/plugins.browser.ts +50 -0
- package/ts/vendor/pdflib.browser.ts +8 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@fin.cx/einvoice',
|
|
6
|
-
version: '6.
|
|
6
|
+
version: '6.1.1',
|
|
7
7
|
description: 'A TypeScript module for creating, manipulating, and embedding XML data within PDF files specifically tailored for electronic invoice (einvoice) packages.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDJKQUEySjtDQUN6SyxDQUFBIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe plugin exports.
|
|
3
|
+
*
|
|
4
|
+
* The public EInvoice API supports in-memory XML creation/export in browser
|
|
5
|
+
* bundles. File-path based helpers remain Node-only and throw when called in a
|
|
6
|
+
* browser environment.
|
|
7
|
+
*/
|
|
8
|
+
import { DOMParser, XMLSerializer, xmldom } from './vendor/xmldom.js';
|
|
9
|
+
import * as xpath from 'xpath';
|
|
10
|
+
import { pako } from './vendor/pako.js';
|
|
11
|
+
import { business, finance, general } from '@tsclass/tsclass';
|
|
12
|
+
declare const fs: typeof import("fs/promises");
|
|
13
|
+
declare const path: typeof import("path");
|
|
14
|
+
declare const crypto: typeof import("crypto");
|
|
15
|
+
export { fs, path, crypto, DOMParser, XMLSerializer, xmldom, xpath, pako, business, finance, general, };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe plugin exports.
|
|
3
|
+
*
|
|
4
|
+
* The public EInvoice API supports in-memory XML creation/export in browser
|
|
5
|
+
* bundles. File-path based helpers remain Node-only and throw when called in a
|
|
6
|
+
* browser environment.
|
|
7
|
+
*/
|
|
8
|
+
import { DOMParser, XMLSerializer, xmldom } from './vendor/xmldom.js';
|
|
9
|
+
import * as xpath from 'xpath';
|
|
10
|
+
import { pako } from './vendor/pako.js';
|
|
11
|
+
import { business, finance, general } from '@tsclass/tsclass';
|
|
12
|
+
const nodeOnly = (apiName) => {
|
|
13
|
+
throw new Error(`${apiName} is only available in Node.js. Use the in-memory XML APIs in browser bundles.`);
|
|
14
|
+
};
|
|
15
|
+
const fs = {
|
|
16
|
+
readFile: async () => nodeOnly('fs.readFile'),
|
|
17
|
+
writeFile: async () => nodeOnly('fs.writeFile'),
|
|
18
|
+
};
|
|
19
|
+
const path = {
|
|
20
|
+
basename: (filePath) => filePath.split(/[\\/]/).pop() || filePath,
|
|
21
|
+
};
|
|
22
|
+
const crypto = {
|
|
23
|
+
createHash: () => ({
|
|
24
|
+
update() {
|
|
25
|
+
return this;
|
|
26
|
+
},
|
|
27
|
+
digest() {
|
|
28
|
+
return nodeOnly('crypto.createHash');
|
|
29
|
+
},
|
|
30
|
+
}),
|
|
31
|
+
};
|
|
32
|
+
export { fs, path, crypto, DOMParser, XMLSerializer, xmldom, xpath, pako, business, finance, general, };
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5icm93c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvcGx1Z2lucy5icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RCxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQWUsRUFBUyxFQUFFO0lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxPQUFPLCtFQUErRSxDQUFDLENBQUM7QUFDN0csQ0FBQyxDQUFDO0FBRUYsTUFBTSxFQUFFLEdBQUc7SUFDVCxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQzdDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7Q0FDTCxDQUFDO0FBRTdDLE1BQU0sSUFBSSxHQUFHO0lBQ1gsUUFBUSxFQUFFLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxRQUFRO0NBQ3RDLENBQUM7QUFFdEMsTUFBTSxNQUFNLEdBQUc7SUFDYixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNO1lBQ0osT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTTtZQUNKLE9BQU8sUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsQ0FBQztLQUNGLENBQUM7Q0FDbUMsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsRUFBRSxFQUNGLElBQUksRUFDSixNQUFNLEVBQ04sU0FBUyxFQUNULGFBQWEsRUFDYixNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSixRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sR0FDUixDQUFDIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
let cachedPdfLib;
|
|
2
|
+
export const loadPdfLib = async () => {
|
|
3
|
+
cachedPdfLib ||= import('pdf-lib');
|
|
4
|
+
return cachedPdfLib;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmbGliLmJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy92ZW5kb3IvcGRmbGliLmJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsSUFBSSxZQUFnRCxDQUFDO0FBRXJELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQTRCLEVBQUU7SUFDM0QsWUFBWSxLQUFLLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQyxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fin.cx/einvoice",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A TypeScript module for creating, manipulating, and embedding XML data within PDF files specifically tailored for electronic invoice (einvoice) packages.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
7
7
|
"typings": "dist_ts/index.d.ts",
|
|
8
|
+
"browser": {
|
|
9
|
+
"./dist_ts/plugins.js": "./dist_ts/plugins.browser.js",
|
|
10
|
+
"./dist_ts/vendor/pdflib.js": "./dist_ts/vendor/pdflib.browser.js"
|
|
11
|
+
},
|
|
8
12
|
"type": "module",
|
|
9
13
|
"author": "Task Venture Capital GmbH",
|
|
10
14
|
"license": "MIT",
|
package/readme.md
CHANGED
|
@@ -58,6 +58,12 @@ if (!validation.valid) {
|
|
|
58
58
|
const xrechnungXml = await invoice.exportXml('xrechnung');
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
## Browser Bundles
|
|
62
|
+
|
|
63
|
+
`@fin.cx/einvoice` provides a browser replacement for its internal Node plugin module. Browser bundlers can use the published package entry for in-memory XML workflows such as `createEInvoice()`, `EInvoice.fromXml()`, `invoice.exportXml(...)`, and `validateXml(xml)` without resolving Node built-ins like `fs`, `path`, or `crypto`.
|
|
64
|
+
|
|
65
|
+
File-path and PDF file helpers remain Node-only. In browser bundles, use XML strings, `ArrayBuffer` or `Uint8Array` data you already loaded through browser APIs, and browser storage APIs for persistence instead of helpers such as `EInvoice.fromFile(...)` or `invoice.saveToFile(...)`.
|
|
66
|
+
|
|
61
67
|
## What it can do
|
|
62
68
|
|
|
63
69
|
### Load and inspect invoices
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@fin.cx/einvoice',
|
|
6
|
-
version: '6.
|
|
6
|
+
version: '6.1.1',
|
|
7
7
|
description: 'A TypeScript module for creating, manipulating, and embedding XML data within PDF files specifically tailored for electronic invoice (einvoice) packages.'
|
|
8
8
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe plugin exports.
|
|
3
|
+
*
|
|
4
|
+
* The public EInvoice API supports in-memory XML creation/export in browser
|
|
5
|
+
* bundles. File-path based helpers remain Node-only and throw when called in a
|
|
6
|
+
* browser environment.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { DOMParser, XMLSerializer, xmldom } from './vendor/xmldom.js';
|
|
10
|
+
import * as xpath from 'xpath';
|
|
11
|
+
import { pako } from './vendor/pako.js';
|
|
12
|
+
import { business, finance, general } from '@tsclass/tsclass';
|
|
13
|
+
|
|
14
|
+
const nodeOnly = (apiName: string): never => {
|
|
15
|
+
throw new Error(`${apiName} is only available in Node.js. Use the in-memory XML APIs in browser bundles.`);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const fs = {
|
|
19
|
+
readFile: async () => nodeOnly('fs.readFile'),
|
|
20
|
+
writeFile: async () => nodeOnly('fs.writeFile'),
|
|
21
|
+
} as unknown as typeof import('fs/promises');
|
|
22
|
+
|
|
23
|
+
const path = {
|
|
24
|
+
basename: (filePath: string) => filePath.split(/[\\/]/).pop() || filePath,
|
|
25
|
+
} as unknown as typeof import('path');
|
|
26
|
+
|
|
27
|
+
const crypto = {
|
|
28
|
+
createHash: () => ({
|
|
29
|
+
update() {
|
|
30
|
+
return this;
|
|
31
|
+
},
|
|
32
|
+
digest() {
|
|
33
|
+
return nodeOnly('crypto.createHash');
|
|
34
|
+
},
|
|
35
|
+
}),
|
|
36
|
+
} as unknown as typeof import('crypto');
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
fs,
|
|
40
|
+
path,
|
|
41
|
+
crypto,
|
|
42
|
+
DOMParser,
|
|
43
|
+
XMLSerializer,
|
|
44
|
+
xmldom,
|
|
45
|
+
xpath,
|
|
46
|
+
pako,
|
|
47
|
+
business,
|
|
48
|
+
finance,
|
|
49
|
+
general,
|
|
50
|
+
};
|