Ver código fonte

feat: add missing utilities admin + upgrade dependencies

Nicolas Giard 2 anos atrás
pai
commit
cd5e7545ee

+ 0 - 3
ux/.yarnrc.yml

@@ -14,9 +14,6 @@ packageExtensions:
   'v-network-graph@*':
     dependencies:
       'd3-force': '*'
-  'autoprefixer@*':
-    dependencies:
-      'postcss': '*'
   '@intlify/vite-plugin-vue-i18n@*':
     dependencies:
       'vite': '*'

+ 6 - 6
ux/package.json

@@ -69,31 +69,31 @@
     "js-cookie": "3.0.1",
     "jwt-decode": "3.1.2",
     "lodash-es": "4.17.21",
-    "luxon": "2.4.0",
+    "luxon": "2.5.0",
     "pinia": "2.0.14",
     "pug": "3.0.2",
-    "quasar": "2.7.4",
+    "quasar": "2.7.5",
     "tippy.js": "6.3.7",
     "uuid": "8.3.2",
     "v-network-graph": "0.6.3",
     "vue": "3.2.37",
     "vue-codemirror": "6.0.0",
     "vue-i18n": "9.1.10",
-    "vue-router": "4.0.16",
+    "vue-router": "4.1.1",
     "vuedraggable": "4.1.0",
     "zxcvbn": "4.4.2"
   },
   "devDependencies": {
     "@intlify/vite-plugin-vue-i18n": "3.4.0",
-    "@quasar/app-vite": "1.0.4",
+    "@quasar/app-vite": "1.0.5",
     "@types/lodash": "4.14.182",
     "browserlist": "latest",
     "eslint": "8.19.0",
     "eslint-config-standard": "17.0.0",
     "eslint-plugin-import": "2.26.0",
-    "eslint-plugin-n": "15.2.3",
+    "eslint-plugin-n": "15.2.4",
     "eslint-plugin-promise": "6.0.0",
-    "eslint-plugin-vue": "9.1.1"
+    "eslint-plugin-vue": "9.2.0"
   },
   "engines": {
     "node": "^18 || ^16",

+ 1 - 0
ux/public/_assets/icons/ultraviolet-database-export.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"  viewBox="0 0 40 40" width="80px" height="80px"><path fill="#dff0fe" d="M20,38.5c-7.859,0-14.5-2.748-14.5-6V7h29v25.5C34.5,35.752,27.859,38.5,20,38.5z"/><path fill="#4788c7" d="M34,7.5v25c0,2.601-5.75,5.5-14,5.5S6,35.101,6,32.5v-25H34 M35,6.5H5c0,1.29,0,24.71,0,26c0,3.59,6.716,6.5,15,6.5s15-2.91,15-6.5C35,31.21,35,7.79,35,6.5L35,6.5z"/><path fill="none" stroke="#4788c7" stroke-miterlimit="10" d="M34.5,15.183c0,2.936-6.492,5.317-14.5,5.317S5.5,18.12,5.5,15.183"/><path fill="#dff0fe" d="M35,32.5c0-0.662,0-7.16,0-13.5h-2l-6,3v6h-7.161l5.207,10.615C30.844,37.716,35,35.321,35,32.5z"/><path fill="#4788c7" d="M34.5,17L34.5,17c0.275,0,0.5,0.225,0.5,0.5v2c0,0.275-0.225,0.5-0.5,0.5l0,0c-0.275,0-0.5-0.225-0.5-0.5v-2C34,17.225,34.225,17,34.5,17z"/><path fill="none" stroke="#4788c7" stroke-linecap="round" stroke-miterlimit="10" d="M5.5,23.217c0,3.47,6.492,6.283,14.5,6.283c0.478,0,0.95-0.01,1.415-0.03"/><path fill="none" stroke="#4788c7" stroke-linecap="round" stroke-miterlimit="10" d="M26.532,37.833C24.557,38.258,22.332,38.5,20,38.5c-7.859,0-14.5-2.748-14.5-6V7h29"/><path fill="#98ccfd" d="M25.04 30.5L29.5 30.5 29.5 22.5 34.5 22.5 34.5 30.5 38.96 30.5 32 39.2z"/><path fill="#4788c7" d="M34,23v7v1h1h2.919L32,38.399L26.081,31H29h1v-1v-7H34 M35,22h-6v8h-5l8,10l8-10h-5V22L35,22z"/><path fill="#dff0fe" d="M20,11.5c-8.674,0-14.5-2.585-14.5-5s5.826-5,14.5-5s14.5,2.585,14.5,5S28.674,11.5,20,11.5z"/><path fill="#4788c7" d="M20,2c8.674,0,14,2.621,14,4.5S28.674,11,20,11S6,8.379,6,6.5S11.326,2,20,2 M20,1C11.716,1,5,3.462,5,6.5S11.716,12,20,12s15-2.462,15-5.5S28.284,1,20,1L20,1z"/></svg>

+ 1 - 0
ux/public/_assets/icons/ultraviolet-database-restore.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"  viewBox="0 0 40 40" width="80px" height="80px"><path fill="#dff0fe" d="M20,38.5c-7.859,0-14.5-2.748-14.5-6V7h29v25.5C34.5,35.752,27.859,38.5,20,38.5z"/><path fill="#4788c7" d="M34,7.5v25c0,2.601-5.75,5.5-14,5.5S6,35.101,6,32.5v-25H34 M35,6.5H5c0,1.29,0,24.71,0,26	c0,3.59,6.716,6.5,15,6.5s15-2.91,15-6.5C35,31.21,35,7.79,35,6.5L35,6.5z"/><path fill="#4788c7" d="M20,21c-8.411,0-15-2.556-15-5.817h1C6,17.509,11.626,20,20,20s14-2.491,14-4.817h1 C35,18.444,28.411,21,20,21z"/><path fill="#dff0fe" d="M35,32.5c0-0.662,0-7.16,0-13.5h-2l-6,3v6h-7.161l5.207,10.615C30.844,37.716,35,35.321,35,32.5z"/><path fill="#4788c7" d="M34.5,17L34.5,17c0.275,0,0.5,0.225,0.5,0.5v2c0,0.275-0.225,0.5-0.5,0.5l0,0	c-0.275,0-0.5-0.225-0.5-0.5v-2C34,17.225,34.225,17,34.5,17z"/><path fill="#4788c7" d="M20,30c-8.411,0-15-2.979-15-6.783c0-0.276,0.224-0.5,0.5-0.5S6,22.94,6,23.217 C6,26.352,12.411,29,20,29c0.47,0,0.936-0.01,1.393-0.03c0.303-0.009,0.51,0.203,0.522,0.478c0.012,0.276-0.202,0.51-0.478,0.522 C20.965,29.99,20.485,30,20,30z"/><path fill="#4788c7" d="M20,39c-8.271,0-15-2.916-15-6.5v-26h29.5C34.776,6.5,35,6.724,35,7s-0.224,0.5-0.5,0.5H6v25 c0,2.93,6.542,5.5,14,5.5c2.209,0,4.432-0.227,6.427-0.656c0.275-0.05,0.536,0.113,0.595,0.384 c0.058,0.271-0.114,0.536-0.384,0.595C24.574,38.766,22.279,39,20,39z"/><path fill="#98ccfd" d="M25.04,30.5h4.46v8h5v-8h4.46L32,21.8L25.04,30.5z"/><path fill="#4788c7" d="M34,38v-7v-1h1h2.919L32,22.601L26.081,30H29h1v1v7H34 M35,39h-6v-8h-5l8-10l8,10h-5V39L35,39z"/><path fill="#dff0fe" d="M20,11.5c-8.674,0-14.5-2.585-14.5-5s5.826-5,14.5-5s14.5,2.585,14.5,5S28.674,11.5,20,11.5z"/><path fill="#4788c7" d="M20,2c8.674,0,14,2.621,14,4.5S28.674,11,20,11S6,8.379,6,6.5S11.326,2,20,2 M20,1	C11.716,1,5,3.462,5,6.5S11.716,12,20,12s15-2.462,15-5.5S28.284,1,20,1L20,1z"/></svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
ux/public/_assets/icons/ultraviolet-datalake.svg


+ 7 - 1
ux/src/i18n/locales/en.json

@@ -1437,5 +1437,11 @@
   "admin.theme.contentFont": "Content Font",
   "admin.theme.contentFontHint": "The font used specifically for page content.",
   "admin.theme.contentWidth": "Content Width",
-  "admin.theme.contentWidthHint": "Should the content use all available viewport space or stay centered."
+  "admin.theme.contentWidthHint": "Should the content use all available viewport space or stay centered.",
+  "admin.utilities.export": "Export",
+  "admin.utilities.import": "Import",
+  "admin.utilities.exportHint": "Export content to tarball for backup / migration.",
+  "admin.utilities.importHint": "Import content from a tarball backup or a 2.X backup.",
+  "admin.utilities.flushCache": "Flush Cache",
+  "admin.utilities.flushCacheHint": "Pages and Assets are cached to disk for better performance. You can flush the cache to force all content to be fetched from the DB again."
 }

