@epistola.app/valtimo-plugin 0.9.4 → 0.11.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.
- package/fesm2022/epistola.app-valtimo-plugin.mjs +2430 -395
- package/fesm2022/epistola.app-valtimo-plugin.mjs.map +1 -1
- package/lib/components/check-job-status-configuration/check-job-status-configuration.component.d.ts +2 -2
- package/lib/components/download-document-configuration/download-document-config.util.d.ts +15 -0
- package/lib/components/download-document-configuration/download-document-configuration.component.d.ts +12 -3
- package/lib/components/epistola-admin-page/epistola-admin-page.component.d.ts +28 -4
- package/lib/components/epistola-configuration/epistola-configuration.component.d.ts +2 -2
- package/lib/components/epistola-document/epistola-document.component.d.ts +11 -7
- package/lib/components/epistola-document-preview/epistola-document-preview.component.d.ts +57 -13
- package/lib/components/epistola-document-preview/preview-utils.d.ts +39 -6
- package/lib/components/epistola-retry-form/epistola-retry-form.component.d.ts +9 -7
- package/lib/components/formio-builder-utils.d.ts +14 -0
- package/lib/components/generate-document-configuration/generate-document-configuration.component.d.ts +4 -2
- package/lib/components/jsonata-editor/jsonata-editor.component.d.ts +11 -3
- package/lib/components/override-builder/legacy-override-converter.d.ts +23 -0
- package/lib/components/override-builder/override-builder.component.d.ts +52 -20
- package/lib/components/override-builder/override-jsonata.d.ts +25 -0
- package/lib/models/admin.d.ts +57 -0
- package/lib/models/config.d.ts +25 -1
- package/lib/services/epistola-admin.service.d.ts +13 -4
- package/lib/services/epistola-plugin.service.d.ts +16 -10
- package/lib/services/index.d.ts +1 -2
- package/lib/services/prefilled-task-id.d.ts +52 -0
- package/lib/utils/extract-referenced-paths.d.ts +19 -0
- package/lib/utils/jsonata-monaco.d.ts +2 -2
- package/package.json +2 -1
- package/sbom.json +1 -1
- package/lib/services/epistola-task-context.interceptor.d.ts +0 -29
- package/lib/services/epistola-task-context.matcher.d.ts +0 -19
- package/lib/services/epistola-task-context.service.d.ts +0 -26
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single row in the override builder's simple table: a form field feeding a
|
|
3
|
+
* `doc`/`pv` input path during preview.
|
|
4
|
+
*/
|
|
5
|
+
export interface OverrideRow {
|
|
6
|
+
scope: 'doc' | 'pv';
|
|
7
|
+
inputPath: string;
|
|
8
|
+
formFieldKey: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Serialize simple-table rows into a JSONata expression that maps `$form` onto
|
|
12
|
+
* a `{ doc, pv }` overlay. Dot-notation input paths expand into nested object
|
|
13
|
+
* literals (so `beslissing.tekst` becomes `{ "beslissing": { "tekst": ... } }`),
|
|
14
|
+
* preserving the legacy override semantics.
|
|
15
|
+
*/
|
|
16
|
+
export declare function serializeOverrideRows(rows: OverrideRow[]): string;
|
|
17
|
+
/**
|
|
18
|
+
* Parse a JSONata override expression back into simple-table rows, or `null`
|
|
19
|
+
* when the expression is richer than the simple table can represent (anything
|
|
20
|
+
* beyond `doc`/`pv` objects whose leaves are plain `$form.<key>` references).
|
|
21
|
+
* A `null` result is the builder's signal to fall back to advanced mode.
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseOverrideJsonata(expression: string): OverrideRow[] | null;
|
|
24
|
+
/** Whether the expression can be edited in the simple table (round-trippable). */
|
|
25
|
+
export declare function isRoundTrippable(expression: string): boolean;
|
package/lib/models/admin.d.ts
CHANGED
|
@@ -33,6 +33,12 @@ export interface PendingJob {
|
|
|
33
33
|
tenantId: string;
|
|
34
34
|
requestId: string;
|
|
35
35
|
configurationTitle: string;
|
|
36
|
+
/**
|
|
37
|
+
* 'WAITING' — has the epistolaWaitFor token; the collector can correlate it.
|
|
38
|
+
* 'UNWIRED' — has the subscription but no token, so it can never be correlated (stuck); requestId is
|
|
39
|
+
* absent and reconcile cannot recover it. Surfaced so operators can see and fix the process model.
|
|
40
|
+
*/
|
|
41
|
+
status: 'WAITING' | 'UNWIRED';
|
|
36
42
|
}
|
|
37
43
|
export interface PluginUsageEntry {
|
|
38
44
|
processLinkId: string;
|
|
@@ -119,3 +125,54 @@ export interface BpmnValidationViolation {
|
|
|
119
125
|
code: string;
|
|
120
126
|
message: string;
|
|
121
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* The BPMN race-safety validation report from `GET /admin/validations`.
|
|
130
|
+
* `lastCheckedAt` is an ISO-8601 timestamp of the last completed scan, or `null`
|
|
131
|
+
* if no scan has run yet. `refreshIntervalMs` is the validator's scan cadence, used
|
|
132
|
+
* to tell the operator how often the result refreshes. Only the latest deployed
|
|
133
|
+
* version of each process definition is inspected.
|
|
134
|
+
*/
|
|
135
|
+
export interface BpmnValidationReport {
|
|
136
|
+
lastCheckedAt: string | null;
|
|
137
|
+
refreshIntervalMs: number;
|
|
138
|
+
violations: BpmnValidationViolation[];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* TEMPORARY (removed in 1.0.0). A form whose Epistola components are missing the
|
|
142
|
+
* task-id carrier field — surfaced on the admin page so it can be repaired.
|
|
143
|
+
* `readOnly` flags classpath-deployed forms (a repair there is reverted on the next
|
|
144
|
+
* boot; fix the source instead).
|
|
145
|
+
*/
|
|
146
|
+
export interface FormCarrierIssue {
|
|
147
|
+
formId: string;
|
|
148
|
+
name: string;
|
|
149
|
+
missingComponents: number;
|
|
150
|
+
readOnly: boolean;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* TEMPORARY. A form whose `epistola-document-preview` components still use the legacy
|
|
154
|
+
* override-mapping object format (`{ scope: { path: "form:key" } }`) instead of the new
|
|
155
|
+
* JSONata string over `$form`. Surfaced on the admin page so it can be re-saved in the
|
|
156
|
+
* form builder, which migrates it. `readOnly` flags classpath-deployed forms (migrate
|
|
157
|
+
* the source instead).
|
|
158
|
+
*/
|
|
159
|
+
export interface LegacyOverrideForm {
|
|
160
|
+
formId: string;
|
|
161
|
+
name: string;
|
|
162
|
+
legacyComponents: number;
|
|
163
|
+
readOnly: boolean;
|
|
164
|
+
}
|
|
165
|
+
/** TEMPORARY (removed in 1.0.0). Outcome of repairing one form's carrier. */
|
|
166
|
+
export interface FormCarrierRepairResult {
|
|
167
|
+
formId: string;
|
|
168
|
+
name: string | null;
|
|
169
|
+
success: boolean;
|
|
170
|
+
componentsPatched: number;
|
|
171
|
+
errorMessage: string | null;
|
|
172
|
+
}
|
|
173
|
+
/** TEMPORARY (removed in 1.0.0). Aggregate outcome of repairing all flagged forms. */
|
|
174
|
+
export interface FormCarrierRepairSummary {
|
|
175
|
+
formsRepaired: number;
|
|
176
|
+
componentsPatched: number;
|
|
177
|
+
failed: number;
|
|
178
|
+
}
|
package/lib/models/config.d.ts
CHANGED
|
@@ -62,12 +62,36 @@ export interface DownloadDocumentConfig {
|
|
|
62
62
|
* updated by the result collector). The action extracts the document id.
|
|
63
63
|
*/
|
|
64
64
|
documentVariable: string;
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Where the downloaded PDF is materialized (see
|
|
67
|
+
* `docs/adr/0001-download-document-content-storage.md`). Defaults to `TEMPORARY_RESOURCE`. The
|
|
68
|
+
* output variable used depends on this choice: `resourceIdVariable` or `contentVariable`.
|
|
69
|
+
*/
|
|
70
|
+
storageTarget?: 'TEMPORARY_RESOURCE' | 'PROCESS_VARIABLE';
|
|
71
|
+
/**
|
|
72
|
+
* Output for `TEMPORARY_RESOURCE`: the process variable that receives the temporary resource id
|
|
73
|
+
* (ready to hand to `documenten-api:store-temp-document`).
|
|
74
|
+
*/
|
|
75
|
+
resourceIdVariable?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Output for `PROCESS_VARIABLE`: the process variable that receives the raw PDF bytes inline
|
|
78
|
+
* (best for small, non-sensitive documents).
|
|
79
|
+
*/
|
|
80
|
+
contentVariable?: string;
|
|
66
81
|
}
|
|
67
82
|
export interface VariableSuggestions {
|
|
68
83
|
doc: string[];
|
|
69
84
|
pv: string[];
|
|
70
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Raw `dataMapping` JSONata of a generate-document process link, keyed server-side by
|
|
88
|
+
* `(processDefinitionKey, activityId)`. Empty when the link or its mapping can't be resolved.
|
|
89
|
+
* The override builder statically extracts the referenced `$doc`/`$pv` paths from it to show
|
|
90
|
+
* the author which inputs this template's mapping consumes.
|
|
91
|
+
*/
|
|
92
|
+
export interface ProcessLinkMapping {
|
|
93
|
+
dataMapping: string;
|
|
94
|
+
}
|
|
71
95
|
export interface EvaluationResult {
|
|
72
96
|
success: boolean;
|
|
73
97
|
result: Record<string, any> | null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { ConfigService } from '@valtimo/shared';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
-
import {
|
|
4
|
+
import { BpmnValidationReport, CatalogRedeployResult, ChangelogRelease, ClasspathCatalog, ConnectionStatus, FormCarrierIssue, FormCarrierRepairResult, FormCarrierRepairSummary, LegacyOverrideForm, PendingJob, PluginUsageEntry, ReconcileResult, VersionInfo } from '../models';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* Service for Epistola plugin administrative operations.
|
|
@@ -37,10 +37,11 @@ export declare class EpistolaAdminService {
|
|
|
37
37
|
*/
|
|
38
38
|
reconcilePending(executionId: string): Observable<ReconcileResult>;
|
|
39
39
|
/**
|
|
40
|
-
* Get the latest BPMN race-safety validation
|
|
41
|
-
*
|
|
40
|
+
* Get the latest BPMN race-safety validation report across deployed process
|
|
41
|
+
* definitions: the violations (empty = healthy) plus when it was last checked
|
|
42
|
+
* and how often it refreshes.
|
|
42
43
|
*/
|
|
43
|
-
|
|
44
|
+
getValidationReport(): Observable<BpmnValidationReport>;
|
|
44
45
|
/**
|
|
45
46
|
* List the classpath catalogs available to manually redeploy for a plugin
|
|
46
47
|
* configuration, each annotated with the version last deployed in this
|
|
@@ -63,6 +64,14 @@ export declare class EpistolaAdminService {
|
|
|
63
64
|
* Export a single process link as a .process-link.json file.
|
|
64
65
|
*/
|
|
65
66
|
exportProcessLink(processLinkId: string): Observable<Blob>;
|
|
67
|
+
/** Forms whose Epistola components are missing the task-id carrier. */
|
|
68
|
+
getFormCarrierIssues(): Observable<FormCarrierIssue[]>;
|
|
69
|
+
/** Inject the task-id carrier into a single form's Epistola components. */
|
|
70
|
+
repairFormCarrier(formId: string): Observable<FormCarrierRepairResult>;
|
|
71
|
+
/** Repair every flagged form. */
|
|
72
|
+
repairAllFormCarriers(): Observable<FormCarrierRepairSummary>;
|
|
73
|
+
/** Forms whose preview components still use the legacy override-mapping object format. */
|
|
74
|
+
getLegacyOverrideForms(): Observable<LegacyOverrideForm[]>;
|
|
66
75
|
static ɵfac: i0.ɵɵFactoryDeclaration<EpistolaAdminService, never>;
|
|
67
76
|
static ɵprov: i0.ɵɵInjectableDeclaration<EpistolaAdminService>;
|
|
68
77
|
}
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { ConfigService } from '@valtimo/shared';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
-
import { AttributeDefinition, CatalogInfo, EnvironmentInfo, ExpressionFunctionInfo, JsonataValidationResult, TemplateDetails, TemplateInfo, EvaluationResult, ValidateJsonataRequest, VariableSuggestions, VariantInfo } from '../models';
|
|
4
|
+
import { AttributeDefinition, CatalogInfo, EnvironmentInfo, ExpressionFunctionInfo, JsonataValidationResult, ProcessLinkMapping, TemplateDetails, TemplateInfo, EvaluationResult, ValidateJsonataRequest, VariableSuggestions, VariantInfo } from '../models';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* Body of a {@link EpistolaPluginService.previewToBlob} call. Mirrors the
|
|
8
|
-
* backend {@code PreviewRequest} record.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* and {@code inputOverrides} let the
|
|
12
|
-
* JSONata mapping runs.
|
|
8
|
+
* backend {@code PreviewRequest} record. The backend derives the process
|
|
9
|
+
* instance and case document from the authorized task, so only {@code taskId}
|
|
10
|
+
* and {@code sourceActivityId} (which identifies the {@code generate-document}
|
|
11
|
+
* process link) are sent; {@code overrides} and {@code inputOverrides} let the
|
|
12
|
+
* caller substitute data before the JSONata mapping runs.
|
|
13
13
|
*/
|
|
14
14
|
export interface PreviewBlobRequest {
|
|
15
15
|
taskId: string;
|
|
16
|
-
documentId: string;
|
|
17
|
-
processDefinitionKey?: string | null;
|
|
18
16
|
sourceActivityId?: string | null;
|
|
19
|
-
processInstanceId?: string | null;
|
|
20
17
|
inputOverrides?: Record<string, unknown> | null;
|
|
21
18
|
overrides?: Record<string, unknown> | null;
|
|
22
19
|
}
|
|
@@ -71,6 +68,12 @@ export declare class EpistolaPluginService {
|
|
|
71
68
|
* Discover process variable names for a given process definition.
|
|
72
69
|
*/
|
|
73
70
|
getProcessVariables(processDefinitionKey: string): Observable<string[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Get the raw `dataMapping` JSONata of a generate-document process link, identified by its
|
|
73
|
+
* process definition key and activity id. The override builder extracts the referenced
|
|
74
|
+
* `$doc`/`$pv` paths from it to guide the author. Returns an empty mapping when unresolved.
|
|
75
|
+
*/
|
|
76
|
+
getProcessLinkMapping(processDefinitionKey: string, activityId: string): Observable<ProcessLinkMapping>;
|
|
74
77
|
/**
|
|
75
78
|
* Get variable suggestions for JSONata autocompletion.
|
|
76
79
|
*/
|
|
@@ -82,9 +85,12 @@ export declare class EpistolaPluginService {
|
|
|
82
85
|
/**
|
|
83
86
|
* Get a dynamically generated Formio form for retrying a failed document generation.
|
|
84
87
|
*
|
|
88
|
+
* The backend derives the process instance and case document from the authorized task,
|
|
89
|
+
* so only the task id (and optionally the source activity) is sent.
|
|
90
|
+
*
|
|
85
91
|
* @param taskId Operaton user task id (required — backend authorizes via OperatonTask:VIEW)
|
|
86
92
|
*/
|
|
87
|
-
getRetryForm(taskId: string,
|
|
93
|
+
getRetryForm(taskId: string, sourceActivityId?: string): Observable<any>;
|
|
88
94
|
/**
|
|
89
95
|
* List all available expression functions for expr: data mapping values.
|
|
90
96
|
*/
|
package/lib/services/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './epistola-admin.service';
|
|
2
2
|
export * from './epistola-menu.service';
|
|
3
3
|
export * from './epistola-plugin.service';
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './epistola-task-context.interceptor';
|
|
4
|
+
export * from './prefilled-task-id';
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers for reading the active user task's id out of a Valtimo task form that was
|
|
3
|
+
* prefilled server-side by the {@code epistola:} value resolver (see the backend
|
|
4
|
+
* {@code EpistolaTaskValueResolverFactory}).
|
|
5
|
+
*
|
|
6
|
+
* <p>Background: the Epistola Formio components need the id of the user task whose form
|
|
7
|
+
* they're rendered in, to authorize their backend requests ({@code OperatonTask:VIEW}).
|
|
8
|
+
* Valtimo exposes no service that carries the task id to a custom Formio component at
|
|
9
|
+
* runtime, and earlier URL-sniffing only worked in the direct task-open flow (the
|
|
10
|
+
* task-list / case-detail flow bulk-fetches process links and never fires the per-task
|
|
11
|
+
* call).
|
|
12
|
+
*
|
|
13
|
+
* <p>Form prefill, however, runs server-side in every flow. A form field with
|
|
14
|
+
* {@code properties.sourceKey = "epistola:taskId"} is filled with the task id at prefill
|
|
15
|
+
* time (by the backend {@code EpistolaTaskValueResolverFactory}); this helper reads it back
|
|
16
|
+
* from the Formio root — robustly, regardless of how the task was opened.
|
|
17
|
+
*/
|
|
18
|
+
/** The value-resolver source key that yields the current task id at prefill time. */
|
|
19
|
+
export declare const PREFILLED_TASK_ID_SOURCE_KEY = "epistola:taskId";
|
|
20
|
+
/** Conventional key of the hidden carrier field that holds the prefilled task id. */
|
|
21
|
+
export declare const PREFILLED_TASK_ID_DATA_KEY = "epistolaTaskId";
|
|
22
|
+
/**
|
|
23
|
+
* Hidden Formio child component that carries the prefilled task id. It is embedded as a
|
|
24
|
+
* nested component inside each Epistola task component's schema, so dropping that component
|
|
25
|
+
* brings the carrier with it — the form author never adds a separate field. Valtimo's
|
|
26
|
+
* server-side prefill fills its {@code defaultValue} from the {@code epistola:taskId}
|
|
27
|
+
* value resolver; {@link readPrefilledTaskId} reads it back from the form definition.
|
|
28
|
+
*
|
|
29
|
+
* {@code persistent: false} keeps the value out of the submission, so the task id never
|
|
30
|
+
* lands in the case document / process variables.
|
|
31
|
+
*/
|
|
32
|
+
export declare const PREFILLED_TASK_ID_CARRIER: {
|
|
33
|
+
type: string;
|
|
34
|
+
key: string;
|
|
35
|
+
input: boolean;
|
|
36
|
+
persistent: boolean;
|
|
37
|
+
label: string;
|
|
38
|
+
properties: {
|
|
39
|
+
sourceKey: string;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Reads the prefilled task id from a Formio webform/wizard root, or null when absent.
|
|
44
|
+
*
|
|
45
|
+
* Looks in two places, in order:
|
|
46
|
+
* 1. The (prefilled) form definition — any component whose {@code properties.sourceKey}
|
|
47
|
+
* is {@code epistola:taskId} carries the task id in its {@code defaultValue}. This works
|
|
48
|
+
* even when the carrier is a hidden field that Formio doesn't surface into submission data.
|
|
49
|
+
* 2. The submission data under {@link PREFILLED_TASK_ID_DATA_KEY}, for a rendered sibling
|
|
50
|
+
* hidden field whose value Formio copied into {@code root.data}.
|
|
51
|
+
*/
|
|
52
|
+
export declare function readPrefilledTaskId(root: any): string | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** A `$doc`/`$pv`/`$case` path referenced by a JSONata expression. */
|
|
2
|
+
export interface ReferencedPath {
|
|
3
|
+
scope: 'doc' | 'pv' | 'case';
|
|
4
|
+
/** Dotted path under the scope, e.g. `aanvrager.naam`. Empty for a whole-scope reference. */
|
|
5
|
+
path: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Statically extract every `$doc`/`$pv`/`$case` path referenced anywhere in a JSONata
|
|
9
|
+
* expression. Used to surface — informationally — which inputs a template's data mapping
|
|
10
|
+
* consumes, so the override-builder author sees what is worth overriding during preview.
|
|
11
|
+
*
|
|
12
|
+
* This is a best-effort static read: paths built dynamically (`$lookup`, custom functions,
|
|
13
|
+
* computed keys) can't be resolved and simply won't appear. Treat the result as suggestions,
|
|
14
|
+
* never as validation — an empty result (e.g. on a parse error) means "nothing to suggest".
|
|
15
|
+
*
|
|
16
|
+
* Generalizes the variable-path primitive in `utils/jsonata-converter.ts` (`classifyValue`)
|
|
17
|
+
* to recurse over the whole AST rather than only top-level object values.
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractReferencedPaths(expression: string | null | undefined): ReferencedPath[];
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ExpressionFunctionInfo
|
|
1
|
+
import { ExpressionFunctionInfo } from '../models';
|
|
2
2
|
/**
|
|
3
3
|
* Shared state for the JSONata completion provider.
|
|
4
4
|
* Updated by the editor component when suggestions/functions change.
|
|
5
5
|
*/
|
|
6
6
|
export declare const jsonataCompletionData: {
|
|
7
|
-
|
|
7
|
+
variables: Record<string, string[]>;
|
|
8
8
|
functions: ExpressionFunctionInfo[];
|
|
9
9
|
};
|
|
10
10
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epistola.app/valtimo-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Epistola document generation plugin for Valtimo",
|
|
5
5
|
"license": "EUPL-1.2",
|
|
6
6
|
"repository": {
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"@angular/core": ">=17.0.0",
|
|
29
29
|
"@angular/forms": ">=17.0.0",
|
|
30
30
|
"@angular/router": ">=17.0.0",
|
|
31
|
+
"@formio/angular": "^7.0.0",
|
|
31
32
|
"@valtimo/components": "^13.21.0",
|
|
32
33
|
"@valtimo/plugin": "^13.21.0",
|
|
33
34
|
"@valtimo/process-link": "^13.21.0",
|
package/sbom.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bomFormat":"CycloneDX","specVersion":"1.6","serialNumber":"urn:uuid:286af41b-142c-4f2d-9677-d8b1ee82ed43","version":1,"metadata":{"timestamp":"2026-06-08T11:36:49Z","tools":{"components":[{"group":"@cyclonedx","name":"cdxgen","version":"11.4.0","purl":"pkg:npm/%40cyclonedx/cdxgen@11.4.0","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@11.4.0","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}]},"authors":[{"name":"OWASP Foundation"}],"lifecycles":[{"phase":"build"}],"component":{"name":"valtimo-plugin","group":"@epistola.app","version":"1.0.0","description":"Epistola document generation plugin for Valtimo","purl":"pkg:npm/%40epistola.app/valtimo-plugin@1.0.0","bom-ref":"pkg:npm/@epistola.app/valtimo-plugin@1.0.0","type":"application","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"externalReferences":[{"type":"vcs","url":"https://github.com/epistola-app/valtimo-epistola-plugin"}]},"properties":[{"name":"cdx:bom:componentTypes","value":"npm"},{"name":"cdx:bom:componentNamespaces","value":"@angular\\n@types\\n@valtimo"},{"name":"cdx:bom:componentSrcFiles","value":"frontend/plugin/node_modules/@angular/common/package.json\\nfrontend/plugin/node_modules/@angular/core/package.json\\nfrontend/plugin/node_modules/@angular/forms/package.json\\nfrontend/plugin/node_modules/@angular/router/package.json\\nfrontend/plugin/node_modules/@types/jest/package.json\\nfrontend/plugin/node_modules/@valtimo/components/package.json\\nfrontend/plugin/node_modules/@valtimo/plugin/package.json\\nfrontend/plugin/node_modules/@valtimo/process-link/package.json\\nfrontend/plugin/node_modules/@valtimo/security/package.json\\nfrontend/plugin/node_modules/@valtimo/shared/package.json\\nfrontend/plugin/node_modules/jest/package.json\\nfrontend/plugin/node_modules/jsonata/package.json\\nfrontend/plugin/node_modules/monaco-editor/package.json\\nfrontend/plugin/node_modules/ng-packagr/package.json\\nfrontend/plugin/node_modules/ts-jest/package.json\\nfrontend/plugin/node_modules/tslib/package.json"}]},"components":[{"authors":[{"name":"Microsoft Corp."}],"group":"","name":"tslib","version":"2.8.1","description":"Runtime library for TypeScript helper functions","scope":"optional","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:npm/tslib@2.8.1","externalReferences":[{"type":"website","url":"https://www.typescriptlang.org/"},{"type":"vcs","url":"https://github.com/Microsoft/tslib.git"}],"type":"library","bom-ref":"pkg:npm/tslib@2.8.1","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/tslib/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/tslib/package.json"}],"concludedValue":"frontend/plugin/node_modules/tslib/package.json"}]}},{"authors":[{"name":"Kulshekhar Kabra <kulshekhar@users.noreply.github.com> (https://github.com/kulshekhar)"}],"group":"","name":"ts-jest","version":"29.4.9","description":"A Jest transformer with source map support that lets you use Jest to test projects written in TypeScript","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/ts-jest@29.4.9","externalReferences":[{"type":"vcs","url":"https://kulshekhar.github.io/ts-jest"},{"type":"vcs","url":"git+https://github.com/kulshekhar/ts-jest.git"}],"type":"library","bom-ref":"pkg:npm/ts-jest@29.4.9","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/ts-jest/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/ts-jest/package.json"}],"concludedValue":"frontend/plugin/node_modules/ts-jest/package.json"}]},"tags":["test"]},{"authors":[{"name":"David Herges <david@spektrakel.de>"}],"group":"","name":"ng-packagr","version":"19.2.2","description":"Compile and package Angular libraries in Angular Package Format (APF)","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/ng-packagr@19.2.2","externalReferences":[{"type":"vcs","url":"https://github.com/ng-packagr/ng-packagr"},{"type":"vcs","url":"https://github.com/ng-packagr/ng-packagr.git"}],"type":"library","bom-ref":"pkg:npm/ng-packagr@19.2.2","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/ng-packagr/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/ng-packagr/package.json"}],"concludedValue":"frontend/plugin/node_modules/ng-packagr/package.json"}]}},{"authors":[{"name":"Microsoft Corporation"}],"group":"","name":"monaco-editor","version":"0.50.0","description":"A browser based code editor","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/monaco-editor@0.50.0","externalReferences":[{"type":"vcs","url":"https://github.com/microsoft/monaco-editor"},{"type":"vcs","url":"https://github.com/microsoft/monaco-editor"}],"type":"library","bom-ref":"pkg:npm/monaco-editor@0.50.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/monaco-editor/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/monaco-editor/package.json"}],"concludedValue":"frontend/plugin/node_modules/monaco-editor/package.json"}]}},{"group":"","name":"jsonata","version":"2.1.0","description":"JSON query and transformation language","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/jsonata@2.1.0","externalReferences":[{"type":"website","url":"http://jsonata.org/"},{"type":"vcs","url":"https://github.com/jsonata-js/jsonata.git"}],"type":"library","bom-ref":"pkg:npm/jsonata@2.1.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/jsonata/package.json"},{"name":"ImportedModules","value":"jsonata"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/jsonata/package.json"}],"concludedValue":"frontend/plugin/node_modules/jsonata/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#17"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#17"},{"location":"src/lib/utils/jsonata-converter.ts#1"}]}},{"group":"","name":"jest","version":"30.3.0","description":"Delightful JavaScript Testing.","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/jest@30.3.0","externalReferences":[{"type":"website","url":"https://jestjs.io/"},{"type":"vcs","url":"https://github.com/jestjs/jest.git"}],"type":"library","bom-ref":"pkg:npm/jest@30.3.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/jest/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/jest/package.json"}],"concludedValue":"frontend/plugin/node_modules/jest/package.json"}]},"tags":["test"]},{"group":"@valtimo","name":"shared","version":"13.21.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/shared@13.21.0","type":"library","bom-ref":"pkg:npm/@valtimo/shared@13.21.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/shared/package.json"},{"name":"ImportedModules","value":"@valtimo/shared,ROLE_ADMIN,@valtimo/shared/ROLE_ADMIN,CaseManagementParams,@valtimo/shared/CaseManagementParams,ManagementContext,@valtimo/shared/ManagementContext,ConfigService,@valtimo/shared/ConfigService,MenuItem,@valtimo/shared/MenuItem"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/shared/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/shared/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#5"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#6"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#26"},{"location":"src/lib/services/epistola-admin.service.ts#3"},{"location":"src/lib/services/epistola-menu.service.ts#3"},{"location":"src/lib/services/epistola-plugin.service.ts#3"}]}},{"group":"@valtimo","name":"security","version":"13.21.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/security@13.21.0","type":"library","bom-ref":"pkg:npm/@valtimo/security@13.21.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/security/package.json"},{"name":"ImportedModules","value":"@valtimo/security,AuthGuardService,@valtimo/security/AuthGuardService"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/security/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/security/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#28"},{"location":"src/lib/epistola-admin-routing.module.ts#3"}]}},{"group":"@valtimo","name":"process-link","version":"13.21.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/process-link@13.21.0","type":"library","bom-ref":"pkg:npm/@valtimo/process-link@13.21.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/process-link/package.json"},{"name":"ImportedModules","value":"@valtimo/process-link,ProcessLinkStateService,@valtimo/process-link/ProcessLinkStateService"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/process-link/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/process-link/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#18"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#27"}]}},{"group":"@valtimo","name":"plugin","version":"13.21.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/plugin@13.21.0","type":"library","bom-ref":"pkg:npm/@valtimo/plugin@13.21.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/plugin/package.json"},{"name":"ImportedModules","value":"@valtimo/plugin,PluginTranslatePipeModule,@valtimo/plugin/PluginTranslatePipeModule,FunctionConfigurationComponent,@valtimo/plugin/FunctionConfigurationComponent,PluginConfigurationComponent,@valtimo/plugin/PluginConfigurationComponent,PluginConfigurationData,@valtimo/plugin/PluginConfigurationData,PluginSpecification,@valtimo/plugin/PluginSpecification"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/plugin/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/plugin/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#12"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#13"},{"location":"src/lib/components/check-job-status-configuration/check-job-status-configuration.component.ts#3"},{"location":"src/lib/components/download-document-configuration/download-document-configuration.component.ts#3"},{"location":"src/lib/components/epistola-admin-page/epistola-admin-page.component.ts#4"},{"location":"src/lib/components/epistola-configuration/epistola-configuration.component.ts#3"},{"location":"src/lib/components/expected-structure/expected-structure.component.ts#3"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#17"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#11"},{"location":"src/lib/components/mapping-builder/mapping-builder.component.ts#4"},{"location":"src/lib/components/mapping-preview/mapping-preview.component.ts#12"},{"location":"src/lib/epistola.module.ts#10"},{"location":"src/lib/epistola.specification.ts#1"}]}},{"group":"@valtimo","name":"components","version":"13.21.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/components@13.21.0","type":"library","bom-ref":"pkg:npm/@valtimo/components@13.21.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/components/package.json"},{"name":"ImportedModules","value":"@valtimo/components,FormModule,@valtimo/components/FormModule,InputModule,@valtimo/components/InputModule,EditorModule,@valtimo/components/EditorModule,SelectModule,@valtimo/components/SelectModule,registerCustomFormioComponent,@valtimo/components/registerCustomFormioComponent,FormOutput,@valtimo/components/FormOutput,FormioCustomComponent,@valtimo/components/FormioCustomComponent,FormIoStateService,@valtimo/components/FormIoStateService,FormioCustomComponentInfo,@valtimo/components/FormioCustomComponentInfo,SelectedValue,@valtimo/components/SelectedValue,SelectItem,@valtimo/components/SelectItem,MenuService,@valtimo/components/MenuService"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/components/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/components/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#8"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#9"},{"location":"src/lib/components/check-job-status-configuration/check-job-status-configuration.component.ts#4"},{"location":"src/lib/components/download-document-configuration/download-document-configuration.component.ts#4"},{"location":"src/lib/components/epistola-configuration/epistola-configuration.component.ts#4"},{"location":"src/lib/components/epistola-document/epistola-document.component.ts#13"},{"location":"src/lib/components/epistola-document/epistola-document.formio.ts#2"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.component.ts#14"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.formio.ts#2"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.component.ts#14"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.formio.ts#2"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#25"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#12"},{"location":"src/lib/components/override-builder/override-builder.component.ts#11"},{"location":"src/lib/components/override-builder/override-builder.formio.ts#2"},{"location":"src/lib/components/process-link-selector/process-link-selector.component.ts#14"},{"location":"src/lib/components/process-link-selector/process-link-selector.formio.ts#2"},{"location":"src/lib/epistola.module.ts#11"},{"location":"src/lib/services/epistola-menu.service.ts#2"}]}},{"group":"@types","name":"jest","version":"30.0.0","description":"TypeScript definitions for jest","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40types/jest@30.0.0","externalReferences":[{"type":"vcs","url":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest"},{"type":"vcs","url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git"}],"type":"library","bom-ref":"pkg:npm/@types/jest@30.0.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@types/jest/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@types/jest/package.json"}],"concludedValue":"frontend/plugin/node_modules/@types/jest/package.json"}]},"tags":["test"]},{"authors":[{"name":"angular"}],"group":"@angular","name":"router","version":"19.2.20","description":"Angular - the routing library","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40angular/router@19.2.20","externalReferences":[{"type":"vcs","url":"https://github.com/angular/angular/tree/main/packages/router"},{"type":"vcs","url":"git+https://github.com/angular/angular.git"}],"type":"framework","bom-ref":"pkg:npm/@angular/router@19.2.20","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@angular/router/package.json"},{"name":"ImportedModules","value":"@angular/router,RouterModule,@angular/router/RouterModule,Router,@angular/router/Router,ActivatedRoute,@angular/router/ActivatedRoute,Routes,@angular/router/Routes,CanActivateFn,@angular/router/CanActivateFn"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@angular/router/package.json"}],"concludedValue":"frontend/plugin/node_modules/@angular/router/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#22"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#23"},{"location":"src/lib/components/epistola-admin-page/epistola-admin-page.component.ts#3"},{"location":"src/lib/epistola-admin-routing.module.ts#2"},{"location":"src/lib/epistola-enabled.guard.ts#2"}]},"tags":["framework"]},{"authors":[{"name":"angular"}],"group":"@angular","name":"forms","version":"19.2.20","description":"Angular - directives and services for creating forms","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40angular/forms@19.2.20","externalReferences":[{"type":"vcs","url":"https://github.com/angular/angular.git"}],"type":"framework","bom-ref":"pkg:npm/@angular/forms@19.2.20","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@angular/forms/package.json"},{"name":"ImportedModules","value":"@angular/forms,FormsModule,@angular/forms/FormsModule"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@angular/forms/package.json"}],"concludedValue":"frontend/plugin/node_modules/@angular/forms/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#15"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#16"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#12"},{"location":"src/lib/components/mapping-builder/builder-field/builder-field.component.ts#3"},{"location":"src/lib/components/mapping-builder/mapping-builder.component.ts#3"},{"location":"src/lib/components/mapping-preview/mapping-preview.component.ts#11"},{"location":"src/lib/components/override-builder/override-builder.component.ts#10"},{"location":"src/lib/components/process-link-selector/process-link-selector.component.ts#13"}]},"tags":["framework"]},{"authors":[{"name":"angular"}],"group":"@angular","name":"core","version":"19.2.20","description":"Angular - the core framework","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40angular/core@19.2.20","externalReferences":[{"type":"vcs","url":"https://github.com/angular/angular.git"}],"type":"framework","bom-ref":"pkg:npm/@angular/core@19.2.20","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@angular/core/package.json"},{"name":"ImportedModules","value":"@angular/core,Injectable,@angular/core/Injectable,EventEmitter,@angular/core/EventEmitter,Output,@angular/core/Output,Input,@angular/core/Input,Component,@angular/core/Component,ChangeDetectionStrategy,@angular/core/ChangeDetectionStrategy,inject,@angular/core/inject,NgModule,@angular/core/NgModule,ENVIRONMENT_INITIALIZER,@angular/core/ENVIRONMENT_INITIALIZER,Injector,@angular/core/Injector,OnDestroy,@angular/core/OnDestroy,OnInit,@angular/core/OnInit,ChangeDetectorRef,@angular/core/ChangeDetectorRef,OnChanges,@angular/core/OnChanges,SimpleChanges,@angular/core/SimpleChanges,ModuleWithProviders,@angular/core/ModuleWithProviders"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@angular/core/package.json"}],"concludedValue":"frontend/plugin/node_modules/@angular/core/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#1"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#2"},{"location":"src/lib/components/check-job-status-configuration/check-job-status-configuration.component.ts#1"},{"location":"src/lib/components/download-document-configuration/download-document-configuration.component.ts#1"},{"location":"src/lib/components/epistola-admin-page/epistola-admin-page.component.ts#1"},{"location":"src/lib/components/epistola-configuration/epistola-configuration.component.ts#1"},{"location":"src/lib/components/epistola-document/epistola-document.component.ts#10"},{"location":"src/lib/components/epistola-document/epistola-document.formio.ts#1"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.component.ts#11"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.formio.ts#1"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.component.ts#11"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.formio.ts#1"},{"location":"src/lib/components/expected-structure/expected-structure.component.ts#1"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#10"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#9"},{"location":"src/lib/components/mapping-builder/builder-field/builder-field.component.ts#1"},{"location":"src/lib/components/mapping-builder/mapping-builder.component.ts#1"},{"location":"src/lib/components/mapping-preview/mapping-preview.component.ts#9"},{"location":"src/lib/components/override-builder/override-builder.component.ts#8"},{"location":"src/lib/components/override-builder/override-builder.formio.ts#1"},{"location":"src/lib/components/process-link-selector/process-link-selector.component.ts#11"},{"location":"src/lib/components/process-link-selector/process-link-selector.formio.ts#1"},{"location":"src/lib/epistola-admin-routing.module.ts#1"},{"location":"src/lib/epistola-enabled.guard.ts#1"},{"location":"src/lib/epistola.module.ts#7"},{"location":"src/lib/services/epistola-admin.service.ts#1"},{"location":"src/lib/services/epistola-menu.service.ts#1"},{"location":"src/lib/services/epistola-plugin.service.ts#1"},{"location":"src/lib/services/epistola-task-context.interceptor.ts#1"},{"location":"src/lib/services/epistola-task-context.service.ts#1"}]},"tags":["framework"]},{"authors":[{"name":"angular"}],"group":"@angular","name":"common","version":"19.2.20","description":"Angular - commonly needed directives and services","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40angular/common@19.2.20","externalReferences":[{"type":"vcs","url":"https://github.com/angular/angular.git"}],"type":"framework","bom-ref":"pkg:npm/@angular/common@19.2.20","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@angular/common/package.json"},{"name":"ImportedModules","value":"@angular/common/http,HttpHeaders,@angular/common/http/HttpHeaders,HttpClientModule,@angular/common/http/HttpClientModule,HTTP_INTERCEPTORS,@angular/common/http/HTTP_INTERCEPTORS,HttpClient,@angular/common/http/HttpClient,HttpEvent,@angular/common/http/HttpEvent,HttpHandler,@angular/common/http/HttpHandler,HttpInterceptor,@angular/common/http/HttpInterceptor,HttpRequest,@angular/common/http/HttpRequest,@angular/common,CommonModule,@angular/common/CommonModule"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@angular/common/package.json"}],"concludedValue":"frontend/plugin/node_modules/@angular/common/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#3"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#4"},{"location":"src/lib/epistola.module.ts#9"},{"location":"src/lib/services/epistola-admin.service.ts#2"},{"location":"src/lib/services/epistola-plugin.service.ts#2"},{"location":"src/lib/services/epistola-task-context.interceptor.ts#2"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#10"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#11"},{"location":"src/lib/components/check-job-status-configuration/check-job-status-configuration.component.ts#2"},{"location":"src/lib/components/download-document-configuration/download-document-configuration.component.ts#2"},{"location":"src/lib/components/epistola-admin-page/epistola-admin-page.component.ts#2"},{"location":"src/lib/components/epistola-configuration/epistola-configuration.component.ts#2"},{"location":"src/lib/components/epistola-document/epistola-document.component.ts#11"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.component.ts#12"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.component.ts#12"},{"location":"src/lib/components/expected-structure/expected-structure.component.ts#2"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#11"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#10"},{"location":"src/lib/components/mapping-builder/builder-field/builder-field.component.ts#2"},{"location":"src/lib/components/mapping-builder/mapping-builder.component.ts#2"},{"location":"src/lib/components/mapping-preview/mapping-preview.component.ts#10"},{"location":"src/lib/components/override-builder/override-builder.component.ts#9"},{"location":"src/lib/components/process-link-selector/process-link-selector.component.ts#12"},{"location":"src/lib/epistola.module.ts#8"}]},"tags":["framework"]}],"dependencies":[],"annotations":[{"bom-ref":"metadata-annotations","subjects":["pkg:npm/@epistola.app/valtimo-plugin@1.0.0"],"annotator":{"component":{"group":"@cyclonedx","name":"cdxgen","version":"11.4.0","purl":"pkg:npm/%40cyclonedx/cdxgen@11.4.0","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@11.4.0","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}},"timestamp":"2026-06-08T11:36:49Z","text":"This Software Bill-of-Materials (SBOM) document was created on Monday, June 8, 2026 with cdxgen. The data was captured during the build lifecycle phase. The document describes an application named 'valtimo-plugin' with version '1.0.0'. There are 16 components. The package type in this SBOM is npm with 3 purl namespaces described under components. The components were identified from 16 source files."}]}
|
|
1
|
+
{"bomFormat":"CycloneDX","specVersion":"1.6","serialNumber":"urn:uuid:41d763e6-972f-466f-a19e-29edb2a1502b","version":1,"metadata":{"timestamp":"2026-06-22T09:09:37Z","tools":{"components":[{"group":"@cyclonedx","name":"cdxgen","version":"11.4.0","purl":"pkg:npm/%40cyclonedx/cdxgen@11.4.0","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@11.4.0","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}]},"authors":[{"name":"OWASP Foundation"}],"lifecycles":[{"phase":"build"}],"component":{"name":"valtimo-plugin","group":"@epistola.app","version":"1.0.0","description":"Epistola document generation plugin for Valtimo","purl":"pkg:npm/%40epistola.app/valtimo-plugin@1.0.0","bom-ref":"pkg:npm/@epistola.app/valtimo-plugin@1.0.0","type":"application","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"externalReferences":[{"type":"vcs","url":"https://github.com/epistola-app/valtimo-epistola-plugin"}]},"properties":[{"name":"cdx:bom:componentTypes","value":"npm"},{"name":"cdx:bom:componentNamespaces","value":"@angular\\n@formio\\n@types\\n@valtimo"},{"name":"cdx:bom:componentSrcFiles","value":"frontend/plugin/node_modules/@angular/common/package.json\\nfrontend/plugin/node_modules/@angular/core/package.json\\nfrontend/plugin/node_modules/@angular/forms/package.json\\nfrontend/plugin/node_modules/@angular/router/package.json\\nfrontend/plugin/node_modules/@formio/angular/package.json\\nfrontend/plugin/node_modules/@types/jest/package.json\\nfrontend/plugin/node_modules/@valtimo/components/package.json\\nfrontend/plugin/node_modules/@valtimo/plugin/package.json\\nfrontend/plugin/node_modules/@valtimo/process-link/package.json\\nfrontend/plugin/node_modules/@valtimo/security/package.json\\nfrontend/plugin/node_modules/@valtimo/shared/package.json\\nfrontend/plugin/node_modules/jest/package.json\\nfrontend/plugin/node_modules/jsonata/package.json\\nfrontend/plugin/node_modules/monaco-editor/package.json\\nfrontend/plugin/node_modules/ng-packagr/package.json\\nfrontend/plugin/node_modules/ts-jest/package.json\\nfrontend/plugin/node_modules/tslib/package.json"}]},"components":[{"authors":[{"name":"Microsoft Corp."}],"group":"","name":"tslib","version":"2.8.1","description":"Runtime library for TypeScript helper functions","scope":"optional","licenses":[{"license":{"id":"0BSD","url":"https://opensource.org/licenses/0BSD"}}],"purl":"pkg:npm/tslib@2.8.1","externalReferences":[{"type":"website","url":"https://www.typescriptlang.org/"},{"type":"vcs","url":"https://github.com/Microsoft/tslib.git"}],"type":"library","bom-ref":"pkg:npm/tslib@2.8.1","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/tslib/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/tslib/package.json"}],"concludedValue":"frontend/plugin/node_modules/tslib/package.json"}]}},{"authors":[{"name":"Kulshekhar Kabra <kulshekhar@users.noreply.github.com> (https://github.com/kulshekhar)"}],"group":"","name":"ts-jest","version":"29.4.9","description":"A Jest transformer with source map support that lets you use Jest to test projects written in TypeScript","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/ts-jest@29.4.9","externalReferences":[{"type":"vcs","url":"https://kulshekhar.github.io/ts-jest"},{"type":"vcs","url":"git+https://github.com/kulshekhar/ts-jest.git"}],"type":"library","bom-ref":"pkg:npm/ts-jest@29.4.9","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/ts-jest/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/ts-jest/package.json"}],"concludedValue":"frontend/plugin/node_modules/ts-jest/package.json"}]},"tags":["test"]},{"authors":[{"name":"David Herges <david@spektrakel.de>"}],"group":"","name":"ng-packagr","version":"19.2.2","description":"Compile and package Angular libraries in Angular Package Format (APF)","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/ng-packagr@19.2.2","externalReferences":[{"type":"vcs","url":"https://github.com/ng-packagr/ng-packagr"},{"type":"vcs","url":"https://github.com/ng-packagr/ng-packagr.git"}],"type":"library","bom-ref":"pkg:npm/ng-packagr@19.2.2","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/ng-packagr/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/ng-packagr/package.json"}],"concludedValue":"frontend/plugin/node_modules/ng-packagr/package.json"}]}},{"authors":[{"name":"Microsoft Corporation"}],"group":"","name":"monaco-editor","version":"0.50.0","description":"A browser based code editor","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/monaco-editor@0.50.0","externalReferences":[{"type":"vcs","url":"https://github.com/microsoft/monaco-editor"},{"type":"vcs","url":"https://github.com/microsoft/monaco-editor"}],"type":"library","bom-ref":"pkg:npm/monaco-editor@0.50.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/monaco-editor/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/monaco-editor/package.json"}],"concludedValue":"frontend/plugin/node_modules/monaco-editor/package.json"}]}},{"group":"","name":"jsonata","version":"2.1.0","description":"JSON query and transformation language","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/jsonata@2.1.0","externalReferences":[{"type":"website","url":"http://jsonata.org/"},{"type":"vcs","url":"https://github.com/jsonata-js/jsonata.git"}],"type":"library","bom-ref":"pkg:npm/jsonata@2.1.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/jsonata/package.json"},{"name":"ImportedModules","value":"jsonata"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/jsonata/package.json"}],"concludedValue":"frontend/plugin/node_modules/jsonata/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#17"},{"location":"src/lib/components/epistola-document-preview/preview-utils.ts#19"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#35"},{"location":"src/lib/components/override-builder/override-jsonata.ts#19"},{"location":"src/lib/utils/extract-referenced-paths.ts#19"},{"location":"src/lib/utils/jsonata-converter.ts#19"}]}},{"group":"","name":"jest","version":"30.3.0","description":"Delightful JavaScript Testing.","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/jest@30.3.0","externalReferences":[{"type":"website","url":"https://jestjs.io/"},{"type":"vcs","url":"https://github.com/jestjs/jest.git"}],"type":"library","bom-ref":"pkg:npm/jest@30.3.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/jest/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/jest/package.json"}],"concludedValue":"frontend/plugin/node_modules/jest/package.json"}]},"tags":["test"]},{"group":"@valtimo","name":"shared","version":"13.32.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/shared@13.32.0","type":"library","bom-ref":"pkg:npm/@valtimo/shared@13.32.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/shared/package.json"},{"name":"ImportedModules","value":"@valtimo/shared,ROLE_ADMIN,@valtimo/shared/ROLE_ADMIN,CaseManagementParams,@valtimo/shared/CaseManagementParams,ManagementContext,@valtimo/shared/ManagementContext,ConfigService,@valtimo/shared/ConfigService,MenuItem,@valtimo/shared/MenuItem"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/shared/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/shared/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#5"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#6"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#45"},{"location":"src/lib/services/epistola-admin.service.ts#21"},{"location":"src/lib/services/epistola-menu.service.ts#21"},{"location":"src/lib/services/epistola-plugin.service.ts#21"}]}},{"group":"@valtimo","name":"security","version":"13.21.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/security@13.21.0","type":"library","bom-ref":"pkg:npm/@valtimo/security@13.21.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/security/package.json"},{"name":"ImportedModules","value":"@valtimo/security,AuthGuardService,@valtimo/security/AuthGuardService"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/security/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/security/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#28"},{"location":"src/lib/epistola-admin-routing.module.ts#21"}]}},{"group":"@valtimo","name":"process-link","version":"13.32.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/process-link@13.32.0","type":"library","bom-ref":"pkg:npm/@valtimo/process-link@13.32.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/process-link/package.json"},{"name":"ImportedModules","value":"@valtimo/process-link,ProcessLinkStateService,@valtimo/process-link/ProcessLinkStateService"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/process-link/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/process-link/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#18"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#46"}]}},{"group":"@valtimo","name":"plugin","version":"13.32.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/plugin@13.32.0","type":"library","bom-ref":"pkg:npm/@valtimo/plugin@13.32.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/plugin/package.json"},{"name":"ImportedModules","value":"@valtimo/plugin,PluginTranslatePipeModule,@valtimo/plugin/PluginTranslatePipeModule,FunctionConfigurationComponent,@valtimo/plugin/FunctionConfigurationComponent,FunctionConfigurationData,@valtimo/plugin/FunctionConfigurationData,PluginConfigurationComponent,@valtimo/plugin/PluginConfigurationComponent,PluginConfigurationData,@valtimo/plugin/PluginConfigurationData,PluginSpecification,@valtimo/plugin/PluginSpecification"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/plugin/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/plugin/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#12"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#13"},{"location":"src/lib/components/check-job-status-configuration/check-job-status-configuration.component.ts#25"},{"location":"src/lib/components/download-document-configuration/download-document-configuration.component.ts#25"},{"location":"src/lib/components/epistola-admin-page/epistola-admin-page.component.ts#22"},{"location":"src/lib/components/epistola-configuration/epistola-configuration.component.ts#25"},{"location":"src/lib/components/expected-structure/expected-structure.component.ts#21"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#36"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#29"},{"location":"src/lib/components/mapping-builder/mapping-builder.component.ts#22"},{"location":"src/lib/components/mapping-preview/mapping-preview.component.ts#30"},{"location":"src/lib/epistola.module.ts#28"},{"location":"src/lib/epistola.specification.ts#19"}]}},{"group":"@valtimo","name":"components","version":"13.32.0","scope":"required","licenses":[{"license":{"id":"EUPL-1.2","url":"https://opensource.org/licenses/EUPL-1.2"}}],"purl":"pkg:npm/%40valtimo/components@13.32.0","type":"library","bom-ref":"pkg:npm/@valtimo/components@13.32.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@valtimo/components/package.json"},{"name":"ImportedModules","value":"@valtimo/components,FormModule,@valtimo/components/FormModule,InputModule,@valtimo/components/InputModule,EditorModule,@valtimo/components/EditorModule,SelectModule,@valtimo/components/SelectModule,registerCustomFormioComponent,@valtimo/components/registerCustomFormioComponent,FormOutput,@valtimo/components/FormOutput,SelectItem,@valtimo/components/SelectItem,FormioCustomComponent,@valtimo/components/FormioCustomComponent,FormIoStateService,@valtimo/components/FormIoStateService,FormioCustomComponentInfo,@valtimo/components/FormioCustomComponentInfo,SelectedValue,@valtimo/components/SelectedValue,MenuService,@valtimo/components/MenuService"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@valtimo/components/package.json"}],"concludedValue":"frontend/plugin/node_modules/@valtimo/components/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#8"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#9"},{"location":"src/lib/components/check-job-status-configuration/check-job-status-configuration.component.ts#26"},{"location":"src/lib/components/download-document-configuration/download-document-configuration.component.ts#26"},{"location":"src/lib/components/epistola-configuration/epistola-configuration.component.ts#26"},{"location":"src/lib/components/epistola-document/epistola-document.component.ts#32"},{"location":"src/lib/components/epistola-document/epistola-document.formio.ts#20"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.component.ts#32"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.formio.ts#20"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.component.ts#32"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.formio.ts#20"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#44"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#30"},{"location":"src/lib/components/override-builder/override-builder.component.ts#31"},{"location":"src/lib/components/override-builder/override-builder.formio.ts#20"},{"location":"src/lib/components/process-link-selector/process-link-selector.component.ts#32"},{"location":"src/lib/components/process-link-selector/process-link-selector.formio.ts#20"},{"location":"src/lib/epistola.module.ts#29"},{"location":"src/lib/services/epistola-menu.service.ts#20"}]}},{"group":"@types","name":"jest","version":"30.0.0","description":"TypeScript definitions for jest","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40types/jest@30.0.0","externalReferences":[{"type":"vcs","url":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest"},{"type":"vcs","url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git"}],"type":"library","bom-ref":"pkg:npm/@types/jest@30.0.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@types/jest/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@types/jest/package.json"}],"concludedValue":"frontend/plugin/node_modules/@types/jest/package.json"}]},"tags":["test"]},{"authors":[{"name":"Travis Tidwell <travis@form.io>"}],"group":"@formio","name":"angular","version":"7.0.0","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40formio/angular@7.0.0","externalReferences":[{"type":"vcs","url":"https://github.com/formio/angular-formio"}],"type":"library","bom-ref":"pkg:npm/@formio/angular@7.0.0","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@formio/angular/package.json"},{"name":"ImportedModules","value":"@formio/angular,FormioModule,@formio/angular/FormioModule"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@formio/angular/package.json"}],"concludedValue":"frontend/plugin/node_modules/@formio/angular/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#20"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#21"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.component.ts#33"}]}},{"authors":[{"name":"angular"}],"group":"@angular","name":"router","version":"19.2.20","description":"Angular - the routing library","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40angular/router@19.2.20","externalReferences":[{"type":"vcs","url":"https://github.com/angular/angular/tree/main/packages/router"},{"type":"vcs","url":"git+https://github.com/angular/angular.git"}],"type":"framework","bom-ref":"pkg:npm/@angular/router@19.2.20","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@angular/router/package.json"},{"name":"ImportedModules","value":"@angular/router,RouterModule,@angular/router/RouterModule,Router,@angular/router/Router,ActivatedRoute,@angular/router/ActivatedRoute,Routes,@angular/router/Routes,CanActivateFn,@angular/router/CanActivateFn"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@angular/router/package.json"}],"concludedValue":"frontend/plugin/node_modules/@angular/router/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#22"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#23"},{"location":"src/lib/components/epistola-admin-page/epistola-admin-page.component.ts#21"},{"location":"src/lib/epistola-admin-routing.module.ts#20"},{"location":"src/lib/epistola-enabled.guard.ts#20"}]},"tags":["framework"]},{"authors":[{"name":"angular"}],"group":"@angular","name":"forms","version":"19.2.20","description":"Angular - directives and services for creating forms","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40angular/forms@19.2.20","externalReferences":[{"type":"vcs","url":"https://github.com/angular/angular.git"}],"type":"framework","bom-ref":"pkg:npm/@angular/forms@19.2.20","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@angular/forms/package.json"},{"name":"ImportedModules","value":"@angular/forms,FormsModule,@angular/forms/FormsModule"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@angular/forms/package.json"}],"concludedValue":"frontend/plugin/node_modules/@angular/forms/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#15"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#16"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#30"},{"location":"src/lib/components/mapping-builder/builder-field/builder-field.component.ts#21"},{"location":"src/lib/components/mapping-builder/mapping-builder.component.ts#21"},{"location":"src/lib/components/mapping-preview/mapping-preview.component.ts#29"},{"location":"src/lib/components/override-builder/override-builder.component.ts#30"},{"location":"src/lib/components/process-link-selector/process-link-selector.component.ts#31"}]},"tags":["framework"]},{"authors":[{"name":"angular"}],"group":"@angular","name":"core","version":"19.2.20","description":"Angular - the core framework","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40angular/core@19.2.20","externalReferences":[{"type":"vcs","url":"https://github.com/angular/angular.git"}],"type":"framework","bom-ref":"pkg:npm/@angular/core@19.2.20","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@angular/core/package.json"},{"name":"ImportedModules","value":"@angular/core,Injectable,@angular/core/Injectable,EventEmitter,@angular/core/EventEmitter,Output,@angular/core/Output,Input,@angular/core/Input,Component,@angular/core/Component,ChangeDetectionStrategy,@angular/core/ChangeDetectionStrategy,inject,@angular/core/inject,NgModule,@angular/core/NgModule,ENVIRONMENT_INITIALIZER,@angular/core/ENVIRONMENT_INITIALIZER,Injector,@angular/core/Injector,OnDestroy,@angular/core/OnDestroy,OnInit,@angular/core/OnInit,ChangeDetectorRef,@angular/core/ChangeDetectorRef,OnChanges,@angular/core/OnChanges,SimpleChanges,@angular/core/SimpleChanges,ModuleWithProviders,@angular/core/ModuleWithProviders"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@angular/core/package.json"}],"concludedValue":"frontend/plugin/node_modules/@angular/core/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#1"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#2"},{"location":"src/lib/components/check-job-status-configuration/check-job-status-configuration.component.ts#19"},{"location":"src/lib/components/download-document-configuration/download-document-configuration.component.ts#19"},{"location":"src/lib/components/epistola-admin-page/epistola-admin-page.component.ts#19"},{"location":"src/lib/components/epistola-configuration/epistola-configuration.component.ts#19"},{"location":"src/lib/components/epistola-document/epistola-document.component.ts#29"},{"location":"src/lib/components/epistola-document/epistola-document.formio.ts#19"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.component.ts#29"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.formio.ts#19"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.component.ts#29"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.formio.ts#19"},{"location":"src/lib/components/expected-structure/expected-structure.component.ts#19"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#28"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#27"},{"location":"src/lib/components/mapping-builder/builder-field/builder-field.component.ts#19"},{"location":"src/lib/components/mapping-builder/mapping-builder.component.ts#19"},{"location":"src/lib/components/mapping-preview/mapping-preview.component.ts#27"},{"location":"src/lib/components/override-builder/override-builder.component.ts#28"},{"location":"src/lib/components/override-builder/override-builder.formio.ts#19"},{"location":"src/lib/components/process-link-selector/process-link-selector.component.ts#29"},{"location":"src/lib/components/process-link-selector/process-link-selector.formio.ts#19"},{"location":"src/lib/epistola-admin-routing.module.ts#19"},{"location":"src/lib/epistola-enabled.guard.ts#19"},{"location":"src/lib/epistola.module.ts#25"},{"location":"src/lib/services/epistola-admin.service.ts#19"},{"location":"src/lib/services/epistola-menu.service.ts#19"},{"location":"src/lib/services/epistola-plugin.service.ts#19"}]},"tags":["framework"]},{"authors":[{"name":"angular"}],"group":"@angular","name":"common","version":"19.2.20","description":"Angular - commonly needed directives and services","scope":"required","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40angular/common@19.2.20","externalReferences":[{"type":"vcs","url":"https://github.com/angular/angular.git"}],"type":"framework","bom-ref":"pkg:npm/@angular/common@19.2.20","properties":[{"name":"SrcFile","value":"frontend/plugin/node_modules/@angular/common/package.json"},{"name":"ImportedModules","value":"@angular/common/http,HttpHeaders,@angular/common/http/HttpHeaders,HttpClientModule,@angular/common/http/HttpClientModule,HttpClient,@angular/common/http/HttpClient,@angular/common,CommonModule,@angular/common/CommonModule"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"frontend/plugin/node_modules/@angular/common/package.json"}],"concludedValue":"frontend/plugin/node_modules/@angular/common/package.json"}],"occurrences":[{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#3"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#4"},{"location":"src/lib/epistola.module.ts#27"},{"location":"src/lib/services/epistola-admin.service.ts#20"},{"location":"src/lib/services/epistola-plugin.service.ts#20"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#10"},{"location":"dist/fesm2022/epistola.app-valtimo-plugin.mjs#11"},{"location":"src/lib/components/check-job-status-configuration/check-job-status-configuration.component.ts#20"},{"location":"src/lib/components/download-document-configuration/download-document-configuration.component.ts#20"},{"location":"src/lib/components/epistola-admin-page/epistola-admin-page.component.ts#20"},{"location":"src/lib/components/epistola-configuration/epistola-configuration.component.ts#20"},{"location":"src/lib/components/epistola-document/epistola-document.component.ts#30"},{"location":"src/lib/components/epistola-document-preview/epistola-document-preview.component.ts#30"},{"location":"src/lib/components/epistola-retry-form/epistola-retry-form.component.ts#30"},{"location":"src/lib/components/expected-structure/expected-structure.component.ts#20"},{"location":"src/lib/components/generate-document-configuration/generate-document-configuration.component.ts#29"},{"location":"src/lib/components/jsonata-editor/jsonata-editor.component.ts#28"},{"location":"src/lib/components/mapping-builder/builder-field/builder-field.component.ts#20"},{"location":"src/lib/components/mapping-builder/mapping-builder.component.ts#20"},{"location":"src/lib/components/mapping-preview/mapping-preview.component.ts#28"},{"location":"src/lib/components/override-builder/override-builder.component.ts#29"},{"location":"src/lib/components/process-link-selector/process-link-selector.component.ts#30"},{"location":"src/lib/epistola.module.ts#26"}]},"tags":["framework"]}],"dependencies":[],"annotations":[{"bom-ref":"metadata-annotations","subjects":["pkg:npm/@epistola.app/valtimo-plugin@1.0.0"],"annotator":{"component":{"group":"@cyclonedx","name":"cdxgen","version":"11.4.0","purl":"pkg:npm/%40cyclonedx/cdxgen@11.4.0","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@11.4.0","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}},"timestamp":"2026-06-22T09:09:37Z","text":"This Software Bill-of-Materials (SBOM) document was created on Monday, June 22, 2026 with cdxgen. The data was captured during the build lifecycle phase. The document describes an application named 'valtimo-plugin' with version '1.0.0'. There are 17 components. The package type in this SBOM is npm with 4 purl namespaces described under components. The components were identified from 17 source files."}]}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { EpistolaTaskContextService } from './epistola-task-context.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Sniffs Valtimo's task-open signal and pushes the active taskInstanceId into
|
|
7
|
-
* {@link EpistolaTaskContextService}. The signal is the canonical
|
|
8
|
-
* {@code GET /api/v2/process-link/task/{taskId}} call that
|
|
9
|
-
* {@code TaskDetailContentComponent.loadTaskDetails(...)} fires unconditionally
|
|
10
|
-
* before any task form is rendered (see @valtimo/task internals).
|
|
11
|
-
*
|
|
12
|
-
* <p>This interceptor does <b>not</b> modify the outgoing request. It only
|
|
13
|
-
* captures the taskId from the URL.
|
|
14
|
-
*
|
|
15
|
-
* <p>Workaround for Valtimo 13.21 not exposing taskInstanceId through any
|
|
16
|
-
* injectable service. Remove once upstream adds e.g.
|
|
17
|
-
* {@code FormIoStateService.setTaskInstanceId(...)}.
|
|
18
|
-
*
|
|
19
|
-
* <p>The actual URL-matching logic lives in
|
|
20
|
-
* {@link extractTaskInstanceIdFromUrl} so it can be unit-tested without an
|
|
21
|
-
* Angular harness.
|
|
22
|
-
*/
|
|
23
|
-
export declare class EpistolaTaskContextInterceptor implements HttpInterceptor {
|
|
24
|
-
private readonly taskContext;
|
|
25
|
-
constructor(taskContext: EpistolaTaskContextService);
|
|
26
|
-
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
27
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<EpistolaTaskContextInterceptor, never>;
|
|
28
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<EpistolaTaskContextInterceptor>;
|
|
29
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure helpers for {@link EpistolaTaskContextInterceptor}, extracted so they
|
|
3
|
-
* can be unit-tested without pulling in {@code @angular/core} (which ts-jest
|
|
4
|
-
* cannot transform without {@code jest-preset-angular}).
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Pattern Valtimo uses for the canonical task-open call:
|
|
8
|
-
* {@code GET /api/v2/process-link/task/{taskInstanceId}}.
|
|
9
|
-
*
|
|
10
|
-
* Captures the {@code taskInstanceId} (UUID v4-style 36-character hyphenated
|
|
11
|
-
* hex string). Anchored at the end of the URL or at a query-string delimiter
|
|
12
|
-
* so we don't accidentally match a longer trailing segment.
|
|
13
|
-
*/
|
|
14
|
-
export declare const TASK_PROCESS_LINK_PATTERN: RegExp;
|
|
15
|
-
/**
|
|
16
|
-
* Returns the captured {@code taskInstanceId} from a Valtimo task-open
|
|
17
|
-
* request URL, or {@code null} if the request does not match.
|
|
18
|
-
*/
|
|
19
|
-
export declare function extractTaskInstanceIdFromUrl(method: string, url: string): string | null;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Holds the currently-open Operaton user task instance id so that custom
|
|
5
|
-
* Formio components rendered inside a Valtimo task form (preview, download,
|
|
6
|
-
* retry-form) can include it in backend requests for PBAC.
|
|
7
|
-
*
|
|
8
|
-
* Populated by {@link EpistolaTaskContextInterceptor}, which sniffs Valtimo's
|
|
9
|
-
* canonical "load process link for task" GET (`/api/v2/process-link/task/{taskId}`)
|
|
10
|
-
* — the request always fires when a task opens, before the form renders.
|
|
11
|
-
*
|
|
12
|
-
* <p><b>Why this exists:</b> Valtimo 13.21 does not expose the active task
|
|
13
|
-
* instance id through any service that custom Formio components can inject
|
|
14
|
-
* (`FormIoStateService` carries documentId and processInstanceId only;
|
|
15
|
-
* `TaskDetailContentComponent.taskInstanceId$` is private to that component
|
|
16
|
-
* and Formio elements live in their own injector tree). This service is a
|
|
17
|
-
* workaround until upstream exposes `taskInstanceId` via `FormIoStateService`.
|
|
18
|
-
*/
|
|
19
|
-
export declare class EpistolaTaskContextService {
|
|
20
|
-
private readonly _taskInstanceId$;
|
|
21
|
-
readonly taskInstanceId$: Observable<string | null>;
|
|
22
|
-
get taskInstanceId(): string | null;
|
|
23
|
-
setTaskInstanceId(id: string | null): void;
|
|
24
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<EpistolaTaskContextService, never>;
|
|
25
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<EpistolaTaskContextService>;
|
|
26
|
-
}
|