adminforth 1.1.74 → 1.1.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/auth.ts +14 -0
  2. package/dataConnectors/postgres.ts +1 -1
  3. package/dist/auth.js +7 -0
  4. package/dist/index.js +117 -65
  5. package/dist/modules/codeInjector.js +29 -15
  6. package/dist/modules/utils.js +1 -1
  7. package/dist/plugins/AuditLogPlugin/index.js +2 -17
  8. package/dist/plugins/S3UploadPlugin/custom/s3uploader.vue +120 -0
  9. package/dist/plugins/S3UploadPlugin/index.js +103 -0
  10. package/dist/plugins/S3UploadPlugin/package-lock.json +431 -0
  11. package/dist/plugins/S3UploadPlugin/package.json +16 -0
  12. package/dist/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsConfirmation.vue +152 -0
  13. package/dist/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsOtp.vue +0 -0
  14. package/dist/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsSetup.vue +188 -0
  15. package/dist/plugins/TwoFactorsAuthPlugin/index.js +150 -0
  16. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/.package-lock.json +61 -0
  17. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/LICENSE +21 -0
  18. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/README.md +15 -0
  19. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/package.json +217 -0
  20. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/@types/notp/LICENSE +21 -0
  21. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/@types/notp/README.md +15 -0
  22. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/@types/notp/package.json +21 -0
  23. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/LICENSE +201 -0
  24. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/README.md +68 -0
  25. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/dist/index.js +51 -0
  26. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/dist/interfaces.js +2 -0
  27. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/package.json +58 -0
  28. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/.travis.yml +6 -0
  29. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/LICENSE +22 -0
  30. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/Readme.md +135 -0
  31. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/examples/TOTP-verify.js +33 -0
  32. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/examples/TOTP.js +15 -0
  33. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/index.js +221 -0
  34. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/package.json +22 -0
  35. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/test/mocha.opts +1 -0
  36. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/notp/test/notp.js +217 -0
  37. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/LICENSE.txt +19 -0
  38. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/Makefile +24 -0
  39. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/README.md +15 -0
  40. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/index.js +23 -0
  41. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/lib/thirty-two/index.js +26 -0
  42. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/lib/thirty-two/thirty-two.js +128 -0
  43. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/package.json +15 -0
  44. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/spec/thirty-two_spec.js +63 -0
  45. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/CopyrightNotice.txt +15 -0
  46. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/LICENSE.txt +12 -0
  47. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/README.md +164 -0
  48. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/SECURITY.md +41 -0
  49. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/modules/index.js +68 -0
  50. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/modules/package.json +3 -0
  51. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/package.json +47 -0
  52. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.es6.html +1 -0
  53. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.es6.js +374 -0
  54. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.es6.mjs +373 -0
  55. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.html +1 -0
  56. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.js +424 -0
  57. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/README.md +6 -0
  58. package/dist/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/package.json +55 -0
  59. package/dist/plugins/TwoFactorsAuthPlugin/package-lock.json +69 -0
  60. package/dist/plugins/TwoFactorsAuthPlugin/package.json +15 -0
  61. package/dist/plugins/TwoFactorsAuthPlugin/types.js +1 -0
  62. package/dist/spa/index.html +1 -1
  63. package/dist/spa/package-lock.json +111 -0
  64. package/dist/spa/package.json +1 -0
  65. package/dist/spa/spa/src/App.vue +154 -121
  66. package/dist/spa/spa/src/components/ResourceForm.vue +91 -91
  67. package/dist/spa/spa/src/router/index.ts +0 -1
  68. package/dist/spa/spa/src/utils.ts +1 -1
  69. package/dist/spa/spa/src/views/CreateView.vue +0 -1
  70. package/dist/spa/spa/src/views/LoginView.vue +4 -1
  71. package/dist/spa/src/App.vue +178 -133
  72. package/dist/spa/src/components/MenuLink.vue +3 -3
  73. package/dist/spa/src/components/ResourceForm.vue +96 -96
  74. package/dist/spa/src/components/ResourceListTable.vue +69 -84
  75. package/dist/spa/src/components/SkeleteLoader.vue +23 -0
  76. package/dist/spa/src/components/ValueRenderer.vue +2 -3
  77. package/dist/spa/src/composables/useStores.ts +24 -11
  78. package/dist/spa/src/main.ts +1 -1
  79. package/dist/spa/src/router/index.ts +0 -1
  80. package/dist/spa/src/utils.ts +1 -1
  81. package/dist/spa/src/views/CreateView.vue +1 -9
  82. package/dist/spa/src/views/EditView.vue +1 -9
  83. package/dist/spa/src/views/ListView.vue +12 -3
  84. package/dist/spa/src/views/LoginView.vue +6 -1
  85. package/dist/spa/src/views/ResourceParent.vue +1 -2
  86. package/dist/spa/src/views/ShowView.vue +6 -14
  87. package/dist/spa/tailwind.config.js +3 -1
  88. package/index.ts +94 -35
  89. package/modules/codeInjector.ts +38 -27
  90. package/modules/utils.ts +1 -1
  91. package/package.json +1 -1
  92. package/plugins/AuditLogPlugin/index.ts +4 -20
  93. package/plugins/S3UploadPlugin/custom/s3uploader.vue +120 -0
  94. package/plugins/S3UploadPlugin/index.ts +112 -0
  95. package/plugins/S3UploadPlugin/package-lock.json +431 -0
  96. package/plugins/S3UploadPlugin/package.json +16 -0
  97. package/plugins/S3UploadPlugin/types.ts +76 -0
  98. package/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsConfirmation.vue +152 -0
  99. package/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsOtp.vue +0 -0
  100. package/plugins/TwoFactorsAuthPlugin/custom/TwoFactorsSetup.vue +188 -0
  101. package/plugins/TwoFactorsAuthPlugin/index.ts +150 -0
  102. package/plugins/TwoFactorsAuthPlugin/node_modules/.package-lock.json +61 -0
  103. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/LICENSE +21 -0
  104. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/README.md +15 -0
  105. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/assert/strict.d.ts +8 -0
  106. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/assert.d.ts +1040 -0
  107. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/async_hooks.d.ts +541 -0
  108. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/buffer.d.ts +2363 -0
  109. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/child_process.d.ts +1544 -0
  110. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/cluster.d.ts +578 -0
  111. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/console.d.ts +452 -0
  112. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/constants.d.ts +19 -0
  113. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/crypto.d.ts +4523 -0
  114. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/dgram.d.ts +596 -0
  115. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/diagnostics_channel.d.ts +554 -0
  116. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/dns/promises.d.ts +476 -0
  117. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/dns.d.ts +864 -0
  118. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/dom-events.d.ts +124 -0
  119. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/domain.d.ts +170 -0
  120. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/events.d.ts +931 -0
  121. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/fs/promises.d.ts +1245 -0
  122. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/fs.d.ts +4317 -0
  123. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/globals.d.ts +412 -0
  124. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/globals.global.d.ts +1 -0
  125. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/http.d.ts +1908 -0
  126. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/http2.d.ts +2418 -0
  127. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/https.d.ts +550 -0
  128. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/index.d.ts +89 -0
  129. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/inspector.d.ts +2746 -0
  130. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/module.d.ts +315 -0
  131. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/net.d.ts +999 -0
  132. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/os.d.ts +495 -0
  133. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/package.json +217 -0
  134. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/path.d.ts +191 -0
  135. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/perf_hooks.d.ts +905 -0
  136. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/process.d.ts +1754 -0
  137. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/punycode.d.ts +117 -0
  138. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/querystring.d.ts +153 -0
  139. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/readline/promises.d.ts +150 -0
  140. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/readline.d.ts +540 -0
  141. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/repl.d.ts +430 -0
  142. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/sea.d.ts +153 -0
  143. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/stream/consumers.d.ts +12 -0
  144. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/stream/promises.d.ts +83 -0
  145. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/stream/web.d.ts +367 -0
  146. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/stream.d.ts +1707 -0
  147. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/string_decoder.d.ts +67 -0
  148. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/test.d.ts +1718 -0
  149. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/timers/promises.d.ts +97 -0
  150. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/timers.d.ts +240 -0
  151. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/tls.d.ts +1217 -0
  152. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/trace_events.d.ts +197 -0
  153. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/tty.d.ts +208 -0
  154. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/url.d.ts +952 -0
  155. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/util.d.ts +2292 -0
  156. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/v8.d.ts +808 -0
  157. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/vm.d.ts +924 -0
  158. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/wasi.d.ts +181 -0
  159. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/worker_threads.d.ts +694 -0
  160. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/node/zlib.d.ts +530 -0
  161. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/notp/LICENSE +21 -0
  162. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/notp/README.md +15 -0
  163. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/notp/index.d.ts +127 -0
  164. package/plugins/TwoFactorsAuthPlugin/node_modules/@types/notp/package.json +21 -0
  165. package/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/LICENSE +201 -0
  166. package/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/README.md +68 -0
  167. package/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/dist/index.d.ts +11 -0
  168. package/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/dist/index.js +51 -0
  169. package/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/dist/interfaces.d.ts +4 -0
  170. package/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/dist/interfaces.js +2 -0
  171. package/plugins/TwoFactorsAuthPlugin/node_modules/node-2fa/package.json +58 -0
  172. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/.travis.yml +6 -0
  173. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/LICENSE +22 -0
  174. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/Readme.md +135 -0
  175. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/examples/TOTP-verify.js +33 -0
  176. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/examples/TOTP.js +15 -0
  177. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/index.js +221 -0
  178. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/package.json +22 -0
  179. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/test/mocha.opts +1 -0
  180. package/plugins/TwoFactorsAuthPlugin/node_modules/notp/test/notp.js +217 -0
  181. package/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/LICENSE.txt +19 -0
  182. package/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/Makefile +24 -0
  183. package/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/README.md +15 -0
  184. package/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/index.js +23 -0
  185. package/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/lib/thirty-two/index.js +26 -0
  186. package/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/lib/thirty-two/thirty-two.js +128 -0
  187. package/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/package.json +15 -0
  188. package/plugins/TwoFactorsAuthPlugin/node_modules/thirty-two/spec/thirty-two_spec.js +63 -0
  189. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/CopyrightNotice.txt +15 -0
  190. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/LICENSE.txt +12 -0
  191. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/README.md +164 -0
  192. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/SECURITY.md +41 -0
  193. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/modules/index.d.ts +37 -0
  194. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/modules/index.js +68 -0
  195. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/modules/package.json +3 -0
  196. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/package.json +47 -0
  197. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.d.ts +453 -0
  198. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.es6.html +1 -0
  199. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.es6.js +374 -0
  200. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.es6.mjs +373 -0
  201. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.html +1 -0
  202. package/plugins/TwoFactorsAuthPlugin/node_modules/tslib/tslib.js +424 -0
  203. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/README.md +6 -0
  204. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/agent.d.ts +31 -0
  205. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/api.d.ts +43 -0
  206. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/balanced-pool.d.ts +18 -0
  207. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/cache.d.ts +36 -0
  208. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/client.d.ts +97 -0
  209. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/connector.d.ts +34 -0
  210. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/content-type.d.ts +21 -0
  211. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/cookies.d.ts +28 -0
  212. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  213. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/dispatcher.d.ts +241 -0
  214. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/errors.d.ts +128 -0
  215. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/fetch.d.ts +209 -0
  216. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/file.d.ts +39 -0
  217. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/filereader.d.ts +54 -0
  218. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/formdata.d.ts +108 -0
  219. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  220. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/global-origin.d.ts +7 -0
  221. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/handlers.d.ts +9 -0
  222. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/header.d.ts +4 -0
  223. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/index.d.ts +63 -0
  224. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/interceptors.d.ts +5 -0
  225. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/mock-agent.d.ts +50 -0
  226. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/mock-client.d.ts +25 -0
  227. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/mock-errors.d.ts +12 -0
  228. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  229. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/mock-pool.d.ts +25 -0
  230. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/package.json +55 -0
  231. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/patch.d.ts +71 -0
  232. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/pool-stats.d.ts +19 -0
  233. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/pool.d.ts +28 -0
  234. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/proxy-agent.d.ts +30 -0
  235. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/readable.d.ts +61 -0
  236. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/webidl.d.ts +220 -0
  237. package/plugins/TwoFactorsAuthPlugin/node_modules/undici-types/websocket.d.ts +131 -0
  238. package/plugins/TwoFactorsAuthPlugin/package-lock.json +69 -0
  239. package/plugins/TwoFactorsAuthPlugin/package.json +15 -0
  240. package/plugins/TwoFactorsAuthPlugin/types.ts +10 -0
  241. package/servers/express.ts +1 -0
  242. package/spa/src/App.vue +154 -121
  243. package/spa/src/components/ResourceForm.vue +91 -91
  244. package/spa/src/router/index.ts +0 -1
  245. package/spa/src/utils.ts +1 -1
  246. package/spa/src/views/CreateView.vue +0 -1
  247. package/spa/src/views/LoginView.vue +4 -1
  248. package/types/AdminForthConfig.ts +24 -3
  249. package/dist/plugins/AuditLog/index.js +0 -13
  250. /package/dist/plugins/{AuditLog → S3UploadPlugin}/types.js +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,112 @@