+ 17 - 1
ux/src/pages/AdminDashboard.vue

@@ -7,7 +7,23 @@ q-page.admin-dashboard
       .text-h5.text-primary.animated.fadeInLeft {{ t('admin.dashboard.title') }}
       .text-subtitle1.text-grey.animated.fadeInLeft.wait-p2s {{ t('admin.dashboard.subtitle') }}
   .row.q-px-md.q-col-gutter-md
-    .col-12 ---
+    .col-12
+      q-banner.bg-positive.text-white(
+        inline-actions
+        rounded
+        )
+        i.las.la-check.q-mr-sm
+        span.text-weight-medium Your Wiki.js server is running the latest version! (3.0.0)
+        template(#action)
+          q-btn(
+            flat
+            label='Check'
+            )
+          q-btn(
+            flat
+            label='System Info'
+            to='/_admin/system'
+            )
 
 //- v-container(fluid, grid-list-lg)
 //-   v-layout(row, wrap)

+ 39 - 0
ux/src/pages/AdminUtilities.vue

@@ -19,6 +19,45 @@ q-page.admin-utilities
   .q-pa-md.q-gutter-md
     q-card.shadow-1
       q-list(separator)
+        q-item
+          blueprint-icon(icon='database-export', :hue-rotate='45')
+          q-item-section
+            q-item-label {{t(`admin.utilities.export`)}}
+            q-item-label(caption) {{t(`admin.utilities.exportHint`)}}
+          q-item-section(side)
+            q-btn.acrylic-btn(
+              flat
+              icon='las la-arrow-circle-right'
+              color='primary'
+              @click=''
+              :label='t(`common.actions.proceed`)'
+            )
+        q-item
+          blueprint-icon(icon='datalake', :hue-rotate='45')
+          q-item-section
+            q-item-label {{t(`admin.utilities.flushCache`)}}
+            q-item-label(caption) {{t(`admin.utilities.flushCacheHint`)}}
+          q-item-section(side)
+            q-btn.acrylic-btn(
+              flat
+              icon='las la-arrow-circle-right'
+              color='primary'
+              @click=''
+              :label='t(`common.actions.proceed`)'
+            )
+        q-item
+          blueprint-icon(icon='database-restore', :hue-rotate='45')
+          q-item-section
+            q-item-label {{t(`admin.utilities.import`)}}
+            q-item-label(caption) {{t(`admin.utilities.importHint`)}}
+          q-item-section(side)
+            q-btn.acrylic-btn(
+              flat
+              icon='las la-arrow-circle-right'
+              color='primary'
+              @click=''
+              :label='t(`common.actions.proceed`)'
+            )
         q-item
           blueprint-icon(icon='matches', :hue-rotate='45')
           q-item-section

+ 67 - 67
ux/yarn.lock

@@ -883,13 +883,14 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@quasar/app-vite@npm:1.0.4":
-  version: 1.0.4
-  resolution: "@quasar/app-vite@npm:1.0.4"
+"@quasar/app-vite@npm:1.0.5":
+  version: 1.0.5
+  resolution: "@quasar/app-vite@npm:1.0.5"
   dependencies:
     "@quasar/fastclick": 1.1.5
     "@quasar/vite-plugin": ^1.0.9
     "@rollup/pluginutils": ^4.1.2
+    "@types/chrome": ^0.0.191
     "@types/compression": ^1.7.2
     "@types/cordova": 0.0.34
     "@types/express": ^4.17.13
@@ -909,8 +910,7 @@ __metadata:
     inquirer: ^8.2.1
     isbinaryfile: ^4.0.8
     kolorist: ^1.5.1
-    lodash.debounce: ^4.0.8
-    lodash.template: ^4.5.0
+    lodash: ^4.17.21
     minimist: ^1.2.6
     open: ^8.4.0
     ouch: ^2.0.0
@@ -948,7 +948,7 @@ __metadata:
       optional: true
   bin:
     quasar: bin/quasar
-  checksum: 531e1a640602f71947caa10595076c10a1ff2b80b676c641f088399245b66cd2851d8c365fc7cdeda71bf214b33fa14600fdfb22cf40d37be7ab7a7622052744
+  checksum: 15b5afdadb0668aa9bc7a89c5aed3d92e31c16296fab52a09f15959f60745d2d380d40414f4a8a9f843eec3bfa994bf9cd5d530db0a130054210bb441e5ab3d7
   languageName: node
   linkType: hard
 
@@ -1450,6 +1450,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@types/chrome@npm:^0.0.191":
+  version: 0.0.191
+  resolution: "@types/chrome@npm:0.0.191"
+  dependencies:
+    "@types/filesystem": "*"
+    "@types/har-format": "*"
+  checksum: 2c0abc3b3b9d54db3c07a3faf121b208b98b5605942f90d7977814a02fb2a438645b209fd75461aead2276e42e4e089da3f3ec228bc266ff41d466aa031702b6
+  languageName: node
+  linkType: hard
+
 "@types/compression@npm:^1.7.2":
   version: 1.7.2
   resolution: "@types/compression@npm:1.7.2"
@@ -1498,6 +1508,29 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@types/filesystem@npm:*":
+  version: 0.0.32
+  resolution: "@types/filesystem@npm:0.0.32"
+  dependencies:
+    "@types/filewriter": "*"
+  checksum: 4b9079d200a3b241722b90e1c5806c4b32c4dac87d42a1c7ef76a2c0dafdbe7d5f1a379b873ad5de73622b44de6599e1522908f67b938d54e785bd1c36e302a0
+  languageName: node
+  linkType: hard
+
+"@types/filewriter@npm:*":
+  version: 0.0.29
+  resolution: "@types/filewriter@npm:0.0.29"
+  checksum: 0c58aa875c2c245be7dbc42b20212f3203e13d11ec013a4a5cd0febf0e8b87214be5882c05ff9d7bdf0398f145a4fdbc24b7e6cf7b094e134a3b4c7a0598502f
+  languageName: node
+  linkType: hard
+
+"@types/har-format@npm:*":
+  version: 1.2.8
+  resolution: "@types/har-format@npm:1.2.8"
+  checksum: a14c6f31fb7c39be383638e00b3beaf693acfa6a2d8a10d9333f3d5cb70d3f2fc4d369a781775451012adc52faef08ff476e40a34fc6a1d6a557dd02ad984c0c
+  languageName: node
+  linkType: hard
+
 "@types/json5@npm:^0.0.29":
   version: 0.0.29
   resolution: "@types/json5@npm:0.0.29"
@@ -1739,7 +1772,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@vue/devtools-api@npm:^6.0.0, @vue/devtools-api@npm:^6.0.0-beta.7, @vue/devtools-api@npm:^6.1.4":
+"@vue/devtools-api@npm:^6.0.0-beta.7, @vue/devtools-api@npm:^6.1.4":
   version: 6.1.4
   resolution: "@vue/devtools-api@npm:6.1.4"
   checksum: 027bb138b03ec7147dd15e5d0ef28d5b72c822530396cc8a86bc6fdb049dc6850314b9e897e497064e3ed47fad229a18141f56b8b8ca3d41092a576dc5b6538d
@@ -3453,9 +3486,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"eslint-plugin-n@npm:15.2.3":
-  version: 15.2.3
-  resolution: "eslint-plugin-n@npm:15.2.3"
+"eslint-plugin-n@npm:15.2.4":
+  version: 15.2.4
+  resolution: "eslint-plugin-n@npm:15.2.4"
   dependencies:
     builtins: ^5.0.1
     eslint-plugin-es: ^4.1.0
@@ -3467,7 +3500,7 @@ __metadata:
     semver: ^7.3.7
   peerDependencies:
     eslint: ">=7.0.0"
-  checksum: da02bbf3152c49f9a09ab253f70e85f9d62af0f40f3d1882cf8a5fc9b9e07465c7f9632feae002ee97bce0598b408f017a4bb6c6f152b0870bad6f50aa430820
+  checksum: dd651651ab76120e45707ee968d846e3ffffb42d1035792fdef6d3b0dcfddf3673bc6a09cb2fac8c5f1d081f14f2a67fc52295d5ed1d2edfb5beead93284eaac
   languageName: node
   linkType: hard
 
@@ -3480,9 +3513,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"eslint-plugin-vue@npm:9.1.1":
-  version: 9.1.1
-  resolution: "eslint-plugin-vue@npm:9.1.1"
+"eslint-plugin-vue@npm:9.2.0":
+  version: 9.2.0
+  resolution: "eslint-plugin-vue@npm:9.2.0"
   dependencies:
     eslint-utils: ^3.0.0
     natural-compare: ^1.4.0
@@ -3493,7 +3526,7 @@ __metadata:
     xml-name-validator: ^4.0.0
   peerDependencies:
     eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
-  checksum: 6095e2f1c7ca43a7923d52423b7263fbf947680f628cb86a606ad2cc1e0abcbff67971b2d6bb028f6e710fff9c8b1289d5bda27e3ad253c683ce74c9d520580f
+  checksum: 008819b12ad50ed62bfdc7f93e9e610575fa16dcccfb62ad9bb4ad27e69b1245419bf76752285742434fa6b9cf076f6fc173324084639e10209b2af2992630df
   languageName: node
   linkType: hard
 
@@ -4755,20 +4788,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"lodash._reinterpolate@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "lodash._reinterpolate@npm:3.0.0"
-  checksum: 06d2d5f33169604fa5e9f27b6067ed9fb85d51a84202a656901e5ffb63b426781a601508466f039c720af111b0c685d12f1a5c14ff8df5d5f27e491e562784b2
-  languageName: node
-  linkType: hard
-
-"lodash.debounce@npm:^4.0.8":
-  version: 4.0.8
-  resolution: "lodash.debounce@npm:4.0.8"
-  checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6
-  languageName: node
-  linkType: hard
-
 "lodash.defaults@npm:^4.2.0":
   version: 4.2.0
   resolution: "lodash.defaults@npm:4.2.0"
@@ -4804,25 +4823,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"lodash.template@npm:^4.5.0":
-  version: 4.5.0
-  resolution: "lodash.template@npm:4.5.0"
-  dependencies:
-    lodash._reinterpolate: ^3.0.0
-    lodash.templatesettings: ^4.0.0
-  checksum: ca64e5f07b6646c9d3dbc0fe3aaa995cb227c4918abd1cef7a9024cd9c924f2fa389a0ec4296aa6634667e029bc81d4bbdb8efbfde11df76d66085e6c529b450
-  languageName: node
-  linkType: hard
-
-"lodash.templatesettings@npm:^4.0.0":
-  version: 4.2.0
-  resolution: "lodash.templatesettings@npm:4.2.0"
-  dependencies:
-    lodash._reinterpolate: ^3.0.0
-  checksum: 863e025478b092997e11a04e9d9e735875eeff1ffcd6c61742aa8272e3c2cddc89ce795eb9726c4e74cef5991f722897ff37df7738a125895f23fc7d12a7bb59
-  languageName: node
-  linkType: hard
-
 "lodash.truncate@npm:^4.4.2":
   version: 4.4.2
   resolution: "lodash.truncate@npm:4.4.2"
@@ -4905,10 +4905,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"luxon@npm:2.4.0":
-  version: 2.4.0
-  resolution: "luxon@npm:2.4.0"
-  checksum: 6071028d65cc3d3bdab5e6a3995dd97411c92bb3b3163a02deb7b7014318ad3a6fd750ae77131c42141b717c14aef8880d3130f265281d500ef2365f7265b3f3
+"luxon@npm:2.5.0":
+  version: 2.5.0
+  resolution: "luxon@npm:2.5.0"
+  checksum: 2fccce6bbdfc8f13c5a8c148ff045ab3b10f4f80cac28dd92575588fffce9b2d7197096d7fedcc61a6245b59f4233507797f530e63f22b9ae4c425dff2909ae3
   languageName: node
   linkType: hard
 
@@ -5895,10 +5895,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"quasar@npm:2.7.4":
-  version: 2.7.4
-  resolution: "quasar@npm:2.7.4"
-  checksum: f527377c1f789f013a37aa9db023aa5c1680ed31c13eb05baa07f13c74ee2ddf97e5d1dac996cce4ecb9b8e5b4fd3101d115b458f10dede1776b7fc0c7adf7bf
+"quasar@npm:2.7.5":
+  version: 2.7.5
+  resolution: "quasar@npm:2.7.5"
+  checksum: 0ed975f2051ffbb7dd4180a6a9c3b2da7b4696df1896407ea4ec71da3168b9fcde3d43f96323caf7f4fea8cd7d89f03b6426e628c4b718b2b238d330a5f5054d
   languageName: node
   linkType: hard
 
@@ -6839,7 +6839,7 @@ __metadata:
     "@codemirror/view": 6.0.2
     "@intlify/vite-plugin-vue-i18n": 3.4.0
     "@lezer/common": 1.0.0
-    "@quasar/app-vite": 1.0.4
+    "@quasar/app-vite": 1.0.5
     "@quasar/extras": 1.14.2
     "@tiptap/core": 2.0.0-beta.176
     "@tiptap/extension-code-block": 2.0.0-beta.37
@@ -6875,9 +6875,9 @@ __metadata:
     eslint: 8.19.0
     eslint-config-standard: 17.0.0
     eslint-plugin-import: 2.26.0
-    eslint-plugin-n: 15.2.3
+    eslint-plugin-n: 15.2.4
     eslint-plugin-promise: 6.0.0
-    eslint-plugin-vue: 9.1.1
+    eslint-plugin-vue: 9.2.0
     filesize: 9.0.11
     filesize-parser: 1.5.0
     graphql: 16.5.0
@@ -6885,17 +6885,17 @@ __metadata:
     js-cookie: 3.0.1
     jwt-decode: 3.1.2
     lodash-es: 4.17.21
-    luxon: 2.4.0
+    luxon: 2.5.0
     pinia: 2.0.14
     pug: 3.0.2
-    quasar: 2.7.4
+    quasar: 2.7.5
     tippy.js: 6.3.7
     uuid: 8.3.2
     v-network-graph: 0.6.3
     vue: 3.2.37
     vue-codemirror: 6.0.0
     vue-i18n: 9.1.10
-    vue-router: 4.0.16
+    vue-router: 4.1.1
     vuedraggable: 4.1.0
     zxcvbn: 4.4.2
   languageName: unknown
@@ -7056,14 +7056,14 @@ __metadata:
   languageName: node
   linkType: hard
 
-"vue-router@npm:4.0.16":
-  version: 4.0.16
-  resolution: "vue-router@npm:4.0.16"
+"vue-router@npm:4.1.1":
+  version: 4.1.1
+  resolution: "vue-router@npm:4.1.1"
   dependencies:
-    "@vue/devtools-api": ^6.0.0
+    "@vue/devtools-api": ^6.1.4
   peerDependencies:
     vue: ^3.2.0
-  checksum: 4b8e417c96404d4f4c69539112dfafc52f3b2427db3663d5129413a9b65aafdb95889d756af4c6d08a84d7f9e80cc0ae4667383f2c090f27c27ea4b5d83c4cec
+  checksum: a521d9c8e225497ba3f0759b00fdb48fdbf5ed7a81b7f05558733aaecbc539e94180c0bbf336063c65b1c2cf5e3e93fced2ec79718dbadac082fa8150bbfb924
   languageName: node
   linkType: hard
 

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff