@activepieces/piece-polydoc 0.0.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.
Files changed (45) hide show
  1. package/package.json +17 -0
  2. package/src/index.d.ts +5 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js +37 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/actions/capture-screenshot.d.ts +24 -0
  7. package/src/lib/actions/capture-screenshot.d.ts.map +1 -0
  8. package/src/lib/actions/capture-screenshot.js +112 -0
  9. package/src/lib/actions/capture-screenshot.js.map +1 -0
  10. package/src/lib/actions/convert-pdf.d.ts +28 -0
  11. package/src/lib/actions/convert-pdf.d.ts.map +1 -0
  12. package/src/lib/actions/convert-pdf.js +111 -0
  13. package/src/lib/actions/convert-pdf.js.map +1 -0
  14. package/src/lib/actions/generate-einvoice.d.ts +21 -0
  15. package/src/lib/actions/generate-einvoice.d.ts.map +1 -0
  16. package/src/lib/actions/generate-einvoice.js +111 -0
  17. package/src/lib/actions/generate-einvoice.js.map +1 -0
  18. package/src/lib/common/auth.d.ts +5 -0
  19. package/src/lib/common/auth.d.ts.map +1 -0
  20. package/src/lib/common/auth.js +62 -0
  21. package/src/lib/common/auth.js.map +1 -0
  22. package/src/lib/common/build-request-body.d.ts +11 -0
  23. package/src/lib/common/build-request-body.d.ts.map +1 -0
  24. package/src/lib/common/build-request-body.js +172 -0
  25. package/src/lib/common/build-request-body.js.map +1 -0
  26. package/src/lib/common/client.d.ts +20 -0
  27. package/src/lib/common/client.d.ts.map +1 -0
  28. package/src/lib/common/client.js +68 -0
  29. package/src/lib/common/client.js.map +1 -0
  30. package/src/lib/common/constants.d.ts +41 -0
  31. package/src/lib/common/constants.d.ts.map +1 -0
  32. package/src/lib/common/constants.js +28 -0
  33. package/src/lib/common/constants.js.map +1 -0
  34. package/src/lib/common/output.d.ts +24 -0
  35. package/src/lib/common/output.d.ts.map +1 -0
  36. package/src/lib/common/output.js +53 -0
  37. package/src/lib/common/output.js.map +1 -0
  38. package/src/lib/common/props.d.ts +20 -0
  39. package/src/lib/common/props.d.ts.map +1 -0
  40. package/src/lib/common/props.js +144 -0
  41. package/src/lib/common/props.js.map +1 -0
  42. package/src/lib/common/types.d.ts +37 -0
  43. package/src/lib/common/types.d.ts.map +1 -0
  44. package/src/lib/common/types.js +3 -0
  45. package/src/lib/common/types.js.map +1 -0