1
+
2
+ import { AdminForthClass, GenericHttpServer } from "../../types/AdminForthConfig.js";
3
+ import AdminForthPlugin from "../base.js";
4
+ import { PluginOptions } from './types.js';
5
+ import AWS from 'aws-sdk';
6
+
7
+ export default class S3UploadPlugin extends AdminForthPlugin {
8
+ options: PluginOptions;
9
+ adminforth: AdminForthClass;
10
+
11
+ constructor(options: PluginOptions) {
12
+ super(options, import.meta.url);
13
+ this.options = options;
14
+ }
15
+
16
+ modifyResourceConfig(adminforth: AdminForthClass, resourceConfig: any) {
17
+ super.modifyResourceConfig(adminforth, resourceConfig);
18
+ // after column to store the path of the uploaded file, add new VirtualColumn,
19
+ // show only in edit and create views
20
+ // use component s3uploader.vue
21
+ const { pathColumnName, uploadColumnLabel } = this.options;
22
+
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
+
48
+ const pathColumnIndex = resourceConfig.columns.findIndex((column: any) => column.name === pathColumnName);
49
+ if (pathColumnIndex === -1) {
50
+ throw new Error(`Column with name "${pathColumnName}" not found in resource "${resourceConfig.name}"`);
51
+ }
52
+
53
+ // insert virtual column after path column if it is not already there
54
+ const virtualColumnIndex = resourceConfig.columns.findIndex((column: any) => column.name === virtualColumn.name);
55
+ if (virtualColumnIndex === -1) {
56
+ resourceConfig.columns.splice(pathColumnIndex + 1, 0, virtualColumn);
57
+ }
58
+
59
+ // if showIn of path column has 'create' or 'edit' remove it
60
+ const pathColumn = resourceConfig.columns[pathColumnIndex];
61
+ if (pathColumn.showIn && (pathColumn.showIn.includes('create') || pathColumn.showIn.includes('edit'))) {
62
+ pathColumn.showIn = pathColumn.showIn.filter((view: string) => !['create', 'edit'].includes(view));
63
+ }
64
+ }
65
+
66
+ setupEndpoints(server: GenericHttpServer) {
67
+ server.endpoint({
68
+ method: 'POST',
69
+ path: `/plugin/${this.pluginInstanceId}/get_s3_upload_url`,
70
+ handler: async ({ body }) => {
71
+ const { originalFilename, contentType, size, originalExtension } = body;
72
+
73
+ if (this.options.allowedFileExtensions && !this.options.allowedFileExtensions.includes(originalExtension)) {
74
+ throw new Error(`File extension "${originalExtension}" is not allowed, allowed extensions are: ${this.options.allowedFileExtensions.join(', ')}`);
75
+ }
76
+
77
+ const s3Path: string = this.options.s3Path({ originalFilename, originalExtension, contentType });
78
+ const s3 = new AWS.S3({
79
+ accessKeyId: this.options.s3AccessKeyId,
80
+ secretAccessKey: this.options.s3SecretAccessKey,
81
+ region: this.options.s3Region
82
+ });
83
+
84
+ const params = {
85
+ Bucket: this.options.s3Bucket,
86
+ Key: s3Path,
87
+ ContentType: contentType,
88
+ ACL: this.options.s3ACL
89
+ };
90
+
91
+ const url = s3.getSignedUrl('putObject', params);
92
+
93
+ let previewUrl;
94
+ if (this.options.previewUrl) {
95
+ previewUrl = this.options.previewUrl({ s3Path });
96
+ } else {
97
+ // generate presigned url for reading the file
98
+ previewUrl = s3.getSignedUrl('getObject', {
99
+ Bucket: this.options.s3Bucket,
100
+ Key: s3Path
101
+ });
102
+ }
103
+ return {
104
+ url,
105
+ s3Path,
106
+ previewUrl
107
+ };
108
+ }
109
+ });
110
+ }
111
+
112
+ }
@@ -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,16 @@
1
+ {
2
+ "name": "s3uploadplugin",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "index.js",
6
+
7
+ "scripts": {
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "type": "module",
11
+ "author": "",
12
+ "license": "ISC",
13
+ "dependencies": {
14
+ "aws-sdk": "^2.1654.0"
15
+ }
16
+ }