@documenso/embed-svelte 0.5.0 → 0.6.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/dist/create-envelope.svelte +82 -0
- package/dist/create-envelope.svelte.d.ts +44 -0
- package/dist/features-type.d.ts +47 -0
- package/dist/features-type.js +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +4 -0
- package/dist/sign-document.svelte +6 -0
- package/dist/sign-document.svelte.d.ts +4 -0
- package/dist/update-envelope.svelte +84 -0
- package/dist/update-envelope.svelte.d.ts +44 -0
- package/package.json +6 -1
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<script context="module" lang="ts">
|
|
2
|
+
export type EmbedCreateEnvelopeProps = {
|
|
3
|
+
className?: string;
|
|
4
|
+
host?: string;
|
|
5
|
+
presignToken: string;
|
|
6
|
+
externalId?: string;
|
|
7
|
+
type: "DOCUMENT" | "TEMPLATE";
|
|
8
|
+
css?: string | undefined;
|
|
9
|
+
cssVars?: (CssVars & Record<string, string>) | undefined;
|
|
10
|
+
darkModeDisabled?: boolean | undefined; // biome-ignore lint/suspicious/noExplicitAny: Hehe
|
|
11
|
+
|
|
12
|
+
features?: DeepPartial<EnvelopeEditorSettings> & Record<string, any>;
|
|
13
|
+
onEnvelopeCreated?: (data: {
|
|
14
|
+
externalId: string | null;
|
|
15
|
+
envelopeId: number;
|
|
16
|
+
}) => void;
|
|
17
|
+
};
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<script lang="ts">
|
|
21
|
+
import { onDestroy, onMount } from "svelte";
|
|
22
|
+
|
|
23
|
+
import { CssVars } from "./css-vars";
|
|
24
|
+
import type { DeepPartial, EnvelopeEditorSettings } from "./features-type";
|
|
25
|
+
|
|
26
|
+
export let host: EmbedCreateEnvelopeProps["host"] = undefined;
|
|
27
|
+
export let externalId: EmbedCreateEnvelopeProps["externalId"] = undefined;
|
|
28
|
+
export let type: EmbedCreateEnvelopeProps["type"];
|
|
29
|
+
export let features: EmbedCreateEnvelopeProps["features"] = undefined;
|
|
30
|
+
export let css: EmbedCreateEnvelopeProps["css"] = undefined;
|
|
31
|
+
export let cssVars: EmbedCreateEnvelopeProps["cssVars"] = undefined;
|
|
32
|
+
export let darkModeDisabled: EmbedCreateEnvelopeProps["darkModeDisabled"] =
|
|
33
|
+
undefined;
|
|
34
|
+
export let presignToken: EmbedCreateEnvelopeProps["presignToken"];
|
|
35
|
+
export let onEnvelopeCreated: EmbedCreateEnvelopeProps["onEnvelopeCreated"] =
|
|
36
|
+
undefined;
|
|
37
|
+
export let className: EmbedCreateEnvelopeProps["className"] = undefined;
|
|
38
|
+
|
|
39
|
+
function handleMessage(event: MessageEvent) {
|
|
40
|
+
if (__iframe?.contentWindow === event.source) {
|
|
41
|
+
switch (event.data.type) {
|
|
42
|
+
case "envelope-created":
|
|
43
|
+
onEnvelopeCreated?.({
|
|
44
|
+
envelopeId: event.data.envelopeId,
|
|
45
|
+
externalId: event.data.externalId,
|
|
46
|
+
});
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
$: src = () => {
|
|
52
|
+
const appHost = host || "https://app.documenso.com";
|
|
53
|
+
const encodedOptions = btoa(
|
|
54
|
+
encodeURIComponent(
|
|
55
|
+
JSON.stringify({
|
|
56
|
+
externalId: externalId,
|
|
57
|
+
type: type,
|
|
58
|
+
features: features,
|
|
59
|
+
css: css,
|
|
60
|
+
cssVars: cssVars,
|
|
61
|
+
darkModeDisabled: darkModeDisabled,
|
|
62
|
+
})
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
const srcUrl = new URL(`/embed/v2/authoring/envelope/create`, appHost);
|
|
66
|
+
srcUrl.searchParams.set("token", presignToken);
|
|
67
|
+
srcUrl.hash = encodedOptions;
|
|
68
|
+
return srcUrl.toString();
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
let __iframe;
|
|
72
|
+
|
|
73
|
+
onMount(() => {
|
|
74
|
+
window.addEventListener("message", handleMessage);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
onDestroy(() => {
|
|
78
|
+
window.removeEventListener("message", handleMessage);
|
|
79
|
+
});
|
|
80
|
+
</script>
|
|
81
|
+
|
|
82
|
+
<iframe bind:this={__iframe} class={className} src={src()} />
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
export type EmbedCreateEnvelopeProps = {
|
|
3
|
+
className?: string;
|
|
4
|
+
host?: string;
|
|
5
|
+
presignToken: string;
|
|
6
|
+
externalId?: string;
|
|
7
|
+
type: "DOCUMENT" | "TEMPLATE";
|
|
8
|
+
css?: string | undefined;
|
|
9
|
+
cssVars?: (CssVars & Record<string, string>) | undefined;
|
|
10
|
+
darkModeDisabled?: boolean | undefined;
|
|
11
|
+
features?: DeepPartial<EnvelopeEditorSettings> & Record<string, any>;
|
|
12
|
+
onEnvelopeCreated?: (data: {
|
|
13
|
+
externalId: string | null;
|
|
14
|
+
envelopeId: number;
|
|
15
|
+
}) => void;
|
|
16
|
+
};
|
|
17
|
+
import { CssVars } from "./css-vars";
|
|
18
|
+
import type { DeepPartial, EnvelopeEditorSettings } from "./features-type";
|
|
19
|
+
declare const __propDef: {
|
|
20
|
+
props: {
|
|
21
|
+
host?: EmbedCreateEnvelopeProps["host"];
|
|
22
|
+
externalId?: EmbedCreateEnvelopeProps["externalId"];
|
|
23
|
+
type: EmbedCreateEnvelopeProps["type"];
|
|
24
|
+
features?: EmbedCreateEnvelopeProps["features"];
|
|
25
|
+
css?: EmbedCreateEnvelopeProps["css"];
|
|
26
|
+
cssVars?: EmbedCreateEnvelopeProps["cssVars"];
|
|
27
|
+
darkModeDisabled?: EmbedCreateEnvelopeProps["darkModeDisabled"];
|
|
28
|
+
presignToken: EmbedCreateEnvelopeProps["presignToken"];
|
|
29
|
+
onEnvelopeCreated?: EmbedCreateEnvelopeProps["onEnvelopeCreated"];
|
|
30
|
+
className?: EmbedCreateEnvelopeProps["className"];
|
|
31
|
+
};
|
|
32
|
+
events: {
|
|
33
|
+
[evt: string]: CustomEvent<any>;
|
|
34
|
+
};
|
|
35
|
+
slots: {};
|
|
36
|
+
exports?: {};
|
|
37
|
+
bindings?: string;
|
|
38
|
+
};
|
|
39
|
+
export type CreateEnvelopeProps = typeof __propDef.props;
|
|
40
|
+
export type CreateEnvelopeEvents = typeof __propDef.events;
|
|
41
|
+
export type CreateEnvelopeSlots = typeof __propDef.slots;
|
|
42
|
+
export default class CreateEnvelope extends SvelteComponent<CreateEnvelopeProps, CreateEnvelopeEvents, CreateEnvelopeSlots> {
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type DeepPartial<T> = T extends object ? {
|
|
2
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
3
|
+
} : T;
|
|
4
|
+
/**
|
|
5
|
+
* Envelope editor settings (features) for create/edit envelope embeds.
|
|
6
|
+
* Matches ZEnvelopeEditorSettingsSchema from the app.
|
|
7
|
+
*/
|
|
8
|
+
export type EnvelopeEditorSettings = {
|
|
9
|
+
general: {
|
|
10
|
+
allowConfigureEnvelopeTitle: boolean;
|
|
11
|
+
allowUploadAndRecipientStep: boolean;
|
|
12
|
+
allowAddFieldsStep: boolean;
|
|
13
|
+
allowPreviewStep: boolean;
|
|
14
|
+
minimizeLeftSidebar: boolean;
|
|
15
|
+
};
|
|
16
|
+
/** If null, envelope settings will not be available to be seen/updated. */
|
|
17
|
+
settings: {
|
|
18
|
+
allowConfigureSignatureTypes: boolean;
|
|
19
|
+
allowConfigureLanguage: boolean;
|
|
20
|
+
allowConfigureDateFormat: boolean;
|
|
21
|
+
allowConfigureTimezone: boolean;
|
|
22
|
+
allowConfigureRedirectUrl: boolean;
|
|
23
|
+
allowConfigureDistribution: boolean;
|
|
24
|
+
allowConfigureExpirationPeriod: boolean;
|
|
25
|
+
allowConfigureEmailSender: boolean;
|
|
26
|
+
allowConfigureEmailReplyTo: boolean;
|
|
27
|
+
} | null;
|
|
28
|
+
actions: {
|
|
29
|
+
allowAttachments: boolean;
|
|
30
|
+
};
|
|
31
|
+
/** If null, no adjustments to envelope items will be allowed. */
|
|
32
|
+
envelopeItems: {
|
|
33
|
+
allowConfigureTitle: boolean;
|
|
34
|
+
allowConfigureOrder: boolean;
|
|
35
|
+
allowUpload: boolean;
|
|
36
|
+
allowDelete: boolean;
|
|
37
|
+
} | null;
|
|
38
|
+
/** If null, recipients will not be configurable at all. */
|
|
39
|
+
recipients: {
|
|
40
|
+
allowConfigureSigningOrder: boolean;
|
|
41
|
+
allowConfigureDictateNextSigner: boolean;
|
|
42
|
+
allowApproverRole: boolean;
|
|
43
|
+
allowViewerRole: boolean;
|
|
44
|
+
allowCCerRole: boolean;
|
|
45
|
+
allowAssistantRole: boolean;
|
|
46
|
+
} | null;
|
|
47
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -4,8 +4,13 @@ export { default as EmbedCreateDocumentV1 } from './create-document.svelte';
|
|
|
4
4
|
export { default as EmbedCreateTemplateV1 } from './create-template.svelte';
|
|
5
5
|
export { default as EmbedUpdateDocumentV1 } from './update-document.svelte';
|
|
6
6
|
export { default as EmbedUpdateTemplateV1 } from './update-template.svelte';
|
|
7
|
+
export { default as EmbedCreateEnvelopeV2 } from './create-envelope.svelte';
|
|
8
|
+
export { default as EmbedUpdateEnvelopeV2 } from './update-envelope.svelte';
|
|
9
|
+
export type { EnvelopeEditorSettings } from './features-type';
|
|
7
10
|
export { default as unstable_EmbedCreateDocument } from './create-document.svelte';
|
|
8
11
|
export { default as unstable_EmbedCreateTemplate } from './create-template.svelte';
|
|
9
12
|
export { default as unstable_EmbedUpdateDocument } from './update-document.svelte';
|
|
10
13
|
export { default as unstable_EmbedUpdateTemplate } from './update-template.svelte';
|
|
14
|
+
export { default as unstable_EmbedCreateEnvelope } from './create-envelope.svelte';
|
|
15
|
+
export { default as unstable_EmbedUpdateEnvelope } from './update-envelope.svelte';
|
|
11
16
|
export { default as unstable_EmbedMultiSignDocument } from './multisign-document.svelte';
|
package/dist/index.js
CHANGED
|
@@ -4,8 +4,12 @@ export { default as EmbedCreateDocumentV1 } from './create-document.svelte';
|
|
|
4
4
|
export { default as EmbedCreateTemplateV1 } from './create-template.svelte';
|
|
5
5
|
export { default as EmbedUpdateDocumentV1 } from './update-document.svelte';
|
|
6
6
|
export { default as EmbedUpdateTemplateV1 } from './update-template.svelte';
|
|
7
|
+
export { default as EmbedCreateEnvelopeV2 } from './create-envelope.svelte';
|
|
8
|
+
export { default as EmbedUpdateEnvelopeV2 } from './update-envelope.svelte';
|
|
7
9
|
export { default as unstable_EmbedCreateDocument } from './create-document.svelte';
|
|
8
10
|
export { default as unstable_EmbedCreateTemplate } from './create-template.svelte';
|
|
9
11
|
export { default as unstable_EmbedUpdateDocument } from './update-document.svelte';
|
|
10
12
|
export { default as unstable_EmbedUpdateTemplate } from './update-template.svelte';
|
|
13
|
+
export { default as unstable_EmbedCreateEnvelope } from './create-envelope.svelte';
|
|
14
|
+
export { default as unstable_EmbedUpdateEnvelope } from './update-envelope.svelte';
|
|
11
15
|
export { default as unstable_EmbedMultiSignDocument } from './multisign-document.svelte';
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
darkModeDisabled?: boolean | undefined;
|
|
10
10
|
name?: string | undefined;
|
|
11
11
|
lockName?: boolean | undefined;
|
|
12
|
+
email?: string | undefined;
|
|
13
|
+
lockEmail?: boolean | undefined;
|
|
12
14
|
allowDocumentRejection?: boolean | undefined; // Additional props to be passed to the iframe, used for testing out features
|
|
13
15
|
// prior to being added to the main props
|
|
14
16
|
|
|
@@ -37,6 +39,8 @@
|
|
|
37
39
|
export let host: EmbedSignDocumentProps["host"] = undefined;
|
|
38
40
|
export let name: EmbedSignDocumentProps["name"] = undefined;
|
|
39
41
|
export let lockName: EmbedSignDocumentProps["lockName"] = undefined;
|
|
42
|
+
export let email: EmbedSignDocumentProps["email"] = undefined;
|
|
43
|
+
export let lockEmail: EmbedSignDocumentProps["lockEmail"] = undefined;
|
|
40
44
|
export let css: EmbedSignDocumentProps["css"] = undefined;
|
|
41
45
|
export let cssVars: EmbedSignDocumentProps["cssVars"] = undefined;
|
|
42
46
|
export let darkModeDisabled: EmbedSignDocumentProps["darkModeDisabled"] =
|
|
@@ -84,6 +88,8 @@
|
|
|
84
88
|
JSON.stringify({
|
|
85
89
|
name: name,
|
|
86
90
|
lockName: lockName,
|
|
91
|
+
email: email,
|
|
92
|
+
lockEmail: lockEmail,
|
|
87
93
|
css: css,
|
|
88
94
|
cssVars: cssVars,
|
|
89
95
|
darkModeDisabled: darkModeDisabled,
|
|
@@ -8,6 +8,8 @@ export type EmbedSignDocumentProps = {
|
|
|
8
8
|
darkModeDisabled?: boolean | undefined;
|
|
9
9
|
name?: string | undefined;
|
|
10
10
|
lockName?: boolean | undefined;
|
|
11
|
+
email?: string | undefined;
|
|
12
|
+
lockEmail?: boolean | undefined;
|
|
11
13
|
allowDocumentRejection?: boolean | undefined;
|
|
12
14
|
additionalProps?: Record<string, string | number | boolean> | undefined;
|
|
13
15
|
onDocumentReady?: () => void;
|
|
@@ -30,6 +32,8 @@ declare const __propDef: {
|
|
|
30
32
|
host?: EmbedSignDocumentProps["host"];
|
|
31
33
|
name?: EmbedSignDocumentProps["name"];
|
|
32
34
|
lockName?: EmbedSignDocumentProps["lockName"];
|
|
35
|
+
email?: EmbedSignDocumentProps["email"];
|
|
36
|
+
lockEmail?: EmbedSignDocumentProps["lockEmail"];
|
|
33
37
|
css?: EmbedSignDocumentProps["css"];
|
|
34
38
|
cssVars?: EmbedSignDocumentProps["cssVars"];
|
|
35
39
|
darkModeDisabled?: EmbedSignDocumentProps["darkModeDisabled"];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<script context="module" lang="ts">
|
|
2
|
+
export type EmbedUpdateEnvelopeProps = {
|
|
3
|
+
className?: string;
|
|
4
|
+
host?: string;
|
|
5
|
+
presignToken: string;
|
|
6
|
+
externalId?: string;
|
|
7
|
+
envelopeId: string;
|
|
8
|
+
css?: string | undefined;
|
|
9
|
+
cssVars?: (CssVars & Record<string, string>) | undefined;
|
|
10
|
+
darkModeDisabled?: boolean | undefined; // biome-ignore lint/suspicious/noExplicitAny: Hehe
|
|
11
|
+
|
|
12
|
+
features?: DeepPartial<EnvelopeEditorSettings> & Record<string, any>;
|
|
13
|
+
onEnvelopeUpdated?: (data: {
|
|
14
|
+
externalId: string | null;
|
|
15
|
+
envelopeId: string;
|
|
16
|
+
}) => void;
|
|
17
|
+
};
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<script lang="ts">
|
|
21
|
+
import { onDestroy, onMount } from "svelte";
|
|
22
|
+
|
|
23
|
+
import { CssVars } from "./css-vars";
|
|
24
|
+
import type { DeepPartial, EnvelopeEditorSettings } from "./features-type";
|
|
25
|
+
|
|
26
|
+
export let host: EmbedUpdateEnvelopeProps["host"] = undefined;
|
|
27
|
+
export let externalId: EmbedUpdateEnvelopeProps["externalId"] = undefined;
|
|
28
|
+
export let features: EmbedUpdateEnvelopeProps["features"] = undefined;
|
|
29
|
+
export let css: EmbedUpdateEnvelopeProps["css"] = undefined;
|
|
30
|
+
export let cssVars: EmbedUpdateEnvelopeProps["cssVars"] = undefined;
|
|
31
|
+
export let darkModeDisabled: EmbedUpdateEnvelopeProps["darkModeDisabled"] =
|
|
32
|
+
undefined;
|
|
33
|
+
export let envelopeId: EmbedUpdateEnvelopeProps["envelopeId"];
|
|
34
|
+
export let presignToken: EmbedUpdateEnvelopeProps["presignToken"];
|
|
35
|
+
export let onEnvelopeUpdated: EmbedUpdateEnvelopeProps["onEnvelopeUpdated"] =
|
|
36
|
+
undefined;
|
|
37
|
+
export let className: EmbedUpdateEnvelopeProps["className"] = undefined;
|
|
38
|
+
|
|
39
|
+
function handleMessage(event: MessageEvent) {
|
|
40
|
+
if (__iframe?.contentWindow === event.source) {
|
|
41
|
+
switch (event.data.type) {
|
|
42
|
+
case "envelope-updated":
|
|
43
|
+
onEnvelopeUpdated?.({
|
|
44
|
+
envelopeId: event.data.envelopeId,
|
|
45
|
+
externalId: event.data.externalId,
|
|
46
|
+
});
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
$: src = () => {
|
|
52
|
+
const appHost = host || "https://app.documenso.com";
|
|
53
|
+
const encodedOptions = btoa(
|
|
54
|
+
encodeURIComponent(
|
|
55
|
+
JSON.stringify({
|
|
56
|
+
externalId: externalId,
|
|
57
|
+
features: features,
|
|
58
|
+
css: css,
|
|
59
|
+
cssVars: cssVars,
|
|
60
|
+
darkModeDisabled: darkModeDisabled,
|
|
61
|
+
})
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
const srcUrl = new URL(
|
|
65
|
+
`/embed/v2/authoring/envelope/edit/${envelopeId}`,
|
|
66
|
+
appHost
|
|
67
|
+
);
|
|
68
|
+
srcUrl.searchParams.set("token", presignToken);
|
|
69
|
+
srcUrl.hash = encodedOptions;
|
|
70
|
+
return srcUrl.toString();
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
let __iframe;
|
|
74
|
+
|
|
75
|
+
onMount(() => {
|
|
76
|
+
window.addEventListener("message", handleMessage);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
onDestroy(() => {
|
|
80
|
+
window.removeEventListener("message", handleMessage);
|
|
81
|
+
});
|
|
82
|
+
</script>
|
|
83
|
+
|
|
84
|
+
<iframe bind:this={__iframe} class={className} src={src()} />
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
export type EmbedUpdateEnvelopeProps = {
|
|
3
|
+
className?: string;
|
|
4
|
+
host?: string;
|
|
5
|
+
presignToken: string;
|
|
6
|
+
externalId?: string;
|
|
7
|
+
envelopeId: string;
|
|
8
|
+
css?: string | undefined;
|
|
9
|
+
cssVars?: (CssVars & Record<string, string>) | undefined;
|
|
10
|
+
darkModeDisabled?: boolean | undefined;
|
|
11
|
+
features?: DeepPartial<EnvelopeEditorSettings> & Record<string, any>;
|
|
12
|
+
onEnvelopeUpdated?: (data: {
|
|
13
|
+
externalId: string | null;
|
|
14
|
+
envelopeId: string;
|
|
15
|
+
}) => void;
|
|
16
|
+
};
|
|
17
|
+
import { CssVars } from "./css-vars";
|
|
18
|
+
import type { DeepPartial, EnvelopeEditorSettings } from "./features-type";
|
|
19
|
+
declare const __propDef: {
|
|
20
|
+
props: {
|
|
21
|
+
host?: EmbedUpdateEnvelopeProps["host"];
|
|
22
|
+
externalId?: EmbedUpdateEnvelopeProps["externalId"];
|
|
23
|
+
features?: EmbedUpdateEnvelopeProps["features"];
|
|
24
|
+
css?: EmbedUpdateEnvelopeProps["css"];
|
|
25
|
+
cssVars?: EmbedUpdateEnvelopeProps["cssVars"];
|
|
26
|
+
darkModeDisabled?: EmbedUpdateEnvelopeProps["darkModeDisabled"];
|
|
27
|
+
envelopeId: EmbedUpdateEnvelopeProps["envelopeId"];
|
|
28
|
+
presignToken: EmbedUpdateEnvelopeProps["presignToken"];
|
|
29
|
+
onEnvelopeUpdated?: EmbedUpdateEnvelopeProps["onEnvelopeUpdated"];
|
|
30
|
+
className?: EmbedUpdateEnvelopeProps["className"];
|
|
31
|
+
};
|
|
32
|
+
events: {
|
|
33
|
+
[evt: string]: CustomEvent<any>;
|
|
34
|
+
};
|
|
35
|
+
slots: {};
|
|
36
|
+
exports?: {};
|
|
37
|
+
bindings?: string;
|
|
38
|
+
};
|
|
39
|
+
export type UpdateEnvelopeProps = typeof __propDef.props;
|
|
40
|
+
export type UpdateEnvelopeEvents = typeof __propDef.events;
|
|
41
|
+
export type UpdateEnvelopeSlots = typeof __propDef.slots;
|
|
42
|
+
export default class UpdateEnvelope extends SvelteComponent<UpdateEnvelopeProps, UpdateEnvelopeEvents, UpdateEnvelopeSlots> {
|
|
43
|
+
}
|
|
44
|
+
export {};
|
package/package.json
CHANGED