package/package.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@activepieces/piece-polydoc",
3
+ "version": "0.0.1",
4
+ "type": "commonjs",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "dependencies": {
8
+ "@activepieces/pieces-common": "0.12.5",
9
+ "@activepieces/pieces-framework": "0.32.0",
10
+ "@activepieces/shared": "0.95.1",
11
+ "tslib": "2.6.2"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc -p tsconfig.lib.json && cp package.json dist/",
15
+ "lint": "eslint 'src/**/*.ts'"
16
+ }
17
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export declare const polydoc: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ apiKey: import("@activepieces/pieces-framework").SecretTextProperty<true>;
3
+ sandbox: import("@activepieces/pieces-framework").CheckboxProperty<false>;
4
+ }>>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,OAAO;;;GAuBlB,CAAC"}
package/src/index.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.polydoc = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const shared_1 = require("@activepieces/shared");
7
+ const capture_screenshot_1 = require("./lib/actions/capture-screenshot");
8
+ const convert_pdf_1 = require("./lib/actions/convert-pdf");
9
+ const generate_einvoice_1 = require("./lib/actions/generate-einvoice");
10
+ const auth_1 = require("./lib/common/auth");
11
+ const pieces_common_1 = require("@activepieces/pieces-common");
12
+ exports.polydoc = (0, pieces_framework_1.createPiece)({
13
+ displayName: 'PolyDoc',
14
+ description: 'Convert HTML or a URL to PDF, capture screenshots, and generate EU e-invoices (Factur-X / ZUGFeRD).',
15
+ auth: auth_1.polydocAuth,
16
+ minimumSupportedRelease: '0.36.1',
17
+ logoUrl: 'https://cdn.activepieces.com/pieces/polydoc.png',
18
+ categories: [shared_1.PieceCategory.CONTENT_AND_FILES, shared_1.PieceCategory.PRODUCTIVITY],
19
+ authors: ['polydoc-tech', 'sanket-a11y'],
20
+ actions: [
21
+ convert_pdf_1.convertToPdf,
22
+ capture_screenshot_1.captureScreenshot,
23
+ generate_einvoice_1.generateEinvoice,
24
+ (0, pieces_common_1.createCustomApiCallAction)({
25
+ baseUrl: () => 'https://api.podio.com',
26
+ auth: auth_1.polydocAuth,
27
+ authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
28
+ return ({
29
+ Authorization: `Bearer ${auth.props.apikey}`,
30
+ 'X-Sandbox': auth.props.sandbox ? 'true' : 'false',
31
+ });
32
+ }),
33
+ }),
34
+ ],
35
+ triggers: [],
36
+ });
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAA6D;AAC7D,iDAAqD;AACrD,yEAAqE;AACrE,2DAAyD;AACzD,uEAAmE;AACnE,4CAAgD;AAChD,+DAAwE;AAE3D,QAAA,OAAO,GAAG,IAAA,8BAAW,EAAC;IACjC,WAAW,EAAE,SAAS;IACtB,WAAW,EACT,qGAAqG;IACvG,IAAI,EAAE,kBAAW;IACjB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,iDAAiD;IAC1D,UAAU,EAAE,CAAC,sBAAa,CAAC,iBAAiB,EAAE,sBAAa,CAAC,YAAY,CAAC;IACzE,OAAO,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC;IACxC,OAAO,EAAE;QACP,0BAAY;QACZ,sCAAiB;QACjB,oCAAgB;QAChB,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,GAAG,EAAE,CAAC,uBAAuB;YACtC,IAAI,EAAE,kBAAW;YACjB,WAAW,EAAE,CAAO,IAAS,EAAE,EAAE;gBAAC,OAAA,CAAC;oBACjC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC5C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;iBACnD,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare const captureScreenshot: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ apiKey: import("@activepieces/pieces-framework").SecretTextProperty<true>;
3
+ sandbox: import("@activepieces/pieces-framework").CheckboxProperty<false>;
4
+ }>, {
5
+ sourceType: import("@activepieces/pieces-framework").StaticDropdownProperty<"url" | "html" | "template", true>;
6
+ source: import("@activepieces/pieces-framework").LongTextProperty<true>;
7
+ templateData: import("@activepieces/pieces-framework").JsonProperty<false>;
8
+ imageType: import("@activepieces/pieces-framework").StaticDropdownProperty<"png" | "jpeg" | "webp", false>;
9
+ fullPage: import("@activepieces/pieces-framework").CheckboxProperty<false>;
10
+ quality: import("@activepieces/pieces-framework").NumberProperty<false>;
11
+ viewportWidth: import("@activepieces/pieces-framework").NumberProperty<false>;
12
+ viewportHeight: import("@activepieces/pieces-framework").NumberProperty<false>;
13
+ devicePixelRatio: import("@activepieces/pieces-framework").NumberProperty<false>;
14
+ outputEncoding: import("@activepieces/pieces-framework").StaticDropdownProperty<"binaryFile" | "base64", false>;
15
+ deliveryMode: import("@activepieces/pieces-framework").StaticDropdownProperty<"download" | "cloudStorage" | "webhook", true>;
16
+ presignedUrl: import("@activepieces/pieces-framework").ShortTextProperty<false>;
17
+ webhookUrl: import("@activepieces/pieces-framework").ShortTextProperty<false>;
18
+ webhookOptions: import("@activepieces/pieces-framework").JsonProperty<false>;
19
+ filename: import("@activepieces/pieces-framework").ShortTextProperty<false>;
20
+ tag: import("@activepieces/pieces-framework").ShortTextProperty<false>;
21
+ timeout: import("@activepieces/pieces-framework").NumberProperty<false>;
22
+ advanced: import("@activepieces/pieces-framework").JsonProperty<false>;
23
+ }>;
24
+ //# sourceMappingURL=capture-screenshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-screenshot.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/capture-screenshot.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;EAwG5B,CAAC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.captureScreenshot = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const auth_1 = require("../common/auth");
7
+ const build_request_body_1 = require("../common/build-request-body");
8
+ const client_1 = require("../common/client");
9
+ const constants_1 = require("../common/constants");
10
+ const output_1 = require("../common/output");
11
+ const props_1 = require("../common/props");
12
+ exports.captureScreenshot = (0, pieces_framework_1.createAction)({
13
+ auth: auth_1.polydocAuth,
14
+ name: 'capture_screenshot',
15
+ displayName: 'Capture Screenshot',
16
+ description: 'Capture a screenshot of a URL, inline HTML, or a saved template.',
17
+ aiMetadata: {
18
+ description: 'Captures a screenshot (PNG, JPEG, or WebP) of a URL, an inline HTML string, or a saved PolyDoc template. Supports full-page capture, custom viewport, and base64 or file output. Idempotent: the same input yields the same image.',
19
+ idempotent: true,
20
+ },
21
+ props: {
22
+ sourceType: (0, props_1.sourceTypeProp)('url'),
23
+ source: props_1.sourceProp,
24
+ templateData: props_1.templateDataProp,
25
+ imageType: pieces_framework_1.Property.StaticDropdown({
26
+ displayName: 'Image Type',
27
+ required: false,
28
+ defaultValue: 'png',
29
+ options: { disabled: false, options: constants_1.IMAGE_TYPES.map((t) => ({ label: t, value: t })) },
30
+ }),
31
+ fullPage: pieces_framework_1.Property.Checkbox({
32
+ displayName: 'Full Page',
33
+ description: 'Capture the entire scrollable page.',
34
+ required: false,
35
+ defaultValue: false,
36
+ }),
37
+ quality: pieces_framework_1.Property.Number({
38
+ displayName: 'Quality',
39
+ description: 'Compression quality for JPEG/WebP (0 to 100).',
40
+ required: false,
41
+ }),
42
+ viewportWidth: pieces_framework_1.Property.Number({
43
+ displayName: 'Viewport Width',
44
+ description: 'Viewport width in CSS pixels.',
45
+ required: false,
46
+ }),
47
+ viewportHeight: pieces_framework_1.Property.Number({
48
+ displayName: 'Viewport Height',
49
+ description: 'Viewport height in CSS pixels.',
50
+ required: false,
51
+ }),
52
+ devicePixelRatio: pieces_framework_1.Property.Number({
53
+ displayName: 'Device Pixel Ratio',
54
+ description: 'Device pixel ratio, e.g. 2 for retina (0 to 10).',
55
+ required: false,
56
+ }),
57
+ outputEncoding: pieces_framework_1.Property.StaticDropdown({
58
+ displayName: 'Output',
59
+ description: 'Return the image as a file (default) or as a base64 string.',
60
+ required: false,
61
+ defaultValue: 'binaryFile',
62
+ options: {
63
+ disabled: false,
64
+ options: constants_1.SCREENSHOT_OUTPUT_ENCODINGS.map((o) => ({ label: o.label, value: o.value })),
65
+ },
66
+ }),
67
+ deliveryMode: props_1.deliveryModeProp,
68
+ presignedUrl: props_1.presignedUrlProp,
69
+ webhookUrl: props_1.webhookUrlProp,
70
+ webhookOptions: props_1.webhookOptionsProp,
71
+ filename: props_1.filenameProp,
72
+ tag: props_1.tagProp,
73
+ timeout: props_1.timeoutProp,
74
+ advanced: props_1.advancedProp,
75
+ },
76
+ run(context) {
77
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
78
+ var _a;
79
+ const props = context.propsValue;
80
+ const base64 = props['outputEncoding'] === 'base64';
81
+ const params = Object.assign(Object.assign(Object.assign({ operation: 'screenshot' }, (0, props_1.resolveSourceParams)(props)), (0, props_1.resolveMetadata)(props)), { delivery: (0, props_1.resolveDelivery)(props), screenshotOptions: {
82
+ imageType: props['imageType'],
83
+ fullPage: props['fullPage'],
84
+ quality: props['quality'],
85
+ encoding: base64 ? 'base64' : undefined,
86
+ viewportWidth: props['viewportWidth'],
87
+ viewportHeight: props['viewportHeight'],
88
+ devicePixelRatio: props['devicePixelRatio'],
89
+ } });
90
+ const request = (0, build_request_body_1.buildRequestBody)(params);
91
+ // base64 encoding makes the API answer with JSON, never raw bytes.
92
+ if (base64) {
93
+ request.isBinary = false;
94
+ }
95
+ try {
96
+ const response = yield (0, client_1.polyDocRequest)(context.auth, request);
97
+ return yield (0, output_1.shapeOutput)({
98
+ response,
99
+ isBinary: request.isBinary,
100
+ files: context.files,
101
+ operation: 'screenshot',
102
+ filename: params.filename,
103
+ imageType: props['imageType'],
104
+ });
105
+ }
106
+ catch (error) {
107
+ throw new Error((_a = (0, client_1.extractApiErrorMessage)(error)) !== null && _a !== void 0 ? _a : error.message);
108
+ }
109
+ });
110
+ },
111
+ });
112
+ //# sourceMappingURL=capture-screenshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-screenshot.js","sourceRoot":"","sources":["../../../../src/lib/actions/capture-screenshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export declare const convertToPdf: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ apiKey: import("@activepieces/pieces-framework").SecretTextProperty<true>;
3
+ sandbox: import("@activepieces/pieces-framework").CheckboxProperty<false>;
4
+ }>, {
5
+ sourceType: import("@activepieces/pieces-framework").StaticDropdownProperty<"url" | "html" | "template", true>;
6
+ source: import("@activepieces/pieces-framework").LongTextProperty<true>;
7
+ templateData: import("@activepieces/pieces-framework").JsonProperty<false>;
8
+ format: import("@activepieces/pieces-framework").StaticDropdownProperty<"A3" | "A4" | "A5" | "Ledger" | "Legal" | "Letter" | "Tabloid", false>;
9
+ landscape: import("@activepieces/pieces-framework").CheckboxProperty<false>;
10
+ printBackground: import("@activepieces/pieces-framework").CheckboxProperty<false>;
11
+ scale: import("@activepieces/pieces-framework").NumberProperty<false>;
12
+ pageRanges: import("@activepieces/pieces-framework").ShortTextProperty<false>;
13
+ outline: import("@activepieces/pieces-framework").CheckboxProperty<false>;
14
+ tagged: import("@activepieces/pieces-framework").CheckboxProperty<false>;
15
+ marginTop: import("@activepieces/pieces-framework").ShortTextProperty<false>;
16
+ marginRight: import("@activepieces/pieces-framework").ShortTextProperty<false>;
17
+ marginBottom: import("@activepieces/pieces-framework").ShortTextProperty<false>;
18
+ marginLeft: import("@activepieces/pieces-framework").ShortTextProperty<false>;
19
+ deliveryMode: import("@activepieces/pieces-framework").StaticDropdownProperty<"download" | "cloudStorage" | "webhook", true>;
20
+ presignedUrl: import("@activepieces/pieces-framework").ShortTextProperty<false>;
21
+ webhookUrl: import("@activepieces/pieces-framework").ShortTextProperty<false>;
22
+ webhookOptions: import("@activepieces/pieces-framework").JsonProperty<false>;
23
+ filename: import("@activepieces/pieces-framework").ShortTextProperty<false>;
24
+ tag: import("@activepieces/pieces-framework").ShortTextProperty<false>;
25
+ timeout: import("@activepieces/pieces-framework").NumberProperty<false>;
26
+ advanced: import("@activepieces/pieces-framework").JsonProperty<false>;
27
+ }>;
28
+ //# sourceMappingURL=convert-pdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-pdf.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/convert-pdf.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;EAsGvB,CAAC"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertToPdf = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const auth_1 = require("../common/auth");
7
+ const build_request_body_1 = require("../common/build-request-body");
8
+ const client_1 = require("../common/client");
9
+ const constants_1 = require("../common/constants");
10
+ const output_1 = require("../common/output");
11
+ const props_1 = require("../common/props");
12
+ exports.convertToPdf = (0, pieces_framework_1.createAction)({
13
+ auth: auth_1.polydocAuth,
14
+ name: 'convert_to_pdf',
15
+ displayName: 'Convert to PDF',
16
+ description: 'Convert HTML, a URL, or a saved template to a PDF.',
17
+ aiMetadata: {
18
+ description: 'Converts a URL, an inline HTML string, or a saved PolyDoc template into a PDF and returns the file (or delivers it to cloud storage / a webhook). Use it to render documents like invoices, reports, or contracts. Idempotent: the same input yields the same PDF.',
19
+ idempotent: true,
20
+ },
21
+ props: {
22
+ sourceType: (0, props_1.sourceTypeProp)('url'),
23
+ source: props_1.sourceProp,
24
+ templateData: props_1.templateDataProp,
25
+ format: pieces_framework_1.Property.StaticDropdown({
26
+ displayName: 'Page Format',
27
+ required: false,
28
+ defaultValue: 'A4',
29
+ options: { disabled: false, options: constants_1.PAGE_FORMATS.map((f) => ({ label: f, value: f })) },
30
+ }),
31
+ landscape: pieces_framework_1.Property.Checkbox({ displayName: 'Landscape', required: false, defaultValue: false }),
32
+ printBackground: pieces_framework_1.Property.Checkbox({
33
+ displayName: 'Print Background',
34
+ description: 'Print background graphics and colors.',
35
+ required: false,
36
+ defaultValue: true,
37
+ }),
38
+ scale: pieces_framework_1.Property.Number({
39
+ displayName: 'Scale',
40
+ description: 'Render scale (0.1 to 2).',
41
+ required: false,
42
+ }),
43
+ pageRanges: pieces_framework_1.Property.ShortText({
44
+ displayName: 'Page Ranges',
45
+ description: 'Pages to include, e.g. "1-5, 8". Empty means all pages.',
46
+ required: false,
47
+ }),
48
+ outline: pieces_framework_1.Property.Checkbox({
49
+ displayName: 'Outline (Bookmarks)',
50
+ description: 'Generate PDF bookmarks from HTML headings.',
51
+ required: false,
52
+ defaultValue: false,
53
+ }),
54
+ tagged: pieces_framework_1.Property.Checkbox({
55
+ displayName: 'Tagged (Accessible)',
56
+ description: 'Produce a tagged, accessible PDF.',
57
+ required: false,
58
+ defaultValue: false,
59
+ }),
60
+ marginTop: pieces_framework_1.Property.ShortText({
61
+ displayName: 'Margin Top',
62
+ description: 'Top margin with optional unit, e.g. 10mm, 1cm, 0.5in.',
63
+ required: false,
64
+ }),
65
+ marginRight: pieces_framework_1.Property.ShortText({ displayName: 'Margin Right', required: false }),
66
+ marginBottom: pieces_framework_1.Property.ShortText({ displayName: 'Margin Bottom', required: false }),
67
+ marginLeft: pieces_framework_1.Property.ShortText({ displayName: 'Margin Left', required: false }),
68
+ deliveryMode: props_1.deliveryModeProp,
69
+ presignedUrl: props_1.presignedUrlProp,
70
+ webhookUrl: props_1.webhookUrlProp,
71
+ webhookOptions: props_1.webhookOptionsProp,
72
+ filename: props_1.filenameProp,
73
+ tag: props_1.tagProp,
74
+ timeout: props_1.timeoutProp,
75
+ advanced: props_1.advancedProp,
76
+ },
77
+ run(context) {
78
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
+ var _a;
80
+ const props = context.propsValue;
81
+ const params = Object.assign(Object.assign(Object.assign({ operation: 'pdf' }, (0, props_1.resolveSourceParams)(props)), (0, props_1.resolveMetadata)(props)), { delivery: (0, props_1.resolveDelivery)(props), pdfOptions: {
82
+ format: props['format'],
83
+ landscape: props['landscape'],
84
+ printBackground: props['printBackground'],
85
+ scale: props['scale'],
86
+ pageRanges: props['pageRanges'],
87
+ outline: props['outline'],
88
+ tagged: props['tagged'],
89
+ marginTop: props['marginTop'],
90
+ marginRight: props['marginRight'],
91
+ marginBottom: props['marginBottom'],
92
+ marginLeft: props['marginLeft'],
93
+ } });
94
+ const request = (0, build_request_body_1.buildRequestBody)(params);
95
+ try {
96
+ const response = yield (0, client_1.polyDocRequest)(context.auth, request);
97
+ return yield (0, output_1.shapeOutput)({
98
+ response,
99
+ isBinary: request.isBinary,
100
+ files: context.files,
101
+ operation: 'pdf',
102
+ filename: params.filename,
103
+ });
104
+ }
105
+ catch (error) {
106
+ throw new Error((_a = (0, client_1.extractApiErrorMessage)(error)) !== null && _a !== void 0 ? _a : error.message);
107
+ }
108
+ });
109
+ },
110
+ });
111
+ //# sourceMappingURL=convert-pdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-pdf.js","sourceRoot":"","sources":["../../../../src/lib/actions/convert-pdf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export declare const generateEinvoice: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ apiKey: import("@activepieces/pieces-framework").SecretTextProperty<true>;
3
+ sandbox: import("@activepieces/pieces-framework").CheckboxProperty<false>;
4
+ }>, {
5
+ sourceType: import("@activepieces/pieces-framework").StaticDropdownProperty<"url" | "html" | "template", true>;
6
+ source: import("@activepieces/pieces-framework").LongTextProperty<true>;
7
+ templateData: import("@activepieces/pieces-framework").JsonProperty<false>;
8
+ standard: import("@activepieces/pieces-framework").StaticDropdownProperty<"zugferd" | "facturx", true>;
9
+ profile: import("@activepieces/pieces-framework").StaticDropdownProperty<"minimum" | "basicwl" | "basic" | "en16931" | "extended", true>;
10
+ invoice: import("@activepieces/pieces-framework").JsonProperty<true>;
11
+ verify: import("@activepieces/pieces-framework").CheckboxProperty<false>;
12
+ deliveryMode: import("@activepieces/pieces-framework").StaticDropdownProperty<"download" | "cloudStorage" | "webhook", true>;
13
+ presignedUrl: import("@activepieces/pieces-framework").ShortTextProperty<false>;
14
+ webhookUrl: import("@activepieces/pieces-framework").ShortTextProperty<false>;
15
+ webhookOptions: import("@activepieces/pieces-framework").JsonProperty<false>;
16
+ filename: import("@activepieces/pieces-framework").ShortTextProperty<false>;
17
+ tag: import("@activepieces/pieces-framework").ShortTextProperty<false>;
18
+ timeout: import("@activepieces/pieces-framework").NumberProperty<false>;
19
+ advanced: import("@activepieces/pieces-framework").JsonProperty<false>;
20
+ }>;
21
+ //# sourceMappingURL=generate-einvoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-einvoice.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/generate-einvoice.ts"],"names":[],"mappings":"AAiDA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;EAmF3B,CAAC"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateEinvoice = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const auth_1 = require("../common/auth");
7
+ const build_request_body_1 = require("../common/build-request-body");
8
+ const client_1 = require("../common/client");
9
+ const constants_1 = require("../common/constants");
10
+ const output_1 = require("../common/output");
11
+ const props_1 = require("../common/props");
12
+ const SAMPLE_INVOICE = {
13
+ number: 'INV-001',
14
+ issueDate: '2026-01-31',
15
+ dueDate: '2026-03-02',
16
+ currencyCode: 'EUR',
17
+ seller: {
18
+ name: 'Your Company GmbH',
19
+ address: { line1: 'Main St 1', city: 'Berlin', postalCode: '10115', countryCode: 'DE' },
20
+ taxId: 'DE123456789',
21
+ },
22
+ buyer: {
23
+ name: 'Customer SARL',
24
+ address: { line1: 'Rue 2', city: 'Paris', postalCode: '75001', countryCode: 'FR' },
25
+ },
26
+ lines: [
27
+ { description: 'Widget', quantity: 2, unitPrice: 10, lineTotal: 20, vatRate: 19, vatCategoryCode: 'S' },
28
+ ],
29
+ taxSummary: [{ categoryCode: 'S', rate: 19, taxableAmount: 20, taxAmount: 3.8 }],
30
+ paymentTerms: 'Net 30 days',
31
+ totalNetAmount: 20,
32
+ totalTaxAmount: 3.8,
33
+ totalGrossAmount: 23.8,
34
+ };
35
+ exports.generateEinvoice = (0, pieces_framework_1.createAction)({
36
+ auth: auth_1.polydocAuth,
37
+ name: 'generate_einvoice',
38
+ displayName: 'Generate E-Invoice',
39
+ description: 'Generate a hybrid e-invoice PDF (Factur-X / ZUGFeRD, EN 16931) from a visual layout plus structured invoice data.',
40
+ aiMetadata: {
41
+ description: 'Generates a hybrid e-invoice PDF (Factur-X / ZUGFeRD, EN 16931) by embedding structured invoice XML into a visual PDF layout. EN 16931 requires payment terms or a due date, a seller tax ID for VAT category S, and consistent totals. Idempotent: the same input yields the same PDF.',
42
+ idempotent: true,
43
+ },
44
+ props: {
45
+ sourceType: (0, props_1.sourceTypeProp)('html'),
46
+ source: props_1.sourceProp,
47
+ templateData: props_1.templateDataProp,
48
+ standard: pieces_framework_1.Property.StaticDropdown({
49
+ displayName: 'Standard',
50
+ description: 'The hybrid e-invoice standard to embed.',
51
+ required: true,
52
+ defaultValue: 'zugferd',
53
+ options: {
54
+ disabled: false,
55
+ options: constants_1.EINVOICE_STANDARDS.map((o) => ({ label: o.label, value: o.value })),
56
+ },
57
+ }),
58
+ profile: pieces_framework_1.Property.StaticDropdown({
59
+ displayName: 'Profile',
60
+ description: 'The data granularity profile to validate against.',
61
+ required: true,
62
+ defaultValue: 'en16931',
63
+ options: {
64
+ disabled: false,
65
+ options: constants_1.EINVOICE_PROFILES.map((p) => ({ label: p, value: p })),
66
+ },
67
+ }),
68
+ invoice: pieces_framework_1.Property.Json({
69
+ displayName: 'Invoice Data',
70
+ description: 'Structured invoice data: number, dates, currency, seller, buyer, lines, totals. EN 16931 needs payment terms (or due date), seller taxId for VAT category S, and consistent totals. See docs.polydoc.tech.',
71
+ required: true,
72
+ defaultValue: SAMPLE_INVOICE,
73
+ }),
74
+ verify: pieces_framework_1.Property.Checkbox({
75
+ displayName: 'Verify',
76
+ description: 'Validate PDF/A and e-invoice compliance (returns an error if it fails).',
77
+ required: false,
78
+ defaultValue: false,
79
+ }),
80
+ deliveryMode: props_1.deliveryModeProp,
81
+ presignedUrl: props_1.presignedUrlProp,
82
+ webhookUrl: props_1.webhookUrlProp,
83
+ webhookOptions: props_1.webhookOptionsProp,
84
+ filename: props_1.filenameProp,
85
+ tag: props_1.tagProp,
86
+ timeout: props_1.timeoutProp,
87
+ advanced: props_1.advancedProp,
88
+ },
89
+ run(context) {
90
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
91
+ var _a, _b;
92
+ const props = context.propsValue;
93
+ const params = Object.assign(Object.assign(Object.assign({ operation: 'einvoice' }, (0, props_1.resolveSourceParams)(props)), (0, props_1.resolveMetadata)(props)), { delivery: (0, props_1.resolveDelivery)(props), eInvoiceStandard: props['standard'], eInvoiceProfile: props['profile'], eInvoiceVerify: props['verify'] === true, invoice: (_a = (0, props_1.asJsonObject)(props['invoice'])) !== null && _a !== void 0 ? _a : {} });
94
+ const request = (0, build_request_body_1.buildRequestBody)(params);
95
+ try {
96
+ const response = yield (0, client_1.polyDocRequest)(context.auth, request);
97
+ return yield (0, output_1.shapeOutput)({
98
+ response,
99
+ isBinary: request.isBinary,
100
+ files: context.files,
101
+ operation: 'einvoice',
102
+ filename: params.filename,
103
+ });
104
+ }
105
+ catch (error) {
106
+ throw new Error((_b = (0, client_1.extractApiErrorMessage)(error)) !== null && _b !== void 0 ? _b : error.message);
107
+ }
108
+ });
109
+ },
110
+ });
111
+ //# sourceMappingURL=generate-einvoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-einvoice.js","sourceRoot":"","sources":["../../../../src/lib/actions/generate-einvoice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const polydocAuth: import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ apiKey: import("@activepieces/pieces-framework").SecretTextProperty<true>;
3
+ sandbox: import("@activepieces/pieces-framework").CheckboxProperty<false>;
4
+ }>;
5
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/auth.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,WAAW;;;EAgDtB,CAAC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.polydocAuth = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const constants_1 = require("./constants");
8
+ const AUTH_GUIDE = `Get an API key from the PolyDoc dashboard (dashboard.polydoc.tech, API Keys). It is sent as Authorization: Bearer <key>.
9
+
10
+ Turn on **Sandbox** to test against sandbox quota (output is watermarked). Leave it off for production conversions.`;
11
+ exports.polydocAuth = pieces_framework_1.PieceAuth.CustomAuth({
12
+ description: AUTH_GUIDE,
13
+ required: true,
14
+ props: {
15
+ apiKey: pieces_framework_1.PieceAuth.SecretText({
16
+ displayName: 'API Key',
17
+ description: 'Your PolyDoc API key from dashboard.polydoc.tech.',
18
+ required: true,
19
+ }),
20
+ sandbox: pieces_framework_1.Property.Checkbox({
21
+ displayName: 'Sandbox',
22
+ description: 'Use sandbox quota (watermarked output).',
23
+ required: false,
24
+ defaultValue: false,
25
+ }),
26
+ },
27
+ validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
28
+ var _b;
29
+ const apiKey = auth.apiKey;
30
+ if (!apiKey) {
31
+ return { valid: false, error: 'API key is required.' };
32
+ }
33
+ try {
34
+ // Minimal forced-sandbox screenshot: proves the key is valid without
35
+ // touching production quota. 200 means valid, 401 means a bad key.
36
+ yield pieces_common_1.httpClient.sendRequest({
37
+ method: pieces_common_1.HttpMethod.POST,
38
+ url: `${constants_1.DEFAULT_BASE_URL.replace(/\/+$/, '')}${constants_1.SCREENSHOT_CONVERT_PATH}`,
39
+ headers: {
40
+ Authorization: `Bearer ${apiKey}`,
41
+ 'Content-Type': 'application/json',
42
+ 'X-Sandbox': auth.sandbox ? 'true' : 'false',
43
+ },
44
+ body: { source: '<p>polydoc</p>', screenshot: { type: 'png' } },
45
+ responseType: 'arraybuffer',
46
+ });
47
+ return { valid: true };
48
+ }
49
+ catch (error) {
50
+ const status = (_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.status;
51
+ if (status === 401) {
52
+ return { valid: false, error: 'Invalid PolyDoc API key.' };
53
+ }
54
+ const detail = status ? `the API returned HTTP ${status}` : 'the API was unreachable';
55
+ return {
56
+ valid: false,
57
+ error: `Could not validate the PolyDoc API key (${detail}). Check the key and try again.`,
58
+ };
59
+ }
60
+ }),
61
+ });
62
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/common/auth.ts"],"names":[],"mappings":";;;;AAAA,+DAAqE;AACrE,qEAAqE;AACrE,2CAAwE;AAExE,MAAM,UAAU,GAAG;;oHAEiG,CAAC;AAExG,QAAA,WAAW,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC9C,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,MAAM,EAAE,4BAAS,CAAC,UAAU,CAAC;YAC3B,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACzB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;SACpB,CAAC;KACH;IACD,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;;QACvB,MAAM,MAAM,GAAI,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,CAAC;YACH,qEAAqE;YACrE,mEAAmE;YACnE,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC3B,MAAM,EAAE,0BAAU,CAAC,IAAI;gBACvB,GAAG,EAAE,GAAG,4BAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,mCAAuB,EAAE;gBACxE,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,cAAc,EAAE,kBAAkB;oBAClC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;iBAC7C;gBACD,IAAI,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC/D,YAAY,EAAE,aAAa;aAC5B,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,MAAC,KAA4C,aAA5C,KAAK,uBAAL,KAAK,CAAyC,QAAQ,0CAAE,MAAM,CAAC;YAC/E,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;YAC7D,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC;YACtF,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,2CAA2C,MAAM,iCAAiC;aAC1F,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { JsonObject, PolyDocOperation, PolyDocParams, PolyDocRequest } from './types';
2
+ /** Deep-merge `source` into `target` (source wins). Arrays and scalars overwrite. */
3
+ export declare function mergeDeep(target: JsonObject, source: JsonObject): JsonObject;
4
+ /**
5
+ * Assemble the PolyDoc request body. Returns the endpoint to call, the body to
6
+ * send, and whether the default (binary) delivery is in effect.
7
+ */
8
+ export declare function buildRequestBody(params: PolyDocParams): PolyDocRequest;
9
+ /** Default output filename when the user did not set one. */
10
+ export declare function defaultFilename(operation: PolyDocOperation, imageType?: string): string;
11
+ //# sourceMappingURL=build-request-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-request-body.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/build-request-body.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAY3F,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAU5E;AA4ED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAkEtE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvF"}