Browse Source

geodata: render geo data points in view (WIP)

pull/4140/head
flisowna 2 years ago
parent
commit
1eb51bb14f
  1. 117
      packages/nc-gui/components/cell/GeoData.vue
  2. 1
      packages/nc-gui/components/smartsheet/Gallery.vue
  3. 24
      packages/nc-gui/components/smartsheet/Map.vue
  4. 1
      packages/nc-gui/components/smartsheet/column/EditOrAdd.vue
  5. 5
      packages/nc-gui/composables/useViewData.ts
  6. 1
      packages/nc-gui/context/index.ts
  7. 455
      packages/nocodb-sdk/package-lock.json

117
packages/nc-gui/components/cell/GeoData.vue

@ -1,9 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { GeoLocationType } from 'nocodb-sdk' import type { GeoLocationType } from 'nocodb-sdk'
import { EditModeInj, inject, useVModel } from '#imports' import type { VNodeRef } from '@vue/runtime-core'
import { EditModeInj, inject, useVModel, ref } from '#imports'
interface Props { interface Props {
modelValue?: GeoLocationType | null modelValue?: string | null
} }
interface Emits { interface Emits {
@ -18,19 +19,24 @@ const vModel = useVModel(props, 'modelValue', emits)
const editEnabled = inject(EditModeInj) const editEnabled = inject(EditModeInj)
const latitudeInput = ref(String(vModel?.value?.latitude) || '') // const isPopupOpen = ref(false)
const longitudeInput = ref(String(vModel?.value?.latitude) || '') // const showPopup = () => (isPopupOpen.value = true)
const onSubmit = () => { // const latitudeInput = ref(String(vModel?.value?.latitude) || '')
if (latitudeInput == null || longitudeInput == null) { // const longitudeInput = ref(String(vModel?.value?.latitude) || '')
console.error("Tried to submit a GeoLocation where latitude or longitude value wasn't provicde")
return // const onSubmit = () => {
} // if (latitudeInput == null || longitudeInput == null) {
emits('update:modelValue', { // console.error("Tried to submit a GeoLocation where latitude or longitude value wasn't provicde")
latitude: Number.parseFloat(latitudeInput.value), // return
longitude: Number.parseFloat(longitudeInput.value), // }
}) // emits('update:modelValue', {
} // latitude: Number.parseFloat(latitudeInput.value),
// longitude: Number.parseFloat(longitudeInput.value),
// })
// }
// const onAbort = () => alert('ABORT!')
// const isOpen = ref(false) // const isOpen = ref(false)
@ -38,7 +44,11 @@ const onSubmit = () => {
// const readOnly = inject(ReadonlyInj)! // const readOnly = inject(ReadonlyInj)!
// const focus: VNodeRef = (el) => (el as HTMLInputElement)?.focus() const focus: VNodeRef = (el) => (el as HTMLInputElement)?.focus()
function onKeyDown(evt: KeyboardEvent) {
return evt.key === '.' && evt.preventDefault()
}
// const toggleVisbility = () => { // const toggleVisbility = () => {
// visible.value = !visible.value // visible.value = !visible.value
@ -50,24 +60,87 @@ const onSubmit = () => {
</script> </script>
<template> <template>
PLACEHOLDER FOR NON-EDITABLE LAT/LONG <input
<a-popover v-model:visible="editEnabled" placement="bottomLeft" :style="{ maxWidth: '100px' }"> v-if="editEnabled"
:ref="focus"
v-model="vModel"
class="outline-none px-2 border-none w-full h-full text-sm"
type="string"
@blur="editEnabled = false"
/>
<span v-else class="text-sm">{{ vModel }}</span>
</template>
<!-- <template>
editEnabled: {{ JSON.stringify(editEnabled) }}
<div @click="showPopup">
TEST
<a-popover
v-model:visible="isPopupOpen"
placement="bottomLeft"
:style="{ maxWidth: '100px' }"
trigger="click"
:destroy-on-close="true"
:onabort="{ onAbort }"
onloadstart="onAbort"
destroy-tooltip-on-hide="true"
>
<template #content> <template #content>
<div> <div>
<div :style="{ display: 'flex', flexDirection: 'column' }"> <div :style="{ display: 'flex', flexDirection: 'column' }">
<label for="latitude">latitude</label> <label for="latitude">latitude</label>
<a-input id="latitude" v-model="latitudeInput" /> <a-input id="latitude" v-model="latitudeInput" />
<!-- <span v-else class="text-sm">{{ latitudeInput }}</span> --> <span v-else class="text-sm">{{ latitudeInput }}</span>
<label for="longitude">longitude</label> <label for="longitude">longitude</label>
<a-input id="longitude" v-model="longitudeInput" /> <a-input id="longitude" v-model="longitudeInput" />
<!-- <span v-else class="text-sm">{{ longitudeInput }}</span> --> <span v-else class="text-sm">{{ longitudeInput }}</span>
<a-button type="primary" @click="onSubmit">Ok</a-button> <a-button type="primary" @click="onSubmit">Ok</a-button>
</div> </div>
</div> </div>
</template> </template>
<!-- <a-button type="primary" :style="{ width: '100%' }">hej</a-button> --> <div :style="{ width: '100%' }">No data yet</div>
</a-popover> </a-popover>
</template> </div>
</template> -->
<!-- <template>
<a-dropdown :trigger="['click']">
<a class="ant-dropdown-link" @click.prevent>
Click me
<DownOutlined />
</a>
<template #overlay>
<div :style="{ display: 'flex', flexDirection: 'column' }">
<label for="latitude">latitude</label>
<a-input id="latitude" v-model="latitudeInput" />
<span class="text-sm">{{ latitudeInput }}</span>
<label for="longitude">longitude</label>
<a-input id="longitude" v-model="longitudeInput" />
<span class="text-sm">{{ longitudeInput }}</span>
<a-button type="primary" @click="onSubmit">Ok</a-button>
</div>
</template>
</a-dropdown>
</template> -->
<!-- <template>
<a-dropdown >
<a-button>click</a-button>
<template #overlay>
<a-form v-model="vModel">
<a-form-item label="Field A">
<a-input v-model="latitudeInput" placeholder="input placeholder" />
</a-form-item>
<a-form-item label="Field B">
<a-input v-model="longitudeInput" placeholder="input placeholder" />
</a-form-item>
<a-form-item>
<a-button type="primary">Submit</a-button>
</a-form-item>
</a-form>
</template>
</a-dropdown>
</template> -->
<style scoped lang="scss"> <style scoped lang="scss">
input[type='number']:focus { input[type='number']:focus {

1
packages/nc-gui/components/smartsheet/Gallery.vue

@ -169,6 +169,7 @@ watch(view, async (nextView) => {
<template> <template>
<div class="flex flex-col h-full w-full overflow-auto nc-gallery"> <div class="flex flex-col h-full w-full overflow-auto nc-gallery">
{{ JSON.stringify(data) }}
<div class="nc-gallery-container grid gap-2 my-4 px-3"> <div class="nc-gallery-container grid gap-2 my-4 px-3">
<div v-for="record in data" :key="`record-${record.row.id}`"> <div v-for="record in data" :key="`record-${record.row.id}`">
<LazySmartsheetRow :row="record"> <LazySmartsheetRow :row="record">

24
packages/nc-gui/components/smartsheet/Map.vue

@ -1,15 +1,30 @@
<script lang="ts" setup> <script lang="ts" setup>
import 'leaflet/dist/leaflet.css' import 'leaflet/dist/leaflet.css'
import * as L from 'leaflet' import * as L from 'leaflet'
import { IsFormInj, IsGalleryInj, IsGridInj, ReadonlyInj, onMounted, provide, ref, useUIPermission } from '#imports' // import { ViewTypes } from '~~/../nocodb-sdk/build/main'
import { ViewTypes } from 'nocodb-sdk'
import { IsFormInj, IsGalleryInj, IsGridInj, IsMapInj, ReadonlyInj, onMounted, provide, ref, useUIPermission } from '#imports'
const { isUIAllowed } = useUIPermission() const { isUIAllowed } = useUIPermission()
provide(IsFormInj, ref(false)) provide(IsFormInj, ref(false))
provide(IsGalleryInj, ref(true)) provide(IsGalleryInj, ref(false))
provide(IsGridInj, ref(false)) provide(IsGridInj, ref(false))
provide(IsMapInj, ref(true))
provide(ReadonlyInj, !isUIAllowed('xcDatatableEditable')) provide(ReadonlyInj, !isUIAllowed('xcDatatableEditable'))
const meta = inject(MetaInj, ref())
const view = inject(ActiveViewInj, ref())
const { loadData, formattedData: data } = useViewData(meta, view)
// const { isUIAllowed } = useUIPermission()
onMounted(async () => {
await loadData()
})
const markerRef = ref() const markerRef = ref()
const myMapRef = ref() const myMapRef = ref()
const latitude = ref() const latitude = ref()
@ -42,7 +57,8 @@ onMounted(async () => {
</script> </script>
<template> <template>
<div class="flex flex-col h-full w-full nounderline"> <div class="flex flex-col h-full w-full">
{{ JSON.stringify(data) }}
<div class="flex m-4 gap-4"> <div class="flex m-4 gap-4">
<label :for="latitude">latitude</label> <label :for="latitude">latitude</label>
<input v-model="latitude" /> <input v-model="latitude" />
@ -51,7 +67,7 @@ onMounted(async () => {
<button class="bg-blue" @click="addMarker">Submit</button> <button class="bg-blue" @click="addMarker">Submit</button>
</div> </div>
<client-only placeholder="Loading..."> <client-only placeholder="Loading...">
<div id="map"></div> <div class="nounderline" id="map"></div>
</client-only> </client-only>
</div> </div>
</template> </template>

1
packages/nc-gui/components/smartsheet/column/EditOrAdd.vue

@ -159,6 +159,7 @@ onMounted(() => {
<LazySmartsheetColumnFormulaOptions v-if="formState.uidt === UITypes.Formula" v-model:value="formState" /> <LazySmartsheetColumnFormulaOptions v-if="formState.uidt === UITypes.Formula" v-model:value="formState" />
<LazySmartsheetColumnCurrencyOptions v-if="formState.uidt === UITypes.Currency" v-model:value="formState" /> <LazySmartsheetColumnCurrencyOptions v-if="formState.uidt === UITypes.Currency" v-model:value="formState" />
<LazySmartsheetColumnGeoDataOptions v-if="formState.uidt === UITypes.GeoData" v-model:value="formState" />
<LazySmartsheetColumnDurationOptions v-if="formState.uidt === UITypes.Duration" v-model:value="formState" /> <LazySmartsheetColumnDurationOptions v-if="formState.uidt === UITypes.Duration" v-model:value="formState" />
<LazySmartsheetColumnRatingOptions v-if="formState.uidt === UITypes.Rating" v-model:value="formState" /> <LazySmartsheetColumnRatingOptions v-if="formState.uidt === UITypes.Rating" v-model:value="formState" />
<LazySmartsheetColumnCheckboxOptions v-if="formState.uidt === UITypes.Checkbox" v-model:value="formState" /> <LazySmartsheetColumnCheckboxOptions v-if="formState.uidt === UITypes.Checkbox" v-model:value="formState" />

5
packages/nc-gui/composables/useViewData.ts

@ -1,5 +1,5 @@
import { ViewTypes } from 'nocodb-sdk' import { ViewTypes } from 'nocodb-sdk'
import type { Api, ColumnType, FormType, GalleryType, PaginatedType, TableType, ViewType } from 'nocodb-sdk' import type { Api, ColumnType, FormType, GalleryType, MapType, PaginatedType, TableType, ViewType } from 'nocodb-sdk'
import type { ComputedRef, Ref } from 'vue' import type { ComputedRef, Ref } from 'vue'
import { import {
IsPublicInj, IsPublicInj,
@ -58,6 +58,8 @@ export function useViewData(
const formViewData = ref<FormType>() const formViewData = ref<FormType>()
const mapData = ref<MapType>()
const formattedData = ref<Row[]>([]) const formattedData = ref<Row[]>([])
const isPublic = inject(IsPublicInj, ref(false)) const isPublic = inject(IsPublicInj, ref(false))
@ -451,6 +453,7 @@ export function useViewData(
syncCount, syncCount,
syncPagination, syncPagination,
galleryData, galleryData,
mapData,
loadGalleryData, loadGalleryData,
loadFormView, loadFormView,
formColumnData, formColumnData,

1
packages/nc-gui/context/index.ts

@ -16,6 +16,7 @@ export const ChangePageInj: InjectionKey<ReturnType<typeof useViewData>['changeP
export const IsFormInj: InjectionKey<Ref<boolean>> = Symbol('is-form-injection') export const IsFormInj: InjectionKey<Ref<boolean>> = Symbol('is-form-injection')
export const IsGridInj: InjectionKey<Ref<boolean>> = Symbol('is-grid-injection') export const IsGridInj: InjectionKey<Ref<boolean>> = Symbol('is-grid-injection')
export const IsGalleryInj: InjectionKey<Ref<boolean>> = Symbol('is-gallery-injection') export const IsGalleryInj: InjectionKey<Ref<boolean>> = Symbol('is-gallery-injection')
export const IsMapInj: InjectionKey<Ref<boolean>> = Symbol('is-map-injection')
export const IsKanbanInj: InjectionKey<Ref<boolean>> = Symbol('is-kanban-injection') export const IsKanbanInj: InjectionKey<Ref<boolean>> = Symbol('is-kanban-injection')
export const IsLockedInj: InjectionKey<Ref<boolean>> = Symbol('is-locked-injection') export const IsLockedInj: InjectionKey<Ref<boolean>> = Symbol('is-locked-injection')
export const CellValueInj: InjectionKey<Ref<any>> = Symbol('cell-value-injection') export const CellValueInj: InjectionKey<Ref<any>> = Symbol('cell-value-injection')

455
packages/nocodb-sdk/package-lock.json generated

@ -234,15 +234,6 @@
"vscode-textmate": "^6.0.0" "vscode-textmate": "^6.0.0"
} }
}, },
"node_modules/pkg-conf/node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/swagger-typescript-api": { "node_modules/swagger-typescript-api": {
"version": "10.0.1", "version": "10.0.1",
"resolved": "https://registry.npmjs.org/swagger-typescript-api/-/swagger-typescript-api-10.0.1.tgz", "resolved": "https://registry.npmjs.org/swagger-typescript-api/-/swagger-typescript-api-10.0.1.tgz",
@ -420,15 +411,6 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/oas-resolver/node_modules/yargs-parser": {
"version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
"engines": {
"node": ">=12"
}
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
"version": "5.3.1", "version": "5.3.1",
"dev": true, "dev": true,
@ -452,15 +434,6 @@
"node": ">=10.0.0" "node": ">=10.0.0"
} }
}, },
"node_modules/conventional-changelog-core/node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/highlight/node_modules/supports-color": { "node_modules/@babel/highlight/node_modules/supports-color": {
"version": "5.5.0", "version": "5.5.0",
"dev": true, "dev": true,
@ -553,6 +526,19 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/nyc/node_modules/yargs-parser": {
"version": "18.1.3",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
"dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/table/node_modules/ansi-styles": { "node_modules/table/node_modules/ansi-styles": {
"version": "4.3.0", "version": "4.3.0",
"dev": true, "dev": true,
@ -1164,21 +1150,6 @@
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/git-semver-tags/node_modules/normalize-package-data": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
"integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
"dependencies": {
"hosted-git-info": "^4.0.1",
"is-core-module": "^2.5.0",
"semver": "^7.3.4",
"validate-npm-package-license": "^3.0.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/cli-boxes": { "node_modules/cli-boxes": {
"version": "2.2.1", "version": "2.2.1",
"dev": true, "dev": true,
@ -1390,19 +1361,6 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/pkg-conf/node_modules/locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"dependencies": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@babel/core/node_modules/json5": { "node_modules/@babel/core/node_modules/json5": {
"version": "2.2.1", "version": "2.2.1",
"dev": true, "dev": true,
@ -1433,18 +1391,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/git-semver-tags/node_modules/hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/prettier": { "node_modules/prettier": {
"version": "2.7.1", "version": "2.7.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
@ -1675,18 +1621,6 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/standard-version/node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/cosmiconfig-typescript-loader": { "node_modules/cosmiconfig-typescript-loader": {
"version": "1.0.6", "version": "1.0.6",
"dev": true, "dev": true,
@ -1807,6 +1741,15 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/nyc/node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/npm-run-all/node_modules/path-key": { "node_modules/npm-run-all/node_modules/path-key": {
"version": "2.0.1", "version": "2.0.1",
"dev": true, "dev": true,
@ -2093,6 +2036,15 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/gh-pages/node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true,
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/signal-exit": { "node_modules/signal-exit": {
"version": "3.0.7", "version": "3.0.7",
"dev": true, "dev": true,
@ -2143,12 +2095,6 @@
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/nyc/node_modules/y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
"dev": true
},
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.16.7", "version": "7.16.7",
"dev": true, "dev": true,
@ -2532,15 +2478,6 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/typedoc/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/trim-repeated": { "node_modules/trim-repeated": {
"version": "1.0.0", "version": "1.0.0",
"dev": true, "dev": true,
@ -2663,18 +2600,6 @@
"node": ">=4.0" "node": ">=4.0"
} }
}, },
"node_modules/conventional-changelog-core/node_modules/p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
"dev": true,
"dependencies": {
"p-limit": "^1.1.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/is-fullwidth-code-point": { "node_modules/is-fullwidth-code-point": {
"version": "3.0.0", "version": "3.0.0",
"dev": true, "dev": true,
@ -2880,21 +2805,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/git-semver-tags/node_modules/normalize-package-data/node_modules/semver": {
"version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/cspell-io": { "node_modules/cspell-io": {
"version": "4.1.7", "version": "4.1.7",
"dev": true, "dev": true,
@ -2991,11 +2901,17 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/cz-conventional-changelog/node_modules/color-name": { "node_modules/git-semver-tags/node_modules/type-fest": {
"version": "1.1.3", "version": "0.18.1",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
"dev": true "dev": true,
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
}, },
"node_modules/strip-indent": { "node_modules/strip-indent": {
"version": "3.0.0", "version": "3.0.0",
@ -3585,15 +3501,6 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/standard-version/node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@cspell/dict-cpp": { "node_modules/@cspell/dict-cpp": {
"version": "1.1.40", "version": "1.1.40",
"dev": true, "dev": true,
@ -5607,6 +5514,15 @@
"node": "^10.12.0 || >=12.0.0" "node": "^10.12.0 || >=12.0.0"
} }
}, },
"node_modules/standard-version/node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/js-tokens": { "node_modules/js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"dev": true, "dev": true,
@ -5758,18 +5674,6 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/conventional-changelog-core/node_modules/p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
"dependencies": {
"p-try": "^1.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/oas-resolver/node_modules/yargs": { "node_modules/oas-resolver/node_modules/yargs": {
"version": "17.5.1", "version": "17.5.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
@ -5910,15 +5814,6 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/conventional-changelog-core/node_modules/p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/prettier-linter-helpers": { "node_modules/prettier-linter-helpers": {
"version": "1.0.0", "version": "1.0.0",
"dev": true, "dev": true,
@ -6145,15 +6040,6 @@
"node": ">=0.4.0" "node": ">=0.4.0"
} }
}, },
"node_modules/gh-pages/node_modules/jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/ignore-walk": { "node_modules/ignore-walk": {
"version": "3.0.4", "version": "3.0.4",
"dev": true, "dev": true,
@ -6496,19 +6382,6 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/conventional-changelog-core/node_modules/locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
"dev": true,
"dependencies": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/doctrine": { "node_modules/doctrine": {
"version": "3.0.0", "version": "3.0.0",
"dev": true, "dev": true,
@ -7309,18 +7182,6 @@
"node": ">=0.4.0" "node": ">=0.4.0"
} }
}, },
"node_modules/conventional-changelog-writer/node_modules/hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/eslint-plugin-import/node_modules/debug": { "node_modules/eslint-plugin-import/node_modules/debug": {
"version": "2.6.9", "version": "2.6.9",
"dev": true, "dev": true,
@ -8935,12 +8796,6 @@
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/standard-version/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
"node_modules/eslint/node_modules/@babel/code-frame": { "node_modules/eslint/node_modules/@babel/code-frame": {
"version": "7.12.11", "version": "7.12.11",
"dev": true, "dev": true,
@ -9582,18 +9437,6 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/pkg-conf/node_modules/p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"dependencies": {
"p-limit": "^2.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/normalize-package-data/node_modules/semver": { "node_modules/normalize-package-data/node_modules/semver": {
"version": "5.7.1", "version": "5.7.1",
"dev": true, "dev": true,
@ -11235,16 +11078,6 @@
"strip-bom": "^3.0.0" "strip-bom": "^3.0.0"
} }
}, },
"locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
"dev": true,
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
}
},
"normalize-package-data": { "normalize-package-data": {
"version": "3.0.3", "version": "3.0.3",
"dev": true, "dev": true,
@ -11255,36 +11088,6 @@
"validate-npm-package-license": "^3.0.1" "validate-npm-package-license": "^3.0.1"
} }
}, },
"p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
"requires": {
"p-try": "^1.0.0"
}
},
"p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
"dev": true,
"requires": {
"p-limit": "^1.1.0"
}
},
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
"dev": true
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"dev": true
},
"path-type": { "path-type": {
"version": "3.0.0", "version": "3.0.0",
"dev": true, "dev": true,
@ -11390,15 +11193,6 @@
"through2": "^4.0.0" "through2": "^4.0.0"
}, },
"dependencies": { "dependencies": {
"hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
},
"meow": { "meow": {
"version": "8.1.2", "version": "8.1.2",
"dev": true, "dev": true,
@ -11793,12 +11587,6 @@
"color-name": "1.1.3" "color-name": "1.1.3"
} }
}, },
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"dev": true "dev": true
@ -12804,18 +12592,15 @@
"pinkie-promise": "^2.0.0" "pinkie-promise": "^2.0.0"
} }
}, },
"jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6"
}
},
"pify": { "pify": {
"version": "2.3.0", "version": "2.3.0",
"dev": true "dev": true
},
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true
} }
} }
}, },
@ -12892,15 +12677,6 @@
"semver": "^6.0.0" "semver": "^6.0.0"
}, },
"dependencies": { "dependencies": {
"hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
},
"meow": { "meow": {
"version": "8.1.2", "version": "8.1.2",
"dev": true, "dev": true,
@ -12918,32 +12694,15 @@
"yargs-parser": "^20.2.3" "yargs-parser": "^20.2.3"
} }
}, },
"normalize-package-data": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
"integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
"requires": {
"hosted-git-info": "^4.0.1",
"is-core-module": "^2.5.0",
"semver": "^7.3.4",
"validate-npm-package-license": "^3.0.1"
},
"dependencies": {
"semver": {
"version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
}
}
},
"semver": { "semver": {
"version": "6.3.0", "version": "6.3.0",
"dev": true "dev": true
},
"type-fest": {
"version": "0.18.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
"integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
"dev": true
} }
} }
}, },
@ -14179,6 +13938,12 @@
"color-convert": "^2.0.1" "color-convert": "^2.0.1"
} }
}, },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
"cliui": { "cliui": {
"version": "6.0.0", "version": "6.0.0",
"dev": true, "dev": true,
@ -14204,12 +13969,6 @@
"strip-ansi": "^6.0.0" "strip-ansi": "^6.0.0"
} }
}, },
"y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
"dev": true
},
"yargs": { "yargs": {
"version": "15.4.1", "version": "15.4.1",
"dev": true, "dev": true,
@ -14226,6 +13985,16 @@
"y18n": "^4.0.0", "y18n": "^4.0.0",
"yargs-parser": "^18.1.2" "yargs-parser": "^18.1.2"
} }
},
"yargs-parser": {
"version": "18.1.3",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
} }
} }
}, },
@ -14276,12 +14045,6 @@
"y18n": "^5.0.5", "y18n": "^5.0.5",
"yargs-parser": "^21.0.0" "yargs-parser": "^21.0.0"
} }
},
"yargs-parser": {
"version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true
} }
} }
}, },
@ -14584,31 +14347,6 @@
"requires": { "requires": {
"locate-path": "^3.0.0" "locate-path": "^3.0.0"
} }
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
"p-limit": "^2.0.0"
}
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"dev": true
} }
} }
}, },
@ -15199,15 +14937,6 @@
"yargs": "^16.0.0" "yargs": "^16.0.0"
}, },
"dependencies": { "dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": { "chalk": {
"version": "2.4.2", "version": "2.4.2",
"dev": true, "dev": true,
@ -15217,19 +14946,10 @@
"supports-color": "^5.3.0" "supports-color": "^5.3.0"
} }
}, },
"color-convert": { "escape-string-regexp": {
"version": "1.9.3", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true "dev": true
}, },
"find-up": { "find-up": {
@ -15760,15 +15480,6 @@
"shiki": "^0.11.1" "shiki": "^0.11.1"
}, },
"dependencies": { "dependencies": {
"brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
}
},
"minimatch": { "minimatch": {
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",

Loading…
Cancel
Save