adminforth 1.1.74 → 1.1.75
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/auth.ts +14 -0
- package/dataConnectors/postgres.ts +1 -1
- package/dist/auth.js +7 -0
- package/dist/index.js +117 -65
- package/dist/modules/codeInjector.js +29 -15
- package/dist/plugins/AuditLogPlugin/index.js +2 -17
- package/dist/plugins/S3UploadPlugin/custom/s3uploader.vue +120 -0
- package/dist/plugins/S3UploadPlugin/index.js +103 -0
- package/dist/plugins/S3UploadPlugin/package-lock.json +431 -0
- package/dist/plugins/S3UploadPlugin/package.json +15 -0
- package/dist/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsConfirmation.vue +152 -0
- package/dist/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsSetup.vue +188 -0
- package/dist/plugins/TwoFactorsAuthPlugin/index.js +150 -0
- package/dist/plugins/TwoFactorsAuthPlugin/types.js +1 -0
- package/dist/spa/index.html +1 -1
- package/dist/spa/package-lock.json +111 -0
- package/dist/spa/package.json +1 -0
- package/dist/spa/src/App.vue +178 -133
- package/dist/spa/src/components/MenuLink.vue +3 -3
- package/dist/spa/src/components/ResourceForm.vue +96 -96
- package/dist/spa/src/components/ResourceListTable.vue +69 -84
- package/dist/spa/src/components/ValueRenderer.vue +2 -3
- package/dist/spa/src/composables/useStores.ts +24 -11
- package/dist/spa/src/main.ts +1 -1
- package/dist/spa/src/router/index.ts +0 -1
- package/dist/spa/src/utils.ts +1 -1
- package/dist/spa/src/views/CreateView.vue +1 -9
- package/dist/spa/src/views/EditView.vue +1 -9
- package/dist/spa/src/views/ListView.vue +12 -3
- package/dist/spa/src/views/LoginView.vue +6 -1
- package/dist/spa/src/views/ResourceParent.vue +1 -2
- package/dist/spa/src/views/ShowView.vue +6 -14
- package/dist/spa/tailwind.config.js +3 -1
- package/index.ts +94 -35
- package/modules/codeInjector.ts +38 -27
- package/package.json +2 -1
- package/plugins/AuditLogPlugin/index.ts +4 -20
- package/plugins/S3UploadPlugin/custom/s3uploader.vue +120 -0
- package/plugins/S3UploadPlugin/index.ts +112 -0
- package/plugins/S3UploadPlugin/package-lock.json +431 -0
- package/plugins/S3UploadPlugin/package.json +15 -0
- package/plugins/S3UploadPlugin/types.ts +76 -0
- package/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsConfirmation.vue +152 -0
- package/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsOtp.vue +0 -0
- package/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsSetup.vue +188 -0
- package/plugins/TwoFactorsAuthPlugin/index.ts +150 -0
- package/plugins/TwoFactorsAuthPlugin/types.ts +10 -0
- package/servers/express.ts +1 -0
- package/spa/src/App.vue +154 -121
- package/spa/src/components/ResourceForm.vue +91 -91
- package/spa/src/router/index.ts +0 -1
- package/spa/src/utils.ts +1 -1
- package/spa/src/views/CreateView.vue +0 -1
- package/spa/src/views/LoginView.vue +4 -1
- package/types/AdminForthConfig.ts +24 -3
- package/dist/plugins/AuditLog/index.js +0 -13
- package/dist/spa/spa/.eslintrc.cjs +0 -14
- package/dist/spa/spa/.vscode/extensions.json +0 -6
- package/dist/spa/spa/README.md +0 -39
- package/dist/spa/spa/env.d.ts +0 -1
- package/dist/spa/spa/index.html +0 -23
- package/dist/spa/spa/package-lock.json +0 -4470
- package/dist/spa/spa/package.json +0 -48
- package/dist/spa/spa/postcss.config.js +0 -6
- package/dist/spa/spa/public/assets/favicon.png +0 -0
- package/dist/spa/spa/src/App.vue +0 -283
- package/dist/spa/spa/src/assets/logo.svg +0 -19
- package/dist/spa/spa/src/components/AcceptModal.vue +0 -45
- package/dist/spa/spa/src/components/Breadcrumbs.vue +0 -40
- package/dist/spa/spa/src/components/BreadcrumbsWithButtons.vue +0 -26
- package/dist/spa/spa/src/components/CustomDatePicker.vue +0 -174
- package/dist/spa/spa/src/components/CustomDateRangePicker.vue +0 -218
- package/dist/spa/spa/src/components/CustomRangePicker.vue +0 -148
- package/dist/spa/spa/src/components/Dropdown.vue +0 -168
- package/dist/spa/spa/src/components/Filters.vue +0 -211
- package/dist/spa/spa/src/components/HelloWorld.vue +0 -17
- package/dist/spa/spa/src/components/MenuLink.vue +0 -24
- package/dist/spa/spa/src/components/ResourceForm.vue +0 -265
- package/dist/spa/spa/src/components/ResourceListTable.vue +0 -404
- package/dist/spa/spa/src/components/SingleSkeletLoader.vue +0 -13
- package/dist/spa/spa/src/components/Toast.vue +0 -66
- package/dist/spa/spa/src/components/ValueRenderer.vue +0 -59
- package/dist/spa/spa/src/components/icons/IconCalendar.vue +0 -5
- package/dist/spa/spa/src/components/icons/IconCommunity.vue +0 -7
- package/dist/spa/spa/src/components/icons/IconDocumentation.vue +0 -7
- package/dist/spa/spa/src/components/icons/IconEcosystem.vue +0 -7
- package/dist/spa/spa/src/components/icons/IconSupport.vue +0 -7
- package/dist/spa/spa/src/components/icons/IconTime.vue +0 -5
- package/dist/spa/spa/src/components/icons/IconTooling.vue +0 -19
- package/dist/spa/spa/src/composables/useFrontendApi.ts +0 -26
- package/dist/spa/spa/src/composables/useStores.ts +0 -126
- package/dist/spa/spa/src/index.scss +0 -26
- package/dist/spa/spa/src/main.ts +0 -18
- package/dist/spa/spa/src/router/index.ts +0 -64
- package/dist/spa/spa/src/spa_types/core.ts +0 -51
- package/dist/spa/spa/src/stores/core.ts +0 -144
- package/dist/spa/spa/src/stores/filters.ts +0 -22
- package/dist/spa/spa/src/stores/modal.ts +0 -48
- package/dist/spa/spa/src/stores/toast.ts +0 -15
- package/dist/spa/spa/src/stores/user.ts +0 -54
- package/dist/spa/spa/src/utils.ts +0 -101
- package/dist/spa/spa/src/views/CreateView.vue +0 -156
- package/dist/spa/spa/src/views/EditView.vue +0 -157
- package/dist/spa/spa/src/views/ListView.vue +0 -266
- package/dist/spa/spa/src/views/LoginView.vue +0 -136
- package/dist/spa/spa/src/views/ResourceParent.vue +0 -17
- package/dist/spa/spa/src/views/ShowView.vue +0 -180
- package/dist/spa/spa/tailwind.config.js +0 -17
- package/dist/spa/spa/tsconfig.app.json +0 -14
- package/dist/spa/spa/tsconfig.json +0 -11
- package/dist/spa/spa/tsconfig.node.json +0 -19
- package/dist/spa/spa/vite.config.ts +0 -49
- /package/dist/plugins/{AuditLog → S3UploadPlugin}/types.js +0 -0
- /package/dist/{spa/spa/src/assets/base.css → plugins/TwoFactorsAuthPlugin/custom/TwoFactorsOtp.vue} +0 -0
- /package/dist/spa/{spa/src → src}/components/SkeleteLoader.vue +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex items-center justify-center w-full">
|
|
3
|
+
<label for="dropzone-file" class="flex flex-col items-center justify-center w-full h-64 border-2 border-gray-300 border-dashed rounded-lg cursor-pointer bg-gray-50 dark:hover:bg-gray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600">
|
|
4
|
+
<div class="flex flex-col items-center justify-center pt-5 pb-6">
|
|
5
|
+
<img v-if="imgPreview" :src="imgPreview" class="w-100 mt-4 rounded-lg h-40 object-contain" />
|
|
6
|
+
|
|
7
|
+
<svg v-else class="w-8 h-8 mb-4 text-gray-500 dark:text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 16">
|
|
8
|
+
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 13h3a3 3 0 0 0 0-6h-.025A5.56 5.56 0 0 0 16 6.5 5.5 5.5 0 0 0 5.207 5.021C5.137 5.017 5.071 5 5 5a4 4 0 0 0 0 8h2.167M10 15V6m0 0L8 8m2-2 2 2"/>
|
|
9
|
+
</svg>
|
|
10
|
+
<p class="mb-2 text-sm text-gray-500 dark:text-gray-400"><span class="font-semibold">Click to upload</span> or drag and drop</p>
|
|
11
|
+
<p class="text-xs text-gray-500 dark:text-gray-400">
|
|
12
|
+
{{ allowedExtensionsLabel }} {{ meta.maxFileSize ? `(up to ${maxFileSizeHumanized})` : '' }}
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<div class="w-full bg-gray-200 rounded-full dark:bg-gray-700 mt-2 mb-2" v-if="progress > 0">
|
|
16
|
+
<div class="bg-blue-600 text-xs font-medium text-blue-100 text-center p-0.5 leading-none rounded-full"
|
|
17
|
+
:style="{width: `${progress}%`}">{{ progress }}%
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<input id="dropzone-file" type="file" class="hidden" @change="onFileChange" />
|
|
22
|
+
</label>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
</template>
|
|
26
|
+
|
|
27
|
+
<script setup>
|
|
28
|
+
import { computed, ref } from 'vue'
|
|
29
|
+
|
|
30
|
+
const props = defineProps({
|
|
31
|
+
meta: String
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
const imgPreview = ref(null);
|
|
35
|
+
const progress = ref(0);
|
|
36
|
+
|
|
37
|
+
const allowedExtensionsLabel = computed(() => {
|
|
38
|
+
const allowedExtensions = props.meta.allowedExtensions || []
|
|
39
|
+
if (allowedExtensions.length === 0) {
|
|
40
|
+
return 'Any file type'
|
|
41
|
+
}
|
|
42
|
+
// make upper case and write in format EXT1, EXT2 or EXT3
|
|
43
|
+
let label = allowedExtensions.map(ext => ext.toUpperCase()).join(', ');
|
|
44
|
+
// last comma to 'or'
|
|
45
|
+
label = label.replace(/,([^,]*)$/, ' or$1')
|
|
46
|
+
return label
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const maxFileSizeHumanized = computed(() => {
|
|
50
|
+
let maxFileSize = props.meta.maxFileSize || 0
|
|
51
|
+
if (maxFileSize === 0) {
|
|
52
|
+
return ''
|
|
53
|
+
}
|
|
54
|
+
// if maxFileSize is in bytes, convert to KB, MB, GB, TB
|
|
55
|
+
const units = ['B', 'KB', 'MB', 'GB', 'TB']
|
|
56
|
+
let i = 0
|
|
57
|
+
while (maxFileSize >= 1024 && i < units.length - 1) {
|
|
58
|
+
maxFileSize /= 1024
|
|
59
|
+
i++
|
|
60
|
+
}
|
|
61
|
+
return `${maxFileSize.toFixed(2)} ${units[i]}`
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
const onFileChange = (e) => {
|
|
65
|
+
const file = e.target.files[0]
|
|
66
|
+
if (!file) {
|
|
67
|
+
imgPreview.value = null;
|
|
68
|
+
progress.value = 0;
|
|
69
|
+
return
|
|
70
|
+
}
|
|
71
|
+
console.log('File selected:', file);
|
|
72
|
+
|
|
73
|
+
// get filename, extension, size, mimeType
|
|
74
|
+
const { name, size, type } = file;
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
const extension = name.split('.').pop();
|
|
78
|
+
console.log('File details:', { name, extension, size, type });
|
|
79
|
+
// validate file extension
|
|
80
|
+
const allowedExtensions = props.meta.allowedExtensions || []
|
|
81
|
+
if (allowedExtensions.length > 0 && !allowedExtensions.includes(extension)) {
|
|
82
|
+
window.adminforth.alert({
|
|
83
|
+
message: `Sorry but the file type ${extension} is not allowed. Please upload a file with one of the following extensions: ${allowedExtensionsLabel.value}`,
|
|
84
|
+
variant: 'danger'
|
|
85
|
+
});
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// validate file size
|
|
90
|
+
if (props.meta.maxFileSize && size > props.meta.maxFileSize) {
|
|
91
|
+
window.adminforth.alert({
|
|
92
|
+
message: `Sorry but the file size is too large. Please upload a file with a maximum size of ${maxFileSizeHumanized.value}`,
|
|
93
|
+
variant: 'danger'
|
|
94
|
+
});
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
// supports preview
|
|
98
|
+
if (type.startsWith('image/')) {
|
|
99
|
+
const reader = new FileReader();
|
|
100
|
+
reader.onload = (e) => {
|
|
101
|
+
imgPreview.value = e.target.result;
|
|
102
|
+
}
|
|
103
|
+
reader.readAsDataURL(file);
|
|
104
|
+
}
|
|
105
|
+
setInterval(() => {
|
|
106
|
+
progress.value += 1;
|
|
107
|
+
}, 20);
|
|
108
|
+
|
|
109
|
+
await callAdminForthApi({
|
|
110
|
+
path: `/plugin/${props.meta.pluginInstanceId}/get_s3_upload_url`,
|
|
111
|
+
method: 'POST',
|
|
112
|
+
body: {
|
|
113
|
+
originalFilename: name,
|
|
114
|
+
contentType, size, originalExtension
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
</script>
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import AdminForthPlugin from "../base.js";
|
|
11
|
+
import AWS from 'aws-sdk';
|
|
12
|
+
export default class S3UploadPlugin extends AdminForthPlugin {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super(options, import.meta.url);
|
|
15
|
+
this.options = options;
|
|
16
|
+
}
|
|
17
|
+
modifyResourceConfig(adminforth, resourceConfig) {
|
|
18
|
+
super.modifyResourceConfig(adminforth, resourceConfig);
|
|
19
|
+
// after column to store the path of the uploaded file, add new VirtualColumn,
|
|
20
|
+
// show only in edit and create views
|
|
21
|
+
// use component s3uploader.vue
|
|
22
|
+
const { pathColumnName, uploadColumnLabel } = this.options;
|
|
23
|
+
const pluginFrontendOptions = {
|
|
24
|
+
allowedExtensions: this.options.allowedFileExtensions,
|
|
25
|
+
maxFileSize: this.options.maxFileSize,
|
|
26
|
+
pluginInstanceId: this.pluginInstanceId,
|
|
27
|
+
};
|
|
28
|
+
const virtualColumn = {
|
|
29
|
+
virtual: true,
|
|
30
|
+
name: `s3uploader_${this.pluginInstanceId}`,
|
|
31
|
+
label: uploadColumnLabel,
|
|
32
|
+
components: {
|
|
33
|
+
edit: {
|
|
34
|
+
file: this.componentPath('s3uploader.vue'),
|
|
35
|
+
meta: pluginFrontendOptions,
|
|
36
|
+
},
|
|
37
|
+
create: {
|
|
38
|
+
file: this.componentPath('s3uploader.vue'),
|
|
39
|
+
meta: pluginFrontendOptions,
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
onlyIn: ['edit', 'create'],
|
|
43
|
+
options: {
|
|
44
|
+
pathColumnName
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const pathColumnIndex = resourceConfig.columns.findIndex((column) => column.name === pathColumnName);
|
|
48
|
+
if (pathColumnIndex === -1) {
|
|
49
|
+
throw new Error(`Column with name "${pathColumnName}" not found in resource "${resourceConfig.name}"`);
|
|
50
|
+
}
|
|
51
|
+
// insert virtual column after path column if it is not already there
|
|
52
|
+
const virtualColumnIndex = resourceConfig.columns.findIndex((column) => column.name === virtualColumn.name);
|
|
53
|
+
if (virtualColumnIndex === -1) {
|
|
54
|
+
resourceConfig.columns.splice(pathColumnIndex + 1, 0, virtualColumn);
|
|
55
|
+
}
|
|
56
|
+
// if showIn of path column has 'create' or 'edit' remove it
|
|
57
|
+
const pathColumn = resourceConfig.columns[pathColumnIndex];
|
|
58
|
+
if (pathColumn.showIn && (pathColumn.showIn.includes('create') || pathColumn.showIn.includes('edit'))) {
|
|
59
|
+
pathColumn.showIn = pathColumn.showIn.filter((view) => !['create', 'edit'].includes(view));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
setupEndpoints(server) {
|
|
63
|
+
server.endpoint({
|
|
64
|
+
method: 'POST',
|
|
65
|
+
path: `/plugin/${this.pluginInstanceId}/get_s3_upload_url`,
|
|
66
|
+
handler: (_a) => __awaiter(this, [_a], void 0, function* ({ body }) {
|
|
67
|
+
const { originalFilename, contentType, size, originalExtension } = body;
|
|
68
|
+
if (this.options.allowedFileExtensions && !this.options.allowedFileExtensions.includes(originalExtension)) {
|
|
69
|
+
throw new Error(`File extension "${originalExtension}" is not allowed, allowed extensions are: ${this.options.allowedFileExtensions.join(', ')}`);
|
|
70
|
+
}
|
|
71
|
+
const s3Path = this.options.s3Path({ originalFilename, originalExtension, contentType });
|
|
72
|
+
const s3 = new AWS.S3({
|
|
73
|
+
accessKeyId: this.options.s3AccessKeyId,
|
|
74
|
+
secretAccessKey: this.options.s3SecretAccessKey,
|
|
75
|
+
region: this.options.s3Region
|
|
76
|
+
});
|
|
77
|
+
const params = {
|
|
78
|
+
Bucket: this.options.s3Bucket,
|
|
79
|
+
Key: s3Path,
|
|
80
|
+
ContentType: contentType,
|
|
81
|
+
ACL: this.options.s3ACL
|
|
82
|
+
};
|
|
83
|
+
const url = s3.getSignedUrl('putObject', params);
|
|
84
|
+
let previewUrl;
|
|
85
|
+
if (this.options.previewUrl) {
|
|
86
|
+
previewUrl = this.options.previewUrl({ s3Path });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// generate presigned url for reading the file
|
|
90
|
+
previewUrl = s3.getSignedUrl('getObject', {
|
|
91
|
+
Bucket: this.options.s3Bucket,
|
|
92
|
+
Key: s3Path
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
url,
|
|
97
|
+
s3Path,
|
|
98
|
+
previewUrl
|
|
99
|
+
};
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "s3uploadplugin",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"": {
|
|
8
|
+
"name": "s3uploadplugin",
|
|
9
|
+
"version": "1.0.0",
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"aws-sdk": "^2.1654.0"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"node_modules/available-typed-arrays": {
|
|
16
|
+
"version": "1.0.7",
|
|
17
|
+
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
|
|
18
|
+
"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"possible-typed-array-names": "^1.0.0"
|
|
21
|
+
},
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">= 0.4"
|
|
24
|
+
},
|
|
25
|
+
"funding": {
|
|
26
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"node_modules/aws-sdk": {
|
|
30
|
+
"version": "2.1654.0",
|
|
31
|
+
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1654.0.tgz",
|
|
32
|
+
"integrity": "sha512-b5ryvXipBJod9Uh1GUfQNgi5tIIiluxJbyqr/hZ/mr5U8WxrrfjVq3nGnx5JjevFKYRqXIywhumsVyanfACzFA==",
|
|
33
|
+
"hasInstallScript": true,
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"buffer": "4.9.2",
|
|
36
|
+
"events": "1.1.1",
|
|
37
|
+
"ieee754": "1.1.13",
|
|
38
|
+
"jmespath": "0.16.0",
|
|
39
|
+
"querystring": "0.2.0",
|
|
40
|
+
"sax": "1.2.1",
|
|
41
|
+
"url": "0.10.3",
|
|
42
|
+
"util": "^0.12.4",
|
|
43
|
+
"uuid": "8.0.0",
|
|
44
|
+
"xml2js": "0.6.2"
|
|
45
|
+
},
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">= 10.0.0"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"node_modules/base64-js": {
|
|
51
|
+
"version": "1.5.1",
|
|
52
|
+
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
|
53
|
+
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
|
54
|
+
"funding": [
|
|
55
|
+
{
|
|
56
|
+
"type": "github",
|
|
57
|
+
"url": "https://github.com/sponsors/feross"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "patreon",
|
|
61
|
+
"url": "https://www.patreon.com/feross"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"type": "consulting",
|
|
65
|
+
"url": "https://feross.org/support"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"node_modules/buffer": {
|
|
70
|
+
"version": "4.9.2",
|
|
71
|
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
|
|
72
|
+
"integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
|
|
73
|
+
"dependencies": {
|
|
74
|
+
"base64-js": "^1.0.2",
|
|
75
|
+
"ieee754": "^1.1.4",
|
|
76
|
+
"isarray": "^1.0.0"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"node_modules/call-bind": {
|
|
80
|
+
"version": "1.0.7",
|
|
81
|
+
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
|
|
82
|
+
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
|
|
83
|
+
"dependencies": {
|
|
84
|
+
"es-define-property": "^1.0.0",
|
|
85
|
+
"es-errors": "^1.3.0",
|
|
86
|
+
"function-bind": "^1.1.2",
|
|
87
|
+
"get-intrinsic": "^1.2.4",
|
|
88
|
+
"set-function-length": "^1.2.1"
|
|
89
|
+
},
|
|
90
|
+
"engines": {
|
|
91
|
+
"node": ">= 0.4"
|
|
92
|
+
},
|
|
93
|
+
"funding": {
|
|
94
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"node_modules/define-data-property": {
|
|
98
|
+
"version": "1.1.4",
|
|
99
|
+
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
|
|
100
|
+
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
|
|
101
|
+
"dependencies": {
|
|
102
|
+
"es-define-property": "^1.0.0",
|
|
103
|
+
"es-errors": "^1.3.0",
|
|
104
|
+
"gopd": "^1.0.1"
|
|
105
|
+
},
|
|
106
|
+
"engines": {
|
|
107
|
+
"node": ">= 0.4"
|
|
108
|
+
},
|
|
109
|
+
"funding": {
|
|
110
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"node_modules/es-define-property": {
|
|
114
|
+
"version": "1.0.0",
|
|
115
|
+
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
|
|
116
|
+
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
|
|
117
|
+
"dependencies": {
|
|
118
|
+
"get-intrinsic": "^1.2.4"
|
|
119
|
+
},
|
|
120
|
+
"engines": {
|
|
121
|
+
"node": ">= 0.4"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"node_modules/es-errors": {
|
|
125
|
+
"version": "1.3.0",
|
|
126
|
+
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
|
|
127
|
+
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
|
|
128
|
+
"engines": {
|
|
129
|
+
"node": ">= 0.4"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"node_modules/events": {
|
|
133
|
+
"version": "1.1.1",
|
|
134
|
+
"resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
|
|
135
|
+
"integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==",
|
|
136
|
+
"engines": {
|
|
137
|
+
"node": ">=0.4.x"
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"node_modules/for-each": {
|
|
141
|
+
"version": "0.3.3",
|
|
142
|
+
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
|
|
143
|
+
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
|
|
144
|
+
"dependencies": {
|
|
145
|
+
"is-callable": "^1.1.3"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"node_modules/function-bind": {
|
|
149
|
+
"version": "1.1.2",
|
|
150
|
+
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
|
151
|
+
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
|
|
152
|
+
"funding": {
|
|
153
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"node_modules/get-intrinsic": {
|
|
157
|
+
"version": "1.2.4",
|
|
158
|
+
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
|
159
|
+
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
|
160
|
+
"dependencies": {
|
|
161
|
+
"es-errors": "^1.3.0",
|
|
162
|
+
"function-bind": "^1.1.2",
|
|
163
|
+
"has-proto": "^1.0.1",
|
|
164
|
+
"has-symbols": "^1.0.3",
|
|
165
|
+
"hasown": "^2.0.0"
|
|
166
|
+
},
|
|
167
|
+
"engines": {
|
|
168
|
+
"node": ">= 0.4"
|
|
169
|
+
},
|
|
170
|
+
"funding": {
|
|
171
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"node_modules/gopd": {
|
|
175
|
+
"version": "1.0.1",
|
|
176
|
+
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
|
177
|
+
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
|
|
178
|
+
"dependencies": {
|
|
179
|
+
"get-intrinsic": "^1.1.3"
|
|
180
|
+
},
|
|
181
|
+
"funding": {
|
|
182
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"node_modules/has-property-descriptors": {
|
|
186
|
+
"version": "1.0.2",
|
|
187
|
+
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
|
|
188
|
+
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
|
|
189
|
+
"dependencies": {
|
|
190
|
+
"es-define-property": "^1.0.0"
|
|
191
|
+
},
|
|
192
|
+
"funding": {
|
|
193
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"node_modules/has-proto": {
|
|
197
|
+
"version": "1.0.3",
|
|
198
|
+
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
|
|
199
|
+
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
|
|
200
|
+
"engines": {
|
|
201
|
+
"node": ">= 0.4"
|
|
202
|
+
},
|
|
203
|
+
"funding": {
|
|
204
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
"node_modules/has-symbols": {
|
|
208
|
+
"version": "1.0.3",
|
|
209
|
+
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
|
210
|
+
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
|
211
|
+
"engines": {
|
|
212
|
+
"node": ">= 0.4"
|
|
213
|
+
},
|
|
214
|
+
"funding": {
|
|
215
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"node_modules/has-tostringtag": {
|
|
219
|
+
"version": "1.0.2",
|
|
220
|
+
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
|
|
221
|
+
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
|
|
222
|
+
"dependencies": {
|
|
223
|
+
"has-symbols": "^1.0.3"
|
|
224
|
+
},
|
|
225
|
+
"engines": {
|
|
226
|
+
"node": ">= 0.4"
|
|
227
|
+
},
|
|
228
|
+
"funding": {
|
|
229
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"node_modules/hasown": {
|
|
233
|
+
"version": "2.0.2",
|
|
234
|
+
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
|
|
235
|
+
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
|
236
|
+
"dependencies": {
|
|
237
|
+
"function-bind": "^1.1.2"
|
|
238
|
+
},
|
|
239
|
+
"engines": {
|
|
240
|
+
"node": ">= 0.4"
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"node_modules/ieee754": {
|
|
244
|
+
"version": "1.1.13",
|
|
245
|
+
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
|
|
246
|
+
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
|
|
247
|
+
},
|
|
248
|
+
"node_modules/inherits": {
|
|
249
|
+
"version": "2.0.4",
|
|
250
|
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
|
251
|
+
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
|
252
|
+
},
|
|
253
|
+
"node_modules/is-arguments": {
|
|
254
|
+
"version": "1.1.1",
|
|
255
|
+
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
|
|
256
|
+
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
|
|
257
|
+
"dependencies": {
|
|
258
|
+
"call-bind": "^1.0.2",
|
|
259
|
+
"has-tostringtag": "^1.0.0"
|
|
260
|
+
},
|
|
261
|
+
"engines": {
|
|
262
|
+
"node": ">= 0.4"
|
|
263
|
+
},
|
|
264
|
+
"funding": {
|
|
265
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"node_modules/is-callable": {
|
|
269
|
+
"version": "1.2.7",
|
|
270
|
+
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
|
|
271
|
+
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
|
|
272
|
+
"engines": {
|
|
273
|
+
"node": ">= 0.4"
|
|
274
|
+
},
|
|
275
|
+
"funding": {
|
|
276
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"node_modules/is-generator-function": {
|
|
280
|
+
"version": "1.0.10",
|
|
281
|
+
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
|
|
282
|
+
"integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
|
|
283
|
+
"dependencies": {
|
|
284
|
+
"has-tostringtag": "^1.0.0"
|
|
285
|
+
},
|
|
286
|
+
"engines": {
|
|
287
|
+
"node": ">= 0.4"
|
|
288
|
+
},
|
|
289
|
+
"funding": {
|
|
290
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
"node_modules/is-typed-array": {
|
|
294
|
+
"version": "1.1.13",
|
|
295
|
+
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
|
|
296
|
+
"integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
|
|
297
|
+
"dependencies": {
|
|
298
|
+
"which-typed-array": "^1.1.14"
|
|
299
|
+
},
|
|
300
|
+
"engines": {
|
|
301
|
+
"node": ">= 0.4"
|
|
302
|
+
},
|
|
303
|
+
"funding": {
|
|
304
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
"node_modules/isarray": {
|
|
308
|
+
"version": "1.0.0",
|
|
309
|
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
|
310
|
+
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
|
|
311
|
+
},
|
|
312
|
+
"node_modules/jmespath": {
|
|
313
|
+
"version": "0.16.0",
|
|
314
|
+
"resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz",
|
|
315
|
+
"integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==",
|
|
316
|
+
"engines": {
|
|
317
|
+
"node": ">= 0.6.0"
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"node_modules/possible-typed-array-names": {
|
|
321
|
+
"version": "1.0.0",
|
|
322
|
+
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
|
|
323
|
+
"integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
|
|
324
|
+
"engines": {
|
|
325
|
+
"node": ">= 0.4"
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
"node_modules/punycode": {
|
|
329
|
+
"version": "1.3.2",
|
|
330
|
+
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
|
|
331
|
+
"integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw=="
|
|
332
|
+
},
|
|
333
|
+
"node_modules/querystring": {
|
|
334
|
+
"version": "0.2.0",
|
|
335
|
+
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
|
|
336
|
+
"integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
|
|
337
|
+
"deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
|
|
338
|
+
"engines": {
|
|
339
|
+
"node": ">=0.4.x"
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
"node_modules/sax": {
|
|
343
|
+
"version": "1.2.1",
|
|
344
|
+
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
|
|
345
|
+
"integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA=="
|
|
346
|
+
},
|
|
347
|
+
"node_modules/set-function-length": {
|
|
348
|
+
"version": "1.2.2",
|
|
349
|
+
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
|
|
350
|
+
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
|
|
351
|
+
"dependencies": {
|
|
352
|
+
"define-data-property": "^1.1.4",
|
|
353
|
+
"es-errors": "^1.3.0",
|
|
354
|
+
"function-bind": "^1.1.2",
|
|
355
|
+
"get-intrinsic": "^1.2.4",
|
|
356
|
+
"gopd": "^1.0.1",
|
|
357
|
+
"has-property-descriptors": "^1.0.2"
|
|
358
|
+
},
|
|
359
|
+
"engines": {
|
|
360
|
+
"node": ">= 0.4"
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"node_modules/url": {
|
|
364
|
+
"version": "0.10.3",
|
|
365
|
+
"resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
|
|
366
|
+
"integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==",
|
|
367
|
+
"dependencies": {
|
|
368
|
+
"punycode": "1.3.2",
|
|
369
|
+
"querystring": "0.2.0"
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
"node_modules/util": {
|
|
373
|
+
"version": "0.12.5",
|
|
374
|
+
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
|
|
375
|
+
"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
|
|
376
|
+
"dependencies": {
|
|
377
|
+
"inherits": "^2.0.3",
|
|
378
|
+
"is-arguments": "^1.0.4",
|
|
379
|
+
"is-generator-function": "^1.0.7",
|
|
380
|
+
"is-typed-array": "^1.1.3",
|
|
381
|
+
"which-typed-array": "^1.1.2"
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
"node_modules/uuid": {
|
|
385
|
+
"version": "8.0.0",
|
|
386
|
+
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz",
|
|
387
|
+
"integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==",
|
|
388
|
+
"bin": {
|
|
389
|
+
"uuid": "dist/bin/uuid"
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
"node_modules/which-typed-array": {
|
|
393
|
+
"version": "1.1.15",
|
|
394
|
+
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
|
|
395
|
+
"integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
|
|
396
|
+
"dependencies": {
|
|
397
|
+
"available-typed-arrays": "^1.0.7",
|
|
398
|
+
"call-bind": "^1.0.7",
|
|
399
|
+
"for-each": "^0.3.3",
|
|
400
|
+
"gopd": "^1.0.1",
|
|
401
|
+
"has-tostringtag": "^1.0.2"
|
|
402
|
+
},
|
|
403
|
+
"engines": {
|
|
404
|
+
"node": ">= 0.4"
|
|
405
|
+
},
|
|
406
|
+
"funding": {
|
|
407
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
"node_modules/xml2js": {
|
|
411
|
+
"version": "0.6.2",
|
|
412
|
+
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
|
|
413
|
+
"integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
|
|
414
|
+
"dependencies": {
|
|
415
|
+
"sax": ">=0.6.0",
|
|
416
|
+
"xmlbuilder": "~11.0.0"
|
|
417
|
+
},
|
|
418
|
+
"engines": {
|
|
419
|
+
"node": ">=4.0.0"
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
"node_modules/xmlbuilder": {
|
|
423
|
+
"version": "11.0.1",
|
|
424
|
+
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
|
|
425
|
+
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
|
|
426
|
+
"engines": {
|
|
427
|
+
"node": ">=4.0"
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "s3uploadplugin",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"author": "",
|
|
11
|
+
"license": "ISC",
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"aws-sdk": "^2.1654.0"
|
|
14
|
+
}
|
|
15
|
+
}
|