@geode/opengeodeweb-front 9.7.0 → 9.7.1-rc.1

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.
@@ -11,7 +11,7 @@ jobs:
11
11
  uses: actions/checkout@v4
12
12
  - name: Unit tests
13
13
  run: |
14
- npm i
14
+ npm ci
15
15
  npm run test
16
16
 
17
17
  build:
@@ -80,6 +80,7 @@
80
80
  await Promise.all(promise_array)
81
81
  files_uploaded.value = true
82
82
  emit("files_uploaded", internal_files.value)
83
+
83
84
  toggle_loading()
84
85
  }
85
86
 
@@ -72,25 +72,14 @@
72
72
  var promise_array = []
73
73
  for (const filename of filenames) {
74
74
  const params = { filename, supported_feature }
75
- const promise = new Promise((resolve, reject) => {
76
- api_fetch(
77
- { schema, params },
78
- {
79
- request_error_function: () => {
80
- reject()
81
- },
82
- response_function: (response) => {
83
- resolve(response._data.allowed_objects)
84
- },
85
- response_error_function: () => {
86
- reject()
87
- },
88
- },
89
- )
90
- })
75
+ const promise = api_fetch({ schema, params })
91
76
  promise_array.push(promise)
92
77
  }
93
- const values = await Promise.all(promise_array)
78
+ const responses = await Promise.all(promise_array)
79
+ let values = []
80
+ for (const response of responses) {
81
+ values.push(response.data.value.allowed_objects)
82
+ }
94
83
  const all_keys = [...new Set(values.flatMap((value) => Object.keys(value)))]
95
84
  const common_keys = all_keys.filter(
96
85
  (i) => !values.some((j) => !Object.keys(j).includes(i)),
@@ -119,7 +108,6 @@
119
108
  emit("increment_step")
120
109
  }
121
110
  }
122
-
123
111
  await get_allowed_objects()
124
112
  </script>
125
113
 
@@ -22,7 +22,7 @@
22
22
  onMounted(() => {
23
23
  if (process.client) {
24
24
  const config = useRuntimeConfig()
25
- if (config.public.NODE_ENV !== "production") {
25
+ if (config.public.NODE_ENV !== "production" || !infra_store.is_cloud) {
26
26
  infra_store.$patch({ is_captcha_validated: true })
27
27
  }
28
28
  }
@@ -29,46 +29,41 @@ export function api_fetch(
29
29
  if (schema.max_retry) {
30
30
  request_options.max_retry = schema.max_retry
31
31
  }
32
- return new Promise((resolve, reject) => {
33
- useFetch(schema.$id, {
34
- baseURL: geode_store.base_url,
35
- ...request_options,
36
- async onRequestError({ error }) {
32
+ return useFetch(schema.$id, {
33
+ baseURL: geode_store.base_url,
34
+ ...request_options,
35
+ async onRequestError({ error }) {
36
+ await geode_store.stop_request()
37
+ await feedback_store.add_error(
38
+ error.code,
39
+ schema.$id,
40
+ error.message,
41
+ error.stack,
42
+ )
43
+ if (request_error_function) {
44
+ await request_error_function(error)
45
+ }
46
+ },
47
+ async onResponse({ response }) {
48
+ if (response.ok) {
37
49
  await geode_store.stop_request()
38
- await feedback_store.add_error(
39
- error.code,
40
- schema.$id,
41
- error.message,
42
- error.stack,
43
- )
44
- if (request_error_function) {
45
- await request_error_function(error)
50
+ if (response_function) {
51
+ await response_function(response)
46
52
  }
47
- reject(error)
48
- },
49
- async onResponse({ response }) {
50
- if (response.ok) {
51
- await geode_store.stop_request()
52
- if (response_function) {
53
- await response_function(response)
54
- }
55
- resolve(response)
56
- }
57
- },
58
- async onResponseError({ response }) {
59
- await geode_store.stop_request()
60
- await feedback_store.add_error(
61
- response.status,
62
- schema.$id,
63
- response._data.name,
64
- response._data.description,
65
- )
66
- if (response_error_function) {
67
- await response_error_function(response)
68
- }
69
- reject(response)
70
- },
71
- })
53
+ }
54
+ },
55
+ async onResponseError({ response }) {
56
+ await geode_store.stop_request()
57
+ await feedback_store.add_error(
58
+ response.status,
59
+ schema.$id,
60
+ response._data.name,
61
+ response._data.description,
62
+ )
63
+ if (response_error_function) {
64
+ await response_error_function(response)
65
+ }
66
+ },
72
67
  })
73
68
  }
74
69
 
@@ -1,7 +1,10 @@
1
+ import { useAppConfig } from "nuxt/app"
2
+
1
3
  export async function upload_file(
2
4
  { route, file },
3
5
  { request_error_function, response_function, response_error_function } = {},
4
6
  ) {
7
+ console.log("upload_file", route, file)
5
8
  const feedback_store = use_feedback_store()
6
9
  const geode_store = use_geode_store()
7
10
  if (!(file instanceof File)) {
@@ -17,10 +20,14 @@ export async function upload_file(
17
20
  }
18
21
 
19
22
  geode_store.start_request()
20
- return useFetch(route, {
23
+ return $fetch(route, {
21
24
  baseURL: geode_store.base_url,
22
25
  ...request_options,
26
+ onRequest({ request }) {
27
+ console.log("onRequest", request)
28
+ },
23
29
  onRequestError({ error }) {
30
+ console.log("onRequestError", error)
24
31
  geode_store.stop_request()
25
32
  feedback_store.add_error(error.code, route, error.message, error.stack)
26
33
  if (request_error_function) {
@@ -28,6 +35,7 @@ export async function upload_file(
28
35
  }
29
36
  },
30
37
  onResponse({ response }) {
38
+ console.log("onResponse", response)
31
39
  if (response.ok) {
32
40
  geode_store.stop_request()
33
41
  if (response_function) {
@@ -36,6 +44,7 @@ export async function upload_file(
36
44
  }
37
45
  },
38
46
  onResponseError({ response }) {
47
+ console.log("onResponseError", response)
39
48
  geode_store.stop_request()
40
49
  feedback_store.add_error(
41
50
  response.status,
@@ -0,0 +1,13 @@
1
+ module.exports = {
2
+ env: {
3
+ node: true,
4
+ browser: true,
5
+ es2021: true,
6
+ },
7
+ extends: [
8
+ "eslint:recommended",
9
+ "plugin:vue/recommended",
10
+ "plugin:vuetify/recommended",
11
+ "plugin:nuxt/recommended",
12
+ ],
13
+ }
package/package.json CHANGED
@@ -7,29 +7,28 @@
7
7
  "geode_objects": "node scripts/generate_geode_objects.js && prettier ./assets/geode_objects.js --write"
8
8
  },
9
9
  "devDependencies": {
10
- "@nuxt/test-utils": "^3.15.1",
11
- "@pinia/testing": "^0.1.7",
12
- "@vitejs/plugin-vue": "^5.2.1",
13
- "@vitest/coverage-v8": "^3.0.8",
10
+ "@nuxt/test-utils": "^3.18.0",
11
+ "@pinia/testing": "^1.0.1",
12
+ "@vitejs/plugin-vue": "^5.2.3",
14
13
  "@vue/test-utils": "^2.4.6",
15
- "eslint": "^8.57.0",
16
- "eslint-plugin-import": "^2.29.1",
14
+ "eslint": "^9.26.0",
15
+ "eslint-plugin-import": "^2.31.0",
17
16
  "eslint-plugin-nuxt": "^4.0.0",
18
- "eslint-plugin-prettier": "^5.1.3",
17
+ "eslint-plugin-prettier": "^5.4.0",
19
18
  "eslint-plugin-prettier-vue": "^5.0.0",
20
- "eslint-plugin-vue": "^9.33.0",
21
- "eslint-plugin-vuetify": "^2.4.0",
22
- "happy-dom": "^15.11.7",
23
- "jsdom": "^24.1.3",
24
- "nuxt": "^3.13.2",
25
- "playwright-core": "^1.44.1",
26
- "prettier": "3.3.2",
19
+ "eslint-plugin-vue": "^10.1.0",
20
+ "eslint-plugin-vuetify": "^2.5.2",
21
+ "happy-dom": "^17.4.6",
22
+ "jsdom": "^26.1.0",
23
+ "nuxt": "3.17.2",
24
+ "playwright-core": "^1.52.0",
25
+ "prettier": "3.3.3",
27
26
  "resize-observer-polyfill": "^1.5.1",
28
- "vite": "^6.2.1",
29
- "vite-plugin-vuetify": "^2.0.4",
30
- "vitest": "^3.0.8",
27
+ "vite": "^6.3.5",
28
+ "vite-plugin-vuetify": "^2.1.1",
29
+ "vitest": "^3.1.2",
31
30
  "vitest-environment-nuxt": "^1.0.1",
32
- "vuetify": "^3.7.5",
31
+ "vuetify": "^3.8.3",
33
32
  "wslink": "1.12.4"
34
33
  },
35
34
  "overrides": {
@@ -37,23 +36,23 @@
37
36
  },
38
37
  "description": "OpenSource Vue/Vuetify framework for web applications",
39
38
  "type": "module",
40
- "version": "9.7.0",
39
+ "version": "9.7.1-rc.1",
41
40
  "main": "./nuxt.config.js",
42
41
  "dependencies": {
43
- "@geode/opengeodeweb-back": "5.6.3",
44
- "@geode/opengeodeweb-viewer": "1.6.1",
42
+ "@geode/opengeodeweb-back": "5.7.0",
43
+ "@geode/opengeodeweb-viewer": "1.6.3",
45
44
  "@kitware/vtk.js": "30.3.1",
46
45
  "@mdi/font": "^7.4.47",
47
- "@pinia/nuxt": "^0.5.4",
48
- "@types/node": "^22.5.1",
49
- "@vueuse/components": "^11.0.3",
50
- "@vueuse/nuxt": "^11.0.3",
46
+ "@pinia/nuxt": "^0.11.0",
47
+ "@types/node": "^22.15.3",
48
+ "@vueuse/components": "^13.1.0",
49
+ "@vueuse/nuxt": "^13.1.0",
51
50
  "ajv": "^8.17.1",
52
51
  "is-electron": "^2.2.2",
53
52
  "js-file-download": "^0.4.12",
54
- "pinia": "^2.2.2",
55
- "sass": "^1.77.8",
56
- "semver": "^7.6.3",
53
+ "pinia": "^3.0.2",
54
+ "sass": "^1.87.0",
55
+ "semver": "^7.7.1",
57
56
  "uuid": "^11.1.0",
58
57
  "vue-recaptcha": "^2.0.3",
59
58
  "vue3-carousel": "^0.3.3"
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { registerEndpoint, mountSuspended } from "@nuxt/test-utils/runtime"
5
3
 
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { registerEndpoint, mountSuspended } from "@nuxt/test-utils/runtime"
5
3
 
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test, vi } from "vitest"
4
2
  import { mount } from "@vue/test-utils"
5
3
  import { createVuetify } from "vuetify"
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { mount } from "@vue/test-utils"
5
3
  import { createVuetify } from "vuetify"
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test, vi } from "vitest"
4
2
  import { registerEndpoint, mountSuspended } from "@nuxt/test-utils/runtime"
5
3
  import { flushPromises } from "@vue/test-utils"
@@ -60,6 +58,7 @@ describe("FileSelector.vue", async () => {
60
58
  const v_btn = wrapper.findComponent(components.VBtn)
61
59
  await v_btn.trigger("click")
62
60
  await flushPromises()
61
+ await flushPromises()
63
62
  expect(wrapper.emitted()).toHaveProperty("update_values")
64
63
  expect(wrapper.emitted().update_values).toHaveLength(1)
65
64
  expect(wrapper.emitted().update_values[0][0]).toEqual({
@@ -83,7 +82,6 @@ describe("FileSelector.vue", async () => {
83
82
 
84
83
  const files = [new File(["fake_file"], "fake_file.txt")]
85
84
  test("auto_upload true", async () => {
86
- const auto_upload = true
87
85
  const wrapper = await mountSuspended(FileSelector, {
88
86
  global: {
89
87
  plugins: [vuetify, pinia],
@@ -92,7 +90,7 @@ describe("FileSelector.vue", async () => {
92
90
  multiple: false,
93
91
  supported_feature: "test",
94
92
  files: files,
95
- auto_upload,
93
+ auto_upload: true,
96
94
  },
97
95
  })
98
96
 
@@ -107,7 +105,6 @@ describe("FileSelector.vue", async () => {
107
105
  })
108
106
 
109
107
  test("auto_upload false", async () => {
110
- const auto_upload = false
111
108
  const wrapper = await mountSuspended(FileSelector, {
112
109
  global: {
113
110
  plugins: [vuetify, pinia],
@@ -116,7 +113,7 @@ describe("FileSelector.vue", async () => {
116
113
  multiple: false,
117
114
  supported_feature: "test",
118
115
  files: files,
119
- auto_upload,
116
+ auto_upload: false,
120
117
  },
121
118
  })
122
119
 
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { registerEndpoint, mountSuspended } from "@nuxt/test-utils/runtime"
5
3
  import { flushPromises } from "@vue/test-utils"
@@ -56,6 +54,7 @@ describe("FileUploader.vue", async () => {
56
54
 
57
55
  await v_btn.trigger("click")
58
56
  await flushPromises()
57
+ await flushPromises()
59
58
  expect(wrapper.emitted().files_uploaded[0][0]).toEqual(files)
60
59
  })
61
60
 
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { registerEndpoint, mountSuspended } from "@nuxt/test-utils/runtime"
5
3
  import { flushPromises } from "@vue/test-utils"
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { mountSuspended } from "@nuxt/test-utils/runtime"
5
3
 
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test, vi } from "vitest"
4
2
  import { flushPromises } from "@vue/test-utils"
5
3
  import { mountSuspended } from "@nuxt/test-utils/runtime"
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { registerEndpoint, mountSuspended } from "@nuxt/test-utils/runtime"
5
3
  import { flushPromises } from "@vue/test-utils"
@@ -65,6 +63,7 @@ describe("MissingFilesSelector.vue", async () => {
65
63
  })
66
64
  await v_btn.trigger("click")
67
65
  await flushPromises()
66
+ await flushPromises()
68
67
  expect(wrapper.emitted()).toHaveProperty("update_values")
69
68
  expect(wrapper.emitted().update_values).toHaveLength(1)
70
69
  expect(wrapper.emitted().update_values[0][0]).toEqual({
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { registerEndpoint, mountSuspended } from "@nuxt/test-utils/runtime"
5
3
  import { flushPromises } from "@vue/test-utils"
@@ -74,7 +72,11 @@ describe("ObjectSelector.vue", async () => {
74
72
  const v_card = wrapper.findComponent(components.VCard)
75
73
  const v_img = v_card.findComponent(components.VImg)
76
74
  expect(v_img.vm.src).toContain(`${geode_object_1}.svg`)
75
+ await flushPromises()
76
+ await flushPromises()
77
77
  await v_card.trigger("click")
78
+ await flushPromises()
79
+ await flushPromises()
78
80
  expect(wrapper.emitted()).toHaveProperty("update_values")
79
81
  expect(wrapper.emitted().update_values).toHaveLength(1)
80
82
  expect(wrapper.emitted().update_values[0][0]).toEqual({
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { mountSuspended, registerEndpoint } from "@nuxt/test-utils/runtime"
5
3
 
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { mount } from "@vue/test-utils"
5
3
 
@@ -1,5 +1,3 @@
1
- // @vitest-environment nuxt
2
-
3
1
  import { describe, expect, test } from "vitest"
4
2
  import { mountSuspended } from "@vue/test-utils"
5
3
 
@@ -1,6 +1,4 @@
1
- // // @vitest-environment nuxt
2
-
3
- // import { describe, expect, test } from "vitest"
1
+ // // import { describe, expect, test } from "vitest"
4
2
  // import { mountSuspended } from "@nuxt/test-utils/runtime"
5
3
 
6
4
  // import { createVuetify } from "vuetify"