From ec856a206f5b0b109979d8b00cfc466433ee95d6 Mon Sep 17 00:00:00 2001 From: Parinita Mulak Date: Wed, 24 Jul 2024 14:50:09 -0700 Subject: [PATCH] =?UTF-8?q?Revert=20"feat!:=20trigger=20breaking=20change?= =?UTF-8?q?=20for=20version=20update=20and=20merge=20nuxt3.x=20w=E2=80=A6"?= =?UTF-8?q?=20(#844)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 2b9db42aff2acc268aa1b93d17c090854c9fcebc. --- .dockerignore | 30 + .editorconfig | 9 - .eslintignore | 3 - .eslintrc.cjs | 15 - .eslintrc.js | 13 + .github/configs/release-drafter.yml | 58 +- .github/workflows/auto-build.yml | 62 +- .github/workflows/ci.yml | 175 +- .github/workflows/curltest.yml | 30 + .github/workflows/e2e.yml | 16 + .github/workflows/lint-pr.yml | 2 +- .github/workflows/manual-site-build.yml | 36 +- .github/workflows/nuxt3x.yml | 89 + .github/workflows/on-release.yml | 65 +- .github/workflows/percy.yml | 75 +- .github/workflows/release-drafter.yml | 2 +- .github/workflows/setup-workspace/action.yml | 32 +- .gitignore | 10 +- .npmrc | 2 +- .vscode/extensions.json | 6 - .vscode/settings.json | 87 - Dockerfile | 19 + README.md | 263 +- app.vue | 20 - app/router.options.ts | 69 - app/router.scrollBehavior.js | 71 + assets/styles/global.scss | 2 +- composables/removeEmpties.js | 8 - cypress.config.js | 22 +- cypress/.eslintrc.json | 5 - cypress/e2e/articlenewsdetailpage.cy.js | 43 +- cypress/e2e/articlenewslistingpage.cy.js | 38 +- cypress/e2e/askuspage.cy.js | 22 +- cypress/e2e/collectiondetailpage.cy.js | 62 +- cypress/e2e/collectionlistpage.cy.js | 17 +- cypress/e2e/collectionsaccesspage.cy.js | 47 +- cypress/e2e/collectionsexplorepage.cy.js | 58 +- cypress/e2e/endowmentsdetail.cy.js | 31 +- cypress/e2e/endowmentslist.cy.js | 29 +- cypress/e2e/eventseriesdetail.cy.js | 48 +- cypress/e2e/eventsexhibitionslist.cy.js | 32 +- cypress/e2e/exhibitiondetail.cy.js | 18 +- cypress/e2e/generalcontent.cy.js | 42 +- cypress/e2e/helptopicpage.cy.js | 38 +- cypress/e2e/homepage.cy.js | 119 +- cypress/e2e/impactmainstory.cy.js | 32 +- cypress/e2e/impactreportpage.cy.js | 80 +- cypress/e2e/jobopportunitieslist.cy.js | 20 +- cypress/e2e/jobstudentopportunities.cy.js | 20 +- cypress/e2e/locationdetailpage.cy.js | 40 +- cypress/e2e/locationlistpage.cy.js | 37 +- cypress/e2e/mobilehomepage.cy.js | 20 +- cypress/e2e/policiesdetailpage.cy.js | 36 +- cypress/e2e/policieslistpage.cy.js | 25 +- cypress/e2e/programdetailpage.cy.js | 37 +- cypress/e2e/programslistpage.cy.js | 38 +- cypress/e2e/resource.cy.js | 46 +- cypress/e2e/service.cy.js | 48 +- cypress/e2e/servicesresourceslistpage.cy.js | 41 +- cypress/e2e/sitesearch.cy.js | 27 +- cypress/e2e/staffdetailpage.cy.js | 34 +- cypress/e2e/stafflistingpage.cy.js | 42 +- cypress/e2e/user_agent_spec.js | 41 +- cypress/e2e/workshopseries.cy.js | 32 +- cypress/plugins/index.js | 4 + cypress/support/e2e.js | 19 +- data/BlockFormData.json | 452 + data/impact-report_index.json | 629 + data/impact-report_slug.json | 61 + data/impact-social-media.json | 54 - data/mock-api.json | 242 + data/serviceorresource_entries.json | 48 + data/serviceorresource_test-entries.json | 14 + data/staff_entries.json | 282 + data/staff_test-entries.json | 17 + docker-compose.yml | 24 + error.vue | 107 - .../BlockAssociatedTopicCardsFragment.gql | 1 - gql/fragments/BlockBannerFeaturedFragment.gql | 5 - .../BlockImpactNumberCardsFragment.gql | 14 + .../BlockMediaGalleryExtraFieldsFragment.gql | 3 +- gql/fragments/BlockMediaGalleryFragment.gql | 3 +- gql/fragments/BlockMediaWithTextFragment.gql | 2 +- gql/fragments/collections/AllFpb.gql | 28 +- .../collections/AllFpbWithNoBanner.gql | 22 +- gql/fragments/collections/DefaultFpb.gql | 14 +- .../DefaultFpbWithCardsAndHighlight.gql | 18 +- .../collections/DefaultFpbWithNoCta.gql | 14 +- .../ExhibitionsAndCollectionsFpb.gql | 30 +- gql/fragments/collections/ImpactReportFpb.gql | 22 +- gql/queries/AllPages.gql | 5 + gql/queries/ArticleDetail.gql | 4 +- gql/queries/ArticleList.gql | 2 +- gql/queries/AskUs.gql | 4 +- gql/queries/CollectionDetail.gql | 5 +- gql/queries/CollectionsAccessList.gql | 2 +- gql/queries/CollectionsExploreList.gql | 2 +- gql/queries/CollectionsList.gql | 3 +- gql/queries/EndowmentDetail.gql | 6 +- gql/queries/EndowmentList.gql | 3 +- gql/queries/EventDetail.gql | 16 +- gql/queries/EventWorkshopList.gql | 2 +- gql/queries/ExhibitionsAndEventsList.gql | 165 +- .../ExhibitionsAndEventsListSingle.gql | 150 +- gql/queries/FooterPrimaryItems.gql | 2 +- gql/queries/FooterSockItems.gql | 2 +- gql/queries/GeneralContentDetail.gql | 4 +- gql/queries/HeaderMainMenuItems.gql | 2 +- gql/queries/HelpTopicDetail.gql | 2 +- gql/queries/Homepage.gql | 2 +- gql/queries/ImpactReport.gql | 4 +- gql/queries/ImpactReportStory.gql | 4 +- gql/queries/LocationDetail.gql | 23 +- gql/queries/LocationsList.gql | 12 +- gql/queries/MenuItems.gql | 2 +- gql/queries/PoliciesList.gql | 2 +- gql/queries/PolicyDetail.gql | 4 +- gql/queries/ProgramDetail.gql | 4 +- gql/queries/ProgramsList.gql | 2 +- ...{ImpactReportsList.gql => ReportsList.gql} | 4 +- .../ServiceOrResourceOrWorkshopDetail.gql | 6 +- gql/queries/StaffDetail.gql | 3 +- gql/queries/StaffList.gql | 2 +- layouts/default.vue | 293 +- layouts/error.vue | 102 + layouts/impact.vue | 149 + modules/finalize.js | 129 - modules/indexAliasGenerator.js | 55 + modules/init.js | 64 - modules/populate/index.js | 18 + modules/populate/populate.server.js | 27 + modules/sitemapRouteGenerator.js | 12 + modules/swapAliasIndexGenerator.js | 111 + netlify.toml | 2 +- netlify/edge-functions/blockUserAgents.js | 20 +- nuxt.config.js | 234 + nuxt.config.ts | 235 - package-lock.json | 26243 ++++++++++++++++ package.json | 94 +- pages/[...slug].vue | 144 - pages/_.vue | 122 + .../about/jobs/staff-academic-jobs/index.vue | 339 +- pages/about/news/[slug].vue | 190 - pages/about/news/_slug.vue | 176 + pages/about/news/index.vue | 874 +- pages/about/policies/[slug].vue | 135 - pages/about/policies/_slug.vue | 143 + pages/about/policies/index.vue | 215 +- pages/about/programs/[slug].vue | 240 - pages/about/programs/_slug.vue | 214 + pages/about/programs/index.vue | 722 +- pages/about/reports/index.vue | 209 +- pages/about/staff/[slug].vue | 189 - pages/about/staff/_slug.vue | 183 + pages/about/staff/index.vue | 1091 +- pages/about/student-opportunities/index.vue | 434 +- pages/collections/access/index.vue | 556 +- pages/collections/explore/[slug].vue | 298 - pages/collections/explore/_slug.vue | 268 + pages/collections/explore/index.vue | 664 +- pages/collections/index.vue | 532 +- pages/give/endowments/[slug].vue | 322 - pages/give/endowments/_slug.vue | 295 + pages/give/endowments/index.vue | 758 +- pages/help/[slug].vue | 157 - pages/help/_slug.vue | 143 + pages/help/services-resources/[slug].vue | 413 - pages/help/services-resources/_slug.vue | 401 + .../help/services-resources/ask-us/index.vue | 169 +- pages/help/services-resources/index.vue | 754 +- pages/impact/[year]/[slug].vue | 289 - pages/impact/[year]/index.vue | 397 - pages/impact/_year/_slug.vue | 237 + pages/impact/_year/index.vue | 451 + pages/impact/all.vue | 28 +- pages/impact/index.vue | 391 - pages/index.vue | 659 +- pages/search-site/index.vue | 636 +- pages/visit/events-exhibitions/[slug].vue | 640 - pages/visit/events-exhibitions/_slug.vue | 663 + pages/visit/events-exhibitions/index.vue | 1078 +- pages/visit/locations/[slug].vue | 436 - pages/visit/locations/_slug.vue | 449 + pages/visit/locations/index.vue | 781 +- plugins/add-library-website-vue-components.js | 12 +- plugins/add-skip-to.js | 5 + plugins/add-vue-skip-to.js | 9 - plugins/browser-events.client.js | 48 +- plugins/craft.js | 28 +- plugins/data-api.js | 782 +- plugins/elasticsearchplugin.js | 75 + plugins/get-headers.client.js | 38 +- plugins/getScrollInfo.client.js | 23 - plugins/indexer.server.js | 84 - plugins/init.server.js | 9 - plugins/preview.client.js | 7 + plugins/scrape-formid.client.js | 103 +- plugins/update-library-alert.client.js | 29 - plugins/update-library-site-alert.client.js | 9 + pnpm-lock.yaml | 9178 ------ public/favicon.ico | Bin 4286 -> 0 bytes router.options.ts | 69 - ...fetchNitroStorageCraftFooterPrimaryData.js | 36 - .../fetchNitroStorageCraftFooterSockData.js | 33 - .../api/fetchNitroStorageCraftGlobalData.js | 43 - .../api/fetchNitroStorageCraftHeaderData.js | 38 - server/tsconfig.json | 3 - {public => static}/_redirects | 86 +- {public => static}/blockCliccHours.html | 12 +- {public => static}/blockHours.html | 12 +- static/favicon.ico | Bin 0 -> 7406 bytes public/_robots.txt => static/robots.txt | 2 +- store/index.js | 163 + stores/GlobalStore.js | 113 - tsconfig.json | 4 - utils/arrayOfArrays.js | 21 + utils/fixUri.js | 19 +- utils/flattenTimeLineStructure.js | 33 +- utils/formatEventDates.js | 32 + utils/formatEventDay.js | 16 + utils/formatEventMonth.js | 16 + utils/formatEventTimes.js | 31 + utils/formatLinkTarget.js | 19 + utils/getListingFilters.js | 28 +- utils/getParentPageTitle.js | 43 + utils/getParentPageUrl.js | 14 + utils/getS3Bucket.js | 13 + utils/getSectionName.js | 33 + utils/getShareLinks.js | 46 + utils/isInternalLink.js | 25 + utils/isRelativeLink.js | 22 + utils/kebabCase.js | 14 + utils/mergeFilters.js | 24 + utils/parseAddress.js | 60 +- utils/parseAmenities.js | 22 +- utils/parseFilters.js | 18 - utils/parseIcons.js | 14 +- utils/queryFilterHasValues.js | 72 +- utils/removeEmpties.js | 10 + utils/removeTags.js | 19 +- utils/searchConfig.js | 625 +- utils/sortByTitle.js | 2 +- utils/titleCase.js | 47 + 243 files changed, 41197 insertions(+), 22687 deletions(-) create mode 100644 .dockerignore delete mode 100644 .editorconfig delete mode 100644 .eslintrc.cjs create mode 100644 .eslintrc.js create mode 100644 .github/workflows/curltest.yml create mode 100644 .github/workflows/e2e.yml create mode 100644 .github/workflows/nuxt3x.yml delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/settings.json create mode 100644 Dockerfile delete mode 100644 app.vue delete mode 100644 app/router.options.ts create mode 100644 app/router.scrollBehavior.js delete mode 100644 composables/removeEmpties.js delete mode 100644 cypress/.eslintrc.json create mode 100644 cypress/plugins/index.js create mode 100644 data/BlockFormData.json create mode 100644 data/impact-report_index.json create mode 100644 data/impact-report_slug.json delete mode 100644 data/impact-social-media.json create mode 100644 data/mock-api.json create mode 100644 data/serviceorresource_entries.json create mode 100644 data/serviceorresource_test-entries.json create mode 100644 data/staff_entries.json create mode 100644 data/staff_test-entries.json create mode 100644 docker-compose.yml delete mode 100644 error.vue create mode 100644 gql/queries/AllPages.gql rename gql/queries/{ImpactReportsList.gql => ReportsList.gql} (84%) create mode 100644 layouts/error.vue create mode 100644 layouts/impact.vue delete mode 100644 modules/finalize.js create mode 100644 modules/indexAliasGenerator.js delete mode 100644 modules/init.js create mode 100644 modules/populate/index.js create mode 100644 modules/populate/populate.server.js create mode 100644 modules/sitemapRouteGenerator.js create mode 100644 modules/swapAliasIndexGenerator.js create mode 100644 nuxt.config.js delete mode 100644 nuxt.config.ts create mode 100644 package-lock.json delete mode 100644 pages/[...slug].vue create mode 100644 pages/_.vue delete mode 100644 pages/about/news/[slug].vue create mode 100644 pages/about/news/_slug.vue delete mode 100644 pages/about/policies/[slug].vue create mode 100644 pages/about/policies/_slug.vue delete mode 100644 pages/about/programs/[slug].vue create mode 100644 pages/about/programs/_slug.vue delete mode 100644 pages/about/staff/[slug].vue create mode 100644 pages/about/staff/_slug.vue delete mode 100644 pages/collections/explore/[slug].vue create mode 100644 pages/collections/explore/_slug.vue delete mode 100644 pages/give/endowments/[slug].vue create mode 100644 pages/give/endowments/_slug.vue delete mode 100644 pages/help/[slug].vue create mode 100644 pages/help/_slug.vue delete mode 100644 pages/help/services-resources/[slug].vue create mode 100644 pages/help/services-resources/_slug.vue delete mode 100644 pages/impact/[year]/[slug].vue delete mode 100644 pages/impact/[year]/index.vue create mode 100644 pages/impact/_year/_slug.vue create mode 100644 pages/impact/_year/index.vue delete mode 100644 pages/impact/index.vue delete mode 100644 pages/visit/events-exhibitions/[slug].vue create mode 100644 pages/visit/events-exhibitions/_slug.vue delete mode 100644 pages/visit/locations/[slug].vue create mode 100644 pages/visit/locations/_slug.vue create mode 100644 plugins/add-skip-to.js delete mode 100644 plugins/add-vue-skip-to.js create mode 100644 plugins/elasticsearchplugin.js delete mode 100644 plugins/getScrollInfo.client.js delete mode 100644 plugins/indexer.server.js delete mode 100644 plugins/init.server.js create mode 100644 plugins/preview.client.js delete mode 100644 plugins/update-library-alert.client.js create mode 100644 plugins/update-library-site-alert.client.js delete mode 100644 pnpm-lock.yaml delete mode 100644 public/favicon.ico delete mode 100644 router.options.ts delete mode 100644 server/api/fetchNitroStorageCraftFooterPrimaryData.js delete mode 100644 server/api/fetchNitroStorageCraftFooterSockData.js delete mode 100644 server/api/fetchNitroStorageCraftGlobalData.js delete mode 100644 server/api/fetchNitroStorageCraftHeaderData.js delete mode 100644 server/tsconfig.json rename {public => static}/_redirects (94%) rename {public => static}/blockCliccHours.html (97%) rename {public => static}/blockHours.html (96%) create mode 100644 static/favicon.ico rename public/_robots.txt => static/robots.txt (97%) create mode 100644 store/index.js delete mode 100644 stores/GlobalStore.js delete mode 100644 tsconfig.json create mode 100644 utils/arrayOfArrays.js create mode 100644 utils/formatEventDates.js create mode 100644 utils/formatEventDay.js create mode 100644 utils/formatEventMonth.js create mode 100644 utils/formatEventTimes.js create mode 100644 utils/formatLinkTarget.js create mode 100644 utils/getParentPageTitle.js create mode 100644 utils/getParentPageUrl.js create mode 100644 utils/getS3Bucket.js create mode 100644 utils/getSectionName.js create mode 100644 utils/getShareLinks.js create mode 100644 utils/isInternalLink.js create mode 100644 utils/isRelativeLink.js create mode 100644 utils/kebabCase.js create mode 100644 utils/mergeFilters.js delete mode 100644 utils/parseFilters.js create mode 100644 utils/removeEmpties.js create mode 100644 utils/titleCase.js diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..3bc2b738b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,30 @@ +# Created by .ignore support plugin (hsz.mobi) +### Node template +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Dependency directories +node_modules/ + +# nuxt.js build output +.nuxt + +# Nuxt generate +dist + +# IDE +.vscode + +# Environment Vars +.env + +# OS Junk +.DS_Store + +# Storybook +.nuxt-storybook +storybook-static diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 3dce4145f..000000000 --- a/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true \ No newline at end of file diff --git a/.eslintignore b/.eslintignore index c062e373d..3107b2329 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,6 +2,3 @@ .nuxt/ node_modules/ storybook-static/ -.output -dist - diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 80ee9d073..000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - root: true, - extends: ["@nuxtjs/eslint-config-typescript"], - "rules": { - "@typescript-eslint/comma-dangle": "off", - "n/prefer-global/process": "off", - "no-unused-vars": "off", - "@typescript-eslint/no-unused-vars": "off", - "space-before-function-paren": "off", - "comma-dangle": "off", - "operator-linebreak": "off", - "curly": "off", - "brace-style": "off", - } -}; diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..7056fe365 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,13 @@ +/* eslint-env node */ +module.exports = { + extends: ["eslint:recommended", "plugin:vue/recommended", "plugin:cypress/recommended"], + rules: { + // override/add rules settings here, such as: + indent: ["error", 4, { SwitchCase: 1 }], + "vue/html-indent": ["error", 4], + semi: [2, "never"], + }, + env: { + node: true + } +} diff --git a/.github/configs/release-drafter.yml b/.github/configs/release-drafter.yml index 8f18cd22b..f381fbcdf 100644 --- a/.github/configs/release-drafter.yml +++ b/.github/configs/release-drafter.yml @@ -1,47 +1,47 @@ categories: - - title: 🚀 Features and Improvements + - title: '🚀 Features and Improvements' labels: - - feature - - enhancement - - performance - - refactor - - title: 🌈 Chore and Updates + - 'feature' + - 'enhancement' + - 'performance' + - 'refactor' + - title: '🌈 Chore and Updates' labels: - - documentation - - chore - - test - - ci - - title: 🐛 Bug Fixes + - 'documentation' + - 'chore' + - 'test' + - 'ci' + - title: '🐛 Bug Fixes' labels: - - bugfix - - fix - - title: 🧰 Breaking Changes - label: breaking + - 'bugfix' + - 'fix' + - title: '🧰 Breaking Changes' + label: 'breaking' version-resolver: major: labels: - - breaking + - 'breaking' minor: labels: - - enhancement - - feature - - performance - - refactor + - 'enhancement' + - 'feature' + - 'performance' + - 'refactor' patch: labels: - - bugfix - - documentation - - fix - - chore - - test - - ci + - 'bugfix' + - 'documentation' + - 'fix' + - 'chore' + - 'test' + - 'ci' default: patch -tag-template: $RESOLVED_VERSION -name-template: v$RESOLVED_VERSION +tag-template: '$RESOLVED_VERSION' +name-template: 'v$RESOLVED_VERSION' change-template: '* $TITLE (#$NUMBER)' change-title-escapes: '' exclude-labels: - - skip-changelog + - 'skip-changelog' template: | ## What’s Changed diff --git a/.github/workflows/auto-build.yml b/.github/workflows/auto-build.yml index 78dbad96e..771d961d8 100644 --- a/.github/workflows/auto-build.yml +++ b/.github/workflows/auto-build.yml @@ -6,7 +6,7 @@ on: # tags: # - production schedule: - - cron: '00 8,20 * * *' # 8,20 UTC = noon and midnight PST, 1am and 1pm PDT + - cron: '00 8,20 * * *' # 8,20 UTC = noon and midnight PST, 1am and 1pm PDT jobs: nuxt-prod: @@ -14,33 +14,33 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - uses: actions/checkout@v3 - with: - ref: production - - uses: ./.github/workflows/setup-workspace - - run: npm run generate - env: - CRAFT_ENDPOINT: ${{ secrets.CRAFT_PROD_ENDPOINT }} - LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} - S3_BUCKET: 'https://static.library.ucla.edu/' - SITEMAP_HOST: ${{ secrets.SITEMAP_URL_PROD }} - ES_URL: ${{ secrets.ES_URL }} - ESApiKey: ${{ secrets.ESApiKey }} - ES_READ_KEY: ${{ secrets.ES_READ_KEY_PROD }} - ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_PROD }} - ES_ALIAS: ${{ secrets.ES_ALIAS_PROD }} - ES_INDEX_PREFIX: ${{ secrets.ES_INDEX_PREFIX_PROD }} - ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_PROD}} - LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_PROD}} - - name: Deploy to Netlify on release - uses: nwtgck/actions-netlify@v3 # - with: - production-deploy: true - deploy-message: https://github.com/UCLALibrary/library-website-nuxt/commit/${{ github.sha }} - github-token: ${{ secrets.GITHUB_TOKEN }} - publish-dir: .output/public - fails-without-credentials: true - github-deployment-environment: production - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_PROD_LIBRARY_SITE_ID }} + - uses: actions/checkout@v3 + with: + ref: production + - uses: ./.github/workflows/setup-workspace + - run: npm run generate + env: + CRAFT_ENDPOINT: ${{ secrets.CRAFT_PROD_ENDPOINT }} + LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} + S3_BUCKET: "https://static.library.ucla.edu/" + SITEMAP_HOST: ${{ secrets.SITEMAP_URL_PROD }} + ES_URL: ${{ secrets.ES_URL }} + ESApiKey: ${{ secrets.ESApiKey }} + ES_READ_KEY: ${{ secrets.ES_READ_KEY_PROD }} + ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_PROD }} + ES_INDEX: ${{ secrets.ES_INDEX_PROD }} + ES_INDEX_PREFIX: ${{ secrets.ES_INDEX_PREFIX_PROD }} + ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_PROD}} + LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_PROD}} + - name: Deploy to Netlify on release + uses: nwtgck/actions-netlify@v2 # + with: + production-deploy: true + deploy-message: https://github.com/UCLALibrary/library-website-nuxt/commit/${{ github.sha }} + github-token: ${{ secrets.GITHUB_TOKEN }} + publish-dir: './dist' + fails-without-credentials: true + github-deployment-environment: production + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_PROD_LIBRARY_SITE_ID }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7dd90c28e..4f0bdc775 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: Run CI Suite on: push: - branches: [main] + branches: [ main ] pull_request: - branches: [main] + branches: [ main ] concurrency: group: ci-${{ github.ref_name=='main' && github.sha || github.ref_name }} # Cancel runs for previous version of PR, but not main (after merge). For hacked ternary, see https://github.com/actions/runner/issues/409#issuecomment-727565588 @@ -15,16 +15,16 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - uses: actions/checkout@v3 - with: - repository: ${{ github.event.pull_request.head.repo.full_name }} - ref: ${{ github.event.pull_request.head.ref }} - - uses: ./.github/workflows/setup-workspace - - run: pnpm run lint - - uses: EndBug/add-and-commit@v9 - with: - message: 'chore: linter autofixes' - default_author: github_actions + - uses: actions/checkout@v3 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.ref }} + - uses: ./.github/workflows/setup-workspace + - run: npm run lint-fix + - uses: EndBug/add-and-commit@v9 + with: + message: "chore: linter autofixes" + default_author: github_actions percy-instructions: if: github.event_name == 'pull_request' @@ -40,7 +40,7 @@ jobs: In order to conserve our percy screenshot allowance, percy is not configured to run automatically. Please make sure the PR is ready and all other checks are passing, then start it manually: 1. Visit https://github.com/UCLALibrary/library-website-nuxt/actions/workflows/percy.yml - 2. Click the 'Run workflow' button in the blue bar. + 2. Click the 'Run workflow' button in the blue bar. 3. Select the correct branch for this PR and click 'Run workflow' again to confirm. nuxt: @@ -48,79 +48,76 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - uses: actions/checkout@v3 - - uses: ./.github/workflows/setup-workspace - - name: Cache built static site - uses: actions/cache@v3 - with: - path: .output/public - key: nuxt-site-${{ github.sha }} - - name: Sets env vars for PR preview - run: | - echo "ES_INDEX=${{secrets.ES_INDEX_TEST}}-deploy-preview" >> $GITHUB_ENV - echo "ES_ALIAS=${{secrets.ES_ALIAS_TEST}}-deploy-preview" >> $GITHUB_ENV - if: github.ref_name!='main' - - name: Sets env vars for main merge - run: | - echo "ES_INDEX=${{secrets.ES_INDEX_TEST}}" >> $GITHUB_ENV - echo "ES_ALIAS=${{secrets.ES_ALIAS_TEST}}" >> $GITHUB_ENV - if: github.ref_name=='main' - - run: pnpm run generate - env: - CRAFT_ENDPOINT: ${{ secrets.CRAFT_ENDPOINT }} - LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} - S3_BUCKET: 'https://static.library.ucla.edu/' - SITEMAP_HOST: ${{ secrets.SITEMAP_URL_TEST }} - ES_URL: ${{ secrets.ES_URL }} - ESApiKey: ${{ secrets.ESApiKey }} - ES_READ_KEY: ${{ secrets.ES_READ_KEY_TEST }} - ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_TEST }} - ES_ALIAS: ${{ env.ES_ALIAS }}-${{ github.event.pull_request.number }} - ES_INDEX_PREFIX: ${{secrets.ES_INDEX_PREFIX_TEST}} - ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_TEST}} - LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_TEST}} - - name: Deploy to Netlify (preview) - if: github.ref_name!='main' - uses: nwtgck/actions-netlify@v3 # - with: - production-deploy: false - deploy-message: https://github.com/UCLALibrary/library-website-nuxt/pull/${{ github.event.pull_request.number }} - alias: deploy-preview-${{ github.event.pull_request.number }} - github-token: ${{ secrets.GITHUB_TOKEN }} - overwrites-pull-request-comment: true - publish-dir: .output/public - fails-without-credentials: true - github-deployment-environment: ${{ github.event_name }}-${{ github.event.number }} - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - - uses: cypress-io/github-action@v5 - with: - start: pnpm dlx serve .output/public - wait-on: http://127.0.0.1:3000 - wait-on-timeout: 110 - env: - CRAFT_ENDPOINT: ${{ secrets.CRAFT_ENDPOINT }} - LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} - S3_BUCKET: 'https://static.library.ucla.edu/' - SITEMAP_HOST: ${{ secrets.SITEMAP_URL_TEST }} - ESApiKey: ${{ secrets.ESApiKey }} - ES_READ_KEY: ${{ secrets.ES_READ_KEY_TEST }} - ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_TEST }} - ES_ALIAS: ${{ secrets.ES_ALIAS_TEST }} - ES_INDEX_PREFIX: ${{ secrets.ES_INDEX_PREFIX_TEST }} - ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_TEST}} - LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_TEST}} - - name: Deploy to Netlify (merged) - if: github.ref_name=='main' - uses: nwtgck/actions-netlify@v3 # - with: - production-deploy: true - deploy-message: https://github.com/UCLALibrary/library-website-nuxt/commit/${{ github.sha }} - github-token: ${{ secrets.GITHUB_TOKEN }} - publish-dir: .output/public - fails-without-credentials: true - github-deployment-environment: production - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + - uses: actions/checkout@v3 + - uses: ./.github/workflows/setup-workspace + - name: Cache built static site + uses: actions/cache@v3 + with: + path: ./dist + key: nuxt-site-${{ github.sha }} + - name: Sets env vars for PR preview + run: | + echo "ES_INDEX=${{secrets.ES_INDEX_TEST}}-deploy-preview" >> $GITHUB_ENV + if: github.ref_name!='main' + - name: Sets env vars for main merge + run: | + echo "ES_INDEX=${{secrets.ES_INDEX_TEST}}" >> $GITHUB_ENV + if: github.ref_name=='main' + - run: npm run generate + env: + CRAFT_ENDPOINT: ${{ secrets.CRAFT_ENDPOINT }} + LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} + S3_BUCKET: "https://static.library.ucla.edu/" + SITEMAP_HOST: ${{ secrets.SITEMAP_URL_TEST }} + ES_URL: ${{ secrets.ES_URL }} + ESApiKey: ${{ secrets.ESApiKey }} + ES_READ_KEY: ${{ secrets.ES_READ_KEY_TEST }} + ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_TEST }} + ES_INDEX: ${{ env.ES_INDEX }}-${{ github.event.pull_request.number }} + ES_INDEX_PREFIX: ${{secrets.ES_INDEX_PREFIX_TEST}} + ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_TEST}} + LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_TEST}} + - name: Deploy to Netlify (preview) + if: github.ref_name!='main' + uses: nwtgck/actions-netlify@v2 # + with: + production-deploy: false + deploy-message: https://github.com/UCLALibrary/library-website-nuxt/pull/${{ github.event.pull_request.number }} + alias: deploy-preview-${{ github.event.pull_request.number }} + github-token: ${{ secrets.GITHUB_TOKEN }} + overwrites-pull-request-comment: true + publish-dir: './dist' + fails-without-credentials: true + github-deployment-environment: ${{ github.event_name }}-${{ github.event.number }} + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + - uses: cypress-io/github-action@v3 + with: + start: npm run start + wait-on: http://127.0.0.1:3000 + env: + CRAFT_ENDPOINT: ${{ secrets.CRAFT_ENDPOINT }} + LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} + S3_BUCKET: "https://static.library.ucla.edu/" + SITEMAP_HOST: ${{ secrets.SITEMAP_URL_TEST }} + ESApiKey: ${{ secrets.ESApiKey }} + ES_READ_KEY: ${{ secrets.ES_READ_KEY_TEST }} + ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_TEST }} + ES_INDEX: ${{ secrets.ES_INDEX_TEST }} + ES_INDEX_PREFIX: ${{ secrets.ES_INDEX_PREFIX_TEST }} + ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_TEST}} + LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_TEST}} + - name: Deploy to Netlify (merged) + if: github.ref_name=='main' + uses: nwtgck/actions-netlify@v2 # + with: + production-deploy: true + deploy-message: https://github.com/UCLALibrary/library-website-nuxt/commit/${{ github.sha }} + github-token: ${{ secrets.GITHUB_TOKEN }} + publish-dir: './dist' + fails-without-credentials: true + github-deployment-environment: production + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} diff --git a/.github/workflows/curltest.yml b/.github/workflows/curltest.yml new file mode 100644 index 000000000..b13a863c9 --- /dev/null +++ b/.github/workflows/curltest.yml @@ -0,0 +1,30 @@ +name: Run Curl tests + +on: + workflow_dispatch: + inputs: + indexname: + description: 'Add Index prefix' + required: true + default: 'curl-test' + +concurrency: + group: ci-${{ github.ref_name=='main' && github.sha || github.ref_name }} # Cancel runs for previous version of PR, but not main (after merge). For hacked ternary, see https://github.com/actions/runner/issues/409#issuecomment-727565588 + cancel-in-progress: true + +jobs: + test-curl-action: + name: "Perform REST API request" + runs-on: ubuntu-latest + steps: + - name: "Call API" + uses: indiesdev/curl@v1.1 + with: + url: ${{ secrets.ES_URL }}/${{ secrets.ES_INDEX_PREFIX_TEST }}-${{ github.event.inputs.indexname }}?pretty + headers: '{ "Content-Type": "application/json", "Authorization": "ApiKey ${{ secrets.ES_WRITE_KEY_TEST }}" }' + method: "PUT" + log-response: true + - name: "Use Run" + run: | + curl -X POST "${{ secrets.ES_URL }}/_aliases?pretty" -H 'Content-Type: application/json' -H 'Authorization: ApiKey ${{ secrets.ES_WRITE_KEY_TEST }}' -d' { "actions": [ { "add": { "index": "${{ secrets.ES_INDEX_PREFIX_TEST }}-${{ github.event.inputs.indexname }}", "alias": "${{ secrets.ES_INDEX_TEST }}-deploy-preview" } } ] } ' + diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 000000000..60ceb9e20 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,16 @@ +# .github/workflows/e2e.yml +# test the deployed Netlify site +name: e2e +on: + deployment: +jobs: + show-event: + runs-on: ubuntu-20.04 + steps: + - run: echo "Testing netlify url " + - name: Dump entire event + env: + EVENT: ${{ toJson(github.event) }} + run: echo "$EVENT" + - run: echo "{{ github.event.node.latestStatus.environmentUrl }}" + diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml index b1c3cd397..5020a7164 100644 --- a/.github/workflows/lint-pr.yml +++ b/.github/workflows/lint-pr.yml @@ -1,4 +1,4 @@ -name: Lint PR +name: "Lint PR" on: pull_request: diff --git a/.github/workflows/manual-site-build.yml b/.github/workflows/manual-site-build.yml index 5af8f98a3..3f97eaf56 100644 --- a/.github/workflows/manual-site-build.yml +++ b/.github/workflows/manual-site-build.yml @@ -1,17 +1,17 @@ -name: Manually rebuild and deploy static site +name: Manually rebuild and deploy the static site on: workflow_dispatch: inputs: environment: - description: Environment + description: 'Environment' required: true type: choice options: - - test - - stage - - prod - default: test + - test + - stage + - prod + default: 'test' concurrency: group: deploy-${{ github.event.inputs.environment }} @@ -19,7 +19,7 @@ concurrency: jobs: nuxt-deploy: - name: Static Generation build + name: Static Generation build runs-on: ubuntu-latest timeout-minutes: 20 steps: @@ -28,7 +28,7 @@ jobs: - name: Cache built static site uses: actions/cache@v3 with: - path: .output/public + path: ./dist key: nuxt-site-${{ github.sha }} - name: Sets env vars for test run: | @@ -37,7 +37,7 @@ jobs: echo "NETLIFY_SITE_ID=${{secrets.NETLIFY_SITE_ID}}" >> $GITHUB_ENV echo "ES_READ_KEY=${{secrets.ES_READ_KEY_TEST}}" >> $GITHUB_ENV echo "ES_WRITE_KEY=${{secrets.ES_WRITE_KEY_TEST}}" >> $GITHUB_ENV - echo "ES_ALIAS=${{secrets.ES_ALIAS_TEST}}" >> $GITHUB_ENV + echo "ES_INDEX=${{secrets.ES_INDEX_TEST}}" >> $GITHUB_ENV echo "ES_INDEX_PREFIX=${{secrets.ES_INDEX_PREFIX_TEST}}" >> $GITHUB_ENV echo "LIBGUIDES_ES_INDEX=${{secrets.LIBGUIDES_ES_INDEX_TEST}}" >> $GITHUB_ENV echo "ES_TEMP_INDEX_PREFIX_LIBGUIDES=${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_TEST}}" >> $GITHUB_ENV @@ -49,7 +49,7 @@ jobs: echo "NETLIFY_SITE_ID=${{secrets.NETLIFY_STAGE_LIBRARY_SITE_ID}}" >> $GITHUB_ENV echo "ES_READ_KEY=${{secrets.ES_READ_KEY_STAGE}}" >> $GITHUB_ENV echo "ES_WRITE_KEY=${{secrets.ES_WRITE_KEY_STAGE}}" >> $GITHUB_ENV - echo "ES_ALIAS=${{secrets.ES_ALIAS_STAGE}}" >> $GITHUB_ENV + echo "ES_INDEX=${{secrets.ES_INDEX_STAGE}}" >> $GITHUB_ENV echo "ES_INDEX_PREFIX=${{secrets.ES_INDEX_PREFIX_STAGE}}" >> $GITHUB_ENV echo "LIBGUIDES_ES_INDEX=${{secrets.LIBGUIDES_ES_INDEX_STAGE}}" >> $GITHUB_ENV echo "ES_TEMP_INDEX_PREFIX_LIBGUIDES=${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_STAGE}}" >> $GITHUB_ENV @@ -61,34 +61,34 @@ jobs: echo "NETLIFY_SITE_ID=${{secrets.NETLIFY_PROD_LIBRARY_SITE_ID}}" >> $GITHUB_ENV echo "ES_READ_KEY=${{secrets.ES_READ_KEY_PROD}}" >> $GITHUB_ENV echo "ES_WRITE_KEY=${{secrets.ES_WRITE_KEY_PROD}}" >> $GITHUB_ENV - echo "ES_ALIAS=${{secrets.ES_ALIAS_PROD}}" >> $GITHUB_ENV + echo "ES_INDEX=${{secrets.ES_INDEX_PROD}}" >> $GITHUB_ENV echo "ES_INDEX_PREFIX=${{secrets.ES_INDEX_PREFIX_PROD}}" >> $GITHUB_ENV echo "LIBGUIDES_ES_INDEX=${{secrets.LIBGUIDES_ES_INDEX_PROD}}" >> $GITHUB_ENV echo "ES_TEMP_INDEX_PREFIX_LIBGUIDES=${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_PROD}}" >> $GITHUB_ENV if: github.event.inputs.environment == 'prod' - - run: pnpm run generate + - run: npm run generate env: CRAFT_ENDPOINT: ${{env.CRAFT_ENDPOINT}} - S3_BUCKET: 'https://static.library.ucla.edu/' + S3_BUCKET: "https://static.library.ucla.edu/" SITEMAP_HOST: ${{env.SITEMAP_HOST}} ES_URL: ${{ secrets.ES_URL }} ESApiKey: ${{ secrets.ESApiKey }} LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} ES_READ_KEY: ${{env.ES_READ_KEY}} ES_WRITE_KEY: ${{env.ES_WRITE_KEY}} - ES_ALIAS: ${{env.ES_ALIAS}} + ES_INDEX: ${{env.ES_INDEX}} ES_INDEX_PREFIX: ${{env.ES_INDEX_PREFIX}} ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES}} LIBGUIDES_ES_INDEX: ${{env.LIBGUIDES_ES_INDEX}} - name: Deploy to Netlify - uses: nwtgck/actions-netlify@v3 # + uses: nwtgck/actions-netlify@v2 # with: production-deploy: true - deploy-message: https://github.com/UCLALibrary/library-website-nuxt/commit/${{ github.sha }} + deploy-message: https://github.com/UCLALibrary/meap-website-nuxt/commit/${{ github.sha }} github-token: ${{ secrets.GITHUB_TOKEN }} - publish-dir: .output/public + publish-dir: "./dist" fails-without-credentials: true github-deployment-environment: production env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + NETLIFY_SITE_ID: ${{ env.NETLIFY_SITE_ID }} diff --git a/.github/workflows/nuxt3x.yml b/.github/workflows/nuxt3x.yml new file mode 100644 index 000000000..75b64ae11 --- /dev/null +++ b/.github/workflows/nuxt3x.yml @@ -0,0 +1,89 @@ +name: nuxt3.x static site on stage + +on: + workflow_dispatch: + inputs: + branch: + description: Branch to deploy + required: true + default: nuxt3.x + type: string + +concurrency: + group: deploy-stage + cancel-in-progress: true + +jobs: + nuxt-deploy: + name: Static Generation build + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.inputs.branch }} + - uses: pnpm/action-setup@v2 + with: + version: 8 + run_install: | + - recursive: true + args: [--frozen-lockfile, --strict-peer-dependencies] + - args: [--global, gulp, prettier, typescript] + - name: Get pnpm store directory + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + + - uses: actions/cache@v3 + name: Setup pnpm cache + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + shell: bash + run: pnpm install + - name: Cache built static site + uses: actions/cache@v3 + with: + path: .output/public + key: nuxt-site-${{ github.sha }} + - name: Sets env vars for stage + run: | + echo "CRAFT_ENDPOINT=${{secrets.CRAFT_PROD_ENDPOINT}}" >> $GITHUB_ENV + echo "SITEMAP_HOST=${{secrets.SITEMAP_URL_STAGE}}" >> $GITHUB_ENV + echo "NETLIFY_SITE_ID=${{secrets.NETLIFY_STAGE_LIBRARY_SITE_ID}}" >> $GITHUB_ENV + echo "ES_READ_KEY=${{secrets.ES_READ_KEY_STAGE}}" >> $GITHUB_ENV + echo "ES_WRITE_KEY=${{secrets.ES_WRITE_KEY_STAGE}}" >> $GITHUB_ENV + echo "ES_ALIAS=${{secrets.ES_ALIAS_STAGE}}" >> $GITHUB_ENV + echo "ES_INDEX_PREFIX=${{secrets.ES_INDEX_PREFIX_STAGE}}" >> $GITHUB_ENV + echo "LIBGUIDES_ES_INDEX=${{secrets.LIBGUIDES_ES_INDEX_STAGE}}" >> $GITHUB_ENV + echo "ES_TEMP_INDEX_PREFIX_LIBGUIDES=${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_STAGE}}" >> $GITHUB_ENV + - run: pnpm run generate + env: + CRAFT_ENDPOINT: ${{env.CRAFT_ENDPOINT}} + S3_BUCKET: 'https://static.library.ucla.edu/' + SITEMAP_HOST: ${{env.SITEMAP_HOST}} + ES_URL: ${{ secrets.ES_URL }} + ESApiKey: ${{ secrets.ESApiKey }} + LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} + ES_READ_KEY: ${{env.ES_READ_KEY}} + ES_WRITE_KEY: ${{env.ES_WRITE_KEY}} + ES_ALIAS: ${{env.ES_ALIAS}} + ES_INDEX_PREFIX: ${{env.ES_INDEX_PREFIX}} + ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{env.ES_TEMP_INDEX_PREFIX_LIBGUIDES}} + LIBGUIDES_ES_INDEX: ${{env.LIBGUIDES_ES_INDEX}} + - name: Deploy to Netlify + uses: nwtgck/actions-netlify@v3 + with: + production-deploy: true + deploy-message: https://github.com/UCLALibrary/library-website-nuxt/commit/${{ github.sha }} + github-token: ${{ secrets.GITHUB_TOKEN }} + publish-dir: .output/public + fails-without-credentials: true + github-deployment-environment: production + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ env.NETLIFY_SITE_ID }} diff --git a/.github/workflows/on-release.yml b/.github/workflows/on-release.yml index effc4b858..6b17b67d9 100644 --- a/.github/workflows/on-release.yml +++ b/.github/workflows/on-release.yml @@ -2,10 +2,10 @@ name: On release on: release: - types: [published] + types: [ published ] env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: set-tag: @@ -20,36 +20,37 @@ jobs: # TODO: invoke auto-build.yml instead deploy: name: Netlify deploy + needs: set-tag runs-on: ubuntu-latest timeout-minutes: 20 steps: - - uses: actions/checkout@v3 - with: - ref: production - - uses: ./.github/workflows/setup-workspace - - run: npm run generate - env: - CRAFT_ENDPOINT: ${{ secrets.CRAFT_PROD_ENDPOINT }} - LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} - S3_BUCKET: 'https://static.library.ucla.edu/' - SITEMAP_HOST: ${{ secrets.SITEMAP_URL_PROD }} - ES_URL: ${{ secrets.ES_URL }} - ESApiKey: ${{ secrets.ESApiKey }} - ES_READ_KEY: ${{ secrets.ES_READ_KEY_PROD }} - ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_PROD }} - ES_ALIAS: ${{ secrets.ES_ALIAS_PROD }} - ES_INDEX_PREFIX: ${{ secrets.ES_INDEX_PREFIX_PROD }} - ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_PROD}} - LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_PROD}} - - name: Deploy to Netlify on release - uses: nwtgck/actions-netlify@v3 # - with: - production-deploy: true - deploy-message: https://github.com/UCLALibrary/library-website-nuxt/commit/${{ github.sha }} - github-token: ${{ secrets.GITHUB_TOKEN }} - publish-dir: .output/public - fails-without-credentials: true - github-deployment-environment: production - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_PROD_LIBRARY_SITE_ID }} + - uses: actions/checkout@v3 + with: + ref: production + - uses: ./.github/workflows/setup-workspace + - run: npm run generate + env: + CRAFT_ENDPOINT: ${{ secrets.CRAFT_PROD_ENDPOINT }} + LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} + S3_BUCKET: "https://static.library.ucla.edu/" + SITEMAP_HOST: ${{ secrets.SITEMAP_URL_PROD }} + ES_URL: ${{ secrets.ES_URL }} + ESApiKey: ${{ secrets.ESApiKey }} + ES_READ_KEY: ${{ secrets.ES_READ_KEY_PROD }} + ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_PROD }} + ES_INDEX: ${{ secrets.ES_INDEX_PROD }} + ES_INDEX_PREFIX: ${{ secrets.ES_INDEX_PREFIX_PROD }} + ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_PROD}} + LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_PROD}} + - name: Deploy to Netlify on release + uses: nwtgck/actions-netlify@v2 # + with: + production-deploy: true + deploy-message: https://github.com/UCLALibrary/library-website-nuxt/commit/${{ github.sha }} + github-token: ${{ secrets.GITHUB_TOKEN }} + publish-dir: './dist' + fails-without-credentials: true + github-deployment-environment: production + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_PROD_LIBRARY_SITE_ID }} diff --git a/.github/workflows/percy.yml b/.github/workflows/percy.yml index 47a27e04b..2fe86b297 100644 --- a/.github/workflows/percy.yml +++ b/.github/workflows/percy.yml @@ -1,52 +1,45 @@ -name: Submit screenshots to Percy for visual regression testing. +name: Submit screenshots to Percy for visual regression testing. on: push: - branches: [main] + branches: [ main ] workflow_dispatch: inputs: {} jobs: percy-integration: - name: Percy - Nuxt3.x Site + name: Percy - Nuxt Site runs-on: ubuntu-latest timeout-minutes: 20 steps: - - uses: actions/checkout@v3 - - uses: ./.github/workflows/setup-workspace - - name: Sets env vars for PR preview - run: | - echo "ES_ALIAS=${{secrets.ES_ALIAS_TEST}}-percy-tests-${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV - if: github.ref_name!='main' - - name: Sets env vars for main merge - run: | - echo "ES_ALIAS=${{secrets.ES_ALIAS_TEST}}" >> $GITHUB_ENV - if: github.ref_name=='main' - - run: pnpm run generate - if: steps.cache-nuxt.outputs.cache-hit != 'true' - env: - CRAFT_ENDPOINT: ${{ secrets.CRAFT_ENDPOINT }} - LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} - S3_BUCKET: 'https://static.library.ucla.edu/' - ES_URL: ${{ secrets.ES_URL }} - ESApiKey: ${{ secrets.ESApiKey }} - ES_READ_KEY: ${{ secrets.ES_READ_KEY_TEST }} - ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_TEST }} - ES_ALIAS: ${{ env.ES_ALIAS }} - ES_INDEX_PREFIX: ${{secrets.ES_INDEX_PREFIX_TEST}} - ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_TEST}} - LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_TEST}} - - name: Install pnpm - uses: pnpm/action-setup@v2 - with: - version: 8 - - uses: cypress-io/github-action@v5 - with: - start: pnpm dlx serve .output/public - install: false - command-prefix: 'percy exec -- pnpx' - wait-on: http://localhost:3000 - wait-on-timeout: 110 - env: - PERCY_TOKEN: ${{ secrets.PERCY_TOKEN_E2E }} - + - uses: actions/checkout@v3 + - uses: ./.github/workflows/setup-workspace + - name: Sets env vars for PR preview + run: | + echo "ES_INDEX=${{secrets.ES_INDEX_TEST}}-percy-tests-${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV + if: github.ref_name!='main' + - name: Sets env vars for main merge + run: | + echo "ES_INDEX=${{secrets.ES_INDEX_TEST}}" >> $GITHUB_ENV + if: github.ref_name=='main' + - run: npm run generate + if: steps.cache-nuxt.outputs.cache-hit != 'true' + env: + CRAFT_ENDPOINT: ${{ secrets.CRAFT_ENDPOINT }} + LIBCAL_ENDPOINT: ${{ secrets.LIBCAL_ENDPOINT }} + S3_BUCKET: "https://static.library.ucla.edu/" + ES_URL: ${{ secrets.ES_URL }} + ESApiKey: ${{ secrets.ESApiKey }} + ES_READ_KEY: ${{ secrets.ES_READ_KEY_TEST }} + ES_WRITE_KEY: ${{ secrets.ES_WRITE_KEY_TEST }} + ES_INDEX: ${{ env.ES_INDEX }} + ES_INDEX_PREFIX: ${{secrets.ES_INDEX_PREFIX_TEST}} + ES_TEMP_INDEX_PREFIX_LIBGUIDES: ${{secrets.ES_TEMP_INDEX_PREFIX_LIBGUIDES_TEST}} + LIBGUIDES_ES_INDEX: ${{secrets.LIBGUIDES_ES_INDEX_TEST}} + - uses: cypress-io/github-action@v3 + with: + start: npm run start + command-prefix: 'percy exec -- npx' + wait-on: http://localhost:3000 + env: + PERCY_TOKEN: ${{ secrets.PERCY_TOKEN_E2E }} diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 9378a192c..ddbe24955 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -12,7 +12,7 @@ permissions: jobs: draft-release-notes: permissions: - contents: write # for release-drafter/release-drafter to create a github release + contents: write # for release-drafter/release-drafter to create a github release runs-on: ubuntu-latest steps: - uses: release-drafter/release-drafter@4d1215c66d92eba9557a55da848b2281a1a19235 # v5.13.0 diff --git a/.github/workflows/setup-workspace/action.yml b/.github/workflows/setup-workspace/action.yml index dbaf2c8fa..7bac536e4 100644 --- a/.github/workflows/setup-workspace/action.yml +++ b/.github/workflows/setup-workspace/action.yml @@ -1,4 +1,4 @@ -name: Set up Workspace +name: 'Set up Workspace' description: 'Checks out repository, installs correct version of node and npm dependencies.' # inputs: # who-to-greet: # id of input @@ -10,28 +10,16 @@ description: 'Checks out repository, installs correct version of node and npm de # description: "Random number" # value: ${{ steps.random-number-generator.outputs.random-id }} runs: - using: composite + using: "composite" steps: - - uses: pnpm/action-setup@v2 + - uses: actions/setup-node@v3 with: - version: 8 - run_install: | - - recursive: true - args: [--frozen-lockfile, --strict-peer-dependencies] - - args: [--global, gulp, prettier, typescript] - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - uses: actions/cache@v3 - name: Setup pnpm cache + node-version: '16.15.0' + - name: Persist npm cache + uses: actions/cache@v3 with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- - - - name: Install dependencies + path: ~/.npm + key: npm-${{ hashFiles('package-lock.json') }} + restore-keys: npm- + - run: npm ci shell: bash - run: pnpm install diff --git a/.gitignore b/.gitignore index b78734d3f..785127612 100644 --- a/.gitignore +++ b/.gitignore @@ -70,7 +70,6 @@ typings/ # Nuxt generate dist -.output # vuepress build output .vuepress/dist @@ -80,7 +79,7 @@ dist # IDE .idea - +.vscode # Service worker sw.* @@ -98,10 +97,3 @@ storybook-static # Cypress cypress/fixtures/example.json cypress/screenshots -cypress/downloads - -# local component testing -page/component.vue -pages/components.vue -data/mock -data/db/tempIndex diff --git a/.npmrc b/.npmrc index c483022c0..b6f27f135 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1 @@ -shamefully-hoist=true \ No newline at end of file +engine-strict=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 49e99382d..000000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "recommendations": [ - "dbaeumer.vscode-eslint", - "vue.volar" - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index c94743877..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - // Disable the default formatter - "prettier.enable": false, - "html.format.wrapAttributes": "force-expand-multiline", - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.fixAll.eslint": "explicit", - "source.organizeImports": "never" - }, - "eslint.options": { - "extensions": [ - ".js", - ".vue" - ] - }, - // Silent the stylistic rules in you IDE, but still auto fix them - "eslint.rules.customizations": [ - { - "rule": "@stylistic/*", - "severity": "off" - }, - { - "rule": "style*", - "severity": "off" - }, - { - "rule": "*-indent", - "severity": "off" - }, - { - "rule": "*-spacing", - "severity": "off" - }, - { - "rule": "*-spaces", - "severity": "off" - }, - { - "rule": "*-order", - "severity": "off" - }, - { - "rule": "*-dangle", - "severity": "off" - }, - { - "rule": "*-newline", - "severity": "off" - }, - { - "rule": "*quotes", - "severity": "off" - }, - { - "rule": "*semi", - "severity": "off" - } - ], - "vue.splitEditors.layout.right": [ - "template", - "customBlocks" - ], - // The following is optional. - // It's better to put under project setting `.vscode/settings.json` - // to avoid conflicts with working with different eslint configs - // that does not support all formats. - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "typescriptreact", - "vue", - "html", - "markdown", - "json", - "jsonc", - "yaml" - ], - "[vue]": { - "editor.defaultFormatter": "Vue.volar" - }, - "[javascript]": { - "editor.defaultFormatter": "rvest.vs-code-prettier-eslint" - }, - "diffEditor.ignoreTrimWhitespace": false, - "editor.tabSize": 2, -} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..751687205 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM node:14.15.4 + +# create destination directory + +WORKDIR /usr/local + +COPY package*.json ./ +RUN npm ci +ENV PATH=/usr/local/node_modules/.bin:$PATH + +WORKDIR /usr/local/app + +EXPOSE 3000 +EXPOSE 3003 + +ENV NUXT_HOST=0.0.0.0 +ENV NUXT_PORT=3000 + +CMD [ "npm", "run", "dev" ] diff --git a/README.md b/README.md index 595dda927..c713d6893 100644 --- a/README.md +++ b/README.md @@ -1,63 +1,246 @@ -# Nuxt 3 Minimal Starter +# UCLA Library Website -Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. +A [Nuxt](https://nuxtjs.org/) powered frontend website for the UCLA Library. -## Setup +## Build Setup -Make sure to install the dependencies: +
SET UP THE NUXT SITE + +**This is a Nuxt site, it builds and deploys like any other Nuxt project.** + +Works best with the [fuxt-backend](https://github.com/funkhaus/fuxt-backend) WordPress theme as the backend. + +**First step:** Duplicate and rename `.example.env` to `.env`. Define any vars environment needed there. ```bash -# npm -npm install +# install dependencies +$ npm install + +# serve with hot reload at localhost:3000 +$ npm run dev -# pnpm -pnpm install +# serve with hot reload Storybook at localhost:3003 +$ npm run storybook + +# build for production and launch server +$ npm run build +$ npm start + +# build Storybook for production +$ npx nuxt storybook build + +# generate static nuxt site +$ npm run generate -# yarn -yarn install ``` -## Development Server +
-Start the development server on `http://localhost:3000`: +--- -```bash -# npm -npm run dev +## Designs - Figma -# pnpm -pnpm run dev +- [DESIGNS](https://www.figma.com/file/ZT2qWKTlOxfhr1QUS2rFPL/UI-Pattern-Library-(Client-Facing)-Final?node-id=0%) -# yarn -yarn dev -``` +- [DESIGN TOKENS](https://www.figma.com/file/EKazRIMP4B15bD16UDbOwR/UCLA-Library-Design-System?node-id=117%3A5562) -## Production +
UX GUIDE -Build the application for production: +--- -```bash -# npm -npm run build +### STEPS -# pnpm -pnpm run build +*(font-size/line-height/letter-spacing)* -# yarn -yarn build -``` +#### `@include step-5;` ++ **page-title** + + *Karbon Regular* + + Desktop - 84px / 100em / 0em + + Tablet - 50px/100em/0em + + Mobile - 36px/100em/0em -Locally preview production build: +#### `@include step-4;` ++ **section-heading** + + *Karbon Regular* + + Desktop - 63px/125em/0em + + Tablet - 42px/125em/0em + + Mobile - 32px/125em/0em -```bash -# npm -npm run preview +#### `@include step-3;` ++ **subheading** + + *Karbon Regular* + + Desktop - 48px/125em/0em + + Tablet - 34px/125em/0em + + Mobile - 28px/125em/0em -# pnpm -pnpm run preview +#### `@include step-2;` ++ **subheading-small** + + *Karbon Medium* + + Desktop - 36px/120em/0.25em + + Tablet - 28px/125em/0em + + Mobile - 28px/125em/0em -# yarn -yarn preview -``` +#### `@include step-1;` ++ **subtitle** + + *Karbon Medium* + + Desktop - 26px/125em/0em + + Tablet - 24px/125em/0em + + Mobile - 22px/125em/0em + +--- + +### HEADINGS + +All Heading tags are `var(--font-primary)` (Karbon) + +#### `

` ++ `font-size: var(--step-5);` (84px/50px/36px) ++ `font-weight: 400;` + +#### `

` ++ `font-size: var(--step-4);` (63px/42px/32px) ++ `font-weight: 400;` + +#### `

` ++ `font-size: var(--step-3);` (48px/34px/28px) ++ `font-weight: 400;` + +#### `

` ++ `font-size: var(--step-3);` (48px/34px/28px) ++ `font-weight: 500;` + +#### `
` ++ `font-size: var(--step-3);` (48px/34px/28px) ++ `font-weight: 500;` + +#### `
` ++ `font-size: 20px;` ++ `font-weight: 500;` + +--- + +### FONTS + `var(--font-primary)` Karbon + `var(--font-secondary)`Proxima Nova + +--- + +
+ +--- + +## Helpful Documentation & Tools + +
DOCS & TOOLS + ++ [ORG Chart](https://jira.library.ucla.edu/secure/attachment/72225/lib_org_chart.txt) ++ [Current UCLA Library Site](https://www.library.ucla.edu/) ++ [Team - Youtube](https://www.youtube.com/playlist?list=PLD6zTMdoCybJKdTBgm0UesCY_sTMOSOAn) ++ [Clippy](https://bennettfeely.com/clippy/) ++ [Flexy Boxes](https://the-echoplex.net/flexyboxes/) ++ [Nth Child Calculator](https://www.nealgrosskopf.com/tech/resources/80/) ++ [Lorem Ipsum](https://loremipsum.io/) + ++ [Nuxt Docs](https://nuxtjs.org/docs/concepts/nuxt-lifecycle/) + + [Funkhaus Components](https://github.com/funkhaus/fh-components) ++ [Craft Docs](https://craftcms.com/docs/3.x/project-config.html) + + [Craft Plugin Store](https://plugins.craftcms.com/) + + [Redactor](https://imperavi.com/redactor/docs/) + + [Feed Me](https://docs.craftcms.com/feed-me/v4/) + + [Navigation](https://verbb.io/craft-plugins/navigation/docs/get-started/installation-setup) + + [Neo](https://github.com/spicywebau/craft-neo/wiki) ++ SCRIPTS + + `npm run dev` : "nuxt", + + `npm run build` : "nuxt build", + + `npm run generate` : "nuxt generate", + + `npm run start` : "nuxt start", + + `npm run storybook` : "nuxt storybook --port 3009", + + `npm run storybook-build` : "nuxt storybook build", + + `npm run cypress` : "cypress open", + + `npm run cypress-run` : "cypress run", + + `npm run lint` : "eslint ./", + + `npm run lint-fix` : "eslint --fix ./", + + `npm run percy` : "percy storybook http://localhost:3003", + + `npm run percy-static` : "percy storybook ./storybook-static" + +
+ +--- + +## Routes + +
GET HELP + +| Menu name | URL | Figma template name | +| ----------------------------- | ------------------------------------------------- | ------------------------- | +| Borrowing Books and Equipment | /services-resources/borrowing-books-and-equipment | Help Topic - Landing Page | +| Research | /services-resources/research | Help Topic - Landing Page | +| Teaching | ? | ? | +| Remote Access | ? | ? | +| Find & Reserve a Space | ? | ? | +| View all services & Resources | ? | ? | + +
+ +
VISIT + +| Menu name | URL | Figma template name | +| -------------------------- | ----------------- | ----------------------------------------------------------------------------------- | +| Location & Hours | ? | ? | +| Exhibits & Upcoming Events | /events-exhibits/ | All Exhibits & Upcoming Events - Listing Page (General Template, list view default) | +| Our Collections | ? | ? | +| For the General Public | ? | ? | + +
+ +
ABOUT + +| Menu name | URL | Figma template name | +| ---------------------------- | --- | ------------------- | +| About the UCLA Libraries | ? | ? | +| Library News | ? | ? | +| Staff Directory | ? | ? | +| Student Opportunities | ? | ? | +| Awards, Fellowships & Grants | ? | ? | + +
+ +
OTHERS + +| Menu name | URL | Figma template name | +| ---------------- | --- | ------------------- | +| Location & Hours | ? | ? | + +
+ +--- + +## Redirects file + +The list of redirects is maintained in a google spreadsheet; it's contents must exported to the [Netlify _redirects file](https://docs.netlify.com/routing/redirects/) + +Exporting redirects file to netlify: +1. Go to google spreadsheet, File > Download > CSV +2. Save in MEAP repo as `static/_redirects` +3. delete header row (or comment out with #) +4. delete any redirects from a URL to itself (currently only the first two, `/` and `/about`, but you can find them with the regex `^(.+)\s+\1\n`). It looks like you can probably skip this step and Netlify will figure things out, but it won't hurt +5. remove `https://www.library.ucla.edu` from all URLs +6. find/replace all `,` separators with spaces (I used 4 - ` `) +7. delete all + +## LibCal Auth Procedure + +
LIBCAL + +1. At start of build, we need to exchange secret for token +2. Token needs to be given to client side, so that search works + +
+ +## If your repo is Commitizen friendly: + +Simply use git cz or just cz instead of git commit when committing. + +When you're working in a Commitizen-friendly repository, you'll be prompted to fill in any required fields, and your commit messages will be formatted according to the standards defined by project maintainers. -Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. +[![Add and commit with Commitizen](https://github.com/commitizen/cz-cli/raw/master/meta/screenshots/add-commit.png)](https://github.com/commitizen/cz-cli/raw/master/meta/screenshots/add-commit.png) diff --git a/app.vue b/app.vue deleted file mode 100644 index b171e28b7..000000000 --- a/app.vue +++ /dev/null @@ -1,20 +0,0 @@ - - diff --git a/app/router.options.ts b/app/router.options.ts deleted file mode 100644 index aaaf7f999..000000000 --- a/app/router.options.ts +++ /dev/null @@ -1,69 +0,0 @@ -import type { RouterConfig } from '@nuxt/schema' -import type { RouterScrollBehavior, RouteLocationNormalized } from 'vue-router' -import { nextTick } from 'vue' -import { useNuxtApp } from '#imports' -// @ts-ignore -import { appPageTransition as defaultPageTransition } from '#build/nuxt.config.mjs' - -type ScrollPosition = Awaited> - -// Default router options -// https://router.vuejs.org/api/#routeroptions -export default { - scrollBehavior(to, from, savedPosition) { - const nuxtApp = useNuxtApp() - - // By default when the returned position is falsy or an empty object, vue-router will retain the current scroll position - // savedPosition is only available for popstate navigations (back button) - let position: ScrollPosition = savedPosition || undefined - - // Scroll to top if route is changed by default - if (!position && from && to && to.meta.scrollToTop !== false && _isDifferentRoute(from, to)) { - position = { left: 0, top: 0 } - } - - // Hash routes on the same page, no page hook is fired so resolve here - if (to.path === from.path) { - if (from.hash && !to.hash) { - return { left: 0, top: 0 } - } - if (to.hash) { - return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: 'smooth' } - } - } - - // Wait for `page:transition:finish` or `page:finish` depending on if transitions are enabled or not - const hasTransition = (route: RouteLocationNormalized) => !!(route.meta.pageTransition ?? defaultPageTransition) - const hookToWait = (hasTransition(from) && hasTransition(to)) ? 'page:transition:finish' : 'page:finish' - return new Promise((resolve) => { - nuxtApp.hooks.hookOnce(hookToWait, async () => { - await nextTick() - if (to.hash) { - position = { el: to.hash, top: _getHashElementScrollMarginTop(to.hash) } - } - resolve(position) - }) - }) - } -} - -function _getHashElementScrollMarginTop(selector: string): number { - try { - const elem = document.querySelector(selector) - if (elem) { - return parseFloat(getComputedStyle(elem).scrollMarginTop) - } - } catch { } - return 0 -} - -function _isDifferentRoute(a: RouteLocationNormalized, b: RouteLocationNormalized): boolean { - const samePageComponent = a.matched[0] === b.matched[0] - if (!samePageComponent) { - return true - } - if (samePageComponent && JSON.stringify(a.params) !== JSON.stringify(b.params)) { - return true - } - return false -} diff --git a/app/router.scrollBehavior.js b/app/router.scrollBehavior.js new file mode 100644 index 000000000..65a2c421b --- /dev/null +++ b/app/router.scrollBehavior.js @@ -0,0 +1,71 @@ +export default async function (to, from, savedPosition) { + console.log("ScrollBehaviour to:"+JSON.stringify(to)) + console.log("ScrollBehaviour from:"+JSON.stringify(from)) + console.log("ScrollBehaviour savedPosition:"+JSON.stringify(savedPosition)) + + + const findEl = async (hash, x = 0) => { + return ( + document.querySelector(hash) || + new Promise((resolve) => { + if (x > 0) { + return resolve(document.querySelector("#app")) + } + setTimeout(() => { + resolve(findEl(hash, 1)) + }, 1000) + }) + ) + } + const notListingPage = (fullPath) =>{ + switch (fullPath) { + case "/about/staff": + return false + + case "/about/news": + return false + + case "/visit/locations": + return false + case "/help/services-resources": + return false + case "/give/endowments": + return false + case "/about/programs": + return false + case "/collections/explore": + return false + case "/visit/events-exhibitions": + return false + case "/search-site": + return false + + default: + return true + + } + + } + + if (to.hash) { + console.log("to hash:"+ to.hash) + const el = await findEl(to.hash) + if(el) { + if ("scrollBehavior" in document.documentElement.style) { + console.log("hash path hit scroll to") + return window.scrollTo({ top: el.offsetTop, behavior: "smooth" }) + } else { + return window.scrollTo(0, el.offsetTop) + } + } + } else { + if(notListingPage(to.fullPath)) { + if (savedPosition && savedPosition["y"] < 2000) { + return savedPosition + } + } + } + return { x: 0, y: 0, behavior: "smooth" } + +} + diff --git a/assets/styles/global.scss b/assets/styles/global.scss index 8ad839ae9..a379eb125 100644 --- a/assets/styles/global.scss +++ b/assets/styles/global.scss @@ -146,4 +146,4 @@ button { .visually-hidden { @include visually-hidden; -} \ No newline at end of file +} diff --git a/composables/removeEmpties.js b/composables/removeEmpties.js deleted file mode 100644 index 2b0eb488a..000000000 --- a/composables/removeEmpties.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Take a array and removes empty objects - * @param {Array} arr - * @returns {Array} - */ -export function removeEmpties(arr) { - return arr.filter(value => Object.keys(value).length !== 0) -} diff --git a/cypress.config.js b/cypress.config.js index c57a269c8..361759e33 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -1,13 +1,15 @@ -import { defineConfig } from 'cypress' +const { defineConfig } = require('cypress') -export default defineConfig({ - defaultCommandTimeout: 60000, - video: false, - e2e: { - setupNodeEvents(on, config) { - // implement node event listeners here +module.exports = defineConfig({ + defaultCommandTimeout: 60000, + video: false, + e2e: { + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + setupNodeEvents(on, config) { + return require('./cypress/plugins/index.js')(on, config) + }, + baseUrl: 'http://localhost:3000', }, - baseUrl: 'http://localhost:3000' - }, - retries: 2 + retries: 2, }) diff --git a/cypress/.eslintrc.json b/cypress/.eslintrc.json deleted file mode 100644 index 373914272..000000000 --- a/cypress/.eslintrc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": [ - "plugin:cypress/recommended" - ] -} diff --git a/cypress/e2e/articlenewsdetailpage.cy.js b/cypress/e2e/articlenewsdetailpage.cy.js index a7bdc990d..32c03856d 100644 --- a/cypress/e2e/articlenewsdetailpage.cy.js +++ b/cypress/e2e/articlenewsdetailpage.cy.js @@ -1,23 +1,28 @@ -describe('Article Detail page', () => { - it('Visits a News Detail Page', () => { - cy.request({ - url: '/about/news/turtles/', - timeout: 120000, - retryOnStatusCodeFailure: true - }).visit('/about/news/turtles/') +describe("Article Detail page", () => { + it("Visits a News Detail Page", () => { + // the following data will not work in production + cy.request({ + url:'/about/news/turtles', + timeout: 120000, + retryOnStatusCodeFailure: true + }).visit("/about/news/turtles") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'I Like Turtles' - ) - cy.percySnapshot('articlenewsdetailpage', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should( + "contain", + "I Like Turtles" + ) + cy.percySnapshot("articlenewsdetailpage",{ widths: [768, 992, 1200] }) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - cy.request({ url: '/about/news/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/about/news/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/about/news/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/articlenewslistingpage.cy.js b/cypress/e2e/articlenewslistingpage.cy.js index 35f385c1f..47ca82059 100644 --- a/cypress/e2e/articlenewslistingpage.cy.js +++ b/cypress/e2e/articlenewslistingpage.cy.js @@ -1,26 +1,24 @@ -describe('Article News Listing page', () => { - it('Visit the Article News Listing Page', () => { - cy.intercept('/about/news').as('getNews') - cy.visit('/about/news') - cy.wait('@getNews').then(() => { - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-news').should('be.visible') - cy.get('h1.title').should('contain', 'Library News') - cy.get('.search-generic-filter-buttons').find('button').should('have.length', 2) +describe("Article News Listing page", () => { + it("Visit the Article News Listing Page", () => { + cy.visit("/about/news") - cy.get('.search-generic-filter-buttons').find('button').each(($el, index, $list) => { - cy.wrap($el).click() - cy.get('fieldset.base-checkbox-group > ul.list > li.list-item').find('label').should('have.length.greaterThan', 0) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-news").should("be.visible") + cy.get("h1.title").should("contain", "Library News") + cy.get('.search-generic-filter-buttons').find('button').should('have.length', 2) + // eslint-disable-next-line no-unused-vars + cy.get('.search-generic-filter-buttons').find('button').each(($el, index, $list) => { + cy.wrap($el).click() + cy.get("fieldset.base-checkbox-group > ul.list > li.list-item").find("label").should("have.length.greaterThan",0) + }) - cy.percySnapshot('articlenewslistingpage', { widths: [768, 992, 1200] }) + cy.percySnapshot("articlenewslistingpage",{ widths: [768, 992, 1200] }) }) - }) - it('Visit News Article Listing page filter by category', () => { - cy.visit('/about/news?q=&filters=articleCategory.title.keyword:(Featured)') + it("Visit News Article Listing page filter by category", () => { + cy.visit('/about/news?q=&filters=%7B"articleCategory.title.keyword"%3A%5B"Featured"%5D%7D') - cy.get('h2.about-results').should('be.visible') - }) + cy.get ('h2.about-results').should("be.visible") + }) }) diff --git a/cypress/e2e/askuspage.cy.js b/cypress/e2e/askuspage.cy.js index feb1f85f8..cd6ad7019 100644 --- a/cypress/e2e/askuspage.cy.js +++ b/cypress/e2e/askuspage.cy.js @@ -1,12 +1,12 @@ -describe('Ask Us page', () => { - it('Visits a Ask Us Page', () => { - cy.visit('help/services-resources/ask-us') - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-ask-us').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'Ask Us' - ) - cy.percySnapshot('askuspage', { widths: [768, 992, 1200] }) - }) +describe("Ask Us page", () => { + it("Visits a Ask Us Page", () => { + cy.visit("help/services-resources/ask-us") + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-ask-us").should("be.visible") + cy.get("h1.title").should( + "contain", + "Ask Us" + ) + cy.percySnapshot("askuspage",{ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/collectiondetailpage.cy.js b/cypress/e2e/collectiondetailpage.cy.js index 3bbee04f5..fce5f17a0 100644 --- a/cypress/e2e/collectiondetailpage.cy.js +++ b/cypress/e2e/collectiondetailpage.cy.js @@ -1,35 +1,35 @@ -describe('Collection Detail page', () => { - it('Visits a Collection Detail Page', () => { - cy.request({ - url: '/collections/explore/halloween-costumes/', - timeout: 120000, - retryOnStatusCodeFailure: true - }).visit('/collections/explore/halloween-costumes/') +describe("Collection Detail page", () => { + it("Visits a Collection Detail Page", () => { - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-collection-detail').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'TEST - Collection - Halloween Costumes' - ) - cy.get('.page-anchor').scrollIntoView() - cy.get('.page-anchor').should('be.visible') - cy.percySnapshot('collectiondetailpage', { widths: [768, 992, 1200] }) - }) + cy.request({ + url:'/collections/explore/halloween-costumes', + timeout: 120000, + retryOnStatusCodeFailure: true + }).visit("/collections/explore/halloween-costumes") - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - cy.visit('/about/blogs/no_entry', { failOnStatusCode: false }) - cy.request({ - url: '/collections/explore/no_entry', - failOnStatusCode: false, - }) - .its('status') - .should('equal', 404) - // cy.visit('/collections/explore/no_entry') - // cy.get('p.error').should('contain', '404') - // cy.get('h1.error-title').should('contain', 'Page not found') + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-collection-detail").should("be.visible") + cy.get("h1.title").should( + "contain", + "TEST - Collection - Halloween Costumes" + ) + cy.get(".page-anchor").scrollIntoView().should('be.visible') + cy.percySnapshot("collectiondetailpage",{ widths: [768, 992, 1200] }) + }) + + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + /* cy.request({ + url: "/collections/explore/no_entry", + failOnStatusCode: false, + }) + .its("status") + .should("equal", 404)*/ + cy.visit("/collections/explore/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/collectionlistpage.cy.js b/cypress/e2e/collectionlistpage.cy.js index 186abddfe..25410b9ff 100644 --- a/cypress/e2e/collectionlistpage.cy.js +++ b/cypress/e2e/collectionlistpage.cy.js @@ -1,11 +1,10 @@ -describe('Collection Listing page', () => { - it('Visit the Collection Listing Page', () => { - cy.visit('/collections') +describe("Collection Listing page", () => { + it("Visit the Collection Listing Page", () => { + cy.visit("/collections") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-anchor').scrollIntoView() - cy.get('.page-anchor').should('be.visible') - cy.percySnapshot('collectionlistpage', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-anchor").scrollIntoView().should('be.visible') + cy.percySnapshot("collectionlistpage",{ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/collectionsaccesspage.cy.js b/cypress/e2e/collectionsaccesspage.cy.js index 443d2a84a..5b510a587 100644 --- a/cypress/e2e/collectionsaccesspage.cy.js +++ b/cypress/e2e/collectionsaccesspage.cy.js @@ -1,27 +1,24 @@ -describe('Access Collection page', () => { - it('Visit a Access Collection Page', () => { - // prevent cypress 404 errors on slow page load - cy.intercept('/collections/*').as('getCollectionsRoutes') - cy.visit('/collections/access') - cy.wait('@getCollectionsRoutes').then(() => { - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-collections-access').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'Listing - Collections > Access Collections' - ) - cy.percySnapshot('collectionaccesspage', { widths: [768, 992, 1200] }) - }) - }) +describe("Access Collection page", () => { + it("Visit a Access Collection Page", () => { + cy.visit("/collections/access") - it('Search Found', () => { - cy.visit('/collections/access?q=test') - cy.get('.logo-ucla').should('be.visible') - cy.get('input[type=search]').should( - 'have.value', - 'test' - ) - cy.get('h2.about-results').invoke('text').should('not.be.empty') - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-collections-access").should("be.visible") + cy.get("h1.title").should( + "contain", + "Listing - Collections > Access Collections" + ) + cy.percySnapshot("collectionaccesspage",{ widths: [768, 992, 1200] }) + }) + it("Search Found", () => { + cy.visit("/collections/access?q=test") + cy.get(".logo-ucla").should("be.visible") + cy.get("input[type=search]").should( + "have.value", + "test" + ) + cy.get("h2.about-results").invoke("text").should("not.be.empty") + //cy.percySnapshot({ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/collectionsexplorepage.cy.js b/cypress/e2e/collectionsexplorepage.cy.js index f9948f099..c5b2b1af4 100644 --- a/cypress/e2e/collectionsexplorepage.cy.js +++ b/cypress/e2e/collectionsexplorepage.cy.js @@ -1,42 +1,26 @@ -describe('Explore Collection page', () => { - it('Visit a Explore Collection Page', () => { - cy.intercept('/collections/explore').as('getExploreCollections') - cy.visit('/collections/explore') - cy.wait('@getExploreCollections').then(() => { - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-collections-explore').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'Listing - Collections > Explore Collections' - ) - cy.get('.search-generic-filter-buttons').find('button').should('have.length', 2) +describe("Explore Collection page", () => { + it("Visit a Explore Collection Page", () => { + cy.visit("/collections/explore") - cy.get('.search-generic-filter-buttons').find('button').each(($el, index, $list) => { - cy.wrap($el).click() - cy.get('fieldset.base-checkbox-group > ul.list > li.list-item').find('label').should('have.length.greaterThan', 0) - }) - cy.percySnapshot('collectionsexplorepage', { widths: [768, 992, 1200] }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-collections-explore").should("be.visible") + cy.get("h1.title").should( + "contain", + "Listing - Collections > Explore Collections" + ) + cy.get('.search-generic-filter-buttons').find('button').should('have.length', 2) + // eslint-disable-next-line no-unused-vars + cy.get('.search-generic-filter-buttons').find('button').each(($el, index, $list) => { + cy.wrap($el).click() + cy.get("fieldset.base-checkbox-group > ul.list > li.list-item").find("label").should("have.length.greaterThan",0) + }) + cy.percySnapshot("collectionsexplorepage",{ widths: [768, 992, 1200] }) }) - }) - it('Search Found', () => { - cy.intercept('/collections/explore/?*').as('getExploreSearchRoutes') - cy.visit('collections/explore/?q=test', { timeout: 35000 }) - cy.wait('@getExploreSearchRoutes').then(() => { - cy.get('.logo-ucla').should('be.visible') - cy.get('input[type=search]').should( - 'have.value', - 'test' - ) - cy.get('h2.about-results').invoke('text').should('not.be.empty') - cy.percySnapshot('collectionsexplorepage', { widths: [768, 992, 1200] }) - }) - }) - - it('Visit Collections Explore Listing page filter by category', () => { - cy.visit('/collections/explore?q=spool&filters=physicalDigital.keyword:(physical)') + it("Visit Collections Explore Listing page filter by category", () => { + cy.visit('/collections/explore?q=&filters=%7B"subjectAreas.title.keyword"%3A%5B"Arts%20%26%20Music"%5D%7D') - cy.get('h2.about-results').should('be.visible') - }) + cy.get ('h2.about-results').should("be.visible") + }) }) diff --git a/cypress/e2e/endowmentsdetail.cy.js b/cypress/e2e/endowmentsdetail.cy.js index 37aca02db..7ea7a54ae 100644 --- a/cypress/e2e/endowmentsdetail.cy.js +++ b/cypress/e2e/endowmentsdetail.cy.js @@ -1,17 +1,22 @@ -describe('Endowments Detail page', () => { - it('Visits an Endowments Detail Page', () => { - cy.visit('/give/endowments/lifu-wang-chinese-cultural-endowment') +describe("Endowments Detail page", () => { + it("Visits an Endowments Detail Page", () => { + // the following data will not work in production + cy.visit("/give/endowments/lifu-wang-chinese-cultural-endowment") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-endowments-detail').should('be.visible') - cy.get('h1.title').should('contain', 'Lifu Wang') - cy.percySnapshot('endowmentsdetail', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-endowments-detail").should("be.visible") + cy.get("h1.title").should("contain", "Lifu Wang") + cy.percySnapshot("endowmentsdetail",{ widths: [768, 992, 1200] }) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - cy.request({ url: '/give/endowments/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/give/endowments/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/give/endowments/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/endowmentslist.cy.js b/cypress/e2e/endowmentslist.cy.js index dadaf2c16..56d69716e 100644 --- a/cypress/e2e/endowmentslist.cy.js +++ b/cypress/e2e/endowmentslist.cy.js @@ -1,21 +1,12 @@ -describe('Endowments Listing page', () => { - it('Visits the Endowments Listing Page', () => { - // the following data will not work in production - cy.visit('/give/endowments') +describe("Endowments Detail page", () => { + it("Visits an Endowments Detail Page", () => { + // the following data will not work in production + cy.visit("/give/endowments") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-endowment-listing').should('be.visible') - cy.get('h1.title').should('contain', 'Endowments') - cy.percySnapshot('endowmentslist', { widths: [768, 992, 1200] }) - }) - it('Search Found', () => { - cy.visit('/give/endowments?q=lifu') - cy.get('.logo-ucla').should('be.visible') - cy.get('input[type=search]').should( - 'have.value', - 'lifu' - ) - cy.get('h2.about-results').invoke('text').should('not.be.empty') - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-endowment-listing").should("be.visible") + cy.get("h1.title").should("contain", "Endowments") + cy.percySnapshot("endowmentslist",{ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/eventseriesdetail.cy.js b/cypress/e2e/eventseriesdetail.cy.js index 028432a4b..850a652f1 100644 --- a/cypress/e2e/eventseriesdetail.cy.js +++ b/cypress/e2e/eventseriesdetail.cy.js @@ -1,26 +1,30 @@ -describe('Event Series Detail page', () => { - it('Visits an Event Series Detail Page', () => { - // the following data will not work in production - cy.request({ - url: '/visit/events-exhibitions/test-event-series', - timeout: 120000, - retryOnStatusCodeFailure: true - }).visit('/visit/events-exhibitions/test-event-series') +describe("Event Series Detail page", () => { + it("Visits an Event Series Detail Page", () => { + // the following data will not work in production + cy.request({ + url:'/visit/events-exhibitions/test-event-series', + timeout: 120000, + retryOnStatusCodeFailure: true + }).visit("/visit/events-exhibitions/test-event-series") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should('contain', 'Test - Event Series - Side Pie') - cy.percySnapshot('eventseriesdetail', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should("contain", "Test - Event Series - Side Pie") + cy.percySnapshot("eventseriesdetail",{ widths: [768, 992, 1200] }) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - cy.request({ - url: '/visit/events-exhibitions/no_entry', - failOnStatusCode: false, - }) - .its('status') - .should('equal', 404) + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + + /*cy.request({ + url: "/visit/events-exhibitions/no_entry", + failOnStatusCode: false, + }) + .its("status") + .should("equal", 404)*/ + cy.visit("/visit/events-exhibitions/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/eventsexhibitionslist.cy.js b/cypress/e2e/eventsexhibitionslist.cy.js index 7f991abec..16e915759 100644 --- a/cypress/e2e/eventsexhibitionslist.cy.js +++ b/cypress/e2e/eventsexhibitionslist.cy.js @@ -1,22 +1,16 @@ -describe('Events & Exhibitions List page', () => { - it('Visits a Events & Exhibitions List Page', () => { - cy.intercept('/visit/events-exhibitions').as('getEventsRoutes') - cy.visit('/visit/events-exhibitions') - cy.wait('@getEventsRoutes').then(() => { - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-events-exhibits').should('be.visible') - cy.get('h1.title').should('contain', 'Events & Exhibitions') - cy.percySnapshot('eventsexhibitionslist', { widths: [768, 992, 1200] }) +describe("Events & Exhibitions List page", () => { + it("Visits a Events & Exhibitions List Page", () => { + cy.visit("/visit/events-exhibitions", { timeout: 13000 }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + + cy.get(".page-events-exhibits").should("be.visible") + cy.get("h1.title").should("contain", "Events & Exhibitions") + cy.percySnapshot("eventsexhibitionslist",{ widths: [768, 992, 1200] }) }) - }) - it('Visit Events & Exhibitions Listing page filter by event type', () => { - cy.intercept('/visit/events-exhibitions/*').as('getEventsSearchRoutes') - // routeFilters - cy.visit('/visit/events-exhibitions/?q=&filters=past:(yes)+AND+eventType.title.keyword:(Presentation+OR+Screening)', { timeout: 30000 }) - cy.wait('@getEventsSearchRoutes').then(() => { - cy.get('.logo-ucla').should('be.visible') - cy.get('h2.about-results').invoke('text').should('not.be.empty') + it("Visit Events & Exhibitions Listing page filter by event type", () => { + cy.visit('/visit/events-exhibitions/?q&filters=%7B"eventType.title.keyword"%3A%5B"Workshop"%5D%7D') + + cy.get ('h2.about-results').should("be.visible") }) - }) }) diff --git a/cypress/e2e/exhibitiondetail.cy.js b/cypress/e2e/exhibitiondetail.cy.js index c9b741c07..be7fdb3d3 100644 --- a/cypress/e2e/exhibitiondetail.cy.js +++ b/cypress/e2e/exhibitiondetail.cy.js @@ -1,11 +1,11 @@ -describe('Exhibition Detail page', () => { - it('Visits an Exhibition Detail Page', () => { - // the following data will not work in production - cy.visit('/visit/events-exhibitions/fante-asafo-flags') +describe("Exhibition Detail page", () => { + it("Visits an Exhibition Detail Page", () => { + // the following data will not work in production + cy.visit("/visit/events-exhibitions/fante-asafo-flags") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should('contain', 'Fante Asafo Flags') - cy.percySnapshot('exhibitiondetail', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should("contain", "Fante Asafo Flags") + cy.percySnapshot("exhibitiondetail",{ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/generalcontent.cy.js b/cypress/e2e/generalcontent.cy.js index f040daeac..8b97a792a 100644 --- a/cypress/e2e/generalcontent.cy.js +++ b/cypress/e2e/generalcontent.cy.js @@ -1,25 +1,25 @@ -describe('General Content page', () => { - it('Visits a General Content Page', () => { - cy.visit('/privacy-terms-of-use') - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should('contain', 'Privacy & Terms of Use') - cy.percySnapshot('generalcontent', { widths: [768, 992, 1200] }) - }) +describe("General Content page", () => { + it("Visits a General Content Page", () => { + cy.visit("/privacy-terms-of-use") + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should("contain", "Privacy & Terms of Use") + cy.percySnapshot("generalcontent",{ widths: [768, 992, 1200] }) + }) - it('Visits a Nested General Content Page', () => { - cy.visit('/accessibility/emergency') - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should('contain', 'Emergency') - cy.percySnapshot('generalcontentnested', { widths: [768, 992, 1200] }) - }) + it("Visits a Nested General Content Page", () => { + cy.visit("/accessibility/emergency") + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should("contain", "Emergency") + cy.percySnapshot("generalcontentnested",{ widths: [768, 992, 1200] }) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) - cy.request({ url: '/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) - // cy.visit('/no_entry') - // cy.get('p.error').should('contain', '404') - // cy.get('h1.error-title').should('contain', 'Page not found') + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + /*cy.request({url: "/no_entry", failOnStatusCode: false}).its("status").should("equal", 404)*/ + cy.visit("/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/helptopicpage.cy.js b/cypress/e2e/helptopicpage.cy.js index 2ab441f6b..226d2b83a 100644 --- a/cypress/e2e/helptopicpage.cy.js +++ b/cypress/e2e/helptopicpage.cy.js @@ -1,24 +1,24 @@ -describe('Help Topic page', () => { - it('Visit a Help Topic Page', () => { - cy.visit('/help/printing') +describe("Help Topic page", () => { + it("Visit a Help Topic Page", () => { + cy.visit("/help/printing") - // UCLA Library brand - // cy.get(".logo-ucla").should("be.visible") - cy.get('h1.title').should( - 'contain', - 'Printing Practices - Simple Card 3 Up - Rich Text - Pull Quote' - ) - cy.get('.page-anchor').scrollIntoView() - cy.get('.page-anchor').should('be.visible') - cy.percySnapshot('helptopic', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should( + "contain", + "Printing Practices - Simple Card 3 Up - Rich Text - Pull Quote" + ) + cy.get(".page-anchor").scrollIntoView().should('be.visible') + cy.percySnapshot("helptopic",{ widths: [768, 992, 1200] }) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - cy.request({ url: '/help/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) - /* cy.visit("/help/no_entry") + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/help/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/help/no_entry") cy.get("p.error").should("contain","404") - cy.get("h1.error-title").should("contain","Page not found") */ + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/homepage.cy.js b/cypress/e2e/homepage.cy.js index 1bbf963bb..e7e689e11 100644 --- a/cypress/e2e/homepage.cy.js +++ b/cypress/e2e/homepage.cy.js @@ -1,66 +1,67 @@ -describe('Website Homepage', () => { - it('Visit the Homepage', () => { - cy.visit('/') - cy.viewport(1200, 1200) - // UCLA brand - cy.get('.site-brand-bar').should('be.visible') - cy.get('.visually-hidden').should('contain', 'UCLA Home') - cy.get('.ucla-logo') - .parent() - .should('have.attr', 'href', 'https://www.ucla.edu') +describe("Website Homepage", () => { + it("Visit the Homepage", () => { + cy.visit("/") + cy.viewport(1200, 1200) - // NavSecondary - cy.get('.nav-secondary') - .should('contain', 'Locations & Hours') - .and('contain', 'Ask Us') - .and('contain', 'My Account') + // UCLA brand + cy.get(".site-brand-bar").should("be.visible") + cy.get(".visually-hidden").should("contain", "UCLA Home") + cy.get(".ucla-logo") + .parent() + .should("have.attr", "href", "https://www.ucla.edu") - // NavPrimary - cy.get('.nav-primary') - .should('contain', 'Get help with...') - .and('contain', 'Visit') - .and('contain', 'About') + // NavSecondary + cy.get(".nav-secondary") + .should("contain", "Locations & Hours") + .and("contain", "Ask Us") + .and("contain", "My Account") - // MastheadPrimary - cy.get('.masthead-primary').find('.logo').should('be.visible') - cy.get('.masthead-primary') - .find('.search-home') - .should('be.visible') - .and('contain', 'Site Search') - .and('contain', 'UC Library Search') - cy.get('.masthead-primary') - .find("input[type='search']") - .should( - 'have.attr', - 'placeholder', - 'Search articles, books and more' - ) - cy.get('.masthead-primary') - .contains('a', 'Databases A-Z') - .should( - 'have.attr', - 'href', - 'https://guides.library.ucla.edu/az.php?&_ga=2.194620910.2109030156.1663611669-236460657.1661379075' - ) - cy.get('.masthead-primary') - .contains('a', 'Course Reserves') - .should( - 'have.attr', - 'href', - 'https://www.library.ucla.edu/borrow-renew-return/course-reserves' - ) - // cy.get(".masthead-primary") - // .contains("a", "Advanced Search") - // .should("have.attr", "href", "http://www.primo.com") + // NavPrimary + cy.get(".nav-primary") + .should("contain", "Get help with...") + .and("contain", "Visit") + .and("contain", "About") - // Get help with - cy.get('.section-cards-with-illustrations').should( - 'contain', - 'Get Help With' - ) + // MastheadPrimary + cy.get(".masthead-primary").find(".logo").should("be.visible") + cy.get(".masthead-primary") + .find(".search-home") + .should("be.visible") + .and("contain", "Site Search") + .and("contain", "UC Library Search") + cy.get(".masthead-primary") + .find("input[type='search']") + .should( + "have.attr", + "placeholder", + "Search articles, books and more" + ) + cy.get(".masthead-primary") + .contains("a", "Databases A-Z") + .should( + "have.attr", + "href", + "https://guides.library.ucla.edu/az.php?&_ga=2.194620910.2109030156.1663611669-236460657.1661379075" + ) + cy.get(".masthead-primary") + .contains("a", "Course Reserves") + .should( + "have.attr", + "href", + "https://www.library.ucla.edu/borrow-renew-return/course-reserves" + ) + // cy.get(".masthead-primary") + // .contains("a", "Advanced Search") + // .should("have.attr", "href", "http://www.primo.com") - cy.get('[aria-label="Ask Us: Online Chat"]').click({ force: true }) + // Get help with + cy.get(".section-cards-with-illustrations").should( + "contain", + "Get Help With" + ) - cy.percySnapshot({ widths: [768, 992, 1200] }) - }) + cy.get('[aria-label="Ask Us: Online Chat"]').click({ force: true }) + + cy.percySnapshot({ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/impactmainstory.cy.js b/cypress/e2e/impactmainstory.cy.js index b0367b554..8594307e7 100644 --- a/cypress/e2e/impactmainstory.cy.js +++ b/cypress/e2e/impactmainstory.cy.js @@ -1,18 +1,18 @@ -describe('Impact Main Story page', () => { - it('Visit the Impact Mainstory Page', () => { - cy.visit('/impact/2021/ucla-library-reimagined') +describe("Impact Main Story page", () => { + it("Visit the Impact Mainstory Page", () => { + cy.visit("/impact/2021/ucla-library-reimagined") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'After Covid Triggered a Campus Closure' - ) - cy.get('.media-video').should( - 'have.attr', - 'src', - 'https://static.library.ucla.edu/craftassetstest/images/ucla-impact-report-animation.mp4' - ) - cy.percySnapshot('impactmainstory', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should( + "contain", + "After Covid Triggered a Campus Closure" + ) + cy.get(".media-video").should( + "have.attr", + "src", + "https://static.library.ucla.edu/craftassetstest/images/ucla-impact-report-animation.mp4" + ) + cy.percySnapshot("impactmainstory",{ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/impactreportpage.cy.js b/cypress/e2e/impactreportpage.cy.js index 2a065487e..72f441e70 100644 --- a/cypress/e2e/impactreportpage.cy.js +++ b/cypress/e2e/impactreportpage.cy.js @@ -1,42 +1,44 @@ describe('Impact Report Page', () => { - it('Visit the Impact Report Page', () => { - // cy.visit('/impact/2022') - cy.visit('/impact/2022') - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - - // Ginny's Letter - cy.get('h1') - .should('have.class', 'intro') - // cy.get('.signature').should('contain','Virginia Steel') - - // // Main story/ banner data - // cy.get('.banner').should('contain','Read full story') - // cy.get('.media-video').should('be.visible') - - // // featurettes - // cy.get('.block-highlight').should('have.length','9') - - // cy.get('.divider').should('have.length','2') - - // cy.get('h2.title') - // .should('contain', '2020-21: An Academic Year Like No Other') - // cy.get('.sub-section-grid') - // .should('have.descendants','.grid-gallery-subtitle') - // .and('have.descendants','.grid-gallery') - // cy.get('.grid-gallery').find('img').last().should('have.attr','src','https://static.library.ucla.edu/ucla-library_nakatani-bookplate-crop.jpg') - // cy.get('.credits').should('be.visible') - - cy.percySnapshot('impactreportpage', { widths: [768, 992, 1200] }) - }) - - context('When there isn\'t an entry in craft', () => { - it('Raises a 404 error', () => { - // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) - cy.request({ url: '/impact/2080', failOnStatusCode: false }).its('status').should('equal', 404) - /* cy.visit('/impact/2080') - cy.get('p.error').should('contain', '404') - cy.get('h1.error-title').should('contain', 'Page not found') */ + it('Visit the Impact Report Page', () => { + cy.visit('/impact/2022') + + // UCLA Library brand + cy.get('.logo-ucla').should('be.visible') + + + // Ginny's Letter + cy.get('h1') + .should('have.class', 'intro') + // cy.get('.signature').should('contain','Virginia Steel') + + // // Main story/ banner data + // cy.get('.banner').should('contain','Read full story') + // cy.get('.media-video').should('be.visible') + + // // featurettes + // cy.get('.block-highlight').should('have.length','9') + + // cy.get('.divider').should('have.length','2') + + // cy.get('h2.title') + // .should('contain', '2020-21: An Academic Year Like No Other') + // cy.get('.sub-section-grid') + // .should('have.descendants','.grid-gallery-subtitle') + // .and('have.descendants','.grid-gallery') + // cy.get('.grid-gallery').find('img').last().should('have.attr','src','https://static.library.ucla.edu/ucla-library_nakatani-bookplate-crop.jpg') + // cy.get('.credits').should('be.visible') + + cy.percySnapshot("impactreportpage",{ widths: [768, 992, 1200] }) + + }) + + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/impact/2080", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/impact/2080") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/jobopportunitieslist.cy.js b/cypress/e2e/jobopportunitieslist.cy.js index e016d1073..3a2c1ee49 100644 --- a/cypress/e2e/jobopportunitieslist.cy.js +++ b/cypress/e2e/jobopportunitieslist.cy.js @@ -1,12 +1,12 @@ -describe('Job Opportunities List page', () => { - it('Visits the Job Opportunities List Page', () => { - // the following data will not work in production - cy.visit('/about/jobs/staff-academic-jobs/') +describe("Job Opportunities List page", () => { + it("Visits the Job Opportunities List Page", () => { + // the following data will not work in production + cy.visit("/about/jobs/staff-academic-jobs") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-job-opportunities').should('be.visible') - cy.get('h1.title').should('contain', 'Job Opportunities') - cy.percySnapshot('jobopportunitieslist', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-job-opportunities").should("be.visible") + cy.get("h1.title").should("contain", "Job Opportunities") + cy.percySnapshot("jobopportunitieslist",{ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/jobstudentopportunities.cy.js b/cypress/e2e/jobstudentopportunities.cy.js index 10a11a704..d47628603 100644 --- a/cypress/e2e/jobstudentopportunities.cy.js +++ b/cypress/e2e/jobstudentopportunities.cy.js @@ -1,12 +1,12 @@ -describe('Student Opportunities List page', () => { - it('Visits the Student Opportunities List Page', () => { - // the following data will not work in production - cy.visit('/about/student-opportunities') +describe("Student Opportunities List page", () => { + it("Visits the Student Opportunities List Page", () => { + // the following data will not work in production + cy.visit("/about/student-opportunities") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-student-opportunities').should('be.visible') - cy.get('h1.title').should('contain', 'Student Opportunities') - cy.percySnapshot('jobstudentopportunities', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-student-opportunities").should("be.visible") + cy.get("h1.title").should("contain", "Student Opportunities") + cy.percySnapshot("jobstudentopportunities",{ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/locationdetailpage.cy.js b/cypress/e2e/locationdetailpage.cy.js index 5632fc942..1d477fc96 100644 --- a/cypress/e2e/locationdetailpage.cy.js +++ b/cypress/e2e/locationdetailpage.cy.js @@ -1,24 +1,24 @@ -describe('Location Detail page', () => { - it('Visit a Location Detail Page', () => { - cy.visit('/visit/locations/biomed') +describe("Location Detail page", () => { + it("Visit a Location Detail Page", () => { + cy.visit("/visit/locations/biomed") - // UCLA Library brand - // cy.get(".logo-ucla").should("be.visible") - cy.get('h1.title').should( - 'contain', - 'Louise M. Darling Biomedical Library' - ) - cy.get('.page-anchor').scrollIntoView() - cy.get('.page-anchor').should('be.visible') - cy.percySnapshot('locationdetailpage', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should( + "contain", + "Louise M. Darling Biomedical Library" + ) + cy.get(".page-anchor").scrollIntoView().should('be.visible') + cy.percySnapshot("locationdetailpage",{ widths: [768, 992, 1200] }) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - cy.request({ url: '/visit/locations/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) - // cy.visit("/visit/locations/no_entry") - // cy.get("p.error").should("contain","404") - // cy.get("h1.error-title").should("contain","Page not found") + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/visit/locations/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/visit/locations/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/locationlistpage.cy.js b/cypress/e2e/locationlistpage.cy.js index d5ece2698..edf338274 100644 --- a/cypress/e2e/locationlistpage.cy.js +++ b/cypress/e2e/locationlistpage.cy.js @@ -1,22 +1,23 @@ -describe('Location Listing page', () => { - it('Visit a Location Listing Page', () => { - cy.visit('/visit/locations') +describe("Location Listing page", () => { + it("Visit a Location Listing Page", () => { + cy.visit("/visit/locations") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'Listing - Locations & Hours' - ) - cy.get('.search-generic-filter-buttons').find('button').should('have.length', 1) - cy.get('.search-generic-filter-buttons > button').click() - cy.get('fieldset.base-checkbox-group > ul.list > li.list-item').find('label').should('have.length.greaterThan', 0) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should( + "contain", + "Listing - Locations & Hours" + ) + cy.get('.search-generic-filter-buttons').find('button').should('have.length', 1) + cy.get('.search-generic-filter-buttons > button').click() + cy.get("fieldset.base-checkbox-group > ul.list > li.list-item").find("label").should("have.length.greaterThan",0) - cy.percySnapshot('locationlistpage', { widths: [768, 992, 1200] }) - }) + cy.percySnapshot("locationlistpage",{ widths: [768, 992, 1200] }) + }) - it('Visit Locations Listing page filter by type', () => { - cy.visit('/visit/locations?q&filters=amenities.keyword:(Lockers)', { timeout: 60000 }) - cy.get('h2.about-results').invoke('text').should('not.be.empty') - }) + it("Visit Locations Listing page filter by type", () => { + cy.visit('/visit/locations/?q&filters=%7B"amenities.keyword"%3A%5B"Lockers"%5D%7D') + + cy.get ('h2.about-results').should("be.visible") + }) }) diff --git a/cypress/e2e/mobilehomepage.cy.js b/cypress/e2e/mobilehomepage.cy.js index 109e1e492..759a77f89 100644 --- a/cypress/e2e/mobilehomepage.cy.js +++ b/cypress/e2e/mobilehomepage.cy.js @@ -1,11 +1,11 @@ -describe('Mobile Website Homepage', () => { - it('Visit the Mobile Homepage', () => { - cy.visit('/') - cy.viewport(900, 900) - cy.get('.site-brand-bar').should('be.visible') - cy.get('.header-main-responsive').should('be.visible') - // Not sure why this is failing all of a sudden - // cy.get(".svg__icon-menu").click({ force: true }) - cy.percySnapshot('mobilehomepage', { widths: [768, 992, 1002] }) - }) +describe("Mobile Website Homepage", () => { + it("Visit the Mobile Homepage", () => { + cy.visit("/") + cy.viewport(900, 900) + cy.get(".site-brand-bar").should("be.visible") + cy.get(".header-main-responsive").should("be.visible") + // Not sure why this is failing all of a sudden + // cy.get(".svg__icon-menu").click({ force: true }) + cy.percySnapshot("mobilehomepage",{ widths: [768, 992, 1002] }) + }) }) diff --git a/cypress/e2e/policiesdetailpage.cy.js b/cypress/e2e/policiesdetailpage.cy.js index a3e8a7f41..fe049ea52 100644 --- a/cypress/e2e/policiesdetailpage.cy.js +++ b/cypress/e2e/policiesdetailpage.cy.js @@ -1,26 +1,18 @@ -describe('Policy Detail page', () => { - it('Visits a Policy Detail Page', () => { - cy.intercept('about/policies/shhh').as('getPolicyDetailRoute') - cy.visit('/about/policies/shhh') - cy.wait('@getPolicyDetailRoute').then(() => { - cy.get('.logo-ucla').should('be.visible') - - cy.get('.page-anchor').scrollIntoView() - cy.get('.page-anchor').should('be.visible') - cy.percySnapshot('policiesdetailpage', { widths: [768, 992, 1200] }) +describe("Policy Detail page", () => { + it("Visits a Policy Detail Page", () => { + cy.visit("about/policies/shhh") + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-anchor").scrollIntoView().should('be.visible') + cy.percySnapshot("policiesdetailpage",{ widths: [768, 992, 1200] }) }) - }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - // TODO COMMENT THIS LINE later if static page 404 starts working - cy.request({ url: '/about/policies/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) - /* - These tests will run once our 404 page starts working in static mode - cy.visit("/about/policies/no_entry") - cy.get("p.error").should("contain","404") - cy.get("h1.error-title").should("contain","Page not found") - */ + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/about/policies/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/about/policies/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/policieslistpage.cy.js b/cypress/e2e/policieslistpage.cy.js index 2cfa08967..db6ac38cf 100644 --- a/cypress/e2e/policieslistpage.cy.js +++ b/cypress/e2e/policieslistpage.cy.js @@ -1,14 +1,13 @@ -describe('Policy List page', () => { - it('Visits a Policy List Page', () => { - cy.visit('about/policies') - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-policies').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'Policies' - ) - cy.get('.page-anchor').scrollIntoView() - cy.get('.page-anchor').should('be.visible') - cy.percySnapshot('policieslistpage', { widths: [768, 992, 1200] }) - }) +describe("Policy List page", () => { + it("Visits a Policy List Page", () => { + cy.visit("about/policies") + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-policies").should("be.visible") + cy.get("h1.title").should( + "contain", + "Policies" + ) + cy.get(".page-anchor").scrollIntoView().should('be.visible') + cy.percySnapshot("policieslistpage",{ widths: [768, 992, 1200] }) + }) }) diff --git a/cypress/e2e/programdetailpage.cy.js b/cypress/e2e/programdetailpage.cy.js index 55a3b40c9..9890f06d7 100644 --- a/cypress/e2e/programdetailpage.cy.js +++ b/cypress/e2e/programdetailpage.cy.js @@ -1,21 +1,24 @@ -describe('Program Detail page', () => { - it('Visit a Program Detail Page', () => { - cy.visit('/about/programs/digital-library-program') +describe("Program Detail page", () => { + it("Visit a Program Detail Page", () => { + cy.visit("/about/programs/digital-library-program") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'Digital Library Program' - ) - cy.get('.page-anchor').scrollIntoView() - cy.get('.page-anchor').should('be.visible') - cy.percySnapshot('programdetailpage', { widths: [768, 992, 1200] }) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should( + "contain", + "Digital Library Program" + ) + cy.get(".page-anchor").scrollIntoView().should('be.visible') + cy.percySnapshot("programdetailpage",{ widths: [768, 992, 1200] }) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - cy.request({ url: '/about/programs/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/about/programs/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/about/programs/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/programslistpage.cy.js b/cypress/e2e/programslistpage.cy.js index 367884858..1203b3e67 100644 --- a/cypress/e2e/programslistpage.cy.js +++ b/cypress/e2e/programslistpage.cy.js @@ -1,22 +1,22 @@ -describe('Program List page', () => { - it('Visits a Policy List Page', () => { - cy.visit('about/programs') - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-programs').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'Programs & Initiatives' - ) - cy.get('.search-generic-filter-buttons').find('button').should('have.length', 1) - cy.get('.search-generic-filter-buttons > button').click() - cy.get('fieldset.base-checkbox-group > ul.list > li.list-item').find('label').should('have.length.greaterThan', 0) +describe("Program List page", () => { + it("Visits a Policy List Page", () => { + cy.visit("about/programs") + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-programs").should("be.visible") + cy.get("h1.title").should( + "contain", + "Programs & Initiatives" + ) + cy.get('.search-generic-filter-buttons').find('button').should('have.length', 1) + cy.get('.search-generic-filter-buttons > button').click() + cy.get("fieldset.base-checkbox-group > ul.list > li.list-item").find("label").should("have.length.greaterThan",0) + + cy.percySnapshot("programlistpage",{ widths: [768, 992, 1200] }) + }) - cy.percySnapshot('programlistpage', { widths: [768, 992, 1200] }) - }) + it("Visit Program Listing page filter by type", () => { + cy.visit('/about/programs?q=&filters=%7B"programType.title.keyword"%3A%5B"Collections"%5D%7D') - it('Visit Program Listing page filter by type', () => { - cy.visit('/about/programs?q=&filters=programType.title.keyword:(Collections)', { timeout: 60000 }) - - cy.get('h2.about-results').should('be.visible') - }) + cy.get ('h2.about-results').should("be.visible") + }) }) diff --git a/cypress/e2e/resource.cy.js b/cypress/e2e/resource.cy.js index 6237aacbf..f5d768a75 100644 --- a/cypress/e2e/resource.cy.js +++ b/cypress/e2e/resource.cy.js @@ -1,23 +1,23 @@ -describe('Resource page', () => { - it('Visit a Resource Page', () => { - cy.visit('help/services-resources/animals') - - // UCLA Library brand - // cy.get(".logo-ucla").should("be.visible") - cy.get('h1.title').should( - 'contain', - 'Animals are Excellent and Flowers are Fluffy' - ) - cy.percySnapshot('resource', { widths: [768, 992, 1200] }) - }) - - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) - cy.request({ url: '/help/services-resources/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) - // cy.visit("/help/services-resources/no_entry") - // cy.get("p.error").should("contain","404") - // cy.get("h1.error-title").should("contain","Page not found") - }) - }) -}) +describe("Resource page", () => { + it("Visit a Resource Page", () => { + cy.visit("help/services-resources/animals") + + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should( + "contain", + `Animals are Excellent and Flowers are Fluffy` + ) + cy.percySnapshot("resource",{ widths: [768, 992, 1200] }) + }) + + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/help/services-resources/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/help/services-resources/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) + }) +}) diff --git a/cypress/e2e/service.cy.js b/cypress/e2e/service.cy.js index 658145fec..638c8321b 100644 --- a/cypress/e2e/service.cy.js +++ b/cypress/e2e/service.cy.js @@ -1,24 +1,24 @@ -describe('Service page', () => { - it('Visit a Service page', () => { - cy.visit('help/services-resources/service-with-all-flexible-page-block-types') - - // UCLA Library brand - // cy.get(".logo-ucla").should("be.visible") - cy.get('h1.title').should( - 'contain', - 'Service with all flexible page block types' - ) - cy.get('.page-anchor').scrollIntoView() - cy.get('.page-anchor').should('be.visible') - cy.percySnapshot('service', { widths: [768, 992, 1200] }) - }) - - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - // cy.visit("/help/services-resources/no_entry") - // cy.get("p.error").should("contain","404") - // cy.get("h1.error-title").should("contain","Page not found") - cy.request({ url: '/help/services-resources/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) - }) - }) -}) +describe("Service page", () => { + it("Visit a Service page", () => { + cy.visit("help/services-resources/service-with-all-flexible-page-block-types") + + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.title").should( + "contain", + `Service with all flexible page block types` + ) + cy.get(".page-anchor").scrollIntoView().should('be.visible') + cy.percySnapshot("service",{ widths: [768, 992, 1200] }) + }) + + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + + cy.visit("/help/services-resources/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + //cy.request({url: "/help/services-resources/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + }) + }) +}) diff --git a/cypress/e2e/servicesresourceslistpage.cy.js b/cypress/e2e/servicesresourceslistpage.cy.js index 13a7a5eaf..3b6498156 100644 --- a/cypress/e2e/servicesresourceslistpage.cy.js +++ b/cypress/e2e/servicesresourceslistpage.cy.js @@ -1,30 +1,17 @@ -describe('All Services & Resources Listing page', () => { - it('Visits the All Services & Resources Listing Page', () => { - cy.intercept('/help/*').as('getHelpRoutes') - cy.visit('/help/services-resources') - cy.wait('@getHelpRoutes').then(() => { - cy.get('.logo-ucla').should('be.visible') - cy.percySnapshot('servicesresourceslistpage', { widths: [768, 992, 1200] }) +describe("All Services & Resources Listing page", () => { + it("Visits the All Services & Resources Listing Page", () => { + cy.visit("help/services-resources") + cy.get(".logo-ucla").should("be.visible") + cy.percySnapshot("servicesresourceslistpage",{ widths: [768, 992, 1200] }) }) - }) - - it('Search Found', () => { - cy.intercept('/help/services-resources?*').as('getResourcesSearchRoutes') - cy.visit('/help/services-resources?q=test', { timeout: 35000 }) - cy.wait('@getResourcesSearchRoutes').then(() => { - cy.get('.logo-ucla').should('be.visible') - cy.get('input[type=search]').should( - 'have.value', - 'test' - ) - cy.get('h2.about-results').invoke('text').should('not.be.empty') - cy.percySnapshot('servicesresourcessearch', { widths: [768, 992, 1200] }) + it("Search Found", () => { + cy.visit("help/services-resources?q=test") + cy.get(".logo-ucla").should("be.visible") + cy.get("input[type=search]").should( + "have.value", + "test" + ) + cy.get("h2.about-results").invoke("text").should("not.be.empty") + //cy.percySnapshot({ widths: [768, 992, 1200] }) }) - }) - - it('Visit Services Listing page filter by category', () => { - cy.visit('/help/services-resources?q=Radical&filters=serviceOrResourceType.keyword:(workshop+series)') - - cy.get('h2.about-results').should('be.visible') - }) }) diff --git a/cypress/e2e/sitesearch.cy.js b/cypress/e2e/sitesearch.cy.js index f4942ce8f..982443d9d 100644 --- a/cypress/e2e/sitesearch.cy.js +++ b/cypress/e2e/sitesearch.cy.js @@ -1,20 +1,13 @@ -describe('Site Search page', () => { - it('Search blank', () => { - cy.visit('/search-site') - cy.get('h1.title').should('contain', 'Search Results') +describe("Site Search page", () => { + it("Search blank", () => { + cy.visit("/search-site") + cy.get("h1.title").should("contain", "Search Results") - cy.get('div > h2').should('contain', 'Search for “” not found.') - }) - it('Search all', () => { - cy.intercept('/search-site/*').as('getSearchRoutes') - cy.visit('/search-site/?q=*', { timeout: 30000 }) - cy.wait('@getSearchRoutes').then(() => { - cy.get('.logo-ucla').should('be.visible') - cy.get('input[type=search]').should( - 'have.value', - '*' - ) - cy.get('h2.about-results', { timeout: 80000 }).invoke('text').should('not.be.empty') + cy.get("div > h2").should('contain',"Search for “” not found.") + + }) + it("Search all", () => { + cy.visit("/search-site?q=*") + cy.get(".about-results").should('be.visible') }) - }) }) diff --git a/cypress/e2e/staffdetailpage.cy.js b/cypress/e2e/staffdetailpage.cy.js index 70ec5cfcf..c7435425b 100644 --- a/cypress/e2e/staffdetailpage.cy.js +++ b/cypress/e2e/staffdetailpage.cy.js @@ -1,20 +1,22 @@ -describe('Staff Detail page', () => { - it('Visit a Staff Detail Page', () => { - cy.visit('/about/staff/brigid-abreu') +describe("Program Detail page", () => { + it("Visit a Program Detail Page", () => { + cy.visit("/about/staff/brigid-abreu") - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('h1.staffName').should( - 'contain', - 'Brigid Abreu' - ) - }) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get("h1.staffName").should( + "contain", + "Brigid Abreu" + ) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - cy.visit('/about/staff/no_entry', { failOnStatusCode: false }) - cy.get('p.error').should('contain', '404') - cy.get('h1.error-title').should('contain', 'Page not found') + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/about/staff/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/about/staff/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/e2e/stafflistingpage.cy.js b/cypress/e2e/stafflistingpage.cy.js index d97dcfffa..463b5684b 100644 --- a/cypress/e2e/stafflistingpage.cy.js +++ b/cypress/e2e/stafflistingpage.cy.js @@ -1,28 +1,24 @@ -// https://uclalibrary-test-nuxt3x.netlify.app/about/staff?q=&departments=Software Development and Library Systems, Administration&locations=UCLA Film & Television Archive, Eugene and Maxine Rosenfeld Management Library&subjectLibrarian=yes&lastNameLetter=G +describe("Article News Listing page", () => { + it("Visit the Article News Listing Page", () => { + cy.visit("/about/staff") -describe('Article News Listing page', () => { - it('Visit the Article News Listing Page', () => { - cy.visit('/about/staff') - - // UCLA Library brand - cy.get('.logo-ucla').should('be.visible') - cy.get('.page-staff').should('be.visible') - cy.get('h1.title').should('contain', 'Staff Directory') - cy.get('.search-generic-filter-buttons').find('button').should('have.length', 2) - - cy.get('.search-generic-filter-buttons').find('button').each(($el, index, $list) => { - cy.wrap($el).click() - cy.get('fieldset.base-checkbox-group > ul.list > li.list-item').find('label').should('have.length.greaterThan', 0) + // UCLA Library brand + cy.get(".logo-ucla").should("be.visible") + cy.get(".page-staff").should("be.visible") + cy.get("h1.title").should("contain", "Staff Directory") + cy.get('.search-generic-filter-buttons').find('button').should('have.length', 2) + // eslint-disable-next-line no-unused-vars + cy.get('.search-generic-filter-buttons').find('button').each(($el, index, $list) => { + cy.wrap($el).click() + cy.get("fieldset.base-checkbox-group > ul.list > li.list-item").find("label").should("have.length.greaterThan",0) + }) + cy.get('.search-generic-filter-buttons > div.single-checkbox').should('be.visible') + cy.percySnapshot("stafflistingpage",{ widths: [768, 992, 1200] }) }) - cy.get('.search-generic-filter-buttons > div.single-checkbox').should('be.visible') - cy.percySnapshot('stafflistingpage', { widths: [768, 992, 1200] }) - }) - it('Visit Subject Librarian Listing page', () => { - cy.intercept('/about/staff/*').as('getStaffRoutes') - cy.visit('/about/staff?q=&filters=subjectLibrarian.keyword:(yes)', { timeout: 30000 }) - cy.wait('@getStaffRoutes').then(() => { - cy.get('td.academic-department').should('be.visible') + it("Visit Subject Librarian Listing page", () => { + cy.visit('/about/staff?q=&filters=%7B"subjectLibrarian.keyword"%3A"yes"%7D') + + cy.get ('td.academic-department').should("be.visible") }) - }) }) diff --git a/cypress/e2e/user_agent_spec.js b/cypress/e2e/user_agent_spec.js index 886b9e7c7..bd4142d30 100644 --- a/cypress/e2e/user_agent_spec.js +++ b/cypress/e2e/user_agent_spec.js @@ -1,24 +1,25 @@ describe('User-Agent Blocking', () => { - it('blocks requests from a specific user-agent', () => { - cy.request({ - url: '/', // Replace '/' with the URL path you want to test - failOnStatusCode: false, // Prevent Cypress from failing the test when the status code is 403 - headers: { - 'User-Agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)' - } - }).then((response) => { - expect(response.status).to.eq(403) + it('blocks requests from a specific user-agent', () => { + cy.request({ + url: '/', // Replace '/' with the URL path you want to test + failOnStatusCode: false, // Prevent Cypress from failing the test when the status code is 403 + headers: { + 'User-Agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)' + } + }).then((response) => { + expect(response.status).to.eq(403) + }) }) - }) - it('blocks requests from a claudebot user-agent to location page', () => { - cy.request({ - url: '/visit/locations', // Replace '/' with the URL path you want to test - failOnStatusCode: false, // Prevent Cypress from failing the test when the status code is 403 - headers: { - 'User-Agent': 'claudebot' - } - }).then((response) => { - expect(response.status).to.eq(403) + it('blocks requests from a claudebot user-agent to location page', () => { + cy.request({ + url: '/visit/locations', // Replace '/' with the URL path you want to test + failOnStatusCode: false, // Prevent Cypress from failing the test when the status code is 403 + headers: { + 'User-Agent': 'claudebot' + } + }).then((response) => { + expect(response.status).to.eq(403) + }) }) - }) }) + \ No newline at end of file diff --git a/cypress/e2e/workshopseries.cy.js b/cypress/e2e/workshopseries.cy.js index ff2c82004..df3642a93 100644 --- a/cypress/e2e/workshopseries.cy.js +++ b/cypress/e2e/workshopseries.cy.js @@ -1,21 +1,17 @@ -describe('Services & Resources page', () => { - it('Visits the Services & Resources Page', () => { - cy.visit('help/services-resources/a-test-workshop-with-a-pull-quote-fpb') - // cy.get('.logo-ucla').should('be.visible') - cy.get('h1.title').should( - 'contain', - 'A Test Workshop with a "Pull Quote" FPB' - ) - cy.percySnapshot('workshopseries', { widths: [768, 992, 1200] }) - }) +describe("Services & Resources page", () => { + it("Visits the Services & Resources Page", () => { + cy.visit("help/services-resources/a-test-workshop-with-a-pull-quote-fpb") + cy.get(".logo-ucla").should("be.visible") + cy.percySnapshot("workshopseries",{ widths: [768, 992, 1200] }) + }) - context("When there isn't an entry in craft", () => { - it('Raises a 404 error', () => { - // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) - cy.request({ url: '/help/services-resources/no_entry', failOnStatusCode: false }).its('status').should('equal', 404) - /* cy.visit("/help/services-resources/no_entry") - cy.get("p.error").should("contain","404") - cy.get("h1.error-title").should("contain","Page not found") */ + context("When there isn't an entry in craft", () => { + it("Raises a 404 error", () => { + // cy.visit("/about/blogs/no_entry", {failOnStatusCode: false}) + // cy.request({url: "/help/services-resources/no_entry", failOnStatusCode: false}).its("status").should("equal", 404) + cy.visit("/help/services-resources/no_entry") + cy.get("p.error").should("contain","404") + cy.get("h1.error-title").should("contain","Page not found") + }) }) - }) }) diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js new file mode 100644 index 000000000..7cefb4d4e --- /dev/null +++ b/cypress/plugins/index.js @@ -0,0 +1,4 @@ +/* eslint-env node */ + +// eslint-disable-next-line no-unused-vars +module.exports = (on, config) => {} diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js index be322de21..f2451e461 100644 --- a/cypress/support/e2e.js +++ b/cypress/support/e2e.js @@ -1,22 +1,5 @@ -// *********************************************************** -// This example support/e2e.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** +/* eslint-env node */ import '@percy/cypress' -// Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/data/BlockFormData.json b/data/BlockFormData.json new file mode 100644 index 000000000..ec022f10b --- /dev/null +++ b/data/BlockFormData.json @@ -0,0 +1,452 @@ +{ + "mock0": { + "id": 5481, + "name": "Data Science Center Workshops", + "identityHelp": "", + "emailMethod": { + "status": "required", + "label": "Email", + "help": "" + }, + "phoneMethod": { + "status": "disabled", + "label": "Phone Number", + "help": "" + }, + "barcodeMethod": { + "status": "disabled", + "label": "Library Barcode", + "help": "" + }, + "questions": [ + { + "id": 32798, + "label": "UCLA Department Affiliation", + "type": "dropdown", + "required": false, + "options": [ + "African American Studies", + "African Studies", + "American Indian Studies", + "Anderson School of Management", + "Anthropology", + "Archaeology", + "Architecture", + "Architecture - M.Arch.", + "Architecture - M.S. in Architecture and Urban Design", + "Architecture and Urban Design Department", + "Art", + "Art History", + "Asian American Studies", + "Asian Languages and Cultures", + "Asian Languages and Cultures Department", + "Astronomy and Astrophysics", + "Astronomy and Astrophysics-MAT", + "Atmospheric and Oceanic Sciences", + "Biochemistry, Molecular and Structural Biology", + "Bioengineering", + "Bioinformatics", + "Biology", + "Biomathematics", + "Bioscience Programs", + "Biostatistics", + "Chemical & Biomolecular Engineering Department", + "Chemical Engineering", + "Chemistry", + "Chemistry and Biochemistry Department", + "Chicana & Chicano Studies", + "Chicana/o and Central American Studies Department", + "Choreographic Inquiry", + "Civil & Environmental Engineering Department", + "Civil Engineering", + "Classics", + "Classics Department", + "Clinical Research", + "Communication", + "Community Health Sciences", + "Community Health Sciences Department", + "Comparative Literature", + "Computational Medicine Department", + "Computer Science", + "Conservation of Archaeological & Ethnographic Materials", + "Conservation of Archaeological & Ethnographic Materials Department", + "Conservation of Material Culture", + "Culture and Performance", + "David Geffen School of Medicine", + "Design | Media Arts", + "Earth, Planetary, and Space Sciences Department", + "East Asian Studies", + "Ecology and Evolutionary Biology Department", + "Economics", + "Economics - Master of Applied Economics", + "Economics Department", + "Education", + "Educational Leadership Program", + "Electrical & Computer Engineering", + "Engineering - Master of Engineering", + "Engineering - MS in Engineering, Online", + "Engineering - MS in Engineering-Aerospace, Online", + "Engineering - MS in Engineering-Computer Networking, Online", + "Engineering - MS in Engineering-Electrical, Online", + "Engineering - MS in Engineering-Electronic Materials, Online", + "Engineering - MS in Engineering-Integrated Circuits, Online", + "Engineering - MS in Engineering-Manufacturing and Design, Online", + "Engineering - MS in Engineering-Materials Science, Online", + "Engineering - MS in Engineering-Mechanical, Online", + "Engineering - MS in Engineering-Signal Processing and Communications, Online", + "Engineering - MS in Engineering-Structural Materials, Online", + "English", + "Environment and Sustainability", + "Environmental Health Sciences", + "Environmental Science & Engineering", + "Epidemiology", + "Ethnomusicology", + "Executive Master of Public Health", + "Fielding School of Public Health", + "Film & Television", + "Film, Television, & Digital Media Department", + "French & Francophone Studies", + "Gender Studies", + "Genetic Counseling", + "Geochemistry", + "Geography", + "Geography Department", + "Geology", + "Geophysics & Space Physics", + "Germanic Languages", + "Germanic Languages Department", + "Greek", + "Health Policy & Management", + "Health Policy and Management Department", + "Healthcare Administration", + "Henry Samueli School of Engineering and Applied Science", + "Herb Alpert School of Music", + "Hispanic Languages & Literatures", + "History", + "Human Genetics", + "Human Genetics Department", + "Humanities", + "Indo-European Studies", + "Information Studies", + "Information Studies Department", + "Institute of the Environment & Sustainability", + "Integrative Biology & Physiology Department", + "International Institute", + "Islamic Studies", + "Italian", + "Latin", + "Latin American Studies", + "Library & Information Science", + "Library & Information Science Certificate", + "Life Sciences", + "Linguistics", + "Luskin School of Public Affairs", + "Management - Business Analytics MS", + "Management - Executive MBA", + "Management - Fully Employed MBA (FEMBA)", + "Management - Global Executive MBA for Asia Pacific", + "Management - Master of Financial Engineering", + "Management - MBA", + "Management - MS, PHD", + "Manufacturing Engineering", + "Master of Applied Geospatial Information Systems & Technologies", + "Master of Legal Studies", + "Master of Public Health for Health Professionals", + "Master of Social Science", + "Materials Science & Engineering", + "Mathematics", + "Mechanical & Aerospace Engineering Department", + "Mechanical Engineering", + "Microbiology, Immunology, & Molecular Genetics", + "Molecular & Medical Pharmacology", + "Molecular Biology", + "Molecular Toxicology", + "Molecular, Cell, & Developmental Biology", + "Molecular, Cellular, & Integrative Physiology", + "Music", + "Musicology", + "Near Eastern Languages & Cultures", + "Near Eastern Languages & Cultures Department", + "Neuroscience", + "Nursing", + "Nursing - Doctor of Nursing Practice", + "Oral Biology", + "Philosophy", + "Physical Sciences", + "Physics", + "Physics & Biology in Medicine", + "Physics and Astronomy Department", + "Physiological Science", + "Political Science", + "Portuguese", + "Psychology", + "Public Health", + "Public Policy", + "Scandinavian", + "School of Dentistry", + "School of Education and Information Studies", + "School of Law", + "School of Nursing", + "School of the Arts and Architecture", + "School of Theater, Film and Television", + "Slavic, East European, and Eurasian Languages & Cultures", + "Social Sciences", + "Social Welfare", + "Sociology", + "Spanish", + "Spanish and Portuguese Department", + "Special Education", + "Statistics", + "Statistics - Master of Applied Statistics", + "Statistics Department", + "Teaching Asian Languages", + "Theater", + "Theater and Performance Studies", + "Theater Department", + "Urban and Regional Planning", + "Urban and Regional Planning - Institut d'Etudes de Paris", + "Urban Planning", + "Urban Planning Department", + "World Arts and Cultures/Dance Department" + ] + }, + { + "id": 14994, + "label": "Other Department or Affiliation", + "type": "string", + "required": false + }, + { + "id": 14993, + "label": "Status", + "type": "checkbox", + "required": true, + "options": [ + "Undergrad", + "Graduate", + "PostDoc", + "Faculty", + "Staff", + "Librarian", + "Visiting Scholar", + "Other" + ] + }, + { + "id": 19717, + "label": "Can we email you about future Data Science Center events & workshops?", + "type": "radio", + "required": false, + "options": ["Yes", "No"] + }, + { + "id": 19772, + "label": "What would you like to get out of this course?", + "type": "string", + "required": false + } + ] + }, + + "mock1": { + "id": 5906, + "name": "Advanced Research Workshop Series", + "identityHelp": "", + "emailMethod": { + "status": "required", + "label": "Email", + "help": "" + }, + "phoneMethod": { + "status": "disabled", + "label": "Phone Number", + "help": "" + }, + "barcodeMethod": { + "status": "disabled", + "label": "Library Barcode", + "help": "" + }, + "questions": [ + { + "id": 15929, + "label": "UCLA Department Affiliation", + "type": "string", + "required": true + }, + { + "id": 16763, + "label": "Status", + "type": "radio", + "required": true, + "options": [ + "Graduate Student", + "Faculty", + "Undergraduate Student", + "Staff", + "Library Staff", + "Visiting Scholar" + ] + }, + { + "id": 16764, + "label": "Please provide a brief description of your experience with this topic.", + "type": "string", + "required": true + }, + { + "id": 16765, + "label": "How did you hear about this event?", + "type": "string", + "required": false + } + ] + }, + + "mock2": { + "id": 2317, + "name": "CLICC Instructional Use Form", + "identityHelp": "", + "emailMethod": { + "status": "required", + "label": "Email", + "help": "" + }, + "phoneMethod": { + "status": "disabled", + "label": "Phone Number", + "help": "" + }, + "barcodeMethod": { + "status": "disabled", + "label": "Library Barcode", + "help": "" + }, + "questions": [] + }, + + "mock3": { + "id": 5907, + "name": "Terry Allen", + "identityHelp": "", + "emailMethod": { + "status": "required", + "label": "Email", + "help": "" + }, + "phoneMethod": { + "status": "disabled", + "label": "Phone Number", + "help": "" + }, + "barcodeMethod": { + "status": "disabled", + "label": "Library Barcode", + "help": "" + }, + "questions": [ + { + "id": 15930, + "label": "What's your previous experience with this topic?", + "type": "string", + "required": false + } + ] + }, + + "mock4": { + "id": 14719, + "name": "Test Form - FTVA", + "identityHelp": "", + "emailMethod": { + "status": "required", + "label": "Email", + "help": "" + }, + "phoneMethod": { + "status": "disabled", + "label": "Phone Number", + "help": "" + }, + "barcodeMethod": { + "status": "disabled", + "label": "Library Barcode", + "help": "" + }, + "questions": [ + { + "id": 44084, + "label": "multiline text", + "type": "string", + "required": false + } + ] + }, + + "mock5": { + "id": 10193, + "name": "Text/Ballot", + "identityHelp": "", + "emailMethod": { + "status": "required", + "label": "Email", + "help": "" + }, + "phoneMethod": { + "status": "disabled", + "label": "Phone Number", + "help": "" + }, + "barcodeMethod": { + "status": "disabled", + "label": "Library Barcode", + "help": "" + }, + "questions": [ + { + "id": 26603, + "label": "President", + "type": "radio", + "required": true, + "options": ["Zoe", "Diane"] + }, + { + "id": 26604, + "label": "Vice President", + "type": "radio", + "required": true, + "options": ["Zoe", "Diane", "Gabi"] + } + ] + }, + + "mock6": { + "id": 1486, + "name": "UCLA Library Event Registration", + "identityHelp": "", + "emailMethod": { + "status": "required", + "label": "Email", + "help": "" + }, + "phoneMethod": { + "status": "disabled", + "label": "Phone Number", + "help": "" + }, + "barcodeMethod": { + "status": "disabled", + "label": "Library Barcode", + "help": "" + }, + "questions": [ + { + "id": 4325, + "label": "Favorite Animal", + "type": "radio", + "required": false, + "options": ["Lion", "Tiger", "Liger"] + } + ] + } +} \ No newline at end of file diff --git a/data/impact-report_index.json b/data/impact-report_index.json new file mode 100644 index 000000000..93187f918 --- /dev/null +++ b/data/impact-report_index.json @@ -0,0 +1,629 @@ +{ + "mainStoryData": { + "title": "After Covid Triggered a Campus Closure, UCLA Library Reimagined Its Services for Students and Faculty Scattered Across the Country and Globe", + "description": "Undergraduates reflect on successfully completing their research projects while learning remotely.", + "buttonText": "Read full story", + "asset": "ucla-impact-report-animation.mp4", + "link": "/impact/main-story", + "altText": "Animated line-art sequence, starting with a female sitting in bedroom looking at a laptop computer. Transitions to yellow light eminating from laptop screen and revealing a library reading room." + }, + "timelineGallery": [ + { + "monthYear": "March 2020", + "headlineText": "Chancellor Gene Block Announces Transition to Remote Instruction", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/ucla-transitions-to-online-instruction", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "ucla-campus-closed-covid-19.jpeg", + "alt": "A red brick building foregrounded by blue sign announcing UCLA's campus closure due to COVID-19" + }, + { + "monthYear": "March 2020", + "headlineText": "Film & Television Archive Celebrates Transgender Day of Visibility", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/ucla-film-and-television-celebrates-transgender-day-of-visibility", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "behind-every-good-man.jpeg", + "alt": "A trans woman smiling at the camera in a still from Behind Every Good Man" + }, + { + "monthYear": "April 2020", + "headlineText": "Library Secures Emergency Access to Millions of Digitized Versions of UC-held Books", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/ucla-library-digitized-uc-books", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "shelves-ucla-arts-library.jpg", + "alt": "Three bookshelves in the UCLA library" + }, + { + "monthYear": "April 2020", + "headlineText": "Student-made Videos Show Bruins How to Connect to Subscription Content Remotely", + "snippet": "", + "to": "https://www.library.ucla.edu/computers-computing-services/connect-campus", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "remote-vpn-setup-ucla.jpg", + "alt": "Blue graphic containing artwork of a woman's face, captioned with Natalie, Environmental science major. Gold text reads Getting set up for remote access" + }, + { + "monthYear": "April 2020", + "headlineText": "Remote Control Workshops Help Students Succeed in a New Learning Environment", + "snippet": "", + "to": "https://guides.library.ucla.edu/remotecontrol", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "remote-control-webinar-series.jpg", + "alt": "Blue graphic reading You're invited to Remote Control, a Webinar Series on Remote Learning" + }, + { + "monthYear": "April 2020", + "headlineText": "Virtual Bruin Day: Library Hosts Facebook Q&A for #UCLABound Class of 2024", + "snippet": "", + "to": "https://www.facebook.com/uclalibrary/videos/514126962823890", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "ucla-library-facebook-live.jpg", + "alt": "Four people smiling at camera, each within their own quadrant of the rectangle. Text in bottom-right reads UCLA Bruin Bound and UCLA Library" + }, + { + "monthYear": "April 2020", + "headlineText": "Legacy Gift Makes a Big Impact on Small Library Spaces", + "snippet": "", + "to": "https://www.library.ucla.edu/news/legacy-gift-makes-big-impact-small-spaces", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "jim-lori-keirs-ucla-library-gift.jpg", + "alt": "Jim and Lori Keirs embracing and posing for the camera" + }, + { + "monthYear": "April 2020", + "headlineText": "LibGuides Groups in Practice: Building a Partnership Between an Academic Library and an Information Studies School", + "snippet": "

Working with Information Studies faculty, two UCLA librarians introduced practical web skills into the iSchool curriculum, teaching future librarians how to create user-friendly content with technology tools relevant to academic libraries. The journal article details the benefits of the partnership for both the Library and the students. — Coauthored by Science Librarian Courtney Hoffner and Health and Life Science Librarian Antonia Osuna-Garcia, published by College and Research Libraries News.

", + "to": "https://crln.acrl.org/index.php/crlnews/article/view/24384/32223", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": true, + "src": "antonia-osuna-garcia-courtney_hoffner_ucla_library.jpg", + "class":"two-librarians", + "alt": "Sketch of two Antinia Osuna-Garcia and Courtney Hoffner, with turqoise background" + }, + { + "monthYear": "May 2020", + "headlineText": "LISTEN: It Took 50 Years to Preserve this Two-strip Technicolor Feature", + "snippet": "", + "to": "https://nitrateville.com/viewtopic.php?f=29&t=29911", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "mystery-of-the-wax-museum.jpg", + "alt": "A wax figure of Joan of Arc." + }, + { + "monthYear": "June 2020", + "headlineText": "Groundbreaking Deal with Leading Publisher Opens Access to Scientific Research", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/groundbreaking-deal-with-leading-publisher-opens-access-to-scientific-research", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "young-research-library-exterior.jpg", + "alt": "Exterior portico of the Charles E. Young Research Library" + }, + { + "monthYear": "June 2020", + "headlineText": "Partnership Preserves and Celebrates LGBTQ Celluloid History", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/ucla-partnership-preserves-and-celebrates-lgbtq-celluloid-history?utm_source=UCLA+Arts+Mailing+List&utm_campaign=7ec5999ff1-Spring_2020_Finals_COPY_01&utm_medium=email&utm_term=0_6204783d6b-7ec5999ff1-426611689&mc_cid=7ec5999ff1&mc_eid=031d0d672a", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "changes.jpg", + "alt": "A transgender person leaning over a bridge in a park." + }, + { + "monthYear": "June 2020", + "headlineText": "Library Honors Stellar Undergraduate Researchers", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/ucla-library-honors-stellar-undergraduate-researchers", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "ucla-library-prize-winners-2020.jpg", + "alt": "Montage of seven student headshots, with blue graphic in bottom-right reading UCLA Library Prize for Undergraduate Research" + }, + { + "monthYear": "July 2020", + "headlineText": "Online Publishing of Music Scores Makes History", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/library-open-access-publishing-of-musical-scores", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "michael-gilbertson-ucla-music-library.jpg", + "alt": "Finalist for the Pulitzer Prize Michael Gilbertson, wearing a black sweater, overlooking a city" + }, + { + "monthYear": "July 2020", + "headlineText": "Three Professors Recognized for Their Work to Make Classes Affordable", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/ucla-library-awards-three-professors-for-their-work-to-make-classes-affordable", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "clarice-aiello-ucla-library-ACMI-Award.jpg", + "alt": "Assistant electrical and computer engineering Professor Clarice Aiello standing in between two buildings" + }, + { + "monthYear": "August 2020", + "headlineText": "New Shipping Service Delivers UCLA-owned Books to Researchers' Residences", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/ucla-library-supports-researchers-with-shipping-service-for-ucla-owned-books#:~:text=UCLA%20Library%20supports%20researchers%20with%20shipping%20service%20for%20UCLA%2Downed%20books,-Beyond%20My%20Ken&text=Augmenting%20its%20efforts%20to,need%20them%20for%20their%20work.", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "stack-of-books-with-bookmarks.jpeg", + "alt": "Stack of books, most with Arabic script on the spines, with protruding bookmarks" + }, + { + "monthYear": "August 2020", + "headlineText": "New Projects Digitize and Document Activism and Political Expression Around the World", + "snippet": "", + "to": "https://www.library.ucla.edu/news/ucla-library-program-announces-new-projects-digitize-document-activism-political-expression?_ga=2.127415949.1056200153.1633967043-578962395.1613491729", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "market-scene-modern-endangered-archives-program.jpg", + "alt": "Many women in open-air market standing over bushels of produce" + }, + { + "monthYear": "September 2020", + "headlineText": "Learning From the Past: Collection Tells the Story of the 1918 Influenza Pandemic", + "snippet": "", + "to": "https://newsroom.ucla.edu/magazine/1918-influenza-pandemic-ucla-library", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "influenza-patients-fort-riley-kansas.jpg", + "alt": "Influenza patients at Camp Funston lined up in beds" + }, + { + "monthYear": "October 2020", + "headlineText": "Page and Pickup Service Makes Circulating Materials Available to Faculty and Students", + "snippet": "", + "to": "https://www.library.ucla.edu/news/ucla-library-introduces-page-pickup-service", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "page-pickup-ucla-library.jpg", + "alt": "Blue graphic wth icon of person on left and book on right. Text reads Introducing the UCLA Library's Page and Pickup Service for Students and Faculty" + }, + { + "monthYear": "October 2020", + "headlineText": "Library Seeks Narrators for New COVID-19 Oral History Project", + "snippet": "", + "to": "https://newsroom.ucla.edu/dept/faculty/ucla-library-seeks-narrators-for-newly-launched-covid-19-oral-history-project", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "walking-towards-powell-library.jpg", + "alt": "Person holding orange bag walking up the steps of Powell Library" + }, + { + "monthYear": "October 2020", + "headlineText": "Fall 2020 Remote Public Programs Announced", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/ucla-library-fall-2020-remote-public-programs", + "subtitle": "The Great Pivot: Library Launches Pilot Emergency Services", + "featured": "", + "src": "library-workshops-fall-2020.jpg", + "alt": "Blue graphic with seven hexagons" + }, + { + "monthYear": "October 2020", + "headlineText": "Mystery of the Wax Museum. Restoring Two-color Technicolor with Digital Tools", + "snippet": "

The discovery of an 87-year-old nitrate print found in ex-studio president Jack Warner’s private vault, and a second nitrate print with French subtitles, made possible the intricate restoration of Mystery of the Wax Museum (1932), the final Hollywood feature to be produced in the two-color (red/green) Technicolor process. Explore the history of the restoration of this once lost film, completed by the UCLA Film & Television Archive in 2020. — By film preservationist Scott MacQueen, published in the Journal of Film Preservation, page 105.

", + "to": "https://en.calameo.com/fiaf/read/0009185405e93f4ed62de", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": true, + "src": "scott-macqueen-ucla-film-television-archive.jpg", + "alt": "Sketch of Scott McQueen wearing a plaid shirt, with yellow background" + }, + { + "monthYear": "November 2020", + "headlineText": "Digital Archivist Shira Peltzman Among 2020 Digital Preservation Award Finalists", + "snippet": "", + "to": "https://www.dpconline.org/events/digital-preservation-awards/dpa2020-levels-of-born-digital-access", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "sound-waves-through-computer-screen.jpg", + "alt": "Illustration of multi-colored sound waves passing through a computer screen" + }, + { + "monthYear": "December 2020", + "headlineText": "The WI+RE Way: A Manifesto and a Process for Learner-Led Design", + "snippet": "

WI+RE (Writing Instruction + Research Education), a team of student employees at the UCLA Library, focuses on helping fellow learners succeed in their writing and research projects. WI+RE's manifesto articulates the shared values of undergraduate and graduate student employees and Library staff, and reveals how they approach learning and design (hint: it's about collaboration). The team uses a learner-centered design toolkit to create and continually improve online learning modules. — Coauthored by Science Librarian Renee Romero, published by the Journal of New Librarianship.

", + "to": "https://newlibs.org/index.php/jonl/article/view/703", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": true, + "src": "renee-romero-ucla-library.jpg", + "alt": "Sketch of Renee Romero, wearing glasses, with yellow background" + }, + { + "monthYear": "January 2021", + "headlineText": "Alumna May Hong HaDuong Named Director of the UCLA Film & Television Archive", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/may-hong-haduong-director-ucla-film-television-archive", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "FTVA-director-may-hong-haduong-credit-juan-tallo.jpg", + "alt": "May Hong HaDuong leaning against a pillar with arms crossed." + }, + { + "monthYear": "January 2021", + "headlineText": "Film & Television Archive Receives Getty Foundation Grant for Science Fiction Program", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/six-ucla-arts-projects-receive-getty-pacific-standard-time-grants#:~:text=The%20six%20grants%2C%20which%20were,for%20Medieval%20and%20Renaissance%20Studies", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "Space-is-the-Place.jpg", + "alt": "A man in a futuristic head ornament surrounded by a crowd." + }, + { + "monthYear": "January 2021", + "headlineText": "UCLA Library Announces Winter 2021 Public Programs", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/ucla-library-winter-2021-public-programs", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "radical-publishing-cdmx-ucla-library.jpg", + "alt": "A group of people sitting around a table with papers on it" + }, + { + "monthYear": "February 2021", + "headlineText": "Histories of Black-owned Businesses in Los Angeles Preserved by UCLA Library", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/ucla-oral-histories-black-businesses-los-angeles", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "staff-photo-golden-state-mutual-life-insurance.jpg", + "alt": "A large group of staff in front of the Golden State Mutual Life Insurance Building" + }, + { + "monthYear": "February 2021", + "headlineText": "Librarians Curate Reading List of Black Authors and Creators in Recognition of Black History Month", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/powell-library-community-collections-black-authors-creators", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "ucla-highlighting-black-authors-creators.jpg", + "alt": "A collage of eight books written by black authors" + }, + { + "monthYear": "March 2021", + "headlineText": "Modern Endangered Archives Program is Saving the Past", + "snippet": "", + "to": "https://newsroom.ucla.edu/magazine/modern-endangered-archives-program-ucla-library", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "modern-endangered-archives-saving-past.jpg", + "alt": "A collection of black and white photographs that are stills from the Albanian National Film Archive" + }, + { + "monthYear": "March 2021", + "headlineText": "University of California and Elsevier Reach Agreement Restoring Access to Journals", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/university-of-california-and-elsevier-reach-agreement-restoring-access-to-journals", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "ucla-research-library-exterior.jpg", + "alt": "The front entrance of the Charles E. Young Research Building" + }, + { + "monthYear": "March 2021", + "headlineText": "Film & Television Archive Celebrates Women’s History Month with Maya Angelou’s 'The Tapestry'", + "snippet": "", + "to": "https://newsroom.ucla.edu/dept/faculty/film-television-archive-celebrates-womens-history-month-with-maya-angelous-the-tapestry", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "visions-the-tapestry.jpg", + "alt": "A still from The Tapestry directed by Maya Angelou of a woman seated at a desk with arms crossed over a typewriter." + }, + { + "monthYear": "March 2021", + "headlineText": "Manchu Language Pedagogical Practices: The Connections Between Manuscript and Printed Books", + "snippet": "

This publication explores the history of Manchu language education during the Qing dynasty in order to reconstruct the relationships between printed pedagogical genres and their manuscript counterparts. The paper explores three aspects of Manchu language education – institutions, textbooks and students' materials – to radically expand our view of the role Manchu language education played during the Qing Dynasty. — By Devin Fitzgerald, curator of rare books and history of printing, published in Saksaha: A Journal of Manchu Studies.

", + "to": "https://quod.lib.umich.edu/s/saksaha/13401746.0017.001?view=text;rgn=main", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": true, + "src": "devin-fitzgerald-ucla-library.jpg", + "alt": "ketch of Devin Fitzgerald, with yellow background" + }, + { + "monthYear": "April 2021", + "headlineText": "Library Welcomes Bruins Back to Designated Campus Spaces", + "snippet": "", + "to": "https://covid-19.ucla.edu/library-welcomes-bruins-back-to-designated-campus-spaces/", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "student-laptop-ucla-research-library.jpeg", + "alt": "A woman wearing a mask and blue sweatshirt with a laptop in the Charles E. Young Research Library" + }, + { + "monthYear": "April 2021", + "headlineText": "Virtual Programs Enrich Academic Experiences and Advance Knowledge Creation", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/ucla-library-announces-spring-2021-public-programs", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "chinese-wood-engraving-ucla-library.jpg", + "alt": "A rare wood engraving depicting farm life in China from the library's collections" + }, + { + "monthYear": "April 2021", + "headlineText": "In Memoriam: Gloria Werner, 80, University Librarian Emerita", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/in-memoriam-gloria-werner-university-librarian-emerita", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "gloria-werner-louise-darling.jpg", + "alt": "Gloria Werner holding a book beside Louise Darling" + }, + { + "monthYear": "May 2021", + "headlineText": "$2 Million Gift Advances Mission of UCLA Library’s Biomedical Library", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/2-million-gift-biomedical-library-lee-oetzel", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "ucla-biomedical-library-entrance.jpg", + "alt": "The entrance doors to the Louise M. Darling Biomedical Library and the back of a person wearing jeans and a t shirt walking into the library" + }, + { + "monthYear": "May 2021", + "headlineText": "Maureen Russell named 2021 Librarian of the Year", + "snippet": "", + "to": "https://newsroom.ucla.edu/dept/faculty/maureen-russell-2021-librarian-of-the-year", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "maureen-russell-ucla-librarian-of-year.jpg", + "alt": "Maureen Russell with front of a blurred background" + }, + { + "monthYear": "May 2021", + "headlineText": "Tips on Preserving Family Histories", + "snippet": "", + "to": "https://newsroom.ucla.edu/magazine/oral-family-histories-teresa-barnett", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "ucla-preserving-family-histories-collage.jpg", + "alt": "An illustration of a side profile of a woman wearing glasses in front of a house and stroller with the number 1932 at the top and 1994 at the bottom" + }, + { + "monthYear": "May 2021", + "headlineText": "T-Kay Sangwand Spins UCLA Library Archives Into the Fabric of Los Angeles", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/t-kay-sangwand-spins-ucla-library-archives-into-the-fabric-of-los-angeles", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "5-12-21-celebration-spectrum-ucla-library-archives.jpeg", + "alt": "Sign announing the Celebration Spectrum event in Grand Park" + }, + { + "monthYear": "May 2021", + "headlineText": "Collaborative Digital Projects in the Undergraduate Humanities Classroom: Case Studies with TimelineJS", + "snippet": "

UCLA Librarians successfully implemented an open-source digital tool that enables everyone – including beginners – to create interactive timelines into a pair of undergraduate humanities capstone seminars. The tool, TimelineJS, empowers students to explore the historical contexts of primary sources by visualizing the chronology of historical periods. An engaging alternative to traditional research paper assignments, these case studies also describe models of faculty-librarian collaboration in assignment design and implementation. — Head of Public Services, Outreach and Community Engagement in Library Special Collections Courtney "Jet" Jacobs and Librarian for English and History and Head of Teaching and Learning Matthew Johnson are among the coauthors, published by The Journal of Interactive Technology and Pedagogy.

", + "to": "https://jitp.commons.gc.cuny.edu/classroom-timeline-projects/", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": true, + "src": "jet-jacobs-matt-johnson-ucla-library.jpg", + "class":"two-librarians", + "alt": "Sketch of Jet Jacobs and Matt Johnson, with turqoise background" + }, + { + "monthYear": "June 2021", + "headlineText": "LGBTQ Series ‘In the Life’ Remains as Relevant as Ever", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/in-the-life-film-television-archive", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "in-the-life-melissa-etheridge-credit-charles-ignacio.jpeg", + "alt": "A man interviewing Melissa Etheridge at an event near the U.S. Capitol." + }, + { + "monthYear": "June 2021", + "headlineText": "Fowler Exhibition Spotlights a Century of Collecting at UCLA", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/fowler-exhibition-spotlights-century-of-collecting", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "ucla-banner-with-seal-university-archives.jpg", + "alt": "Blue banner with UCLA in yellow lettering, with the U and C separated from the L and A by the university's seal" + }, + { + "monthYear": "June 2021", + "headlineText": "Cannes Classics Features ‘The Killing Floor,' Preserved by Film & Television Archive", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/killing-floor-cannes-classics-2021-lineup", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "killing-floor.jpg", + "alt": "An actor in The Killing Floor holding a megaphone and speaking to a crowd." + }, + { + "monthYear": "June 2021", + "headlineText": "Library Acquires New Materials Based on Student Proposals", + "snippet": "", + "to": "https://newsroom.ucla.edu/releases/ucla-library-acquires-new-materials-based-on-student-proposals", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "looking-at-parchment-scroll.jpeg", + "alt": "Five people looking at parchment scroll of ancient text" + }, + { + "monthYear": "June 2021", + "headlineText": "Exceptional Undergraduate Researchers Recognized by UCLA Library", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/exceptional-undergraduate-researchers-recognized-by-ucla-library", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "2021-ucla-library-prize-winners.jpg", + "alt": "Collage of 16 headshots, with ror rows or four people each" + }, + { + "monthYear": "June 2021", + "headlineText": "Restoration of 1967 Film Offers Rare Look at the Lives of Four Trans Women in NYC", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/queens-at-heart-rediscovering-a-pre-stonewall-portrait-of-trans-lives", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "queens-at-heart-restoration.jpg", + "alt": "Four trans women seated on a sofa. Left side of the image illustrates fading and damage before restoration, right side of the image shows the restored version." + }, + { + "monthYear": "June 2021", + "headlineText": "UCLA Library/OCLC Non-roman Script Project Bridges Access Gaps to Research Materials", + "snippet": "", + "to": "https://www.arl.org/blog/ucla-library-oclc-non-roman-script-project-bridges-access-gaps-to-research-materials/", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": "", + "src": "studying-ucla-powell-library.jpg", + "alt": "Student wearing a blue jeans jacket studying in library" + }, + { + "monthYear": "June 2021", + "headlineText": "The Teaching with Primary Sources Cookbook", + "snippet": "

In the chapter, "Creating a Showstopper: Student-Curated Exhibitions," the coauthors detail a structured approach to teaching students how to curate exhibitions using primary source materials based on a "recipe" format. Students learn how to conduct research in special collections, to tie abstract concepts from a course to concrete primary sources and to think critically about their audience. — Coauthored by Research and Instruction Librarian Katherine Kapsidelis, published by the Association of College and Research Libraries.", + "to": "https://escholarship.org/content/qt59t9h70w/qt59t9h70w.pdf", + "subtitle": "The New Normal: Temporary Remote Instruction Continues", + "featured": true, + "src": "katherine-kapsidelis-ucla-library.jpg", + "alt": "Sketch of Katherine Kapsidelis, with yellow background" + }, + { + "monthYear": "July 2021", + "headlineText": "UC Library Search is Here", + "snippet": "", + "to": "https://www.library.ucla.edu/news/uc-library-search-here", + "subtitle": "A Return to Campus: In-person Classes Resume September 23", + "featured": "", + "src": "uc-library-search-ucla-map.jpg", + "alt": "Map of Californa with arrows pointing to 10 locations. text reads UC Library Search x UCLA Library" + }, + { + "monthYear": "July 2021", + "headlineText": "Film Preservationist Scott MacQueen On the Future of Saving the Past", + "snippet": "", + "to": "https://newsroom.ucla.edu/stories/film-preservationist-scott-macqueen-on-the-future-of-saving-the-past", + "subtitle": "A Return to Campus: In-person Classes Resume September 23", + "featured": "", + "src": "sons-of-the-desert-restoration.JPG", + "alt": "Two monitors showing comedy duo Laurel and Hardy in a movie scene. One image is heavily scratched, while the other image is clean." + }, + { + "monthYear": "July 2021", + "headlineText": "Demystifying East Asian Language Monograph Publishing: Contemplations on the Current Status, Challenges, and Opportunities", + "snippet": "

Growing trends in library budgets reflect a shift to purchasing resources in electronic format over print, an approach which does not always cater to the needs of East Asian scholars. This article surveys the state of the monograph publishing landscape in East Asia, with a focus on China, Japan and Korea. Drawing on existing statistics, interviews with leading vendors and librarians' perspectives, the authors explore major issues in East Asian e-book publishing and make recommendations for future improvement. — Coauthored by Japanese Studies Librarian Tomoko Bialock, published by The Journal of Academic Librarianship.

", + "to": "https://reader.elsevier.com/reader/sd/pii/S0099133321000616?token=23951DA54EAE546F180612EA4FD4014ABFAD19325669B00519C86C3ACFEA87ECA274268E07B8989E3932F309F1D33737&originRegion=us-east-1&originCreation=20210503203711", + "subtitle": "A Return to Campus: In-person Classes Resume September 23", + "featured": true, + "src": "tomoko-bialock-ucla-library.jpg", + "alt": "Black and white portrait sketch of woman wearing glasses, with yellow background" + }, + { + "monthYear": "August 2021", + "headlineText": "UCLA Library Locations to Open Sept. 13; Temporary Remote Services to be Discontinued", + "snippet": "", + "to": "https://www.library.ucla.edu/news/ucla-library-locations-open-sept-13-temporary-remote-services-be-discontinued", + "subtitle": "A Return to Campus: In-person Classes Resume September 23", + "featured": "", + "src": "walking-into-ucla-science-library.jpeg", + "alt": "Person wearing backpack walking under sign reading UCLA Science and Engineering Library" + }, + { + "monthYear": "September 2021", + "headlineText": "Most Liked Instagram Post Ever: Library Locations Reopening", + "snippet": "", + "to": "https://www.instagram.com/p/CTyYAkMraP1/", + "subtitle": "A Return to Campus: In-person Classes Resume September 23", + "featured": "", + "src": "ucla-library-most-liked-instagram-post.jpg", + "alt": "Screengrab of instagram post, with photo of students walking through a library" + }, + { + "monthYear": "September 2021", + "headlineText": "True Bruin Welcome at Three Library Locations", + "snippet": "", + "to": "https://www.facebook.com/uclalibrary/posts/1037111263552862", + "subtitle": "A Return to Campus: In-person Classes Resume September 23", + "featured": "", + "src": "three-students-table-ucla.jpg", + "alt": "Three students on campus engaging with another, who has his back to the camera" + }, + { + "monthYear": "September 2021", + "headlineText": "How Digital Tools Unlocked Primary Sources for Remote Learning", + "snippet": "", + "to": "https://www.library.ucla.edu/news/digital-tools-unlock-primary-sources-remote-learning", + "subtitle": "A Return to Campus: In-person Classes Resume September 23", + "featured": "", + "src": "screngrab-of-scalar.jpg", + "alt": "Screengrab of text and books" + }, + { + "monthYear": "September 2021", + "headlineText": "New Endowment for Japanese Collections at the East Asian Library", + "snippet": "", + "to": "https://www.library.ucla.edu/news/new-endowment-japanese-collections-east-asian-library", + "subtitle": "A Return to Campus: In-person Classes Resume September 23", + "featured": "", + "src": "ucla-library_nakatani-bookplate-crop.jpg", + "alt": "Black and white portrait of man and woman" + } +], + "featurette": [ + { + "title": "Pandemic Spurs Virtual Screening Room, Bringing Moving Images to a Global Audience", + "to": "https://www.cinema.ucla.edu/blogs/archive-blog/2022/01/31/pandemic-spurs-virtual-screening-room", + "src": "virtual-screening-room-toll-sea.jpg", + "text": "When its theatrical home closed its doors in March 2020 due to COVID-19 the UCLA Film & Television Archive shifted public programming to an ambitious new online screening model.", + "alt": "A woman smiling and holding a rose." + }, + { + "title": "Video Series Explores Impact of Library Initiatives that Open Access to Materials", + "to": "https://www.library.ucla.edu/news/open-sourced-bruins-share-their-openucla-impact-stories", + "src": "open-sourced-video-ucla-library.jpg", + "text": "Affordable course materials, open educational resources, digital collections and contemporary music scores reduce barriers for researchers, advancing knowledge creation.", + "alt": "UCLA professor Genevieve Carpio, gesticulating while seated at a table, with a video play button at center." + }, + { + "title": "UC Library Search: The Future is Shared", + "to": "https://www.library.ucla.edu/news/uc-library-search-future-shared", + "src": "uc-library-search-laptop-book.jpeg", + "text": "One year after Covid-19 struck, 160 University of California librarians and staff across 10 campuses launched the first-ever systemwide integrated library discovery and circulation management platform – on schedule.", + "alt": "Laptop screen reading UC Library Search with book pages behind it." + } + ], + "remoteLearning": [ + { + "title": "Pages Viewed Through HathiTrust Digital Library to Support Collections Access", + "src": "ucla-library-hathitrust-partnership.jpg", + "alt": "Blue graphic reading HathiTrust Partnership 3,958,321" + }, + { + "title": "One-on-one Appointments with Librarians and Staff to Advance UCLA Research", + "src": "ucla-library-virtual-research-consultations.jpg", + "alt": "Blue graphic reading Virtual Research Consultations 6,059" + }, + { + "title": "Laptop, Tablet, Hotspot Loans – Picked Up on Campus or Shipped to Users' Residences", + "src": "ucla-library-device-loans.jpg", + "alt": "Blue graphic reading Device Loans 2,902" + }, + { + "title": "Books and Other Physical Materials Picked Up by Users at Charles E. Young Research Library", + "src": "ucla-library-campus-pickup.jpg", + "alt": "Blue graphic reading Campus Pickup 5,402" + }, + { + "title": "Items Shipped to Users' Residences", + "src": "ucla-library-mail-delivery.jpg", + "alt": "Blue graphic reading Mail Delivery 2,220" + }, + { + "title": "Book Chapters and Journal Articles Scanned and Delivered Digitally", + "src": "ucla-library-digital-delivery.jpg", + "alt": "Blue graphic reading Digital Delivery 2,280" + } + ] +} diff --git a/data/impact-report_slug.json b/data/impact-report_slug.json new file mode 100644 index 000000000..0f545c5cd --- /dev/null +++ b/data/impact-report_slug.json @@ -0,0 +1,61 @@ +{ + "bannerHeader": { + "title": "After Covid Triggered a Campus Closure, UCLA Library Reimagined Its Services", + "text": "Undergraduates reflect on successfully completing their research projects while learning remotely.", + "byline": [ + "Written by Cynthia Lee", + "Illustrations and Animation by Brett Affrunti" + ], + "alignRight": true + }, + "mainStory": { + "textBlocks": [ + "

When Yaying (Tiffany) Bai ‘21 learned that UCLA was suspending in-person classes and halting most of its campus operations on March 11, 2020 to stop the spread of COVID-19, she felt suddenly unmoored, as did many UCLA students.

The art history major was in the middle of researching her senior thesis on the changing nature of Korea and Korean art as reflected by international expositions during a turbulent era from the 1890s to 1920s.

“I was so reliant on the physical copies of books, and I was new to the digital interface,” Bai recalled. “A lot of students go to the library to find books and other resources, but we also go there because we know librarians are always on site to help us with bibliographies and with locating books and images. They are always so resourceful. I think many of us didn’t know at first how to reach out to them after the shutdown.”

For Assistant Professor of History Bharat Venkat, who was teaching a capstone course in conjunction with his UCLA Heat Lab, the campus closure added a whole new level of difficulty for him and his students.

“Our goal was to use digital tools and resources to learn something new about heat,” Venkat said. However, he wasn’t quite sure how he would prepare his students to do that when his class went virtual. “Like most of us, I was figuring it out as I went.”

Fortunately, Bai and Venkat, along with the vast majority of students and faculty at UCLA, had people they could turn to: the information specialists at UCLA Library.

", + "

Through online tutorials with librarians, for example, students enrolled in Venkat’s “Red Hot LA: Mapping Racism, Urban Design and Thermal Inequality” course learned how to thread their way through layers of online databases, archives, collections and search engines to find the resources they needed for their research. With the help of Library specialists, they discovered a dynamic new way to tell a story online about how a community’s experience of heat and extreme heat events is affected by urban planning policies and the availability of greenspace, primarily provided by parks and trees.

“UCLA Library staff were absolutely brilliant,” said the history professor, “pointing us to digital archives we hadn’t even thought to ask about – films, newspapers, archives related to local figures … as well as teaching us how to use a range of tools, such as ArcGIS Story Maps, to make powerful arguments using these materials.”

", + "

Bai soon discovered that librarians were highly responsive during the 18-month closure if she needed a book or help finding an image for her project. “I knew I could get whatever I needed really quickly. If they couldn’t get me a scan of what I needed, then I was referred to another library or database.” Being able to easily reach a librarian “was so reassuring. Just knowing there was someone there for you during this time of uncertainty was really helpful.”

Statistics tracking interactions with Library users show that students – whether they remained in Westwood or returned to their home states and countries – took advantage of the Library’s new pilot emergency services, developed to support remote learning. By the time campus resumed in-person classes in Sept. 2021, the Library had provided 6,059 virtual research consultations, held 93 online workshops, embedded librarians into 332 Zoom classroom sessions, loaned 2,902 laptops, tablets and wifi hotspots, and delivered via email, mail and campus pickup nearly 10,000 books, scanned chapters and journal articles, and other materials. And almost 4 million pages were viewed through the HathiTrust Digital Library Emergency Temporary Access Service, which provided access to UC-held physical copies of materials made unavailable by the pandemic closure.

", + "

While statistics reflect the Library's high level of engagement with students, there was also concern about their mental wellness during this most trying of times. To help students cope, the UCLA Library offered virtual stressbusters care packages each academic quarter during the pandemic. The webpage aggregated free films, positive affirmations, fun e-reads, puzzles, games and shared online meditations and culinary workshops being offered virtually by other campus organizations.

Another critical factor that helped researchers advance their work was collaboration among librarians with different skill sets and expertise in specific collections, subject matter and data expertise.

With communication channels now open on Zoom, Google Workspace, Slack and other platforms, Library colleagues shared their experiences to develop best practices for online teaching, consulting and working online, said Zhiyuan Yao, a specialist in spatial data science at the Library’s Data Science Center.

The feedback and collaboration among librarians with different skill sets and expertise was invaluable, said Yao, whose advice and suggestions were critical to the success of students in the “Red Hot LA” class, Venkat said.

Fortunately, Yao already had a working relationship with Zoe Borovksy, librarian for digital research and scholarship and one of the staffers who reached out to Venkat's students with tutorials. "This project gave us a chance to show off our teamwork across Library departments," said Borovsky.

The student researchers received valuable assistance getting around other roadblocks. When they struggled to gain access to online subscription resources typically available on campus, UCLA Library created a helpful, user friendly website with student-produced videos and staff-created digital handouts to instruct students on how to set up a UCLA VPN (virtual private network) or proxy server that allows the Internet to recognize that an off-campus user is affiliated with UCLA.

When Tamar Ervin ‘22, a third-year studying space physics, needed help getting into restricted sites to do research for her final project for Jacob Bortnik’s class in machine learning for the physical sciences, she turned to UCLA Library, which had “tons of information online about how to access resources.”

“Instructions for using the VPN and other online resources are very clear and understandable, even to someone who may have never used these resources prior,” Ervin said.

Everything she needed, she found, was available online to complete her final research project on using machine learning techniques to improve the detection of coronal holes that exist on the outer layer of the sun. NASA and the U.S. Air Force funded her research.

“I think the Library did a great job of ensuring that its resources and staff were available to students who needed it throughout the 'virtual' year,” said Ervin. She is currently wrapping up her undergraduate degree, applying to Ph.D. programs and working with Jet Propulsion Laboratory’s exoplanet research group.

Ervin also took advantage of another Library service when her own computer malfunctioned. She was able to borrow a laptop through a UCLA Library program that lent laptops, chargers, headsets and other items to students, even if they needed them long-term.

“Tamar did a significant amount of independent research for her final project, extensively using a range of UCLA Library-provided journal papers and electronic textbooks that allowed her to rapidly learn the material she needed,” said Bortnik, associate professor of space physics, who described her project as “truly top-notch.”

", + "

A good illustration of what Bruins were able to achieve during the closure was provided by 16 outstanding scholars who were honored last May with the annual UCLA Library Prize for Undergraduate Research. Awarded since 2009, traditionally during a ceremony held in the Powell Library rotunda, 2021’s digital-first cohort showcased eight research papers or course projects in four different categories, some individually and some as group endeavors, which demonstrated exceptional use of Library collections and services. The award is a cornerstone of the campus’ annual Undergraduate Research Week.

", + "

Prize winners, including Bai and Ervin, launched investigations into complex problems that ranged from the effects of COVID-19 and social stigma on the undocumented Latinx community in California to the decline of competition in the agricultural marketplace due to decreasing antitrust enforcement.

In one of the most challenging projects, “It’s Always Sunny in Central LA,” four students enrolled in Venkat’s “Red Hot LA” class focused on two parks in the Westlake neighborhood – MacArthur and Lafayette parks. But because of the lockdown, the students couldn’t actually visit these spaces to conduct field work, take temperature readings, measure the canopy cover or interview park visitors.

“We would have loved to visit the parks in person,” said Alexandra Nechaev ‘21. But the pandemic made transportation and field research impossible.

Overcoming this challenge “required both resourcefulness and creativity to find source materials that could be used to explore their question,” Venkat commented in his letter of recommendation to the prize selection committee, composed of librarians and faculty.

The “Always Sunny” researchers turned to Borovsky and Yao, who helped guide them along their research path. Yao taught them the fundamentals of geospatial data, introduced them to datasets and cartographic sources, and showed them how to work with ArcGIS story mapping tools to build an immersive narrative using interactive maps, text, photographs, videos and other resources in a coherent way.

The learning curve for the students was intensely steep, Venkat noted. “Dr. Yao’s support was absolutely critical. Not only did she offer us brilliant tutorials on using ArcGIS tools, but she remained a critical support for students throughout the term.”

", + "

In Zoom sessions from her home, Borovsky showed students the resources available to them online, including the University of California’s Calisphere, a digital treasure trove of more than 2 million images, texts and recordings from California libraries, archives and museums.

“Zoe guided us through UCLA’s extensive databases and Special Collections archives, which were extremely helpful for our urban planning research and for accessing archival primary sources to better understand the parks we studied,” Nechaev recalled.

“From primary sources to demographic information, the resources we found were much more accessible to us than I could have imagined,” said the UCLA graduate, who is now doing a year of volunteer service before starting work on an M.D./Master of Public Health program.

Archival images of MacArthur and Lafayette parks helped the students visualize changes in the physical greenspace over the years while current-day videos they found online gave them on-site and aerial views.

Data sources from lists compiled by the Data Science Center “enabled us to see where parks were located within various Los Angeles neighborhoods in relation to the median household income, housing tenure and population density of the surrounding area,” explained Nechaev’s teammate Alice Lu ‘21 in a statement. The students also found quantitative data about the parks’ shape, size and features as well as the impact of heat on the area.

Pulling together all these factors, the students then delved into the history of public policy decisions affecting how greenspaces in the Westlake neighborhood were sized and shaped.

“In less capable hands, the sheer volume of data, and the range of data sources from which they drew would be overwhelming,” Venkat noted in his letter of recommendation to the prize selection committee. Instead, the students presented maps that allow the viewer “to superimpose layers that reveal critical insights about the intersection of thermal inequality, race, class and the built environment.”

Venkat also praised his campus colleagues. “The staff at the UCLA Library are brilliant educators as well as facilitators of student learning. I’m exceedingly grateful for their support, their flexibility and their immense creativity in finding work-arounds in difficult times.”

For its efforts, the team was honored as the top project for its use of Library Special Collections, sharing a $500 award.

", + "

While many in retrospect might remember the 18-month campus closure for what they lost, still others in the UCLA community will recall how much they gained from the experience.

“I think I am more resourceful now in terms of being able to look for the information I need,” said Bai, now an M.A. candidate in art history at Columbia University. “It’s helping me a lot in graduate school.”

While the pandemic greatly complicated students’ research progress, noted Kristopher Kersey, Bai’s art history professor, “she had no choice but to adapt to the digital research environment. Ultimately, I believe she developed into a skilled online researcher,” he said, calling her “one of the most diligent, responsible, highly organized and motivated students I have ever advised.”

Librarians on campus also gained new perspectives about Library services and how they may evolve in the future. “A lot more work is going to be done remotely, even on a campus like UCLA’s that is about the in-person experience,” said Ginny Steel, the Norman and Armena Powell University Librarian. “Looking ahead, UCLA Library will accelerate its transition to a digital environment while balancing in-person and remote services to meet our users’ needs wherever they are.”

" + ], + "images": [ + { + "src": "ucla-library-remote-help-illustration.jpg", + "sizes": "100vw", + "alt": "Sketch of person wearing glasses and holding a tablet. A blue spotlight eminates from the tablet, shining on a librarian wearing a business suit holding a book in front of a bookcase.", + "caption": "UCLA librarians and staff held more than 6,000 online research consultations with the UCLA scholarly community between March 2020 and September 2021, an average of more than 10 per day. In addition, a consortium of global librarians are accessible to answer Bruin research questions 24/7.", + "height": 1080, + "width": 1920 + }, + { + "src": "ucla-library-laptop-loan-illustration.jpg", + "sizes": "100vw", + "alt": "Sketch of person in turquoise sweatshirt receiving a black laptop bag from person wearing black shirt. In the background are people, trees, a black cat and rust-colored building", + "caption": "Device loans from the Campus Library Instructional Computing Commons (CLICC) provided a lifeline for many Bruins during remote teaching and learning. CLICC coordinated nearly 3,000 long-term loans of laptops, Chromebooks, iPads, and MiFi units, picked up on campus and shipped to users’ residences, between March 2020 and September 2021.", + "height": 1080, + "width": 1920 + }, + { + "src": "ucla-library-book-scan-illustration.jpg", + "sizes": "100vw", + "alt": "Sketch of a person placing a book on a flat-bed scanner, while sitting in front of two computer monitors. In the background are two people, one carrying books and the other pushing a book cart.", + "caption": "With stacks and archives inaccessible, the Library mobilized several delivery services. More than 7,500 books and other physical materials were either picked up on-campus or delivered to users' homes, while another 2,280 book chapters and journal articles were emailed to Bruin researchers.", + "height": 1080, + "width": 1920 + } + ], + + "pullQuote": [ + { + "text": "I think the Library did a great job of ensuring that its resources and staff were available to students who needed it throughout the 'virtual' year.", + "attribution": "Tamar Ervin ‘22" + }, + + { + "text": "A lot more work is going to be done remotely, even on a campus like UCLA’s that is about the in-person experience. Looking ahead, UCLA Library will accelerate its transition to a digital environment while balancing in-person and remote services to meet our users’ needs wherever they are.", + "attribution": "Ginny Steel, the Norman and Armena Powell University Librarian" + } + ] + } +} diff --git a/data/impact-social-media.json b/data/impact-social-media.json deleted file mode 100644 index be8a7018d..000000000 --- a/data/impact-social-media.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "links": [ - { - "name": "Loripsum", - "text": "Lorem ipsum", - "to": "/example/uri/1", - "target": "_blank" - }, - { - "name": "Mauris finibus", - "text": "Mauris finibus", - "to": "/example/uri/2", - "target": "_self" - }, - { - "name": "Curabitur ac odio vulputate", - "text": "Curabitur ac odio vulputate", - "to": "/example/uri/3", - "target": "_self" - }, - { - "name": "Morbi quis tellus vel turpis", - "text": "Morbi quis tellus vel turpis", - "to": "/example/uri/4", - "target": "_self" - } - ], - "shortLinks": [ - { - "name": "Vulputa", - "text": "Lorem ipsum", - "to": "/example/uri/1", - "target": "_blank" - }, - { - "name": "Marinibus", - "text": "Mauris finibus", - "to": "/example/uri/2", - "target": "_self" - }, - { - "name": "Curabitur", - "text": "Curabitur ac odio vulputate", - "to": "/example/uri/3", - "target": "_self" - }, - { - "name": "Morbiquis", - "text": "Morbi quis tellus vel turpis", - "to": "/example/uri/4", - "target": "_self" - } - ] -} \ No newline at end of file diff --git a/data/mock-api.json b/data/mock-api.json new file mode 100644 index 000000000..670b26f0a --- /dev/null +++ b/data/mock-api.json @@ -0,0 +1,242 @@ +{ + "image": { + "src": "https://via.placeholder.com/1920x1080", + "srcset": "https://via.placeholder.com/960x540 960w, https://via.placeholder.com/1280x720 1280w, https://via.placeholder.com/1920x1080 1920w", + "sizes": "100vw", + "alt": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + "title": "Lorem ipsum", + "caption": "Lorem ipsum", + "height": 1080, + "width": 1920 + }, + "images": [ + { + "src": "https://via.placeholder.com/1920x1080", + "srcset": "https://via.placeholder.com/960x540 960w, https://via.placeholder.com/1280x720 1280w, https://via.placeholder.com/1920x1080 1920w", + "sizes": "100vw", + "alt": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + "title": "Lorem ipsum" + }, + { + "src": "https://via.placeholder.com/960x540", + "srcset": "https://via.placeholder.com/960x960", + "sizes": "100vw", + "alt": "Morbi quis tellus vel turpis auctor sagittis.", + "title": "Morbi quis tellus" + } + ], + "image_people": { + "src": "https://via.placeholder.com/960x540", + "srcset": "https://via.placeholder.com/960x960", + "sizes": "100vw", + "alt": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + "title": "Lorem ipsum" + }, + "video": { + "height": 1892, + "width": 3360, + "videoUrl": "https://static.library.ucla.edu/ucla-impact-report-animation.mp4" + }, + "links": [ + { + "name": "Loripsum", + "text": "Lorem ipsum", + "to": "/example/uri/1", + "target": "_blank" + }, + { + "name": "Mauris finibus", + "text": "Mauris finibus", + "to": "/example/uri/2", + "target": "_self" + }, + { + "name": "Curabitur ac odio vulputate", + "text": "Curabitur ac odio vulputate", + "to": "/example/uri/3", + "target": "_self" + }, + { + "name": "Morbi quis tellus vel turpis", + "text": "Morbi quis tellus vel turpis", + "to": "/example/uri/4", + "target": "_self" + } + ], + "shortLinks": [ + { + "name": "Vulputa", + "text": "Lorem ipsum", + "to": "/example/uri/1", + "target": "_blank" + }, + { + "name": "Marinibus", + "text": "Mauris finibus", + "to": "/example/uri/2", + "target": "_self" + }, + { + "name": "Curabitur", + "text": "Curabitur ac odio vulputate", + "to": "/example/uri/3", + "target": "_self" + }, + { + "name": "Morbiquis", + "text": "Morbi quis tellus vel turpis", + "to": "/example/uri/4", + "target": "_self" + } + ], + "bricks": [ + { + "image": { + "src": "https://via.placeholder.com/1920x1920", + "srcset": "https://via.placeholder.com/960x960 960w, https://via.placeholder.com/1280x1280 1280w, https://via.placeholder.com/1920x1920 1920w", + "sizes": "100vw", + "alt": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + "title": "Lorem ipsum" + }, + "category": "Fermentu", + "title": "Maecenas Leo Mauris", + "prompt": "Velit Exceptur", + "dates": "Datum 12 - Datum 23, 2021", + "to": "/llamacorn/uri/1" + }, + { + "image": { + "src": "https://via.placeholder.com/1920x1920", + "srcset": "https://via.placeholder.com/960x960 960w, https://via.placeholder.com/1280x1280 1280w, https://via.placeholder.com/1920x1920 1920w", + "sizes": "100vw", + "alt": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + "title": "Lorem ipsum" + }, + "category": "Fermentu", + "title": "Maecenas Leo Mauris Praesent finibus fermentum ligula, nec tristique", + "prompt": "Velit Exceptur", + "dates": "Datum 1 - Datum 18, 2021", + "to": "/visit/uri/2" + } + ], + "primaryNavlinks": [ + { + "name": "Get Help With...", + "url": "/help/", + "children": [ + { + "name": "Lorem ipsum", + "to": "/help/uri/1", + "target": "" + }, + { + "name": "Mauris finibus", + "to": "/help/uri/2", + "target": "" + }, + { + "name": "Curabitur ac odio vulputate", + "to": "https://catalog.library.ucla.edu/", + "target": "1" + } + ] + }, + { + "name": "Visit", + "url": "/visit/", + "children": [ + { + "name": "Lorem ipsum", + "to": "/visit/ur_self", + "target": "" + }, + { + "name": "Mauris finibus", + "to": "/visit/uri/2", + "target": "" + }, + { + "name": "Curabitur ac odio vulputate", + "to": "https://catalog.library.ucla.edu/", + "target": "1" + } + ] + }, + { + "name": "About", + "url": "/about/", + "children": [ + { + "name": "Lorem ipsum", + "to": "/about/uri/1", + "target": "" + }, + { + "name": "Mauris finibus", + "to": "/about/uri/2", + "target": "" + }, + { + "name": "Curabitur ac odio vulputate", + "to": "https://catalog.library.ucla.edu/", + "target": "1" + } + ] + }, + { + "name": "Support Us", + "to": "http://www.google.com", + "target": "1", + "children": [] + } + ], + "alert": { + "title": "Dropio, heroku", + "text": "Napster mozy sococo orkut convore scribd napster, twones diigo joukuu weebly. Sclipo jibjab scribd.", + "textLong": "Greplin prezi zillow zoosk orkut, zoosk gooru. Kiko xobni joukuu ideeli bitly joukuu, squidoo heroku hulu sifteo, zooomr jumo dropio chumby. Qeyno wikia oooooc jajah, ebay qeyno lala, jajah lijit. Etsy wufoo flickr movity sclipo heroku, oooooc etsy oooooc. Vimeo foodzie zoosk ebay, wesabe. Ebay doostang vuvox, xobni. Mozy joyent dropio gooru kippt, greplin skype. Kiko napster geni dogster yoono yammer disqus, hipmunk xobni odeo zynga loopt. Groupon klout divvyshot zinch elgg yoono airbnb, orkut zinch chartly squidoo." + }, + "categories": [ + { + "name": "Lorem ipsum", + "to": "/example/uri/1" + }, + { + "name": "Aliquam porta", + "to": "/example/uri/2" + } + ], + "article": { + "title": "Lorem ipsum dolor sit amet", + "to": "/example/to/uri/", + "author": "Mauris Finibus", + "categoryName": "Consectetur Adipiscing", + "excerpt": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quis tellus vel turpis auctor sagittis.

", + "text": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quis tellus vel turpis auctor sagittis. In blandit consectetur nisl, ut dignissim erat malesuada et. Vivamus eget viverra diam. Maecenas id sapien at est feugiat ultrices. In ornare ante sed turpis dapibus sodales. Curabitur tristique tristique ultrices. Duis at pharetra enim. Fusce imperdiet suscipit egestas. Duis ac porta justo, ac ultricies ipsum. Aliquam erat volutpat. Vestibulum dapibus malesuada lorem vel lobortis. Mauris finibus ante posuere justo aliquam, vel aliquet purus elementum.

", + "article": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quis tellus vel turpis auctor sagittis. In blandit consectetur nisl, ut dignissim erat malesuada et. Vivamus eget viverra diam. Maecenas id sapien at est feugiat ultrices. In ornare ante sed turpis dapibus sodales. Curabitur tristique tristique ultrices. Duis at pharetra enim. Fusce imperdiet suscipit egestas. Duis ac porta justo, ac ultricies ipsum. Aliquam erat volutpat. Vestibulum dapibus malesuada lorem vel lobortis. Mauris finibus ante posuere justo aliquam, vel aliquet purus elementum.

Aenean bibendum nisl tortor, vitae aliquet mi tristique a. Sed quis viverra sapien. Fusce pretium lorem nec nunc auctor, sed fringilla nisi consequat. Maecenas semper dolor sem, porttitor scelerisque lacus vestibulum eu. Praesent commodo, felis ac commodo pulvinar, ante lacus rutrum sapien, vel semper ex purus consectetur sem. Aenean dictum dolor in arcu ullamcorper auctor vitae quis nulla. Nullam felis nibh, vestibulum ac tellus fringilla, posuere varius lacus. Phasellus rhoncus quam at arcu lobortis commodo non id nisl. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent sit amet velit id ante tristique mollis sit amet vel felis. Donec auctor justo in mi luctus sagittis.

Donec eu eros in magna feugiat congue. Fusce pulvinar tempor ex eget gravida. Proin at metus nunc. Aliquam eu tempus augue. Donec porta et erat a ornare. Donec gravida mauris mi, vel imperdiet urna finibus sed. Nam id ex lacus. Ut faucibus aliquam nulla quis semper. Nunc commodo leo nec bibendum placerat. Integer fringilla accumsan enim, ac rhoncus lacus facilisis nec.

Fusce sed facilisis libero. Aenean elit neque, efficitur non orci nec, pellentesque cursus erat. Sed hendrerit laoreet fringilla. Nulla condimentum, sapien eget sodales efficitur, purus elit hendrerit mi, eget suscipit sem neque condimentum urna. Cras ullamcorper dolor libero, quis scelerisque magna maximus ut. Cras a enim dolor. Aliquam porta quam nec nunc mollis pretium. Morbi mattis, nunc in fringilla finibus, elit velit fringilla nibh, non auctor eros orci at mi. Nam sagittis maximus ante a tempus. Sed tincidunt lacus et tortor cursus fringilla. Quisque pretium malesuada finibus. Pellentesque placerat semper augue et viverra. In suscipit pretium vulputate. Pellentesque maximus ante vel diam scelerisque rutrum.

", + "date": "Fri, 02 Feb 1996 03:04:05 GMT" + }, + "searchHomeLinks": { + "linkItems": [ + { + "text": "Course Reserves", + "url": "https://catalog.library.ucla.edu/vwebv/enterCourseReserve.do", + "target": "_blank" + }, + { + "text": "UCLA Research Guides", + "url": "https://guides.library.ucla.edu/", + "target": "" + }, + { + "text": "Databases A-Z", + "url": "https://guides.library.ucla.edu/az.php", + "target": "_blank" + } + ], + "advancedSearchLink": { + "text": "Advanced Search", + "url": "https://www.library.ucla.edu/search", + "target": "_blank" + } + } +} diff --git a/data/serviceorresource_entries.json b/data/serviceorresource_entries.json new file mode 100644 index 000000000..2b0bfd894 --- /dev/null +++ b/data/serviceorresource_entries.json @@ -0,0 +1,48 @@ +{"id":"61493","to":"help/services-resources/document-delivery","slug":"document-delivery","title":"Document Delivery","summary":"

Library staff can scan and email available library items to patrons.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/CVZ_130513_UCLA_3772.jpg","height":1024,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/CVZ_130513_UCLA_3772.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/CVZ_130513_UCLA_3772.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/CVZ_130513_UCLA_3772.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/CVZ_130513_UCLA_3772.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/CVZ_130513_UCLA_3772.jpg 2560w","alt":"CVZ 130513 UCLA 3772","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"61805","typeHandle":"richText","richText":"

With document delivery, UCLA Library staff will copy items at the request of users. This fee-based service is provided only for articles available in print collections held by the Library. Users should consult UC Library Search before submitting a request to make sure UCLA has a print copy of the item.

\n

Items will be scanned and posted in PDF format on a secure web server unless another delivery option is selected. Requesters will be notified by email when the articles are available.

\n

Books are not available through document delivery. Individuals with current UCLA library cards can borrow books in person. Those without library cards should contact their local library to request an interlibrary loan.

","sectionTitle":"Overview"},{"id":"61808","typeHandle":"richText","richText":"

Individuals should provide credit card information by contacting participating libraries by telephone. Do not send credit card information by fax or email. Cost for each service is as follows:

\n
LibraryBasic ServicePer Page ChargesDelivery ChargesSpecial Services

UCLA Library — Interlibrary Loans

\n

280 Charles E. Young Dr.
\nLos Angeles, CA 90095-1575 US

\n

Phone: (310) 825-1733
Fax: (310) 825-4139
yrl-ill-l@library.ucla.edu

$15 per filled article and per page charges

\nThree to five days processing time

Articles longer than 30 pages subject to additional charge of $0.20 per page

N/A

Rush Fee: $10 in addition to Basic Fee

Shipped within one working day for requests received Monday through Friday between 8 a.m and 5 p.m.

Law — Access Services

1112 Law Building
\nLos Angeles, CA 90095-1458

Phone: (310)8 25-9317
\nFax: (310) 206-3680
express@law.ucla.edu
$7.50 per filled article, and per-page charges, plus sales tax if applicable

24-hour turnaround time Monday through Friday
$0.25 per page for photocopies, $0.75 per page for microform paper, $0.75 per page for faxU.S. Mail: $1 per item; cannot guarantee delivery date

Express Mail: charged to addressee's account

Hold at Law Library: No additional charge

Rush Fee: $15 per filled article, plus per-page charges; sales tax will be applied as applicable;

\n

Two-hour turnaround time for requests received Monday through Friday between 9 a.m. and 6 p.m.


Southern Regional Library Facility

305 De Neve Drive Parking Lot 17
\nBox 951388
\nLos Angeles, CA 90095-1388

\nPhone: (310) 206-2010
\nFax: (310) 206-5074
srlf-request@library.ucla.edu
$15 per filled article and per-page charges, plus sales tax if applicable

Three to five days processing time, plus delivery time via U.S. mail
Articles longer than 30 pages subject to additional charge of $0.20 per pageAdditional fees may apply for international faxes; no additional charge for web delivery

Rush Fee: $10 in addition to all other charges; ready for delivery or pick-up within one working day for requests received Monday through Friday between 8 a.m. and 5 p.m.

\n

Special Handling: $5 for preparing for commercial express delivery services; clients must supply UPS, Federal Express or other account number

","sectionTitle":"Payment"},{"id":"62063","typeHandle":"form","form":"
","sectionTitle":"Document Delivery Registration Form","sectionSummary":null}]} +{"id":"60398","to":"help/services-resources/yrl-lux-lab","slug":"yrl-lux-lab","title":"Lux Lab","summary":"

The Lux Lab provides emerging technology services to the UCLA community.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-find-space","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"research-library","title":"Charles E. Young Research Library"},{"to":"powell-library","title":"Powell Library"}],"associatedTopics":[{"text":"

Inventory and details of the 3D printers, 3D scanners and laser cutters available at UCLA Library's Lux Lab.

","title":"Lux Lab Equipment Information","slug":"lux-lab-equipment-information","uri":"help/services-resources/lux-lab-equipment-information"}],"button":[{"buttonText":"Submit a Lux Lab Request","buttonUrl":"https://jira.library.ucla.edu/servicedesk/customer/portal/11"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-162.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-162.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-162.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-162.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-162.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-162.jpg 2560w","alt":"UCLA 2019 08 01 162","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"60405","typeHandle":"richText","richText":"

About the Lux Lab

\n

The Lux Lab is a collection of emerging technology services offered by the UCLA Library, including 3D printing, mapping and scanning and laser etching and cutting. These services are available to all UCLA students, organizations, staff and faculty for work related to the university. Our unique services allow fast and convenient access for little or no cost to our patrons.

\n

All service requests and general inquiries can be submitted via the Lux Lab service portal. Information regarding the specifics of our equipment can be found on the Lux Lab Equipment Information page.

\n

Due to limited resources, we are no longer accepting personal project proposals. Other on-campus 3D printing resources include the UCLA Makerspaces in Boelter Hall and Rieber Hall, as well as the student organization 3D4E.

\n

We are always open to establishing partnerships with new clubs, organizations and classes. If you are interested in a partnership, submit a consultation request. You can also email us at LuxLab@library.ucla.edu.

","sectionTitle":null},{"id":"60829","typeHandle":"simpleCards","sectionTitle":"Lux Lab Locations","sectionSummary":null,"cards":[{"id":"60830","typeHandle":"internalServiceOrResource","contentLink":[{"id":"29551","uri":"visit/spaces/powell-lux-lab","slug":"powell-lux-lab","title":"Powell Lux Lab","summary":"

Located in 331 Powell, the Powell Lux Lab is home to our laser etcher, as well as our Formlabs and Lulzbot printers.

"}]},{"id":"60831","typeHandle":"internalServiceOrResource","contentLink":[{"id":"29543","uri":"visit/spaces/yrl-lux-lab","slug":"yrl-lux-lab","title":"YRL Lux Lab","summary":"

The YRL Lux Lab, located on the 1st floor, is home to our fleet of MakerBot printers and our Artec 3D scanners.

"}]}]},{"id":"60407","typeHandle":"richText","richText":"

Past Projects

\n

Lux Lab technologies apply to more than the sciences. Here are a few examples of past projects where we worked creatively with our patrons to fulfill their needs.

\n

Students from the UCLA School of Theater, Film, and Television put on a production of Paula Vogel's \"The Long Christmas Ride Home\" in 2018, featuring both live actors and custom-built puppets inspired by the Japanese puppetry form \"bunraku.\" To create the heads of the puppets, the Lux Lab worked with the TFT prop master to obtain 3D scans of each principal actor's face. The scans were turned into 3D files and printed, then painted by the TFT props crew to further recreate the physical features of the actors. The puppets helped the audience fully understand the show’s emphasis on memory and familial relations.

\n

We also work with several student organizations across campus. The UCLA Rocket Project is a collegiate-level engineering team housed within the UCLA American Institute of Aeronautics and Astronautics. The Lux Lab has assisted the students of the Rocket Project with their competitive and educational projects. We routinely 3D-print custom rocket parts designed by the members of the project. The team has won numerous national competitions for rocket design and performance.

\n

Our projects haven't been limited to the boundaries of campus. In 2018, the Lux Lab was asked to travel to Turin, Italy, with Michael Chen, a doctoral candidate in archaeology. Chen was researching his thesis on Late Period Egyptian healing stones and wanted to create 3D scans of a collection of artifacts housed in the Museo Egizio in Italy. His research centers around the way people interacted and used ancient objects, and he used 3D-rendered images to put the artifacts through tests and learn more about ancient Egyptian healing rituals.

","sectionTitle":null}]} +{"id":"53967","to":"help/services-resources/print-copy-scan","slug":"print-copy-scan","title":"Print, Copy, Scan","summary":"

Options for self-service printing, scanning and copying in campus libraries.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/DSC07807.jpg","height":1024,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/DSC07807.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/DSC07807.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/DSC07807.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/DSC07807.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/DSC07807.jpg 2560w","alt":"Scanner","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"54306","typeHandle":"richText","richText":"

Copy

\n\n

Black and white copiers are available in all libraries. Current UCLA students, staff and faculty can pay for copies with their BruinCard. Others can purchase print release BruinCards from kiosks in each library.

\n

Print

\n

Library BruinPrint/Wēpa kiosks, provided in partnership with ASUCLA, can complete both black-and-white and color printing requests. Files can be uploaded for printing via a USB drive or to www.bruinprint.com. Payment can be made through an online account, BruinCard or credit card.

\n

Scan

\n

Self-service scanning is free for all users. Flatbed scanners are available in the Louise M. Darling Biomedical Library, the Charles E. Young Research Library, the Science and Engineering Library, the CLICC Lab and CLICC Classrooms in Powell Library. Large format overhead scanners are available in the Arts Library, Music Library and Research Library. Microfilm scanners are available in the Research Library.

","sectionTitle":"Copiers, Printers and Scanners"},{"id":"56734","typeHandle":"simpleCards","sectionTitle":"Related Services","sectionSummary":null,"cards":[{"id":"56735","typeHandle":"externalServiceOrResource","title":"SRLF Imaging Services","summary":"Provides high-quality reformatting options for UC and non-UC libraries.","externalLink":"https://www.srlf.ucla.edu/imaging-services/"},{"id":"56736","typeHandle":"internalServiceOrResource","contentLink":[{"id":"14759","uri":"help/services-resources/duplication-of-lsc-materials","slug":"duplication-of-lsc-materials","title":"Duplication of LSC Materials","summary":"

Access digital copies of LSC holdings for your research needs.

"}]},{"id":"56737","typeHandle":"internalServiceOrResource","contentLink":[{"id":"15462","uri":"help/services-resources/map-reproduction","slug":"map-reproduction","title":"Map Reproduction","summary":"

Maps and atlases held in the Henry J. Bruman Map Collection can be reproduced by self-service copiers and scanners or by submitting a reproduction request.

"}]}]},{"id":"54307","typeHandle":"richText","richText":"


\n
Material TypeUCLA BruinCardVisitor BruinCard
Regular Photocopying$0.09/exposure$0.16/exposure
Black and White Printing (BruinPrint/Wēpa)$0.12/single-sided page
$0.17/double-sided page
$0.12/single-sided page
$0.17/double-sided page
Color Printing (BruinPrint/Wēpa)$0.34/single-sided page
$0.48/double-sided page
$0.34/single-sided page
$0.48/double-sided page
Visitor BruinCard Purchase(Not Applicable)$0.58 per card


\n

You can add money to your BruinCard at the BruinCard website. Credit card payments on BruinPrint/Wēpa kiosks include an additional $0.40 fee, regardless of the number of pages.

\n

Transferring or using a UCLA BruinCard by a non-UCLA user is a violation of UCLA Library policy. Unauthorized use of a UCLA BruinCard or Visitor BruinCard may result in revocation of UCLA Library privileges and confiscation of the card.

\n\n

Refunds

\n

Problems that may qualify for a refund include smudged or faint prints, torn or crinkled paper or no prints produced.

\n
  • For BruinPrint kiosks, see Refund Procedure for Defective Prints.
  • For copiers, report refund requests to the Office of Reprographic Services at (310) 825-6982. The message should include the problem and location, BruinCard ID number and a contact number.
","sectionTitle":"Copy/Print Rates"}]} +{"id":"53366","to":"help/services-resources/interlibrary-loan-ill","slug":"interlibrary-loan-ill","title":"Interlibrary Loan (ILL)","summary":"

Our interlibrary loan (ILL) service enables Bruins to obtain material not available in UCLA libraries.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Connect with the materials you need. Learn about borrowing books and equipment, access and privileges, computing services and more!

","title":"Using the Library","slug":"using-the-library","uri":"help/using-the-library"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-341-1.jpg","height":1711,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-341-1.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-341-1.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-341-1.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-341-1.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-341-1.jpg 2560w","alt":"UCLA 2019 08 02 341 1","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"62705","typeHandle":"richText","richText":"

Interlibrary loan (ILL) is a free service for UC students, staff and faculty searching for items not held by the UCLA Library. Upon request, our staff will search for item availability in other libraries both in the U.S. and abroad. Articles and book chapters can be emailed directly to the requester. Books can be picked up at the requester's preferred library.

","sectionTitle":"General Information"},{"id":"60535","typeHandle":"richText","richText":"
  • Article Indexes and Databases: In the item record, click the \"Get it at UC.\" Under \"How to get it,\" choose \"Request through Interlibrary Loan.\"
  • UC Library Search: Log in to your library account by clicking \"My Library Account\" in the top right corner. Clicking on \"UCLA Users\" will allow you to log in with your MyUCLA logon ID. Search the catalog for the materials you need. Under \"How to get it,\" choose \"Request through Interlibrary Loan.\"
  • Blank ILL Request Forms: These requests are for titles not found in UC Library Search. Requests using these forms will be delayed. In UC Library Search, select the Ellipses icon (...) in the navigation bar at the top, and then choose \"ILL Request — Blank ILL Request.\"
","sectionTitle":"How to Request an Item"},{"id":"53488","typeHandle":"richText","richText":"

ILL is free to the following borrowers:

\n
  • UC faculty members, including emeriti
  • UC academic library cardholders
  • UC students
  • UC staff library cardholders

Alumni, holders of courtesy, access and fee cards, members of the general public and UCLA Extension students and faculty are not eligible for UCLA ILL services. These users should request interlibrary loans through their local public libraries.

","sectionTitle":"Who Can Request These Items?"},{"id":"53489","typeHandle":"richText","richText":"

Items that can be requested:

\n
  • Items not owned by UCLA libraries.
  • Items that are checked out of UCLA libraries, excluding materials on reserve for a course.
  • Items missing from UCLA libraries.
    • Before requesting an interlibrary loan for a missing item, check UC Library Search to see if another UCLA library has a copy. A formal search for the item can be requested at the owning library's circulation desk.

Items that cannot be requested:

\n
  • Reference materials
  • Course reserves
  • Non-circulating items (i.e. Special Collections)

Items that may be difficult to obtain:

\n
  • Entire journal volumes or issues
  • Titles only owned at foreign institutions
  • E-pub/articles ahead of print
","sectionTitle":"Requesting Parameters"},{"id":"64629","typeHandle":"richText","richText":"

The Library has two ILL centers: the Charles E. Young Research Library and the Hugh and Hazel Darling Law Library. The Law Library service is for UCLA School of Law students, faculty and staff only.

\n


Library

Research Library

Law Library

AddressUCLA Young Research Library
280 Charles E. Young Dr.
Los Angeles, CA 90095-1575 US
1106 Law Building
Box 951458
Los Angeles, CA 90095-1458
Phone
(310) 825-1733
(310) 825-9317
Fax
(310) 825-4139
(310) 206-3680
Email
yrl-ill-b@library.ucla.edu
express@law.ucla.edu
","sectionTitle":"Contact Information"},{"id":"64630","typeHandle":"richText","richText":"
LibraryResearch LibraryLaw LibrarySouthern Regional Library Facility (SRLF)
Contact

See above

\nSupervisor: Alicia Amador
See above

Supervisor: Gabriel Juarez
305 De Neve Drive
Los Angeles, CA 90095-1388
(310) 206-2011
(310) 206-5074 (fax)
srlf-request@library.ucla.edu
Supervisor: Jon Edmondson
OCLC Symbols

CLU, CLUSP

\n

Docline: CAUCLA

CLU, CLUSPZAS, ZASSP, CLU, CLUSP
LoansU.S. Institutions: $21

International Institutions: $15, plus shipping
California institutions: $10

Out-of-state institutions: $20
$15 per filled request, plus shipping
Copies$15 per filled request

Articles longer than 30 pages subject to an additional charge of $0.20 per page
Regular Requests: $7.50 plus per-page charges and sales tax if applicable

Rush Requests: $15 plus per page charges and sales tax if applicable
$15 per filled request

Articles longer than 30 pages are subject to an additional charge of $0.20 per page
Billing MethodIFM, IFLA, EFTS, InvoiceIFM, InvoiceIFM, Invoice
Special ServicesRush Fee: $10 in addition to base fee

Shipped within one business day for requests received Mon–Fri, 8 a.m. to 5 p.m.
Photocopies: $0.25 per page

Fax copies: $0.75 per page

Microform copies: $0.75 per page
Rush Fee: $10 in addition to base fee

Shipped within one business day for requests received Mon–Fri, 8 a.m. to 5 p.m.
","sectionTitle":"Information for Borrowing Institutions"}]} +{"id":"49692","to":"help/services-resources/virtual-desktop","slug":"virtual-desktop","title":"Virtual Desktop","summary":"

Bruins with an internet connection can access our virtual Windows desktops loaded with software and programs.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Learn how to connect to campus Wi-Fi in library buildings.

","title":"Wi-Fi Access","slug":"wireless-network-access-wi-fi","uri":"help/services-resources/wireless-network-access-wi-fi"},{"text":"

Learn how to use a VPN or proxy server to access UCLA Library resources from off-campus.

","title":"Connecting from Off-Campus","slug":"connecting-from-off-campus","uri":"help/services-resources/connecting-from-off-campus"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/Powell-Library-BW.jpg","height":1024,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/Powell-Library-BW.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/Powell-Library-BW.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/Powell-Library-BW.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/Powell-Library-BW.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/Powell-Library-BW.jpg 2560w","alt":"Powell Library BW","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"52019","typeHandle":"richText","richText":"

The Campus Library Instructional Computing Commons (CLICC) provides virtual desktops so Bruins can access UCLA resources and work in dozens of licensed software suites. Virtual desktops can be used on any computer or tablet anywhere in the world with an Internet connection and the UCLA VPN.

","sectionTitle":null},{"id":"51378","typeHandle":"richText","richText":"

We offer two types of desktops: Software+ and Performance+. Both are free to any UCLA student, staff or faculty member with a valid UCLA Logon ID.

\n

The Software+ Virtual Desktop serves most instruction, research and study needs. However, some specific performance-intensive applications may work smoother on a Performance+ Virtual Desktop.

\n

Both virtual desktop types offer a full Windows desktop in addition to their respective software. To request software be added to the list, contact us via the Library IT Help Portal.

\n
Software+ Virtual DesktopPerformance+ Virtual Desktop
Available on-demand via UCLA Logon credentialsAvailable via unique username and password, created by mediated request
Complete suite of CLICC SoftwareSpecific processor-intensive software only
Large pool of available desktopsLimited pool of available desktops
Ideal for

Typical desktop use, access to UCLA online resources, studying and research
Ideal for

Specific processor-intensive software applications
","sectionTitle":"Types of Virtual Desktops"},{"id":"52020","typeHandle":"richText","richText":"

The Software+ Virtual Desktop can be accessed with UCLA Logon ID credentials. Please read our instructions for more information on how to access this desktop.

\n

An additional account is needed to access the Performance+ Virtual Desktop. If you would like to use a Performance+ Virtual Desktop, please submit a request for an account via the CLICC Resources & Services portal.

","sectionTitle":"Request a Virtual Desktop"},{"id":"52021","typeHandle":"richText","richText":"

UCLA instructors may submit a request for a virtual classroom. These reservations provide students and instructors for a course with either Software+ or Performance+ Virtual Desktops.

\n

Virtual classrooms may be requested for one-time or recurring events. Reservations staff will coordinate student access and virtual desktop use with the requester.

\n

To start the reservation process, please open a Virtual Classroom Request in the CLICC Resources & Services portal.

","sectionTitle":"Request a Virtual Classroom"},{"id":"52023","typeHandle":"richText","richText":"

Check out our suggested steps for troubleshooting a virtual desktop. Please contact us via the Library IT Help Portal if you wish to report a recurring issue.

","sectionTitle":"Report Issues"},{"id":"60708","typeHandle":"simpleCards","sectionTitle":"Getting Started Guides","sectionSummary":null,"cards":[{"id":"60709","typeHandle":"externalServiceOrResource","title":"Access a Virtual Desktop","summary":"Instructions on how to install and access our virtual desktops.","externalLink":"https://docs.library.ucla.edu/display/LITKB/Access+a+CLICC+Virtual+Desktop"},{"id":"60710","typeHandle":"externalServiceOrResource","title":"File Use in a Virtual Desktop","summary":"Instructions for how to save and open files in a virtual desktop.","externalLink":"https://docs.library.ucla.edu/pages/viewpage.action?pageId=224661507"},{"id":"60711","typeHandle":"externalServiceOrResource","title":"Troubleshooting a Virtual Desktop","summary":"Detailed information on troubleshooting a virtual desktop, including log-in issues, freezes and start problems.","externalLink":"https://docs.library.ucla.edu/display/LITKB/Troubleshooting+a+CLICC+Virtual+Desktop"}]}]} +{"id":"48268","to":"help/services-resources/rights-toolkit","slug":"rights-toolkit","title":"Rights Toolkit","summary":"

Our rights toolkit provides key resources for answering copyright and intellectual property questions.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Explore resources to help you understand copyright, publishing, open access and other issues related to scholarly communication.

","title":"Scholarly Communication Services","slug":"scholarly-communication-services","uri":"help/services-resources/scholarly-communication-services"}],"button":[{"buttonText":"Go to Toolkit","buttonUrl":"https://ucla.box.com/s/t27fr8w4svkdzv41b7aaqaadss020tm5"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/EZ_Powell-shelves_2022-10-17-163233_pewj.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/EZ_Powell-shelves_2022-10-17-163233_pewj.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/EZ_Powell-shelves_2022-10-17-163233_pewj.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/EZ_Powell-shelves_2022-10-17-163233_pewj.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/EZ_Powell-shelves_2022-10-17-163233_pewj.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/EZ_Powell-shelves_2022-10-17-163233_pewj.jpg 2560w","alt":"EZ Powell shelves","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"51280","typeHandle":"simpleCards","sectionTitle":null,"sectionSummary":"

The following documents are available for download via Box. Please contact UCLA Library Scholarly Communication for assistance using these documents.

","cards":[{"id":"52242","typeHandle":"externalServiceOrResource","title":"Cease and Desist Notices","summary":"Templates for demanding that unauthorized use of your copyrighted material be taken down.","externalLink":"https://ucla.box.com/s/n8qatlhs3i4ow137kih8ltgcw02tgcrq"},{"id":"52240","typeHandle":"externalServiceOrResource","title":"Consent Forms","summary":"Forms for consent for use of voice and image, appearance consent and release, and memorandum of understanding.","externalLink":"https://ucla.box.com/s/68lf1bi1guzthlzt19os03x9bid045cc"},{"id":"51281","typeHandle":"externalServiceOrResource","title":"Deeds","summary":"Deed forms I, II, III and IV; Addendum to Deed of Gift; Statement of Value and Temporary Custody Receipt.","externalLink":"https://ucla.box.com/s/h645pe6pn5b2tk4ap0ycnwt0j1vraqhk"},{"id":"51282","typeHandle":"externalServiceOrResource","title":"Oral History Agreements","summary":"Forms for use policy, basic agreements, OHPP notifications and optional legal clauses. Spanish translations of these forms are also available.","externalLink":"https://ucla.box.com/s/0723pikz3qo4j2od42c0gztvya7b0hty"},{"id":"52239","typeHandle":"externalServiceOrResource","title":"Permissions","summary":"Copyright permissions agreement and sample permission letter.","externalLink":"https://ucla.box.com/s/mu8t0ypzqwh7tchdnxgga71aqs27gyki"},{"id":"52241","typeHandle":"externalServiceOrResource","title":"Standard Licenses","summary":"Standard license template form.","externalLink":"https://ucla.box.com/s/f0hiz77e1hzo65ichiegx8qy0g9sn6o1"}]}]} +{"id":"48115","to":"help/services-resources/equipment-lending","slug":"equipment-lending","title":"Equipment Lending","summary":"

UCLA Library lends laptops and other equipment to the UCLA community.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"arts-library","title":"Arts Library"},{"to":"biomed","title":"Louise M. Darling Biomedical Library"},{"to":"music-library","title":"Music Library"},{"to":"powell-library","title":"Powell Library"},{"to":"research-library","title":"Charles E. Young Research Library"},{"to":"science-engineering-library","title":"Science and Engineering Library"}],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/CLICC-Laptop-Lending_2022-08-23-230249_mjkb.jpg","height":1520,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/CLICC-Laptop-Lending_2022-08-23-230249_mjkb.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/CLICC-Laptop-Lending_2022-08-23-230249_mjkb.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/CLICC-Laptop-Lending_2022-08-23-230249_mjkb.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/CLICC-Laptop-Lending_2022-08-23-230249_mjkb.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/CLICC-Laptop-Lending_2022-08-23-230249_mjkb.jpg 2560w","alt":"CLICC Laptop Lending","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"48578","typeHandle":"richText","richText":"

Laptops & iPads

\n

Through the Campus Library Instructional Computing Commons (CLICC), seven UCLA Library locations loan Windows laptops, MacBooks, Chromebooks and iPads. The loan period on these devices is one week, and they are eligible for one renewal. Check individual locations for lending hours.

\n

All of our laptops and iPads can access the full suite of CLICC Software. Users may install additional software if needed. We will wipe any user data on all laptops and iPads upon return.

\n

Small Items

\n

We lend a variety of small items from Powell Library and the Charles E. Young Research Library. The loan period on small items is 6 hours, and they are eligible for one renewal. These items include:

  • Phone cables (iPhone and Android) and wall adapters
  • Laptop chargers (USB-C and Mac Magsafe)
  • Input/Output adaptors (VGA and HDMI)
  • Display cables (VGA and HDMI)
  • Calculators
  • Headsets
  • Expo markers
  • Portable power banks
","sectionTitle":null},{"id":"48580","typeHandle":"richText","richText":"

In Powell Library and the Research Library, equipment is available at the CLICC lending desks on the first floor. These libraries also have automatic lending lockers, which circulate items even when lending desks are not staffed. In all other Library locations, equipment is available at the circulation desk.

\n
LibraryChromebooksMacBooksWindows LaptopsiPadsSmall Items
Arts Library

Yes

No

No

No

No

Biomedical Library

Yes

No

No

No

No

Music Library

Yes

No

No

No

No

Powell Library

Yes

Yes

Yes

Yes

Yes

SEL/Boelter

Yes

No

No

No

No

SEL/Geology

Yes

No

No

No

No

Research Library

Yes

Yes

Yes

Yes

Yes

","sectionTitle":"Equipment Availability"},{"id":"60536","typeHandle":"simpleCards","sectionTitle":null,"sectionSummary":null,"cards":[{"id":"60537","typeHandle":"externalServiceOrResource","title":"CLICC Software","summary":"A list of software and tools available using our Virtual Desktop.","externalLink":"https://docs.library.ucla.edu/display/LITKB/CLICC+Software+List"},{"id":"60538","typeHandle":"externalServiceOrResource","title":"Getting Started Guide","summary":"Details on how to use Library equipment.","externalLink":"https://docs.library.ucla.edu/display/LITKB/Getting+Started+with+CLICC+Equipment"},{"id":"64705","typeHandle":"internalServiceOrResource","contentLink":[{"id":"64698","uri":"about/policies/equipment-lending-policies","slug":"equipment-lending-policies","title":"Equipment Lending Policies","summary":"

Learn more about our lending policies for laptops, iPads and other equipment.

"}]}]}]} +{"id":"39734","to":"help/services-resources/clicc-classrooms","slug":"clicc-classrooms","title":"CLICC Classrooms","summary":"

Reserve a technology-enabled classroom for your instructional needs.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-teaching","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"powell-library","title":"Powell Library"},{"to":"research-library","title":"Charles E. Young Research Library"}],"associatedTopics":[],"button":[{"buttonText":"Request a Reservation","buttonUrl":"https://jira.library.ucla.edu/servicedesk/customer/portal/3"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/CLICC-Classroom-A-photo-by-Kelly-Ma.jpg","height":1395,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/CLICC-Classroom-A-photo-by-Kelly-Ma.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/CLICC-Classroom-A-photo-by-Kelly-Ma.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/CLICC-Classroom-A-photo-by-Kelly-Ma.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/CLICC-Classroom-A-photo-by-Kelly-Ma.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/CLICC-Classroom-A-photo-by-Kelly-Ma.jpg 2560w","alt":"CLICC Classroom A photo by Kelly Ma","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"40192","typeHandle":"richText","richText":"

The Campus Library Instructional Computing Commons (CLICC) hosts three classrooms on the third floor of Powell Library and one on the ground floor of the Charles E. Young Research Library. Each room is equipped with at least one projector and audio output, which can be broadcast from a laptop. All CLICC Classrooms have WiFi access via the eduroam network.

\n

The classrooms in Powell Library are open from 8:30 a.m. – 1:30 p.m., and the Research Library classroom is open from 8:30 a.m. – 6:30 p.m. Classrooms are available for drop-in study when there is no prior reservation.

\n

Please view the availability of CLICC Classrooms and CLICC Instructional Resources & Space Reservations Policies before making your reservation.

\n
ClassroomsSeatsFeatures
307A Powell Library
(CLICC Classroom A)
27Smart whiteboard, short throw projector and mobile all-in-one desks
320B Powell Library
(CLICC Classroom B)
27Mobile whiteboard and ceiling-mounted projector
307C Powell Library
(CLICC Classroom C)
51Mobile whiteboard and three ceiling-mounted projectors
11360F YRL
(CLICC RC Classroom)
26Smart whiteboard, short throw projector and mobile all-in-one desks


","sectionTitle":null}]} +{"id":"38488","to":"help/services-resources/open-access-publishing","slug":"open-access-publishing","title":"Open Access & Publishing","summary":"

Learn how UCLA Library supports the accelerating open access movement.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-research","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Explore resources to help you understand copyright, publishing, open access and other issues related to scholarly communication.

","title":"Scholarly Communication Services","slug":"scholarly-communication-services","uri":"help/services-resources/scholarly-communication-services"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-245-1.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-245-1.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-245-1.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-245-1.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-245-1.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-245-1.jpg 2560w","alt":"UCLA 2019 08 01 245 1","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"60186","typeHandle":"pullQuote","pullQuote":[{"text":"

\"Open Access is the free, immediate, online availability of research articles combined with the rights to use these articles fully in the digital environment. Open Access is the needed modern update for the communication of research that fully utilizes the Internet for what it was originally built to do — accelerate research.\"

","attribution":"Scholarly Publishing and Research Coalition (SPARC)"}]},{"id":"60130","typeHandle":"richText","richText":"

Check out the \"What is Open Access?” page from the UC Office of Scholarly Communication to explore the two main pathways for open access publishing.

","sectionTitle":null},{"id":"60131","typeHandle":"richText","richText":"

Transformative Agreements

\n

Since 2019, the UC has entered \"transformative agreements\" with journal publishers. These agreements allow UC authors to publish their work open access within the journals the UC licenses. Often, transformative agreements cover the cost of publication when funding is not available elsewhere. To discover whether a journal is covered by a transformative agreement, explore this list from the UC Office of Scholarly Communication.

\n

UC Open Access Policy

\n

Since 2013, the UC has implemented open access policies that allow any published article by a UC author to be placed in our institutional repository, eScholarship.

\n

The UC Publication Management System alerts authors when they have articles that are available for deposit into eScholarship. Learn how this system works.

","sectionTitle":"Making Your Scholarly Journal Article Open Access"},{"id":"60132","typeHandle":"richText","richText":"

If you are looking to launch a new open access journal, or transition an existing journal to the open access model, consider starting a journal on eScholarship. There are dozens of UCLA journals on eScholarship, a free service available to UC affiliates.

\n

Wherever you publish your open access journal, you can bolster its credibility and accessibility by having the it listed in the Directory of Open Access Journals (DOAJ). Read their guide to applying for more information and tips.

","sectionTitle":"Publishing an Open Access Journal"},{"id":"60133","typeHandle":"richText","richText":"

Luminos

\n

Luminos, UC Press’ open access monograph publishing program, adheres to the same high standards as traditional publishing programs. The Library covers the title publication fees for UCLA faculty authors with support from Arcadia.

\n

\n

UCLA faculty authors interested in publishing a monograph through Luminos should submit a proposal directly to the relevant UC Press editor. Approved proposals will automatically receive funding from the Library.

\n

\n

Toward an Open Monograph Ecosystem (TOME)

\n

TOME is a nationwide initiative of university presses that publishes peer-reviewed and professionally edited open access monographs. The Library covers the title publication fees for UCLA faculty authors with support from Arcadia.

\n

\n

UCLA faculty authors interested in publishing a monograph through TOME should submit a proposal directly to one of the participating presses. Once the press has accepted the proposal, contact the Library to secure funding for the title publication fee.

","sectionTitle":"Publishing an Open Access Monograph"},{"id":"60230","typeHandle":"simpleCards","sectionTitle":null,"sectionSummary":null,"cards":[{"id":"60231","typeHandle":"internalServiceOrResource","contentLink":[{"id":"60202","uri":null,"slug":"escholarship","title":"eScholarship","summary":"

Scholarly publishing and repository services platform for all ten UC campuses.

","externalResourceUrl":"https://escholarship.org/"}]},{"id":"60232","typeHandle":"internalServiceOrResource","contentLink":[{"id":"60204","uri":null,"slug":"uc-publication-management-system","title":"UC Publication Management System","summary":"

Assists UC authors with depositing articles into eScholarship, the UC open access repository.

","externalResourceUrl":"http://oapolicy.universityofcalifornia.edu"}]},{"id":"60233","typeHandle":"internalServiceOrResource","contentLink":[{"id":"60220","uri":null,"slug":"open-access-research-guide","title":"Open Access Research Guide","summary":"

Resources and information about the Open Access movement.

","externalResourceUrl":"https://guides.library.ucla.edu/openaccess"}]}]}]} +{"id":"38431","to":"help/services-resources/copyright-policies","slug":"copyright-policies","title":"Copyright Policies","summary":"

Learn more about UCLA Library, UCLA campus and UC-wide copyright policies.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Explore resources to help you understand copyright, publishing, open access and other issues related to scholarly communication.

","title":"Scholarly Communication Services","slug":"scholarly-communication-services","uri":"help/services-resources/scholarly-communication-services"}],"button":[],"heroImage":[],"blocks":[{"id":"38450","typeHandle":"richText","richText":"

Several policies come into play when considering copyright, including UC-wide policies, UCLA campus policies and policies specific to the UCLA Library. Contact us if you need help with a copyright issue.

\n

Purpose of the UCLA Library Copyright Policy

\n

To state the UCLA Library's responsibilities and its policies, procedures, and guidelines governing the reproduction of copyrighted material, with particular respect to the provisions of the Copyright Revision Act of 1976, the Digital Millennium Copyright Act (DMCA), the Copyright Term Extension Act, and pertinent University of California policies.

\n

To state, insofar as is possible, the UCLA Library’s responsibilities and its policies, procedures, and guidelines governing the use and reproduction of copyrighted materials available in or converted to digital formats. The UCLA Library actively monitors the evolving digital copyright policies and guidelines and will modify its policies, procedures, and guidelines as necessary.

\n

To state the library users' responsibilities concerning the reproduction of copyrighted materials.

\n

Designated DMCA Agents

\n

View an up-to-date listing of the Designated DMCA agents for the UC Office of the President and each of the UC campuses.

","sectionTitle":null}]} +{"id":"38401","to":"help/services-resources/scholarly-communication-services","slug":"scholarly-communication-services","title":"Scholarly Communication Services","summary":"

Explore resources to help you understand copyright, publishing, open access and other issues related to scholarly communication.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[{"buttonText":"Contact Us","buttonUrl":"https://ucla.libwizard.com/f/contactscholcomm"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/AN_atkinson-01.00389-powell.jpg","height":2045,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/AN_atkinson-01.00389-powell.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/AN_atkinson-01.00389-powell.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/AN_atkinson-01.00389-powell.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/AN_atkinson-01.00389-powell.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/AN_atkinson-01.00389-powell.jpg 2560w","alt":"AN atkinson 01 00389 powell","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"38421","typeHandle":"richText","richText":"

If you are a UCLA student, researcher or faculty member looking to publish their research, UCLA Library can help in a variety of ways. We can aid you in:

\n
  • Determining proper reuse of copyrighted material
  • Exploring open access publishing options
  • Finding the right publisher
  • Determining if the UC Open Access policy applies to your publication
  • Negotiating with publishers
  • Obtaining copyright on dissertations or theses

Services include individual consultations, small-group workshops and class presentations on these topics. Contact us using our web form to schedule a consultation or ask questions.

","sectionTitle":null}]} +{"id":"37114","to":"help/services-resources/center-for-oral-history-research","slug":"center-for-oral-history-research","title":"Center for Oral History Research","summary":"

UCLA's Center for Oral History Research collects oral history interviews related to the history the Los Angeles metropolitan region and Southern California on the whole.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[{"buttonText":"View COHR Online Portal","buttonUrl":"https://oralhistory.library.ucla.edu/?_ga=2.155540152.269698941.1658852726-485660391.1517027299"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/Photo-61.jpg","height":1626,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/Photo-61.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/Photo-61.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/Photo-61.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/Photo-61.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/Photo-61.jpg 2560w","alt":"Photo 61","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"37122","typeHandle":"richText","richText":"

About

\n

The UCLA Center for Oral History Research (COHR) conducts in-depth, multi-session interviews with individuals who have been part of Los Angeles history. COHR boasts strong interview collections in the history of social movements, communities of color, the arts, and Los Angeles politics and government. COHR also offers classroom instruction, advice on oral history projects and workshops.

\n\n\n

Access

\n

Please visit the COHR online portal to access our online oral history collections. Interview transcripts and recordings unavailable through the portal can be accessed in person at UCLA Library Special Collections (LSC). To have materials sent to the LSC reading room, please sign in to the LSC Request System and\n click “Request an Item.”

\n

Interview transcripts not available \nonline or in the reading room can be provided to users as PDFs (donation agreements permitting). To request a PDF,\n please sign in to the LSC Request System and select \"Submit a Photoduplication Order.\"

","sectionTitle":"Center for Oral History Research"}]} +{"id":"37104","to":"help/services-resources/university-archives","slug":"university-archives","title":"University Archives","summary":"

The UCLA University Archives store all non-current UCLA records of historical, fiscal, legal or administrative value.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/University-Archives.jpeg","height":1440,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/University-Archives.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/University-Archives.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/University-Archives.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/University-Archives.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/University-Archives.jpeg 2560w","alt":"University Archives","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"37112","typeHandle":"richText","richText":"

The UCLA University Archives, established in 1949 by Provost Clarence A. Dykstra, is the official repository for non-current UCLA records. These records document the history of university administration, academic departments and campus groups.

\n

Records in the archive date back to UCLA's time as the Los Angeles State Normal School, which was established in 1881. In 1919, the campus was transformed to the second location of the University of California.

\n

The University Archives fulfills obligations through partnerships \nwith the UCLA Office of the Chancellor, the University of California Office of the President and UC university archivists on all ten UC campuses.

\n

A full listing of the University Archives currently available for research can be found in the Online Archive of California and UC Library Search. For links to all digitized materials, visit our UCLA University History in Library Special Collections research guide.

\n

For assistance using the University Archives, please contact us at spec-coll@library.ucla.edu.

","sectionTitle":"University Archives"}]} +{"id":"36726","to":"help/services-resources/center-for-primary-research-and-training-cfprt","slug":"center-for-primary-research-and-training-cfprt","title":"Center for Primary Research and Training (CFPRT)","summary":"

Learn how the CFPRT pairs scholars with UCLA Library projects that match their passions and interests.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-244_2022-10-12-164913_qebn.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-244_2022-10-12-164913_qebn.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-244_2022-10-12-164913_qebn.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-244_2022-10-12-164913_qebn.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-244_2022-10-12-164913_qebn.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-244_2022-10-12-164913_qebn.jpg 2560w","alt":"CFPRT","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"36773","typeHandle":"richText","richText":"

The Center for Primary Research and Training (CFPRT) is a UCLA Library Special Collections (LSC) program designed to equip emerging scholars with skills to use primary sources effectively. The center pairs graduate students from various academic fields with projects that match their expertise.

Since its creation in 2004 — funded by a generous gift from the Ahmanson Foundation — the CFPRT has employed over 200 students. These scholars have processed archival collections, conducted oral histories, digitized data and contributed to departmental outreach efforts. This important work has made some of the Library’s most valuable resources widely discoverable.

The CFPRT is committed to creating a welcoming space for students to work collaboratively, actively take part in the archival process and engage with primary sources.

For more information about the CFPRT, email us at spec-coll@library.ucla.edu.

","sectionTitle":"Center for Primary Research and Training (CFPRT)"},{"id":"36774","typeHandle":"mediaWithText","sectionTitle":"Treasures of the UCLA Library — a five-part film about the center","sectionSummary":"

The Library has released a multi-part film documenting the center's history and highlighting student projects.

","mediaWithText":[{"id":"36775","titleLink":"Treasures of the UCLA Library: Story of the Center for Primary Research and Training","description":"(Part one of five)","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/CFPRT-part-1.png","height":1300,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/CFPRT-part-1.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/CFPRT-part-1.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/CFPRT-part-1.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/CFPRT-part-1.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/CFPRT-part-1.png 2560w","alt":"CFPRT part 1","focalPoint":[0.5,0.5]}],"buttonText":null,"buttonUrl":null,"linkToMedia":"
","typeMedia":"video"},{"id":"36867","titleLink":"Treasures of the UCLA Library: Colonial Mexican Manuscripts","description":"(Part two of five)","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/CFPRT-part-2.png","height":1299,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/CFPRT-part-2.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/CFPRT-part-2.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/CFPRT-part-2.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/CFPRT-part-2.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/CFPRT-part-2.png 2560w","alt":"CFPRT part 2","focalPoint":[0.5,0.5]}],"buttonText":null,"buttonUrl":null,"linkToMedia":"
","typeMedia":"video"},{"id":"36868","titleLink":"Treasures of the UCLA Library: Cuneiform Tablets","description":"(Part three of five)","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/CFPRT-part-3.png","height":1338,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/CFPRT-part-3.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/CFPRT-part-3.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/CFPRT-part-3.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/CFPRT-part-3.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/CFPRT-part-3.png 2560w","alt":"CFPRT part 3","focalPoint":[0.5,0.5]}],"buttonText":null,"buttonUrl":null,"linkToMedia":"
","typeMedia":"video"},{"id":"36869","titleLink":"Treasures of the UCLA Library: African American Collections","description":"(Part four of five)","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/Screen-Shot-2022-07-29-at-2.40.50-PM.png","height":1285,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/Screen-Shot-2022-07-29-at-2.40.50-PM.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/Screen-Shot-2022-07-29-at-2.40.50-PM.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/Screen-Shot-2022-07-29-at-2.40.50-PM.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/Screen-Shot-2022-07-29-at-2.40.50-PM.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/Screen-Shot-2022-07-29-at-2.40.50-PM.png 2560w","alt":"CFPRT part 4","focalPoint":[0.5,0.5]}],"buttonText":null,"buttonUrl":null,"linkToMedia":"
","typeMedia":"video"},{"id":"36870","titleLink":"Treasures of the UCLA Library: Near Eastern Manuscripts","description":"(Part five of five)","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/CFPRT-part-5.png","height":1255,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/CFPRT-part-5.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/CFPRT-part-5.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/CFPRT-part-5.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/CFPRT-part-5.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/CFPRT-part-5.png 2560w","alt":"CFPRT part 5","focalPoint":[0.5,0.5]}],"buttonText":null,"buttonUrl":null,"linkToMedia":"
","typeMedia":"video"}]}]} +{"id":"36713","to":"help/services-resources/history-of-medicine-and-the-sciences","slug":"history-of-medicine-and-the-sciences","title":"History of Medicine and the Sciences","summary":"

This UCLA Library collection supports the study of the history of medicine, the life sciences and the physical sciences.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/SpecCollSciencesCard.jpeg","height":930,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/SpecCollSciencesCard.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/SpecCollSciencesCard.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/SpecCollSciencesCard.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/SpecCollSciencesCard.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/SpecCollSciencesCard.jpeg 2560w","alt":"Spec Coll Sciences Card","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"36724","typeHandle":"richText","richText":"

The Library's History of Medicine and the Sciences collection documents the storied past of these fields. Topics of work in the collection consist of thought and practice, discoveries and inventions, research trends, and teaching methods. These topics are reflected in a wide range of items, including books, journals, manuscripts, prints and portraits. The materials can be accessed in the Ahmanson-Murphy Reading Room on the A level of the Charles E. Young Research Library.

\n

For assistance using the collection, contact spec-coll@library.ucla.edu.

","sectionTitle":"History of Medicine and the Sciences"}]} +{"id":"34389","to":"help/services-resources/suggest-a-purchase","slug":"suggest-a-purchase","title":"Suggest a Purchase","summary":"

Use the following form to order non-course reserve materials not already owned by UCLA Library.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/EZ_UCLA2015-34.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/EZ_UCLA2015-34.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/EZ_UCLA2015-34.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/EZ_UCLA2015-34.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/EZ_UCLA2015-34.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/EZ_UCLA2015-34.jpg 2560w","alt":"Suggest a Purchase","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"34392","typeHandle":"form","form":"
","sectionTitle":null,"sectionSummary":null}]} +{"id":"33703","to":"help/services-resources/course-reserves","slug":"course-reserves","title":"Course Reserves","summary":"

Information for students on how to access course reserves.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Information for instructors on how to request, manage and access course reserves.

","title":"Managing Course Reserves","slug":"managing-course-reserves","uri":"help/services-resources/managing-course-reserves"},{"text":"

Learn how to use a VPN or proxy server to access UCLA Library resources from off-campus.

","title":"Connecting from Off-Campus","slug":"connecting-from-off-campus","uri":"help/services-resources/connecting-from-off-campus"}],"button":[{"buttonText":"Search Course Reserves","buttonUrl":"https://search.library.ucla.edu/discovery/search?tab=CourseReserves&search_scope=CourseReserves&vid=01UCS_LAL:UCLA&lang=en&mode=advanced&_ga=2.34815329.1751864528.1658165164-1290920990.1655485664"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-43.jpg","height":1024,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-43.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-43.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-43.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-43.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-43.jpg 2560w","alt":"Course Reserves","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"34181","typeHandle":"richText","richText":"

Course reserves are physical and digital materials that the instructor of a course has ensured will be readily accessible throughout the period of the course. These materials have shorter loan periods than standard library books to allow a high volume of access.

\n\n

Accessing Reserves

\n
  • UC Library Search: Items can be viewed through UC Library Search by searching the instructor name, department name or course number.
  • In-person: Print reserves can be retrieved by circulation desk staff at the item's respective library. These materials have a 2-hour loan period.
  • Bruin Learn: Course reserve reading lists can be accessed through Bruin Learn if the instructor chooses to make them available there.

Digital Audio Reserves

\n

Online audio assignments require a password that is only available to students enrolled in the class. Ask your instructor or the Music Library about accessing your assignment, or search our audio reserves.

","sectionTitle":null},{"id":"34870","typeHandle":"mediaWithText","sectionTitle":null,"sectionSummary":null,"mediaWithText":[{"id":"34871","titleUpload":"Browsing UC Library Search for Reserves","description":"Learn how to use our catalog to search for course reserves.","buttonText":null,"buttonUrl":null,"coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/Screen-Shot-2022-07-22-at-2.41.58-PM.png","height":1638,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/Screen-Shot-2022-07-22-at-2.41.58-PM.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/Screen-Shot-2022-07-22-at-2.41.58-PM.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/Screen-Shot-2022-07-22-at-2.41.58-PM.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/Screen-Shot-2022-07-22-at-2.41.58-PM.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/Screen-Shot-2022-07-22-at-2.41.58-PM.png 2560w","alt":"Screen Shot 2022 07 22 at 2 41 58 PM","focalPoint":[0.5,0.5]}],"upload":[{"src":"https://static.library.ucla.edu/craftassetsprod/video/Search-Reserves-in-UC-Search_0.mp4","height":null,"width":null,"srcset":"","alt":"Search Reserves in UC Search 0","focalPoint":[0.5,0.5]}],"typeMedia":"video"}]}]} +{"id":"33702","to":"help/services-resources/managing-course-reserves","slug":"managing-course-reserves","title":"Managing Course Reserves","summary":"

Information for instructors on how to request, manage and access course reserves.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

The Library provides a variety of services to assist instructors in inspiring student learning, research and success. Let us know how we can help you!

","title":"Teaching Support","slug":"teaching","uri":"help/teaching"},{"text":"

Information for students on how to access course reserves.

","title":"Course Reserves","slug":"course-reserves","uri":"help/services-resources/course-reserves"}],"button":[{"buttonText":"Submit a Reserve Request","buttonUrl":"https://ucla.libwizard.com/id/58985161a4950929eb0937201c86440e"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-341_2022-10-07-184953_trnj.jpg","height":1711,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-341_2022-10-07-184953_trnj.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-341_2022-10-07-184953_trnj.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-341_2022-10-07-184953_trnj.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-341_2022-10-07-184953_trnj.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-341_2022-10-07-184953_trnj.jpg 2560w","alt":"Managing Course Reserves","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"34117","typeHandle":"richText","richText":"

The UCLA Library's course reserves service guarantees access to course materials through the Library. When a course reserve request is made, materials are relocated to the specified circulation desk. This guarantees that students can access the materials throughout the course. Each course reserve item has a loan period of 2 hours.

\n\n\n

Many reserve items are materials already owned by the Library. If the Library does not own the materials, we can work with you to purchase them.

Types of Reserves

\n

Our reserves include:

\n
  • General Reserves: Items on reserve for a single quarter.
  • Permanent Reserves: Items that are rare, out-of-print or on reserve for more than one quarter.
  • Personal Copies / Faculty Copies: Items not owned or purchased by the Library but held temporarily for reserves.
  • Course Readers / APS Readers: Paper-bound collections of materials that are selected and arranged by an instructor for a particular class.
  • Building Use Only: Rare, fragile or special collections items that do not circulate and can only be used at or behind a circulation desk.
  • Electronic Reserves: Items made available online.
    • These materials do not have loan periods enforced by the library, but may have user-access limits enforced by the license.
    • Instructors are advised to use electronic resources already licensed by the Library or Open Educational Resources. If no such resources meet the needs of the course, instructors are responsible for ensuring their requested scanning and use of materials satisfies fair use guidelines. See the University of California Office of the President Fair Use Guidance webpage for more information.

Accessing Reserves

\n
  • UC Library Search: Items can be viewed through UC Library Search by searching the instructor name, department name or course number.
  • In-Person: Items will be made available for check out at library circulation desks.
  • Bruin Learn: Use our Leganto guide to learn more about how to create and manage reading lists in Bruin Learn.

Submitting Course Reserves

\n

Please submit course reserve requests using our online form at least 3 weeks before classes begin. This allows us time to process the materials and purchase titles not owned by the library (purchases may take 4-6 weeks).

\n

You can submit course reserve requests every quarter. Unless otherwise specified, reading lists are active for one quarter. After that, the items will be removed from reserve shelves and will no longer appear in UC Library Search and Bruin Learn.

\n

If your course is taught for more than one year, you may indicate in your request that the items are to remain on reserve for more than one quarter. In this case, the reading list expiration date will be extended and you will not need to resubmit the request the following quarter.

\n

Contact Course Reserves Staff

\n
Library and Subject AreasContact
Arts Library

Art, Art History, Art & Architecture,
Design & Media Arts, Film & Television,
Theater, World Arts & Culture
(310) 206-2868\n

arts-circ@library.ucla.edu

Charles E. Young Research Library
and Richard C. Rudolph
East Asian Library


Graduate Courses
(310) 825-4732\n

yrl-circ@library.ucla.edu

Eugene and Maxine Rosenfeld
Management Library


Management
(310) 825-2620\n

mgt-rsrv@library.ucla.edu

Hugh and Hazel Darling Law Library

Law
(310) 825-3960\n

reserve@law.ucla.edu

Instructional Media Collections and Services

\nFilm Courses

(310) 825-0755
imlib@teaching.ucla.edu

Louise M. Darling Biomedical Library

Nursing, Dentistry, Medicine, and
Public Health
(310) 825-5126\n

biomed-access@library.ucla.edu

Music Library

\nMusic, Musicology, Music Industry, Ethnomusicology
(310) 825-2317\n

music-circ@library.ucla.edu

Powell Library

Undergraduate Courses
(310) 206-4272\n

college-reserves@library.ucla.edu

Science and Engineering Library

Math, Engineering, Physics, Chemistry, Computer Science
(310) 825-4951\n

sem-circ@library.ucla.edu


","sectionTitle":null}]} +{"id":"32460","to":"help/services-resources/studio-a-music-kits","slug":"studio-a-music-kits","title":"Studio A and Music Kits","summary":"

Reserve spaces and equipment for audiovisual recording.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"music-library","title":"Music Library"}],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-201.jpg","height":1656,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-201.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-201.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-201.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-201.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-201.jpg 2560w","alt":"UCLA 2019 08 02 201","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"32561","typeHandle":"richText","richText":"

Studio A is a space in the Music Library available for A/V recordings and creation. The studio is equipped with the following materials:

\n
  • Focusrite Scarlett interface
  • iMac Pro
  • Laptop stand
  • Piano Keyboard
  • sE Electronics Studio Mic and Pop Screen
  • Studio Monitors
  • Whisper Room Studio

Studio A can be reserved through UC Library Search. If you have not reserved Studio A before, please refer to the instructions in the Reservations in UC Library Search section.

\n

If you need more equipment than what is provided, you may check out one of our music kits.

","sectionTitle":"Studio A Features"},{"id":"32562","typeHandle":"richText","richText":"

The Music Library has equipment kits available for checkout. Click on any of the links below to reserve the item listed. If you have not reserved a music kit before, please refer to the directions in the Reservations in UC Library Search section.

\n","sectionTitle":"Music Kits Features"},{"id":"32577","typeHandle":"richText","richText":"

Music Kit Terms & Conditions

\n
  • Music kits can be reserved for up to 24 hours at a time.
  • Reservations can be made 90 days in advance. If you'd like to make a reservation further out, please email us at music-circ@library.ucla.edu.
  • Music kits can be reserved for use both inside and outside of the Music Library.
  • Music kits are subject to fines and fees if missing parts upon return.

Studio A Terms & Conditions

\n
  • Studio A can be reserved for up to four hours at a time.
  • Reservations can be made 90 days in advance. If you'd like to make a reservation further out, please email us at music-circ@library.ucla.edu.
  • Groups of up to five are allowed in Studio A. For bigger groups, please reserve the Seminar Room.
  • The Music Library may cancel bookings if they don't meet room requirements or if the room is needed for library instruction.
  • A/V problems should be reported to the Music Library, but immediate support is not always available.
","sectionTitle":"Reservation Terms"},{"id":"32578","typeHandle":"richText","richText":"
  1. Open the link to item you wish to reserve.
  2. Log in to your library account.
  3. Select Request under the \"How to get it\" section.
  4. Select Check Availability to see that the item is available when you'd like to request it. If you attempt to request an item that is already reserved, you will see an error message.
  5. Use the availability calendar to determine an open time to request the item. Brown blocks indicate times the library is closed. Red blocks indicate times the item is already booked.
  6. Music Kits can only be booked for 24 hours. If you try to book the kits for more than 24 hours, you will receive an error message.
  7. Studio A can only be booked for four hours. If you try to book the studio for more than four hours, you will receive an error message.
  8. Select a start date and an end date. For Studio A, also select a start time and an end time.
  9. If your request was made successfully, you will receive the following message: \"Your request was successfully placed. You will receive an email when your request arrives.\"
  10. Visit the Music Library Circulation Desk to check out your reservation or studio keys.
","sectionTitle":"Reservation in UC Library Search"},{"id":"32735","typeHandle":"mediaWithText","sectionTitle":"Instructional Videos","sectionSummary":null,"mediaWithText":[{"id":"32736","titleUpload":"How to Reserve a Music Kit","description":"A step-by-step tutorial on reserving music kits.","buttonText":null,"buttonUrl":null,"coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-199.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-199.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-199.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-199.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-199.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-199.jpg 2560w","alt":"Music Library Music Kit","focalPoint":[0.5,0.5]}],"upload":[{"src":"https://static.library.ucla.edu/craftassetsprod/video/Reserving-a-Music-Kit-Video-Demo.mp4","height":null,"width":null,"srcset":"","alt":"Reserving a Music Kit Video Demo","focalPoint":[0.5,0.5]}],"typeMedia":"video"},{"id":"32737","titleUpload":"How to Reserve Studio A","description":"A step-by-step tutorial on reserving Studio A.","buttonText":null,"buttonUrl":null,"coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-207.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-207.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-207.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-207.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-207.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-207.jpg 2560w","alt":"Music Library Studio A","focalPoint":[0.5,0.5]}],"upload":[{"src":"https://static.library.ucla.edu/craftassetsprod/video/Reserving-Studio-A-Video-Demo_2.mp4","height":null,"width":null,"srcset":"","alt":"Reserving Studio A Video Demo 2","focalPoint":[0.5,0.5]}],"typeMedia":"video"}]}]} +{"id":"31935","to":"help/services-resources/stem-collaborative-learning-center","slug":"stem-collaborative-learning-center","title":"STEM Collaborative Learning Center","summary":"

Explore UCLA's space for collaborative learning among STEM students.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-research","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"science-engineering-library","title":"Science and Engineering Library"}],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"31953","typeHandle":"richText","richText":"

The STEM Collaborative Learning Center (CLC) is located in the Science and Engineering Library Research Commons. The initiative is a partnership between the UCLA Library, the UCLA Center for Education Innovation and Learning in the Sciences (CEILS), the Undergraduate Learning Assistant Program and the Undergraduate Writing Center (UWC). The CLC's mission is to foster collaborative learning among STEM students through peer learning activities and group study sessions. Please see individual program sites for schedules.

\n

SEL Research Commons

\n

The CLC provides flexible, technology-enabled spaces for UCLA students, faculty and staff. Tables and chairs can be rearranged to suit users' needs. The space can be used for library instruction, but cannot be reserved for general instruction.

\n

Equipment available:

\n
  • Fifty-two-inch plasma screen with VGA hookup
  • Two dual screen Windows desktops and an iMac equipped with CLICC software
  • Three wall mounted monitors for laptop hookup
  • Six computer workstations
  • Whiteboards on wheels and three whiteboard tables

The SEL Research Commons is located in 8251 Boelter Hall and is accessible via the northeast elevator or stairs. A valid BruinCard is required to enter.

\n

SEL has another collaborative research space, the SEL Learning Commons, which can also be used for library instruction.

","sectionTitle":null}]} +{"id":"31398","to":"help/services-resources/accessibility-resources","slug":"accessibility-resources","title":"Accessibility Resources","summary":"

Library staff ensures that all materials, programs and services are accessible to users with disabilities.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-remote-access","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"31555","typeHandle":"richText","richText":"

The Americans with Disabilities Act provides civil rights protection to people with disabilities. These rights include equal access to employment, public services, transportation and telecommunications. For information on how UCLA complies with these policies, consult the UCLA ADA/504 Compliance Office.

\n

All staff working in public service areas of campus libraries will make every effort to accommodate requests from users with disabilities. For more information on resources available to users with disabilities, please contact us at accessibility@library.ucla.edu.

\n

Locating Materials

\n

Staff will assist users with disabilities in accessing any equipment or resource that is inaccessible. Please speak with circulation desk staff if you need assistance.

\n

ADA Workstations

\n

One public workstation in the Louise M. Darling Biomedical Library, Powell Library and Charles E. Young Research Library is equipped with Job Access with Speech (JAWS). This program uses both a screen reader and screen magnification to make web text accessible to users with disabilities. These workstations, along with other standard workstations in various campus libraries, have tables that accommodate wheelchairs.

\n

Document Delivery

\n

UCLA-affiliated users can request copies of journal articles and book chapters, as well as borrow items owned by any library facility. Please ask a staff member or visit the Document Delivery webpage for more information.

\n

Document delivery services are available to the general public through the Hugh and Hazel Darling Law Library, Research Library and Southern Regional Library Facility. For more information, please visit the Document Delivery webpage.

\n

Retrieving Materials

\n

Library staff can help users with disabilities access library stacks. The number of items we can retrieve per day may be limited due to staffing or workload considerations. When materials cannot be paged immediately, staff will arrange to have the material ready the next work day.

\n

Special carts in the Biomedical, Music, Research and Science and Engineering libraries are available to assist in retrieving and transporting materials. Please ask for a cart at the circulation desks in these libraries.

\n

Proxy Borrower Card

\n

Users may designate an individual to borrow books in their name for no additional charge. That individual will be issued a proxy borrower card. Please ask staff at any circulation desk for more information.

\n

Photocopying Materials

\n

Staff can make photocopies of materials for users with disabilities. Please bring the materials to be copied to any circulation desk, along with a BruinCard that has enough money to pay for the copies. We do not accept cash. When staff are not available to make copies, you can leave the material and your BruinCard and pick up your copies the next work day. All copying must be in compliance with U.S. copyright law.

\n

Renewals

\n

To renew items, logon to your account in the UCLA Library Catalog. Visit the Borrow, Renew, Return webpage for more information and detailed instructions.

","sectionTitle":null},{"id":"46072","typeHandle":"simpleCards","sectionTitle":null,"sectionSummary":null,"cards":[{"id":"46073","typeHandle":"internalServiceOrResource","contentLink":[{"id":"45295","uri":null,"slug":"campus-accessibility-resources","title":"Campus Accessibility Resources","summary":"

UCLA accessibility information, accommodations and resources, including educational services and computing support.

","externalResourceUrl":"https://www.ucla.edu/accessibility"}]},{"id":"46074","typeHandle":"externalServiceOrResource","title":"Contact Us","summary":"Email us with your questions about accessibility resources, including research services and instructional support.","externalLink":"http://mailto:+accessibility@library.ucla.edu"}]}]} +{"id":"31182","to":"help/services-resources/requesting-an-event-or-exhibit-at-powell","slug":"requesting-an-event-or-exhibit-at-powell","title":"Requesting an Event or Exhibit at Powell","summary":"

Information on how to hold an event or exhibit at Powell Library.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-find-space","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"powell-library","title":"Powell Library"}],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/DSC05079.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/DSC05079.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/DSC05079.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/DSC05079.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/DSC05079.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/DSC05079.jpg 2560w","alt":"Event in Powell","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"31202","typeHandle":"richText","richText":"

Fill out the form below to request an event or exhibit at Powell Library. Please provide us with the desired room, date and expected attendance of your event. If you don't have promotional materials created, please note the specifications on the form. We ask that you collaborate with us on these materials.

\n

A staff member will respond to your request within one business week.

","sectionTitle":null},{"id":"31224","typeHandle":"form","form":"
","sectionTitle":null,"sectionSummary":null}]} +{"id":"30683","to":"help/services-resources/graduate-reading-room","slug":"graduate-reading-room","title":"Graduate Reading Room","summary":"

Graduate students in health and life sciences can use this 24-hour study space.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-find-space","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"biomed","title":"Louise M. Darling Biomedical Library"}],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"30785","typeHandle":"richText","richText":"

The Louise M. Darling Biomedical Library Graduate Reading Room is a 24-hour study space for graduate students in the Schools of Dentistry, Medicine, Nursing and Public Health, as well as in the Life Sciences division of the College. Others may not use the facility. The Center for Health Sciences (CHS) security conducts daily BruinCard checks to ensure all users are following this policy.

","sectionTitle":"Access"},{"id":"30787","typeHandle":"richText","richText":"

To keep the area accessible, safe and clean, please observe the following rules:

\n
  • Use group study rooms only in groups, not by yourself. These rooms cannot be reserved in advance.
  • Maintain a quiet study environment.
  • Do not let other individuals into the Graduate Reading Room with your BruinCard.
  • Do not attempt to access the rest of the Biomedical Library when it is closed.
  • Do not bring food into the Graduate Reading Room. You may bring beverages.
  • Cooperate with Biomedical Library staff during library closing. Staff may check backpacks, bags and other materials during this time.

Anyone observed violating these rules will no longer be able to use it and may be fined.

","sectionTitle":"Policies"},{"id":"30788","typeHandle":"richText","richText":"

If you are eligible to use the Graduate Reading Room but your BruinCard does not authorize access, please fill out an access problem form. These are available at the Biomedical Library service desk. Facility and housekeeping problems can be reported in person at the service desk, by telephone at 310-825-5781, or by emailing us at biomed-access@library.ucla.edu.

","sectionTitle":"Reporting Problems"}]} +{"id":"29986","to":"help/services-resources/social-science-data-archive-and-collections","slug":"social-science-data-archive-and-collections","title":"Data Archive and Collections","summary":"

Social Science Data Archive and UCLA Dataverse

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-digitized-resources","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"data-science-center","title":"Data Science Center"}],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"30012","typeHandle":"richText","richText":"

Social Science Data Archive

\n

Started in 1961, the Social Science Data Archive collection consists of surveys, enumerations, public opinion polls and de-identified administrative records. Topics of studies include political attitudes and behavior; social and economic attitudes and behaviors; studies of health status and health outcomes; families, children and women; international surveys of occupational and social mobility; the Los Angeles County Social Surveys; California Polls; and census data for the United States and other countries.

","sectionTitle":null},{"id":"30013","typeHandle":"richText","richText":"

UCLA Dataverse

\n

UCLA Library is adopting Dataverse, the open source web application designed for sharing, preserving and using research data. UCLA Dataverse will allow data, text, software, scripts, data visualizations, etc., created from research projects at UCLA to be made publicly available, widely discoverable, linkable and ultimately, reusable. We will also support the ability of research groups, centers, schools and departments to obtain their own sub-dataverse that they can administer with guidance and training from the Data Science Center.

","sectionTitle":null},{"id":"30014","typeHandle":"richText","richText":"

Dataverse Repository

\n

Dataverse is an open source web application the enables sharing, preserving, citing, exploring and analyzing research data. It facilitates making data available to others, and allows you to replicate others' work more easily. The DSC is responsible for UCLA Dataverse installation and helping researchers curate and publish their data. We are also a member of the Dataverse Constorium.

","sectionTitle":null},{"id":"31426","typeHandle":"richText","richText":"

About the Social Science Data Archive

\n

Data services have been operating at UCLA since 1961 when political science professor Dwaine Marvick established the Political Behavior Archive (PBA); through his efforts, UCLA was one of the 8 founding members of the Inter-university Consortium for Political and Social Research (ICPSR) in 1962. When the Survey Research Center (SRC) was formed in 1964 under the direction of Eve Fielder, the PBA was merged with a planned Archive Data Library the SRC was to house.

\n

In 1977, Donald Treiman (Distinguished Professor, Sociology) was instrumental in designing and defining a new framework for the Data Archive. Under the guidance and stewardship of William A.V. Clark (Professor, Geography) the Archive developed into the popular campus facility of today.

The Archive was re-organized into the UCLA Library in 2014.

","sectionTitle":null}]} +{"id":"29710","to":"help/services-resources/what-is-ucla-dataverse","slug":"what-is-ucla-dataverse","title":"UCLA Dataverse","summary":"Discover how you can preserve your research for the long term here at UCLA.","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-digitized-resources","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Our team of experts provides support in data, mapping and geographic information systems (GIS).

","title":"Research Data Services","slug":"research-data-services","uri":"help/services-resources/research-data-services"}],"button":[{"buttonText":"Access UCLA Dataverse","buttonUrl":"https://dataverse.ucla.edu/"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-139_2022-10-03-232316_iktw.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-139_2022-10-03-232316_iktw.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-139_2022-10-03-232316_iktw.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-139_2022-10-03-232316_iktw.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-139_2022-10-03-232316_iktw.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-139_2022-10-03-232316_iktw.jpg 2560w","alt":"UCLA 2019 08 01 139","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"62828","typeHandle":"richText","richText":"

Dataverse is a web application designed for sharing, preserving and using research data. The UCLA Dataverse aids UCLA researchers in both the publishing and tracking of data, text software, scripts and visualizations. The data can then be made publicly available, discoverable, linkable and reusable. The UCLA Library Data Science Center can aid university groups in obtaining their own sub-dataverses.

\n\n

Why Archive Your Data?

\n
  • Preserves your research for the long term.

  • Enables you to share data with other researchers and use data shared by other researchers.

  • Provides wider visibility for your research.

  • Supports secondary analysis of quantitative research.

How Data Archives Can Help

\n
  • Offer advice on how to share your data while preserving the privacy of human respondents.

  • Ensure your data will continue to be usable through changes in software and computing equipment.

  • Take the burden off you to manage your data.

For more questions, contact the UCLA Library Data Science Center.

","sectionTitle":"About the Dataverse"}]} +{"id":"28919","to":"help/services-resources/lux-lab-equipment-information","slug":"lux-lab-equipment-information","title":"Lux Lab Equipment Information","summary":"

Inventory and details of the 3D printers, 3D scanners and laser cutters available at UCLA Library's Lux Lab.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"data-science-center","title":"Data Science Center"}],"associatedTopics":[{"text":"

The Lux Lab provides emerging technology services to the UCLA community.

","title":"Lux Lab","slug":"yrl-lux-lab","uri":"help/services-resources/yrl-lux-lab"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/8-22-18_YRL_Lux-Lab-25.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/8-22-18_YRL_Lux-Lab-25.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/8-22-18_YRL_Lux-Lab-25.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/8-22-18_YRL_Lux-Lab-25.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/8-22-18_YRL_Lux-Lab-25.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/8-22-18_YRL_Lux-Lab-25.jpg 2560w","alt":"8 22 18 YRL Lux Lab 25","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"28922","typeHandle":"richText","richText":"

Makerbot Replicator 5th Generation: Our smallest Makerbot printer. Uses fused deposition modeling (FDM) printing technology. Primary material is PLA (polylactic acid) filament. Build volume is 9.9 inches x 7.8 inches x 5.9 inches L/W/H. Thickness of print is 100 microns (0.004 inches).

\n\n

\n

Makerbot Replicator+: Our most heavily used and most reliable Makerbot printer. Uses FDM printing technology. Primary material is PLA filament. Build volume is 11.6 inches x 7.6 inches x 6.5 inches L/W/H. Thickness of print is 100 microns (0.004 inches).

\n

Makerbot Replicator Z18: Our largest printer. Uses FDM printing technology with an air-heated print chamber to prevent warping on larger prints. Primary material is PLA filament. Build volume is 11.8 inches x 12 inches x 18 inches L/W/H. Thickness of print is 100 microns (0.004 inches).

\n

Formlabs Form 2: Our highest resolution printer. Utilizes stereolithography (SLA) technology to create prints out of light-reactive resin. Build volume is 5.7 inches x 5.7 inches x 6.9 inches L/W/H. Capable of printing with both flexible and standard Formlabs resin. Thickness of print is 25 microns (0.001 inches). Laser wattage is 250 milliwatts.

\n

Formlabs Form 3: Utilizes low force stereolithography (LFS) technology to create resin-based 3D prints. Build volume is 5.7 inches x 5.7 inches x 6.9 inches L/W/H. Capable of printing with both flexible and standard Formlabs resin. Thickness of print is 25 microns (0.001 inches). Laser wattage is 250 milliwatts.

","sectionTitle":"3D Printers"},{"id":"28958","typeHandle":"richText","richText":"

Epilog Helix 24: Capable of laser etching and laser cutting a variety of materials, including acrylic, wood, mat board, glass and stainless steel. Engraving area is 24 inches x 18 inches. Maximum etching thickness is 8.5 inches, and maximum cutting thickness is 0.25 inches. Laser wattage is 40 watts, and resolution is 75 to 1200 dots per inch.

","sectionTitle":"Laser Etcher/Cutter"},{"id":"28960","typeHandle":"richText","richText":"

Arctec Space Spider: A highly accurate 3D scanner, perfect for 3D rendering of small to medium-sized objects. 3D point accuracy is 50 microns (0.002 inches). 3D resolution is 100 microns (0.0039 inches). 3D accuracy is 0.03% over 100 centimeters (39.4 inches). Working distance is 0.2 to 0.3 meters (7.9 inches to 11.8 inches). Volume capture zone is 2000 cubic centimeters (122 cubic inches).

\n\n

Arctec Eva: A step up from the Space Spider, the Eva is capable of 3D rendering larger items at a lower accuracy. 3D point accuracy is 100 microns (0.004 inches). 3D resolution is 500 microns (0.02 inches). 3D accuracy is 0.03% over 100cm (39.4 inches). Working distance is 0.4 to 1.0 meters (1.3 feet to 3.3 feet). Volume capture zone is 610 cubic meters (798 cubic yards).

","sectionTitle":"3D Scanning"}]} +{"id":"26189","to":"help/services-resources/writing-instruction-research-education-wi-re","slug":"writing-instruction-research-education-wi-re","title":"Writing Instruction + Research Education (WI+RE)","summary":"

WI+RE is a learner-led community helping students succeed in writing and research projects. Check out some of our work below.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-teaching","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Library staff can help at every stage of the research process. Schedule a consultation with us or stop by one of our help desks for more information.

","title":"Research Consultations","slug":"research-consultations","uri":"help/services-resources/research-consultations"},{"text":"

Request an instruction session or instructional consultation to support your students' research needs.

","title":"Library Instruction","slug":"library-instruction","uri":"help/services-resources/library-instruction"}],"button":[{"buttonText":"WI+RE Website","buttonUrl":"https://uclalibrary.github.io/research-tips/"}],"heroImage":[],"blocks":[{"id":"27844","typeHandle":"simpleCards","sectionTitle":"General Information","sectionSummary":null,"cards":[{"id":"27845","typeHandle":"externalServiceOrResource","title":"About WI+RE","summary":"The WI+RE team uses learner-centered design to create and improve online tutorials.","externalLink":"https://uclalibrary.github.io/research-tips/about/"},{"id":"27846","typeHandle":"externalServiceOrResource","title":"The WI+RE Team","summary":"Get to know the WI+RE creative team and catch up with WI+RE alumni.","externalLink":"https://uclalibrary.github.io/research-tips/about/creative-team/"},{"id":"27847","typeHandle":"externalServiceOrResource","title":"WI+RE Sandbox","summary":"Check out WI+RE's behind the scenes work.","externalLink":"https://uclalibrary.github.io/research-tips/sandbox/"},{"id":"27848","typeHandle":"externalServiceOrResource","title":"WI+RE's Design Tools","summary":"The resources we use to create innovative and impactful designs.","externalLink":"https://uclalibrary.github.io/research-tips/about/design-toolkit/"},{"id":"27849","typeHandle":"externalServiceOrResource","title":"WI+RE's Manifesto: The WI+RE Way","summary":"Learn how WI+RE's shared values guide our collaborative approach to learning and design.","externalLink":"https://uclalibrary.github.io/research-tips/wire-way/"},{"id":"27850","typeHandle":"externalServiceOrResource","title":"Contact Us","summary":"Questions or comments? Don't hesitate to reach out!","externalLink":"https://uclalibrary.github.io/research-tips/contact/"}]},{"id":"27571","typeHandle":"simpleCards","sectionTitle":"Workshops","sectionSummary":null,"cards":[{"id":"27572","typeHandle":"externalServiceOrResource","title":"Cornerstone Research Workshops","summary":"Workshops designed to help you develop foundational research skills.","externalLink":"https://uclalibrary.github.io/research-tips/workshops/#cornerstone-research-workshops"},{"id":"27573","typeHandle":"externalServiceOrResource","title":"Entering Research Workshops","summary":"Modules that teach basic research skills, specifically made for undergraduates.","externalLink":"https://uclalibrary.github.io/research-tips/workshops/#entering-research-workshops"},{"id":"27574","typeHandle":"externalServiceOrResource","title":"C.R.E.A.T.E.S.","summary":"A six-step guide to reading, analyzing and understanding scientific papers.","externalLink":"https://uclalibrary.github.io/creates/"}]},{"id":"27575","typeHandle":"simpleCards","sectionTitle":"Tutorials","sectionSummary":null,"cards":[{"id":"27576","typeHandle":"externalServiceOrResource","title":"Getting Started with Research at UCLA","summary":"Ways to get involved in research or start your own.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#getting-started-with-research"},{"id":"27577","typeHandle":"externalServiceOrResource","title":"Finding and Citing Sources","summary":"Information on how to get the right sources, and how to cite them when you do.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#finding-and-citing-sources"},{"id":"27578","typeHandle":"externalServiceOrResource","title":"Writing Strategies","summary":"Tips for every stage of the writing process, from drafting a thesis to writing your conclusion.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#writing-strategies"},{"id":"27579","typeHandle":"externalServiceOrResource","title":"Literature Reviews","summary":"A breakdown of literature reviews, from the types that exist to how to write them.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#literature-reviews"},{"id":"27580","typeHandle":"externalServiceOrResource","title":"Sharing Your Research","summary":"Ways to communicate your findings to others, whether verbal or written.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#sharing-your-research"},{"id":"27581","typeHandle":"externalServiceOrResource","title":"Reading Strategies","summary":"Help with reading and understanding others' research, including a reading playlist.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#reading-strategies"}]},{"id":"27842","typeHandle":"pullQuote","pullQuote":[{"text":"

We believe learning is most compelling when learners are leaders, designers, and co-creators of their learning experiences.

","attribution":null}]},{"id":"27582","typeHandle":"simpleCards","sectionTitle":null,"sectionSummary":null,"cards":[{"id":"27583","typeHandle":"externalServiceOrResource","title":"Engineering Research","summary":"Tutorials geared towards students conducting engineering research.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#engineering-research"},{"id":"27584","typeHandle":"externalServiceOrResource","title":"Inclusive Research Strategies","summary":"Tips on how to be aware of the ways your perspective affects your research.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#inclusive-research-strategies"},{"id":"27585","typeHandle":"externalServiceOrResource","title":"Data Literacy","summary":"Information about working with data in research — regardless of your subject field.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#data-literacy"},{"id":"27586","typeHandle":"externalServiceOrResource","title":"Student Success","summary":"Tutorials for students, by students about how to succeed academically.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#student-success"},{"id":"27587","typeHandle":"externalServiceOrResource","title":"STEM Tutorials","summary":"Research tips and tricks for students in STEM.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#stem-tutorials"},{"id":"27588","typeHandle":"externalServiceOrResource","title":"Lesson Plans","summary":"Modules for instructors who want to bring research into the classroom.","externalLink":"https://uclalibrary.github.io/research-tips/tutorials/#lesson-plans"}]},{"id":"28044","typeHandle":"simpleCards","sectionTitle":"Handouts","sectionSummary":null,"cards":[{"id":"28085","typeHandle":"externalServiceOrResource","title":"Scholarly vs. Popular Sources","summary":"Learn about the differences between these sources and when to use them.","externalLink":"https://uclalibrary.github.io/research-tips/handouts/scholarly_vs_popular_sources/"},{"id":"28086","typeHandle":"externalServiceOrResource","title":"Breaking Down Your Prompt","summary":"Break down your research prompt into its main requirements, list helpful resources and start brainstorming ideas.","externalLink":"https://uclalibrary.github.io/research-tips/handouts/Breaking-Down-Your-Prompt/"},{"id":"28045","typeHandle":"externalServiceOrResource","title":"Additional Handouts","summary":"Handouts on other topics, from getting started with research to sharing your work.","externalLink":"https://uclalibrary.github.io/research-tips/handouts"}]}]} +{"id":"25738","to":"help/services-resources/research-consultations","slug":"research-consultations","title":"Research Consultations","summary":"

Library staff can help at every stage of the research process. Schedule a consultation with us or stop by one of our help desks for more information.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-research","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

We're here to help! Library staff can support your research journey with a variety of services, tools and resources.

","title":"Research Help","slug":"research-help","uri":"help/research-help"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-211_2022-10-03-232241_hbqr.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-211_2022-10-03-232241_hbqr.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-211_2022-10-03-232241_hbqr.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-211_2022-10-03-232241_hbqr.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-211_2022-10-03-232241_hbqr.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-211_2022-10-03-232241_hbqr.jpg 2560w","alt":"Research Consultations","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"26296","typeHandle":"simpleCards","sectionTitle":"Schedule an Appointment","sectionSummary":"

Have a research question? We can help you with everything from defining a research topic to developing search strategies.

","cards":[{"id":"26298","typeHandle":"externalServiceOrResource","title":"Schedule an Online Consultation","summary":"Meet with a library specialist over Zoom.","externalLink":"https://calendar.library.ucla.edu/appointments/virtual?_ga=2.184696617.1817534859.1653331373-1471768048.1651719399"},{"id":"26297","typeHandle":"externalServiceOrResource","title":"Schedule an In-Person Consultation","summary":"Meet with a library specialist at one of our campus libraries.","externalLink":"https://calendar.library.ucla.edu/appointments/inperson?_ga=2.178985764.1817534859.1653331373-1471768048.1651719399"}]},{"id":"26300","typeHandle":"simpleCards","sectionTitle":"Research Help Desks","sectionSummary":"

Drop by the Research Help Desks at the Charles E. Young Research Library and Powell Library to learn about strategies and tools you can use in your research.

","cards":[{"id":"26301","typeHandle":"internalServiceOrResource","contentLink":[{"id":"523","uri":"visit/locations/powell-library","slug":"powell-library","title":"Powell Library","summary":"

The main undergraduate library on campus, Powell Library is a place for inquiry, creativity and community!

"}]},{"id":"26302","typeHandle":"internalServiceOrResource","contentLink":[{"id":"801","uri":"visit/locations/research-library","slug":"research-library","title":"Charles E. Young Research Library","summary":"

YRL provides research-level collections and services in the humanities, social sciences, education, public affairs, government information and maps.

"}]}]},{"id":"26303","typeHandle":"simpleCards","sectionTitle":"Additional Research Support","sectionSummary":null,"cards":[{"id":"62335","typeHandle":"internalServiceOrResource","contentLink":[{"id":"38401","uri":"help/services-resources/scholarly-communication-services","slug":"scholarly-communication-services","title":"Scholarly Communication Services","summary":"

Explore resources to help you understand copyright, publishing, open access and other issues related to scholarly communication.

"}]},{"id":"62336","typeHandle":"internalServiceOrResource","contentLink":[{"id":"22381","uri":"help/services-resources/research-data-services","slug":"research-data-services","title":"Research Data Services","summary":"

Our team of experts provides support in data, mapping and geographic information systems (GIS).

"}]}]}]} +{"id":"25038","to":"help/services-resources/wireless-network-access-wi-fi","slug":"wireless-network-access-wi-fi","title":"Wi-Fi Access","summary":"

Learn how to connect to campus Wi-Fi in library buildings.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-remote-access","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Learn how to use a VPN or proxy server to access UCLA Library resources from off-campus.

","title":"Connecting from Off-Campus","slug":"connecting-from-off-campus","uri":"help/services-resources/connecting-from-off-campus"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-250.jpg","height":931,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-250.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-250.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-250.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-250.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-250.jpg 2560w","alt":"student using laptop","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"57269","typeHandle":"richText","richText":"

Wi-Fi is available in most UCLA Library buildings. The networks eduroam and UCLA_WIFI require a UCLA Logon ID, while UCLA_WEB is unrestricted. UCLA subscription databases can be accessed on all three networks while on campus.

\n

How To Connect

\n

Most areas in Library buildings are within coverage of UCLA wireless networks. For more information about connecting to Wi-Fi on campus, please visit UCLA IT Support Center's wireless network access page.

\n

What You'll Need

\n

To use the wireless network, you'll need:

\n
  • A valid UCLA Logon and password (for eduroam and UCLA_WIFI)
  • A built-in wireless Internet antenna or wireless adapter

Where to Get Help

\n

UCLA wireless network support is provided by the IT Support Center. Their website provides troubleshooting tips and details about who to contact for help.

\n

Eduroam

\n

Eduroam is a global roaming wireless service for higher education. If your device is set up to use the eduroam network at UCLA, you can connect to eduroam at any participating institution.

","sectionTitle":null},{"id":"25718","typeHandle":"simpleCards","sectionTitle":"Campus Resources","sectionSummary":null,"cards":[{"id":"25719","typeHandle":"externalServiceOrResource","title":"Wireless Network Access Knowledge Base","summary":"More information from Campus IT services on how to connect to wi-fi.","externalLink":"https://ucla.service-now.com/support?id=kb_category&kb_category=b6115f731b363740a093caae6e4bcb4f"},{"id":"25720","typeHandle":"externalServiceOrResource","title":"UCLA Wireless Campus Map","summary":"Shows wi-fi coverage areas both on and off UCLA campus.","externalLink":"https://map.ucla.edu/?f=8"}]}]} +{"id":"24321","to":"help/services-resources/shares-program","slug":"shares-program","title":"OCLC SHARES Program","summary":"

Learn how to access resources and materials from our partners all over the world.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Information about checking out library materials and library loan periods.

","title":"Borrow, Renew, Return","slug":"borrow-renew-return","uri":"help/services-resources/borrow-renew-return"}],"button":[],"heroImage":[],"blocks":[{"id":"24717","typeHandle":"richText","richText":"

SHARES is a program run by the Online Computer Library Center (OCLC) that allows collaboration among partner libraries. UCLA students, staff and faculty can gain entry at all SHARES partner institutions with their Bruincard. No prior arrangements are necessary.

\n

SHARES On-Site Borrowing Pilot Program

\n

A small number of SHARES libraries also allow members of other SHARES institutions to create a library account and check out materials. The partners in this pilot program are Brandeis University, Cornell University, Northwestern University, Syracuse University, Temple University, UCLA and Washington University in St. Louis. Local policies and some restrictions apply.

","sectionTitle":"About SHARES"},{"id":"24719","typeHandle":"richText","richText":"

UCLA Students, Staff or Faculty visiting partners in the On-Site Borrowing Program

\n
  • Complete and submit the SHARES application
  • The UCLA Interlibrary Loan Department will verify your status and forward your application to the SHARES institution you plan to visit.
  • You will receive a confirmation email from the institution you plan to visit with details about when you can pick up your library card.

For further information or questions, please contact Interlibrary Loans Manager Alicia Amador.

\n

Visitors at UCLA from a SHARES institution

\n

All our buildings are open to the public. No ID is required for entry. If you are visiting from one of the institutions in On-Site Borrowing Pilot Program and would like to borrow materials from UCLA Library, follow the steps below to set up a UCLA library account.

\n
  • Start the application process at your home institution.
  • Your home institution will submit your completed SHARES Reciprocal Borrowing Program Application to the Library.
  • The Library will contact you directly when your SHARES application has been received and processed.
  • Visit the Charles E. Young Research Library (LINK TO Young Research Library hours) circulation desk and present a government issued photo ID to receive your library card.
  • Your library card will:
    • Be valid for one year from the date of issuance.
    • Allow physical access and borrowing of circulating books and DVDs at all UCLA libraries.
    • Allow you to check out up to twenty items for 4 weeks.
    • Allow you to return items at either UCLA or your home institution's library.

The Hugh and Hazel Darling Law Library only allows limited access to its materials, including for members of SHARES institutions. Users from SHARES institutions who meet the requirements of the access policy are eligible to use the Law Library and borrow materials by following the steps listed above.

","sectionTitle":null}]} +{"id":"23980","to":"help/services-resources/borrow-renew-return","slug":"borrow-renew-return","title":"Borrow, Renew, Return","summary":"

Information about checking out library materials and library loan periods.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-179.jpg","height":1024,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-179.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-179.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-179.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-179.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-179.jpg 2560w","alt":"UCLA 2019 08 02 179","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"35718","typeHandle":"richText","richText":"
  • Use UC Library Search to locate your item's location and call number. Books are stored in alphanumeric order by call number at each library.
  • If the book is not on the shelf, we can search for it! Please visit a circulation desk or fill out the Find a Missing Item form to locate it.

Borrowing is first-come, first-serve. The Library does not reserve books in advance.

\n

If you can't find what you are looking for, we can still help you find what you need! Our Interlibrary Loan service allows eligible UCLA patrons to borrow materials from other institutions.

","sectionTitle":"Borrowing Books"},{"id":"53602","typeHandle":"simpleCards","sectionTitle":null,"sectionSummary":null,"cards":[{"id":"53603","typeHandle":"internalServiceOrResource","contentLink":[{"id":"33703","uri":"help/services-resources/course-reserves","slug":"course-reserves","title":"Course Reserves","summary":"

Information for students on how to access course reserves.

"}]},{"id":"53604","typeHandle":"internalServiceOrResource","contentLink":[{"id":"23595","uri":"help/services-resources/find-a-missing-item","slug":"find-a-missing-item","title":"Find a Missing Item","summary":"

Can't find the item on the shelf? UCLA Library will search for items missing from its collection.

"}]},{"id":"63178","typeHandle":"internalServiceOrResource","contentLink":[{"id":"53366","uri":"help/services-resources/interlibrary-loan-ill","slug":"interlibrary-loan-ill","title":"Interlibrary Loan (ILL)","summary":"

Our interlibrary loan (ILL) service enables Bruins to obtain material not available in UCLA libraries.

"}]}]},{"id":"53605","typeHandle":"richText","richText":"

You can return most library materials to any library on campus. The following items must be returned directly to the library location from which they were borrowed:

\n\n
  • Interlibrary loan items
  • One-day loan items
  • Reserves
  • Items borrowed from department libraries (such as the English Reading Room)

The Charles E. Young Research Library and Powell Library have exterior book drop bins accessible 24/7.

","sectionTitle":"Return"},{"id":"55209","typeHandle":"richText","richText":"

Click \"My Library Account\" in the top right corner of UC Library Search and log in. Access and renew your items by clicking on your name in the top right corner and selecting \"My Loans\" in the drop-down menu.

\n\n

Renewal Problems

\n

If you cannot renew items online due to restrictions on your account, please email your name, BruinCard or library card number and your request to renew to yrl-circ@library.ucla.edu. Email requests may take up to 3 business days to process.

","sectionTitle":"Renew"},{"id":"24256","typeHandle":"richText","richText":"

The loan periods below apply to the following locations:

\n\n
  • Arts Library
  • Louise M. Darling Biomedical Library
  • Eugene and Maxine Rosenfeld Management Library
  • Music Library
  • Powell Library
  • Research Library
  • Science and Engineering Library

Loan periods for the Southern Regional Library Facility and Hugh and Hazel Darling Law Library can be found on their respective websites.

\n

All circulating material is subject to recall by the Library. Once recalled, the due date of an item will be shortened to seven days from the recall date if the original due date does not fall before then. Overdue recalled items are subject to fines.

\n

Reference and Special Collection Materials are for building use only and do not circulate from any library. Unbound journals do not circulate at Arts, Music and Powell Libraries.

\n

Books

Bound JournalsUnbound JournalsCourse Reserves
UCLA Faculty, Students and Staff90 days; renewable14 days; renewable7 days; not renewableTwo hours, or overnight if checked out an hour or less before closing; not renewable
External Users28 days; four renewals per itemLibrary Use OnlyLibrary Use OnlyNot Available


","sectionTitle":"Loan Periods"}]} +{"id":"23853","to":"help/services-resources/faculty-authorization-proxy-card","slug":"faculty-authorization-proxy-card","title":"Faculty Authorization (Proxy) Card","summary":"

UC faculty users can authorize another individual to check out Library items on their behalf.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"55121","typeHandle":"richText","richText":"

There are two ways to request or renew a faculty authorization card:

\n
  • Submit the request form below. UCLA Library staff will notify you when the card is ready. The authorized user must present a photo ID at the time of pickup.
  • Fill out an application at a library circulation desk. Both the faculty member and the authorized user must be present. The faculty member must present a valid library card, and the authorized user must present a photo ID.

Terms and Conditions

\n
  • Cards are issued for one year or less and can be renewed using the form below.
  • Authorized users must be at least 18 years old.
  • The faculty member must provide their campus address for account creation.
  • The faculty member assumes responsibility for all materials checked out by the authorized user. All recall notices, fines and bills will be sent to the faculty member.
  • Faculty members should inform the Library if card privileges must be terminated before the card's expiration date.
","sectionTitle":"Request or Renew an Authorization Card"},{"id":"35707","typeHandle":"form","form":"
","sectionTitle":null,"sectionSummary":null}]} +{"id":"23595","to":"help/services-resources/find-a-missing-item","slug":"find-a-missing-item","title":"Find a Missing Item","summary":"

Can't find the item on the shelf? UCLA Library will search for items missing from its collection.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-180.jpg","height":931,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-180.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-180.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-180.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-180.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-180.jpg 2560w","alt":"UCLA student in stacks","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"23835","typeHandle":"richText","richText":"

If an item is not on the shelf, users can place a search request using the form below. Please check the shelf on two separate days before placing a search request in case the item has been in use.

","sectionTitle":null},{"id":"35723","typeHandle":"form","form":"
","sectionTitle":null,"sectionSummary":null}]} +{"id":"23074","to":"help/services-resources/library-cards","slug":"library-cards","title":"Library Cards","summary":"

Learn how you can access UCLA Library's vast collection.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

UC faculty users can authorize another individual to check out Library items on their behalf.

","title":"Faculty Authorization (Proxy) Card","slug":"faculty-authorization-proxy-card","uri":"help/services-resources/faculty-authorization-proxy-card"},{"text":"

Read more about the responsibilities involved with borrowing materials from the UCLA Library.

","title":"Borrower Responsibilities","slug":"borrower-responsibilities","uri":"about/policies/borrower-responsibilities"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-43.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-43.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-43.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-43.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-43.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-43.jpg 2560w","alt":"UCLA 2019 08 02 43","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"23106","typeHandle":"richText","richText":"
  • UCLA Students, Staff and Faculty: Your BruinCard serves as your library card. Your library number is your University ID number plus the digit in the lower right corner on the back of your card.
  • Other UC Students, Staff and Faculty: You can use your library card from your home campus.
  • Researchers working with UC faculty: UC faculty can authorize others to check out Library items on their behalf by obtaining a Faculty Authorization (Proxy) Card.
  • UCLA Retirees: You are entitled to a free BruinCard upon retirement, which serves as your library card.
  • UCLA and UC Alumni: Members of any UC Alumni Association are eligible for a free library card. Present proof of your membership to any Library circulation desk to obtain your card.
  • Graduate Students on Leave: You can buy Library privileges for $28 per quarter. Present verification of your leave to a library circulation desk for purchase.
","sectionTitle":"UC Users"},{"id":"35672","typeHandle":"richText","richText":"
  • UCLA Extension Students: You can purchase a library card for $28 per quarter with proof of your enrollment at the Charles E. Young Research Library and Louise M. Darling Biomedical Library circulation desks.
  • Community College and CSU Students: Library cards are $25 for six months and $50 for one year. Present your student ID and a government-issued ID at the Research Library circulation desk to obtain your card.
  • Donors: Members of UCLA Library Associates can receive a free library card with a gift of $120 to the Library. Present confirmation of your gift to the Biomedical Library or Research Library circulation desk to obtain your card.
  • General Public: Individuals over 18 years old can get a free, access-only card with a current, government-issued photo ID at most circulation desks. This card is required to use many Library facilities and services but does not allow users to borrow items. Members of the public over 18 years old can purchase a borrower card for $100 per year. Please present a current, government-issued photo ID at the Biomedical Library or Research Library circulation desk to get a borrowing card.
  • High School Students: Most students are not eligible for a library card. However, high school students in Advanced Placement courses with agreements with Powell Library can get free library cards. High school instructors who want to enroll their students in the program can email us at AskUs@library.ucla.edu.
  • Other External Users Eligible for Free Cards: If you belong to one of the following groups, provide proof of your membership status and a current, government-issued photo ID to obtain a free card.
    • Faculty and librarians at California institutions of higher education accredited by the Western Association of Schools and Colleges
    • Current members of certain university support groups and individuals in programs who are covered by agreements between UCLA and other institutions (if you have questions about whether you qualify, please email yrl-circ@library.ucla.edu)
    • Immediate family members (age 18+) of UCLA faculty and staff
    • UCLA Extension instructors (upon presentation of a UCLA Extension library card authorization form)
    • Certified K-12 public school employees in California

Please note that borrower cards do not provide off-campus access to UCLA's online subscription materials.

","sectionTitle":"External Users"},{"id":"35673","typeHandle":"richText","richText":"

Card Renewals\n\n

\n

Current UCLA faculty, staff and student cards will be renewed each year until an individual leaves the university. All other library cardholders (excluding those with quarterly cards) have a yearly expiration date for their library account. If your card has expired, please email the Research Library circulation desk at yrl-circ@library.ucla.edu.

\n

Lost Library Cards

\n

Lost or stolen BruinCards should be reported to the BruinCard Center at (310) 825-2336. If you lose your library-issued card, please report it to the Library by emailing us at yrl-circ@library.ucla.edu.

\n

Address Updates

\n

UCLA students, faculty and staff should notify the university of address changes by signing into their MyUCLA account. Other users should inform the Library of address changes by visiting any Library circulation desk or by emailing their name, library card number and new address to yrl-circ@library.ucla.edu. Users who leave the area should arrange for their materials to be returned on time to avoid fines.

","sectionTitle":"Policies and Borrower Responsibilities"}]} +{"id":"22752","to":"help/services-resources/los-angeles-aqueduct-digital-platform","slug":"los-angeles-aqueduct-digital-platform","title":"Los Angeles Aqueduct Digital Platform","summary":"

Explore how UCLA Library is exploring the Aqueduct’s history and impact on the development of Southern California.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[{"buttonText":"View Platform","buttonUrl":"https://digital.library.ucla.edu/aqueduct/?_ga=2.60183466.641406634.1657051672-485660391.1517027299"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/LA-Aqueduct-hero.png","height":1600,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/LA-Aqueduct-hero.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/LA-Aqueduct-hero.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/LA-Aqueduct-hero.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/LA-Aqueduct-hero.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/LA-Aqueduct-hero.png 2560w","alt":"LA Aqueduct hero","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"22767","typeHandle":"richText","richText":"

UCLA Library Special Collections (LSC) developed the Los Angeles Aqueduct Digital Platform in partnership with environmental artist Lauren Bon and her practice at Metabolic Studio. The platform provides access to artifacts from LSC, including photographs, maps and pamphlets. It also features original research and writing from graduate students at LSC's Center for Primary Research and Training. The project allows users to explore the effects of the Aqueduct on California and the nation.

\n

Six California institutions contributed archives to the project: Braun Research Library at the Autry National Center; Special Collections, Honnold/Mudd Library, The Claremont Colleges and the Claremont Colleges Digital Library; Oviatt Library at Cal State Northridge; Eastern California Museum; William H. Hannon Library at Loyola Marymount University; and UC Riverside Libraries, Water Resources Collections and Archives. This collaboration enables users of the platform to search the holdings of multiple collections.

\n

For help using the platform, email LSC at spec-coll@library.ucla.edu.

","sectionTitle":"Los Angeles Aqueduct Digital Program"}]} +{"id":"22599","to":"help/services-resources/cluster-program-support","slug":"cluster-program-support","title":"Cluster Program Support","summary":"

Learn more about how the UCLA Library supports the undergraduate Cluster Program.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-research","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"powell-library","title":"Powell Library"}],"associatedTopics":[],"button":[{"buttonText":"Cluster Program","buttonUrl":"https://www.uei.ucla.edu/academic-programs/ucla-cluster-program/"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/Cluster_Support.jpg","height":1708,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/Cluster_Support.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/Cluster_Support.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/Cluster_Support.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/Cluster_Support.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/Cluster_Support.jpg 2560w","alt":"Cluster Support","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"22622","typeHandle":"richText","richText":"

UCLA Library partners with Undergraduate Education Initiatives to support the UCLA Cluster Program, an innovative series of courses designed to help first-year students succeed at UCLA. Each Cluster has a dedicated librarian who works collaboratively with the Peer Research & Writing Specialist—a student who has completed the program—to assist instructors and students in the course. Each Cluster's librarian and Peer Research & Writing Specialist can be found on the program's website.

\n

Peer Research & Writing Specialists help Cluster students by:

\n
  • Regularly attending Cluster lectures to make announcements and stay up-to-date with lecture content.
  • Holding office hours and meeting one-on-one with students to provide assistance with research, writing and navigating life at UCLA.
  • Organizing Cluster community events and tours of the library.
  • Leading research workshops and teaching students how to use library resources.

Liaison librarians help Cluster students by:

\n
  • Consulting with instructors to integrate information literacy and research skills into course assignments.
  • Meeting one-on-one with students to assist with research assignments.
  • Leading research workshops and teaching students how use library resources.
","sectionTitle":null}]} +{"id":"22381","to":"help/services-resources/research-data-services","slug":"research-data-services","title":"Research Data Services","summary":"

Our team of experts provides support in data, mapping and geographic information systems (GIS).

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-research","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"data-science-center","title":"Data Science Center"}],"associatedTopics":[{"text":"

We're here to help! Library staff can support your research journey with a variety of services, tools and resources.

","title":"Research Help","slug":"research-help","uri":"help/research-help"},{"text":"

Request an instruction session or instructional consultation to support your students' research needs.

","title":"Library Instruction","slug":"library-instruction","uri":"help/services-resources/library-instruction"}],"button":[{"buttonText":"Contact the Data Science Center","buttonUrl":"https://jira.library.ucla.edu/servicedesk/customer/portal/16?_ga=2.58094767.427488852.1651511775-90082012.1650564451"}],"heroImage":[],"blocks":[{"id":"22390","typeHandle":"richText","richText":"

The UCLA Library Data Science Center supports users throughout the entire data life cycle, including consultation, training and documentation.

\n

We also support computing and software requirements to generate, access, analyze and communicate data. We can help with:

\n
  • Data collection, cleaning and organization
  • Data management and funder requirements
  • Data visualization and analysis

Services

\n
  • Data Consultations: Schedule an appointment with the Data Science Center team for support with data research and other computationally intensive investigations.
  • Workshops and Events: Browse our current data science and coding workshops.
  • Software/Tools: Library workstations and laptops are loaded with various software and tools. UCLA's Software Central also provides discounts for university-affiliated individuals to install certain software.
  • Partner with the Library: The Library partners with researchers on projects that utilize Library expertise and resources, as well as support the Library's strategic goals. Current partners included the UCLA Center for Digital Humanities and the UCLA Institute for Digital Research and Education (IDRE). To learn more, contact your department's library liaison.
","sectionTitle":null}]} +{"id":"21291","to":"help/services-resources/digital-projects-for-special-collections","slug":"digital-projects-for-special-collections","title":"UCLA Library Special Collections Digital Project Toolkit","summary":"

Detailed templates, workflows and examples to support all stages of digital projects managed in special collection libraries.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[{"buttonText":"Download the Toolkit (zip file)","buttonUrl":"https://static.library.ucla.edu/craftassetsprod/UCLA_LSC-Digital-Project-Toolkit.zip#asset:29793"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/130920_LIB_0224.jpg","height":1704,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/130920_LIB_0224.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/130920_LIB_0224.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/130920_LIB_0224.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/130920_LIB_0224.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/130920_LIB_0224.jpg 2560w","alt":"Digital Project Toolkit","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"21546","typeHandle":"richText","richText":"

The Digital Project Toolkit (DPTK) supports digitization and digital scholarship projects in archives and special collections repositories. The work of archivists and \nlibrarians on such projects is often completed in collaboration with students, \nfaculty, technical staff and outside contractors. With that in mind, \nthe documentation of the DPTK is designed to be accessible to all potential project \nparticipants. The DPTK includes detailed templates, workflows and examples for all stages of digital projects, including:

\n\n
  • Project planning
  • Risk assessment
  • Implementation planning
  • Web development planning
  • Quality control workflow and guidelines for metadata and scanning
  • Communication/documentation tool for technical specifications
  • Assessment and evaluation tools and templates

The DPTK is made available to serve as a \nreference for other institutions while planning and implementing digital\n projects. It is a work in progress and will be updated as necessary.

","sectionTitle":null},{"id":"21997","typeHandle":"richText","richText":"

The UCLA Library Special Collections Digital Project Toolkit was \ndeveloped in iterations throughout several digital \nprojects in the Center for Primary Research and Training\n from 2013-2015. Several members of LSC staff and UCLA Library staff \ncontributed to producing and refining this documentation. Special thanks\n to Digital Project Manager Jasmine Jones, Digital Archivist Gloria \nGonzalez, University Archivist Heather Briston and CFPRT scholars Kylie\n Harris and Amrey Mathurin for their considerable contribution to this \neffort. This Toolkit would not have been possible without their \nexpertise, skill and enthusiasm.

\n\n

Jillian Cuellar | Former Head, Center for Primary Research & Training and Digital Initiatives for Library Special Collections

\n


","sectionTitle":"Acknowledgments"}]} +{"id":"21245","to":"help/services-resources/lsc-exhibition-lending","slug":"lsc-exhibition-lending","title":"LSC Exhibition Lending","summary":"

Library Special Collections (LSC) lends items for exhibition to institutions around the world.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"library-special-collections","title":"UCLA Library Special Collections"}],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/10-8-18_LSC_Student-Giving-Committee-Visit-18.jpg","height":931,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/10-8-18_LSC_Student-Giving-Committee-Visit-18.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/10-8-18_LSC_Student-Giving-Committee-Visit-18.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/10-8-18_LSC_Student-Giving-Committee-Visit-18.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/10-8-18_LSC_Student-Giving-Committee-Visit-18.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/10-8-18_LSC_Student-Giving-Committee-Visit-18.jpg 2560w","alt":"10 8 18 LSC Student Giving Committee Visit 18","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"21253","typeHandle":"richText","richText":"

Loans for Exhibition

\n

As part of our mission to inspire discovery, cultivate knowledge and advance research, UCLA Library Special Collections lends materials to cultural heritage institutions. Through our loans program, LSC facilitates the discovery and interpretation of materials in new contexts.

\n

Outgoing loan requests are considered on a case-by-case basis. Reviews take into account the physical condition of the items requested, the \nfacilities of the borrowing institution and the anticipated research \nneeds of the UCLA community.

\n

Please contact spec-coll@library.ucla.edu or call (310) 825-4988 if research assistance is needed to identify items.

Requesting a Loan

\n

Send loan request letters to:

\n

Courtney \"Jet\" Jacobs
\nHead of Public Services, Outreach and Community Engagement
\nA1713, Charles E. Young Research Library
\nBox 951575
\nLos Angeles, CA 90095-1575

\n

Request letters should include the following information:

\n
  • Place(s) of exhibition
  • \n
  • Title and dates of exhibition
  • Description of the exhibition, incluing subject, purpose, etc.
  • \n
  • Expected loan dates (including time for shipping, installation and de-installation)
  • \n
  • Full citation (including call number or collection, box and folder number) of items requested
  • \n
  • Display information (if available), such as page opening, wall-mounted, vitrine case, cradle, etc.
  • \n
  • Assurance that all costs (loan fees, shipping, insurance, imaging, etc.) will be paid by the borrower
  • \n

Email Jacobs at courtneyjacobs@library.ucla.edu or call her at (310) 825-3796 for more information.

\n

Exhibition Lending Fees

\n

FEE TYPE

COST

Flat fee$358
Per loaned item fee$139
Shipping/messenger service (outsourced)At cost
Materials to protect/ship loaned itemsAt cost
InsuranceProvided by borrowing institution


","sectionTitle":null}]} +{"id":"16839","to":"help/services-resources/library-teaching-toolkit","slug":"library-teaching-toolkit","title":"Library Teaching Toolkit","summary":"

This toolkit highlights key resources and tools from the Library to support UCLA course instructors.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-teaching","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Learn how to use a VPN or proxy server to access UCLA Library resources from off-campus.

","title":"Connecting from Off-Campus","slug":"connecting-from-off-campus","uri":"help/services-resources/connecting-from-off-campus"},{"text":"

Request an instruction session or instructional consultation to support your students' research needs.

","title":"Library Instruction","slug":"library-instruction","uri":"help/services-resources/library-instruction"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_02-87.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_02-87.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_02-87.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_02-87.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_02-87.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_02-87.jpg 2560w","alt":"Library Teaching Toolkit","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"19067","typeHandle":"richText","richText":"

Incorporate Research and Writing Tools in Your Courses

\n
  • Get in contact with us: Please email us at requestinstruction@library.ucla.edu for ideas, training, technical support and resources.
  • Add this paragraph to your syllabus: \"Looking for help with a research paper or project? Access research help from the UCLA Library, including one-on-one consultations, email and 24/7 chat.\"
  • Get students connected from off-campus: Share these helpful videos and our handout on how to install and use the VPN/Proxy server to access Library resources.
  • Show your students the \"Library Resources\" menu in your Bruin Learn course site: Help your students find relevant research guides and access research help through Bruin Learn. You can find the Library Resources menu in the left navigation on your Bruin Learn course site.

Online Research and Writing Workshops

\n

Our Writing Instruction + Research Education (WI+RE) team (comprised of students, teachers and librarians) has collaboratively designed foundational research and writing tutorials.

\n

Help students find books and articles, avoid plagiarism and improve their research and writing skills with WI+RE's collection of online modules. These tutorials can be embedded in your Bruin Learn site. Please email requestinstruction@library.ucla.edu for assistance.

","sectionTitle":null},{"id":"19075","typeHandle":"simpleCards","sectionTitle":"Featured Tutorials","sectionSummary":null,"cards":[{"id":"25578","typeHandle":"externalServiceOrResource","title":"Getting Started with Research at UCLA","summary":"Ways to get involved in research or start your own.","externalLink":"https://uclalibrary.github.io/research-tips/workshops/getting-started-with-research-at-ucla/"},{"id":"25579","typeHandle":"externalServiceOrResource","title":"Developing Research Questions and Creating Keywords","summary":"Learn strategies for generating research questions and turning those questions into keywords.","externalLink":"https://uclalibrary.github.io/research-tips/workshops/developing-research-questions-and-creating-keywords/"},{"id":"25580","typeHandle":"externalServiceOrResource","title":"Finding Sources with the UCLA Library","summary":"Explore Library research guides, learn strategies for getting the information you need and find out about research consultations.","externalLink":"https://uclalibrary.github.io/research-tips/workshops/finding-sources-with-ucla-library/"},{"id":"25581","typeHandle":"externalServiceOrResource","title":"Avoiding Plagiarism and Citing Sources","summary":"Cite sources in a consistent style and ensure all information is properly attributed.","externalLink":"https://uclalibrary.github.io/research-tips/workshops/avoiding-plagiarism/"},{"id":"25582","typeHandle":"externalServiceOrResource","title":"Writing a Literature Review","summary":"Learn strategies for writing a literature review, from recognizing key components to organizing sources.","externalLink":"https://uclalibrary.github.io/research-tips/workshops/writing-a-literature-review/"},{"id":"25583","typeHandle":"externalServiceOrResource","title":"Sharing Your Research","summary":"Ways to communicate your findings to others, whether verbal or written.","externalLink":"https://uclalibrary.github.io/research-tips/workshops/sharing-your-research/"}]}]} +{"id":"16802","to":"help/services-resources/access-to-digital-materials","slug":"access-to-digital-materials","title":"Access to LSC Digital Materials","summary":"

Terms and conditions for accessing Library Special Collections (LSC) digital materials, including photoduplication fees.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-digitized-resources","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"library-special-collections","title":"UCLA Library Special Collections"}],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"16885","typeHandle":"richText","richText":"

All requests to access Library Special Collections (LSC) material — including digital items — must be made through your LSC User Account.\n In order to do this, users must agree to a number of terms and \nconditions. (To see the complete list of these terms and conditions, please log in to the LSC Request System).

\n

These terms and conditions apply equally to all our material; patrons \nare NOT required to sign a separate agreement regarding the use of \ndigital materials unless the collection which they seek to access \ncontains uniquely sensitive or legally restricted material that warrants\n an additional layer of security.

","sectionTitle":"Access Terms and Conditions"},{"id":"16886","typeHandle":"richText","richText":"

Since our reading room has a limited capacity, we \nask researchers to request material at least two days before they intend to view it.

\n

Researchers can request access to \nprocessed digital material through their LSC User Account by selecting the appropriate box number.

","sectionTitle":"Reserving Material"},{"id":"16887","typeHandle":"richText","richText":"

Researchers will access digital material via a locked-down laptop provided by LSC. The LSC laptops run Windows 7 and includes \nMicrosoft Word, Excel and PowerPoint 2013.

\n\n

Email collections can be \naccessed through Stanford Library's ePADD, which\n runs on Google Chrome. We do not allow researchers to \nmodify or rearrange any of the digital materials in our collections. \nHowever, ease of use settings may be customized and an NVDA screen reader is\n installed on every laptop. Headphones may be used with this machine, but please note that \ninternet connection, Bluetooth connection and USB ports have been \ndisabled. If this configuration prohibits the use of an assistive device\n or if special accommodations are required, please email spec-coll@library.ucla.edu prior to visiting.

","sectionTitle":"Using Material"},{"id":"16888","typeHandle":"richText","richText":"

Researchers may request duplication services for digital material as long as the following criteria have been met:

\n
  • The researcher has read the LSC Duplication Policy
  • \n
  • The digital material in question has been processed and screened for personally identifiable information (PII)
  • \n
  • There are no restrictions on the material requested
  • \n
  • The duplication request does not place an undue burden on LSC staff
  • \n

Currently, each user is subject to a 300 file limit per 6 months. We are required to charge fees for duplicating \ndigital material on a cost-recovery basis. Costs for duplicating digital\n material are as follows:

\n

Photoduplication

\n
On-site Requests:
\n
Material TypeUC UsersNon-UC Users
PDF copy of analog material or duplication of previously digitized or born-digital* material$1 per page or $1 per digital file$1.35 per page or $1.35 per digital file

* Born-digital refers to any file that was originally produced in digital form, such as emails, photos shot on a digital camera or word-processed documents saved onto a floppy disk.

\n
Off-site Requests:
\n
Material TypeUC UsersNon-UC Users
Production fee, non-oversized materialWaived for the first fifty pages or three maps; $22 per transaction thereafter$30 per transaction
Production fee, oversized materialWaived for the first fifty pages or three maps; $44 per transaction thereafter$59 per transaction
Research feeWaived for the first half-hour; $53 per hour thereafterWaived for the first half-hour; $72 per hour thereafter
","sectionTitle":"Digital Duplication Requests"},{"id":"16889","typeHandle":"richText","richText":"

The locked-down laptop includes software (ePADD and Gephi) that \nallows researchers to perform limited data analysis such as text mining,\n visualization and topic modeling. While we allow patrons to use these tools during their visit, we \ndo not allow them to export or retain the subsequent search results, \nvisualizations, etc.

","sectionTitle":"Data Analysis"}]} +{"id":"16454","to":"help/services-resources/library-instruction","slug":"library-instruction","title":"Library Instruction","summary":"

Request an instruction session or instructional consultation to support your students' research needs.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-teaching","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

The Library provides a variety of services to assist instructors in inspiring student learning, research and success. Let us know how we can help you!

","title":"Teaching Support","slug":"teaching","uri":"help/teaching"}],"button":[{"buttonText":"Request","buttonUrl":"https://jira.library.ucla.edu/servicedesk/customer/portal/20"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-185_2022-10-03-232305_leas.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-185_2022-10-03-232305_leas.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-185_2022-10-03-232305_leas.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-185_2022-10-03-232305_leas.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-185_2022-10-03-232305_leas.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-185_2022-10-03-232305_leas.jpg 2560w","alt":"Library Instruction","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"16811","typeHandle":"richText","richText":"

Instructional Consultation or Assignment Design Support

\n

Curious how you can help your students learn about research in the digital age? UCLA Library staff with expertise in the research process, instructional design, academic subject areas and information access are available to consult with you. To learn more, submit a request through our online service portal or contact us at requestinstruction@library.ucla.edu.

Instruction Sessions

\n

Library instructors are available to guide students in your course through all stages of the research process, from forming a research question to constructing a bibliography. We can work with you to make a plan tailored specifically to your class.

\n

Request a library instruction session for your course using our online service portal or email us at requestinstruction@library.ucla.edu.

","sectionTitle":null},{"id":"50779","typeHandle":"simpleCards","sectionTitle":null,"sectionSummary":null,"cards":[{"id":"50780","typeHandle":"internalServiceOrResource","contentLink":[]},{"id":"50781","typeHandle":"internalServiceOrResource","contentLink":[{"id":"16839","uri":"help/services-resources/library-teaching-toolkit","slug":"library-teaching-toolkit","title":"Library Teaching Toolkit","summary":"

This toolkit highlights key resources and tools from the Library to support UCLA course instructors.

"}]}]}]} +{"id":"15462","to":"help/services-resources/map-reproduction","slug":"map-reproduction","title":"Map Reproduction","summary":"

Maps and atlases held in the Henry J. Bruman Map Collection can be reproduced by self-service copiers and scanners or by submitting a reproduction request.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"research-library","title":"Charles E. Young Research Library"}],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/bruman_maps_2022-04-28-010408_ubyp.png","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/bruman_maps_2022-04-28-010408_ubyp.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/bruman_maps_2022-04-28-010408_ubyp.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/bruman_maps_2022-04-28-010408_ubyp.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/bruman_maps_2022-04-28-010408_ubyp.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/bruman_maps_2022-04-28-010408_ubyp.png 2560w","alt":"Bruman Maps","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"15552","typeHandle":"richText","richText":"

Self-Service

\n

Self-service copy machines and scanners can be used for maps in the open collections on the A-level of the Charles E. Young Research Library. Copy machines will take up to legal-size paper but cannot print color. Scanners will take up to letter size paper.

\n

Larger Copies and Scans

\n

Larger copies and scans, as well as reproductions of historical maps, can be made by two outside vendors. When requesting such a reproduction, please take note of the following provisions:

\n
  • A Library staff member must review and approve all map reproduction requests. Requesters are responsible for determining the copyright status of all items and obtaining any permissions needed before reproduction.
  • The Library charges fees for collection-related services. Fees must be paid in US currency, either online with a credit card or by check payable to the University of California Regents. California residents must add 8.75% sales tax.
  • UC users include UC faculty, staff and students. UC user fees apply to university-directed research only. Services and materials for outside research will be charged at the non-UC rate.
  • Payment in full is required before orders can be picked up. A 50% non-refundable deposit is required for orders estimated to cost $50 or more. Some jobs must be sent to an outside vendor; see below for more details.
","sectionTitle":"Library Map Reproduction"},{"id":"16438","typeHandle":"richText","richText":"

Color Digital Reprographics

\n

Color Digital Reprographics can be reached at (310) 201-0300. The requester must contact the company to initiate an order. Company staff will need to know the number of items, each item's size and the type of reproduction required. The requester will also need to provide the following pick-up location:

\n

Maps and Government Information
Charles E. Young Research Library
A1540 Charles E. Young Research Library, UCLA

\n

Southern Regional Library Facility (SRLF)

\n

The SRLF, located on the UCLA campus, can be reached at (310) 206-2010. The requester must contact the facility to initiate an order. SRLF staff will need to know the number of items, each item's size and the type of reproduction required. The items will be transported to the SRLF as part of the Library’s routine daily pick-ups and deliveries to the facility.

\n

Outside Vendor Fees

\n

Color Digital Reprographics and SRLF set their rates depending on the services requested. Requesters are responsible for contacting the chosen vendor to place orders and must pay the vendor directly. The Library applies the following cost-recovery charges:

\n
  • Production fee: waived for the first ten maps, then $33 per map for UC users or $45 per map for non-UC users
  • Research fee (if applicable): waived for the first half hour, then $53 per hour for UC users or $72 per hour for non-UC users
","sectionTitle":"Outside Vendors"},{"id":"16440","typeHandle":"simpleCards","sectionTitle":"Additional UCLA Map Reproduction Services","sectionSummary":"

Policies on this page apply to the Henry J. Bruman Map Collection in the Research Library. For reproduction of atlases and maps at other locations, consider the following options:

","cards":[{"id":"56904","typeHandle":"internalServiceOrResource","contentLink":[{"id":"53967","uri":"help/services-resources/print-copy-scan","slug":"print-copy-scan","title":"Print, Copy, Scan","summary":"

Options for self-service printing, scanning and copying in campus libraries.

"}]},{"id":"28378","typeHandle":"internalServiceOrResource","contentLink":[{"id":"14759","uri":"help/services-resources/duplication-of-lsc-materials","slug":"duplication-of-lsc-materials","title":"Duplication of LSC Materials","summary":"

Access digital copies of LSC holdings for your research needs.

"}]},{"id":"28379","typeHandle":"externalServiceOrResource","title":"SRLF Imaging Services","summary":"For digitization of maps held by the SRLF, check out their website for additional information, pricing and a link to their inquiry form.","externalLink":"https://www.srlf.ucla.edu/imaging-services/digitization"},{"id":"28380","typeHandle":"externalServiceOrResource","title":"Maps at Other Locations — Document Delivery [add link]","summary":"For maps at other Library locations, consult our Document Delivery service.","externalLink":"https://www.library.ucla.edu/use/borrow-renew-return/interlibrary-loan-document-delivery/document-delivery"}]}]} +{"id":"14929","to":"help/services-resources/teaching-with-special-collections","slug":"teaching-with-special-collections","title":"Teaching with Special Collections","summary":"

Our primary source instruction sessions can help your students engage with UCLA Library Special Collections materials.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"library-special-collections","title":"UCLA Library Special Collections"}],"associatedTopics":[{"text":"

The Library provides a variety of services to assist instructors in inspiring student learning, research and success. Let us know how we can help you!

","title":"Teaching Support","slug":"teaching","uri":"help/teaching"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/UCLA_2019_08_01-244.jpg","height":931,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/UCLA_2019_08_01-244.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/UCLA_2019_08_01-244.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/UCLA_2019_08_01-244.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/UCLA_2019_08_01-244.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/UCLA_2019_08_01-244.jpg 2560w","alt":"UCLA 2019 08 Special Collections","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"14960","typeHandle":"richText","richText":"

Please fill out the form at the bottom of this page to request an instruction session that involves UCLA Library Special Collections (LSC) materials.

\n

Our instruction schedule fills up quickly at the beginning of the quarter. To avoid scheduling conflicts, please request instruction sessions as far in advance as possible. Requests should be made no less than one month before the class will occur.

\n

If you have questions about using LSC materials in the classroom or want to meet with a curator, please contact Teaching and Learning Librarian Jimmy Zavala at zavalaj@library.ucla.edu.

","sectionTitle":null},{"id":"33258","typeHandle":"form","form":"
","sectionTitle":null,"sectionSummary":null}]} +{"id":"14759","to":"help/services-resources/duplication-of-lsc-materials","slug":"duplication-of-lsc-materials","title":"Duplication of LSC Materials","summary":"

Access digital copies of LSC holdings for your research needs.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"library-special-collections","title":"UCLA Library Special Collections"}],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"14899","typeHandle":"richText","richText":"

UCLA Library Special Collections (LSC) eDelivery is a service that provides low-resolution access \nimages of LSC’s paper-based collection materials to remote users. LSC \neDelivery is available to all researchers, but priority will be given to \nrequests from UCLA community members.

\n

What eDelivery provides:

\n
  • Researchers may request up to 100 pages of access images per individual per month.
  • \n
  • LSC staff will page, survey and create access image files of LSC \nmaterials based on specific information from a catalog record or a \nfinding aid.\n
    • Your request should include the collection number, box number and folder (or folder description) of the materials you need.
    • \n
    • If the requested folder does not contain page count information, we \nwill do our best to fulfill your request, given our program’s \nlimitations.
    • \n
  • \n

What eDelivery does not provide:

\n
  • LSC is not adequately staffed to provide research services by proxy.
  • \n
  • We cannot consult large portions of our collections to determine relevancy.
  • \n
  • We cannot fulfill eDelivery requests for oversize items, AV \nor born-digital materials, fragile items that present significant \nhandling issues and collections with donor or other access \nrestrictions.
  • \n

Access images will be provided in pdf format and restricted to personal research use.

\n

If your fulfilled eDelivery request does not meet your research \nneeds, we encourage you to submit an additional request with additional \ncollection, box and folder numbers, and we will attempt to fill it to \nthe best of our ability and capacity.

\n

To place an LSC eDelivery request, please email LSC staff at spec-coll@library.ucla.edu to initiate a reference interview.

","sectionTitle":"eDelivery"},{"id":"14900","typeHandle":"richText","richText":"

LSC offers a fee-based service to provide digital copies of \nmaterials for researchers. To place a duplication order, please use \nyour LSC User Account.

\n\n
  1. Go to https://speccoll.library.ucla.edu.
  2. \n
  3. There are two options for signing into the registration and request system, and it is based on your affiliation with UCLA.\n
    • Current UCLA students, faculty and staff should click the left button to log in with your UCLA logon ID. to complete the registration form.
    • \n
    • If you are not currently a UCLA student, faculty or staff, \nclick the button on the right. This will lead to the Aeon Login \npage. New users should click the “First Time User? Create an account” link \nnear the bottom of the page and complete the registration form.
    • \n
  4. \n
  5. To search for books, click “Library Catalog” on the left menu. \nTo search archival collections, use the “Online Archive of California \n(OAC)” link in the gold menu bar near the top of the page.
  6. \n
  7. Find the item(s) you wish to request copies from, click the “Request\n material” button to bring up a request page and then click on the \ncheckboxes to select your desired boxes, volumes, etc. If the box \nyou want is not listed, please enter the information in “Special \nRequests\" near the bottom of the page.
  8. \n
  9. Click the “Duplication” button and select the format of duplication \nyou would like to receive. Then indicate if this is “For Publication” \nand the details of your project. In the “Special Requests” field, \ndescribe which folders, items, etc. you would like copied.
  10. \n
  11. Click “Submit Request.\"
  12. \n

Limits have been established to ensure the preservation of the \nmaterials (see \"Service Fees\" below). Duplication requests are accepted \npending review by public services staff. Approved requests are processed\n in the order received.

\n

Questions? Email: speccoll-duplication@library.ucla.edu.

","sectionTitle":"How to Submit a Duplication Request"},{"id":"14901","typeHandle":"richText","richText":"

Patrons may not publish, post to the Internet or otherwise \ndistribute copies of any special collections holdings that fall under \nU.S. Copyright law without appropriate permission. Provision of copies \nof LSC holdings does not in any way imply permission to utilize \nmaterials for reasons other than personal research and scholarly use. If\n an intended use will extend beyond personal research purposes and a \npatron wishes to publish or distribute copies of materials in LSC’s \ncollections, please note the following:

\n\n
  • The Library does not grant or deny permission to publish\n or otherwise distribute material whose copyright it does not hold or \nmaterial deemed to be in the public domain.
  • \n
  • The majority of UCLA Library Special Collections materials are still within copyright.
  • \n
  • It is the responsibility of the user to clear any intellectual \nproperty (copyright, trademark, patent), privacy and publicity \nrights in the material prior to publication or distribution. Upon \nrequest, LSC will provide any rights contact information it holds, \nsubject to the privacy needs of our donors.
  • \n
  • UCLA Library Special Collections owns the copyright for only a portion of the materials it possesses.
  • \n
  • The user must appropriately cite or credit the source of any \nmaterials in LSC collections. Our standard citation/credit line \nis: Library Special Collections, Charles E. Young Research Library, \nUCLA.
  • \n

Please contact speccoll-duplication@library.ucla.edu if\n you wish to publish material under copyright of the University of \nCalifornia Regents to obtain a licensing agreement. We will issue \nlicensing agreements for commercial and non-commercial uses. Licensing \nfees may apply.

\n

If you wish to commercially publish material not under copyright of the University of California Regents, please contact speccoll-duplication@library.ucla.edu.

\n

For more information, please see:

\n

Copyright Notice

\n

The copyright law of the United States (Title 17, United States Code) governs the making of photocopies or other reproductions of copyrighted material. Under certain conditions specified in the law, libraries and archives are authorized to furnish a photocopy or other reproduction. One of these specified conditions is that the reproduction is not to be \"used for any purpose other than private study, scholarship, or research.\" If a user makes a request for, or later uses, a photocopy or reproduction for purposes in excess of \"fair use,\" that user may be liable for copyright infringement.

","sectionTitle":"Library Special Collections Duplication Policy"},{"id":"14928","typeHandle":"richText","richText":"

The UCLA Library charges fees for special collections services on a \ncost-recovery basis. UC users are defined as UC faculty, staff and \nstudents. Payment in full is required before orders can be delivered.

\n\n

Access Images for Personal/Research Purposes

\n

Our eDelivery program provides reference-quality PDFs of clearly identified materials for researchers unable to visit Special Collections. We can take photographs on your behalf for 30 minutes (~100 pages), and there is no charge for the service. For more in-depth research, we ask that you hire a proxy researcher. Please see Hire a Researcher for more information.

\n

For researchers who can visit Special Collections, you will be permitted to take unlimited access images in the reading room of collection materials without duplication or access restrictions. These images can only be used for personal or research purposes. LSC staff can provide PDF access images of certain collection materials without cost for those unable to image materials during their visit. This service is limited to a maximum of 100 pages.

\n

Digital Images (High-Resolution Scans)

\n
For scanning orders done in-house:
\n
FeesUC UsersNon-UC Users
Original scan (flatbed scanner)$28 per image$38 per image
Original scan (photography)$33 per image$45 per image
Duplicate scan (digital image already on file)$17 per image$23 per image
Research fee (if applicable)Waived for the first half-hour; $53 per hour thereafterWaived for the first half-hour; $72 per hour thereafter

Some jobs must be outsourced to staff at the Southern Regional Library Facility which sets its own prices; a price list is available on their website. Additional charges are listed in the table below:

\n
For outsourced scanning:
\n
FeesUC UsersNon-UC Users
Digitization feeDetermined by SRLF Imaging ServicesDetermined by SRLF Imaging Services
Production fee$33 per order$45 per order
Research fee (if applicable)Waived for the first half-hour; $53 per hour thereafterWaived for the first half-hour; $72 per hour thereafter

Duplication of Audio, Film, Videotape

\n

Note: AV fees are currently waived for access requests. Fees may apply for larger orders and/or publication requests.

\n
FeesUC UsersNon-UC Users
Production fee$17 per item$23 per item
Research feeWaived for the first half-hour; $53 per hour thereafterWaived for the first half-hour; $72 per hour thereafter
Duplication fee: film, videotape, audiotape (outsourced)Determined by vendorDetermined by vendor

Wire Transfer Fees

\n

In some cases, for invoices totaling more than $500, payment by electronic fund transfer (EFT) may be approved. A fee of $45 per transaction will apply for all users.

","sectionTitle":"Service Fees"}]} +{"id":"14684","to":"help/services-resources/requesting-items-stored-in-the-srlf","slug":"requesting-items-stored-in-the-srlf","title":"Requesting Items Stored in the SRLF","summary":"

Instructions for requesting items from the UC Southern Regional Library Facility (SRLF) in person and online.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"southern-regional-library-facility","title":"Southern Regional Library Facility"}],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"14757","typeHandle":"richText","richText":"

The Southern Regional Library Facility (SRLF) is storage facility for infrequently used materials from the five southern UC campuses. It is located about a twenty-five-minute walk from the Charles E. Young Research Library. A campus map showing the location of the SRLF is available.

\n

Users can request and pick up items in person at the SRLF reception desk Monday through Friday from 1 p.m. to 5 p.m.

\n

Only those with the X campus parking permit can use Parking Lot 17 at the SRLF. Others can park in Parking Lot 11 close to the SRLF. Those who hold a valid parking permit from any UC campus can use Parking Lot 11 free of charge. Others must pay an entry fee. Please see additional parking information on the SRLF website.

","sectionTitle":"In-Person Requests"},{"id":"14758","typeHandle":"richText","richText":"

With a valid UCLA Library account, you can place requests for delivery of SRLF materials to any campus library.

\n
  1. From UC Library Search, locate the item you want to request.
  2. Under the \"How to get it\" section, click \"MY LIBRARY ACCOUNT.\"
  3. \n
  4. Login one of two ways:\n
    • As a UCLA-affiliated user with a 9-digit UCLA ID.
    • \n
    • As a community user without a 9-digit UCLA ID.
    • \n
  5. \n
  6. Click the \"Request\" link under the “How to get it” section.
  7. \n
  8. A window with the request form will appear. Choose a pickup location. The other fields on the request form are optional. Then click \"SEND REQUEST\" to submit your request.
  9. \n
  10. For journals and multi-volume monographs, click the SRLF holdings under the “How to get it” section. Click the \"Request\" link next to the volume you would like to \nrequest. Follow steps 4 and 5.
  11. \n
  12. To request additional volumes from that title, click \"BACK TO ITEMS.\" Click \"Request\" for the next volume needed. Repeat this process for each \nvolume needed. (Tip: click the filter icon \"Alma to jump directly to the volume you want.)
  13. \n
  14. You can view the status of your request by clicking your name in the\n upper right-hand corner of the browser and selecting \"My Requests.\"
  15. \n
  16. When you finish your session, click your name in the upper right-hand corner and select \"SIGN OUT.\" This will close the browser and prevent other users from viewing your account information.
  17. \n

Materials requested before 11 a.m. Monday through Friday will be\n available for pickup at your chosen library's circulation desk after 4 p.m. on the same day. Materials requested after 11 a.m. on \nweekdays or anytime on weekends or holidays can be picked up after 4 \np.m. the next business day. Materials will be held for one week.

","sectionTitle":"Online Requests"}]} +{"id":"12980","to":"help/services-resources/hire-a-researcher","slug":"hire-a-researcher","title":"Hire a Researcher","summary":"

Options to hire a researcher for UCLA Library users unaffiliated with the university.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-research","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/1-4-18_LSC_Reading-Room-8.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/1-4-18_LSC_Reading-Room-8.jpg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/1-4-18_LSC_Reading-Room-8.jpg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/1-4-18_LSC_Reading-Room-8.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/1-4-18_LSC_Reading-Room-8.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/1-4-18_LSC_Reading-Room-8.jpg 2560w","alt":"Hire a Researcher","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"12981","typeHandle":"richText","richText":"

UCLA Library can only provide limited research support for off-campus, non-UCLA users. We suggest that users who need extensive, on-site assistance explore alternative options. Library Special Collections (LSC) keeps a list of persons available to take on research projects for private parties. This list can be obtained by emailing a request to spec-coll@library.ucla.edu. Individuals on the list should be contacted directly. Any arrangement with them is a private transaction in which the Library assumes no responsibility for the quality of work performed or fees charged.

\n

Patrons may also want to contact the UCLA School of Education and Information Studies. SE&IS posts requests by out-of-town researchers who want to hire students at the school to conduct research for them. Descriptions of prospective research projects and pay rates should be sent to:

Dee Winn
M.L.I.S. Program Manager | UCLA School of Education and Information Studies (SE&IS)
winn@gseis.ucla.edu

","sectionTitle":null}]} +{"id":"21748","to":"help/services-resources/connecting-from-off-campus","slug":"connecting-from-off-campus","title":"Connecting from Off-Campus","summary":"

Learn how to use a VPN or proxy server to access UCLA Library resources from off-campus.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-remote-access","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

Learn how to connect to campus Wi-Fi in library buildings.

","title":"Wi-Fi Access","slug":"wireless-network-access-wi-fi","uri":"help/services-resources/wireless-network-access-wi-fi"}],"button":[],"heroImage":[],"blocks":[{"id":"21749","typeHandle":"richText","richText":"

Anyone can access the Library's online subscription resources (databases, electronic journals and e-books) from computers and wireless networks on campus. However, our license agreements restrict off-campus access to current UCLA students, faculty and staff.

\n

Current Students, Faculty and Staff

\n

You can access Library resources off campus using a virtual private network (VPN) or proxy server. The proxy server and the VPN require a valid UCLA Logon ID and multi-factor authentication (MFA) enrollment. Please contact the UCLA IT Support Center if you have problems setting up either one.

\n
  • Proxy Server: A setting in your web browser that automatically diverts you to a UCLA logon page whenever you access a site UCLA subscribes to.
  • VPN: A program you can download and install. You will have access to Library materials once you log on with the VPN software.
  • MFA: An additional layer of security for systems, such as Duo Mobile.

Students and Staff in Professional Schools

\n

Students and staff associated with certain professional schools should use the following connection methods, which provide access to additional resources.

\n","sectionTitle":null},{"id":"21750","typeHandle":"mediaWithText","sectionTitle":"Getting Set Up for Remote Access","sectionSummary":"

Watch the four videos below to learn how to set up a VPN or proxy server.

","mediaWithText":[{"id":"24991","titleLink":"VPN on Mac","description":"Set up your computer for off-campus access to Library resources using a VPN on Mac.","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/VPN_mac.png","height":1447,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/VPN_mac.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/VPN_mac.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/VPN_mac.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/VPN_mac.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/VPN_mac.png 2560w","alt":"VPN mac","focalPoint":[0.5,0.5]}],"buttonText":"Download VPN","buttonUrl":"https://it.ucla.edu/it-support-center/services/virtual-private-network-vpn-clients","linkToMedia":"https://youtu.be/BimOWaDxk4Y","typeMedia":"video"},{"id":"24992","titleLink":"VPN on Windows","description":"Set up your computer for off-campus access to Library resources using a VPN on Windows.","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/VPN_windows.jpeg","height":1440,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/VPN_windows.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/VPN_windows.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/VPN_windows.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/VPN_windows.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/VPN_windows.jpeg 2560w","alt":"VPN windows","focalPoint":[0.5,0.5]}],"buttonText":"Download VPN","buttonUrl":"https://it.ucla.edu/it-support-center/services/virtual-private-network-vpn-clients","linkToMedia":"https://www.youtube.com/watch?v=ZuZclnEuvlo","typeMedia":"video"},{"id":"24993","titleLink":"Proxy on Mac","description":"Set up your computer for off-campus access to Library resources using a proxy server with Safari on Mac.","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/Proxy_mac_safari.png","height":1416,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/Proxy_mac_safari.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/Proxy_mac_safari.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/Proxy_mac_safari.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/Proxy_mac_safari.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/Proxy_mac_safari.png 2560w","alt":"Proxy mac safari","focalPoint":[0.5,0.5]}],"buttonText":"Configure Proxy","buttonUrl":"https://it.ucla.edu/it-support-center/services/proxy-server","linkToMedia":"https://www.youtube.com/watch?v=h1vVy_WuxYk","typeMedia":"video"},{"id":"24994","titleLink":"VPN on Chromebook","description":"Set up your computer for off-campus access to Library resources using a VPN on Chromebook.","coverImage":[{"src":"https://static.library.ucla.edu/craftassetsprod/images/_fullscreen/Chromebook.png","height":1285,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/images/_375xAUTO_crop_center-center_none/Chromebook.png 375w, https://static.library.ucla.edu/craftassetsprod/images/_960xAUTO_crop_center-center_none/Chromebook.png 960w, https://static.library.ucla.edu/craftassetsprod/images/_1280xAUTO_crop_center-center_none/Chromebook.png 1280w, https://static.library.ucla.edu/craftassetsprod/images/_1920xAUTO_crop_center-center_none/Chromebook.png 1920w, https://static.library.ucla.edu/craftassetsprod/images/_2560xAUTO_crop_center-center_none/Chromebook.png 2560w","alt":"Chromebook","focalPoint":[0.5,0.5]}],"buttonText":"Download VPN","buttonUrl":"https://it.ucla.edu/it-support-center/services/virtual-private-network-vpn-clients","linkToMedia":"https://www.youtube.com/watch?v=I9Kwrf_xyr0&feature=youtu.be","typeMedia":"video"}]}]} diff --git a/data/serviceorresource_test-entries.json b/data/serviceorresource_test-entries.json new file mode 100644 index 000000000..7df6a1ced --- /dev/null +++ b/data/serviceorresource_test-entries.json @@ -0,0 +1,14 @@ +{"id":"22808","to":"help/services-resources/test-forms-on-preview","slug":"test-forms-on-preview","title":"test forms on preview","summary":"

test forms on preview test forms on preview

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

With General content page

","title":"With General content page","slug":"with-general-content-page","uri":"help/services-resources/with-general-content-page"},{"text":"

Learn more about how the UCLA Library supports the undergraduate \nCluster Program to meet curricular goals and student research needs.

","title":"test_Cluster Program Support","slug":"test-cluster-program-support","uri":"help/services-resources/test-cluster-program-support"}],"button":[],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetstest/MEAP-test/_fullscreen/kids_2022-08-03-003133_ybnd.jpg","height":1704,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/MEAP-test/_375xAUTO_crop_center-center_none/kids_2022-08-03-003133_ybnd.jpg 375w, https://static.library.ucla.edu/craftassetstest/MEAP-test/_960xAUTO_crop_center-center_none/kids_2022-08-03-003133_ybnd.jpg 960w, https://static.library.ucla.edu/craftassetstest/MEAP-test/_1280xAUTO_crop_center-center_none/kids_2022-08-03-003133_ybnd.jpg 1280w, https://static.library.ucla.edu/craftassetstest/MEAP-test/_1920xAUTO_crop_center-center_none/kids_2022-08-03-003133_ybnd.jpg 1920w, https://static.library.ucla.edu/craftassetstest/MEAP-test/_2560xAUTO_crop_center-center_none/kids_2022-08-03-003133_ybnd.jpg 2560w","alt":"Kids","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"22810","typeHandle":"form","form":"
","sectionTitle":null,"sectionSummary":null},{"id":"23022","typeHandle":"richText","richText":"
a tablewith three columnsi'm a table
","sectionTitle":null}]} +{"id":"20024","to":"help/services-resources/scissors","slug":"scissors","title":"Scissors","summary":"

hand-operated shearing tools

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

The prevailing style of dress during a particular time. Fashion design is the art of applying design, aesthetics, and construction to clothing and its accessories.

","title":"Fashion - Test FPB Refactor","slug":"fashion-test-fpb-refactor","uri":"help/services-resources/fashion-test-fpb-refactor"},{"text":"
By continuing to use UCLA Sites, you are accepting the terms of use defined in this statement.
","title":"Privacy & Terms of Use","slug":"privacy-terms-of-use","uri":"privacy-terms-of-use"}],"button":[],"heroImage":[],"blocks":[{"id":"20158","typeHandle":"mediaWithText","sectionTitle":"Scissors Exercise","sectionSummary":null,"mediaWithText":[{"id":"20159","titleLink":"How to Do Scissors | Ab Workout - YouTube","description":"How to do scissors exercise","coverImage":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/Screen-Shot-2022-06-17-at-10.44.48-AM.png","height":1550,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/Screen-Shot-2022-06-17-at-10.44.48-AM.png 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/Screen-Shot-2022-06-17-at-10.44.48-AM.png 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/Screen-Shot-2022-06-17-at-10.44.48-AM.png 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/Screen-Shot-2022-06-17-at-10.44.48-AM.png 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/Screen-Shot-2022-06-17-at-10.44.48-AM.png 2560w","alt":"Screen Shot 2022 06 17 at 10 44 48 AM","focalPoint":[0.5,0.5]}],"buttonText":null,"buttonUrl":null,"linkToMedia":"https://youtu.be/WoNCIBVLbgY","typeMedia":"video"}]},{"id":"20160","typeHandle":"simpleCards","sectionTitle":"Scissors for Kids","sectionSummary":"

A pair of scissors is dangerous in the hands of a child who's still developing critical motor skills. Child Safe scissors won't cut hair, skin, or clothing.

","cards":[{"id":"20161","typeHandle":"externalServiceOrResource","title":"https://www.technobuffalo.com/best-kids-scissorsBest Kids Scissors in 2022","summary":"Give the tot the joy of owning their pair by buying one from the following list of the best kids scissors currently available.","externalLink":"https://www.technobuffalo.com/best-kids-scissors"},{"id":"20162","typeHandle":"internalServiceOrResource","contentLink":[{"id":"1618","uri":"accessibility/emergency","slug":"emergency","title":"Emergency","summary":null}]},{"id":"32428","typeHandle":"internalServiceOrResource","contentLink":[{"id":"1615","uri":"privacy-terms-of-use","slug":"privacy-terms-of-use","title":"Privacy & Terms of Use","summary":"
By continuing to use UCLA Sites, you are accepting the terms of use defined in this statement.
"}]}]},{"id":"20213","typeHandle":"form","form":"
","sectionTitle":null,"sectionSummary":null},{"id":"22978","typeHandle":"pullQuote","pullQuote":[{"text":"

Fashion is the best

","attribution":null}]}]} +{"id":"17564","to":"help/services-resources/fashion-test-fpb-refactor","slug":"fashion-test-fpb-refactor","title":"Fashion - Test FPB Refactor","summary":"

The prevailing style of dress during a particular time. Fashion design is the art of applying design, aesthetics, and construction to clothing and its accessories.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"17865","typeHandle":"pullQuote","pullQuote":[{"text":"

\"What you wear is how you present yourself to the world, especially today, when human contacts are so quick. Fashion is instant language.\"

","attribution":"Miuccia Prada"}]},{"id":"17867","typeHandle":"simpleCards","sectionTitle":"Women in Fashion Who Changed How Women Dressed","sectionSummary":"

From creating clothes with comfort in mind to employing thousands, these designers liberated women in so many ways.

","cards":[{"id":"17868","typeHandle":"externalServiceOrResource","title":"Coco Chanel","summary":"Chanel lLiberated women from corsetry and other restrictive clothing, she borrowed somewhat from men’s wear looks and created a sporty casual chic post World War I.","externalLink":"https://en.wikipedia.org/wiki/Coco_Chanel"},{"id":"17869","typeHandle":"externalServiceOrResource","title":"Bonnie Cashin","summary":"Bonnie Cashin created uncomplicated clothing that catered to the modern, independent woman beginning in the post-war era.","externalLink":"https://en.wikipedia.org/wiki/Bonnie_Cashin"},{"id":"17870","typeHandle":"externalServiceOrResource","title":"Vivienne Westwood","summary":"Westwood came to public notice when she made clothes for her and Malcolm McLaren's boutique in the King's Road, which became known as SEX.","externalLink":"https://en.wikipedia.org/wiki/Mary_Quant"},{"id":"19918","typeHandle":"externalServiceOrResource","title":"Vivienne Westwood","summary":"Westwood came to public notice when she made clothes for her and Malcolm McLaren's boutique in the King's Road, which became known as SEX.","externalLink":"https://en.wikipedia.org/wiki/Vivienne_Westwood"},{"id":"19963","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12746","uri":null,"slug":"foxes","title":"Foxes","summary":"

Foxes are small to medium-sized, omnivorous mammals belonging to several genera of the family Canidae.

","externalResourceUrl":"https://www.livescience.com/27168-foxes.html"}]},{"id":"20007","typeHandle":"externalServiceOrResource","title":"Mary Quant","summary":"Quant’s clothes signalled the shift towards women’s liberation where women proudly flaunted their sexuality.","externalLink":"https://en.wikipedia.org/wiki/Mary_Quant"}]},{"id":"17656","typeHandle":"mediaGallery","sectionTitle":"Wedding Dresses","sectionSummary":null,"mediaGallery":[{"id":"17657","captionTitle":"Jean Paul Gautier","captionText":null,"sortOrder":1,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/wedding-dress-jean-paul-gaultier_2022-05-31-170317_vyzh.jpg","height":3840,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/wedding-dress-jean-paul-gaultier_2022-05-31-170317_vyzh.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/wedding-dress-jean-paul-gaultier_2022-05-31-170317_vyzh.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/wedding-dress-jean-paul-gaultier_2022-05-31-170317_vyzh.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/wedding-dress-jean-paul-gaultier_2022-05-31-170317_vyzh.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/wedding-dress-jean-paul-gaultier_2022-05-31-170317_vyzh.jpg 2560w","alt":"Wedding dress jean paul gaultier","focalPoint":[0.5,0.5]}]},{"id":"17659","captionTitle":"McQueen","captionText":null,"sortOrder":2,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/wedding-dress-mcqueen.jpg","height":3412,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/wedding-dress-mcqueen.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/wedding-dress-mcqueen.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/wedding-dress-mcqueen.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/wedding-dress-mcqueen.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/wedding-dress-mcqueen.jpg 2560w","alt":"Wedding dress mcqueen","focalPoint":[0.5,0.5]}]},{"id":"17660","captionTitle":"Vera Wang","captionText":null,"sortOrder":3,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/wedding-dress-vera-wang.jpg","height":3840,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/wedding-dress-vera-wang.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/wedding-dress-vera-wang.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/wedding-dress-vera-wang.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/wedding-dress-vera-wang.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/wedding-dress-vera-wang.jpg 2560w","alt":"Wedding dress vera wang","focalPoint":[0.5,0.5]}]}]},{"id":"17970","typeHandle":"mediaWithText","sectionTitle":"Avant-Garde Fashion","sectionSummary":"

Fashion that embodies a way of living. Forward thinking, artistry, unconventional designs, new forms, structures and an extraordinary touch that separates the ideas from the mainstream.

","mediaWithText":[{"id":"17971","titleLink":"Guo Pei","description":"Her fantastical gowns and accessories blur the boundaries between fashion, art and sculpture.","coverImage":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/guo-pei.jpg","height":1919,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/guo-pei.jpg 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/guo-pei.jpg 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/guo-pei.jpg 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/guo-pei.jpg 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/guo-pei.jpg 2560w","alt":"Guo pei","focalPoint":[0.5,0.5]}],"buttonText":null,"buttonUrl":null,"linkToMedia":"https://www.youtube.com/watch?v=a1ew-tsk8KA","typeMedia":"video"}]}]} +{"id":"17508","to":"help/services-resources/with-general-content-page","slug":"with-general-content-page","title":"With General content page","summary":"

With General content page

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"
By continuing to use UCLA Sites, you are accepting the terms of use defined in this statement.
","title":"Privacy & Terms of Use","slug":"privacy-terms-of-use","uri":"privacy-terms-of-use"}],"button":[],"heroImage":[],"blocks":[]} +{"id":"14770","to":"help/services-resources/service-with-all-flexible-page-block-types","slug":"service-with-all-flexible-page-block-types","title":"Service with all flexible page block types","summary":"

Testing that all the different types of Flexible Page Block render properly in the service/resource item page.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":null,"title":"Get Help","slug":"get-help","uri":"get-help"}],"button":[{"buttonText":"I Guess?","buttonUrl":"https://dearnora.bandcamp.com/album/well-have-a-time"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/overdesign.jpg","height":1814,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/overdesign.jpg 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/overdesign.jpg 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/overdesign.jpg 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/overdesign.jpg 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/overdesign.jpg 2560w","alt":"Overdesign","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"15894","typeHandle":"mediaGallery","sectionTitle":"Section Title Media Gallery","sectionSummary":"

Section Summary

","mediaGallery":[{"id":"15895","captionTitle":"Image one","captionText":"Lorem ipsum dolor sit amet, consectetur adipiscing elit.","sortOrder":1,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220503_194447302.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 2560w","alt":"PXL 20220503 194447302","focalPoint":[0.5,0.5]}]},{"id":"15896","captionTitle":"Image Two","captionText":"Quisque luctus nunc at accumsan interdum. Vivamus scelerisque, est in malesuada sollicitudin, sapien leo imperdiet est, nec molestie nisl nisl in sem.","sortOrder":2,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220427_143027624-1.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 2560w","alt":"PXL 20220427 143027624 1","focalPoint":[0.5,0.5]}]},{"id":"15897","captionTitle":"Image 3","captionText":"Pellentesque consectetur scelerisque auctor.","sortOrder":3,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220503_194434190.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 2560w","alt":"PXL 20220503 194434190","focalPoint":[0.5,0.5]}]},{"id":"15898","captionTitle":"Image IV","captionText":"Pellentesque sit amet sagittis turpis. Ut quam eros, porta ut congue id, ornare at erat.","sortOrder":4,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220410_192850385.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 2560w","alt":"PXL 20220410 192850385","focalPoint":[0.5,0.5]}]}]},{"id":"15901","typeHandle":"mediaWithText","sectionTitle":"Section Title - Media with Text","sectionSummary":"

Section Summary - Proin dapibus iaculis felis. Maecenas eget cursus neque. Aliquam \ninterdum tristique lectus vel venenatis. Duis tincidunt dui vel \nefficitur ultricies.

","mediaWithText":[{"id":"15902","titleLink":"Video here?","description":"Mauris pharetra sagittis nulla vitae feugiat.","coverImage":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/overdesign.jpg","height":1814,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/overdesign.jpg 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/overdesign.jpg 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/overdesign.jpg 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/overdesign.jpg 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/overdesign.jpg 2560w","alt":"Overdesign","focalPoint":[0.5,0.5]}],"buttonText":"Button Text","buttonUrl":"https://g.page/korbel-winery?share","linkToMedia":"https://youtu.be/UK5aWac5Axk","typeMedia":"video"},{"id":"17260","titleLink":"media link test","description":"testing other type","coverImage":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/I-like-turtles.png","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/I-like-turtles.png 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/I-like-turtles.png 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/I-like-turtles.png 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/I-like-turtles.png 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/I-like-turtles.png 2560w","alt":"I like turtles","focalPoint":[0.5,0.5]}],"buttonText":"Download turtle boy","buttonUrl":null,"linkToMedia":"https://i1.sndcdn.com/artworks-000011487677-pdp5ep-t500x500.jpg","typeMedia":"other"}]},{"id":"15903","typeHandle":"pullQuote","pullQuote":[{"text":"

\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vehicula \ncongue ultrices. Nullam ac mollis lorem, nec vulputate libero. Sed \nbibendum lobortis purus sit amet bibendum. Nulla egestas rutrum \nmolestie. Nullam ac leo id ligula auctor consequat nec in diam. \nPhasellus non condimentum dui. Nulla nec arcu malesuada, tempus urna eu,\n dapibus libero.\n

\n

\nCras egestas consequat nisl et congue. Aliquam sit amet pulvinar lorem. \nIn ultrices venenatis aliquet. Etiam iaculis sodales libero volutpat \ntempor. Phasellus efficitur tincidunt lobortis. Praesent a sollicitudin \ndui. Aliquam tristique erat eget ex suscipit feugiat eget sed mi. \nPraesent sollicitudin odio nec lacus condimentum tempor. Sed consequat, \nest eu elementum faucibus, lorem orci porta ligula, eget facilisis orci \nmagna sit amet lectus. In aliquet tempus velit, eget ultricies tortor \nfringilla ultrices. Integer at mauris elementum, cursus mauris eu, \naliquet mi. Aenean lacinia dolor sit amet enim semper pretium. Morbi \nrutrum ante sit amet placerat accumsan.\n

","attribution":"Item 4: Pull Quote"}]},{"id":"15905","typeHandle":"richText","richText":"

Item 5: Rich Text

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam quis \nbibendum risus. Sed iaculis ullamcorper ligula, ac imperdiet ante. Etiam\n scelerisque vulputate neque ultrices suscipit. Integer pulvinar lectus a\n urna ultrices venenatis. Nullam finibus pellentesque quam, a consequat \nmassa venenatis ac. Integer at blandit nulla. Quisque ac arcu finibus, \nconsectetur magna quis, malesuada tortor. Nulla sit amet libero \nefficitur, semper tellus sed, tincidunt massa. In interdum tellus ac \nelit eleifend, eu tincidunt velit consequat. Duis non arcu tristique, \nsollicitudin ex sit amet, ultrices urna. Maecenas non felis in augue \ntempus finibus.\n

\n
  1. Sed fringilla sem in lorem efficitur, semper lobortis diam viverra.
  2. Vivamus nec est fermentum tellus venenatis dictum a ac elit.
    1. Quisque \nodio turpis, ultricies eu diam sed, facilisis molestie justo.
  3. Cras \nrutrum turpis in accumsan maximus.

In hac habitasse platea dictumst. Nam\n mattis lorem lorem, sed elementum odio bibendum convallis. Ut rutrum, \nmauris vel tristique sollicitudin, enim dui tincidunt ex, quis dictum \nneque diam ut purus. Fusce sagittis, nisi in ornare condimentum, urna \njusto gravida diam, vitae tristique neque risus suscipit augue. \nCurabitur interdum malesuada rhoncus. Donec ut libero faucibus, \nscelerisque orci in, pulvinar felis.

  • Nam nibh ex, cursus nec leo cursus,\n rhoncus vulputate ipsum.
    • Donec quis sapien fermentum, ullamcorper \ntellus vestibulum, sodales ligula.
    • In ultrices diam eget erat hendrerit \nimperdiet tincidunt et lacus.
      • Aenean fringilla pellentesque convallis.
    • Maecenas elementum quis massa imperdiet malesuada.\n
","sectionTitle":"Section Title Rich Text"},{"id":"15906","typeHandle":"simpleCards","sectionTitle":"Section Title Simole Cards","sectionSummary":"

Section Summary for Simple Cards

","cards":[{"id":"15907","typeHandle":"internalServiceOrResource","contentLink":[{"id":"14547","uri":"help/services-resources/test-cluster-program-support","slug":"test-cluster-program-support","title":"test_Cluster Program Support","summary":"

Learn more about how the UCLA Library supports the undergraduate \nCluster Program to meet curricular goals and student research needs.

"}]},{"id":"15908","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12629","uri":"help/services-resources/animals","slug":"animals","title":"Animals are Excellent and Flowers are Fluffy","summary":"

There are 7 Major Different Types Of Animals · Mammals, Reptiles, Fish, Birds, Amphibians, Invertebrates, Insects.

"}]},{"id":"15909","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12519","uri":"help/services-resources/car-washing","slug":"car-washing","title":"Car Washing","summary":"

All the ways to wash your car

"}]},{"id":"15910","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12474","uri":"help/services-resources/test-services-and-resources","slug":"test-services-and-resources","title":"Bunny - Simple Card","summary":"

jdbsjdjs. nkdnfkdfkdf kfjlkflfklf ,lkglkg;ggk;g ;lh;ghl;ghl;g kjflfgklfgk;fgf

"}]},{"id":"15911","typeHandle":"internalServiceOrResource","contentLink":[{"id":"537","uri":"help/services-resources/borrowing-books-and-equipment","slug":"borrowing-books-and-equipment","title":"Borrowing Books & Equipment","summary":"

The UCLA Library and CLICC provide technology support and equipment loans of laptops, chromebooks and more to UCLA students in support of learning and research activities.

"}]},{"id":"15912","typeHandle":"externalServiceOrResource","title":"Donec mollis ipsum vitae consectetur pellentesque.","summary":"Nulla finibus justo sed urna congue facilisis. Nunc nec imperdiet tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.","externalLink":"https://letmegooglethat.com/?q=let+me+google+that+for+you"}]},{"id":"22784","typeHandle":"form","form":"
","sectionTitle":"Section Title","sectionSummary":"

Section Summary for the FPB Form

"}]} +{"id":"14547","to":"help/services-resources/test-cluster-program-support","slug":"test-cluster-program-support","title":"test_Cluster Program Support","summary":"

Learn more about how the UCLA Library supports the undergraduate \nCluster Program to meet curricular goals and student research needs.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-research","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

jdbsjdjs. nkdnfkdfkdf kfjlkflfklf ,lkglkg;ggk;g ;lh;ghl;ghl;g kjflfgklfgk;fgf

","title":"Bunny - Simple Card","slug":"test-services-and-resources","uri":"help/services-resources/test-services-and-resources"}],"button":[{"buttonText":"Cluster Program","buttonUrl":"https://www.uei.ucla.edu/academic-programs/ucla-cluster-program/"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/istockphoto-1170804921-1024x1024.jpg","height":1705,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 2560w","alt":"Turtle and Fishes","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"14617","typeHandle":"richText","richText":"

Program Description

\n

UCLA Library partners with Undergraduate Education Initiatives to \nsupport teaching and learning in the UCLA Cluster Program, an innovative\n initiative designed to help freshmen succeed at UCLA. Each Cluster has a\n dedicated librarian who works collaboratively with the Peer Research \n& Writing Specialist—a student graduate of the program—to offer \nassistance to instructors and students in the course. Find the librarian\n and the Peer Research & Writing Specialist for each Cluster course \non the program’s website.

\n

Peer Research & Writing Specialists

\n
  • Regularly attend Cluster lectures to make announcements and stay up-to-date with lecture content.
  • Hold\n office hours and meet one-on-one with students to provide peer support \nand assistance with research, writing and general advice for how to \nsucceed at UCLA.
  • Organize Cluster community events and tours of the library.
  • Lead research skills workshops and teach students how to find and use library resources.
  • Cluster graduates: learn more about the Peer Research & Writing Specialist hiring process!

Liaison Librarians

\n
  • Consult with instructors to integrate information literacy and research skills into course assignments.
  • Meet one-on-one with students to assist with research assignments.
  • Lead research skills workshops and teach students how to find and use library resources.
","sectionTitle":null},{"id":"14618","typeHandle":"mediaWithText","sectionTitle":"Media with Text","sectionSummary":"

UCLA Library partners with Undergraduate Education Initiatives to support teaching and learning in the UCLA Cluster Program.

","mediaWithText":[{"id":"14619","titleUpload":"Media Upload","description":"text description. Each Cluster has a dedicated librarian who works collaboratively with the Peer Research & Writing Specialist—a student graduate of the program—to offer assistance to instructors and students in the course. Find the librarian and the Peer Research & Writing Specialist for each Cluster course on the program’s website.","buttonText":null,"buttonUrl":null,"coverImage":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/I-like-turtles.png","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/I-like-turtles.png 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/I-like-turtles.png 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/I-like-turtles.png 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/I-like-turtles.png 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/I-like-turtles.png 2560w","alt":"I like turtles","focalPoint":[0.5,0.5]}],"upload":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/I-like-turtles.png","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/I-like-turtles.png 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/I-like-turtles.png 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/I-like-turtles.png 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/I-like-turtles.png 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/I-like-turtles.png 2560w","alt":"I like turtles","focalPoint":[0.5,0.5]}],"typeMedia":"other"}]},{"id":"14620","typeHandle":"simpleCards","sectionTitle":"Simple Cards test","sectionSummary":"
  • Regularly attend Cluster lectures to make announcements and stay up-to-date with lecture content.
","cards":[{"id":"14621","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12519","uri":"help/services-resources/car-washing","slug":"car-washing","title":"Car Washing","summary":"

All the ways to wash your car

"}]},{"id":"14622","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12746","uri":null,"slug":"foxes","title":"Foxes","summary":"

Foxes are small to medium-sized, omnivorous mammals belonging to several genera of the family Canidae.

","externalResourceUrl":"https://www.livescience.com/27168-foxes.html"}]}]}]} +{"id":"12629","to":"help/services-resources/animals","slug":"animals","title":"Animals are Excellent and Flowers are Fluffy","summary":"

There are 7 Major Different Types Of Animals · Mammals, Reptiles, Fish, Birds, Amphibians, Invertebrates, Insects.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[{"id":"12715","typeHandle":"simpleCards","sectionTitle":"Mammals","sectionSummary":"

Mammals include humans and all other animals that are warm-blooded vertebrates (vertebrates have backbones) with hair.

","cards":[{"id":"12716","typeHandle":"externalServiceOrResource","title":"Bunnies & Rabbits - externalLink","summary":"Bunny refers to the small, bun-shaped tail of the rabbit. A rabbit is a type of mammal. They are small, furry animals with large ears and powerful back legs.","externalLink":"https://petkeen.com/bunny-vs-rabbit/"},{"id":"14676","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12474","uri":"help/services-resources/test-services-and-resources","slug":"test-services-and-resources","title":"Bunny - Simple Card","summary":"

jdbsjdjs. nkdnfkdfkdf kfjlkflfklf ,lkglkg;ggk;g ;lh;ghl;ghl;g kjflfgklfgk;fgf

"}]}]},{"id":"13364","typeHandle":"mediaGallery","sectionTitle":"Art for Animal Lovers","sectionSummary":null,"mediaGallery":[{"id":"13365","captionTitle":"Two Rothschild's Giraffes in Northern Uganda","captionText":"Two Rothschild's Giraffes in Northern Uganda stroll down the road.","sortOrder":1,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/istockphoto-1307291479-1024x1024-1.jpg","height":3844,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/istockphoto-1307291479-1024x1024-1.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/istockphoto-1307291479-1024x1024-1.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/istockphoto-1307291479-1024x1024-1.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/istockphoto-1307291479-1024x1024-1.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/istockphoto-1307291479-1024x1024-1.jpg 2560w","alt":"Two Rothschild's Giraffes in Northern Uganda","focalPoint":[0.5,0.5]}]},{"id":"13366","captionTitle":"Point Reyes Elk Herd Leader","captionText":"The elk no longer have natural predators.","sortOrder":2,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/istockphoto-1334720521-1024x1024.jpg","height":1705,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/istockphoto-1334720521-1024x1024.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/istockphoto-1334720521-1024x1024.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/istockphoto-1334720521-1024x1024.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/istockphoto-1334720521-1024x1024.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/istockphoto-1334720521-1024x1024.jpg 2560w","alt":"Point Reyes Elk Herd Leader - title","focalPoint":[0.5,0.5]}]},{"id":"13367","captionTitle":"Turtle and Fishes are Friends","captionText":"Yes, turtles do eat fish. In fact, in the wild fish are one of turtle's main sources of food.","sortOrder":3,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/istockphoto-1170804921-1024x1024.jpg","height":1705,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/istockphoto-1170804921-1024x1024.jpg 2560w","alt":"Turtle and Fishes","focalPoint":[0.5,0.5]}]},{"id":"13368","captionTitle":"Funny Lovebirds","captionText":"Lovebirds are so named because of their strong pair bonds.","sortOrder":4,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/istockphoto-1326671788-1024x1024.jpg","height":1705,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/istockphoto-1326671788-1024x1024.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/istockphoto-1326671788-1024x1024.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/istockphoto-1326671788-1024x1024.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/istockphoto-1326671788-1024x1024.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/istockphoto-1326671788-1024x1024.jpg 2560w","alt":"Lovebirds","focalPoint":[0.5,0.5]}]},{"id":"13369","captionTitle":"Momma duck and ducklings","captionText":"Momma duck and ducklings going for a swim.","sortOrder":5,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/istockphoto-1318343097-1024x1024.jpg","height":1890,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/istockphoto-1318343097-1024x1024.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/istockphoto-1318343097-1024x1024.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/istockphoto-1318343097-1024x1024.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/istockphoto-1318343097-1024x1024.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/istockphoto-1318343097-1024x1024.jpg 2560w","alt":"Istockphoto 1318343097 1024x1024","focalPoint":[0.5,0.5]}]},{"id":"13370","captionTitle":"Humpback Whale Mother and Calf","captionText":"Humpback whale mother and calf swimming in clear blue ocean ..","sortOrder":6,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/istockphoto-1301664341-1024x1024.jpg","height":1708,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/istockphoto-1301664341-1024x1024.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/istockphoto-1301664341-1024x1024.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/istockphoto-1301664341-1024x1024.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/istockphoto-1301664341-1024x1024.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/istockphoto-1301664341-1024x1024.jpg 2560w","alt":"Istockphoto 1301664341 1024x1024","focalPoint":[0.5,0.5]}]},{"id":"13371","captionTitle":"Wild Green Anole in Orlando","captionText":"Wild Green Anole in Orlando Wetlands Park in Central Florida.","sortOrder":7,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/istockphoto-1326332081-1024x1024.jpg","height":1660,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/istockphoto-1326332081-1024x1024.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/istockphoto-1326332081-1024x1024.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/istockphoto-1326332081-1024x1024.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/istockphoto-1326332081-1024x1024.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/istockphoto-1326332081-1024x1024.jpg 2560w","alt":"Istockphoto 1326332081 1024x1024","focalPoint":[0.5,0.5]}]}]},{"id":"13669","typeHandle":"mediaWithText","sectionTitle":"A Section of Media with Text","sectionSummary":"

The media & text block allows you to place an image or video side-by-side with text.

","mediaWithText":[{"id":"13670","titleLink":"A media Link","description":"Citation Integration","coverImage":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/Screen-Shot-2022-02-17-at-11.42.39-AM.png","height":2150,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/Screen-Shot-2022-02-17-at-11.42.39-AM.png 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/Screen-Shot-2022-02-17-at-11.42.39-AM.png 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/Screen-Shot-2022-02-17-at-11.42.39-AM.png 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/Screen-Shot-2022-02-17-at-11.42.39-AM.png 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/Screen-Shot-2022-02-17-at-11.42.39-AM.png 2560w","alt":"Screen Shot 2022 02 17 at 11 42 39 AM","focalPoint":[0.5,0.5]}],"buttonText":"Download this","buttonUrl":"https://uclalibrary.github.io/research-tips/assets/handouts/citation-integration-final.pdf","linkToMedia":"https://uclalibrary.github.io/research-tips/assets/handouts/citation-integration-final.pdf","typeMedia":"video"},{"id":"13800","titleUpload":"Media Upload","description":"This is something I uploaded","buttonText":"Download Me","buttonUrl":null,"coverImage":[],"upload":[],"typeMedia":"other"}]},{"id":"14430","typeHandle":"mediaGallery","sectionTitle":"Media Gallery - Flowers","sectionSummary":null,"mediaGallery":[{"id":"14431","captionTitle":"Strawflowers","captionText":"Strawflowers resemble daisies in form with a ray of petals around a central disk, but unlike daisies, the petals are stiff and papery.","sortOrder":1,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220410_192914402.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220410_192914402.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220410_192914402.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220410_192914402.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220410_192914402.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220410_192914402.jpg 2560w","alt":"PXL 20220410 192914402","focalPoint":[0.5,0.5]}]},{"id":"14432","captionTitle":"Pink Peonies","captionText":"Peonies are long-lived perennials offer big, fluffy, fragrant flowers.","sortOrder":2,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220410_192850385.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220410_192850385.jpg 2560w","alt":"PXL 20220410 192850385","focalPoint":[0.5,0.5]}]},{"id":"14433","captionTitle":"Sunflowers","captionText":"The sunflower is an annual plant with a large daisy-like flower face.","sortOrder":3,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220410_192840498.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220410_192840498.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220410_192840498.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220410_192840498.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220410_192840498.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220410_192840498.jpg 2560w","alt":"PXL 20220410 192840498","focalPoint":[0.5,0.5]}]},{"id":"14434","captionTitle":"Tie-dye Roses","captionText":"These multicolored roses (sometimes called tie-dyed roses) are truly unique and colorful, great for any occasion.","sortOrder":4,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220503_194434190.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220503_194434190.jpg 2560w","alt":"PXL 20220503 194434190","focalPoint":[0.5,0.5]}]},{"id":"14435","captionTitle":"Pink Primrose","captionText":"An aggressively spreading perennial groundcover that is valued for its speed and ease of growth and its beautiful pink flowers held over rosettes of green leaves.","sortOrder":5,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220427_143027624-1.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220427_143027624-1.jpg 2560w","alt":"PXL 20220427 143027624 1","focalPoint":[0.5,0.5]}]},{"id":"14436","captionTitle":"Pink Silver Vase Plant","captionText":"When an Aechmea Fasciata reaches maturity (after several years) it will send out a bract which gradually turns bright pink.","sortOrder":6,"image":[{"src":"https://static.library.ucla.edu/craftassetstest/images/_fullscreen/PXL_20220503_194447302.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/images/_375xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 375w, https://static.library.ucla.edu/craftassetstest/images/_960xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 960w, https://static.library.ucla.edu/craftassetstest/images/_1280xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 1280w, https://static.library.ucla.edu/craftassetstest/images/_1920xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 1920w, https://static.library.ucla.edu/craftassetstest/images/_2560xAUTO_crop_center-center_none/PXL_20220503_194447302.jpg 2560w","alt":"PXL 20220503 194447302","focalPoint":[0.5,0.5]}]}]},{"id":"14677","typeHandle":"richText","richText":"

asdfasdf

","sectionTitle":null},{"id":"14678","typeHandle":"pullQuote","pullQuote":[{"text":"

asdf

","attribution":"asdf"}]},{"id":"14680","typeHandle":"simpleCards","sectionTitle":"asdf","sectionSummary":"

asdf

","cards":[{"id":"14681","typeHandle":"internalServiceOrResource","contentLink":[{"id":"205","uri":"help/services-resources/a-test-workshop-with-a-pull-quote-fpb","slug":"a-test-workshop-with-a-pull-quote-fpb","title":"A Test Workshop with a \"Pull Quote\" FPB","summary":"

Need help figuring out what topic you want to explore for your project? Having trouble turning a general idea into something more specific? Learn how to develop a research question through synchronous and asynchronous events and resources.

"}]},{"id":"14682","typeHandle":"internalServiceOrResource","contentLink":[{"id":"6622","uri":"help/services-resources/connecting-from-off-campus","slug":"connecting-from-off-campus","title":"Connecting from Off-Campus","summary":"

Learn how to use a VPN or proxy server to access Library resources with your UCLA Logon ID through a series of helpful videos.

"}]}]},{"id":"16020","typeHandle":"mediaGallery","sectionTitle":null,"sectionSummary":null,"mediaGallery":[{"id":"16021"},{"id":"16022"}]},{"id":"16023","typeHandle":"richText","richText":"

yiisoft removed from package.json

","sectionTitle":null}]} +{"id":"12519","to":"help/services-resources/car-washing","slug":"car-washing","title":"Car Washing","summary":"

All the ways to wash your car

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-digitized-resources","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[]} +{"id":"12474","to":"help/services-resources/test-services-and-resources","slug":"test-services-and-resources","title":"Bunny - Simple Card","summary":"

jdbsjdjs. nkdnfkdfkdf kfjlkflfklf ,lkglkg;ggk;g ;lh;ghl;ghl;g kjflfgklfgk;fgf

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"Some animals eat plants and plant products like grass, leaves and fodder. Goat, cow, horse and sheep eat only plants.","title":"Animals & Food Simple Cards","slug":"help-topic-1","uri":"help/help-topic-1"},{"text":"We have come a long way with technology. The advancement and expansion of technology has put us where we are at today. It is a lot easier for printers to do their job today than hundreds of years ago. The spread of technology has almost put moveable type presses and letterpresses to extinction and replaced by offset presses and digital printers. Although Johannes Gutenberg may not appreciate that his invention of the moveable type is rarely used anymore, he would be very impressed to see that his ideas of print have advanced at such a large scale.","title":"Printing Practices - Simple Card 3 Up - Rich Text - Pull Quote","slug":"printing","uri":"help/printing"}],"button":[{"buttonText":"Test Example","buttonUrl":"http://example.com"}],"heroImage":[],"blocks":[{"id":"12598","typeHandle":"simpleCards","sectionTitle":"Bunny Bunny Bish Bash","sectionSummary":"

A rabbit especially a young rabbit.Big ears, wiggly nose and cottontail. Who can resist a darling rabbit.

","cards":[{"id":"12599","typeHandle":"internalServiceOrResource","contentLink":[{"id":"9414","uri":null,"slug":"a-z-databases","title":"A-Z Databases","summary":"

Find the best library databases for your research.

","externalResourceUrl":"https://guides.library.ucla.edu/az.php?&_ga=2.94193502.2106042584.1646675621-1729352043.1643913957"}]},{"id":"12600","typeHandle":"externalServiceOrResource","title":"Black Bunny","summary":"A beautiful black bunny just in time for Christmas","externalLink":"http://bunny.com"},{"id":"14031","typeHandle":"internalServiceOrResource","contentLink":[{"id":"6395","uri":null,"slug":"communications","title":"Communications","summary":"

A communications libguide

","externalResourceUrl":"https://guides.library.illinois.edu/openrefine/joiningprojects"}]},{"id":"14032","typeHandle":"externalServiceOrResource","title":"Deer that Disguise","summary":"What are these unusual looking ungulates? Are they just painted Antelopes? Deers in disguise?","externalLink":"https://cheezburger.com/6613901056/whatsit-deers-in-disguise"},{"id":"14065","typeHandle":"externalServiceOrResource","title":"Rabbits Reproduce at an Exponential Rate","summary":"A female rabbit can give birth to several litters in one year, with up to 12 baby rabbits per litter. A female rabbit can give birth to several litters in one year.","externalLink":"https://rabbitpros.com/rabbit-litters-in-a-year/"},{"id":"14086","typeHandle":"internalServiceOrResource","contentLink":[{"id":"14074","uri":null,"slug":"rabbit-ears-motel","title":"Rabbit Ears Motel","summary":"

Rabbit Ears Motel Iconic Rabbit Ears Motel, located downtown Steamboat Springs, Colorado

","externalResourceUrl":"https://rabbitearsmotel.com/"}]}]}]} +{"id":"6622","to":"help/services-resources/connecting-from-off-campus","slug":"connecting-from-off-campus","title":"Connecting from Off-Campus","summary":"

Learn how to use a VPN or proxy server to access Library resources with your UCLA Logon ID through a series of helpful videos.

","serviceOrResourceType":"resource","illustrationsResourcesAndServices":"illustration-databases","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[{"text":"

The UCLA Library and CLICC provide technology support and equipment loans of laptops, chromebooks and more to UCLA students in support of learning and research activities.

","title":"Borrowing Books & Equipment","slug":"borrowing-books-and-equipment","uri":"help/services-resources/borrowing-books-and-equipment"},{"text":"We have come a long way with technology. The advancement and expansion of technology has put us where we are at today. It is a lot easier for printers to do their job today than hundreds of years ago. The spread of technology has almost put moveable type presses and letterpresses to extinction and replaced by offset presses and digital printers. Although Johannes Gutenberg may not appreciate that his invention of the moveable type is rarely used anymore, he would be very impressed to see that his ideas of print have advanced at such a large scale.","title":"Printing Practices - Simple Card 3 Up - Rich Text - Pull Quote","slug":"printing","uri":"help/printing"}],"button":[],"heroImage":[],"blocks":[{"id":"6830","typeHandle":"richText","richText":"

When you are off-campus, you can still access millions of resources paid for by UCLA Library! These include e-books, articles, music, videos, and more. All you need to do is set up your computer for off-campus access to UCLA Library resources using a VPN (Virtual Private Network) or Proxy.

\n

How does this work? Here's how four Bruins got their computers set up and ready to go for remote access!

","sectionTitle":null},{"id":"6831","typeHandle":"mediaWithText","sectionTitle":null,"sectionSummary":null,"mediaWithText":[]},{"id":"6836","typeHandle":"mediaWithText","sectionTitle":null,"sectionSummary":null,"mediaWithText":[]},{"id":"7748","typeHandle":"simpleCards","sectionTitle":"Section title","sectionSummary":"

section summery to summarize a group of cards.

","cards":[{"id":"13414","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12629","uri":"help/services-resources/animals","slug":"animals","title":"Animals are Excellent and Flowers are Fluffy","summary":"

There are 7 Major Different Types Of Animals · Mammals, Reptiles, Fish, Birds, Amphibians, Invertebrates, Insects.

"}]},{"id":"13415","typeHandle":"internalServiceOrResource","contentLink":[{"id":"6537","uri":"help/services-resources/research-consultation","slug":"research-consultation","title":"Research Consultation","summary":"

Meet with a librarian for research consultation

"}]}]}]} +{"id":"6537","to":"help/services-resources/research-consultation","slug":"research-consultation","title":"Research Consultation","summary":"

Meet with a librarian for research consultation

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-digitized-resources","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[],"associatedTopics":[],"button":[],"heroImage":[],"blocks":[]} +{"id":"5636","to":"help/services-resources/course-reserves","slug":"course-reserves","title":"Course Reserves","summary":"

Course Reserves are items placed on reserve by an instructor for an upcoming course. Generally instructors request that any required reading materials be placed on reserve. Course Reserves serve to subsidize student access to course materials.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"powell-library","title":"Powell Library"},{"to":"young-research-library","title":"Charles E. Young Research Library"}],"associatedTopics":[{"text":"Some animals eat plants and plant products like grass, leaves and fodder. Goat, cow, horse and sheep eat only plants.","title":"Animals & Food Simple Cards","slug":"help-topic-1","uri":"help/help-topic-1"},{"text":"

Find the best library databases for your research.

","title":"A-Z Databases","slug":"a-z-databases","uri":null,"externalResourceUrl":"https://guides.library.ucla.edu/az.php?&_ga=2.94193502.2106042584.1646675621-1729352043.1643913957"}],"button":[{"buttonText":"Search Course Reserves","buttonUrl":"https://search.library.ucla.edu/discovery/search?tab=CourseReserves&search_scope=CourseReserves&vid=01UCS_LAL:UCLA&lang=en&mode=advanced"}],"heroImage":[],"blocks":[{"id":"6568","typeHandle":"richText","richText":"

The materials are made available during the quarter that the course is active. To allow a high-volume of access to these materials, they have a shorter loan period than standard library books.

\n

The following are available:

\n
  • Physical materials held for 2-hour reserve at designated Library locations.
  • Links to licensed resources including online articles, books, and other resources. The Library will purchase licenses for online materials whenever possible for Course Reserves.
  • The Library can provide media from the UCLA Library collections and other sources via the Digital Library Reserves.
  • Subject Librarians are available to consult with faculty to help identify possible alternative material for course reserves.
  1. Course reserve reading lists allow instructors to compile information on access to materials on their reading list that make it easier for students to navigate retrieving these materials from the library.
  2. Course Reserves requests are filled on a first-come, first-served basis. Turnaround times may be longer than usual because of high demand.

Finding Course Reserves

\n

Course Reserves can be searched by instructor name, department name, or course number in UC Library Search.

\n

Course reserves may also be accessed through the Library Resources tab on CCLE (Common Collaboration and Learning Environment).

\n

Accessing Online Reserves

\n

UCLA Proxy Server or the Virtual Private Network (VPN) is required to access online materials and course management systems. Tutorials on how to Connect from Off-Campus.

","sectionTitle":null},{"id":"13599","typeHandle":"mediaWithText","sectionTitle":null,"sectionSummary":null,"mediaWithText":[{"id":"13600","titleUpload":"an upload","description":"a description","buttonText":null,"buttonUrl":null,"coverImage":[],"upload":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/Impact-Numbers.jpg","height":2556,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/Impact-Numbers.jpg 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/Impact-Numbers.jpg 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/Impact-Numbers.jpg 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/Impact-Numbers.jpg 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/Impact-Numbers.jpg 2560w","alt":"Impact Numbers","focalPoint":[0.5,0.5]}],"typeMedia":"audio"}]},{"id":"13601","typeHandle":"simpleCards","sectionTitle":"A simple card","sectionSummary":"

here is a simple card

","cards":[{"id":"13602","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12629","uri":"help/services-resources/animals","slug":"animals","title":"Animals are Excellent and Flowers are Fluffy","summary":"

There are 7 Major Different Types Of Animals · Mammals, Reptiles, Fish, Birds, Amphibians, Invertebrates, Insects.

"}]},{"id":"13603","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12474","uri":"help/services-resources/test-services-and-resources","slug":"test-services-and-resources","title":"Bunny - Simple Card","summary":"

jdbsjdjs. nkdnfkdfkdf kfjlkflfklf ,lkglkg;ggk;g ;lh;ghl;ghl;g kjflfgklfgk;fgf

"}]},{"id":"13625","typeHandle":"externalServiceOrResource","title":"Google","summary":"google it","externalLink":"http://google.com"}]}]} +{"id":"1033","to":"help/services-resources/sample-service-page-with-faqs","slug":"sample-service-page-with-faqs","title":"Sample Service Page with FAQ's","summary":"Learn how to use a VPN or proxy server to access Library resources with your UCLA Logon ID through a series of helpful videos.","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-book-binding","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"young-research-library","title":"Charles E. Young Research Library"},{"to":"powell-library","title":"Powell Library"}],"associatedTopics":[{"text":"

The UCLA Library and CLICC provide technology support and equipment loans of laptops, chromebooks and more to UCLA students in support of learning and research activities.

","title":"Borrowing Books & Equipment","slug":"borrowing-books-and-equipment","uri":"help/services-resources/borrowing-books-and-equipment"},{"text":"

Learn how to use a VPN or proxy server to access Library resources with your UCLA Logon ID through a series of helpful videos.

","title":"Connecting from Off-Campus","slug":"connecting-from-off-campus","uri":"help/services-resources/connecting-from-off-campus"}],"button":[{"buttonText":"Test Button","buttonUrl":"/test/"}],"heroImage":[],"blocks":[{"id":"5329","typeHandle":"pullQuote","pullQuote":[{"text":"

“... the psychological condition of fear is divorced from any concrete and true immediate danger. It comes in many forms: unease, worry, anxiety, nervousness, tension, dread, phobia, and so on. This kind of psychological fear is always of something that might happen, not of something that is happening now.”

","attribution":"Eckhart Tolle"}]},{"id":"5442","typeHandle":"richText","richText":"

Could you do an actual logo instead of a font I cant pay you? Can we try some other colors maybe? I cant pay you. You might wanna give it another shot, so make it pop and this is just a 5 minutes job the target audience makes and families aged zero and up will royalties in the company do instead of cash.

\n
\"\"

Jazz it up a little I was wondering if my cat could be placed over the logo in the flyer I have printed it out, but the animated gif is not moving I have printed it out, but the animated gif is not moving make it original. Can you make it stand out more? Make it original.

","sectionTitle":null},{"id":"5444","typeHandle":"simpleCards","sectionTitle":"A group of Simple Cards","sectionSummary":null,"cards":[{"id":"13037","typeHandle":"internalServiceOrResource","contentLink":[{"id":"9532","uri":"visit/events-exhibitions/https-calendar-library-ucla-edu-event-8956122","slug":"https-calendar-library-ucla-edu-event-8956122","title":"Developing a Research Question - 04/07/22","summary":"

Need help figuring out what topic you want to explore for your project? Having trouble turning a general idea into something more specific? Join us for this synchronous remote workshop with library instructors to learn about developing your research questions.. This virtual workshop is free and open to all undergraduates. For more information about the Cornerstone Research Workshop series, see our research workshops page.

\n\n

This event will be offered both in person and over Zoom. If you would like to attend this event in person, the event will be held in the Young Research Library Main Conference Room.

\n\n

If you would like to attend this even virtually, please click on this link: https://ucla.zoom.us/j/765967637 or https://bit.ly/urcworkshop

\n\n

For more information, check out http://hass.ugresearch.ucla.edu/workshops/

\n\n

Want to take this workshop now online?

\n\n

\"Click

\n\n

The workshop is also available asychronously on our CCLE site for the Cornerstone Research Workshop series. Click 'Enroll Me' to take this workshop today!

"}]},{"id":"13038","typeHandle":"externalServiceOrResource","title":"Whilly Whistle - externalLink","summary":"Willy Whistle NEVER spoke. He whistled EVERYTHING!!! He hosted a kids afternoon show.","externalLink":"http://www.tvparty.com/lostboston.html"}]},{"id":"16376","typeHandle":"simpleCards","sectionTitle":null,"sectionSummary":null,"cards":[{"id":"16378","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12519","uri":"help/services-resources/car-washing","slug":"car-washing","title":"Car Washing","summary":"

All the ways to wash your car

"}]},{"id":"16407","typeHandle":"internalServiceOrResource","contentLink":[{"id":"12629","uri":"help/services-resources/animals","slug":"animals","title":"Animals are Excellent and Flowers are Fluffy","summary":"

There are 7 Major Different Types Of Animals · Mammals, Reptiles, Fish, Birds, Amphibians, Invertebrates, Insects.

"}]}]}]} +{"id":"537","to":"help/services-resources/borrowing-books-and-equipment","slug":"borrowing-books-and-equipment","title":"Borrowing Books & Equipment","summary":"

The UCLA Library and CLICC provide technology support and equipment loans of laptops, chromebooks and more to UCLA students in support of learning and research activities.

","serviceOrResourceType":"service","illustrationsResourcesAndServices":"illustration-borrowing-books","typeHandle":"serviceOrResource","sectionHandle":"serviceOrResource","locations":[{"to":"powell-library","title":"Powell Library"}],"associatedTopics":[{"text":"We have come a long way with technology. The advancement and expansion of technology has put us where we are at today. It is a lot easier for printers to do their job today than hundreds of years ago. The spread of technology has almost put moveable type presses and letterpresses to extinction and replaced by offset presses and digital printers. Although Johannes Gutenberg may not appreciate that his invention of the moveable type is rarely used anymore, he would be very impressed to see that his ideas of print have advanced at such a large scale.","title":"Printing Practices - Simple Card 3 Up - Rich Text - Pull Quote","slug":"printing","uri":"help/printing"},{"text":"

A research guide

","title":"A new research guide","slug":"a-new-research-guide","uri":null,"externalResourceUrl":"http://libguides.library.ucla.edu"}],"button":[{"buttonText":"Reserve","buttonUrl":"http://www.google.com"}],"heroImage":[{"image":[{"src":"https://static.library.ucla.edu/craftassetstest/_fullscreen/IMG_20210803_081620186.jpg","height":2393,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/_375xAUTO_crop_center-center_none/IMG_20210803_081620186.jpg 375w, https://static.library.ucla.edu/craftassetstest/_960xAUTO_crop_center-center_none/IMG_20210803_081620186.jpg 960w, https://static.library.ucla.edu/craftassetstest/_1280xAUTO_crop_center-center_none/IMG_20210803_081620186.jpg 1280w, https://static.library.ucla.edu/craftassetstest/_1920xAUTO_crop_center-center_none/IMG_20210803_081620186.jpg 1920w, https://static.library.ucla.edu/craftassetstest/_2560xAUTO_crop_center-center_none/IMG_20210803_081620186.jpg 2560w","alt":"IMG 20210803 081620186","focalPoint":[0.5,0.5]}]}],"blocks":[{"id":"6964","typeHandle":"richText","richText":"

By creating an account on the CLICC Reservations Portal, currently enrolled students can request to reserve equipment for use during the academic term to support them while pursuing UCLA academic activities. Most loan periods will span the quarter.

\n

Approximately two (2) weeks prior to the first day of instruction, students will be provided information on borrowing equipment from the Library. As of 10/12/2020, no further in-person pickups are scheduled. All equipment will be shipped until further notice.

\n

Equipment will be due back on or shortly after the last day of exams for the quarter.

\n

Exhibition Lending Fees

FEESNON-UC USERS
Flat fee
$358
Per loaned item fee
$139 per item
Shipping/messenger service (outsourced)
At cost
Materials to protect / Ship loaned items
At cost
Insurance
Provided by borrowing institution
","sectionTitle":null},{"id":"7116","typeHandle":"richText","richText":"

Available Equipment

\n

For Students and Faculty

\n

Equipment available, while supplies last, are:

\n
  • Laptops (Dell, HP, Macbook)
  • Chromebooks
  • Camcorder cameras
  • Portable projectors
  • Mifi hotspots (AT&T, Sprint, TMobile, Verizon)
  • Tokens for remote access

In distributing equipment, specific course needs such as specialized applications and hardware required for assignments, will be considered. Due to limited supplies, students may not receive their first-choice model, operating system or carrier.

\n

For Faculty and Teaching Assistants Only

\n

In partnership with Information Technology Services (ITS), the Library has received additional equipment available for loans to instructors including teaching assistants (TAs) in support of teaching.

\n

Equipment available, while supplies last, include:

\n
  • Document cameras
  • iPads
  • Laptops (Dell Touchscreen, HP, MacAir, MacbookPro)
  • Mifi hotspots (AT&T, Sprint, TMobile, Verizon)
  • Tokens for remote access

Instructors are encouraged to request equipment from their department or visit https://keepteaching.ucla.edu. If a department is unable to provide equipment, then instructors may borrow equipment from the Library. All equipment, including mifis, will be available while supplies last.

\n

By creating an account on the CLICC Reservations Portal, currently employed instructors can request to reserve equipment for use during the academic term to support them while teaching. Most loan periods will span the quarter.

","sectionTitle":null},{"id":"7118","typeHandle":"richText","richText":"

Policies

\n

Equipment borrowing privileges may be revoked or suspended based on violations of policies at the discretion of Library Administration. The Academic Continuity Task Force has provided the following parameters for UCLA Library technology lending.

\n
  1. Wifi hotspots are available to students who do not have campus housing
  2. International shipping for borrowed devices is not available.
  3. Instructors are encouraged to request equipment from their department or visit https://keepteaching.ucla.edu. If a department is unable to provide equipment, then instructors may borrow equipment from the Library. All equipment, including wifi hotspots, will be available while supplies last.
  4. Staff are currently not eligible for instruction-related equipment lending and should contact their departments or visit Information Technology Services; supplies permitting, some short-term loans for equipment may be available.
  5. “Bulk borrowing” where a staff person submits a list of instructors for borrowing devices will not be possible. Instructors may designate a proxy to pick up multiple devices but the online requests must be made individually with both the proxy and the instructors’ emails. Departments may submit requests on behalf of instructors or TAs but there must be an online request form created for each instructor to ensure that the instructor is aware of the device being loaned in their name.

In distributing equipment, specific course needs such as specialized applications and hardware required for assignments, will be considered. Due to limited supplies, students may not receive their first-choice model, operating system or carrier.

","sectionTitle":null},{"id":"7120","typeHandle":"richText","richText":"

Returns & Fees

\n

Arrangements will be made for the safe return of equipment and due dates will be adjusted to ensure safe returns. CLICC will communicate with the borrower and schedule drop-off returns. Shipping may be available for those who cannot drop-off the equipment. If a CLICC laptop or other equipment is not returned, fees may be charged:

\n
  • After 24 hours from overdue, an Item Replacement Fee and a $43 flat processing fee will be charged
  • For short-term loans $0.20 per minute after a laptop or any equipment is late—late fees will not be assessed for long-term loans.
  • PLEASE NOTE: During remote instruction, only processing and replacement fees will continue to be implemented.
  • Users are also responsible for any items that have been tampered with in any way or are missing.
  • Laptop and equipment fees are billed to your BAR account and show up a few days after the item is considered overdue.
","sectionTitle":null},{"id":"5762","typeHandle":"simpleCards","sectionTitle":"Stair Streets of L.A.","sectionSummary":"

Los Angeles was once a city connected by public transportation in the form of trolleys, buses and trains. During this time staircases in L.A were used as modes of crossings and connections for pedestrians across the city. Nowadays, the remaining stairs around the city are used as killer workout alternatives to gyms.

\n

Many L.A. staircases serve as a historical reminder to a time when Los Angeles wasn’t known as a city of cars, congestion and smog. Some are just little nooks that offer a unique viewpoint of our city.

","cards":[{"id":"12811","typeHandle":"externalServiceOrResource","title":"Discover the Hidden Stairs of Los Angeles","summary":"Most people associate stairs with function. For example, many staircases in Echo Park were built to assist Angelenos from Red Car stops to uphill homes.","externalLink":"https://www.discoverlosangeles.com/things-to-do/discover-the-hidden-stairs-of-los-angeles"},{"id":"12812","typeHandle":"internalServiceOrResource","contentLink":[{"id":"9414","uri":null,"slug":"a-z-databases","title":"A-Z Databases","summary":"

Find the best library databases for your research.

","externalResourceUrl":"https://guides.library.ucla.edu/az.php?&_ga=2.94193502.2106042584.1646675621-1729352043.1643913957"}]}]},{"id":"7439","typeHandle":"pullQuote","pullQuote":[{"text":"

Learn from the mistakes of others. You can’t live long enough to make them all yourself.

","attribution":"ELEANOR ROOSEVELT"}]},{"id":"11462","typeHandle":"richText","richText":"One more text field to test zebra stripe and divider behavior.","sectionTitle":null}]} diff --git a/data/staff_entries.json b/data/staff_entries.json new file mode 100644 index 000000000..8ced7cd75 --- /dev/null +++ b/data/staff_entries.json @@ -0,0 +1,282 @@ +{"id":"14923","sectionHandle":"staffMember","title":"Brigid Abreu","image":[],"to":"brigid-abreu","nameFirst":"Brigid","nameLast":"Abreu","alternativeName":[],"jobTitle":"Inventory Control Coordinator and Data Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her","email":"babreu@library.ucla.edu","phone":"(310) 825-6927","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12717","sectionHandle":"staffMember","title":"Salma Abumeeiz","image":[],"to":"salma-abumeeiz","nameFirst":"Salma","nameLast":"Abumeeiz","alternativeName":[],"jobTitle":"Research and Instruction Librarian (Online Learning & Scalable Teaching)","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her/hers","email":"salmabumeeiz@library.ucla.edu","phone":"(310) 206-4410","consultation":"https://calendar.library.ucla.edu/appointments?u=64735","topics":[{"title":"Mellon Mays Writing and Research Training Program (Summer ’21; ’22)","id":"22357"},{"title":"Academic Advancement Program","id":"22358"},{"title":"Any Stage of the Research Process!","id":"22359"},{"title":"Research Skills","id":"22360"},{"title":"Instructional Design","id":"12685"},{"title":"Citation Management","id":"9430"},{"title":"Primary Source Research and Analysis","id":"22361"},{"title":"Powell Video Game Collections","id":"22362"}],"academicDepartments":[{"id":"12077","title":"Cluster 27: Global Islam"}],"biography":"

Salma provides research consultations at any stage of the research process, instructional support (including library teaching sessions, course and assignment design and online learning), support for primary and secondary source analysis, literature searching and citation management. She loves working with students to support their work, and partnering with instructors who are excited about embedding research skills into their curricula.

Education

\n

MLIS in Library and Information Studies, University of British Columbia, Vancouver, Canada

\n

MA in History, University of Windsor, Windsor, Ontario

\n

BA in History, University of Windsor, Windsor, Ontario

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"24287","sectionHandle":"staffMember","title":"Alena Aissing","image":[],"to":"alena-aissing","nameFirst":"Alena","nameLast":"Aissing","alternativeName":[],"jobTitle":"Librarian for Slavic, Eastern European and Central Asian Studies","departments":[{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"aaissing@library.ucla.edu","phone":"(310) 206-0324","consultation":null,"topics":[],"academicDepartments":[{"id":"12166","title":"Slavic, East European, and Eurasian Languages and Cultures"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"22317","sectionHandle":"staffMember","title":"Cathy Akers","image":[{"id":"22318","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Cathy_Akers.jpg","height":2495,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Cathy_Akers.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Cathy_Akers.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Cathy_Akers.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Cathy_Akers.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Cathy_Akers.jpg 2560w","alt":"Cathy Akers","focalPoint":[0.5,0.5]}],"to":"cathy-akers","nameFirst":"Cathy","nameLast":"Akers","alternativeName":[],"jobTitle":"Associate Director of Development, Corporate and Foundation Relations","departments":[{"id":"7274","title":"Development"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"cathy.akers@library.ucla.edu","phone":"(310) 206-8526","consultation":null,"topics":[{"title":"Foundation and Corporate Funding Opportunities","id":"22366"},{"title":"Grantwriting","id":"22367"},{"title":"Proposal Development and Editing","id":"22368"},{"title":"Grant Reporting Requirements","id":"22370"},{"title":"Funder Stewardship Plans","id":"22371"}],"academicDepartments":[],"biography":"

Cathy has worked with institutional funders for more than 15 years at arts organizations and in higher education. Prior to coming to UCLA, she worked as Manager of Foundation and Government Relations at Film Independent, in a number of roles at CalArts, including as Assistant Director of Corporate, Foundation and Government Giving, and in the Development office at MOCA (LA). In addition to her work as a fundraiser, she is a practicing visual artist and graduated with an MFA from CalArts and a BFA from the School of the Museum of Fine Arts/Tufts University.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24266","sectionHandle":"staffMember","title":"Jade Alburo","image":[],"to":"jade-alburo","nameFirst":"Jade","nameLast":"Alburo","alternativeName":[],"jobTitle":"Librarian for Southeast Asian Studies and Pacific Islands Studies","departments":[{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"jalburo@library.ucla.edu","phone":"(310) 825-7288","consultation":null,"topics":[],"academicDepartments":[{"id":"12155","title":"Pacific Islands Studies"},{"id":"12170","title":"Southeast Asian Studies"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12311","sectionHandle":"staffMember","title":"Mary Alfaro","image":[],"to":"mary-alfaro","nameFirst":"Mary","nameLast":"Alfaro","alternativeName":[],"jobTitle":"Interviewer","departments":[{"id":"6371","title":"Special Collections"},{"id":"12455","title":"Center for Oral History Research"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"maryalfaro@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12957","sectionHandle":"staffMember","title":"Ibraheem Ali, Ph.D.","image":[],"to":"ibraheem-ali-phd","nameFirst":"Ibraheem","nameLast":"Ali, Ph.D.","alternativeName":[],"jobTitle":"Sciences Data Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"},{"title":"Science and Engineering Library","to":"visit/locations/science-engineering-library","id":"11579"}],"pronouns":"He/Him/His","email":"ibraheemali@library.ucla.edu","phone":"(310) 206-8771","consultation":"https://calendar.library.ucla.edu/appointments/ibraheemali","topics":[{"title":"Research Data Management","id":"12433"},{"title":"Scholarly Communication","id":"12230"},{"title":"Open Access","id":"12220"},{"title":"Preprints","id":"12948"},{"title":"Data Visualization","id":"12959"},{"title":"Adobe Illustrator","id":"12960"},{"title":"Protocol Management","id":"12961"},{"title":"Communications","id":"12962"},{"title":"Outreach","id":"12363"},{"title":"Presenting Research Data","id":"12963"},{"title":"Statistics","id":"12566"},{"title":"R Studio","id":"12964"}],"academicDepartments":[{"id":"12102","title":"Epigenetics and Transcription"},{"id":"12108","title":"Gene Regulation"},{"id":"12109","title":"Genetics and Genomics"},{"id":"12179","title":"Virology"}],"biography":"

Ibraheem is originally from Fresno, CA. He got his bachelors' degree in Biology at Fresno State University in 2013 and Ph.D. in Biomedical Sciences at University of California, San Francisco in 2018 with a focus on Virology and Immunology. He completed his post-doc at the J David Gladstone Institutes with a focus on Transcription and Gene Regulation in 2019. Ibraheem works with researchers across UCLA to help with data analysis and visualization, and supports data management and research publishing for biomedical research. His strength areas include working with R/R Studio, Adobe Illustrator/Photoshop, Inclusive Publishing Practices, Study Design and Statistics.

","subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0003-3945-2701","publications":null} +{"id":"13878","sectionHandle":"staffMember","title":"Hamed Alipoormiandehi","image":[],"to":"hamed-alipoormiandehi","nameFirst":"Hamed","nameLast":"Alipoormiandehi","alternativeName":[],"jobTitle":"Network Administrator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"hamed@cinema.ucla.edu","phone":"(661) 383-2054","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"28384","sectionHandle":"staffMember","title":"Kristian Allen","image":[{"id":"28385","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/KristianAllen.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/KristianAllen.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/KristianAllen.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/KristianAllen.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/KristianAllen.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/KristianAllen.jpg 2560w","alt":"Kristian Allen","focalPoint":[0.5,0.5]}],"to":"kristian-allen","nameFirst":"Kristian","nameLast":"Allen","alternativeName":[],"jobTitle":"Digital Library Architect","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7254","title":"Data Science Center"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"he/his/him","email":"kallen2@library.ucla.edu","phone":"(310) 206-6017","consultation":"https://calendly.com/kjallen","topics":[{"title":"Python","id":"12462"},{"title":"Java","id":"11917"},{"title":"Javascript","id":"1292"},{"title":"Data Management","id":"12431"},{"title":"Digital Library Pgrogram","id":"28386"},{"title":"Software Development","id":"28387"},{"title":"Library Carpentry Instruction","id":"28388"},{"title":"R/RStudio","id":"12439"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-7070-3743","publications":null} +{"id":"12844","sectionHandle":"staffMember","title":"Angela Allen","image":[],"to":"angela-allen","nameFirst":"Angela","nameLast":"Allen","alternativeName":[],"jobTitle":"Principal Administrative Analyst","departments":[{"id":"7264","title":"Business Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"asallen@library.ucla.edu","phone":"(310) 206-9771","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12815","sectionHandle":"staffMember","title":"Courtney Alston","image":[],"to":"courtney-alston","nameFirst":"Courtney","nameLast":"Alston","alternativeName":[],"jobTitle":"Library Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"calston@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"65048","sectionHandle":"staffMember","title":"Nicole Alvarado","image":[],"to":"nicole-alvarado","nameFirst":"Nicole","nameLast":"Alvarado","alternativeName":[],"jobTitle":"Book and Paper Conservator","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"alvaran01@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12287","sectionHandle":"staffMember","title":"Alicia Amador","image":[],"to":"alicia-amador","nameFirst":"Alicia","nameLast":"Amador","alternativeName":[],"jobTitle":"Interlibrary Loan Lending Lead","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"aaa@library.ucla.edu","phone":"(310) 825-1733","consultation":null,"topics":[{"title":"Interlibrary Loan (ILL) Lending","id":"12288"},{"title":"Document Delivery","id":"12289"},{"title":"DOCLINE","id":"12290"},{"title":"VDX","id":"12291"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12444","sectionHandle":"staffMember","title":"James M. Anderson","image":[],"to":"james-m-anderson","nameFirst":"James M.","nameLast":"Anderson","alternativeName":[],"jobTitle":"Processing Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"jma@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24806","sectionHandle":"staffMember","title":"Joseph Andrews","image":[],"to":"joseph-andrews","nameFirst":"Joseph","nameLast":"Andrews","alternativeName":[],"jobTitle":"Library Assistant (Discovery Team)","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"trickbag@library.ucla.edu","phone":"(310) 206-5874","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22327","sectionHandle":"staffMember","title":"Nora Avetyan","image":[],"to":"nora-avetyan","nameFirst":"Nora","nameLast":"Avetyan","alternativeName":[],"jobTitle":"Armenian and Persian Catalog Librarian","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her","email":"navetyan@library.ucla.edu","phone":"(310) 825-8642","consultation":null,"topics":[{"title":"Armenian and Persian Collections","id":"25041"}],"academicDepartments":[],"biography":"

Nora has a bachelor's degree in Art History and an MLS. She specializes in Armenian and Persian literature and culture.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"15415","sectionHandle":"staffMember","title":"Joseph Babi","image":[{"id":"15416","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Babi_Joseph_007.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Babi_Joseph_007.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Babi_Joseph_007.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Babi_Joseph_007.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Babi_Joseph_007.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Babi_Joseph_007.jpg 2560w","alt":"Babi Joseph 007","focalPoint":[0.5,0.5]}],"to":"joseph-babi","nameFirst":"Joseph","nameLast":"Babi","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"}],"pronouns":null,"email":"jbabi@library.ucla.edu","phone":"(310) 825-4904","consultation":null,"topics":[{"title":"Stacks Maintenance","id":"12285"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12377","sectionHandle":"staffMember","title":"Jeannette Tammy Baca-Montanez","image":[],"to":"jeannette-tammy-baca-montanez","nameFirst":"Jeannette Tammy","nameLast":"Baca-Montanez","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Eugene and Maxine Rosenfeld Management Library","to":"visit/locations/eugene-and-maxine-rosenfeld-management-library","id":"11560"}],"pronouns":null,"email":"jbaca@library.ucla.edu","phone":"(310) 825-2620","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Reserves","id":"12369"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13890","sectionHandle":"staffMember","title":"Lygia Bagdanovich","image":[],"to":"lygia-bagdanovich","nameFirst":"Lygia","nameLast":"Bagdanovich","alternativeName":[],"jobTitle":"Archive Research and Study Center Assistant","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"lbagdano@cinema.ucla.edu","phone":"(310) 206-5390","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24269","sectionHandle":"staffMember","title":"Sohaib Baig","image":[],"to":"sohaib-baig","nameFirst":"Sohaib","nameLast":"Baig","alternativeName":[],"jobTitle":"Middle East, South Asian and Islamic Studies Librarian","departments":[{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"sohaib.baig@library.ucla.edu","phone":"(310) 206-4659","consultation":null,"topics":[{"title":"Arabic","id":"24271"},{"title":"Urdu","id":"24272"},{"title":"Persian","id":"24273"},{"title":"Ottoman","id":"24274"},{"title":"Intellectual and Legal History","id":"24275"}],"academicDepartments":[{"id":"12121","title":"Indian Ocean Studies"},{"id":"12125","title":"Islamic Studies"},{"id":"12144","title":"Middle Eastern Studies"},{"id":"12169","title":"South Asian Studies"}],"biography":"

BA, UCLA, History

\n

PhD, UCLA, History

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"14913","sectionHandle":"staffMember","title":"Gillian Bailey","image":[{"id":"14916","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/gbailey.jpeg","height":2561,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/gbailey.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/gbailey.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/gbailey.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/gbailey.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/gbailey.jpeg 2560w","alt":"Gillian Bailey","focalPoint":[0.5,0.5]}],"to":"gillian-bailey","nameFirst":"Gillian","nameLast":"Bailey","alternativeName":[],"jobTitle":"Service Desk Coordinator","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7254","title":"Data Science Center"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"},{"title":"Data Science Center","to":"visit/locations/data-science-center","id":"11536"}],"pronouns":null,"email":"gillian@library.ucla.edu","phone":"(310) 825-3192","consultation":null,"topics":[{"title":"Geospatial Analysis","id":"14914"},{"title":"Geographic Information Systems (GIS)","id":"14915"},{"title":"Python","id":"12462"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24298","sectionHandle":"staffMember","title":"Kevin Balster","image":[],"to":"kevin-balster","nameFirst":"Kevin","nameLast":"Balster","alternativeName":[],"jobTitle":"Continuing Resources Management Team Leader","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"he/him/his","email":"kbalster@library.ucla.edu","phone":"(310) 825-1936","consultation":null,"topics":[{"title":"Continuing Resource Cataloging","id":"24300"},{"title":"E-Resource Management","id":"24301"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12248","sectionHandle":"staffMember","title":"Rosa Barker","image":[],"to":"rosa-barker","nameFirst":"Rosa","nameLast":"Barker","alternativeName":[],"jobTitle":"Payroll and HR Operations Assistant","departments":[{"id":"7276","title":"Human Resources"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"She/Her","email":"rbarker@library.ucla.edu","phone":"(310) 206-9764","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12312","sectionHandle":"staffMember","title":"Christine Barone","image":[],"to":"christine-barone","nameFirst":"Christine","nameLast":"Barone","alternativeName":[],"jobTitle":"RLF Project Manager","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":"she/her","email":"cbar@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"30147","sectionHandle":"staffMember","title":"Anthony Bautista","image":[],"to":"anthony-bautista","nameFirst":"Anthony","nameLast":"Bautista","alternativeName":[],"jobTitle":"Mail Processor","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"anthonybautista@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12833","sectionHandle":"staffMember","title":"Ami Baxley","image":[],"to":"ami-baxley","nameFirst":"Ami","nameLast":"Baxley","alternativeName":[],"jobTitle":"Administrative Assistant for the Library Book Funds Accounting","departments":[{"id":"7264","title":"Business Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"abaxley@library.ucla.edu","phone":"(310) 267-5785","consultation":null,"topics":[{"title":"Book Fund Accounting","id":"14317"},{"title":"Library Business Services","id":"14318"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24285","sectionHandle":"staffMember","title":"Ruby A. Bell-Gam","image":[{"id":"24286","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Bell-Gam_Ruby_003-crop.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Bell-Gam_Ruby_003-crop.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Bell-Gam_Ruby_003-crop.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Bell-Gam_Ruby_003-crop.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Bell-Gam_Ruby_003-crop.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Bell-Gam_Ruby_003-crop.jpg 2560w","alt":"Bell Gam Ruby","focalPoint":[0.5,0.5]}],"to":"ruby-a-bell-gam","nameFirst":"Ruby A.","nameLast":"Bell-Gam","alternativeName":[],"jobTitle":"Librarian for African Studies and International Development Studies","departments":[{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"rbellgam@library.ucla.edu","phone":"(310) 825-1518","consultation":null,"topics":[],"academicDepartments":[{"id":"12051","title":"African Studies"},{"id":"12124","title":"International Development Studies"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"22330","sectionHandle":"staffMember","title":"Sharon Benamou","image":[],"to":"sharon-benamou","nameFirst":"Sharon","nameLast":"Benamou","alternativeName":[],"jobTitle":"Hebraica/Judaica and Music Catalog Librarian","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"benamou@library.ucla.edu","phone":"(310) 825-8642","consultation":null,"topics":[{"title":"Hebraica Cataloging","id":"22334"},{"title":"Non-Roman Scripts","id":"22336"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12632","sectionHandle":"staffMember","title":"Allison Benedetti","image":[{"id":"12633","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Allison-Benedetti.jpeg","height":2676,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Allison-Benedetti.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Allison-Benedetti.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Allison-Benedetti.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Allison-Benedetti.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Allison-Benedetti.jpeg 2560w","alt":"Allison Benedetti","focalPoint":[0.4734,0.0398]}],"to":"allison-benedetti","nameFirst":"Allison","nameLast":"Benedetti","alternativeName":[],"jobTitle":"Director of Arts, Music, and Powell Libraries","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her","email":"abenedetti@library.ucla.edu","phone":"(310) 206-8746","consultation":null,"topics":[{"title":"Assessment","id":"12418"},{"title":"Research Methods","id":"12634"},{"title":"Zotero","id":"12635"}],"academicDepartments":[],"biography":"

Allison worked in art museums and architecture libraries before coming to UCLA to support researchers in the humanities and social sciences. As Director of Arts, Music, and Powell Libraries, Allison manages User Engagement personnel, budgets and services at the three locations.She is a member of the ACRL Research Planning and Review Committee and the ARLIS/NA Development Committee. She has conducted research on user-centered services and am interested in mentorship and change in libraries. Outside of work, I am a fan of college basketball, exploring the city and salsa dancing.

","subjectLibrarian":"no","orcid":null,"publications":"

Benedetti, A., Jackson, J., & Luo, L. (2018). Vignettes: Implications for LIS Research. College & Research Libraries, 79(2), 222.

Benedetti, A. R. (2017). Promoting Library Services with User-Centered Language. portal: Libraries and the Academy 17(2), 217-234.

Worsham, D., Benedetti, A., Consales, J., Horne, A., Mody, N., Ogawa, R., & Vest, M. (2020). User Engagement - A Matrix Reorganization. In Leading Change in Academic Libraries. Association of College and Research Libraries. Retrieved from https://escholarship.org/uc/item/8wj331d3.

"} +{"id":"34185","sectionHandle":"staffMember","title":"David Benitez","image":[],"to":"david-benitez","nameFirst":"David","nameLast":"Benitez","alternativeName":[],"jobTitle":"Serials Workflow & Special Projects Coordinator","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"dbenitez@library.ucla.edu","phone":"(310) 825-7342","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12240","sectionHandle":"staffMember","title":"Araceli Bermudez","image":[],"to":"araceli-bermudez","nameFirst":"Araceli","nameLast":"Bermudez","alternativeName":[],"jobTitle":"Assistant Director, Staff and Student HR","departments":[{"id":"7276","title":"Human Resources"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"She/Her","email":"bermudez@library.ucla.edu","phone":"(310) 206-6206","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12318","sectionHandle":"staffMember","title":"Kelly Besser","image":[],"to":"kelly-besser","nameFirst":"Kelly","nameLast":"Besser","alternativeName":[],"jobTitle":"Library Special Collections Archivist","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":"she series","email":"kellybesser@library.ucla.edu","phone":"(310) 206-2753","consultation":null,"topics":[{"title":"Community Archives","id":"12323"},{"title":"Bookmobiles","id":"12324"},{"title":"Los Angeles","id":"12325"},{"title":"African American Studies","id":"12328"},{"title":"LGBT Studies","id":"12329"},{"title":"Gender Studies","id":"12330"},{"title":"UCLA Library Punk Collective","id":"12326"},{"title":"General Reference","id":"12361"},{"title":"Outreach","id":"12363"}],"academicDepartments":[],"biography":"

Kelly creates archival arrangement and description. She also provides reference services for Library Special Collections and participates in outreach. She is a member of the UCLA Library Punk Collective.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12888","sectionHandle":"staffMember","title":"Tomoko Bialock","image":[],"to":"tomoko-bialock","nameFirst":"Tomoko","nameLast":"Bialock","alternativeName":[{"fullName":"バイアロック知子","languageAltName":"ja"}],"jobTitle":"Japanese Studies Librarian","departments":[{"id":"7270","title":"East Asian Library"}],"locations":[{"title":"Richard C. Rudolph East Asian Library","to":"visit/locations/east-asian-library","id":"11497"}],"pronouns":null,"email":"tbialock@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Japanese Studies","id":"13837"},{"title":"Asian Languages and Cultures","id":"12879"}],"academicDepartments":[{"id":"12128","title":"Japanese"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12895","sectionHandle":"staffMember","title":"Ariane Bicho","image":[],"to":"ariane-bicho","nameFirst":"Ariane","nameLast":"Bicho","alternativeName":[],"jobTitle":"Director of Strategic Communications and Marketing","departments":[{"id":"7272","title":"Strategic Communications and Marketing"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"abicho@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Library Branding and Messaging","id":"47600"},{"title":"UCLA Film & Television Archive Branding and Messaging","id":"47614"},{"title":"Communications Strategy","id":"12798"},{"title":"Press Inquiries, Pitching and Media Relations","id":"47625"},{"title":"Writing and Storytelling","id":"47630"},{"title":"UCLA Film and Photography Guidelines","id":"47631"},{"title":"BruinPost Administration","id":"47637"},{"title":"Initiating New Communications Projects","id":"47646"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13881","sectionHandle":"staffMember","title":"Jeffrey Bickel","image":[],"to":"jeffrey-bickel","nameFirst":"Jeffrey","nameLast":"Bickel","alternativeName":[],"jobTitle":"Senior Newsreel Preservationist","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"jbickel@cinema.ucla.edu","phone":"(661) 383-2089","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24276","sectionHandle":"staffMember","title":"Paromita Biswas","image":[],"to":"paromita-biswas","nameFirst":"Paromita","nameLast":"Biswas","alternativeName":[],"jobTitle":"Continuing Resources Metadata Librarian","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her","email":"pbiswas@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Serials","id":"24277"},{"title":"Linked Data","id":"21995"},{"title":"Critical Cataloging","id":"24278"},{"title":"Ethical Description","id":"24279"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-1008-5365","publications":null} +{"id":"13882","sectionHandle":"staffMember","title":"Jillian Borders","image":[],"to":"jillian-borders","nameFirst":"Jillian","nameLast":"Borders","alternativeName":[],"jobTitle":"Senior Film Preservationist","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"jborders@cinema.ucla.edu","phone":"(661) 383-2089","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12284","sectionHandle":"staffMember","title":"Estéfani Bowline","image":[{"id":"12615","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Bowline_Estefani_001-1.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Bowline_Estefani_001-1.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Bowline_Estefani_001-1.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Bowline_Estefani_001-1.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Bowline_Estefani_001-1.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Bowline_Estefani_001-1.jpeg 2560w","alt":"Estefani Bowline","focalPoint":[0.5,0.5]}],"to":"estefani-bowline","nameFirst":"Estéfani","nameLast":"Bowline","alternativeName":[],"jobTitle":"Access Services Manager","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"},{"title":"Science and Engineering Library","to":"visit/locations/science-engineering-library","id":"11579"}],"pronouns":null,"email":"ebowline@library.ucla.edu","phone":"(310) 825-3957","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Borrowing Privileges","id":"12280"},{"title":"Stacks Maintenance","id":"12285"},{"title":"Security","id":"12283"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12524","sectionHandle":"staffMember","title":"Michelle Brasseur","image":[{"id":"12537","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Michelle_cropped.jpeg","height":2563,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Michelle_cropped.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Michelle_cropped.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Michelle_cropped.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Michelle_cropped.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Michelle_cropped.jpeg 2560w","alt":"Michelle Brasseur","focalPoint":[0.5,0.5]}],"to":"michelle-brasseur","nameFirst":"Michelle","nameLast":"Brasseur","alternativeName":[],"jobTitle":"Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"mbrasseur@library.ucla.edu","phone":"","consultation":"https://calendar.library.ucla.edu/appointments/michelle","topics":[{"title":"Social Equity","id":"12528"},{"title":"Housing","id":"12529"},{"title":"Transportation","id":"12320"},{"title":"Environmental Issues","id":"12532"},{"title":"Communication","id":"12533"}],"academicDepartments":[{"id":"12078","title":"Cluster 48: Political Violence in the Modern World"},{"id":"12092","title":"Disability Studies"},{"id":"12110","title":"Geography"},{"id":"12137","title":"Maps and Cartographic Resources"},{"id":"12162","title":"Public Policy"},{"id":"12178","title":"Urban Planning"}],"biography":"

Michelle provides library instruction, research assistance and collections support for Urban Planning. Please email her for more information or schedule a virtual research consultation. In past positions, Michelle has served as subject librarian for a variety of social sciences and humanities subjects. She is a generalist who likes to learn a little bit about everything. She enjoys puzzles, knitting, walks with her lab/pit bull mix and listening to true crime podcasts.

\n

Degrees and Certification

\n
  • MBA, Wright State University, Management and Marketing
  • MLIS, Kent State University, Library and Information Science
  • BPhil, Miami University, English and Women’s Studies
","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12227","sectionHandle":"staffMember","title":"Martin Brennan","image":[{"id":"12228","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/MJBheadshot.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/MJBheadshot.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/MJBheadshot.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/MJBheadshot.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/MJBheadshot.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/MJBheadshot.jpg 2560w","alt":"MJ Bheadshot","focalPoint":[0.5,0.5]}],"to":"martin-brennan","nameFirst":"Martin","nameLast":"Brennan","alternativeName":[],"jobTitle":"Scholarly Communication Education Librarian","departments":[{"id":"6367","title":"Scholarly Communication"}],"locations":[],"pronouns":null,"email":"martinjbrennan@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Copyright","id":"12218"},{"title":"Scholarly Publishing","id":"12226"},{"title":"Scholarly Communication","id":"12230"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24268","sectionHandle":"staffMember","title":"Christopher Brennan","image":[],"to":"christopher-brennan","nameFirst":"Christopher","nameLast":"Brennan","alternativeName":[],"jobTitle":"Physical Processing Coordinator","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"cbrennan@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Physical Processing","id":"24270"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13899","sectionHandle":"staffMember","title":"Lauren Roxanne Brown","image":[],"to":"lauren-roxanne-brown","nameFirst":"Lauren Roxanne","nameLast":"Brown","alternativeName":[],"jobTitle":"Theater Manager","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"}],"pronouns":null,"email":"laurenbrown@cinema.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12823","sectionHandle":"staffMember","title":"Kathy Brown","image":[],"to":"kathy-brown","nameFirst":"Kathy","nameLast":"Brown","alternativeName":[],"jobTitle":"Assistant to the University Librarian","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"kathleenbrown@library.ucla.edu","phone":"(310) 206-9740","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12364","sectionHandle":"staffMember","title":"Sara Buchting","image":[],"to":"sara-buchting","nameFirst":"Sara","nameLast":"Buchting","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"sarabuchting@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Stacks Maintenance","id":"12285"},{"title":"Mailroom","id":"12712"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"25036","sectionHandle":"staffMember","title":"Gabriela Bueno","image":[],"to":"gabriela-bueno","nameFirst":"Gabriela","nameLast":"Bueno","alternativeName":[],"jobTitle":"Library Assistant","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"gbueno@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12946","sectionHandle":"staffMember","title":"Jason Burton","image":[],"to":"jason-burton","nameFirst":"Jason","nameLast":"Burton","alternativeName":[],"jobTitle":"Director of Biomedical Library and Science and Engineering Library (interim) and Sciences Collections Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"},{"title":"Science and Engineering Library","to":"visit/locations/science-engineering-library","id":"11579"}],"pronouns":"He/Him/His","email":"jtburton@library.ucla.edu","phone":null,"consultation":"https://calendar.library.ucla.edu/appointments?u=71100","topics":[{"title":"Open Access","id":"12220"},{"title":"NSF Public Access Policy","id":"12947"},{"title":"Preprints","id":"12948"},{"title":"Predatory Publishing","id":"12944"},{"title":"Science/Engineering/Biomedical Collections","id":"12949"}],"academicDepartments":[{"id":"12062","title":"Atmospheric and Oceanic Sciences"},{"id":"12070","title":"Chemistry and Biochemistry"},{"id":"12089","title":"Dentistry"},{"id":"12140","title":"Mathematics"},{"id":"12158","title":"Physics and Astronomy"},{"id":"12172","title":"Statistics"},{"id":"63753","title":"Earth, Planetary, and Space Sciences"}],"biography":null,"subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0002-8283-7618","publications":null} +{"id":"12392","sectionHandle":"staffMember","title":"Julian Calero","image":[],"to":"julian-calero","nameFirst":"Julian","nameLast":"Calero","alternativeName":[],"jobTitle":"Library Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"juliancalero@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"25058","sectionHandle":"staffMember","title":"Gabe Cardenas","image":[],"to":"gabe-cardenas","nameFirst":"Gabe","nameLast":"Cardenas","alternativeName":[],"jobTitle":"Library Assistant III","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"he/him","email":"gcardena@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

Masters of Library & Information Science, Class of 2020

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12252","sectionHandle":"staffMember","title":"Elisia Cardona","image":[],"to":"elisia-cardona","nameFirst":"Elisia","nameLast":"Cardona","alternativeName":[],"jobTitle":"Payroll and HR Operations Assistant","departments":[{"id":"7276","title":"Human Resources"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"She/Her","email":"elis90cm@library.ucla.edu","phone":"(310) 825-9256","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12865","sectionHandle":"staffMember","title":"Charlie H. Castro","image":[],"to":"charlie-h-castro","nameFirst":"Charlie H.","nameLast":"Castro","alternativeName":[],"jobTitle":"Programmer Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"chcastro@library.ucla.edu","phone":"(310) 206-6085","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12216","sectionHandle":"staffMember","title":"Jennifer Chan","image":[],"to":"jennifer-chan","nameFirst":"Jennifer","nameLast":"Chan","alternativeName":[],"jobTitle":"Scholarly Communication Librarian","departments":[{"id":"6367","title":"Scholarly Communication"}],"locations":[],"pronouns":"she/hers","email":"jchan3@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Copyright","id":"12218"},{"title":"Open Access","id":"12220"},{"title":"OERs","id":"12221"},{"title":"ACMI","id":"12222"},{"title":"Research Impact","id":"12224"},{"title":"Scholarly Publishing","id":"12226"}],"academicDepartments":[],"biography":"

Jennifer is Scholarly Communication Librarian at UCLA and liaises with campus partners on the development of targeted outreach and programming that promote scholarly communication, open access and open education strategies to further the campus mission of research, teaching and public service. She administers UCLA Library’s Affordable Course Materials Initiative, which seeks to more closely align Library collections, services and expertise with instructional needs. ACMI has helped lower the cost of course materials for thousands of UCLA students while achieving instructors’ educational objectives. Jennifer has multiple certifications related to United States copyright law.

","subjectLibrarian":"no","orcid":"http://orcid.org/0000-0003-4454-0490","publications":null} +{"id":"13905","sectionHandle":"staffMember","title":"Ryan Chandler","image":[],"to":"ryan-chandler","nameFirst":"Ryan","nameLast":"Chandler","alternativeName":[],"jobTitle":"Collections Assistant","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"rchandler@cinema.ucla.edu","phone":"(661) 383-2086","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12877","sectionHandle":"staffMember","title":"Su Chen","image":[{"id":"12898","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/SC-photo_2018-10-17.PNG","height":1918,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/SC-photo_2018-10-17.PNG 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/SC-photo_2018-10-17.PNG 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/SC-photo_2018-10-17.PNG 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/SC-photo_2018-10-17.PNG 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/SC-photo_2018-10-17.PNG 2560w","alt":"Su Chen","focalPoint":[0.5,0.5]}],"to":"su-chen","nameFirst":"Su","nameLast":"Chen","alternativeName":[{"fullName":"陳肅","languageAltName":"zh"}],"jobTitle":"Head, Richard C. Rudolph East Asian Library","departments":[{"id":"7270","title":"East Asian Library"}],"locations":[{"title":"Richard C. Rudolph East Asian Library","to":"visit/locations/east-asian-library","id":"11497"}],"pronouns":null,"email":"suchen11@library.ucla.edu","phone":"(310) 825-1401","consultation":null,"topics":[{"title":"East Asian Studies","id":"12878"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":"

Trends and Status of Monographs on Chinese Studies: 2006-2016 《海外中國研究現狀與趨勢分析-2006-2016》. Beijing: Xue yuan press 学苑出版社, 2021.

\n

Wang, Chengzhi, Su Chen and el at. Sourcebook of North American Historical and Archival Resources on China’s War of Resistance against Japanese Aggression 《北美藏中国抗日战争历史档案文献提要》. Shanghai: Fudan University Press 复旦大学出版社, 2017.

\n

Wang, Chengzhi and Su Chen. Archival Resources of Republican China in North America.《北美藏民國檔案指要:1911-1949》. New York: Columbia University \tPress, 2016.

\n

Archives of the Young Men’s Christian Association in China at the University of Minnesota Libraries: the Annual Report (1896-\t1949) with Biographical Sketch of Foreign Secretaries and City Association Building Descriptions. 《美國明尼蘇達大學圖書\t館藏基督教男青年會檔案: 中國年度報告 (1896-1949) 及國際幹事小傳及會所小史》. Guilin: Guangxi Normal University \tPress 广西师范大学出版, 2012.

\n

Glossary of library and information science : English-Chinese / Chinese-English 《英漢漢英圖書館實用詞彙》. München : K.G. \tSaur, 2006.

\n

Chapters or Articles

\n

“An Investigation and Analysis of English Monographs on Chinese Studies Based on Three Databases (2006-2016)” 基于三大数据库对海外中国研究专著的调查与分析 (2006-2016).” International Sinology 《国际汉学》. Issue 3, pp. 60-76, 2020.

\n

“China in the YMCA Foreign Secretaries’ reports, 1895-1949: Brief introduction of the YMCA Archives at the University of Minnesota Libraries 青年会干事笔下的中国, 1895-1949:明尼苏达大学图书馆藏青年会档案简介.” Journal of Society for Chinese Studies Librarians 《天禄论丛》. Guilin: Guangxi Normal University Press 广西师范大学出版社, 2018.

\n

“The Model that Works for the UCLA East Asian Library.” Journal of East Asian Libraries, volume 2018, no.166, article 7. Council on East Asian Libraries, 2018.

\n

“Minitex 模式” (Minitex Model) in Huanwen Cheng ed. Information and Resource Sharing 《信息与资源共享》. Textbook Series for 21st Century. Revised and enlarged 2nd edition. Chapter 11, Section 5. Beijing: Higher Education Press高等教育出版社, 2016.

\n

“The establishment and development of the East Asian Library at the University of Minnesota.” Collecting Asia : East Asian Libraries in North America, 1868-2008. p. 223-230. Ann Arbor, Mich. : Association for Asian Studies, INC. 2010.

\n

\"Scholarly Communication on Asian and Chinese Studies: Analysis of English Serial Publication 1822-2009 亚洲研究和中国研究英文期刊: 历史考察与现状分析” by Su Chen and Chengzhi Wang in Haihui Zhang ed. Chinese Studies in North America: Research and Resources 《北美中国学研究 : 学术概述与文献资源》. p. 889-900. Beijing: Zhonghua Shuju 中华书局, 2010.

\n

“Who Has Published What in East Asian Studies? An Analysis of Publishers and Publishing Trends.” Library Resources and Technical Services. vol. 52, no.1 pp. 33-41. American Library Association, 2008.

\n

“The Gest Chinese Research Library at McGill 1926-1936.” East Asian Library Journal, vol. xi, no.2, pp. 40-100, Autumn 2004, Princeton University Library, 2004.

"} +{"id":"12212","sectionHandle":"staffMember","title":"Hong Cheng","image":[{"id":"12235","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/UCLA-Hong-Cheng.jpg","height":3202,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/UCLA-Hong-Cheng.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/UCLA-Hong-Cheng.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/UCLA-Hong-Cheng.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/UCLA-Hong-Cheng.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/UCLA-Hong-Cheng.jpg 2560w","alt":"UCLA Hong Cheng","focalPoint":[0.5,0.5]}],"to":"hong-cheng","nameFirst":"Hong","nameLast":"Cheng","alternativeName":[],"jobTitle":"Chinese Studies Librarian","departments":[{"id":"7270","title":"East Asian Library"}],"locations":[{"title":"Richard C. Rudolph East Asian Library","to":"visit/locations/east-asian-library","id":"11497"}],"pronouns":null,"email":"chengh@library.ucla.edu","phone":"(310) 206-9606","consultation":null,"topics":[{"title":"Chinese Studies","id":"12234"}],"academicDepartments":[{"id":"12072","title":"Chinese"},{"id":"12093","title":"East Asian Studies"}],"biography":null,"subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0003-4573-5476","publications":null} +{"id":"12244","sectionHandle":"staffMember","title":"Dawn Childress","image":[],"to":"dawn-childress","nameFirst":"Dawn","nameLast":"Childress","alternativeName":[],"jobTitle":"Librarian for Digital Collections and Scholarship","departments":[{"id":"6359","title":"Digital Library Program"}],"locations":[],"pronouns":null,"email":"dchildress@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12875","sectionHandle":"staffMember","title":"Sanghun Cho","image":[],"to":"sanghun-cho","nameFirst":"Sanghun","nameLast":"Cho","alternativeName":[{"fullName":"조상훈","languageAltName":"ko"}],"jobTitle":"Korean Studies Librarian","departments":[{"id":"7270","title":"East Asian Library"}],"locations":[{"title":"Richard C. Rudolph East Asian Library","to":"visit/locations/east-asian-library","id":"11497"}],"pronouns":null,"email":"sanghuncho@library.ucla.edu","phone":"(310) 825-9535","consultation":null,"topics":[{"title":"Korean Studies","id":"12876"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12379","sectionHandle":"staffMember","title":"J.W. Clark","image":[],"to":"jw-clark","nameFirst":"J.W.","nameLast":"Clark","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Arts Library","to":"visit/locations/arts-library","id":"2587"}],"pronouns":"they/them/theirs","email":"jwclark@library.ucla.edu","phone":"(310) 206-4587","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Reserves","id":"12369"},{"title":"Stacks Maintenance","id":"12285"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12466","sectionHandle":"staffMember","title":"Kevin S. Clarke","image":[],"to":"kevin-s-clarke","nameFirst":"Kevin S.","nameLast":"Clarke","alternativeName":[],"jobTitle":"Digital Library Software Developer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"he/him or they/them","email":"ksclarke@library.ucla.edu","phone":"(828) 278-9478","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Kevin S. Clarke is currently a Digital Library Software Developer at UCLA Library. Previously, he worked as the software developer for the Grateful Dead Archive at UC Santa Cruz and, before that, as a developer for the Dryad Digital Repository at NESCent/Duke University. He has also worked as a software developer at Princeton University Library and Lane Medical Library at Stanford University. Kevin has written articles and book chapters, co-authored a book on XML and presented at a variety of international, national and regional conferences. He has taught courses at San Jose State University’s School of Library and Information Science and workshops at several places, including the Library of Congress. Kevin started his career in libraries working as a copy cataloger while pursuing his master’s degree. He received his MS in Information Science from UNC Chapel Hill in 2000.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12343","sectionHandle":"staffMember","title":"Jane Collings","image":[],"to":"jane-collings","nameFirst":"Jane","nameLast":"Collings","alternativeName":[],"jobTitle":"Project Manager","departments":[{"id":"6371","title":"Special Collections"},{"id":"12455","title":"Center for Oral History Research"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"jcolling@library.ucla.edu","phone":"(310) 267-4754","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Jane manages the Center for Oral History Research Program and conducts and edits oral history interviews. She also participates in collection processing.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"32094","sectionHandle":"staffMember","title":"Abigail Connick","image":[],"to":"abigail-connick","nameFirst":"Abigail","nameLast":"Connick","alternativeName":[],"jobTitle":"Cataloging and Metadata Librarian","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"aconnick@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

Abigail comes to UCLA Library from Smith College where she served as the Rare Books Technical Services Project Librarian. Abigail has taken on significant projects at Smith, including redesigning a rare book accessioning workflow, which included working with a colleague to design an automated bulk accessioning Python script; designing and leading an inventory, call number change and re-shelving project.

\n

In addition to cataloging for Library Special Collections, Abigail provides leadership in developing and implementing cataloging and metadata priorities and strategies to support the discovery and access of LSC’s rare bibliographic materials.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"34909","sectionHandle":"staffMember","title":"Judith C. Consales","image":[],"to":"judith-c-consales","nameFirst":"Judith C.","nameLast":"Consales","alternativeName":[],"jobTitle":"Associate University Librarian for User Engagement","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"consales@library.ucla.edu","phone":"(310) 825-1201","consultation":null,"topics":[],"academicDepartments":[],"biography":"

As Associate University Librarian for User Engagement, Judy has responsibility for library units that provide the resources, expertise and services that support faculty and student research and knowledge discovery. Prior to her work at UCLA, Judy held management, public service and training positions in libraries and information companies. She has served in various organizations shaping library polices and practices. She is particularly interested in mentoring librarians for future roles.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12759","sectionHandle":"staffMember","title":"Daniel O. Contreras","image":[{"id":"12762","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Contreras_Daniel_04-crop.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Contreras_Daniel_04-crop.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Contreras_Daniel_04-crop.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Contreras_Daniel_04-crop.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Contreras_Daniel_04-crop.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Contreras_Daniel_04-crop.jpeg 2560w","alt":"Contreras Daniel","focalPoint":[0.5,0.5]}],"to":"daniel-contreras","nameFirst":"Daniel O.","nameLast":"Contreras","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"}],"pronouns":null,"email":"danielc@library.ucla.edu","phone":"(310) 825-3342","consultation":null,"topics":[{"title":"Reserves","id":"12369"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12371","sectionHandle":"staffMember","title":"Brooke Contreras","image":[],"to":"brooke-contreras","nameFirst":"Brooke","nameLast":"Contreras","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Eugene and Maxine Rosenfeld Management Library","to":"visit/locations/eugene-and-maxine-rosenfeld-management-library","id":"11560"}],"pronouns":"she/her","email":"bcontreras17@library.ucla.edu","phone":"(424) 442-5094","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Room Reservations","id":"12374"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12670","sectionHandle":"staffMember","title":"Pat Cramer","image":[],"to":"pat-cramer","nameFirst":"Pat","nameLast":"Cramer","alternativeName":[],"jobTitle":"Collections Care Specialist","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"pcramer@library.ucla.edu","phone":"(310) 825-2238","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12213","sectionHandle":"staffMember","title":"Caroline Cubé","image":[],"to":"caroline-cubé","nameFirst":"Caroline","nameLast":"Cubé","alternativeName":[],"jobTitle":"Computer Resource and Visual Communications Specialist","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":"she/her/hers","email":"pinky@library.ucla.edu","phone":"(310) 206-5680","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Caroline takes care of LSC Collection Management computer resource services, the LSC department website, LSC online exhibits, graphic and video design for LSC, LSC blogs, LSC Research Guides management and content contribution, communications, and outreach. Caroline is a member of the UCLA Library Punk Collective. She is also a Library-wide Lead (Web)Site Editor.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12808","sectionHandle":"staffMember","title":"Edwin Dagdagan","image":[],"to":"edwin-dagdagan","nameFirst":"Edwin","nameLast":"Dagdagan","alternativeName":[],"jobTitle":"Library Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"edagdaga@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22110","sectionHandle":"staffMember","title":"Iman Dagher","image":[{"id":"22117","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Dagher_Iman.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Dagher_Iman.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Dagher_Iman.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Dagher_Iman.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Dagher_Iman.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Dagher_Iman.jpg 2560w","alt":"Iman Dagher","focalPoint":[0.5,0.5]}],"to":"iman-dagher","nameFirst":"Iman","nameLast":"Dagher","alternativeName":[],"jobTitle":"Arabic & Islamic Studies Metadata Librarian","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her","email":"idagher@library.ucla.edu","phone":"(310) 825-8642","consultation":null,"topics":[{"title":"Arabic Library Collection","id":"22115"},{"title":"Cataloging Standards and Practice","id":"22319"},{"title":"Name Authority Control","id":"22320"},{"title":"ALA-LC Romanization","id":"22321"}],"academicDepartments":[],"biography":"

Iman Dagher has been the Arabic and Islamic Studies Catalog Librarian since June 2008. She received a Master's degree in Library and Information Studies from Loughborough University of Technology in England, and a Master's degree in Library Science (Digital
librarianship) from Wayne State University in Michigan. Research interests: authority control, identity management, Wikidata and access and discovery of non-Latin materials.

","subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-1793-8578","publications":"
  • Iman Dagher & Denise Soufi (2021) Authority Control of Arabic Personal Names: RDA and Beyond, Cataloging & Classification Quarterly, 59:2-3, 260-280, DOI: 10.1080/01639374.2020.1845896
  • Michelle Durocher, Iman Dagher, Violeta Ilik, Chris Evin Long, Jeanette A. Norris, Isabel del Carmen Quintana & Manon Théroux (2020) The PCC ISNI Pilot: Exploring Identity Management on a Global, Collaborative Scale, Cataloging & Classification Quarterly, 58:3-4, 438-448, DOI: 10.1080/01639374.2020.1713952
"} +{"id":"22885","sectionHandle":"staffMember","title":"Doug Daniels","image":[{"id":"28173","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/doug_daniels.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/doug_daniels.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/doug_daniels.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/doug_daniels.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/doug_daniels.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/doug_daniels.jpg 2560w","alt":"Doug Daniels","focalPoint":[0.5,0.5]}],"to":"doug-daniels","nameFirst":"Doug","nameLast":"Daniels","alternativeName":[],"jobTitle":"Emerging Technologies Librarian","departments":[{"id":"7254","title":"Data Science Center"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"he/him/his","email":"dougdaniels@library.ucla.edu","phone":"(310) 206-3593","consultation":"https://calendly.com/dougdanielsucla","topics":[{"title":"3D Printing","id":"28175"},{"title":"3D Scanning","id":"28176"},{"title":"3D Mapping","id":"28177"},{"title":"Audiovisual Equipment","id":"14912"},{"title":"Classroom Support","id":"28178"},{"title":"Video Editing","id":"28179"},{"title":"Large-format Printing","id":"28180"},{"title":"Virtual and Augmented Reality","id":"28181"},{"title":"Laptop Lending and CLICC","id":"28182"},{"title":"Data Carpentry","id":"28183"}],"academicDepartments":[],"biography":"

Prior to coming to UCLA, Doug worked for several years in the film industry. He started as a set PA and then boom operator, until finding work as an assistant editor for movie trailers and marketing campaigns. After his stint in the film industry, he went back to school and transferred to UCLA in 2012 from Glendale Community College. He graduated summa cum laude and highest departmental honors with a major in History and a minor in German in 2014. Doug has worked here in the UCLA Library since 2014, expanding several emerging technology services including 3D printing and scanning, laser etching and cutting, 3D mapping, virtual and augmented reality and large-format printing, all through developing relationships with partners across campus. Doug obtained his Master of Library and Information Science from UCLA in June of 2020. His interests include digital asset management, data visualization, data mining, emerging technologies, 3D preservation, privacy issues and cultural heritage preservation.

","subjectLibrarian":"no","orcid":"https://orcid.org/0000-0001-6250-1677","publications":null} +{"id":"14364","sectionHandle":"staffMember","title":"Laura Danielson","image":[],"to":"laura-danielson","nameFirst":"Laura","nameLast":"Danielson","alternativeName":[],"jobTitle":"Development Assistant","departments":[{"id":"7274","title":"Development"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"ldaniels@library.ucla.edu","phone":"(310) 206-0244","consultation":null,"topics":[{"title":"Giving to the Library","id":"14462"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"53230","sectionHandle":"staffMember","title":"Ashleigh Darby","image":[],"to":"ashleigh-darby","nameFirst":"Ashleigh","nameLast":"Darby","alternativeName":[],"jobTitle":"Access Services Lead","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"adarby@library.ucla.edu","phone":"(310) 825-1558","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Reserves","id":"12369"},{"title":"Security","id":"12283"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12619","sectionHandle":"staffMember","title":"Savannah Dawson","image":[],"to":"savannah-dawson","nameFirst":"Savannah","nameLast":"Dawson","alternativeName":[],"jobTitle":"Admin & Grants Specialist, Modern Endangered Archives Program","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":null,"email":"sadawson@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12344","sectionHandle":"staffMember","title":"Courtney Dean","image":[{"id":"12345","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Dean_Courtney.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Dean_Courtney.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Dean_Courtney.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Dean_Courtney.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Dean_Courtney.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Dean_Courtney.jpeg 2560w","alt":"Dean Courtney","focalPoint":[0.5,0.5]}],"to":"courtney-dean","nameFirst":"Courtney","nameLast":"Dean","alternativeName":[],"jobTitle":"Head of the Center for Primary Research and Training","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"cdean@library.ucla.edu","phone":"(310) 825-8136","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Courtney is the Head of the Center for Primary Research and Training (CFPRT) in UCLA Library Special Collections, where she provides hands-on training in archival methodology to graduate students from a variety of academic backgrounds and facilitates creative engagement with special collections materials. In 2014, she co-founded the Los Angeles Archivists Collective, a community-driven local professional organization with a focus on students and new professionals. She is an active member of the Society of California Archivists and Society of American Archivists. She earned her MLIS from UCLA in 2013.

\n

Courtney is also a member of the UCLA Library Punk Collective.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12620","sectionHandle":"staffMember","title":"Rachel Deblinger","image":[{"id":"12621","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Deblinger_Rachel_002.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Deblinger_Rachel_002.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Deblinger_Rachel_002.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Deblinger_Rachel_002.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Deblinger_Rachel_002.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Deblinger_Rachel_002.jpeg 2560w","alt":"Deblinger Rachel 002","focalPoint":[0.5,0.5]}],"to":"rachel-deblinger","nameFirst":"Rachel","nameLast":"Deblinger","alternativeName":[],"jobTitle":"Director, Modern Endangered Archives Program","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":"she/her/hers","email":"rdeblinger@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Modern Endangered Archives Program","id":"12624"},{"title":"Digital Archives","id":"12625"},{"title":"Modern Jewish History","id":"12626"}],"academicDepartments":[],"biography":"

Rachel Deblinger is the Director of the Modern Endangered Archives Program (MEAP) at the UCLA Library, a granting program that funds the digitization and preservation of at-risk cultural heritage materials from around the world. Before leading MEAP, Deblinger managed the Mellon-funded Engaging Humanities Impact and Publics at The Humanities Institute at UC Santa Cruz and was the Founding Director of the UC Santa Cruz Digital Scholarship Commons. Deblinger was also a CLIR Postdoctoral Fellow at the UC Santa Cruz Library.

Deblinger earned a PhD in History from UCLA. Her research focuses on early postwar Holocaust narratives, media technology, and the efforts of Jewish communal organizations to aid survivors in Europe.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22865","sectionHandle":"staffMember","title":"Tim Dennis","image":[{"id":"22866","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/tim_dennis-lores.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/tim_dennis-lores.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/tim_dennis-lores.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/tim_dennis-lores.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/tim_dennis-lores.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/tim_dennis-lores.jpg 2560w","alt":"Tim Dennis lores","focalPoint":[0.5,0.5]}],"to":"tim-dennis","nameFirst":"Tim","nameLast":"Dennis","alternativeName":[],"jobTitle":"Director of the Data Science Center","departments":[{"id":"7254","title":"Data Science Center"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"he/him/his","email":"tdennis@library.ucla.edu","phone":"(310) 825-0716","consultation":"https://calendly.com/timdennis","topics":[{"title":"Data Collection","id":"22867"},{"title":"Data Management","id":"12431"},{"title":"Research Methods","id":"12634"},{"title":"Python","id":"12462"},{"title":"R/RStudio","id":"12439"},{"title":"Stata","id":"22868"},{"title":"Carpentries","id":"12803"},{"title":"ICPSR","id":"22869"},{"title":"Reproducible Research","id":"22870"},{"title":"Data Cleaning","id":"22871"},{"title":"Data Publishing","id":"22872"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/0000-0001-6632-3812","publications":null} +{"id":"12668","sectionHandle":"staffMember","title":"Yasmin Dessem","image":[],"to":"yasmin-dessem","nameFirst":"Yasmin","nameLast":"Dessem","alternativeName":[],"jobTitle":"Head of Audiovisual Preservation","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"She/Her","email":"ydessem@library.ucla.edu","phone":"(310) 206-3982","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"565","sectionHandle":"staffMember","title":"Jen Diamond","image":[],"to":"jennifer-diamond","nameFirst":"Jen","nameLast":"Diamond","alternativeName":[],"jobTitle":"Software Developer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"she/her/hers","email":"jendiamond@library.ucla.edu","phone":"","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Jen has a background not only as a web developer, but she has a strong background in community development and instruction. She is the lead organizer of workshops like Rails Girls Los Angeles, and Viva LAVue; programs to help encourage more women to consider a career in programming. She is also very interested in foraging.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12809","sectionHandle":"staffMember","title":"Darren Diaz","image":[],"to":"darren-diaz","nameFirst":"Darren","nameLast":"Diaz","alternativeName":[],"jobTitle":"Senior Automotive Equipment Operator","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"drdiaz@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"23592","sectionHandle":"staffMember","title":"Carlos Diaz","image":[],"to":"carlos-diaz","nameFirst":"Carlos","nameLast":"Diaz","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Science and Engineering Library","to":"visit/locations/science-engineering-library","id":"11579"}],"pronouns":null,"email":"carlostaddiaz@library.ucla.edu","phone":"(310) 794-7927","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Reserves","id":"12369"},{"title":"Stacks Maintenance","id":"12285"}],"academicDepartments":[],"biography":"

Carlos graduated UCLA in 2019 with B.A in History and 3 1/2 years working at the Science and Engineering Geology Library as a student supervisor. After a brief 2 years of working as a Student Assistant cataloging 1800-1900s rare books at the Huntington Library, Art Museum and Botanical Gardens, Carlos has returned to the UCLA Library network. He currently serves as the Access Service Assistant at the Science and Engineering Library/Geology.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12401","sectionHandle":"staffMember","title":"Emily DiPressi","image":[],"to":"emily-dipressi","nameFirst":"Emily","nameLast":"DiPressi","alternativeName":[],"jobTitle":"Special Collections Coordinator","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":"she/her/hers","email":"emdipressi@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"25181","sectionHandle":"staffMember","title":"Nursel Uckan Doonan","image":[{"id":"29579","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Nur_pic1.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Nur_pic1.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Nur_pic1.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Nur_pic1.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Nur_pic1.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Nur_pic1.jpg 2560w","alt":"Nursel Uckan Doonan","focalPoint":[0.5,0.5]}],"to":"nursel-uckan-doonan","nameFirst":"Nursel Uckan","nameLast":"Doonan","alternativeName":[],"jobTitle":"International Collection Management Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"ndoonan@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13869","sectionHandle":"staffMember","title":"Annette Doss","image":[{"id":"13870","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/annette-doss-profile.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/annette-doss-profile.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/annette-doss-profile.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/annette-doss-profile.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/annette-doss-profile.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/annette-doss-profile.jpg 2560w","alt":"Annette doss profile","focalPoint":[0.5,0.5]}],"to":"annette-doss","nameFirst":"Annette","nameLast":"Doss","alternativeName":[],"jobTitle":"Cataloging Supervisor","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"adoss@cinema.ucla.edu","phone":"(661) 383-2073","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12763","sectionHandle":"staffMember","title":"Emily Dovan","image":[],"to":"emily-dovan","nameFirst":"Emily","nameLast":"Dovan","alternativeName":[],"jobTitle":"Access Services Lead","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Science and Engineering Library","to":"visit/locations/science-engineering-library","id":"11579"}],"pronouns":"she/her","email":"edovan@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Reserves","id":"12369"}],"academicDepartments":[],"biography":"

Emily is a 2019 UCLA graduate with a B.S. in Psychobiology and a minor in English. In 2017, she began working in the library as a student employee in the stacks maintenance unit at the Young Research Library (YRL) where she was promoted to service desk and student supervisor. Upon graduation, she worked for 2 years in the Interlibrary Loans department as the Borrowing Assistant. She currently serves as the Access Services Lead at the Science and Engineering Library/Boelter.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12441","sectionHandle":"staffMember","title":"Jon Edmondson","image":[],"to":"jon-edmondson","nameFirst":"Jon","nameLast":"Edmondson","alternativeName":[],"jobTitle":"Access Services Manager","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"jedmonds@library.ucla.edu","phone":"(310) 206-3488","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12346","sectionHandle":"staffMember","title":"Simon V. Elliott","image":[],"to":"simon-v-elliott","nameFirst":"Simon V.","nameLast":"Elliott","alternativeName":[],"jobTitle":"Visual Materials Specialist & Licensing Coordinator","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"selliott@library.ucla.edu","phone":"(310) 206-0580","consultation":null,"topics":[{"title":"Architecture","id":"12347"},{"title":"Photography","id":"12349"}],"academicDepartments":[],"biography":"

Simon provides reference and licensing services for Library Special Collections.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"37100","sectionHandle":"staffMember","title":"Vasean Everett","image":[],"to":"vasean-everett","nameFirst":"Vasean","nameLast":"Everett","alternativeName":[],"jobTitle":"Apple Device & Workstation Support Technician","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"veverett@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13883","sectionHandle":"staffMember","title":"Jonathan Fahn","image":[],"to":"jonathan-fahn","nameFirst":"Jonathan","nameLast":"Fahn","alternativeName":[],"jobTitle":"Collections Assistant","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"jfahn@cinema.ucla.edu","phone":"(661) 383-2151","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12443","sectionHandle":"staffMember","title":"Jana Falcon","image":[],"to":"jana-falcon","nameFirst":"Jana","nameLast":"Falcon","alternativeName":[],"jobTitle":"Processing Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"falcon@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12351","sectionHandle":"staffMember","title":"Sharon Farb","image":[],"to":"sharon-farb","nameFirst":"Sharon","nameLast":"Farb","alternativeName":[],"jobTitle":"Associate University Librarian for Special Collections and International Collaborations","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"farb@library.ucla.edu","phone":"(310) 825-1201","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12292","sectionHandle":"staffMember","title":"Sandra Farfan-Gracia","image":[{"id":"12614","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Farfan-Gracia_Sandra_004.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Farfan-Gracia_Sandra_004.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Farfan-Gracia_Sandra_004.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Farfan-Gracia_Sandra_004.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Farfan-Gracia_Sandra_004.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Farfan-Gracia_Sandra_004.jpeg 2560w","alt":"Sandra Farfan-Gracia","focalPoint":[0.5,0.5]}],"to":"sandra-farfan-gracia","nameFirst":"Sandra","nameLast":"Farfan-Gracia","alternativeName":[],"jobTitle":"Interlibrary Loan Borrowing Lead","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"sfarfan@library.ucla.edu","phone":"(310) 825-1733","consultation":null,"topics":[{"title":"Interlibrary Loan (ILL) Borrowing","id":"12293"},{"title":"Document Delivery","id":"12289"},{"title":"VDX","id":"12291"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12271","sectionHandle":"staffMember","title":"Josh Fiala","image":[],"to":"josh-fiala","nameFirst":"Josh","nameLast":"Fiala","alternativeName":[],"jobTitle":"Bibliographic Control Coordinator","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":"he/him/his","email":"jfiala@library.ucla.edu","phone":"(310) 206-5355","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Josh performs Library Special Collections cataloging and provides reference services for LSC. He is also a member of the UCLA Library Punk Collective.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12353","sectionHandle":"staffMember","title":"Devin Fitzgerald","image":[],"to":"devin-fitzgerald","nameFirst":"Devin","nameLast":"Fitzgerald","alternativeName":[],"jobTitle":"Curator of Rare Books and History of Printing","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"devinfitzgerald@library.ucla.edu","phone":"(310) 825-7253","consultation":null,"topics":[],"academicDepartments":[{"id":"12163","title":"Rare Books"}],"biography":"

A specialist in western and East Asian book history and a bibliographer, Devin completed his Ph.D. in History and East Asian Languages at Harvard University in 2020. Devin was a 2015 Andrew W. Mellon Fellow in Critical Bibliography and received additional training at both the University of Virginia and California Rare Book Schools. Devin actively uses 12 languages in his work and instruction, including Chinese, Japanese, Italian, Latin and Spanish. Devin’s background in eastern and western print traditions is a terrific match for the diversity of the UCLA Library’s collections, focus on research, instructional services and collection-building.

\n

The Curator of Rare Books and History of Printing position is made possible through the generous support of The Ahmanson Foundation.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"22331","sectionHandle":"staffMember","title":"Peter Fletcher","image":[{"id":"25037","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/PeterFletcherPic.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/PeterFletcherPic.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/PeterFletcherPic.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/PeterFletcherPic.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/PeterFletcherPic.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/PeterFletcherPic.jpg 2560w","alt":"Peter Fletcher","focalPoint":[0.5,0.5]}],"to":"peter-fletcher","nameFirst":"Peter","nameLast":"Fletcher","alternativeName":[],"jobTitle":"International Team Leader, Cyrillic Catalog Librarian","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"he/his/him","email":"pfletcher@library.ucla.edu","phone":"","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"15218","sectionHandle":"staffMember","title":"Joana Flores","image":[],"to":"joana-flores","nameFirst":"Joana","nameLast":"Flores","alternativeName":[],"jobTitle":"Logistics Administrator","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"joanaflores@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"37102","sectionHandle":"staffMember","title":"Rané Franklin","image":[],"to":"rané-franklin","nameFirst":"Rané","nameLast":"Franklin","alternativeName":[],"jobTitle":"Associate Director of Development","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"rfranklin@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"60118","sectionHandle":"staffMember","title":"Vince Front","image":[{"id":"60119","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/vincent-front.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/vincent-front.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/vincent-front.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/vincent-front.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/vincent-front.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/vincent-front.jpg 2560w","alt":"Vincent Front","focalPoint":[0.5,0.5]}],"to":"vince-front","nameFirst":"Vince","nameLast":"Front","alternativeName":[],"jobTitle":"DataSquad Project Manager","departments":[{"id":"7254","title":"Data Science Center"}],"locations":[{"title":"Data Science Center","to":"visit/locations/data-science-center","id":"11536"}],"pronouns":"he/him/his","email":"vincentfront11@g.ucla.edu","phone":null,"consultation":"https://calendly.com/vincentfront11","topics":[],"academicDepartments":[],"biography":"

Vince is a 4th year Statistics major with a minor in Environmental Systems and Society. He is the project manager for DataSquad, a student data science consulting team in the Data Science Center.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13888","sectionHandle":"staffMember","title":"Lisa Fuguet","image":[],"to":"lisa-fuguet","nameFirst":"Lisa","nameLast":"Fuguet","alternativeName":[],"jobTitle":"Head of Collections","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"fuguet@cinema.ucla.edu","phone":"(661) 383-2104","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"30150","sectionHandle":"staffMember","title":"Juan Gallegos","image":[],"to":"juan-gallegos","nameFirst":"Juan","nameLast":"Gallegos","alternativeName":[],"jobTitle":"Mail Processor","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"jgallegos@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12890","sectionHandle":"staffMember","title":"Chen Gao","image":[],"to":"chen-gao","nameFirst":"Chen","nameLast":"Gao","alternativeName":[{"fullName":"高晨","languageAltName":"zh"}],"jobTitle":"Chinese Cataloging Specialist","departments":[{"id":"7270","title":"East Asian Library"}],"locations":[{"title":"Richard C. Rudolph East Asian Library","to":"visit/locations/east-asian-library","id":"11497"}],"pronouns":null,"email":"chengao@library.ucla.edu","phone":"(310) 206-3025","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12237","sectionHandle":"staffMember","title":"Christopher Gilman","image":[],"to":"christopher-gilman","nameFirst":"Christopher","nameLast":"Gilman","alternativeName":[],"jobTitle":"Digital Curriculum Program Coordinator","departments":[{"id":"6359","title":"Digital Library Program"}],"locations":[],"pronouns":null,"email":"cjgilman@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

Chris comes to us most recently from Occidental College, where he was the Associate Director of the Center for Digital Liberal Arts and also a Digital Humanities Professor of Practice in both Comparative Studies in Literature and Culture and the Cultural Studies Program. Before his work at Occidental College, Chris served the Los Angeles Unified School District in a unique role as the Media Arts Programs Consultant. Previously, he served in multiple capacities at the University of Southern California’s Institute for Multimedia Literacy, including Associate Director.

\n

Chris holds a PhD in Slavic Languages and Literatures from USC and a Bachelor’s in Russian Studies from Syracuse University.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"2817","sectionHandle":"staffMember","title":"Joshua Gomez","image":[{"id":"22821","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Joshua-Gomez.jpg","height":3014,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Joshua-Gomez.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Joshua-Gomez.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Joshua-Gomez.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Joshua-Gomez.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Joshua-Gomez.jpg 2560w","alt":"Joshua Gomez","focalPoint":[0.5,0.5]}],"to":"jgomez","nameFirst":"Joshua","nameLast":"Gomez","alternativeName":[],"jobTitle":"Head of Software Development and Library Systems","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"he/him/his","email":"joshuagomez@library.ucla.edu","phone":"","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Joshua is a software engineer and a librarian with a long history of working in libraries, in both technical and non-technical roles. He comes to UCLA Library from the Getty Research Institute, where he led the software development team and was responsible for the design and development of applications such as the Getty Research Portal as well as building infrastructure to support digitization, Linked Data and IIIF initiatives. He also teaches courses on programming, web development and databases at UCLA's Department of Information Studies. His professional interests lie at the intersection of digital libraries, Linked Data, workflow automation and artificial intelligence. He holds a Bachelors in English from USC and a Masters from the School of Information at UC Berkeley.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"34184","sectionHandle":"staffMember","title":"Jaime Gomez","image":[],"to":"jaime-gomez","nameFirst":"Jaime","nameLast":"Gomez","alternativeName":[],"jobTitle":"LibEx Operations Supervisor","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"He/Him/His","email":"jagomez@library.ucla.edu","phone":"(310) 267-5484","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"60121","sectionHandle":"staffMember","title":"Emily Gong","image":[{"id":"60122","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Emily_Gong_headshot.png","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Emily_Gong_headshot.png 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Emily_Gong_headshot.png 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Emily_Gong_headshot.png 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Emily_Gong_headshot.png 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Emily_Gong_headshot.png 2560w","alt":"Emily Gong headshot","focalPoint":[0.5,0.5]}],"to":"emily-gong","nameFirst":"Emily","nameLast":"Gong","alternativeName":[],"jobTitle":"Technical Writer","departments":[{"id":"7254","title":"Data Science Center"}],"locations":[{"title":"Data Science Center","to":"visit/locations/data-science-center","id":"11536"}],"pronouns":"she/her/hers","email":"zgong24@g.ucla.edu","phone":null,"consultation":"https://calendly.com/zgong24","topics":[{"title":"Data Analysis","id":"22876"},{"title":"Data Visualization","id":"12959"},{"title":"Application Programming Interfaces (API)","id":"22878"},{"title":"jupyter","id":"60123"}],"academicDepartments":[],"biography":"

Emily is a junior majoring in Mathematics of Computation. She helps with Data & Coding Consultation in the Data Science Center.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12671","sectionHandle":"staffMember","title":"Leo Gonzalez","image":[],"to":"leo-gonzalez","nameFirst":"Leo","nameLast":"Gonzalez","alternativeName":[],"jobTitle":"Collections Care Specialist","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"He/His","email":"lcgonzal@library.ucla.edu","phone":"(310) 206-1972","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12705","sectionHandle":"staffMember","title":"Miki Goral","image":[{"id":"12706","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Miki-Goral.jpeg","height":3091,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Miki-Goral.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Miki-Goral.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Miki-Goral.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Miki-Goral.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Miki-Goral.jpeg 2560w","alt":"Miki Goral","focalPoint":[0.507,0.0108]}],"to":"miki-goral","nameFirst":"Miki","nameLast":"Goral","alternativeName":[],"jobTitle":"Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"miki@library.ucla.edu","phone":"(310) 825-5096","consultation":"https://calendar.library.ucla.edu/appointments?u=17752","topics":[{"title":"General Reference","id":"12361"},{"title":"African Film","id":"12707"},{"title":"History","id":"6295"},{"title":"Political Science","id":"12708"},{"title":"EndNote","id":"12709"},{"title":"Education","id":"12509"}],"academicDepartments":[{"id":"12082","title":"Cluster 80: Frontiers in Human Aging"}],"biography":"

Miki has been a Bruin for decades — as a student in the 1960s and then as a librarian since 1970. As a reference librarian, she loves working with students and faculty to help them with their research needs. Outside of the library, Miki is one of the founders of the Pan African Film & Arts Festival--now in its 31st year. She is also on the negotiating team for the University Council-American Federation of Teachers, bargaining for the working conditions of librarians at the University of California.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12710","sectionHandle":"staffMember","title":"Robert Gore","image":[{"id":"12713","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Robert-Gore.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Robert-Gore.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Robert-Gore.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Robert-Gore.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Robert-Gore.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Robert-Gore.jpeg 2560w","alt":"Robert Gore","focalPoint":[0.5,0.5]}],"to":"robert-gore","nameFirst":"Robert","nameLast":"Gore","alternativeName":[],"jobTitle":"Visual Arts Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Arts Library","to":"visit/locations/arts-library","id":"2587"}],"pronouns":"he/him/his","email":"rjcgore@library.ucla.edu","phone":"(310) 206-5426","consultation":"https://calendar.library.ucla.edu/appointments?u=24796","topics":[{"title":"Poetry","id":"12714"},{"title":"Information Literacy","id":"12557"},{"title":"Instructional Design","id":"12685"},{"title":"Instructional Development","id":"12715"},{"title":"Teaching and Learning","id":"12716"},{"title":"Artists' Books","id":"12358"}],"academicDepartments":[{"id":"12055","title":"Architecture and Urban Design"},{"id":"12056","title":"Art"},{"id":"12057","title":"Art History"},{"id":"12090","title":"Design Media Arts"},{"id":"12146","title":"Museum Studies"},{"id":"12157","title":"Photography"},{"id":"12175","title":"UCLA/Getty Program in Archaeological and Ethnographic Conservation"},{"id":"12180","title":"Visual and Performing Arts Education (VAPAE)"}],"biography":"

Robert Gore is the Visual Arts Librarian and curator of the artists’ book collection in the UCLA Arts Library. He holds a Master’s degree in Library Science and a B.A. in English (Hons.) from the University of British Columbia as well as a Bachelor of Fine Arts degree in Photography from the Emily Carr Institute of Art and Design. Also active as a poet, his poems have appeared in Canadian Literature, Prism International, Contemporary Verse 2, and many other literary journals. His chapbook The Code Between Us was published by Frog Hollow Press in 2002 and he has exhibited his photographs and other works at 23 Sandy Gallery, Artropolis, Artspeak Gallery, Presentation House and other venues.

\n

Robert's work at UCLA includes providing library instruction, research assistance and collections support for the Architecture and Urban Design, Art, Art History, and Design Media Arts departments. He also regularly teaches an introductory artists' books seminar in the Fiat Lux program. You can find his research and course guides here.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"14903","sectionHandle":"staffMember","title":"Todd C. Grappone","image":[{"id":"14904","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Grappone_Todd.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Grappone_Todd.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Grappone_Todd.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Grappone_Todd.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Grappone_Todd.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Grappone_Todd.jpeg 2560w","alt":"Grappone Todd","focalPoint":[0.5,0.5]}],"to":"todd-c-grappone","nameFirst":"Todd C.","nameLast":"Grappone","alternativeName":[],"jobTitle":"Associate University Librarian for Digital Initiatives and Information Technology","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"grappone@library.ucla.edu","phone":"(310) 825-1201","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12458","sectionHandle":"staffMember","title":"Stephen E. Gurnick","image":[{"id":"12459","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Gurnick_Stephen_006.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Gurnick_Stephen_006.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Gurnick_Stephen_006.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Gurnick_Stephen_006.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Gurnick_Stephen_006.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Gurnick_Stephen_006.jpeg 2560w","alt":"Stephen Gurnick","focalPoint":[0.5,0.5]}],"to":"stephen-e-gurnick","nameFirst":"Stephen E.","nameLast":"Gurnick","alternativeName":[],"jobTitle":"Linux Development Support Supervisor","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"sgurnick@library.ucla.edu","phone":"(310) 206-2456","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"14783","sectionHandle":"staffMember","title":"William Hackenberg","image":[{"id":"14902","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Bill-Hackenberg.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Bill-Hackenberg.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Bill-Hackenberg.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Bill-Hackenberg.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Bill-Hackenberg.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Bill-Hackenberg.jpg 2560w","alt":"Bill Hackenberg","focalPoint":[0.5,0.5]}],"to":"william-hackenberg","nameFirst":"William","nameLast":"Hackenberg","alternativeName":[],"jobTitle":"DIIT Operations and Services Project Manager","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"he/him","email":"billha@library.ucla.edu","phone":"(310) 825-2216","consultation":null,"topics":[{"title":"Leadership","id":"14799"},{"title":"Instructional Technology","id":"12686"},{"title":"Online Learning","id":"12719"},{"title":"Organizational Change","id":"14809"},{"title":"Project Management","id":"14810"},{"title":"Quality Assurance","id":"14811"}],"academicDepartments":[],"biography":"

Bill is a certified Project Manager at the UCLA Library. He is a Project Management Professional (PMP) and a Certified Scrum Master. Bill has authored several PM courses for UCLA Extension and is currently teaching courses in PM Capstone, Leadership and Earned Value Management. Bill also teaches PMP prep classes for PMI-LA. He has performed in a project manager role for over forty projects in his career. Most recently he was the Project Manager for the new UCLA Library Digital Collections website using Samvera, the new Travel & Entertainment Requests & Reports Application (TERRA) for Library Business Services (LBS), Digital Signage, Digital Preservation Service (DPS), the Occuspace CLICC Pilot and the Library Website Redesign (url tbd).

","subjectLibrarian":"no","orcid":null,"publications":"

M. James Gomez and Bill Hackenberg, Cybersecurity Project Management: An Introduction, October 2021, Independently published, 218 pages, ISBN-13: 979-8753756930.

"} +{"id":"12367","sectionHandle":"staffMember","title":"Molly Haigh","image":[],"to":"molly-haigh","nameFirst":"Molly","nameLast":"Haigh","alternativeName":[],"jobTitle":"Duplication Services Coordinator","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"mhaigh@library.ucla.edu","phone":"(310) 206-0584","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Molly provides duplication services, e-delivery, digitization requests and photoduplication for Library Special Collections.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"62024","sectionHandle":"staffMember","title":"Shelby Hallman","image":[],"to":"shelby-hallman","nameFirst":"Shelby","nameLast":"Hallman","alternativeName":[],"jobTitle":"Physical Science and Engineering Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Science and Engineering Library","to":"visit/locations/science-engineering-library","id":"11579"}],"pronouns":null,"email":"shallman@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Instruction","id":"12554"},{"title":"Engineering","id":"62025"},{"title":"Science Outreach and Engagement","id":"12908"},{"title":"Search Strategies/Literary Searching","id":"62029"},{"title":"Technical Resources, Standards and Patents","id":"62031"},{"title":"Citation Management","id":"9430"}],"academicDepartments":[{"id":"12063","title":"Bioengineering"},{"id":"12069","title":"Chemical and Biomolecular Engineering"},{"id":"12073","title":"Civil and Environmental Engineering"},{"id":"12088","title":"Computer Science"},{"id":"12097","title":"Electrical and Computer Engineering"},{"id":"12138","title":"Master of Science in Engineering Online"},{"id":"12139","title":"Materials Science and Engineering"},{"id":"12141","title":"Mechanical and Aerospace Engineering"},{"id":"62032","title":"Cluster 70: Evolution of Cosmos and Life"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12845","sectionHandle":"staffMember","title":"Edward Kip Hannan","image":[],"to":"edward-kip-hannan","nameFirst":"Edward Kip","nameLast":"Hannan","alternativeName":[],"jobTitle":"Senior Administrative Analyst","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"khannan@library.ucla.edu","phone":"(310) 267-2355","consultation":null,"topics":[{"title":"Video Production and Editing","id":"12854"},{"title":"Hollywood Park and California Horse Racing","id":"12855"},{"title":"Video and Audio Restoration","id":"12856"},{"title":"Archiving and Curating","id":"12857"},{"title":"Film History","id":"12858"},{"title":"Music Collecting","id":"12859"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12862","sectionHandle":"staffMember","title":"Eugene Hatch","image":[],"to":"eugene-hatch","nameFirst":"Eugene","nameLast":"Hatch","alternativeName":[],"jobTitle":"Programmer Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"hatch@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12581","sectionHandle":"staffMember","title":"Alesia M. Haymon","image":[],"to":"alesia-m-haymon","nameFirst":"Alesia M.","nameLast":"Haymon","alternativeName":[],"jobTitle":"Administrative Assistant","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"ahaymon@library.ucla.edu","phone":"(310) 825-1942","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12277","sectionHandle":"staffMember","title":"Molly Hemphill","image":[],"to":"molly-hemphill","nameFirst":"Molly","nameLast":"Hemphill","alternativeName":[],"jobTitle":"Curatorial Assistant","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":"she/her/hers","email":"mhemphill@library.ucla.edu","phone":"(310) 206-0953","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Molly comes to the UCLA Library after working as a department coordinator in UCLA Extension. Prior to moving to Los Angeles, Molly worked at the Free Library of Philadelphia and the University of Pennsylvania, Biddle Law Library. She received her B.A. in English from the University of Pennsylvania.

\n

Molly provides administrative and operational support to a group of curators and reports to the Head of Curators and Collections.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12871","sectionHandle":"staffMember","title":"Valeria Hernandez","image":[{"id":"12872","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Hernandez_Valeria_001.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Hernandez_Valeria_001.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Hernandez_Valeria_001.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Hernandez_Valeria_001.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Hernandez_Valeria_001.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Hernandez_Valeria_001.jpg 2560w","alt":"Valeria Hernandez","focalPoint":[0.5,0.5]}],"to":"valeria-hernandez","nameFirst":"Valeria","nameLast":"Hernandez","alternativeName":[],"jobTitle":"LBS Purchasing and Receivables Specialist","departments":[{"id":"7264","title":"Business Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"vhernandez018@library.ucla.edu","phone":"(310) 206-9770","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13876","sectionHandle":"staffMember","title":"Emilee Herrera","image":[],"to":"emilee-herrera","nameFirst":"Emilee","nameLast":"Herrera","alternativeName":[],"jobTitle":"Business Office Coordinator","departments":[{"id":"7264","title":"Business Services"},{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"emileeherrera@cinema.ucla.edu","phone":"(310) 267-4421","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13907","sectionHandle":"staffMember","title":"Steven Hill","image":[],"to":"steven-hill","nameFirst":"Steven","nameLast":"Hill","alternativeName":[],"jobTitle":"Associate Motion Picture Curator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"skhill@cinema.ucla.edu","phone":"(661) 383-2084","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12383","sectionHandle":"staffMember","title":"Neil M. Hodge","image":[{"id":"12386","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Hodge_Neil.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Hodge_Neil.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Hodge_Neil.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Hodge_Neil.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Hodge_Neil.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Hodge_Neil.jpeg 2560w","alt":"Hodge Neil","focalPoint":[0.5,0.5]}],"to":"neil-m-hodge","nameFirst":"Neil M.","nameLast":"Hodge","alternativeName":[],"jobTitle":"Public Services Coordinator","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"nehodge@library.ucla.edu","phone":"(310) 206-0854","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Neil is responsible for Library Special Collections (LSC) Reading Room coordination and supervision of Public Services' library student assistants. He also provides e-delivery and coordinates LSC social media.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12805","sectionHandle":"staffMember","title":"Elizabeth \"Babette\" Hodis","image":[],"to":"elizabeth-babette-hodis","nameFirst":"Elizabeth \"Babette\"","nameLast":"Hodis","alternativeName":[],"jobTitle":"Processing Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"bhodis81@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"4169","sectionHandle":"staffMember","title":"Courtney Hoffner","image":[{"id":"12197","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Hoffner_Courtney.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Hoffner_Courtney.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Hoffner_Courtney.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Hoffner_Courtney.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Hoffner_Courtney.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Hoffner_Courtney.jpeg 2560w","alt":"Courtney Hoffner","focalPoint":[0.5,0.5]}],"to":"courtney-hoffner","nameFirst":"Courtney","nameLast":"Hoffner","alternativeName":[],"jobTitle":"Website Managing Editor & Content Design Librarian","departments":[{"id":"7272","title":"Strategic Communications and Marketing"}],"locations":[],"pronouns":"she/her/hers","email":"choffner@library.ucla.edu","phone":"(310) 825-0190","consultation":null,"topics":[{"title":"Content Design","id":"4174"},{"title":"Content Strategy","id":"12819"},{"title":"Library Website","id":"12820"},{"title":"LibApps","id":"12689"},{"title":"Web Accessibility","id":"29627"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-6326-9627","publications":null} +{"id":"13908","sectionHandle":"staffMember","title":"Staci Hogsett","image":[],"to":"staci-hogsett","nameFirst":"Staci","nameLast":"Hogsett","alternativeName":[],"jobTitle":"Collections Assistant","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"shogsett@cinema.ucla.edu","phone":"(661) 383-2155","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12646","sectionHandle":"staffMember","title":"Callie Holmes","image":[],"to":"callie-holmes","nameFirst":"Callie","nameLast":"Holmes","alternativeName":[],"jobTitle":"Music Collections Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Music Library","to":"visit/locations/music-library","id":"11512"}],"pronouns":"she/her/hers","email":"cholmes@library.ucla.edu","phone":"(310) 825-2317","consultation":null,"topics":[{"title":"Ethnomusicology","id":"22393"},{"title":"Music","id":"12691"},{"title":"Musicology","id":"22394"},{"title":"Popular Music","id":"22395"},{"title":"Local Music","id":"22396"},{"title":"Music Preservation","id":"22397"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12442","sectionHandle":"staffMember","title":"Joanna Hong","image":[],"to":"joanna-hong","nameFirst":"Joanna","nameLast":"Hong","alternativeName":[],"jobTitle":"Processing Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"jhong728@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13913","sectionHandle":"staffMember","title":"May Hong HaDuong","image":[{"id":"13914","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/mayhonghaduong-profile.jpg","height":2565,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/mayhonghaduong-profile.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/mayhonghaduong-profile.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/mayhonghaduong-profile.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/mayhonghaduong-profile.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/mayhonghaduong-profile.jpg 2560w","alt":"Mayhonghaduong profile","focalPoint":[0.5,0.5]}],"to":"may-hong-haduong","nameFirst":"May","nameLast":"Hong HaDuong","alternativeName":[],"jobTitle":"Director of the UCLA Film & Television Archive","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"mhaduong@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

A\n UCLA alumna, May has served in the film archiving world for more than \n15 years. She is the fourth director in the film and television \narchive’s 55-year history and the first woman and person of color to \nlead the organization. May was the senior manager of public access at \nthe Academy of Motion Picture Arts and Sciences, where she served as a \nprincipal representative for the Academy’s film archive. Prior to \nserving at the Academy Film Archive, she was the project manager for the\n Outfest UCLA Legacy Project for LGBT Moving Image Preservation, a \ncollaboration between the UCLA Film & Television Archive and \nOutfest, which produces the Outfest Los Angeles LGBTQ Film Festival. She\n currently serves on the Legacy Project Advisory Committee and on the \nBoard of Directors of the ONE Archives Foundation.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12579","sectionHandle":"staffMember","title":"Angela K. Horne","image":[{"id":"12580","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Horne_Angela_008-crop_0.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Horne_Angela_008-crop_0.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Horne_Angela_008-crop_0.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Horne_Angela_008-crop_0.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Horne_Angela_008-crop_0.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Horne_Angela_008-crop_0.jpeg 2560w","alt":"Angela Horne","focalPoint":[0.5,0.5]}],"to":"angela-k-horne","nameFirst":"Angela K.","nameLast":"Horne","alternativeName":[],"jobTitle":"Director of the Rosenfeld Library and Young Research Library Humanities and Social Sciences Division","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Eugene and Maxine Rosenfeld Management Library","to":"visit/locations/eugene-and-maxine-rosenfeld-management-library","id":"11560"},{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her","email":"ahorne@library.ucla.edu","phone":"(310) 825-3138","consultation":null,"topics":[{"title":"Business Research","id":"12508"},{"title":"Instruction and Collections","id":"12360"}],"academicDepartments":[{"id":"12066","title":"Business and Management"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"22858","sectionHandle":"staffMember","title":"Claudia Horning","image":[{"id":"22860","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/SquareClaudia.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/SquareClaudia.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/SquareClaudia.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/SquareClaudia.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/SquareClaudia.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/SquareClaudia.jpeg 2560w","alt":"Claudia Horning","focalPoint":[0.5,0.5]}],"to":"claudia-horning","nameFirst":"Claudia","nameLast":"Horning","alternativeName":[],"jobTitle":"Assistant Head, Metadata Services","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her/hers","email":"chorning@library.ucla.edu","phone":"(310) 825-4092","consultation":null,"topics":[{"title":"Metadata","id":"12665"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/my-orcid?orcid=0000-0003-1348-7316","publications":null} +{"id":"24288","sectionHandle":"staffMember","title":"Alice Hunt","image":[],"to":"alice-hunt","nameFirst":"Alice","nameLast":"Hunt","alternativeName":[],"jobTitle":"Library Assistant","departments":[{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"ahunt@library.ucla.edu","phone":"(310) 825-4692","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12414","sectionHandle":"staffMember","title":"Dalena Hunter","image":[{"id":"12415","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Hunter_Dalena.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Hunter_Dalena.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Hunter_Dalena.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Hunter_Dalena.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Hunter_Dalena.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Hunter_Dalena.jpeg 2560w","alt":"Hunter Dalena","focalPoint":[0.5,0.5]}],"to":"dalena-hunter","nameFirst":"Dalena","nameLast":"Hunter","alternativeName":[],"jobTitle":"Librarian/Archivist for Los Angeles Communities and Cultures","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"dalenae@library.ucla.edu","phone":"(310) 206-3776","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"14919","sectionHandle":"staffMember","title":"Douglas Ishimaru","image":[],"to":"douglas-ishimaru","nameFirst":"Douglas","nameLast":"Ishimaru","alternativeName":[],"jobTitle":"Business/Technical Support Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"dishimaru@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24809","sectionHandle":"staffMember","title":"Dana Iwata","image":[],"to":"dana-iwata","nameFirst":"Dana","nameLast":"Iwata","alternativeName":[],"jobTitle":"Library Assistant (Discovery Team)","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her","email":"dsiwata@library.ucla.edu","phone":"(310) 206-5874","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12389","sectionHandle":"staffMember","title":"Courtney \"Jet\" Jacobs","image":[{"id":"12662","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Jacobs-CourtneyJet.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Jacobs-CourtneyJet.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Jacobs-CourtneyJet.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Jacobs-CourtneyJet.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Jacobs-CourtneyJet.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Jacobs-CourtneyJet.jpg 2560w","alt":"Jacobs Courtney Jet","focalPoint":[0.5,0.5]}],"to":"courtney-jet-jacobs","nameFirst":"Courtney \"Jet\"","nameLast":"Jacobs","alternativeName":[],"jobTitle":"Head of Public Services, Outreach and Community Engagement","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"courtneyjacobs@library.ucla.edu","phone":"(310) 825-3796","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Jet has the unique pleasure of overseeing the Public Services, Outreach and Community Engagement unit in Library Special Collections (LSC). This includes all public-facing operations, including research services, reference, instruction, exhibits, special collections programming and events and the Center for Primary Research and Training. Jet's main goal is to ensure that LSC's broad array of diverse, distinctive materials is accessible to the UCLA community and the broader public. As part of the 3Dhotbed project team, Jet's research interests focus on extending bibliographic pedagogy through additive manufacturing.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12217","sectionHandle":"staffMember","title":"Jina (Jamie) Jamison","image":[{"id":"12839","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Jamison_Jamie_009_2022-04-13-193612_rwgw.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Jamison_Jamie_009_2022-04-13-193612_rwgw.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Jamison_Jamie_009_2022-04-13-193612_rwgw.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Jamison_Jamie_009_2022-04-13-193612_rwgw.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Jamison_Jamie_009_2022-04-13-193612_rwgw.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Jamison_Jamie_009_2022-04-13-193612_rwgw.jpg 2560w","alt":"Jamison Jamie 009","focalPoint":[0.4985,0.4529]}],"to":"jina-jamie-jamison","nameFirst":"Jina (Jamie)","nameLast":"Jamison","alternativeName":[],"jobTitle":"Collection Manager","departments":[{"id":"7254","title":"Data Science Center"}],"locations":[],"pronouns":"she/her","email":"jamison@library.ucla.edu","phone":"(310) 825-0716","consultation":"https://calendly.com/jamiejamison","topics":[{"title":"Data Management","id":"12431"},{"title":"Dataverse","id":"12438"},{"title":"Data Discovery","id":"12432"},{"title":"Research Data Management","id":"12433"},{"title":"SPSS","id":"12434"},{"title":"ArcGIS","id":"12436"},{"title":"QGIS","id":"12437"},{"title":"R/RStudio","id":"12439"},{"title":"Carpentries","id":"12803"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"http://0000-0002-5116-5724","publications":null} +{"id":"38301","sectionHandle":"staffMember","title":"Douglas Johnson","image":[],"to":"douglas-johnson","nameFirst":"Douglas","nameLast":"Johnson","alternativeName":[],"jobTitle":"LSC Archivist","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"dejohnson@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12394","sectionHandle":"staffMember","title":"Russell Johnson","image":[],"to":"russell-johnson","nameFirst":"Russell","nameLast":"Johnson","alternativeName":[],"jobTitle":"Curator, History & Special Collections for the Sciences","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"rjohnson@library.ucla.edu","phone":"(310) 825-6940","consultation":null,"topics":[{"title":"Collection Development/Management","id":"12359"},{"title":"Instruction and Collections","id":"12360"},{"title":"Special Collections Cataloging","id":"12398"},{"title":"Public Programs","id":"12399"},{"title":"General Reference","id":"12361"}],"academicDepartments":[{"id":"12119","title":"History of Science, Medicine and Technology (Special Collections)"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12553","sectionHandle":"staffMember","title":"Matthew Weirick Johnson","image":[{"id":"11889","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Johnson_Matthew.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Johnson_Matthew.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Johnson_Matthew.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Johnson_Matthew.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Johnson_Matthew.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Johnson_Matthew.jpg 2560w","alt":"Matthew Johnson","focalPoint":[0.5,0.5]}],"to":"matthew-weirick-johnson","nameFirst":"Matthew Weirick","nameLast":"Johnson","alternativeName":[],"jobTitle":"Librarian for English & History and Lead for Teaching & Learning","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"they/he","email":"mattweirick@library.ucla.edu","phone":"(310) 825-7785","consultation":"https://calendar.library.ucla.edu/appointments/mattjohnson","topics":[{"title":"Instruction","id":"12554"},{"title":"Teaching and Learning","id":"12716"},{"title":"Information Literacy","id":"12557"},{"title":"TA Training","id":"12558"}],"academicDepartments":[{"id":"12067","title":"Center for the Advancement of Teaching"},{"id":"12087","title":"Comparative Literature"},{"id":"12092","title":"Disability Studies"},{"id":"12098","title":"English"},{"id":"12117","title":"High School AP Courses"},{"id":"12118","title":"History"},{"id":"12176","title":"Undergraduate Research Center - Humanities, Arts, and Social Sciences"},{"id":"12177","title":"University Studies"}],"biography":"

Prior to joining UCLA as the Librarian for English & History, Matt worked for a network of non-profits providing data support, including data entry, analysis and visualization. Matt has worked in medical, academic and public libraries and has served in remote library roles, including working as a virtual reference librarian.

\n

Matt provides research consultations, instructional support (including instruction sessions, assignment design and instructional consultations) and support for evidence synthesis, literature searching and citation management (primarily in EndNote or Zotero). Matt is interested in long-term, high quality partnerships with undergraduate and graduate students, staff and faculty for both research and instructional projects.

\n

Degrees and Credentials

\n
  • MS in Library Science, University of North Carolina, Chapel Hill
    • with graduate certificates in Interdisciplinary Health Communication & Interdisciplinary Health Disparities
    • School of Information & Library Science Diversity Advocate
  • BA in English, Virginia Tech (concentration in Literature & Language)

You can learn more about me from my website or CV.

","subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0002-6391-2088","publications":""} +{"id":"12694","sectionHandle":"staffMember","title":"Katherine Kapsidelis","image":[],"to":"katherine-kapsidelis","nameFirst":"Katherine","nameLast":"Kapsidelis","alternativeName":[],"jobTitle":"Research & Instruction Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her/hers","email":"kapsidelis@library.ucla.edu","phone":null,"consultation":"https://calendar.library.ucla.edu/appointments/kapsidelis","topics":[{"title":"Research Strategies","id":"12695"},{"title":"Primary Source Research","id":"12696"},{"title":"Information Literacy","id":"12557"},{"title":"Travel Guides & Travel Writing","id":"22379"},{"title":"Social Justice Books & Resources","id":"22377"},{"title":"Library Support of the Cluster Program","id":"22380"}],"academicDepartments":[{"id":"12081","title":"Cluster 73: Mind over Matter: History, Science, and Philosophy of Brain"}],"biography":"

Katherine works with students and instructors to support research by teaching information literacy skills and by facilitating access to library resources. Katherine also coordinates the library’s engagement with the Freshman Cluster Program.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"40398","sectionHandle":"staffMember","title":"Eileen Keegan","image":[],"to":"eileen-keegan","nameFirst":"Eileen","nameLast":"Keegan","alternativeName":[],"jobTitle":"Subject Authority & Database Maintenance Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her/hers","email":"ekeegan@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12863","sectionHandle":"staffMember","title":"Michael Kelley","image":[],"to":"michael-kelley","nameFirst":"Michael","nameLast":"Kelley","alternativeName":[],"jobTitle":"Business Analyst","departments":[{"id":"7264","title":"Business Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"mkelley01@library.ucla.edu","phone":"(310) 206-9768","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"14335","sectionHandle":"staffMember","title":"Stephanie Kimura","image":[{"id":"14336","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Kimura_Stephanie_crop.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Kimura_Stephanie_crop.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Kimura_Stephanie_crop.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Kimura_Stephanie_crop.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Kimura_Stephanie_crop.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Kimura_Stephanie_crop.jpg 2560w","alt":"Stephanie Kimura","focalPoint":[0.5,0.5]}],"to":"stephanie-kimura","nameFirst":"Stephanie","nameLast":"Kimura","alternativeName":[],"jobTitle":"Executive Director of Development","departments":[{"id":"7274","title":"Development"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"sbkimura@library.ucla.edu","phone":"(310) 206-8551","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12648","sectionHandle":"staffMember","title":"Diana King","image":[],"to":"diana-king","nameFirst":"Diana","nameLast":"King","alternativeName":[],"jobTitle":"Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Arts Library","to":"visit/locations/arts-library","id":"2587"}],"pronouns":"she/her/hers","email":"diking@library.ucla.edu","phone":"(310) 206-4823","consultation":"https://calendar.library.ucla.edu/appointments/king","topics":[{"title":"Performance Studies","id":"12649"},{"title":"Popular Culture","id":"12650"},{"title":"Moving Image Research","id":"12651"},{"title":"Media Archive Studies","id":"12652"},{"title":"Fandoms/Participatory Cultures","id":"12653"},{"title":"Feminist Research Methodology","id":"12654"}],"academicDepartments":[{"id":"12107","title":"Gender Studies"},{"id":"12132","title":"Lesbian, Gay, Bisexual, Transgender, and Queer Studies"},{"id":"12174","title":"Theater, Film, and Television"},{"id":"12181","title":"World Arts and Cultures/Dance"}],"biography":"

Diana's work at UCLA includes providing library instruction, research assistance and collections support for the School of Theater, Film, & Television, World Arts and Cultures/Dance, Gender Studies, and LGBTQ Studies. Check out some of her research and course guides online, and contact her for more information or an appointment. She is passionate about interdisciplinary and multidisciplinary research, and has a professional interest in the history of action figures and transmedia storytelling. She also currently serves as a campus Equity, Diversity, and Inclusion Advisor for the Library.

","subjectLibrarian":"yes","orcid":"http://0000-0002-8807-2601","publications":null} +{"id":"12378","sectionHandle":"staffMember","title":"Marissa Kings-Garwig","image":[{"id":"12380","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Kings_Marissa_cropped.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Kings_Marissa_cropped.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Kings_Marissa_cropped.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Kings_Marissa_cropped.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Kings_Marissa_cropped.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Kings_Marissa_cropped.jpg 2560w","alt":"Marissa Kings","focalPoint":[0.5,0.5]}],"to":"marissa-kings-garwig","nameFirst":"Marissa","nameLast":"Kings-Garwig","alternativeName":[],"jobTitle":"Imaging Services Manager","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":"she/her/hers","email":"mkings@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[{"title":"Digitization","id":"12770"}],"academicDepartments":[],"biography":"

Imaging Services provides high-quality digitization options for cultural heritage organizations. For more information, please visit https://www.srlf.ucla.edu/imaging-services/.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22138","sectionHandle":"staffMember","title":"Ian A. Kinzler","image":[],"to":"ian-a-kinzler","nameFirst":"Ian A.","nameLast":"Kinzler","alternativeName":[],"jobTitle":"Bibliographic Control Coordinator","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"ikinzler@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"14924","sectionHandle":"staffMember","title":"Andrew C. Kohler","image":[],"to":"andrew-c-kohler","nameFirst":"Andrew C.","nameLast":"Kohler","alternativeName":[],"jobTitle":"Programmer Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":null,"email":"akohler@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12294","sectionHandle":"staffMember","title":"Antigone Kutay","image":[{"id":"12613","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Kutay_Antigone_02.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Kutay_Antigone_02.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Kutay_Antigone_02.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Kutay_Antigone_02.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Kutay_Antigone_02.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Kutay_Antigone_02.jpeg 2560w","alt":"Antigone Kutay","focalPoint":[0.5,0.5]}],"to":"antigone-kutay","nameFirst":"Antigone","nameLast":"Kutay","alternativeName":[],"jobTitle":"Access Services Lead","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"antigone@library.ucla.edu","phone":"(310) 825-6982","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Stacks Maintenance","id":"12285"},{"title":"Borrowing Privileges","id":"12280"},{"title":"Billing","id":"12282"},{"title":"Lockers and Faculty Carrels","id":"12400"},{"title":"Reprographics","id":"12396"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12864","sectionHandle":"staffMember","title":"David Lakatta","image":[],"to":"david-lakatta","nameFirst":"David","nameLast":"Lakatta","alternativeName":[],"jobTitle":"Information Systems Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"dlakatta@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12404","sectionHandle":"staffMember","title":"Jasmine Larkin","image":[],"to":"jasmine-larkin","nameFirst":"Jasmine","nameLast":"Larkin","alternativeName":[],"jobTitle":"Accessioning Archivist","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"jaslarkin@library.ucla.edu","phone":"(310) 794-4096","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Among her range of duties, Jasmine has primary responsibility for accessioning activities and is leading the development of a systematic accessioning strategy in Library Special Collections (LSC), as well as providing and implementing recommendations to scale LSC’s accessioning program.

\n

Jasmine most recently served as the Special Collections Project Archivist at the Getty Research Institute, where she has been working on a grant project to make the records of the Woman’s Building accessible. Previously, she was Assistant Archivist in NYU Libraries’ Archival Collection Management division, where she played a key role in an institution-wide archival survey and access project. Jasmine holds an MLIS, with a specialization in Archival Studies, from UCLA, and a BA in Art History from Loyola Marymount University.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"4273","sectionHandle":"staffMember","title":"Suzy Lee","image":[],"to":"suzy-lee","nameFirst":"Suzy","nameLast":"Lee","alternativeName":[],"jobTitle":"Public Programs and Communications Manager","departments":[{"id":"7272","title":"Strategic Communications and Marketing"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"szlee@library.ucla.edu","phone":"(310) 825-3985","consultation":null,"topics":[{"title":"Events and Programs","id":"19091"},{"title":"Library Conference Spaces","id":"16330"},{"title":"Digital Signage","id":"16331"},{"title":"Communications Strategy","id":"12798"},{"title":"Marschak Colloquium","id":"29617"}],"academicDepartments":[],"biography":"

As a member of the UCLA Library Communications and Marketing team, Suzy manages public programming activities that demonstrate the Library's impact and value to the campus and larger communities. She oversees spaces in the Charles E. Young Research used for hosting events and works with colleagues and contacts from UCLA departments, centers and student organizations to support their programming goals and initiatives. She helps users navigate the logistical aspects of holding activities in library locations and offers guidance with strategic print, digital and online promotion.

\n

Before joining the Library, Suzy worked at Royce Hall with the Center for the Art of Performance (CAP) at UCLA and oversaw all aspects of booking and coordinating live programs incorporating dance, theater, spoken word and musical performances.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12722","sectionHandle":"staffMember","title":"Simon Lee","image":[{"id":"12725","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Simon-Lee.jpeg","height":2955,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Simon-Lee.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Simon-Lee.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Simon-Lee.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Simon-Lee.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Simon-Lee.jpeg 2560w","alt":"Simon Lee","focalPoint":[0.4563,0.0097]}],"to":"simon-lee","nameFirst":"Simon","nameLast":"Lee","alternativeName":[],"jobTitle":"Librarian and Collections Coordinator","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"he/him/his","email":"simonlee83@library.ucla.edu","phone":"(310) 825-6726","consultation":"https://calendar.library.ucla.edu/appointments/simon-lee","topics":[{"title":"Research Topics","id":"12727"},{"title":"Finding Sources","id":"12728"},{"title":"Collection Development","id":"12729"},{"title":"Citing Sources","id":"12730"}],"academicDepartments":[{"id":"12080","title":"Cluster 71: Biotechnology and Society"}],"biography":"

Simon enjoys supporting researchers with their information and access needs at the UCLA Library. When not in the front lines, Simon helps to build and manage UCLA's rich array of library resources. In his free time, Simon enjoys tennis, the creative arts and of course -- the company of cats.

\n

Need help getting started? Schedule a virtual research consultation.

","subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0002-9069-2658","publications":null} +{"id":"12891","sectionHandle":"staffMember","title":"Yun-Hee Lee","image":[],"to":"yun-hee-lee","nameFirst":"Yun-Hee","nameLast":"Lee","alternativeName":[{"fullName":"이윤희","languageAltName":"ko"}],"jobTitle":"Korean Acquisition and Cataloging Specialist","departments":[{"id":"7270","title":"East Asian Library"}],"locations":[{"title":"Richard C. Rudolph East Asian Library","to":"visit/locations/east-asian-library","id":"11497"}],"pronouns":null,"email":"orange@library.ucla.edu","phone":"(310) 825-9535","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12892","sectionHandle":"staffMember","title":"Hui Li","image":[],"to":"hui-li","nameFirst":"Hui","nameLast":"Li","alternativeName":[{"fullName":"李慧","languageAltName":"zh"}],"jobTitle":"Chinese Acquisition and Cataloging Specialist","departments":[{"id":"7270","title":"East Asian Library"}],"locations":[{"title":"Richard C. Rudolph East Asian Library","to":"visit/locations/east-asian-library","id":"11497"}],"pronouns":null,"email":"lihui@library.ucla.edu","phone":"(310) 206-9606","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"2808","sectionHandle":"staffMember","title":"Axa Liauw","image":[],"to":"axa-liauw","nameFirst":"Axa","nameLast":"Liauw","alternativeName":[],"jobTitle":"Lead User Experience Designer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"Axa/she/they/dia","email":"aliauw@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12690","sectionHandle":"staffMember","title":"Henry Lim","image":[{"id":"12693","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Henry-Lim.jpeg","height":2579,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Henry-Lim.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Henry-Lim.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Henry-Lim.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Henry-Lim.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Henry-Lim.jpeg 2560w","alt":"Henry Lim","focalPoint":[0.465,0.5534]}],"to":"henry-lim","nameFirst":"Henry","nameLast":"Lim","alternativeName":[],"jobTitle":"Technical Services Specialist","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Music Library","to":"visit/locations/music-library","id":"11512"}],"pronouns":null,"email":"hlim@library.ucla.edu","phone":"(310) 825-4188","consultation":null,"topics":[{"title":"Music","id":"12691"},{"title":"Acquisitions","id":"12692"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12238","sectionHandle":"staffMember","title":"Wil Lin","image":[],"to":"wil-lin","nameFirst":"Wil","nameLast":"Lin","alternativeName":[],"jobTitle":"Head of Collection Conservation","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"He/Him","email":"willin@library.ucla.edu","phone":"(310) 794-1523","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13872","sectionHandle":"staffMember","title":"Bryce Lowe","image":[],"to":"bryce-lowe","nameFirst":"Bryce","nameLast":"Lowe","alternativeName":[],"jobTitle":"Production Coordinator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"blowe@cinema.ucla.edu","phone":"(661) 383-2068","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12866","sectionHandle":"staffMember","title":"Sandy Ma","image":[],"to":"sandy-ma","nameFirst":"Sandy","nameLast":"Ma","alternativeName":[],"jobTitle":"Assistant Director of Library Business Services","departments":[{"id":"7264","title":"Business Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"sma@library.ucla.edu","phone":"(310) 825-5869","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13867","sectionHandle":"staffMember","title":"Amanda Mack","image":[],"to":"amanda-mack","nameFirst":"Amanda","nameLast":"Mack","alternativeName":[],"jobTitle":"Cataloger","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"amanda.mack@cinema.ucla.edu","phone":"(661) 383-2071","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"14772","sectionHandle":"staffMember","title":"Abdur Mahmood","image":[{"id":"14983","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/T0DRQ5A76-UMV62A2FR-1e435738355f-512.png","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/T0DRQ5A76-UMV62A2FR-1e435738355f-512.png 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/T0DRQ5A76-UMV62A2FR-1e435738355f-512.png 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/T0DRQ5A76-UMV62A2FR-1e435738355f-512.png 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/T0DRQ5A76-UMV62A2FR-1e435738355f-512.png 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/T0DRQ5A76-UMV62A2FR-1e435738355f-512.png 2560w","alt":"AR Mahmood","focalPoint":[0.5,0.5]}],"to":"abdur-mahmood","nameFirst":"Abdur","nameLast":"Mahmood","alternativeName":[],"jobTitle":"Business/Tech Support Analyst","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[],"pronouns":null,"email":"ar@cinema.ucla.edu","phone":"(661) 383-2051","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13902","sectionHandle":"staffMember","title":"Paul Malcolm","image":[],"to":"paul-malcolm","nameFirst":"Paul","nameLast":"Malcolm","alternativeName":[],"jobTitle":"Public Programmer","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"}],"pronouns":null,"email":"pmalcolm@cinema.ucla.edu","phone":"(310) 206-3017","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"19178","sectionHandle":"staffMember","title":"Evan Manzanetti","image":[{"id":"19194","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Evan.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Evan.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Evan.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Evan.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Evan.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Evan.jpeg 2560w","alt":"Evan Manzanetti","focalPoint":[0.5,0.5]}],"to":"evan-manzanetti","nameFirst":"Evan","nameLast":"Manzanetti","alternativeName":[],"jobTitle":"Library Computing Systems Coordinator","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":null,"email":"evanmanzanetti@library.ucla.edu","phone":"(310) 206-4006","consultation":null,"topics":[{"title":"CLICC","id":"12850"},{"title":"Laptop Lending","id":"19191"},{"title":"Learning Technology","id":"19192"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12260","sectionHandle":"staffMember","title":"Emoon Mar","image":[],"to":"emoon-mar","nameFirst":"Emoon","nameLast":"Mar","alternativeName":[],"jobTitle":"Senior Academic Human Resources Analyst","departments":[{"id":"7276","title":"Human Resources"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her","email":"ewmar@library.ucla.edu","phone":"(310) 825-6563","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"32755","sectionHandle":"staffMember","title":"Francesca Marineo","image":[],"to":"francesca-marineo","nameFirst":"Francesca","nameLast":"Marineo","alternativeName":[],"jobTitle":"Education Liaison, Humanities and Social Sciences Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"marineo@library.ucla.edu","phone":"(310) 825-4567","consultation":"https://calendar.library.ucla.edu/appointments/fran","topics":[{"title":"Education & Educational Psychology","id":"32766"},{"title":"Information Literacy","id":"12557"},{"title":"Accessibility & Universal Design","id":"32767"},{"title":"Online Teaching & Learning","id":"32768"}],"academicDepartments":[{"id":"12096","title":"Education"}],"biography":"

Francesca (Fran) Marineo is a Humanities and Social Sciences Librarian/Coordinator of Library Student Research Assistants at UCLA. She is subject liaison to the Department of Education and works with education students, staff and faculty to support their research. This includes everything from consulting on research question development and finding sources to discussing topics of information evaluation, synthesis and creation. She enjoys getting to know her students and colleagues and collaborating on projects that support the whole student. Fran’s own research interests include motivationally-supportive instruction, inclusive and equitable education and online teaching and learning.

\n

Degrees and Credentials

\n
  • Master of Library and Information Science, University of California, Los Angeles
  • Master of Science in Educational Psychology, University of Nevada, Las Vegas
  • Bachelor of Arts in Classics with a Focus on Ancient Roman Archaeology, University of Alberta
","subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0002-6405-8565","publications":"
  • Marineo, F. (in press). Exploring theories of motivation and how to weave them into your practice to create more inclusive and equitable instruction. In J. Nichols, M. Mallon, E. Foster, A. Santiago, M. Seale, & R. Brown (Eds.), Exploring Inclusive & Equitable Pedagogies: Creating Space for All Learners. Chicago, IL: Association of College and Research Libraries.
  • Marineo, F., Heinbach, C., & Mitola, R. (2022). Building a culture of collaboration and shared responsibility for educational equity work through an inclusive teaching community of practice. Collaborative Librarianship, 13(1), 62-77, https://digitalcommons.du.edu/collaborativelibrarianship/vol13/iss1/8
  • Marineo, F. (2019). Motivation and online information literacy instruction: A self-determination theory approach (Master’s thesis, University of Nevada, Las Vegas). UNLV Theses, Dissertations, Professional Papers, and Capstones. https://digitalscholarship.unlv.edu/thesesdissertations/3647
  • Marineo, F. & Shi, Q. (2019). Supporting student success in the first-year experience: Library instruction in the learning management system. Journal of Library & Information Services in Distance Learning, 13(1-2), 40-55, doi:10.1080/1533290X.2018.1499235
  • Marineo, F., & Christensen, H. (2017). Modeling ID principles for sustainable instruction and collaboration: Making the library integral to the LMS and campus processes. In B. West, K. D. Hoffman, & M. Costello (Eds.), Creative instructional design: Practical application for libraries (pp. 135-150). Chicago, IL: Association of College and Research Libraries.
"} +{"id":"12460","sectionHandle":"staffMember","title":"Mark Matney","image":[],"to":"mark-matney","nameFirst":"Mark","nameLast":"Matney","alternativeName":[],"jobTitle":"Programmer/Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"he/him","email":"mmatney@library.ucla.edu","phone":"","consultation":null,"topics":[{"title":"The Carpentries","id":"22491"},{"title":"Computer Science at UCLA","id":"22492"},{"title":"Git/Github","id":"23569"},{"title":"IIIF","id":"22494"},{"title":"Linux","id":"12463"},{"title":"Programming (Bash, Java, JavaScript, Python)","id":"22495"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12672","sectionHandle":"staffMember","title":"Devin Mattlin","image":[],"to":"devin-mattlin","nameFirst":"Devin","nameLast":"Mattlin","alternativeName":[],"jobTitle":"Assistant Collections Conservator","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her","email":"dmattlin@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12366","sectionHandle":"staffMember","title":"Tiffany May","image":[],"to":"tiffany-may","nameFirst":"Tiffany","nameLast":"May","alternativeName":[],"jobTitle":"Interlibrary Loan (ILL) Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"mayttiffany@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12247","sectionHandle":"staffMember","title":"Elizabeth McAulay","image":[{"id":"12406","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/mcaulay_2018_april.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/mcaulay_2018_april.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/mcaulay_2018_april.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/mcaulay_2018_april.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/mcaulay_2018_april.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/mcaulay_2018_april.jpeg 2560w","alt":"Lisa McAulay","focalPoint":[0.5,0.5]}],"to":"elizabeth-mcaulay","nameFirst":"Elizabeth","nameLast":"McAulay","alternativeName":[],"jobTitle":"Head, Digital Library Program","departments":[{"id":"6359","title":"Digital Library Program"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she / her / hers","email":"emcaulay@library.ucla.edu","phone":"(310) 825-7657","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Lisa directs product management for the UCLA Digital Library Program, including our main digital collections portal (digital.library.ucla.edu) and our post-custodial collections, the International Digital Ephemera Project, the Frontera Collection of Mexican and Mexican-American Sound Recordings and the Sinai Library Digitization Project. These websites showcase unique and rare cultural heritage materials to enable research, teaching, learning, service and creating expression.

","subjectLibrarian":"no","orcid":"https://orcid.org/+0000-0002-8679-9727","publications":null} +{"id":"23555","sectionHandle":"staffMember","title":"Alexander McGhee","image":[],"to":"alexander-mcghee","nameFirst":"Alexander","nameLast":"McGhee","alternativeName":[],"jobTitle":"Head of Monographic Acquisitions","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"amcghee@library.ucla.edu","phone":"(310) 794-4019","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"23556","sectionHandle":"staffMember","title":"Stacy McKenna","image":[{"id":"29130","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Mckenna_Stacy.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Mckenna_Stacy.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Mckenna_Stacy.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Mckenna_Stacy.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Mckenna_Stacy.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Mckenna_Stacy.jpg 2560w","alt":"Stacy McKenna","focalPoint":[0.5,0.5]}],"to":"stacy-mckenna","nameFirst":"Stacy","nameLast":"McKenna","alternativeName":[],"jobTitle":"Assistant Head of Acquisitions - RAMS","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her","email":"stacymckenna@library.ucla.edu","phone":"(310) 825-0673","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Stacy comes to librarianship after a first career in Civil and Environmental Engineering in the oil industry. Her intervening hiatus from the workforce to be a full time mother included extensive volunteer work with the local beekeeping community, and later the Los Angeles Public Library where she was encouraged to bring her spreadsheet acumen and system analysis skills to bear in the stacks. Out of her respect for the Oxford comma, her many other interests will not be listed here.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12286","sectionHandle":"staffMember","title":"Carlo Medina","image":[{"id":"12612","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Medina_Carlo_06-crop.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Medina_Carlo_06-crop.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Medina_Carlo_06-crop.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Medina_Carlo_06-crop.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Medina_Carlo_06-crop.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Medina_Carlo_06-crop.jpeg 2560w","alt":"Medina_Carlo","focalPoint":[0.5,0.5]}],"to":"carlo-medina","nameFirst":"Carlo","nameLast":"Medina","alternativeName":[],"jobTitle":"Director of Access Services","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"cmedina@library.ucla.edu","phone":"(310) 825-4732","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13912","sectionHandle":"staffMember","title":"Wallace Meek","image":[],"to":"wallace-meek","nameFirst":"Wallace","nameLast":"Meek","alternativeName":[],"jobTitle":"Collections Assistant","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"wmeek@cinema.ucla.edu","phone":"(661) 383-2154","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12846","sectionHandle":"staffMember","title":"Jessica Selma Mentesoglu","image":[{"id":"12847","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/JessicaMentesoglu.jpg","height":2563,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/JessicaMentesoglu.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/JessicaMentesoglu.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/JessicaMentesoglu.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/JessicaMentesoglu.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/JessicaMentesoglu.jpg 2560w","alt":"Jessica Mentesoglu","focalPoint":[0.5,0.5]}],"to":"jessica-selma-mentesoglu","nameFirst":"Jessica Selma","nameLast":"Mentesoglu","alternativeName":[],"jobTitle":"Head, Digital Initiatives & Information Technology Operations and Services","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her/hers","email":"jmentesoglu@library.ucla.edu","phone":"(310) 310-0188","consultation":null,"topics":[{"title":"Instructional Technology","id":"12686"},{"title":"Learning Spaces","id":"12849"},{"title":"CLICC","id":"12850"},{"title":"EDUCAUSE","id":"12851"},{"title":"IT Operations","id":"12852"}],"academicDepartments":[],"biography":"

As\n Head of IT Operations and Services (Digital Initiatives and Information\n Technology) for the UCLA Library, Jessica Mentesoglu leads teams of \ntechnology support and services experts and designs and \nimplements systems and services tailored to the needs of UCLA Library \nstaff, and UCLA faculty, staff and students through Library and CLICC \nservices. These teams include service desk, learning and research \ntechnology, project management, workflow design, reporting and \nlogistics. Her professional experience has been in the field of \ninstructional technology, specifically web development, content and \nproject management. She has developed web sites and assisted in \ncomputer-aided instruction for countless courses and organizations in \nall fields, especially foreign languages. She studied international \nrelations at Georgetown University received a Ph.D. in Near Eastern \nStudies with a concentration in the areas of Turkish and Late-Ottoman \nstudies from Princeton University and taught Turkish at Santa Monica \nCollege. She is proud to be an EDUCAUSE Leading Change Institute (formerly the Frye Institute) Fellow \nclass of 2017.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12679","sectionHandle":"staffMember","title":"Consuela (Chela) Metzger","image":[],"to":"consuela-chela-metzger","nameFirst":"Consuela (Chela)","nameLast":"Metzger","alternativeName":[],"jobTitle":"Head of Preservation & Conservation","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her","email":"cmetzger@library.ucla.edu","phone":"(310) 794-1566","consultation":null,"topics":[{"title":"Book Conservation","id":"12681"},{"title":"Paper Conservation","id":"12682"},{"title":"History of the Book","id":"12683"},{"title":"Bookbinding","id":"12684"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":""} +{"id":"25182","sectionHandle":"staffMember","title":"Caroline R. Miller","image":[],"to":"caroline-r-miller","nameFirst":"Caroline R.","nameLast":"Miller","alternativeName":[],"jobTitle":"Team Leader, Discovery Team","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"crmiller@library.ucla.edu","phone":"(310) 825-4446","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22335","sectionHandle":"staffMember","title":"Rose Miranda","image":[{"id":"22337","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Rose_Miranda.jpg","height":2563,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Rose_Miranda.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Rose_Miranda.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Rose_Miranda.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Rose_Miranda.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Rose_Miranda.jpg 2560w","alt":"Rose Miranda","focalPoint":[0.5,0.5]}],"to":"rose-miranda","nameFirst":"Rose","nameLast":"Miranda","alternativeName":[],"jobTitle":"Development Coordinator","departments":[{"id":"7274","title":"Development"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"rosamirandaa@library.ucla.edu","phone":"(310) 206-8526","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Rose graduated from California State University Long Beach with a bachelor’s in Communication Studies. Prior to joining the UCLA Library Development team, she worked at the Natural History Museum of Los Angeles County, starting as a volunteer in corporate and foundation relations and then becoming a membership sales associate.

\n

As Development Coordinator for the UCLA Library, Rose supports annual fund and donor stewardship endeavors and manages Development events.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12918","sectionHandle":"staffMember","title":"Anju Mitchell","image":[],"to":"anju-mitchell","nameFirst":"Anju","nameLast":"Mitchell","alternativeName":[],"jobTitle":"Database Maintenance Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her","email":"admitchell@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12573","sectionHandle":"staffMember","title":"Diane Mizrachi","image":[{"id":"12574","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Mizrachi_Diane_021-crop_0.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Mizrachi_Diane_021-crop_0.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Mizrachi_Diane_021-crop_0.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Mizrachi_Diane_021-crop_0.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Mizrachi_Diane_021-crop_0.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Mizrachi_Diane_021-crop_0.jpeg 2560w","alt":"Diane Mizrachi","focalPoint":[0.5,0.5]}],"to":"diane-mizrachi","nameFirst":"Diane","nameLast":"Mizrachi","alternativeName":[],"jobTitle":"Jewish & Israel Studies Librarian and Librarian for Social Sciences","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"mizrachi@library.ucla.edu","phone":"(310) 825-6523","consultation":"https://calendar.library.ucla.edu/appointments/diane","topics":[{"title":"Information Literacy","id":"12557"},{"title":"Information Behaviors","id":"12575"},{"title":"Hebrew","id":"12576"},{"title":"Academic Reading Format International Studies (ARFIS)","id":"12577"},{"title":"Jewish/Israeli History and Culture","id":"12578"}],"academicDepartments":[{"id":"12053","title":"Anthropology"},{"id":"12054","title":"Archaeology"},{"id":"12084","title":"Communication"},{"id":"12122","title":"Information Studies"},{"id":"12126","title":"Israel Studies"},{"id":"12129","title":"Jewish Studies"},{"id":"12156","title":"Philosophy"},{"id":"12159","title":"Political Science"},{"id":"12168","title":"Sociology"}],"biography":"

Diane completed her library degree at Bar Ilan University in Israel and began working at UCLA soon after returning to her native Los Angeles. Her research interests and publications focus on undergraduate library and research behaviors, library anxiety and information literacy but ask her about the Academic Reading Format International Study (ARFIS)! That project looks at students' reading format preferences (online and print) and behaviors when engaging with their academic texts.

\n

Come downstairs to the ground floor of YRL and find Diane in the A1540 office suite!

","subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0001-6187-9723","publications":null} +{"id":"13884","sectionHandle":"staffMember","title":"Kara Molitor","image":[],"to":"kara-molitor","nameFirst":"Kara","nameLast":"Molitor","alternativeName":[],"jobTitle":"Research & Account Coordinator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"kmolitor@cinema.ucla.edu","phone":"(661) 383-2075","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12405","sectionHandle":"staffMember","title":"Lisa Monhoff","image":[],"to":"lisa-monhoff","nameFirst":"Lisa","nameLast":"Monhoff","alternativeName":[],"jobTitle":"Michael Kahn Collection of Political Cartoons Project Archivist","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"lisamonhoff@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13898","sectionHandle":"staffMember","title":"Maya Montañez Smukler","image":[],"to":"maya-montañez-smukler","nameFirst":"Maya","nameLast":"Montañez Smukler","alternativeName":[],"jobTitle":"Archive Research and Study Center Officer","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"mmsmukler@cinema.ucla.edu","phone":"(310) 206-5389","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"488","sectionHandle":"staffMember","title":"Parinita Mulak","image":[],"to":"parinita-mulak","nameFirst":"Parinita","nameLast":"Mulak","alternativeName":[],"jobTitle":"Lead Applications Developer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":null,"email":"pghorpade@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Vue","id":"4022"},{"title":"Java","id":"11917"},{"title":"Ruby","id":"11918"},{"title":"Javascript","id":"1292"},{"title":"CSS","id":"23563"},{"title":"Nuxt","id":"23564"},{"title":"Search Solr","id":"23565"},{"title":"Storybook","id":"23566"},{"title":"Cypress","id":"23567"},{"title":"Git/Github","id":"23569"},{"title":"CI/CD","id":"23571"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"25189","sectionHandle":"staffMember","title":"Chris Murphy","image":[],"to":"chris-murphy","nameFirst":"Chris","nameLast":"Murphy","alternativeName":[],"jobTitle":"Licensing and Collection Services Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"he/him","email":"murphyct@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Licensing","id":"25190"},{"title":"Electronic Resource Management","id":"25191"}],"academicDepartments":[],"biography":"

Chris Murphy joined the UCLA Library as the Licensing and Collection Services Specialist in January 2021. As a part of the Licensing and E-resource Acquisition team, he coordinates the licensing of new and existing electronic resources and supports the ongoing e-resource management at the Library.

\n

Prior to joining UCLA, Chris served as a researcher and librarian for Deere & Co. in Moline, IL for nearly five years. He also served as Treasurer of the Illinois Chapter of the Special Libraries Association from 2017-2019.

M.S. Library and Information Science, University of Illinois
B.A. English, University of California Santa Barbara

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24808","sectionHandle":"staffMember","title":"Blake Navarrette","image":[],"to":"blake-navarrette","nameFirst":"Blake","nameLast":"Navarrette","alternativeName":[],"jobTitle":"Automated Acquisitions Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"bnavarre@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12365","sectionHandle":"staffMember","title":"Alice Nguyen","image":[],"to":"alice-nguyen","nameFirst":"Alice","nameLast":"Nguyen","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"alc0215@library.ucla.edu","phone":"(310) 206-1499","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Lost and Found","id":"12368"},{"title":"Reserves","id":"12369"}],"academicDepartments":[],"biography":"

Alice is a 2018 UCLA graduate with a B.S. in Anthropology and a minor in Classical Civilizations. In 2015, she began working in the library as a student employee in the stacks maintenance unit at the Young Research Library (YRL) where she was promoted to service desk and student supervisor. She currently serves as the YRL Nights and Weekends Supervisor.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13904","sectionHandle":"staffMember","title":"Rene Okamura","image":[],"to":"rene-okamura","nameFirst":"Rene","nameLast":"Okamura","alternativeName":[],"jobTitle":"Administrative Coordinator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"rokamura@cinema.ucla.edu","phone":"(661) 383-2079","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13885","sectionHandle":"staffMember","title":"Keith Okamura","image":[],"to":"keith-okamura","nameFirst":"Keith","nameLast":"Okamura","alternativeName":[],"jobTitle":"Driver","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"kgokamura@cinema.ucla.edu","phone":"(661) 383-2100","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12388","sectionHandle":"staffMember","title":"Kathryn Ombao","image":[],"to":"kathryn-ombao","nameFirst":"Kathryn","nameLast":"Ombao","alternativeName":[],"jobTitle":"Processing Supervisor","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"kathrynt@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12552","sectionHandle":"staffMember","title":"Michael R. Oppenheim","image":[],"to":"michael-r-oppenheim","nameFirst":"Michael R.","nameLast":"Oppenheim","alternativeName":[],"jobTitle":"Business Research and Collections Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Eugene and Maxine Rosenfeld Management Library","to":"visit/locations/eugene-and-maxine-rosenfeld-management-library","id":"11560"}],"pronouns":"he/his/him","email":"moppenhe@library.ucla.edu","phone":"(310) 825-0769","consultation":null,"topics":[{"title":"Business Research","id":"12508"},{"title":"Instruction and Collections","id":"12360"}],"academicDepartments":[{"id":"12066","title":"Business and Management"}],"biography":null,"subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0002-2210-2249","publications":null} +{"id":"14906","sectionHandle":"staffMember","title":"Joseph Orellana","image":[],"to":"joseph-orellana","nameFirst":"Joseph","nameLast":"Orellana","alternativeName":[],"jobTitle":"JIRA and Confluence Administrator","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"jorellana@library.ucla.edu","phone":"(310) 794-7705","consultation":null,"topics":[{"title":"JIRA","id":"14907"},{"title":"Confluence","id":"14908"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24289","sectionHandle":"staffMember","title":"Tula Orum","image":[],"to":"tula-orum","nameFirst":"Tula","nameLast":"Orum","alternativeName":[],"jobTitle":"Library Assistant","departments":[{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"tula@library.ucla.edu","phone":"(310) 825-4923","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12407","sectionHandle":"staffMember","title":"Jennifer Osorio","image":[{"id":"12408","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Jennifer_Osorio.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Jennifer_Osorio.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Jennifer_Osorio.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Jennifer_Osorio.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Jennifer_Osorio.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Jennifer_Osorio.jpeg 2560w","alt":"Jennifer Osorio","focalPoint":[0.5,0.5]}],"to":"jennifer-osorio","nameFirst":"Jennifer","nameLast":"Osorio","alternativeName":[],"jobTitle":"Director of Library Special Collections","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"josoriok@library.ucla.edu","phone":"(310) 825-5526","consultation":null,"topics":[],"academicDepartments":[{"id":"12050","title":"African American Studies"},{"id":"12052","title":"American Indian Studies"},{"id":"12060","title":"Asian American Studies"},{"id":"12068","title":"Central American Studies"},{"id":"12071","title":"Chicana and Chicano Studies"},{"id":"12131","title":"Latin American Studies"},{"id":"12171","title":"Spanish and Portuguese"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12965","sectionHandle":"staffMember","title":"Antonia Osuna-Garcia","image":[{"id":"23314","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Osuna-Garcia_Antonia.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Osuna-Garcia_Antonia.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Osuna-Garcia_Antonia.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Osuna-Garcia_Antonia.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Osuna-Garcia_Antonia.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Osuna-Garcia_Antonia.jpg 2560w","alt":"Osuna Garcia Antonia","focalPoint":[0.5,0.5]}],"to":"antonia-osuna-garcia","nameFirst":"Antonia","nameLast":"Osuna-Garcia","alternativeName":[],"jobTitle":"Health & Life Sciences Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"}],"pronouns":"she/her/hers","email":"aogarcia@library.ucla.edu","phone":"(310) 794-1907","consultation":"http://calendar.library.ucla.edu/appointment/34863","topics":[{"title":"Citation Management","id":"9430"},{"title":"EndNote","id":"12709"},{"title":"Instruction","id":"12554"},{"title":"Search Strategies/Literature Design","id":"12968"},{"title":"Systematic Reviews","id":"12969"}],"academicDepartments":[{"id":"12153","title":"Nursing"}],"biography":null,"subjectLibrarian":"yes","orcid":"https://orcid.org/0000-0002-6825-8580","publications":null} +{"id":"12731","sectionHandle":"staffMember","title":"Sylvia Page","image":[{"id":"12732","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Sylvia-Page.jpeg","height":2438,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Sylvia-Page.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Sylvia-Page.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Sylvia-Page.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Sylvia-Page.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Sylvia-Page.jpeg 2560w","alt":"Sylvia Page","focalPoint":[0.48,0.1853]}],"to":"sylvia-page","nameFirst":"Sylvia","nameLast":"Page","alternativeName":[],"jobTitle":"Research and Instruction Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her/hers","email":"srpage@library.ucla.edu","phone":"(310) 825-2230","consultation":"https://calendar.library.ucla.edu/appointments/page","topics":[{"title":"Zines","id":"11858"},{"title":"Comics/Graphic Novels","id":"11859"}],"academicDepartments":[{"id":"12079","title":"Cluster 60: America in Sixties: Politics, Society, and Culture, 1954 to 1974"},{"id":"12099","title":"English Composition"}],"biography":"

Sylvia Page works to support the research needs of the UCLA community through reference, instruction, outreach and collections. Her experience prior to UCLA includes work in academic libraries, museums and galleries.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"29582","sectionHandle":"staffMember","title":"Dan Palodichuk","image":[{"id":"29583","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Palodichuk.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Palodichuk.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Palodichuk.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Palodichuk.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Palodichuk.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Palodichuk.jpg 2560w","alt":"Dan Palodichuk","focalPoint":[0.5,0.5]}],"to":"dan-palodichuk","nameFirst":"Dan","nameLast":"Palodichuk","alternativeName":[],"jobTitle":"Serials Acquisitions Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"He, Him, His","email":"dpalodic@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12409","sectionHandle":"staffMember","title":"Shira Peltzman","image":[{"id":"12410","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Peltzman_Shira.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Peltzman_Shira.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Peltzman_Shira.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Peltzman_Shira.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Peltzman_Shira.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Peltzman_Shira.jpeg 2560w","alt":"Peltzman Shira","focalPoint":[0.5,0.5]}],"to":"shira-peltzman","nameFirst":"Shira","nameLast":"Peltzman","alternativeName":[],"jobTitle":"Digital Archivist","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"speltzman@library.ucla.edu","phone":"(310) 825-4784","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12916","sectionHandle":"staffMember","title":"Melina Dueñas Perez","image":[],"to":"melina-dueñas-perez","nameFirst":"Melina Dueñas","nameLast":"Perez","alternativeName":[],"jobTitle":"Library Analyst","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"},{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"mduenas@library.ucla.edu","phone":"(310) 825-5781","consultation":null,"topics":[{"title":"Contracts and Grants","id":"14346"},{"title":"Purchasing","id":"14347"},{"title":"Facilities","id":"12296"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12811","sectionHandle":"staffMember","title":"Cynthia Perez-Huerta","image":[],"to":"cynthia-perez-huerta","nameFirst":"Cynthia","nameLast":"Perez-Huerta","alternativeName":[],"jobTitle":"Processing Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"cperez1127@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12315","sectionHandle":"staffMember","title":"Andrew Perrine","image":[],"to":"andrew-perrine","nameFirst":"Andrew","nameLast":"Perrine","alternativeName":[],"jobTitle":"Digital Imaging Specialist","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":"They/Them","email":"aperrine@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12246","sectionHandle":"staffMember","title":"Dana Peterman","image":[],"to":"dana-peterman","nameFirst":"Dana","nameLast":"Peterman","alternativeName":[],"jobTitle":"Digital and Distinctive Product Manager","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":"he/him/his","email":"dpeterma@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Assessment","id":"12418"},{"title":"Strategic Planning","id":"12470"},{"title":"Analytics","id":"12420"},{"title":"Digital and Distinctive Library Content and Collections","id":"12471"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/+0000-0001-8449-8958","publications":null} +{"id":"12636","sectionHandle":"staffMember","title":"Ashley Peterson","image":[{"id":"12637","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Ashley-Peterson.png","height":2417,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Ashley-Peterson.png 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Ashley-Peterson.png 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Ashley-Peterson.png 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Ashley-Peterson.png 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Ashley-Peterson.png 2560w","alt":"Ashley Peterson","focalPoint":[0.5677,0.7448]}],"to":"ashley-peterson","nameFirst":"Ashley","nameLast":"Peterson","alternativeName":[],"jobTitle":"Research & Instruction Librarian, Media and Data Literacy","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"ashleypeterson@library.ucla.edu","phone":"(310) 206-1409","consultation":"https://calendar.library.ucla.edu/appointments/ashleypeterson","topics":[{"title":"Digital Scholarship","id":"12638"},{"title":"Digital Humanities","id":"12639"},{"title":"Research Process","id":"12640"},{"title":"Recent Fiction","id":"12641"},{"title":"Cookbooks","id":"12642"},{"title":"Media, Data and Visual Literacy","id":"12764"}],"academicDepartments":[{"id":"12083","title":"Cluster M1: Food: Lens for Environment and Sustainability"},{"id":"12091","title":"Digital Humanities"}],"biography":"

Ashley supports research, exploration and knowledge creation. She is especially passionate about alternative modes of scholarship (digital, artistic, performative) and removing barriers to accessing information.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"22873","sectionHandle":"staffMember","title":"Leigh Phan","image":[{"id":"22874","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/LeighPhan.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/LeighPhan.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/LeighPhan.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/LeighPhan.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/LeighPhan.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/LeighPhan.jpg 2560w","alt":"Leigh Phan","focalPoint":[0.5,0.5]}],"to":"leigh-phan","nameFirst":"Leigh","nameLast":"Phan","alternativeName":[],"jobTitle":"Data Science Facilitator","departments":[{"id":"7254","title":"Data Science Center"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"leighphan@library.ucla.edu","phone":"(310) 206-9780","consultation":"https://calendly.com/leighphan","topics":[{"title":"Data Analysis","id":"22876"},{"title":"Text Analysis","id":"12483"},{"title":"Web Scraping","id":"22877"},{"title":"Python","id":"12462"},{"title":"RDA","id":"22114"},{"title":"Application Programming Interfaces (API)","id":"22878"},{"title":"Carpentries","id":"12803"},{"title":"Geographic Information Systems (GIS)","id":"14915"},{"title":"Geospatial Analysis","id":"14914"},{"title":"Environmental Research","id":"22881"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/+0000-0002-8605-1444","publications":"

Leigh Phan, Stephanie Labou, Ibraheem Ali, & Erin Foster. (2021, August 27). Ethical Considerations in Data. Zenodo. https://doi.org/10.5281/zenodo...

\n


"} +{"id":"38620","sectionHandle":"staffMember","title":"Harold Pichol","image":[],"to":"harold-pichol","nameFirst":"Harold","nameLast":"Pichol","alternativeName":[],"jobTitle":"Service Desk Technician","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"},{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"haroldpichol@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12768","sectionHandle":"staffMember","title":"David S. Poepoe","image":[{"id":"12769","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Poepoe_David.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Poepoe_David.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Poepoe_David.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Poepoe_David.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Poepoe_David.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Poepoe_David.jpeg 2560w","alt":"Poepoe David","focalPoint":[0.5,0.5]}],"to":"david-poepoe","nameFirst":"David S.","nameLast":"Poepoe","alternativeName":[],"jobTitle":"Interlibrary Loan Lending Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"dpoepoe@library.ucla.edu","phone":"(310) 825-1124","consultation":null,"topics":[{"title":"Interlibrary Loan (ILL) Lending","id":"12288"},{"title":"VDX","id":"12291"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13889","sectionHandle":"staffMember","title":"Lauren Poleski-Schultz","image":[],"to":"lauren-poleski-schultz","nameFirst":"Lauren","nameLast":"Poleski-Schultz","alternativeName":[],"jobTitle":"Production Coordinator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"lpoleskischultz@cinema.ucla.edu","phone":"(661) 383-2078","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13874","sectionHandle":"staffMember","title":"Dana Poss","image":[],"to":"dana-poss","nameFirst":"Dana","nameLast":"Poss","alternativeName":[],"jobTitle":"Collections Assistant","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"dposs@cinema.ucla.edu","phone":"(661) 383-2152","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"15246","sectionHandle":"staffMember","title":"Joanne Powers","image":[{"id":"22799","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Joanne-Powers.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Joanne-Powers.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Joanne-Powers.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Joanne-Powers.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Joanne-Powers.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Joanne-Powers.jpg 2560w","alt":"Joanne Powers","focalPoint":[0.5,0.5]}],"to":"joanne-powers","nameFirst":"Joanne","nameLast":"Powers","alternativeName":[],"jobTitle":"Applications and Virtual Systems Administrator","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"joannepowers@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24815","sectionHandle":"staffMember","title":"Paul Priebe","image":[],"to":"paul-priebe","nameFirst":"Paul","nameLast":"Priebe","alternativeName":[],"jobTitle":"Names/Uniform Titles Authorities Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"he/his/him","email":"ppriebe@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Personal Name Authorities","id":"24816"},{"title":"Corporate Name Authorities","id":"24817"},{"title":"Conference Name Authorities","id":"24818"},{"title":"Series Authorities","id":"24819"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"483","sectionHandle":"staffMember","title":"Ashton Prigge","image":[],"to":"ashton-prigge","nameFirst":"Ashton","nameLast":"Prigge","alternativeName":[],"jobTitle":"Software Developer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"she/her/hers","email":"aprigge@library.ucla.edu","phone":"","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12393","sectionHandle":"staffMember","title":"Marijah Pruitt","image":[],"to":"marijah-pruitt","nameFirst":"Marijah","nameLast":"Pruitt","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"marijahpruitt@library.ucla.edu","phone":"(310) 206-5768","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Stacks Maintenance","id":"12285"},{"title":"Lockers","id":"12395"},{"title":"Reprographics","id":"12396"}],"academicDepartments":[],"biography":"

Marijah is a 2021 UCLA graduate with a B.A. in Communications and a double minor in African American Studies and Entrepreneurship. In 2018, she began working in the library as a student employee in the Interlibrary Loans unit. After graduating she transitioned to the Access Services department, and she currently serves as a Stacks Maintenance Supervisor at the Young Research Library (YRL).

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12873","sectionHandle":"staffMember","title":"Tori Puente","image":[{"id":"12874","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Puente_Tori_cropped.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Puente_Tori_cropped.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Puente_Tori_cropped.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Puente_Tori_cropped.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Puente_Tori_cropped.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Puente_Tori_cropped.jpg 2560w","alt":"Tori Puente","focalPoint":[0.5,0.5]}],"to":"tori-puente","nameFirst":"Tori","nameLast":"Puente","alternativeName":[],"jobTitle":"Administrative Officer","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"tpuente@library.ucla.edu","phone":"(310) 206-9762","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13892","sectionHandle":"staffMember","title":"Mark Quigley","image":[{"id":"13893","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/mark-quigley-profle.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/mark-quigley-profle.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/mark-quigley-profle.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/mark-quigley-profle.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/mark-quigley-profle.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/mark-quigley-profle.jpg 2560w","alt":"Mark quigley profle","focalPoint":[0.5,0.5]}],"to":"mark-quigley","nameFirst":"Mark","nameLast":"Quigley","alternativeName":[],"jobTitle":"John H. Mitchell Television Curator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"mquigley@cinema.ucla.edu","phone":"(661) 383-2083","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"25248","sectionHandle":"staffMember","title":"Pardis Rahimi","image":[],"to":"pardis-rahimi","nameFirst":"Pardis","nameLast":"Rahimi","alternativeName":[],"jobTitle":"Serials and Monographs Processing Assistant","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"he/him","email":"pardisr@library.ucla.edu","phone":"(310) 825-7342","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12413","sectionHandle":"staffMember","title":"Lizeth Ramirez","image":[],"to":"lizeth-ramirez","nameFirst":"Lizeth","nameLast":"Ramirez","alternativeName":[],"jobTitle":"Librarian/Archivist for Los Angeles Communities and Cultures | Bibliotecaria/Archivista para Comunidades y Culturas de Los Ángeles","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"ramirezlr@library.ucla.edu","phone":"(310) 206-5275","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12870","sectionHandle":"staffMember","title":"Gregory Ramsey","image":[],"to":"gregory-ramsey","nameFirst":"Gregory","nameLast":"Ramsey","alternativeName":[],"jobTitle":"Programmer Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"gramsey@library.ucla.edu","phone":"(310) 206-4878","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13880","sectionHandle":"staffMember","title":"Jennifer Rhee","image":[],"to":"jennifer-rhee","nameFirst":"Jennifer","nameLast":"Rhee","alternativeName":[],"jobTitle":"Digital Content Manager","departments":[{"id":"7272","title":"Strategic Communications and Marketing"},{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"jenmrhee@cinema.ucla.edu","phone":"(310) 267-5429","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12384","sectionHandle":"staffMember","title":"Megan Richardson","image":[],"to":"megan-richardson","nameFirst":"Megan","nameLast":"Richardson","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her/hers","email":"mrichardson@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Reserves","id":"12369"},{"title":"Stacks Maintenance","id":"12285"},{"title":"Missing/Lost Books","id":"15417"},{"title":"Book Fines and Fees","id":"15418"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12468","sectionHandle":"staffMember","title":"David T. Rickard","image":[],"to":"david-t-rickard","nameFirst":"David T.","nameLast":"Rickard","alternativeName":[],"jobTitle":"Programmer Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":null,"email":"drickard1967@library.ucla.edu","phone":"(310) 206-9780","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22882","sectionHandle":"staffMember","title":"John Riemer","image":[{"id":"23588","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Riemer_John_01-crop-John-Riemer.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Riemer_John_01-crop-John-Riemer.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Riemer_John_01-crop-John-Riemer.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Riemer_John_01-crop-John-Riemer.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Riemer_John_01-crop-John-Riemer.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Riemer_John_01-crop-John-Riemer.jpg 2560w","alt":"Riemer John","focalPoint":[0.5,0.5]}],"to":"john-riemer","nameFirst":"John","nameLast":"Riemer","alternativeName":[],"jobTitle":"Head, Resource Acquisitions & Metadata Services","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"jriemer@library.ucla.edu","phone":"(310) 825-2901","consultation":null,"topics":[{"title":"Acquisitions","id":"12692"},{"title":"Cataloging","id":"22332"},{"title":"Metadata","id":"12665"}],"academicDepartments":[],"biography":"

Currently Head of UCLA Library Resource Acquisitions & Metadata Services, John Riemer previously worked as Digital Cataloging Coordinator for the Digital Library of Georgia. He holds an MLS degree and a BA degree in Linguistics from UCLA.

Since 2009, he has served in a number of capacities on the Program for Cooperative Cataloging, including PCC Chair in 2010/2011. During this time he has led an effort to expand the PCC’s scope to include both traditional MARC cataloging and digital library project metadata/new metadata roles. Most recently he has chaired the PCC Task Group on Identity Management in NACO.

He represents UCLA on and has previously chaired ALA’s Core Technical Services Managers in Academic Libraries Interest Group (“Big Heads”). He is a member of the OCLC Research Library Partners Metadata Managers Focus Group, a member of the Cataloging & Classification Quarterly Editorial Board and writes guest columns for Technicalities.

","subjectLibrarian":"no","orcid":"https://orcid.org/0000-0001-5202-3704","publications":null} +{"id":"24290","sectionHandle":"staffMember","title":"Gissel Rios","image":[],"to":"gissel-rios","nameFirst":"Gissel","nameLast":"Rios","alternativeName":[],"jobTitle":"Selection and Outreach Support Assistant","departments":[{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"gisselrios@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"25247","sectionHandle":"staffMember","title":"Raquel Rivero","image":[],"to":"raquel-rivero","nameFirst":"Raquel","nameLast":"Rivero","alternativeName":[],"jobTitle":"E-Resource Acquisitions & Collection Services Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"rrivero@library.ucla.edu","phone":"(310) 794-6885","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22833","sectionHandle":"staffMember","title":"John Robertson","image":[],"to":"john-robertson","nameFirst":"John","nameLast":"Robertson","alternativeName":[],"jobTitle":"Programmer Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":null,"email":"jhriv@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12467","sectionHandle":"staffMember","title":"John H. Robinson, IV","image":[],"to":"john-h-robinson-iv","nameFirst":"John H.","nameLast":"Robinson, IV","alternativeName":[],"jobTitle":"Programmer Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":null,"email":"jhriv@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12278","sectionHandle":"staffMember","title":"Elizabeth Rodriguez","image":[{"id":"12766","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Rodriguez_Elizabeth_001.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Rodriguez_Elizabeth_001.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Rodriguez_Elizabeth_001.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Rodriguez_Elizabeth_001.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Rodriguez_Elizabeth_001.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Rodriguez_Elizabeth_001.jpeg 2560w","alt":"Rodriguez Elizabeth","focalPoint":[0.5,0.5]}],"to":"elizabeth-rodriguez","nameFirst":"Elizabeth","nameLast":"Rodriguez","alternativeName":[],"jobTitle":"Access Services Manager","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"},{"title":"Eugene and Maxine Rosenfeld Management Library","to":"visit/locations/eugene-and-maxine-rosenfeld-management-library","id":"11560"}],"pronouns":null,"email":"erodriguez@library.ucla.edu","phone":"310-206-1892","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Borrowing Privileges","id":"12280"},{"title":"Library Card Programs","id":"12281"},{"title":"Billing","id":"12282"},{"title":"Security","id":"12283"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12896","sectionHandle":"staffMember","title":"Renee Romero","image":[{"id":"12897","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Romero_Renee_09_cropped.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Romero_Renee_09_cropped.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Romero_Renee_09_cropped.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Romero_Renee_09_cropped.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Romero_Renee_09_cropped.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Romero_Renee_09_cropped.jpeg 2560w","alt":"Romero Renee","focalPoint":[0.5,0.5]}],"to":"renee-romero","nameFirst":"Renee","nameLast":"Romero","alternativeName":[],"jobTitle":"Science Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Science and Engineering Library","to":"visit/locations/science-engineering-library","id":"11579"}],"pronouns":null,"email":"rromerorr@library.ucla.edu","phone":"(310) 825-3398","consultation":"https://calendar.library.ucla.edu/appointments/renee","topics":[{"title":"Instruction and Collections","id":"12360"},{"title":"Citation Management","id":"9430"},{"title":"Search Strategies","id":"12513"},{"title":"Science Outreach and Engagement","id":"12908"},{"title":"Research Consultations","id":"12511"}],"academicDepartments":[{"id":"12076","title":"Cluster 20: Interracial Dynamics in American Culture and Society"},{"id":"12094","title":"Ecology and Evolutionary Biology"},{"id":"12123","title":"Integrative Biology and Physiology"},{"id":"12133","title":"Life Sciences"},{"id":"12143","title":"Microbiology, Immunology, and Molecular Genetics"},{"id":"12145","title":"Molecular, Cell, and Developmental Biology"},{"id":"12151","title":"Neuroscience"},{"id":"12161","title":"Psychology"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12242","sectionHandle":"staffMember","title":"Megan Rosenbloom","image":[{"id":"12804","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Megan-Rosenbloom.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Megan-Rosenbloom.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Megan-Rosenbloom.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Megan-Rosenbloom.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Megan-Rosenbloom.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Megan-Rosenbloom.jpg 2560w","alt":"Megan Rosenbloom","focalPoint":[0.5,0.5]}],"to":"megan-rosenbloom","nameFirst":"Megan","nameLast":"Rosenbloom","alternativeName":[],"jobTitle":"Collection Strategies Librarian","departments":[{"id":"7242","title":"Collection Management and Scholarly Communication"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her","email":"meganrosenbloom@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

Megan Curran Rosenbloom is Collection Strategies Librarian at UCLA Library in Los Angeles. Megan served as a medical librarian for many years, where she developed a keen interest in collections management, history of medicine and rare books.

\n\n

Her bestselling debut book about the historical practice of anthropodermic bibliopegy (binding books in human skin), titled Dark Archives: A Librarian’s Investigation into the Science and History of Books Bound in Human Skin, was a New York Times Editors Choice, won the 2021 LAMPHHS Best Monograph Award and has been published in four languages so far. In a former life she was a journalist in Philadelphia and continues to write for both academic and non-academic publications.

","subjectLibrarian":"no","orcid":"http://orcid.org/0000-0001-7839-7712","publications":"
  • Thompson AM, Thompson HJ, Jones M, Rosenbloom MC. One Website to Rule them All: Lessons Learned from a Series of Reorganizations, Integrations, and Creation of One University Libraries’ Website from Three. Jrnl Elec Res Med Libr. 2021 Dec 14.
  • Rosenbloom MC. The Books are Alive with Biological Data: An Introduction to the Field of
    Biocodicology and its Implications for Historical Health Sciences Collections. Journal of the Medical Library Association. 2021 Apr; 109(2): 314–317. PMCID: PMC8270372 PMC: 7069826 DOI: 10.5195/jmla.2021.1080
  • Rosenbloom MC. Dark Archives: A Librarian’s Investigation into the Science and History of Books Bound in Human Skin. New York: Farrar, Straus & Giroux, 2020.
"} +{"id":"12295","sectionHandle":"staffMember","title":"Tom D. Rosholt","image":[],"to":"tom-rosholt","nameFirst":"Tom D.","nameLast":"Rosholt","alternativeName":[],"jobTitle":"Library Building Officer","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"trosholt@library.ucla.edu","phone":"(310) 206-6762","consultation":null,"topics":[{"title":"Facilities","id":"12296"},{"title":"Security","id":"12283"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12757","sectionHandle":"staffMember","title":"Monalisa Ruiz","image":[{"id":"12758","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Ruiz_Monalisa_cropped_2022-04-11-224254_hydu.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Ruiz_Monalisa_cropped_2022-04-11-224254_hydu.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Ruiz_Monalisa_cropped_2022-04-11-224254_hydu.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Ruiz_Monalisa_cropped_2022-04-11-224254_hydu.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Ruiz_Monalisa_cropped_2022-04-11-224254_hydu.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Ruiz_Monalisa_cropped_2022-04-11-224254_hydu.jpeg 2560w","alt":"Ruiz Monalisa","focalPoint":[0.5,0.5]}],"to":"monalisa-ruiz","nameFirst":"Monalisa","nameLast":"Ruiz","alternativeName":[],"jobTitle":"Access Services Lead","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"}],"pronouns":null,"email":"msanchez@library.ucla.edu","phone":"(310) 825-1384","consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Billing","id":"12282"},{"title":"Security","id":"12283"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12385","sectionHandle":"staffMember","title":"Kristin Russo","image":[],"to":"kristin-russo","nameFirst":"Kristin","nameLast":"Russo","alternativeName":[],"jobTitle":"Processing Assistant","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"kwnek@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12243","sectionHandle":"staffMember","title":"Geno Sanchez","image":[],"to":"geno-sanchez","nameFirst":"Geno","nameLast":"Sanchez","alternativeName":[],"jobTitle":"Digital Assets Coordinator","departments":[{"id":"6359","title":"Digital Library Program"}],"locations":[],"pronouns":null,"email":"genosanchez@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12241","sectionHandle":"staffMember","title":"Lilia Sandoval","image":[],"to":"lilia-sandoval","nameFirst":"Lilia","nameLast":"Sandoval","alternativeName":[],"jobTitle":"Assistant Director, Academic Human Resources","departments":[{"id":"7276","title":"Human Resources"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her","email":"liliasandoval@library.ucla.edu","phone":"(310) 825-7095","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12239","sectionHandle":"staffMember","title":"T-Kay Sangwand","image":[{"id":"12426","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Sangwand_T-Kay_009-crop.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Sangwand_T-Kay_009-crop.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Sangwand_T-Kay_009-crop.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Sangwand_T-Kay_009-crop.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Sangwand_T-Kay_009-crop.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Sangwand_T-Kay_009-crop.jpeg 2560w","alt":"Sangwand T Kay","focalPoint":[0.5,0.5]}],"to":"t-kay-sangwand","nameFirst":"T-Kay","nameLast":"Sangwand","alternativeName":[],"jobTitle":"Librarian for Digital Collection Development","departments":[{"id":"6359","title":"Digital Library Program"}],"locations":[],"pronouns":"she/ella/ela","email":"tksangwand@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

T-Kay Sangwand is the Librarian for Digital Collection Development at UCLA Digital Library Program where she manages the Library’s cultural heritage collaborations in Cuba, serves as the digital project manager for the UCLA Center for Oral History Research and the Strachwitz Frontera Collection of Mexican and Mexican American Recordings and provides technical and subject expertise for the Modern Endangered Archives Program. She is a Certified Archivist and Fulbright Specialist and Scholar who has worked extensively on preservation partnerships with cultural heritage organizations in the US, Latin America, Asia and Africa.

","subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-0679-2614","publications":null} +{"id":"12306","sectionHandle":"staffMember","title":"Dave Scholl","image":[],"to":"dave-scholl","nameFirst":"Dave","nameLast":"Scholl","alternativeName":[],"jobTitle":"Information Technology & Web Development Manager","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"dscholl@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22258","sectionHandle":"staffMember","title":"Lars R. Schumacher","image":[],"to":"lars-r-schumacher","nameFirst":"Lars R.","nameLast":"Schumacher","alternativeName":[],"jobTitle":"Library Assistant","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"lschumacher@library.ucla.edu","phone":"(310) 206-5874","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12842","sectionHandle":"staffMember","title":"Alison Scott","image":[{"id":"12843","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Scott_Alison_011.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Scott_Alison_011.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Scott_Alison_011.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Scott_Alison_011.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Scott_Alison_011.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Scott_Alison_011.jpg 2560w","alt":"Scott Alison 011","focalPoint":[0.5,0.5]}],"to":"alison-scott","nameFirst":"Alison","nameLast":"Scott","alternativeName":[],"jobTitle":"Associate University Librarian for Collection Management & Scholarly Communication","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"alisonms@library.ucla.edu","phone":"(310) 825-1201","consultation":null,"topics":[{"title":"Collection Development","id":"12729"},{"title":"Open Access","id":"12220"},{"title":"Transformative Agreements","id":"14324"},{"title":"History of the Book","id":"12683"},{"title":"Scholarly Publishing","id":"12226"}],"academicDepartments":[],"biography":"

Alison Scott came to UCLA in 2017 from UC Riverside, where she was associate university librarian for collections and scholarly communication. Prior to her work at UCR, Scott served as head of collection development at George Washington University and in a variety of collection development and curatorial roles at academic libraries in New York, Ohio and Massachusetts. She earned her bachelor’s degree from Whitman College and graduate degrees from the University of Chicago and Boston University.

","subjectLibrarian":"no","orcid":"http://orcid.org/0000-0002-7006-7951","publications":"
  • “Article Processing Charges Threaten Academic Libraries: A Librarian's Opinion,” Journal of Scholarly Publishing, January 2018
  • “The Hidden Agenda of The Hidden Hand: Periodical Publication and the Literary Marketplace in late- nineteenth-century America,” with Amy M. Thomas, in E.D.E.N. Southworth: Recovering a Nineteenth-Century Popular Novelist, 2013
  • “Le pouvoir des romans-feuilletons en Amérique au XIXe siècle,” with Amy M. Thomas, in Au bonheur du feuilleton: naissance et mutations d’un genre (Etats-Unis, France, Grande-Bretagne, XVIIIe-XXe siècle), 2007
  • “'This Cultivated Mind': Reading and Identity in a Nineteenth-Century Reader,” in Reading Acts: U.S. Readers’ Interactions with Literature, 1800-1950, 2002
  • “Romance in the Stacks; or, Popular Romance Fiction Imperiled,” in Scorned Literature: Essays on the History and Criticism of Popular Mass-Produced Fiction in America, 2002
  • “Organizing the Brain Attic: Indexing the Commonplace Books of Sherlock Holmes,” The Baker Street Journal: An Irregular Quarterly of Sherlockiana, December 1994
  • “'Tantalising Fragments': The Proofs of Virginia Woolf's Orlando,” Papers of the Bibliographical Society of America, September 1994
"} +{"id":"12867","sectionHandle":"staffMember","title":"Beverly Scott","image":[{"id":"12868","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Scott_Beverly_cropped.jpg","height":2563,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Scott_Beverly_cropped.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Scott_Beverly_cropped.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Scott_Beverly_cropped.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Scott_Beverly_cropped.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Scott_Beverly_cropped.jpg 2560w","alt":"Scott Beverly cropped","focalPoint":[0.5,0.5]}],"to":"beverly-scott","nameFirst":"Beverly","nameLast":"Scott","alternativeName":[],"jobTitle":"Communication & Network Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her/hers","email":"bscott@library.ucla.edu","phone":"","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12209","sectionHandle":"staffMember","title":"Sharon Shafer","image":[],"to":"sharon-shafer","nameFirst":"Sharon","nameLast":"Shafer","alternativeName":[],"jobTitle":"Head of Search & Assessment","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"6359","title":"Digital Library Program"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"sshafer@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"UCLA Library Data Lake","id":"12417"},{"title":"Assessment","id":"12418"},{"title":"SEO","id":"12419"},{"title":"Analytics","id":"12420"},{"title":"Configuring UCLA UC Library Search","id":"12421"},{"title":"GTM","id":"12422"},{"title":"Google Data Studio","id":"12423"},{"title":"Library Digital Collections","id":"12425"}],"academicDepartments":[],"biography":"

Sharon is primarily responsible for the development and implementation of a data analysis and reporting strategy for UCLA Library. She promotes the use of metrics and information to evaluate critical factors for the success of the Library. Sharon ensures visibility, usability and functionality of UCLA Library resources in a needs-responsive environment.

","subjectLibrarian":"no","orcid":"https://orcid.org/my-orcid?orcid=0000-0002-7883-6196","publications":null} +{"id":"13900","sectionHandle":"staffMember","title":"Miki Shannon","image":[{"id":"13901","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/miki-shannon-profile.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/miki-shannon-profile.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/miki-shannon-profile.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/miki-shannon-profile.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/miki-shannon-profile.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/miki-shannon-profile.jpg 2560w","alt":"Miki shannon profile","focalPoint":[0.5,0.5]}],"to":"miki-shannon","nameFirst":"Miki","nameLast":"Shannon","alternativeName":[],"jobTitle":"Film Preservationist","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"mshannon@cinema.ucla.edu","phone":"(661) 383-2093","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"48016","sectionHandle":"staffMember","title":"Anthony Sharp","image":[],"to":"anthony-sharp","nameFirst":"Anthony","nameLast":"Sharp","alternativeName":[],"jobTitle":"Music Metadata Specialist","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"asharp@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13879","sectionHandle":"staffMember","title":"James Smith","image":[],"to":"james-smith","nameFirst":"James","nameLast":"Smith","alternativeName":[],"jobTitle":"Senior Studio Projectionist","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[],"pronouns":null,"email":"jsmith@tft.ucla.edu","phone":"(310) 443-7019","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12869","sectionHandle":"staffMember","title":"Edson Smith","image":[{"id":"15441","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Photo_of_Edson_Smith_small.jpg","height":1920,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Photo_of_Edson_Smith_small.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Photo_of_Edson_Smith_small.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Photo_of_Edson_Smith_small.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Photo_of_Edson_Smith_small.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Photo_of_Edson_Smith_small.jpg 2560w","alt":"Edson Smith","focalPoint":[0.5,0.5]}],"to":"edson-smith","nameFirst":"Edson","nameLast":"Smith","alternativeName":[],"jobTitle":"Manager, Core Computing Operations","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"edson@library.ucla.edu","phone":"(310) 825-8861","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Edson\n Smith is a grizzled veteran of the IT industry. He currently manages \nDIIT’s Core Computing Operations team, which focuses on systems, mass \nstorage, networking and security. Additionally, in support of the \nLibrary’s dual missions of data access and preservation, he works on \nbuilding cutting-edge systems for long-term digital preservation.

\n

Prior\n to coming to the Library, Edson managed the Systems group for UCLA’s \nHoffman2 Supercomputer. In the past, he’s worked for the several UCLA \ndepartments: Mathematics, Space Sciences, Academic Computing and \nAcademic Technology. He also did stints with RAND in Santa Monica, CA,\n and with Jet Propulsion Laboratories in Pasadena, CA, where he was in \nthe Space Flight Operations Center. He is a member in good standing of\n the League of Professional System Administrators (LOPSA) and the \nUSENIX Association.

\n

Edson\n is the former World Record holder (2008-2013) for leading the team that discovered the \nlargest explicitly known prime number, 2^43112609-1. On behalf of UCLA \nand the GIMPS distributed computing project, he collected an award of \n$100,000 for this discovery.

\n

Edson\n is a graduate of UCLA (BA, History), and lives in Los Angeles with his \nwife and three children. In his spare time he enjoys playing the tuba, \neuphonium and bass and actively pursues interests in history, \ngenealogy, GPS-based gaming and zymurgy.

","subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-1749-433X","publications":null} +{"id":"12314","sectionHandle":"staffMember","title":"Matthew Smith","image":[],"to":"matthew-smith","nameFirst":"Matthew","nameLast":"Smith","alternativeName":[],"jobTitle":"IT Operations Support & Deposit Manager","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":"he/him/his","email":"masmith@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[{"title":"Deposits","id":"12319"},{"title":"Transportation","id":"12320"},{"title":"Pickups","id":"12321"},{"title":"Web Development","id":"13025"}],"academicDepartments":[],"biography":"

SRLF Deposits

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12387","sectionHandle":"staffMember","title":"Brice Smither","image":[],"to":"brice-smither","nameFirst":"Brice","nameLast":"Smither","alternativeName":[],"jobTitle":"Access Services Assistant","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"brice.smither@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Circulation","id":"12279"},{"title":"Reserves","id":"12369"},{"title":"Missing/Lost Books","id":"15417"},{"title":"Book Fines and Fees","id":"15418"},{"title":"Stacks Maintenance","id":"12285"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12970","sectionHandle":"staffMember","title":"Alexandra Solodkaya","image":[{"id":"12971","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Solodkaya_Alex_01-crop.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Solodkaya_Alex_01-crop.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Solodkaya_Alex_01-crop.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Solodkaya_Alex_01-crop.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Solodkaya_Alex_01-crop.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Solodkaya_Alex_01-crop.jpg 2560w","alt":"Solodkaya Alex 01 crop","focalPoint":[0.5,0.5]}],"to":"alexandra-solodkaya","nameFirst":"Alexandra","nameLast":"Solodkaya","alternativeName":[],"jobTitle":"Rothman Family Food Studies Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"}],"pronouns":"She/Her/Hers","email":"asolodkaya@library.ucla.edu","phone":"(310) 794-2030","consultation":"https://calendar.library.ucla.edu/appointments/asolodkaya","topics":[{"title":"Research Topics","id":"12727"},{"title":"Finding Sources","id":"12728"},{"title":"Information Literacy","id":"12557"},{"title":"Zotero","id":"12635"},{"title":"Public Health","id":"32781"}],"academicDepartments":[{"id":"12064","title":"Biostatistics"},{"id":"12086","title":"Community Health Sciences"},{"id":"12100","title":"Environmental Health Sciences"},{"id":"12101","title":"Epidemiology"},{"id":"12105","title":"Food Studies"},{"id":"12116","title":"Health Policy and Management"},{"id":"32797","title":"Public Health"}],"biography":"

Alexandra Solodkaya is the Rothman Family Food Studies Librarian at the UCLA Biomedical Library. Her work at UCLA includes providing library instruction, research assistance and collections support to students and faculty involed in Food Studies across campus. Alex supports the undergraduate Food Studies Minor, the Graduate Certificate in Food Studies, the Rothman Family Institute for Food Studies and serves as the library liaison for the Fielding School of Public Health.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"13891","sectionHandle":"staffMember","title":"Marisa Soto","image":[],"to":"marisa-soto","nameFirst":"Marisa","nameLast":"Soto","alternativeName":[],"jobTitle":"Marketing and Communications Officer","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"msoto@cinema.ucla.edu","phone":"(310) 206-8588","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"62829","sectionHandle":"staffMember","title":"Tierra Sowell","image":[],"to":"tierra-sowell","nameFirst":"Tierra","nameLast":"Sowell","alternativeName":[],"jobTitle":"Music Access Services Lead","departments":[{"id":"6353","title":"Unified Access Services"}],"locations":[{"title":"Music Library","to":"visit/locations/music-library","id":"11512"}],"pronouns":null,"email":"tsowell@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12917","sectionHandle":"staffMember","title":"Virginia Steel","image":[{"id":"22338","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Virginia_Steel.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Virginia_Steel.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Virginia_Steel.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Virginia_Steel.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Virginia_Steel.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Virginia_Steel.jpg 2560w","alt":"Virginia Steel","focalPoint":[0.5,0.5]}],"to":"virginia-steel","nameFirst":"Virginia","nameLast":"Steel","alternativeName":[],"jobTitle":"Norman and Armena Powell University Librarian","departments":[{"id":"6355","title":"Administration"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"vsteel@library.ucla.edu","phone":"(310) 825-1201","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Virginia “Ginny” Steel became UCLA university librarian in July 2013. In 2016 UCLA alumnus Norman Powell endowed the position, which is now known as the Norman and Armena Powell University Librarian.

\n

Throughout her career Steel has focused on understanding the information needs of faculty, students and staff and enhancing and building services and collections to meet those needs. She has established and fostered strategic partnerships with campus organizations, philanthropists, corporations and foundations to improve services and support for students and faculty; to expand open access to library holdings and published research; and to provide physical and virtual spaces that foster creativity, engagement and a wide range of intellectual pursuits.

\n

Steel is well-versed in the complex national and international landscape of policies affecting academic and research libraries. She has been a vocal advocate for national and state level public access policies and legislation. An extensive list of her public statements on major issues affecting the UCLA Library and research libraries nationally and internationally is available online.

\n

Steel has a long history of strong leadership and service in the library community. She is currently a member of the OCLC Board of Trustees. She has served as chair of the board of the Center for Research Libraries, chair of the Association of Research Libraries advocacy and public policy committee, president of the Library Administration and Management Association, and on the board of the Greater Western Library Alliance. Her professional contributions include editorships, articles, invited papers, numerous presentations and a video production.

\n

Steel holds a BA from the University of Rochester and an MA from the Graduate Library School at the University of Chicago.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24318","sectionHandle":"staffMember","title":"Martha Steele","image":[],"to":"martha-steele","nameFirst":"Martha","nameLast":"Steele","alternativeName":[],"jobTitle":"Metadata Creation Project Coordinator","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"mlsteele@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Metadata","id":"12665"},{"title":"Image Collections","id":"24319"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13906","sectionHandle":"staffMember","title":"Salik Sultan","image":[],"to":"salik-sultan","nameFirst":"Salik","nameLast":"Sultan","alternativeName":[],"jobTitle":"System Administrator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"saliksultan@cinema.ucla.edu","phone":"(661) 383-2052","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12645","sectionHandle":"staffMember","title":"Hannah Sutherland","image":[],"to":"hannah-sutherland","nameFirst":"Hannah","nameLast":"Sutherland","alternativeName":[],"jobTitle":"Instructional Designer and Technologist","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her/hers","email":"hsutherland@library.ucla.edu","phone":"(310) 794-0254","consultation":"https://calendar.library.ucla.edu/appointments/hannahsutherland","topics":[{"title":"Instructional Design","id":"12685"},{"title":"Instructional Technology","id":"12686"},{"title":"WI+RE","id":"12687"},{"title":"BruinLearn","id":"12688"},{"title":"LibApps","id":"12689"},{"title":"Outreach","id":"12363"}],"academicDepartments":[],"biography":"

Hannah Sutherland (she/her) is the Instructional Design and Technology Consultant for Arts, Music, and Powell Libraries as well as a learner-designer in WI+RE and a member of the Teaching and Learning team. She is particularly passionate about critical pedagogy, universal design and accessible and scalable online instructional design. In her free time, Hannah enjoys film, playing games of all kinds, backpacking and bouldering.

","subjectLibrarian":"no","orcid":"https://orcid.org/+0000-0002-0913-8861","publications":null} +{"id":"25227","sectionHandle":"staffMember","title":"Joan Sutton","image":[],"to":"joan-sutton","nameFirst":"Joan","nameLast":"Sutton","alternativeName":[],"jobTitle":"Administrative Assistant","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her/hers","email":"jsutton1@library.ucla.edu","phone":"(310) 825-3834","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"61439","sectionHandle":"staffMember","title":"Kimi Taira","image":[],"to":"kimi-taira","nameFirst":"Kimi","nameLast":"Taira","alternativeName":[],"jobTitle":"Postgraduate Preventive Conservator","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"ktaira@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12447","sectionHandle":"staffMember","title":"Marco Tamase","image":[],"to":"marco-tamase","nameFirst":"Marco","nameLast":"Tamase","alternativeName":[],"jobTitle":"Collection Management Assistant","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"marco@library.ucla.edu","phone":"(310) 825-3369","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12893","sectionHandle":"staffMember","title":"Junko Tanaka","image":[],"to":"junko-tanaka","nameFirst":"Junko","nameLast":"Tanaka","alternativeName":[{"fullName":"田中順子","languageAltName":"ja"}],"jobTitle":"Japanese Acquisition and Cataloging Specialist","departments":[{"id":"7270","title":"East Asian Library"}],"locations":[{"title":"Richard C. Rudolph East Asian Library","to":"visit/locations/east-asian-library","id":"11497"}],"pronouns":null,"email":"jtanaka@library.ucla.edu","phone":"(310) 206-5927","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24265","sectionHandle":"staffMember","title":"Shannon Tanhayi Ahari","image":[],"to":"shannon-tanhayi-ahari","nameFirst":"Shannon","nameLast":"Tanhayi Ahari","alternativeName":[],"jobTitle":"Librarian/Curator for European Studies","departments":[{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"skahari@library.ucla.edu","phone":"(310) 825-1843","consultation":null,"topics":[],"academicDepartments":[{"id":"12074","title":"Classics"},{"id":"12104","title":"European Studies"},{"id":"12106","title":"French and Francophone Studies"},{"id":"12111","title":"Germanic Languages"},{"id":"12127","title":"Italian Studies"},{"id":"12165","title":"Scandinavian Studies"}],"biography":"

Shannon Tanhayi Ahari possesses a PhD and MA in Folklore and Ethnomusicology, and an MLS from Indiana University Bloomington. Her BA is in English Literature and Rhetoric/Creative Writing from the University of Illinois at Urbana-Champaign.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"32812","sectionHandle":"staffMember","title":"Rosenfeld Library Team","image":[],"to":"rosenfeld-library-team","nameFirst":"Rosenfeld Library","nameLast":"Team","alternativeName":[],"jobTitle":"Librarians","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Eugene and Maxine Rosenfeld Management Library","to":"visit/locations/eugene-and-maxine-rosenfeld-management-library","id":"11560"}],"pronouns":null,"email":"RosenfeldLibrary@Anderson.UCLA.edu","phone":"(310) 825-3138","consultation":null,"topics":[],"academicDepartments":[{"id":"12095","title":"Economics"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"32814","sectionHandle":"staffMember","title":"Humanities and Social Sciences/International and Area Studies Team","image":[],"to":"humanities-and-social-sciences-international-and-area-studies-team","nameFirst":"Humanities and Social Sciences/International and Area Studies","nameLast":"Team","alternativeName":[],"jobTitle":"Librarians","departments":[{"id":"6339","title":"User Engagement"},{"id":"6361","title":"International and Area Studies"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"yrl-ref@library.ucla.edu","phone":"(310) 825-1323","consultation":"https://calendar.library.ucla.edu/appointments?_ga=2.218732633.1159900601.1622566025-1117475450.1616519401","topics":[],"academicDepartments":[{"id":"12053","title":"Anthropology"},{"id":"12054","title":"Archaeology"},{"id":"12120","title":"India and South Asia"},{"id":"12134","title":"Linguistics"},{"id":"12149","title":"Near Eastern Languages and Cultures"},{"id":"12150","title":"Near Eastern Studies"},{"id":"12164","title":"Religion"},{"id":"12169","title":"South Asian Studies"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12810","sectionHandle":"staffMember","title":"Courtney Test","image":[{"id":"12812","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/hoffner.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/hoffner.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/hoffner.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/hoffner.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/hoffner.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/hoffner.jpeg 2560w","alt":"Hoffner","focalPoint":[0.5,0.5]}],"to":"courtney-test","nameFirst":"Courtney","nameLast":"Test","alternativeName":[],"jobTitle":"Test","departments":[{"id":"6355","title":"Administration"}],"locations":[],"pronouns":null,"email":"test@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12622","sectionHandle":"staffMember","title":"Kimber Thomas","image":[{"id":"12623","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/kimber_thomas-1.jpg","height":2763,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/kimber_thomas-1.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/kimber_thomas-1.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/kimber_thomas-1.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/kimber_thomas-1.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/kimber_thomas-1.jpg 2560w","alt":"kimber_thomas","focalPoint":[0.5,0.5]}],"to":"kimber-thomas","nameFirst":"Kimber","nameLast":"Thomas","alternativeName":[],"jobTitle":"Program Manager, Modern Endangered Archives Program","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":null,"email":"kimbersthomas@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Modern Endangered Archives Program","id":"12624"}],"academicDepartments":[],"biography":"

Kimber Thomas, Ph.D. is the Program Manager for the Modern Endangered Archives Program where she supports project teams around the world as they seek to digitize, document and organize at-risk cultural heritage collections.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12249","sectionHandle":"staffMember","title":"Ayesha Ticzon","image":[],"to":"ayesha-ticzon","nameFirst":"Ayesha","nameLast":"Ticzon","alternativeName":[],"jobTitle":"Archive Human Resources Analyst","departments":[{"id":"7276","title":"Human Resources"},{"id":"6373","title":"Film & Television Archive"}],"locations":[],"pronouns":"she/her","email":"aticzon@cinema.ucla.edu","phone":"(310) 267-4422","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12350","sectionHandle":"staffMember","title":"Tin Tran","image":[],"to":"tin-tran","nameFirst":"Tin","nameLast":"Tran","alternativeName":[],"jobTitle":"Processing Manager and Shared Print Coordinator","departments":[{"id":"6369","title":"Southern Regional Library Facility"}],"locations":[{"title":"Southern Regional Library Facility","to":"visit/locations/southern-regional-library-facility","id":"11588"}],"pronouns":null,"email":"tintran@library.ucla.edu","phone":"(310) 206-2010","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"38159","sectionHandle":"staffMember","title":"Zoe Tucker","image":[],"to":"zoe-tucker","nameFirst":"Zoe","nameLast":"Tucker","alternativeName":[],"jobTitle":"Software Developer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"zoetucker@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"34343","sectionHandle":"staffMember","title":"Karina Valdez","image":[],"to":"karina-valdez","nameFirst":"Karina","nameLast":"Valdez","alternativeName":[],"jobTitle":"Outreach and First Year Experience Specialist","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"karinavaldez@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

Karina Valdez is a proud Double Bruin! She is passionate about the educational access and success of historically marginalized students due to her own experiences navigating higher education as a first-generation student. She has dedicated her professional career to uplifting and guiding students toward pertinent resources and opportunities. She is excited to continue doing so in her role with UCLA Library.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"24814","sectionHandle":"staffMember","title":"Nelson Velasquez","image":[],"to":"nelson-velasquez","nameFirst":"Nelson","nameLast":"Velasquez","alternativeName":[],"jobTitle":"Library Assistant III","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"nelsonv@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22003","sectionHandle":"staffMember","title":"Hermine Vermeij","image":[{"id":"22089","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Vermeij_Hermine.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Vermeij_Hermine.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Vermeij_Hermine.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Vermeij_Hermine.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Vermeij_Hermine.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Vermeij_Hermine.jpg 2560w","alt":"Hermine Vermeij","focalPoint":[0.5,0.5]}],"to":"hermine-vermeij","nameFirst":"Hermine","nameLast":"Vermeij","alternativeName":[],"jobTitle":"Team Leader, Subject Specialist Catalogers; Music Cataloger","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her","email":"hermine@library.ucla.edu","phone":"(310) 825-3438","consultation":null,"topics":[{"title":"Music Cataloging","id":"22045"},{"title":"Alma","id":"22046"},{"title":"Monographic Cataloging","id":"22047"},{"title":"Subject and Genre Analysis","id":"22048"}],"academicDepartments":[],"biography":"

Hermine Vermeij (hur-MEE-nuh vur-MAY) has been a librarian at UCLA since 2006. She currently works in Resource Acquisitions & Metadata Services as the Team Leader of the Subject Specialists and the Music Cataloger. She has been active in the Music Library Association (MLA), including a term on the board (2016-2018) and as the chair of the Cataloging and Metadata Committee (2020-2023). She holds an MLIS from UCLA and a BA in Music from UC Santa Cruz.

","subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-6690-6919","publications":"
  • Iseminger, Beth, Nancy Lorimer, Casey Mullin, and Hermine Vermeij. \"Faceted Vocabularies for Music: A New Era in Resource Discovery.\" Notes 73, no. 3 (2017): 409-431. doi:10.1353/not.2017.0000.
"} +{"id":"12698","sectionHandle":"staffMember","title":"Matthew Vest","image":[{"id":"12699","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Mattew-Vest.jpeg","height":2916,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Mattew-Vest.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Mattew-Vest.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Mattew-Vest.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Mattew-Vest.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Mattew-Vest.jpeg 2560w","alt":"Matthew Vest","focalPoint":[0.5024,0.047]}],"to":"matthew-vest","nameFirst":"Matthew","nameLast":"Vest","alternativeName":[],"jobTitle":"Music Inquiry and Research Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Music Library","to":"visit/locations/music-library","id":"11512"}],"pronouns":null,"email":"mavest@library.ucla.edu","phone":"(310) 825-8106","consultation":"https://calendar.library.ucla.edu/appointments?u=24801","topics":[{"title":"Audio","id":"12700"},{"title":"Concerts","id":"12701"},{"title":"Exhibits and Events","id":"12702"},{"title":"Contemporary Music","id":"12703"}],"academicDepartments":[{"id":"12103","title":"Ethnomusicology"},{"id":"12147","title":"Music"},{"id":"12148","title":"Musicology"}],"biography":"

Matthew Vest is a Music Inquiry and Research Librarian at UCLA. He's active in the Music Library Association (MLA) and is the Open Access Editor for MLA. His research interests include change leadership in higher education, digital projects and publishing for music and the humanities, and composers working at the margins of the second Viennese School. When not librarying, he enjoys going to experimental and avant-garde concerts.

\n

Please schedule a virtual research consultation if you need in-depth research help in Music Studies or Performance.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12457","sectionHandle":"staffMember","title":"Anthony Vuong","image":[],"to":"anthony-vuong","nameFirst":"Anthony","nameLast":"Vuong","alternativeName":[],"jobTitle":"Linux Development Support","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"avuong@library.ucla.edu","phone":"(310) 825-9810","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"809","sectionHandle":"staffMember","title":"Andy Wallace","image":[],"to":"andrew-wallace","nameFirst":"Andy","nameLast":"Wallace","alternativeName":[],"jobTitle":"Software Developer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":null,"email":"andrew@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12831","sectionHandle":"staffMember","title":"Doris Wang","image":[{"id":"12832","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Doris_2018.2.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Doris_2018.2.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Doris_2018.2.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Doris_2018.2.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Doris_2018.2.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Doris_2018.2.jpg 2560w","alt":"Doris Wang","focalPoint":[0.5,0.5]}],"to":"doris-wang","nameFirst":"Doris","nameLast":"Wang","alternativeName":[],"jobTitle":"Director, Library Business Services","departments":[{"id":"7264","title":"Business Services"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"doris@library.ucla.edu","phone":"(310) 206-4213","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12448","sectionHandle":"staffMember","title":"Annie A. Watanabe-Rocco","image":[],"to":"annie-a-watanabe-rocco","nameFirst":"Annie A.","nameLast":"Watanabe-Rocco","alternativeName":[],"jobTitle":"Office Coordinator","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"anniewr@library.ucla.edu","phone":"(310) 825-2422","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Annie coordinates supplies management and ordering, payroll, reference and instruction. She also provides program and outreach support. Annie is also a member of the UCLA Library Punk Collective.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"3522","sectionHandle":"staffMember","title":"Dianne Weinthal","image":[{"id":"11894","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/dianneweinthal.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/dianneweinthal.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/dianneweinthal.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/dianneweinthal.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/dianneweinthal.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/dianneweinthal.jpg 2560w","alt":"Dianne Weinthal","focalPoint":[0.5,0.5]}],"to":"dianne-weinthal","nameFirst":"Dianne","nameLast":"Weinthal","alternativeName":[],"jobTitle":"Visual Designer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"she/her/hers","email":"dianneweinthal@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22157","sectionHandle":"staffMember","title":"Ivette Weyman","image":[],"to":"ivette-weyman","nameFirst":"Ivette","nameLast":"Weyman","alternativeName":[],"jobTitle":"Library Assistant, Subject Specialists Team","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her","email":"iweyman@library.ucla.edu","phone":"(310) 206-5874","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12680","sectionHandle":"staffMember","title":"Allie Whalen","image":[],"to":"allie-whalen","nameFirst":"Allie","nameLast":"Whalen","alternativeName":[],"jobTitle":"Senior Audiovisual Preservation Specialist","departments":[{"id":"6363","title":"Preservation and Conservation"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"she/her","email":"awhalen@library.ucla.edu","phone":"(310) 206-5924","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"32780","sectionHandle":"staffMember","title":"Jeremy Whitt","image":[],"to":"jeremy-whitt","nameFirst":"Jeremy","nameLast":"Whitt","alternativeName":[],"jobTitle":"Head of Licensing & E-Resources Acquisitions","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"he/him/his","email":"jwhitt@library.ucla.edu","phone":"(310) 794-5004","consultation":null,"topics":[{"title":"E-Resource Management","id":"24301"},{"title":"E-Resource Licensing","id":"32820"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"22324","sectionHandle":"staffMember","title":"Sherry Wickware","image":[{"id":"22326","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Sherry_Wickware.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Sherry_Wickware.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Sherry_Wickware.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Sherry_Wickware.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Sherry_Wickware.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Sherry_Wickware.jpg 2560w","alt":"Sherry Wickware","focalPoint":[0.5,0.5]}],"to":"sherry-wickware","nameFirst":"Sherry","nameLast":"Wickware","alternativeName":[],"jobTitle":"Director of Development","departments":[{"id":"7274","title":"Development"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"swickwar@library.ucla.edu","phone":"(310) 367-3417","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Sherry worked in UCLA Library Development from 2004 to 2008, first as Development Coordinator, then as Assistant Director for Annual Giving. Since then, she worked at Mt. Saint Mary’s, Antioch University and CSU Dominguez Hills, where she focused on major gifts. Sherry is an alumna of UC Davis.

\n

Her current focus at UCLA Library is on major and planned gifts.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13910","sectionHandle":"staffMember","title":"Todd Wiener","image":[{"id":"13911","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/todd-wiener-profile.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/todd-wiener-profile.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/todd-wiener-profile.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/todd-wiener-profile.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/todd-wiener-profile.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/todd-wiener-profile.jpg 2560w","alt":"Todd wiener profile","focalPoint":[0.5,0.5]}],"to":"todd-wiener","nameFirst":"Todd","nameLast":"Wiener","alternativeName":[],"jobTitle":"Motion Picture Curator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"twiener@cinema.ucla.edu","phone":"(661) 383-2085","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"14910","sectionHandle":"staffMember","title":"Jonathan Wilson","image":[{"id":"14911","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Wilson_Jonathan.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Wilson_Jonathan.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Wilson_Jonathan.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Wilson_Jonathan.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Wilson_Jonathan.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Wilson_Jonathan.jpeg 2560w","alt":"Wilson Jonathan","focalPoint":[0.5,0.5]}],"to":"jonathan-wilson","nameFirst":"Jonathan","nameLast":"Wilson","alternativeName":[],"jobTitle":"Technology Innovation and Services Manager","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"jonathanwilson@library.ucla.edu","phone":"(310) 267-0358","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13909","sectionHandle":"staffMember","title":"Tim Wilson","image":[],"to":"tim-wilson","nameFirst":"Tim","nameLast":"Wilson","alternativeName":[],"jobTitle":"Production Coordinator","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"timwilson@cinema.ucla.edu","phone":"(661) 383-2063","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"12449","sectionHandle":"staffMember","title":"Amy Wong","image":[],"to":"amy-wong","nameFirst":"Amy","nameLast":"Wong","alternativeName":[],"jobTitle":"Reference and Technology Services Coordinator","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"wongbat@library.ucla.edu","phone":"(310) 825-2422","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Amy coordinates reference desk services and reference email for Library Special Collections. She is also the department Technical Assistance Coordinator.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"13903","sectionHandle":"staffMember","title":"Randy Yantek","image":[],"to":"randy-yantek","nameFirst":"Randy","nameLast":"Yantek","alternativeName":[],"jobTitle":"Digital Media Laboratory Manager","departments":[{"id":"6373","title":"Film & Television Archive"}],"locations":[{"title":"UCLA Film & Television Archive - Research and Study Center","to":"visit/locations/arsc","id":"11612"}],"pronouns":null,"email":"ryantek@cinema.ucla.edu","phone":"(661) 383-2070","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"28186","sectionHandle":"staffMember","title":"Zhiyuan Yao","image":[{"id":"28187","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/zhiyuan.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/zhiyuan.jpg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/zhiyuan.jpg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/zhiyuan.jpg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/zhiyuan.jpg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/zhiyuan.jpg 2560w","alt":"Zhiyuan Yao","focalPoint":[0.4716,0.2968]}],"to":"zhiyuan-yao","nameFirst":"Zhiyuan","nameLast":"Yao","alternativeName":[],"jobTitle":"Spatial Data Science Librarian","departments":[{"id":"7254","title":"Data Science Center"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":"she/her/hers","email":"zyao@ucla.edu","phone":null,"consultation":"https://calendly.com/zyyao","topics":[{"title":"Geographic Information Systems (GIS)","id":"14915"},{"title":"Geospatial Analysis","id":"14914"},{"title":"Data Visualization","id":"12959"},{"title":"R/RStudio","id":"12439"},{"title":"Python","id":"12462"},{"title":"QGIS","id":"12437"},{"title":"ArcGIS","id":"12436"}],"academicDepartments":[],"biography":"

Zhiyuan Yao got her Ph.D from University of Cincinnati in 2020. Her research focuses on applying geocomputing tools and techinques to understand the changes in urban transportation, commuting and travel behaviors and their interactions with the built environment.

\n

Teaching:
Geospatial Analysis with R - vector and raster data
Introduction to QGIS
Introduction to R

","subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-0304-3829","publications":null} +{"id":"12565","sectionHandle":"staffMember","title":"Joseph Yue","image":[],"to":"joseph-yue","nameFirst":"Joseph","nameLast":"Yue","alternativeName":[],"jobTitle":"Librarian for Humanities, Social Sciences and Reference Collections; Non-Governmental and International Organization Information; (US) State and Local Government Documents","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/research-library","id":"801"}],"pronouns":null,"email":"josephyue@library.ucla.edu","phone":"(310) 825-6151","consultation":null,"topics":[{"title":"Statistics","id":"12566"}],"academicDepartments":[{"id":"12112","title":"Global Studies"},{"id":"12113","title":"Government Information, International Organizations"},{"id":"12115","title":"Government Information, US State and Municipal"},{"id":"12152","title":"Non-Government Organizations"},{"id":"12167","title":"Social Welfare"}],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12450","sectionHandle":"staffMember","title":"Jimmy Zavala","image":[{"id":"12451","src":"https://static.library.ucla.edu/craftassetsprod/Portraits/_fullscreen/Jimmy-Zavala.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetsprod/Portraits/_375xAUTO_crop_center-center_none/Jimmy-Zavala.jpeg 375w, https://static.library.ucla.edu/craftassetsprod/Portraits/_960xAUTO_crop_center-center_none/Jimmy-Zavala.jpeg 960w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1280xAUTO_crop_center-center_none/Jimmy-Zavala.jpeg 1280w, https://static.library.ucla.edu/craftassetsprod/Portraits/_1920xAUTO_crop_center-center_none/Jimmy-Zavala.jpeg 1920w, https://static.library.ucla.edu/craftassetsprod/Portraits/_2560xAUTO_crop_center-center_none/Jimmy-Zavala.jpeg 2560w","alt":"Jimmy Zavala","focalPoint":[0.5,0.5]}],"to":"jimmy-zavala","nameFirst":"Jimmy","nameLast":"Zavala","alternativeName":[],"jobTitle":"Teaching & Learning Librarian","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"zavalaj@library.ucla.edu","phone":"(310) 206-5336","consultation":null,"topics":[],"academicDepartments":[{"id":"12160","title":"Primary Source Literacy"}],"biography":"

Jimmy is developing an instruction framework that centers around critical thinking and active learning. He is also a member of the UCLA Library Punk Collective.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"12664","sectionHandle":"staffMember","title":"Erica Zhang","image":[],"to":"erica-zhang","nameFirst":"Erica","nameLast":"Zhang","alternativeName":[],"jobTitle":"Metadata Librarian for Open Access","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":"she/her/hers","email":"ezhang20@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Open Access Metadata","id":"12666"},{"title":"Linked Data","id":"21995"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/0000-0003-0835-9643","publications":null} +{"id":"12452","sectionHandle":"staffMember","title":"Maxwell Zupke","image":[],"to":"maxwell-zupke","nameFirst":"Maxwell","nameLast":"Zupke","alternativeName":[],"jobTitle":"Public Services Assistant","departments":[{"id":"6371","title":"Special Collections"}],"locations":[{"title":"UCLA Library Special Collections","to":"visit/locations/library-special-collections","id":"11602"}],"pronouns":null,"email":"zupkem@library.ucla.edu","phone":"(310) 206-3122","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Maxwell is responsible for Library Special Collections reference desk coordination and reference email coordination. He also provides cataloging assistance.

","subjectLibrarian":"no","orcid":null,"publications":null} diff --git a/data/staff_test-entries.json b/data/staff_test-entries.json new file mode 100644 index 000000000..73774643a --- /dev/null +++ b/data/staff_test-entries.json @@ -0,0 +1,17 @@ +{"id":"11827","sectionHandle":"staffMember","title":"Brigid Abreu","image":[],"to":"brigid-abreu","uri":"about/staff/brigid-abreu","nameFirst":"Brigid","nameLast":"Abreu","alternativeName":[],"jobTitle":"Inventory Control Coordinator and Data Analyst","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":null,"email":"bhornig@library.ucla.edu","phone":"(310) 825-6927","consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"11907","sectionHandle":"staffMember","title":"Ariane Bicho","image":[],"to":"ariane-bicho","uri":"about/staff/ariane-bicho","nameFirst":"Ariane","nameLast":"Bicho","alternativeName":[],"jobTitle":"Director of Communications and Marketing","departments":[{"id":"7272","title":"Communications"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/young-research-library","id":"801"}],"pronouns":null,"email":"abicho@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"14632","sectionHandle":"staffMember","title":"test_Phyllis Blackshear","image":[{"src":"https://static.library.ucla.edu/craftassetstest/Portraits/_fullscreen/dianneweinthal.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/Portraits/_375xAUTO_crop_center-center_none/dianneweinthal.jpg 375w, https://static.library.ucla.edu/craftassetstest/Portraits/_960xAUTO_crop_center-center_none/dianneweinthal.jpg 960w, https://static.library.ucla.edu/craftassetstest/Portraits/_1280xAUTO_crop_center-center_none/dianneweinthal.jpg 1280w, https://static.library.ucla.edu/craftassetstest/Portraits/_1920xAUTO_crop_center-center_none/dianneweinthal.jpg 1920w, https://static.library.ucla.edu/craftassetstest/Portraits/_2560xAUTO_crop_center-center_none/dianneweinthal.jpg 2560w","alt":"Dianneweinthal","focalPoint":[0.5,0.5]}],"to":"test-phyllis-blackshear","uri":"about/staff/test-phyllis-blackshear","nameFirst":"test_Phyllis","nameLast":"Blackshear","alternativeName":[],"jobTitle":"Senior Mail Processor","departments":[{"id":"6365","title":"Resource Acquisitions and Metadata Services"}],"locations":[],"pronouns":null,"email":"pblack@library.ucla.edu","phone":"(310) 267-5484","consultation":null,"topics":[{"title":"Art History","id":"11950"},{"title":"lower case test","id":"14633"},{"title":"test with the title case of in test","id":"20821"},{"title":"Title case with CAPS","id":"20824"}],"academicDepartments":[{"id":"11955","title":"Cluster 60: America in Sixties: Politics, Society, and Culture, 1954 to 1974"},{"id":"20827","title":"test title case with in for test the CAPS"}],"biography":"

Dianne Weinthal is a designer & archivist & artist based in \nLos Angeles, California. Her work asks questions about how we interact \nwith visual representations in the digital realm. \n

\n

She received her Masters in Library and Information Science from UCLA\n & Bachelors in Art History from Stanford University. Her lava lamp \nis purple \n

","subjectLibrarian":"no","orcid":"https://orcid.org/+0000-0001-8746-9239","publications":""} +{"id":"11817","sectionHandle":"staffMember","title":"Judy Consales","image":[],"to":"judy-consales","uri":"about/staff/judy-consales","nameFirst":"Judy","nameLast":"Consales","alternativeName":[],"jobTitle":"Associate University Librarian for User Engagement","departments":[{"id":"6355","title":"Administration"},{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"},{"title":"Charles E. Young Research Library","to":"visit/locations/young-research-library","id":"801"}],"pronouns":null,"email":"consales@library.ucla.edu","phone":"(310) 825-1201","consultation":null,"topics":[],"academicDepartments":[],"biography":"

As Associate University Librarian for User Engagement I have responsibility for library units that provide the resources, expertise, and services that support faculty and student research; and knowledge discovery. Prior to my work at UCLA I held management, public service, and training positions in libraries and information companies. I've served in various organizations shaping library polices and practices. I am particularly interested in mentoring librarians for future roles.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"565","sectionHandle":"staffMember","title":"Jen Diamond","image":[{"src":"https://static.library.ucla.edu/craftassetstest/Portraits/_fullscreen/jendiamond.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/Portraits/_375xAUTO_crop_center-center_none/jendiamond.jpeg 375w, https://static.library.ucla.edu/craftassetstest/Portraits/_960xAUTO_crop_center-center_none/jendiamond.jpeg 960w, https://static.library.ucla.edu/craftassetstest/Portraits/_1280xAUTO_crop_center-center_none/jendiamond.jpeg 1280w, https://static.library.ucla.edu/craftassetstest/Portraits/_1920xAUTO_crop_center-center_none/jendiamond.jpeg 1920w, https://static.library.ucla.edu/craftassetstest/Portraits/_2560xAUTO_crop_center-center_none/jendiamond.jpeg 2560w","alt":"Jendiamond","focalPoint":[0.5,0.5]}],"to":"jennifer-diamond","uri":"about/staff/jennifer-diamond","nameFirst":"Jen","nameLast":"Diamond","alternativeName":[{"fullName":"佑綺 佑綺","languageAltName":"ja"}],"jobTitle":"Software Developer testing","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"she/her/hers","email":"jendiamond@library.ucla.edu","phone":"(323) 363-0002","consultation":null,"topics":[{"title":"biking","id":"7323"},{"title":"sailing","id":"7324"},{"title":"picnics","id":"7325"},{"title":"Nuxtjs","id":"4023"},{"title":"test topic lowercase","id":"8185"},{"title":"Art History","id":"11950"},{"title":"All the things","id":"2811"}],"academicDepartments":[],"biography":"

Jen has a background not only as a web developer, but she has a strong background in community development and instruction. She is the lead organizer of workshops like Rails Girls Los Angeles, and Viva LAVue; programs to help encourage more women to consider a career in programming. She is also very interested in foraging. HELLO

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"2817","sectionHandle":"staffMember","title":"Joshua Gomez","image":[],"to":"jgomez","uri":"about/staff/jgomez","nameFirst":"Joshua","nameLast":"Gomez","alternativeName":[],"jobTitle":"Head of Software Development and Library Systems","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":"he/him/his","email":"joshuagomez@library.ucla.edu","phone":"(310) 794-9797","consultation":null,"topics":[],"academicDepartments":[],"biography":"

Joshua is a software engineer and a librarian with a long history of working in libraries, in both technical and non-technical roles. He comes to UCLA Library from the Getty Research Institute, where he led the software development team and was responsible for the design and development of applications such as the Getty Research Portal as well as building infrastructure to support digitization, Linked Data, and IIIF initiatives. He also teaches courses on programming, web development, and databases at UCLA's Department of Information Studies. His professional interests lie at the intersection of digital libraries, Linked Data, workflow automation, and artificial intelligence. He holds a Bachelors in English from USC and a Masters from the School of Information at UC Berkeley.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"4169","sectionHandle":"staffMember","title":"Courtney Hoffner","image":[],"to":"courtney-hoffner","uri":"about/staff/courtney-hoffner","nameFirst":"Courtney","nameLast":"Hoffner","alternativeName":[],"jobTitle":"Website Managing Editor & Content Design Librarian","departments":[{"id":"7272","title":"Communications"}],"locations":[],"pronouns":"she/her/hers","email":"choffner@library.ucla.edu","phone":"(310) 825-0190","consultation":null,"topics":[],"academicDepartments":[],"biography":"

hellooooooo

","subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-6326-9627","publications":null} +{"id":"4273","sectionHandle":"staffMember","title":"Suzy Lee","image":[],"to":"suzy-lee","uri":"about/staff/suzy-lee","nameFirst":"Suzy","nameLast":"Lee","alternativeName":[],"jobTitle":"Public Programs and Communications Manager","departments":[{"id":"7272","title":"Communications"}],"locations":[],"pronouns":"she/her/hers","email":"szlee@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

helllo

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"2808","sectionHandle":"staffMember","title":"Axa Liauw","image":[{"src":"https://static.library.ucla.edu/craftassetstest/Portraits/_fullscreen/turtleboy.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/Portraits/_375xAUTO_crop_center-center_none/turtleboy.jpg 375w, https://static.library.ucla.edu/craftassetstest/Portraits/_960xAUTO_crop_center-center_none/turtleboy.jpg 960w, https://static.library.ucla.edu/craftassetstest/Portraits/_1280xAUTO_crop_center-center_none/turtleboy.jpg 1280w, https://static.library.ucla.edu/craftassetstest/Portraits/_1920xAUTO_crop_center-center_none/turtleboy.jpg 1920w, https://static.library.ucla.edu/craftassetstest/Portraits/_2560xAUTO_crop_center-center_none/turtleboy.jpg 2560w","alt":"Turtleboy","focalPoint":[0.5,0.5]}],"to":"axa-liauw","uri":"about/staff/axa-liauw","nameFirst":"Axa","nameLast":"Liauw","alternativeName":[],"jobTitle":"Lead UX Designer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"Axa/she/they/dia","email":"aliauw@library.ucla.edu","phone":"(222) 222-7777","consultation":null,"topics":[{"title":"herding cats","id":"11939"},{"title":"turtles","id":"20814"},{"title":"maybe design tokens","id":"20816"},{"title":"Figma","id":"20818"}],"academicDepartments":[{"id":"11936","title":"test african american studies"}],"biography":null,"subjectLibrarian":"no","orcid":"https://orcid.org/0000-0002-6326-9627","publications":null} +{"id":"12059","sectionHandle":"staffMember","title":"Áxa Lïauwé","image":[{"src":"https://static.library.ucla.edu/craftassetstest/Portraits/_fullscreen/markus-spiske-fFRG_YEaOuE-unsplash.jpg","height":1707,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/Portraits/_375xAUTO_crop_center-center_none/markus-spiske-fFRG_YEaOuE-unsplash.jpg 375w, https://static.library.ucla.edu/craftassetstest/Portraits/_960xAUTO_crop_center-center_none/markus-spiske-fFRG_YEaOuE-unsplash.jpg 960w, https://static.library.ucla.edu/craftassetstest/Portraits/_1280xAUTO_crop_center-center_none/markus-spiske-fFRG_YEaOuE-unsplash.jpg 1280w, https://static.library.ucla.edu/craftassetstest/Portraits/_1920xAUTO_crop_center-center_none/markus-spiske-fFRG_YEaOuE-unsplash.jpg 1920w, https://static.library.ucla.edu/craftassetstest/Portraits/_2560xAUTO_crop_center-center_none/markus-spiske-fFRG_YEaOuE-unsplash.jpg 2560w","alt":"Markus spiske f FRG Y Ea Ou E unsplash","focalPoint":[0.5,0.5]}],"to":"áxa-lïauwé","uri":"about/staff/áxa-lïauwé","nameFirst":"Áxa","nameLast":"Lïauwé","alternativeName":[],"jobTitle":"Testing diacritics job hello","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"}],"locations":[],"pronouns":null,"email":"aliauw@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":"

adding test live data

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"488","sectionHandle":"staffMember","title":"Parinita Mulak","image":[{"src":"https://static.library.ucla.edu/craftassetstest/Portraits/_fullscreen/DLCS-Diagram.jpg","height":1533,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/Portraits/_375xAUTO_crop_center-center_none/DLCS-Diagram.jpg 375w, https://static.library.ucla.edu/craftassetstest/Portraits/_960xAUTO_crop_center-center_none/DLCS-Diagram.jpg 960w, https://static.library.ucla.edu/craftassetstest/Portraits/_1280xAUTO_crop_center-center_none/DLCS-Diagram.jpg 1280w, https://static.library.ucla.edu/craftassetstest/Portraits/_1920xAUTO_crop_center-center_none/DLCS-Diagram.jpg 1920w, https://static.library.ucla.edu/craftassetstest/Portraits/_2560xAUTO_crop_center-center_none/DLCS-Diagram.jpg 2560w","alt":"DLCS Diagram","focalPoint":[0.5,0.5]}],"to":"parinita-mulak","uri":"about/staff/parinita-mulak","nameFirst":"Parinita","nameLast":"Mulak","alternativeName":[],"jobTitle":"Lead Applications Developer test","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"they/them/their","email":"pghorpade@library.ucla.edu","phone":"222-222-4444","consultation":null,"topics":[{"title":"Vue","id":"4022"},{"title":"Nuxtjs","id":"4023"},{"title":"solr","id":"4024"}],"academicDepartments":[{"id":"11936","title":"test african american studies"}],"biography":"

Thank you for visiting my Page. Worked on Nuxtjs live preview.

\n

Recently worked on GTM datalyer push.

","subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"9428","sectionHandle":"staffMember","title":"Antonia Osuna-Garcia","image":[],"to":"antonia-osuna-garcia","uri":"about/staff/antonia-osuna-garcia","nameFirst":"Antonia","nameLast":"Osuna-Garcia","alternativeName":[],"jobTitle":"Health & Life Sciences Librarian","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Louise M. Darling Biomedical Library","to":"visit/locations/biomed","id":"4695"},{"title":"Eugene and Maxine Rosenfeld Management Library","to":"visit/locations/management-library-eugene-maxine-rosenfeld","id":"11560"}],"pronouns":null,"email":"aogarcia@library.ucla.edu","phone":"(555) 555-5555","consultation":"https://calendar.library.ucla.edu/appointments/aogarcia","topics":[{"title":"Citation Management","id":"9430"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"11910","sectionHandle":"staffMember","title":"Sylvia Page","image":[{"src":"https://static.library.ucla.edu/craftassetstest/Portraits/_fullscreen/Page_Sylvia_010.jpeg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/Portraits/_375xAUTO_crop_center-center_none/Page_Sylvia_010.jpeg 375w, https://static.library.ucla.edu/craftassetstest/Portraits/_960xAUTO_crop_center-center_none/Page_Sylvia_010.jpeg 960w, https://static.library.ucla.edu/craftassetstest/Portraits/_1280xAUTO_crop_center-center_none/Page_Sylvia_010.jpeg 1280w, https://static.library.ucla.edu/craftassetstest/Portraits/_1920xAUTO_crop_center-center_none/Page_Sylvia_010.jpeg 1920w, https://static.library.ucla.edu/craftassetstest/Portraits/_2560xAUTO_crop_center-center_none/Page_Sylvia_010.jpeg 2560w","alt":"Page Sylvia 010","focalPoint":[0.5,0.5]}],"to":"sylvia-page","uri":"about/staff/sylvia-page","nameFirst":"Sylvia","nameLast":"Page","alternativeName":[],"jobTitle":"Research and Instruction Librarian for Arts, Music, and Powell (AMP)","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Powell Library","to":"visit/locations/powell-library","id":"523"}],"pronouns":null,"email":"srpage@library.ucla.edu","phone":null,"consultation":null,"topics":[{"title":"Zines","id":"11858"},{"title":"Comics/Graphic Novels","id":"11859"},{"title":"English Composition","id":"11860"},{"title":"dogs","id":"11959"},{"title":"balloons","id":"11952"}],"academicDepartments":[{"id":"11947","title":"African American Studies"},{"id":"11936","title":"test african american studies"},{"id":"11954","title":"African Studies"},{"id":"11955","title":"Cluster 60: America in Sixties: Politics, Society, and Culture, 1954 to 1974"},{"id":"11956","title":"cats"}],"biography":"

Sylvia Page works to support the research needs of the UCLA community through reference, instruction, outreach, and collections. Her experience prior to UCLA includes work in academic libraries, museums, and galleries.

","subjectLibrarian":"yes","orcid":null,"publications":null} +{"id":"483","sectionHandle":"staffMember","title":"Ashton Prigge","image":[{"src":"https://static.library.ucla.edu/craftassetstest/Portraits/_fullscreen/Screen-Shot-2022-02-08-at-10.41.55-AM-2.png","height":1600,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/Portraits/_375xAUTO_crop_center-center_none/Screen-Shot-2022-02-08-at-10.41.55-AM-2.png 375w, https://static.library.ucla.edu/craftassetstest/Portraits/_960xAUTO_crop_center-center_none/Screen-Shot-2022-02-08-at-10.41.55-AM-2.png 960w, https://static.library.ucla.edu/craftassetstest/Portraits/_1280xAUTO_crop_center-center_none/Screen-Shot-2022-02-08-at-10.41.55-AM-2.png 1280w, https://static.library.ucla.edu/craftassetstest/Portraits/_1920xAUTO_crop_center-center_none/Screen-Shot-2022-02-08-at-10.41.55-AM-2.png 1920w, https://static.library.ucla.edu/craftassetstest/Portraits/_2560xAUTO_crop_center-center_none/Screen-Shot-2022-02-08-at-10.41.55-AM-2.png 2560w","alt":"Screen Shot 2022 02 08 at 10 41 55 AM 2","focalPoint":[0.5,0.5]}],"to":"ashton-prigge","uri":"about/staff/ashton-prigge","nameFirst":"Ashton","nameLast":"Prigge","alternativeName":[],"jobTitle":"Software Developer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"she/her/hers","email":"aprigge@library.ucla.edu","phone":"222-333-6666","consultation":"http://book.com","topics":[],"academicDepartments":[{"id":"11936","title":"test african american studies"}],"biography":"

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus-lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.

\n

Header Level 3

\n\n
  1. Ordered List Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  2. Aliquam tincidunt mauris eu risus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.
\n

Header Level 4

\n\n
  • Unordered List Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  • Aliquam tincidunt mauris eu risus.
","subjectLibrarian":"no","orcid":"http://orcid.org","publications":""} +{"id":"809","sectionHandle":"staffMember","title":"Andrew Wallace","image":[],"to":"andrew-wallace","uri":"about/staff/andrew-wallace","nameFirst":"Andrew","nameLast":"Wallace","alternativeName":[],"jobTitle":"Software Developer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":null,"email":"andrew@library.ucla.edu","phone":null,"consultation":null,"topics":[],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":null,"publications":null} +{"id":"3522","sectionHandle":"staffMember","title":"Dianne Weinthal","image":[{"src":"https://static.library.ucla.edu/craftassetstest/Portraits/_fullscreen/dianneweinthal.jpg","height":2560,"width":2560,"srcset":"https://static.library.ucla.edu/craftassetstest/Portraits/_375xAUTO_crop_center-center_none/dianneweinthal.jpg 375w, https://static.library.ucla.edu/craftassetstest/Portraits/_960xAUTO_crop_center-center_none/dianneweinthal.jpg 960w, https://static.library.ucla.edu/craftassetstest/Portraits/_1280xAUTO_crop_center-center_none/dianneweinthal.jpg 1280w, https://static.library.ucla.edu/craftassetstest/Portraits/_1920xAUTO_crop_center-center_none/dianneweinthal.jpg 1920w, https://static.library.ucla.edu/craftassetstest/Portraits/_2560xAUTO_crop_center-center_none/dianneweinthal.jpg 2560w","alt":"Dianneweinthal","focalPoint":[0.5,0.5]}],"to":"dianne","uri":"about/staff/dianne","nameFirst":"Dianne","nameLast":"Weinthal","alternativeName":[],"jobTitle":"Visual Designer","departments":[{"id":"6357","title":"Digital Initiatives and Information Technology"},{"id":"7250","title":"Software Development and Library Systems"}],"locations":[],"pronouns":"she/her/hers","email":"dianneweinthal@library.ucla.edu","phone":"","consultation":"http://book.com","topics":[{"title":"Art History","id":"11950"},{"title":"Zines","id":"11858"},{"title":"balloons","id":"11952"}],"academicDepartments":[],"biography":null,"subjectLibrarian":"no","orcid":"http://orcidid.com","publications":"

Publication 1

\n

Publication 2

"} +{"id":"6292","sectionHandle":"staffMember","title":"Matthew Weirick Johnson","image":[],"to":"matthew-weirick-johnson","uri":"about/staff/matthew-weirick-johnson","nameFirst":"Matthew","nameLast":"Weirick Johnson","alternativeName":[],"jobTitle":"Librarian for English & History; Lead for Teaching & Learning","departments":[{"id":"6339","title":"User Engagement"}],"locations":[{"title":"Charles E. Young Research Library","to":"visit/locations/young-research-library","id":"801"}],"pronouns":"test/test/test","email":"mattweirick@library.ucla.edu","phone":"(310) 825-7785","consultation":"https://calendar.library.ucla.edu/appointments/mattjohnson","topics":[{"title":"English","id":"6294"},{"title":"History","id":"6295"},{"title":"Comparative Literature","id":"6296"},{"title":"test topic lowercase","id":"8185"}],"academicDepartments":[],"biography":"

Prior to joining UCLA as the Librarian for English & History, I worked for a network of non-profits providing data support, including data entry, analysis, and visualization. I've worked in medical, academic, and public libraries, and have served in remote library roles, including working as a virtual reference librarian.

\n

I provide research consultations, instructional support (including instruction sessions, assignment design, and instructional consultations), and support for evidence synthesis, literature searching, and citation management (primarily in EndNote or Zotero). I'm interested in long-term, high quality partnerships with undergraduate and graduate students, staff, and faculty for both research and instructional projects.

\n

MS in Library Science, University of North Carolina, Chapel Hill

\n

with graduate certificates in Interdisciplinary Health Communication & Interdisciplinary Health Disparities
School of Information & Library Science Diversity Advocate

\n

BA in English, Virginia Tech (concentration in Literature & Language)

\n

You can learn more about me from my website or CV.

","subjectLibrarian":"yes","orcid":"https://orcid.org/+0000-0002-9987-7050","publications":""} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..e8d22de02 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,24 @@ +version: '2.0' + +services: + web: + build: . + ports: + - "3000:3000" + volumes: + - ./:/usr/local/app/ + # the volume below prevents our host system's node_modules to be mounted + - exclude:/usr/local/app/node_modules/ + + storybook: + build: . + ports: + - "3009:3003" + volumes: + - ./:/usr/local/app/ + # the volume below prevents our host system's node_modules to be mounted + - exclude:/usr/local/app/node_modules/ + command: npm run storybook + +volumes: + exclude: diff --git a/error.vue b/error.vue deleted file mode 100644 index 3db280865..000000000 --- a/error.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/gql/fragments/BlockAssociatedTopicCardsFragment.gql b/gql/fragments/BlockAssociatedTopicCardsFragment.gql index 0525c8685..d1f610813 100644 --- a/gql/fragments/BlockAssociatedTopicCardsFragment.gql +++ b/gql/fragments/BlockAssociatedTopicCardsFragment.gql @@ -13,7 +13,6 @@ fragment BlockAssociatedTopicCardsFragment on ElementInterface { uri text: summary uri - iconName: illustrationsResourcesAndServices } } } diff --git a/gql/fragments/BlockBannerFeaturedFragment.gql b/gql/fragments/BlockBannerFeaturedFragment.gql index 2b0b26205..8bbdb9ba0 100644 --- a/gql/fragments/BlockBannerFeaturedFragment.gql +++ b/gql/fragments/BlockBannerFeaturedFragment.gql @@ -10,11 +10,6 @@ fragment BlockBannerFeaturedFragment on ElementInterface { title to: uri summary - physicalDigital - workshopOrEventSeriesType - eventType { - title - } eventDescription projectCategory: format articleCategory: articleCategories { diff --git a/gql/fragments/BlockImpactNumberCardsFragment.gql b/gql/fragments/BlockImpactNumberCardsFragment.gql index dd4785092..67fd79410 100644 --- a/gql/fragments/BlockImpactNumberCardsFragment.gql +++ b/gql/fragments/BlockImpactNumberCardsFragment.gql @@ -11,4 +11,18 @@ fragment BlockImpactNumberCardsFragment on ElementInterface { impactNumber } } + ... on impactReportFpb_impactNumberCards_BlockType { + id + typehandle + sectionSummary: summary + sectionTitle: titleGeneral + impactNumberCards { + ... on impactNumberCards_impactNumberCard_BlockType { + id + title: titleGeneral + text: description + impactNumber + } + } + } } diff --git a/gql/fragments/BlockMediaGalleryExtraFieldsFragment.gql b/gql/fragments/BlockMediaGalleryExtraFieldsFragment.gql index 78c53dbfb..ec595202c 100644 --- a/gql/fragments/BlockMediaGalleryExtraFieldsFragment.gql +++ b/gql/fragments/BlockMediaGalleryExtraFieldsFragment.gql @@ -1,9 +1,10 @@ -#import "../gql/fragments/MediaAsset.gql" +#import "~/gql/fragments/MediaAsset.gql" fragment BlockMediaGalleryExtraFieldsFragment on ElementInterface { id sectionTitle: titleGeneral richTextSimplified + mediaGalleryStyle mediaGallery: mediaGalleryExtraFields { dataId: id captionTitle: captionHeading diff --git a/gql/fragments/BlockMediaGalleryFragment.gql b/gql/fragments/BlockMediaGalleryFragment.gql index c9e9dc282..b66ef6b35 100644 --- a/gql/fragments/BlockMediaGalleryFragment.gql +++ b/gql/fragments/BlockMediaGalleryFragment.gql @@ -1,9 +1,10 @@ -#import "../gql/fragments/MediaAsset.gql" +#import "~/gql/fragments/MediaAsset.gql" fragment BlockMediaGalleryFragment on ElementInterface { dataId: id sectionTitle: titleGeneral sectionSummary: summary + mediaGalleryStyle mediaGallery { dataId: id captionTitle: captionHeading diff --git a/gql/fragments/BlockMediaWithTextFragment.gql b/gql/fragments/BlockMediaWithTextFragment.gql index 92d0ce91d..a2f1a0a1a 100644 --- a/gql/fragments/BlockMediaWithTextFragment.gql +++ b/gql/fragments/BlockMediaWithTextFragment.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/MediaAsset.gql" +#import "~/gql/fragments/MediaAsset.gql" fragment BlockMediaWithTextFragment on ElementInterface { dataId : id diff --git a/gql/fragments/collections/AllFpb.gql b/gql/fragments/collections/AllFpb.gql index 55ad6d041..c267dd81c 100644 --- a/gql/fragments/collections/AllFpb.gql +++ b/gql/fragments/collections/AllFpb.gql @@ -1,17 +1,17 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/BlockAssociatedTopicCardsFragment.gql" -#import "../gql/fragments/BlockBannerFeaturedFragment.gql" -#import "../gql/fragments/BlockCardWithImageFragment.gql" -#import "../gql/fragments/BlockHighlightFragment.gql" -#import "../gql/fragments/BlockImpactNumbersCarouselFragment.gql" -#import "../gql/fragments/BlockMediaGalleryFragment.gql" -#import "../gql/fragments/BlockMediaWithTextFragment.gql" -#import "../gql/fragments/BlockPullQuoteFragment.gql" -#import "../gql/fragments/BlockRichTextFragment.gql" -#import "../gql/fragments/BlockSimpleCardsFragment.gql" -#import "../gql/fragments/BlockCallToActionFragment.gql" -#import "../gql/fragments/BlockFormFragment.gql" -#import "../gql/fragments/BlockImpactNumberCardsFragment.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/BlockAssociatedTopicCardsFragment" +#import "~/gql/fragments/BlockBannerFeaturedFragment" +#import "~/gql/fragments/BlockCardWithImageFragment" +#import "~/gql/fragments/BlockHighlightFragment" +#import "~/gql/fragments/BlockImpactNumbersCarouselFragment" +#import "~/gql/fragments/BlockMediaGalleryFragment" +#import "~/gql/fragments/BlockMediaWithTextFragment" +#import "~/gql/fragments/BlockPullQuoteFragment" +#import "~/gql/fragments/BlockRichTextFragment" +#import "~/gql/fragments/BlockSimpleCardsFragment" +#import "~/gql/fragments/BlockCallToActionFragment" +#import "~/gql/fragments/BlockFormFragment" +#import "~/gql/fragments/BlockImpactNumberCardsFragment" fragment AllFpb on ElementInterface { blocks: allFpb { diff --git a/gql/fragments/collections/AllFpbWithNoBanner.gql b/gql/fragments/collections/AllFpbWithNoBanner.gql index 72240e56e..7bf597b9e 100644 --- a/gql/fragments/collections/AllFpbWithNoBanner.gql +++ b/gql/fragments/collections/AllFpbWithNoBanner.gql @@ -1,14 +1,14 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/BlockCardWithImageFragment.gql" -#import "../gql/fragments/BlockHighlightFragment.gql" -#import "../gql/fragments/BlockImpactNumbersCarouselFragment.gql" -#import "../gql/fragments/BlockMediaGalleryFragment.gql" -#import "../gql/fragments/BlockMediaWithTextFragment.gql" -#import "../gql/fragments/BlockPullQuoteFragment.gql" -#import "../gql/fragments/BlockRichTextFragment.gql" -#import "../gql/fragments/BlockSimpleCardsFragment.gql" -#import "../gql/fragments/BlockCallToActionFragment.gql" -#import "../gql/fragments/BlockFormFragment.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/BlockCardWithImageFragment" +#import "~/gql/fragments/BlockHighlightFragment" +#import "~/gql/fragments/BlockImpactNumbersCarouselFragment" +#import "~/gql/fragments/BlockMediaGalleryFragment" +#import "~/gql/fragments/BlockMediaWithTextFragment" +#import "~/gql/fragments/BlockPullQuoteFragment" +#import "~/gql/fragments/BlockRichTextFragment" +#import "~/gql/fragments/BlockSimpleCardsFragment" +#import "~/gql/fragments/BlockCallToActionFragment" +#import "~/gql/fragments/BlockFormFragment" fragment AllFpbWithNoBanner on ElementInterface { blocks: AllFpbWithNoBanner { diff --git a/gql/fragments/collections/DefaultFpb.gql b/gql/fragments/collections/DefaultFpb.gql index 3f5842e36..6e97e0547 100644 --- a/gql/fragments/collections/DefaultFpb.gql +++ b/gql/fragments/collections/DefaultFpb.gql @@ -1,10 +1,10 @@ -#import "../gql/fragments/BlockMediaGalleryFragment.gql" -#import "../gql/fragments/BlockMediaWithTextFragment.gql" -#import "../gql/fragments/BlockPullQuoteFragment.gql" -#import "../gql/fragments/BlockRichTextFragment.gql" -#import "../gql/fragments/BlockSimpleCardsFragment.gql" -#import "../gql/fragments/BlockCallToActionFragment.gql" -#import "../gql/fragments/BlockFormFragment.gql" +#import "~/gql/fragments/BlockMediaGalleryFragment" +#import "~/gql/fragments/BlockMediaWithTextFragment" +#import "~/gql/fragments/BlockPullQuoteFragment" +#import "~/gql/fragments/BlockRichTextFragment" +#import "~/gql/fragments/BlockSimpleCardsFragment" +#import "~/gql/fragments/BlockCallToActionFragment" +#import "~/gql/fragments/BlockFormFragment" fragment DefaultFpb on ElementInterface { blocks: defaultFpb { diff --git a/gql/fragments/collections/DefaultFpbWithCardsAndHighlight.gql b/gql/fragments/collections/DefaultFpbWithCardsAndHighlight.gql index c5101e27e..59f0dc543 100644 --- a/gql/fragments/collections/DefaultFpbWithCardsAndHighlight.gql +++ b/gql/fragments/collections/DefaultFpbWithCardsAndHighlight.gql @@ -1,12 +1,12 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/BlockCardWithImageFragment.gql" -#import "../gql/fragments/BlockHighlightFragment.gql" -#import "../gql/fragments/BlockMediaGalleryFragment.gql" -#import "../gql/fragments/BlockMediaWithTextFragment.gql" -#import "../gql/fragments/BlockPullQuoteFragment.gql" -#import "../gql/fragments/BlockRichTextFragment.gql" -#import "../gql/fragments/BlockSimpleCardsFragment.gql" -#import "../gql/fragments/BlockFormFragment.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/BlockCardWithImageFragment" +#import "~/gql/fragments/BlockHighlightFragment" +#import "~/gql/fragments/BlockMediaGalleryFragment" +#import "~/gql/fragments/BlockMediaWithTextFragment" +#import "~/gql/fragments/BlockPullQuoteFragment" +#import "~/gql/fragments/BlockRichTextFragment" +#import "~/gql/fragments/BlockSimpleCardsFragment" +#import "~/gql/fragments/BlockFormFragment" fragment DefaultFpbWithCardsAndHighlight on ElementInterface { blocks: defaultFpbWithCardsAndHighlight { diff --git a/gql/fragments/collections/DefaultFpbWithNoCta.gql b/gql/fragments/collections/DefaultFpbWithNoCta.gql index 7d72d7dfd..55f73e51c 100644 --- a/gql/fragments/collections/DefaultFpbWithNoCta.gql +++ b/gql/fragments/collections/DefaultFpbWithNoCta.gql @@ -1,10 +1,10 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/BlockSimpleCardsFragment.gql" -#import "../gql/fragments/BlockRichTextFragment.gql" -#import "../gql/fragments/BlockPullQuoteFragment.gql" -#import "../gql/fragments/BlockMediaGalleryFragment.gql" -#import "../gql/fragments/BlockMediaWithTextFragment.gql" -#import "../gql/fragments/BlockFormFragment.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/BlockSimpleCardsFragment" +#import "~/gql/fragments/BlockRichTextFragment" +#import "~/gql/fragments/BlockPullQuoteFragment" +#import "~/gql/fragments/BlockMediaGalleryFragment" +#import "~/gql/fragments/BlockMediaWithTextFragment" +#import "~/gql/fragments/BlockFormFragment" fragment DefaultFpbWithNoCta on ElementInterface { blocks: defaultFpbWithNoCta { diff --git a/gql/fragments/collections/ExhibitionsAndCollectionsFpb.gql b/gql/fragments/collections/ExhibitionsAndCollectionsFpb.gql index 7e532ad87..b7465de1e 100644 --- a/gql/fragments/collections/ExhibitionsAndCollectionsFpb.gql +++ b/gql/fragments/collections/ExhibitionsAndCollectionsFpb.gql @@ -1,18 +1,18 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/BlockAssociatedTopicCardsFragment.gql" -#import "../gql/fragments/BlockBannerFeaturedFragment.gql" -#import "../gql/fragments/BlockCallToActionFragment.gql" -#import "../gql/fragments/BlockCardWithImageFragment.gql" -#import "../gql/fragments/BlockFormFragment.gql" -#import "../gql/fragments/BlockHighlightFragment.gql" -#import "../gql/fragments/BlockImpactNumbersCarouselFragment.gql" -#import "../gql/fragments/BlockMediaWithTextFragment.gql" -#import "../gql/fragments/BlockPullQuoteFragment.gql" -#import "../gql/fragments/BlockRichTextFragment.gql" -#import "../gql/fragments/BlockSimpleCardsFragment.gql" -#import "../gql/fragments/BlockMediaGalleryExtraFieldsFragment.gql" -#import "../gql/fragments/BlockGridGalleryCardsFragment.gql" -#import "../gql/fragments/BlockImpactNumberCardsFragment.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/BlockAssociatedTopicCardsFragment" +#import "~/gql/fragments/BlockBannerFeaturedFragment" +#import "~/gql/fragments/BlockCallToActionFragment" +#import "~/gql/fragments/BlockCardWithImageFragment" +#import "~/gql/fragments/BlockFormFragment" +#import "~/gql/fragments/BlockHighlightFragment" +#import "~/gql/fragments/BlockImpactNumbersCarouselFragment" +#import "~/gql/fragments/BlockMediaWithTextFragment" +#import "~/gql/fragments/BlockPullQuoteFragment" +#import "~/gql/fragments/BlockRichTextFragment" +#import "~/gql/fragments/BlockSimpleCardsFragment" +#import "~/gql/fragments/BlockMediaGalleryExtraFieldsFragment" +#import "~/gql/fragments/BlockGridGalleryCardsFragment" +#import "~/gql/fragments/BlockImpactNumberCardsFragment" fragment ExhibitionsAndCollectionsFpb on ElementInterface { blocks: exhibitionsAndCollectionsFpb { diff --git a/gql/fragments/collections/ImpactReportFpb.gql b/gql/fragments/collections/ImpactReportFpb.gql index 53d5f0288..86d07d47a 100644 --- a/gql/fragments/collections/ImpactReportFpb.gql +++ b/gql/fragments/collections/ImpactReportFpb.gql @@ -1,14 +1,14 @@ -#import "../gql/fragments/BlockBannerFeaturedFragment.gql" -#import "../gql/fragments/BlockCallToActionFragment.gql" -#import "../gql/fragments/BlockSimpleCardsFragment.gql" -#import "../gql/fragments/BlockPullQuoteFragment.gql" -#import "../gql/fragments/BlockMediaGalleryFragment.gql" -#import "../gql/fragments/BlockMediaWithTextFragment.gql" -#import "../gql/fragments/BlockImpactNumbersCarouselFragment.gql" -#import "../gql/fragments/BlockCardWithImageFragment.gql" -#import "../gql/fragments/BlockHighlightFragment.gql" -#import "../gql/fragments/BlockImpactNumberCardsFragment.gql" -#import "../gql/fragments/BlockGridGalleryCardsFragment.gql" +#import "~/gql/fragments/BlockBannerFeaturedFragment" +#import "~/gql/fragments/BlockCallToActionFragment" +#import "~/gql/fragments/BlockSimpleCardsFragment" +#import "~/gql/fragments/BlockPullQuoteFragment" +#import "~/gql/fragments/BlockMediaGalleryFragment" +#import "~/gql/fragments/BlockMediaWithTextFragment" +#import "~/gql/fragments/BlockImpactNumbersCarouselFragment" +#import "~/gql/fragments/BlockCardWithImageFragment" +#import "~/gql/fragments/BlockHighlightFragment" +#import "~/gql/fragments/BlockImpactNumberCardsFragment" +#import "~/gql/fragments/BlockGridGalleryCardsFragment" fragment ImpactReportFpb on ElementInterface { blocks: impactReportFpb { diff --git a/gql/queries/AllPages.gql b/gql/queries/AllPages.gql new file mode 100644 index 000000000..8dcd09e01 --- /dev/null +++ b/gql/queries/AllPages.gql @@ -0,0 +1,5 @@ +query AllPages { + entries { + uri + } +} \ No newline at end of file diff --git a/gql/queries/ArticleDetail.gql b/gql/queries/ArticleDetail.gql index 8ddbd1ac3..29f1a9bfb 100644 --- a/gql/queries/ArticleDetail.gql +++ b/gql/queries/ArticleDetail.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/AllFpb.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/AllFpb" query ArticleNewsDetail($slug: [String!]) { entry(section: "article", slug: $slug) { diff --git a/gql/queries/ArticleList.gql b/gql/queries/ArticleList.gql index 21bbd425d..f0d666bd2 100644 --- a/gql/queries/ArticleList.gql +++ b/gql/queries/ArticleList.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" query ArticleList { entries( diff --git a/gql/queries/AskUs.gql b/gql/queries/AskUs.gql index 2565a73ec..649a8d99c 100644 --- a/gql/queries/AskUs.gql +++ b/gql/queries/AskUs.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/AllFpb.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/AllFpb" query AskUs { entry(section: "askUs") { diff --git a/gql/queries/CollectionDetail.gql b/gql/queries/CollectionDetail.gql index e373ea3d4..b81476278 100644 --- a/gql/queries/CollectionDetail.gql +++ b/gql/queries/CollectionDetail.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/ExhibitionsAndCollectionsFpb.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/ExhibitionsAndCollectionsFpb" query CollectionDetail($slug: [String!]) { entry(section: "collection", slug: $slug) { @@ -8,7 +8,6 @@ query CollectionDetail($slug: [String!]) { physicalDigital uri slug - typeHandle sectionHandle heroImage { ... on heroImage_heroImage_BlockType { diff --git a/gql/queries/CollectionsAccessList.gql b/gql/queries/CollectionsAccessList.gql index 8c158ff9b..ba4ee94bb 100644 --- a/gql/queries/CollectionsAccessList.gql +++ b/gql/queries/CollectionsAccessList.gql @@ -35,4 +35,4 @@ query AccessCollectionsListing { } } } -} \ No newline at end of file +} diff --git a/gql/queries/CollectionsExploreList.gql b/gql/queries/CollectionsExploreList.gql index cdd045334..4c673d204 100644 --- a/gql/queries/CollectionsExploreList.gql +++ b/gql/queries/CollectionsExploreList.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" query ExploreCollectionsList { entry(section: "listingExploreCollections") { diff --git a/gql/queries/CollectionsList.gql b/gql/queries/CollectionsList.gql index 8a165a4f5..2890d45d3 100644 --- a/gql/queries/CollectionsList.gql +++ b/gql/queries/CollectionsList.gql @@ -1,5 +1,4 @@ -#import "../gql/fragments/collections/AllFpb.gql" - +#import "~/gql/fragments/collections/AllFpb" query CollectionsList { entry(section: "listingCollections") { ... on listingCollections_listingCollections_Entry { diff --git a/gql/queries/EndowmentDetail.gql b/gql/queries/EndowmentDetail.gql index 2b3c3fbbe..9267f617e 100644 --- a/gql/queries/EndowmentDetail.gql +++ b/gql/queries/EndowmentDetail.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/AllFpbWithNoBanner.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/AllFpbWithNoBanner" query EndowmentDetail($slug: [String!]) { entry(section: "endowment", slug: $slug) { @@ -40,4 +40,4 @@ query EndowmentDetail($slug: [String!]) { } ...AllFpbWithNoBanner } -} +} diff --git a/gql/queries/EndowmentList.gql b/gql/queries/EndowmentList.gql index 6f749ec82..b8d5552e8 100644 --- a/gql/queries/EndowmentList.gql +++ b/gql/queries/EndowmentList.gql @@ -1,5 +1,4 @@ -#import "../gql/fragments/Image.gql" - +#import "~/gql/fragments/Image" query EndowmentsList { entry(section: "listingEndowments") { ... on listingEndowments_listingEndowments_Entry { diff --git a/gql/queries/EventDetail.gql b/gql/queries/EventDetail.gql index f0ff99290..43987fb6f 100644 --- a/gql/queries/EventDetail.gql +++ b/gql/queries/EventDetail.gql @@ -1,6 +1,6 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/DefaultFpbWithCardsAndHighlight.gql" -#import "../gql/fragments/collections/ExhibitionsAndCollectionsFpb.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/DefaultFpbWithCardsAndHighlight.gql" +#import "~/gql/fragments/collections/ExhibitionsAndCollectionsFpb" query EventDetail($slug: [String!]) { event: entry(section: "event", slug: $slug) { ... on event_event_Entry { @@ -34,6 +34,16 @@ query EventDetail($slug: [String!]) { format: "Y-m-d\\TH:i" timezone: "America/Los_Angeles" ) + startDate: startDateWithTime + @formatDateTime( + format: "Y-m-d\\TH:i" + timezone: "America/Los_Angeles" + ) + endDate: endDateWithTime + @formatDateTime( + format: "Y-m-d\\TH:i" + timezone: "America/Los_Angeles" + ) eventType { ... on eventType_Category { id diff --git a/gql/queries/EventWorkshopList.gql b/gql/queries/EventWorkshopList.gql index 3b178c94e..bf803b6f8 100644 --- a/gql/queries/EventWorkshopList.gql +++ b/gql/queries/EventWorkshopList.gql @@ -1,4 +1,4 @@ -query EventWorkshopList { +query EventsExhibitionsList { entries(section: ["event", "exhibition"], orderBy: "postDate") { id title diff --git a/gql/queries/ExhibitionsAndEventsList.gql b/gql/queries/ExhibitionsAndEventsList.gql index c7297396f..6c8b18a4f 100644 --- a/gql/queries/ExhibitionsAndEventsList.gql +++ b/gql/queries/ExhibitionsAndEventsList.gql @@ -1,77 +1,102 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" -query ExhibitionsAndEventsList { - events: entries( - section: "event" - orderBy: "startDateWithTime ASC" - startDateWithTime: ">= now" - ) { - ... on event_event_Entry { - title: eventTitle - to: uri - sectionHandle - eventType { - title - } - startDateWithTime - @formatDateTime( - format: "Y-m-d\\TH:i:s" - timezone: "America/Los_Angeles" - ) - endDateWithTime - @formatDateTime( - format: "Y-m-d\\TH:i:s" - timezone: "America/Los_Angeles" - ) - associatedLocations { - title - } - eventLocation: location { - title - } - image { - ...Image - } +query EventsExhibitionsList { + events: entries( + section: "event" + orderBy: "startDateWithTime ASC" + startDateWithTime: ">= now" + ) { + ... on event_event_Entry { + title: eventTitle + to: uri + sectionHandle + eventType { + title + } + startDateWithTime + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + endDateWithTime + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + startDate: startDateWithTime + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + endDate: endDateWithTime + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + associatedLocations { + title + } + eventLocation: location { + title + } + image { + ...Image + } + } } - } - series: entries(section: "workshopOrEventSeries", orderBy: "title") { - title - sectionHandle - startDate - @formatDateTime(format: "Y-m-d\\TH:i:s", timezone: "America/Los_Angeles") - endDate - @formatDateTime(format: "Y-m-d\\TH:i:s", timezone: "America/Los_Angeles") - ongoing - text: summary - to: uri - category: workshopOrEventSeriesType - heroImage { - ... on heroImage_heroImage_BlockType { - id - image { - ...Image + series: entries( + section: "workshopOrEventSeries" + orderBy: "title" + ) { + title + sectionHandle + startDate + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + endDate + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + ongoing + text: summary + to: uri + category: workshopOrEventSeriesType + heroImage { + ... on heroImage_heroImage_BlockType { + id + image { + ...Image + } + } } - } } - } - exhibitions: entries(section: "exhibition", orderBy: "title") { - title - typeHandle - sectionHandle - startDate - @formatDateTime(format: "Y-m-d\\TH:i:s", timezone: "America/Los_Angeles") - endDate - @formatDateTime(format: "Y-m-d\\TH:i:s", timezone: "America/Los_Angeles") - ongoing - text: summary - to: uri - heroImage { - ... on heroImage_heroImage_BlockType { - id - image { - ...Image + exhibitions: entries(section: "exhibition", orderBy: "title") { + title + typeHandle + sectionHandle + startDate + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + endDate + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + ongoing + text: summary + to: uri + heroImage { + ... on heroImage_heroImage_BlockType { + id + image { + ...Image + } + } } - } } - } } diff --git a/gql/queries/ExhibitionsAndEventsListSingle.gql b/gql/queries/ExhibitionsAndEventsListSingle.gql index 4d64a4dff..9eda32839 100644 --- a/gql/queries/ExhibitionsAndEventsListSingle.gql +++ b/gql/queries/ExhibitionsAndEventsListSingle.gql @@ -1,81 +1,81 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" -query ExhibitionsAndEventsListSingle { - entry(section: "listingEventsExhibitions") { - ... on listingEventsExhibitions_listingEventsExhibitions_Entry { - title - text: summary - featuredEvents { - category - title - eventTitle - summary - sectionHandle - to: uri - eventType { - title - } - eventDescription - ongoing - startDate - @formatDateTime( - format: "Y-m-d\\TH:i:s" - timezone: "America/Los_Angeles" - ) - endDate - @formatDateTime( - format: "Y-m-d\\TH:i:s" - timezone: "America/Los_Angeles" - ) - startDateWithTime - @formatDateTime( - format: "Y-m-d\\TH:i" - timezone: "America/Los_Angeles" - ) - endDateWithTime - @formatDateTime( - format: "Y-m-d\\TH:i" - timezone: "America/Los_Angeles" - ) - workshopOrEventSeriesType - typeHandle - eventLocation: location { - title - } - associatedLocations { - title - } - associatedLocationsAndPrograms { - title - to: uri - } - heroImage { - ... on heroImage_heroImage_BlockType { - id - image { - ...Image +query EventsExhibitionsList { + entry(section: "listingEventsExhibitions") { + ... on listingEventsExhibitions_listingEventsExhibitions_Entry { + title + text: summary + featuredEvents { + category + title + eventTitle + summary + sectionHandle + to: uri + eventType { + title + } + eventDescription + ongoing + startDate + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + endDate + @formatDateTime( + format: "Y-m-d\\TH:i:s" + timezone: "America/Los_Angeles" + ) + startDateWithTime + @formatDateTime( + format: "Y-m-d\\TH:i" + timezone: "America/Los_Angeles" + ) + endDateWithTime + @formatDateTime( + format: "Y-m-d\\TH:i" + timezone: "America/Los_Angeles" + ) + workshopOrEventSeriesType + typeHandle + eventLocation: location { + title + } + associatedLocations { + title + } + associatedLocationsAndPrograms { + title + to: uri + } + heroImage { + ... on heroImage_heroImage_BlockType { + id + image { + ...Image + } + } + } } - } - } - } - featuredEventSeriesAndExhibitions { - title - typeHandle - uri - startDate - endDate - ongoing - text: summary - to: uri - heroImage { - ... on heroImage_heroImage_BlockType { - image { - ...Image + featuredEventSeriesAndExhibitions { + title + typeHandle + uri + startDate + endDate + ongoing + text: summary + to: uri + heroImage { + ... on heroImage_heroImage_BlockType { + image { + ...Image + } + } + } + workshopOrEventSeriesType } - } } - workshopOrEventSeriesType - } } - } } diff --git a/gql/queries/FooterPrimaryItems.gql b/gql/queries/FooterPrimaryItems.gql index 9a9881c2a..622ef74f8 100644 --- a/gql/queries/FooterPrimaryItems.gql +++ b/gql/queries/FooterPrimaryItems.gql @@ -1,4 +1,4 @@ -#import "~/gql/fragments/MenuItem.gql" +#import "~/gql/fragments/MenuItem" query FooterPrimaryItems { nodes(navHandle: "footerPrimary", level: 1) { diff --git a/gql/queries/FooterSockItems.gql b/gql/queries/FooterSockItems.gql index 30830c2fe..2cd9ac0d8 100644 --- a/gql/queries/FooterSockItems.gql +++ b/gql/queries/FooterSockItems.gql @@ -1,4 +1,4 @@ -#import "~/gql/fragments/MenuItem.gql" +#import "~/gql/fragments/MenuItem" query FooterSockItems { nodes(navHandle: "footerSockLinks") { diff --git a/gql/queries/GeneralContentDetail.gql b/gql/queries/GeneralContentDetail.gql index a2f04d12b..2753cbdcf 100644 --- a/gql/queries/GeneralContentDetail.gql +++ b/gql/queries/GeneralContentDetail.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/AllFpb.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/AllFpb" query GeneralContentDetail($path: [String!]) { entry(section: "generalContentPage", uri: $path) { diff --git a/gql/queries/HeaderMainMenuItems.gql b/gql/queries/HeaderMainMenuItems.gql index d9820c519..8592000d8 100644 --- a/gql/queries/HeaderMainMenuItems.gql +++ b/gql/queries/HeaderMainMenuItems.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/MenuItem.gql" +#import "~/gql/fragments/MenuItem" query HeaderMainMenuItems { secondary: nodes(navHandle: "secondaryMenu", level: 1) { diff --git a/gql/queries/HelpTopicDetail.gql b/gql/queries/HelpTopicDetail.gql index e75980d43..861298f70 100644 --- a/gql/queries/HelpTopicDetail.gql +++ b/gql/queries/HelpTopicDetail.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/collections/DefaultFpb.gql" +#import "~/gql/fragments/collections/DefaultFpb" query HelpTopicDetail($slug: [String!]) { entry(section: "helpTopic", slug: $slug) { diff --git a/gql/queries/Homepage.gql b/gql/queries/Homepage.gql index 88266f341..09cdd2ee0 100644 --- a/gql/queries/Homepage.gql +++ b/gql/queries/Homepage.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" query Homepage { entry(section: "homepage") { diff --git a/gql/queries/ImpactReport.gql b/gql/queries/ImpactReport.gql index b0420ee55..1de782081 100644 --- a/gql/queries/ImpactReport.gql +++ b/gql/queries/ImpactReport.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/ImpactReportFpb.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/ImpactReportFpb" query ImpactReport($path: [String!]) { entry(section: "impactReport", uri: $path, orderBy:"postDate desc") { diff --git a/gql/queries/ImpactReportStory.gql b/gql/queries/ImpactReportStory.gql index 45ee572e8..fed54d604 100644 --- a/gql/queries/ImpactReportStory.gql +++ b/gql/queries/ImpactReportStory.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/collections/AllFpb.gql" -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/collections/AllFpb" +#import "~/gql/fragments/Image" query ImpactReportStory($slug: [String!]) { entry(section: "impactReportStory", slug: $slug) { diff --git a/gql/queries/LocationDetail.gql b/gql/queries/LocationDetail.gql index 0054a77ab..45c10bbea 100644 --- a/gql/queries/LocationDetail.gql +++ b/gql/queries/LocationDetail.gql @@ -1,11 +1,10 @@ -#import "../gql/fragments/collections/AllFpb.gql" -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/collections/AllFpb" +#import "~/gql/fragments/Image" query LocationDetail($slug: [String!]) { entry(section: "location", slug: $slug) { ... on location_location_Entry { id - typehandle sectionHandle slug uri @@ -95,7 +94,6 @@ query LocationDetail($slug: [String!]) { altText } } - authors: staffMember { id slug @@ -154,14 +152,14 @@ query LocationDetail($slug: [String!]) { } requiresRegistration eventDescription - #heroImage { - # ... on heroImage_heroImage_BlockType { - # id - # image { - # ...Image - # } - #} - #} + heroImage { + ... on heroImage_heroImage_BlockType { + id + image { + ...Image + } + } + } eventType { title } @@ -186,7 +184,6 @@ query LocationDetail($slug: [String!]) { title summary dateUpdated - ongoing heroImage { ... on heroImage_heroImage_BlockType { diff --git a/gql/queries/LocationsList.gql b/gql/queries/LocationsList.gql index 596fc6fd9..72c5b6ce4 100644 --- a/gql/queries/LocationsList.gql +++ b/gql/queries/LocationsList.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" query LocationsList { entry(section: "listingLocationsHours") { title @@ -62,3 +62,13 @@ query LocationsList { affiliateLibraryUrl } } + +# fragment Image on AssetInterface { +# id +# src: url(transform: "fullscreen") +# height(transform: "fullscreen") +# width(transform: "fullscreen") +# srcset(sizes: ["375", "960", "1280", "1920", "2560"]) +# alt: title +# focalPoint +# } diff --git a/gql/queries/MenuItems.gql b/gql/queries/MenuItems.gql index 7ff17f726..8d4790a27 100644 --- a/gql/queries/MenuItems.gql +++ b/gql/queries/MenuItems.gql @@ -1,4 +1,4 @@ -#import "~/gql/fragments/MenuItem.gql" +#import "~/gql/fragments/MenuItem" query MenuItems($handle: String) { nodes(navHandle: $handle, level: 1) { diff --git a/gql/queries/PoliciesList.gql b/gql/queries/PoliciesList.gql index 6d8dab68b..98c129507 100644 --- a/gql/queries/PoliciesList.gql +++ b/gql/queries/PoliciesList.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/collections/AllFpbWithNoBanner.gql" +#import "~/gql/fragments/collections/AllFpbWithNoBanner" query PoliciesList { entry(section: "listingPolicies") { diff --git a/gql/queries/PolicyDetail.gql b/gql/queries/PolicyDetail.gql index 76d42c579..643036846 100644 --- a/gql/queries/PolicyDetail.gql +++ b/gql/queries/PolicyDetail.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/AllFpb.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/AllFpb" query PolicyDetail($slug: [String!]) { entry(section: "policy", slug: $slug) { diff --git a/gql/queries/ProgramDetail.gql b/gql/queries/ProgramDetail.gql index 5b2cfc425..1e1a759c3 100644 --- a/gql/queries/ProgramDetail.gql +++ b/gql/queries/ProgramDetail.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/Image.gql" -#import "../gql/fragments/collections/AllFpb.gql" +#import "~/gql/fragments/Image" +#import "~/gql/fragments/collections/AllFpb" query ProgramDetail($slug: [String!]) { entry(section: "program", slug: $slug) { diff --git a/gql/queries/ProgramsList.gql b/gql/queries/ProgramsList.gql index cc12f90aa..e58646535 100644 --- a/gql/queries/ProgramsList.gql +++ b/gql/queries/ProgramsList.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" query ProgramList { entry(section: "listingPrograms") { diff --git a/gql/queries/ImpactReportsList.gql b/gql/queries/ReportsList.gql similarity index 84% rename from gql/queries/ImpactReportsList.gql rename to gql/queries/ReportsList.gql index 802def9d8..7fb7b2bdb 100644 --- a/gql/queries/ImpactReportsList.gql +++ b/gql/queries/ReportsList.gql @@ -1,6 +1,6 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" -query ImpactReportsList { +query ReportsList { entry(section: "listingImpactReports") { ... on listingImpactReports_listingImpactReports_Entry { title diff --git a/gql/queries/ServiceOrResourceOrWorkshopDetail.gql b/gql/queries/ServiceOrResourceOrWorkshopDetail.gql index 01d1524d3..93be35ac6 100644 --- a/gql/queries/ServiceOrResourceOrWorkshopDetail.gql +++ b/gql/queries/ServiceOrResourceOrWorkshopDetail.gql @@ -1,5 +1,5 @@ -#import "../gql/fragments/collections/DefaultFpbWithNoCta.gql" -#import "../gql/fragments/collections/DefaultFpbWithCardsAndHighlight.gql" +#import "~/gql/fragments/collections/DefaultFpbWithNoCta" +#import "~/gql/fragments/collections/DefaultFpbWithCardsAndHighlight" query ServiceOrResourceOrWorkshopDetail($slug: [String!]) { serviceOrResource: entry(section: "serviceOrResource", slug: $slug) { @@ -8,7 +8,7 @@ query ServiceOrResourceOrWorkshopDetail($slug: [String!]) { sectionHandle slug uri - serviceOrResourceType # keep this field , used by ES + serviceOrResourceType buttonUrl { ... on buttonUrl_button_BlockType { buttonText diff --git a/gql/queries/StaffDetail.gql b/gql/queries/StaffDetail.gql index b2698ef5e..f482f3b79 100644 --- a/gql/queries/StaffDetail.gql +++ b/gql/queries/StaffDetail.gql @@ -1,5 +1,4 @@ -#import "../gql/fragments/Image.gql" - +#import "~/gql/fragments/Image" query StaffDetail($slug: [String]!) { entry(section: "staffMember", slug: $slug) { ... on staffMember_staffMember_Entry { diff --git a/gql/queries/StaffList.gql b/gql/queries/StaffList.gql index 414186af3..572ebb81c 100644 --- a/gql/queries/StaffList.gql +++ b/gql/queries/StaffList.gql @@ -1,4 +1,4 @@ -#import "../gql/fragments/Image.gql" +#import "~/gql/fragments/Image" query StaffList { entry(section: "listingStaffDirectory") { title diff --git a/layouts/default.vue b/layouts/default.vue index 674241d36..96227aec6 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -1,155 +1,178 @@ - - - diff --git a/layouts/error.vue b/layouts/error.vue new file mode 100644 index 000000000..0dfec1b32 --- /dev/null +++ b/layouts/error.vue @@ -0,0 +1,102 @@ + + + diff --git a/layouts/impact.vue b/layouts/impact.vue new file mode 100644 index 000000000..a491a102b --- /dev/null +++ b/layouts/impact.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/modules/finalize.js b/modules/finalize.js deleted file mode 100644 index fa758c7f7..000000000 --- a/modules/finalize.js +++ /dev/null @@ -1,129 +0,0 @@ -import { defineNuxtModule, useLogger } from 'nuxt/kit' -import fetch from 'node-fetch' - -export default defineNuxtModule({ - setup(options, nuxt) { - const logger = useLogger('finalize-module') - - async function createTempLibGuideIndex(now) { - const tempLibGuideIndex = `${nuxt.options.runtimeConfig.public.esTempIndexPrefixLibguides}-${now.toISOString().toLowerCase().replaceAll(':', '-')}` - logger.warn('Libguides Temp Index named: ' + tempLibGuideIndex) - - const response = await fetch(`${nuxt.options.runtimeConfig.public.esURL}/${tempLibGuideIndex}`, { - headers: { - Authorization: `ApiKey ${nuxt.options.runtimeConfig.esWriteKey}`, - 'Content-Type': 'application/json', - }, - method: 'PUT', - body: JSON.stringify({ - settings: { - analysis: { - analyzer: { - default: { - type: 'custom', - tokenizer: 'standard', - filter: ['stemmer', 'lowercase', 'stop', 'asciifolding'], - }, - default_search: { - type: 'custom', - tokenizer: 'standard', - filter: ['stemmer', 'lowercase', 'stop', 'asciifolding'], - }, - }, - }, - }, - }), - }) - - const body = await response.text() - try { - const jsonData = JSON.parse(body) - logger.warn('Temp libguides index created: ' + JSON.stringify(jsonData)) - return tempLibGuideIndex - } catch (err) { - logger.error('Temp libguides index Error:', err) - logger.error('Temp libguides index Response body:', body) - throw err - } - } - - async function reindexContent(tempLibGuideIndex) { - const response = await fetch(`${nuxt.options.runtimeConfig.public.esURL}/_reindex`, { - headers: { - Authorization: `ApiKey ${nuxt.options.runtimeConfig.esWriteKey}`, - 'Content-Type': 'application/json', - }, - method: 'POST', - body: JSON.stringify({ - source: { - index: nuxt.options.runtimeConfig.public.libguidesEsIndex, - }, - dest: { - index: tempLibGuideIndex, - }, - }), - }) - - const body = await response.text() - try { - const jsonData = JSON.parse(body) - logger.warn('Reindex done: ' + JSON.stringify(jsonData)) - nuxt.options.runtimeConfig.public.esTempIndexLibguides = tempLibGuideIndex - } catch (err) { - logger.error('Reindex Error:', err) - logger.error('Reindex Response body:', body) - throw err - } - } - - async function updateAliases(tempLibGuideIndex) { - const response = await fetch(`${nuxt.options.runtimeConfig.public.esURL}/_aliases`, { - headers: { - Authorization: `ApiKey ${nuxt.options.runtimeConfig.esWriteKey}`, - 'Content-Type': 'application/json', - }, - method: 'POST', - body: JSON.stringify({ - actions: [ - { - remove: { - index: '*', - alias: nuxt.options.runtimeConfig.public.esAlias, - }, - }, - { - add: { - indices: [nuxt.options.runtimeConfig.public.esTempIndex, tempLibGuideIndex], - alias: nuxt.options.runtimeConfig.public.esAlias, - }, - }, - ], - }), - }) - - const body = await response.text() - try { - const jsonData = JSON.parse(body) - logger.warn('Alias updated: ', JSON.stringify(jsonData), nuxt.options.runtimeConfig.public.esAlias) - } catch (err) { - logger.error('Error:', err) - logger.error('Response body:', body) - throw err - } - } - - nuxt.hooks.hook('nitro:build:public-assets', async () => { - logger.warn('Ready for generating alias...') - const timeElapsed = Date.now() - const now = new Date(timeElapsed) - - try { - const tempLibGuideIndex = await createTempLibGuideIndex(now) - await reindexContent(tempLibGuideIndex) - await updateAliases(tempLibGuideIndex) - } catch (err) { - logger.error('An error occurred:', err) - } - }) - }, -}) diff --git a/modules/indexAliasGenerator.js b/modules/indexAliasGenerator.js new file mode 100644 index 000000000..2c5392610 --- /dev/null +++ b/modules/indexAliasGenerator.js @@ -0,0 +1,55 @@ +import fetch from "node-fetch" +const consola = require('consola') +consola.level = 5 + +export default function () { + this.nuxt.hook("generate:before", async () => { + // console.log(generator) + // console.log(generatorOptions) + // console.log("In generate before hook for generating a new ES index: "+ JSON.stringify(this.nuxt.options.publicRuntimeConfig)) + const timeElapsed = Date.now() + const now = new Date(timeElapsed) + + let esIndex = `${this.nuxt.options.publicRuntimeConfig.esIndexPrefix}-${now.toISOString().toLowerCase().replaceAll(":", "-")}` + consola.debug("Index named:" + esIndex) + //console.warn("Index path:"+`${this.nuxt.options.publicRuntimeConfig.esURL}/${esIndex}`) + //console.warn("Index write key:"+this.nuxt.options.privateRuntimeConfig.esWriteKey) + const response = await fetch(`${this.nuxt.options.publicRuntimeConfig.esURL}/${esIndex}`, { + headers: { + 'Authorization': `ApiKey ${this.nuxt.options.privateRuntimeConfig.esWriteKey}`, + 'Content-Type': 'application/json', + }, + method: 'PUT', + body: JSON.stringify({ + settings: { + analysis: { + analyzer: { + default: { + type: "custom", + tokenizer: "standard", + filter: ["stemmer", "lowercase", "stop", "asciifolding"], + }, + default_search: { + type: "custom", + tokenizer: "standard", + filter: ["stemmer", "lowercase", "stop", "asciifolding"], + } + }, + } + } + }), + }) + const body = await response.text() + try { + let testJson = JSON.parse(body) + this.options.tempIndex = esIndex + this.nuxt.options.publicRuntimeConfig['esTempIndex'] = esIndex + + consola.debug("Index created:" + JSON.stringify(testJson)) + } catch (err) { + consola.error("Error:", err) + consola.error("Response body:", body) + throw err + } + }) +} diff --git a/modules/init.js b/modules/init.js deleted file mode 100644 index 7124c4630..000000000 --- a/modules/init.js +++ /dev/null @@ -1,64 +0,0 @@ -import { defineNuxtModule } from 'nuxt/kit' -import fetch from 'node-fetch' -export default defineNuxtModule({ - - setup(options, nuxt) { - // console.log('Nuxt module start ') - // console.log('process.env.NODE_ENV:' + process.env.NODE_ENV) - if (!nuxt.options._prepare && process.env.NODE_ENV !== 'development') { - nuxt.hooks.hook('nitro:init', async (nitro) => { - // console.log('Ready to create library temp index...') - const timeElapsed = Date.now() - const now = new Date(timeElapsed) - - const esLibraryIndexTemp = nuxt.options.runtimeConfig.public.esTempIndex - console.log('Index named:' + esLibraryIndexTemp) - // https://www.elastic.co/guide/en/elasticsearch/reference/current/flattened.html - try { - const response = await fetch(`${nuxt.options.runtimeConfig.public.esURL}/${esLibraryIndexTemp}`, { - headers: { - Authorization: `ApiKey ${nuxt.options.runtimeConfig.esWriteKey}`, - 'Content-Type': 'application/json', - }, - method: 'PUT', - body: JSON.stringify({ - mappings: { - properties: { - blocks: { // TODO Making all flexible blocks flattened in ES to avoid any performnce issues further - type: 'flattened' - } - } - }, - settings: { - 'index.mapping.total_fields.limit': 1500, // Or a suitable limit - analysis: { - analyzer: { - default: { - type: 'custom', - tokenizer: 'standard', - filter: ['stemmer', 'lowercase', 'stop', 'asciifolding'], - }, - default_search: { - type: 'custom', - tokenizer: 'standard', - filter: ['stemmer', 'lowercase', 'stop', 'asciifolding'], - } - }, - } - } - }), - }) - const body = await response.text() - const testJson = JSON.parse(body) - console.log('Index created:' + JSON.stringify(testJson)) - console.log('Elastic Search index created succesfully!') - } catch (err) { - console.error('Error:', err) - console.error('Response body:', body) - throw err - } - }) - } - // console.log('Nuxt module end ') - } -}) diff --git a/modules/populate/index.js b/modules/populate/index.js new file mode 100644 index 000000000..5c6a63b89 --- /dev/null +++ b/modules/populate/index.js @@ -0,0 +1,18 @@ +/* eslint-env node */ + +import { resolve } from "path" + +export default function () { + this.addTemplate({ + src: resolve(__dirname, "populate.server.js"), + fileName: "populate.server.js", + }) + this.nuxt.hook("build:before", () => { + this.options.plugins.push(`${__dirname}/populate.server.js`) + }) + this.nuxt.hook("generate:before", ({ setPayload }) => { + // Use an empty object as payload just so server has + // a hint that generate is being used + setPayload({}) + }) +} diff --git a/modules/populate/populate.server.js b/modules/populate/populate.server.js new file mode 100644 index 000000000..1e1594d37 --- /dev/null +++ b/modules/populate/populate.server.js @@ -0,0 +1,27 @@ +/* + * This module will run a store action called nuxtGenerateInit + * and store the returned result and pass it as context.generatePayload + * in subsequent calls to nuxtGenerateInit. + */ + +const kPopulated = Symbol("kPopulated") +const inMemory = {} + +export default async (context) => { + const { payload: isGenerate, store } = context + + // If isGenerate and we have the data from previous request, then populate payload once per server boot + if (isGenerate && inMemory[kPopulated]) { + context.generatePayload = inMemory[kPopulated] + await store.dispatch("nuxtGenerateInit", context) + return + } + + // We don't have previous data, so run nuxtGenerateInit with no payload added, and save result + if (store._actions.nuxtGenerateInit) { + const data = await store.dispatch("nuxtGenerateInit", context) + if (isGenerate) { + inMemory[kPopulated] = data + } + } +} diff --git a/modules/sitemapRouteGenerator.js b/modules/sitemapRouteGenerator.js new file mode 100644 index 000000000..acb000c00 --- /dev/null +++ b/modules/sitemapRouteGenerator.js @@ -0,0 +1,12 @@ +export default function () { + this.nuxt.hook("generate:done", (context) => { + const routesToExclude = [] // Add any route you don't want in your sitemap. Potentially get this from an .env file. + const allRoutes = Array.from(context.generatedRoutes) + const routes = allRoutes.filter( + (route) => !routesToExclude.includes(route) + ) + + this.nuxt.options.sitemap.routes = [...routes] + + }) +} diff --git a/modules/swapAliasIndexGenerator.js b/modules/swapAliasIndexGenerator.js new file mode 100644 index 000000000..73f1259ca --- /dev/null +++ b/modules/swapAliasIndexGenerator.js @@ -0,0 +1,111 @@ +import fetch from "node-fetch" +const consola = require('consola') +consola.level = 5 + +export default function () { + this.nuxt.hook("generate:done", async() => { + consola.debug("In generate done hook swap alias") + consola.debug(this.nuxt.options.publicRuntimeConfig.esTempIndex) + consola.debug(this.nuxt.options.publicRuntimeConfig.esIndex) + const timeElapsed = Date.now() + const now = new Date(timeElapsed) + + let esIndex = `${this.nuxt.options.publicRuntimeConfig.esTempIndexPrefixLibguides}-${now.toISOString().toLowerCase().replaceAll(":", "-")}` + consola.debug("Libguides Temp Index named:" + esIndex) + const tempLibGuideIndexresponse = await fetch(`${this.nuxt.options.publicRuntimeConfig.esURL}/${esIndex}`, { + headers: { + 'Authorization': `ApiKey ${this.nuxt.options.privateRuntimeConfig.esWriteKey}`, + 'Content-Type': 'application/json', + }, + method: 'PUT', + body: JSON.stringify({ + settings: { + analysis: { + analyzer: { + default: { + type: "custom", + tokenizer: "standard", + filter: ["stemmer", "lowercase", "stop", "asciifolding"], + }, + default_search: { + type: "custom", + tokenizer: "standard", + filter: ["stemmer", "lowercase", "stop", "asciifolding"], + } + }, + } + } + }), + }) + const tempBody = await tempLibGuideIndexresponse.text() + try { + let testJsonTemp = JSON.parse(tempBody) + + consola.debug("Temp libguides index created :"+JSON.stringify(testJsonTemp)) + } catch (err) { + consola.error("Temp libguides index Error:", err) + consola.error("Temp libguides index Response body:", tempBody) + throw err + } + + const reindexResponse = await fetch(`${this.nuxt.options.publicRuntimeConfig.esURL}/_reindex`, { + headers: { + 'Authorization': `ApiKey ${this.nuxt.options.privateRuntimeConfig.esWriteKey}`, + 'Content-Type': 'application/json', + }, + method: 'POST', + body:JSON.stringify({ + "source": { + "index": this.nuxt.options.publicRuntimeConfig.libguidesEsIndex + }, + "dest": { + "index": esIndex + } + }) + }) + const reindexBody = await reindexResponse.text() + try { + let testJsonReindex = JSON.parse(reindexBody) + + consola.debug("Reindex done :"+JSON.stringify(testJsonReindex)) + this.nuxt.options.publicRuntimeConfig['esTempIndexLibguides'] = esIndex + } catch (err) { + consola.error("Reindex Error:", err) + consola.error("Reindex Response body:", reindexBody) + throw err + } + const response = await fetch(`${this.nuxt.options.publicRuntimeConfig.esURL}/_aliases`, { + headers: { + 'Authorization': `ApiKey ${this.nuxt.options.privateRuntimeConfig.esWriteKey}`, + 'Content-Type': 'application/json', + }, + method: 'POST', + body: JSON.stringify({ + "actions": [ + { + "remove": { + "index": "*", + "alias": this.nuxt.options.publicRuntimeConfig.esIndex + } + }, + { + "add": { + "indices": [this.nuxt.options.publicRuntimeConfig.esTempIndex,esIndex], + "alias": this.nuxt.options.publicRuntimeConfig.esIndex + } + } + ] + }), + }) + const body = await response.text() + try { + let testJson = JSON.parse(body) + + consola.debug("Alias updated :"+JSON.stringify(testJson)) + } catch (err) { + consola.error("Error:", err) + consola.error("Response body:", body) + throw err + } + }) +} diff --git a/netlify.toml b/netlify.toml index e66a8446d..f40b32500 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,3 +1,3 @@ [[edge_functions]] path = "/*" -function = "blockUserAgents" \ No newline at end of file +function = "blockUserAgents" diff --git a/netlify/edge-functions/blockUserAgents.js b/netlify/edge-functions/blockUserAgents.js index afaea0542..fe2d7e751 100644 --- a/netlify/edge-functions/blockUserAgents.js +++ b/netlify/edge-functions/blockUserAgents.js @@ -1,14 +1,14 @@ export default async (request, context) => { - const blockedUserAgents = [ - 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)', 'claudebot' - ] + const blockedUserAgents = [ + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)','claudebot' + ] - const userAgent = await request.headers.get('user-agent') - if (blockedUserAgents.includes(userAgent)) { - return new Response('Access Denied', { - status: 403 - }) - } + const userAgent = request.headers.get('user-agent') + if (blockedUserAgents.includes(userAgent)) { + return new Response('Access Denied', { + status: 403 + }) + } - return context.next() + return context.next() } diff --git a/nuxt.config.js b/nuxt.config.js new file mode 100644 index 000000000..502b9f69a --- /dev/null +++ b/nuxt.config.js @@ -0,0 +1,234 @@ +/* eslint-env node */ +import axios from 'axios' +import _get from "lodash/get" + +export default { + server: { + port: 3000, + host: "0.0.0.0", + }, + target: "static", + components: true, + privateRuntimeConfig: { + esWriteKey: process.env.ES_WRITE_KEY, + }, + publicRuntimeConfig: { + host: process.env.SITEMAP_HOST, + s3Bucket: process.env.S3_BUCKET, + esReadKey: process.env.ES_READ_KEY || "", + esIndex: process.env.ES_INDEX || "", + libguidesEsIndex: process.env.LIBGUIDES_ES_INDEX || "", + esIndexPrefix: process.env.ES_INDEX_PREFIX || "", + esTempIndexPrefixLibguides: process.env.ES_TEMP_INDEX_PREFIX_LIBGUIDES || "", + esTempIndex: "", + esTempIndexLibguides: "", + esURL: process.env.ES_URL || "", + libcalProxy: + process.env.LIBCAL_ENDPOINT || + "https://proxy.calendar.library.ucla.edu/", + }, + /* + ** Required charset and viewport meta tags + */ + head: { + htmlAttrs: { + lang: "en", + }, + meta: [ + { charset: "utf-8" }, + { + name: "viewport", + content: + "width=device-width, initial-scale=1.0, minimum-scale=1.0", + }, + ], + link: [ + { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' } + ] + }, + /* + ** Global CSS + */ + css: [ + "ucla-library-design-tokens/scss/fonts.scss", + "ucla-library-design-tokens/scss/app-global.scss", + "~/assets/styles/global.scss", + ], + + /* + ** Load SCSS into each component + */ + styleResources: { + scss: ["ucla-library-design-tokens/scss/app.scss"], + }, + + /* + ** Plugins to load before mounting the App + */ + plugins: [ + "~/plugins/add-library-website-vue-components.js", + "~/plugins/preview.client.js", + "~/plugins/browser-events.client.js", + "~/plugins/craft.js", + "~/plugins/data-api.js", + "~/plugins/elasticsearchplugin.js", + "~/plugins/get-headers.client.js", + "~/plugins/scrape-formid.client.js", + "~/plugins/add-skip-to.js", + "~/plugins/update-library-site-alert.client.js", + ], + + /* + * Axios. Used for Libcal query. + */ + axios: { + baseURL: + process.env.LIBCAL_ENDPOINT || + "https://proxy.calendar.library.ucla.edu/", + }, + + /* + * GraphQL Request. Used for querying from Craft + */ + graphql: { + clients: { + default: { + endpoint: process.env.CRAFT_ENDPOINT, + options: {}, + }, + }, + }, + + /* + ** Nuxt generate configuration. Used when generating a static site. + */ + generate: { + // exclude is for npm run genereate uncomment for local builds + // exclude:[/^\/help/,/^\/visit/,/^\/give/,/^\/help/,/^\/give/,/^\/impact/], + fallback: "404.html", + interval: 500, + concurrency: 10, + async routes() { + const result = await axios({ + url: process.env.CRAFT_ENDPOINT, + method: "post", + data: { query: 'query EventsExhibitionsList { events: entries(section: "event") { uri } series: entries(section: "workshopOrEventSeries") { uri } exhibitions: entries(section: "exhibition") { uri } }' }, + }) + return [ + ..._get(result, "data.data.events", []), + ..._get(result, "data.data.series", []), + ..._get(result, "data.data.exhibitions", []), + ].map(entry => "/" + entry.uri) + }, + }, + + /* + ** Page transition + */ + pageTransition: { + name: "fade", + mode: "out-in", + }, + + /* + ** Customize the progress-bar color + ** See: https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-loading + */ + loading: { + color: "#ffe800", + height: "3px", + }, + + /* + ** Nuxt router configuration. Used to define settingg for the router. + */ + // TODO find out later why this causing the live preview to not work + /*router: { + trailingSlash: false, + },*/ + + + /* + * Nuxt modules + */ + modules: [ + "~/modules/populate", + "@nuxtjs/axios", + "@nuxtjs/gtm", + "nuxt-robots-module", + "@nuxtjs/sitemap", + ], // This needs to be last always, + + gtm: { + id: "GTM-T2SXV2", + }, + + sitemap: { + hostname: + process.env.SITEMAP_HOST || "https://www.library.ucla.edu", + routes: [], + }, + + /* + * Nuxt build modules + */ + buildModules: [ + "@nuxtjs/router-extras", + "@nuxtjs/style-resources", + "nuxt-graphql-request", + "@/modules/sitemapRouteGenerator", + "@/modules/indexAliasGenerator", + "@/modules/swapAliasIndexGenerator", + ], + + /* + ** Nuxt webpack build configuration + */ + build: { + // eslint-disable-next-line no-unused-vars + extend(config, ctx) { + // Remove SVG from default Nuxt webpack rules, add back in rule without SVGs + const svgRule = config.module.rules.find((rule) => + rule.test.test(".svg") + ) + svgRule.test = /\.(png|jpe?g|gif|webp)$/i + + // Add custom loading of SVGs as Vue components + config.resolve.extensions.push(".svg") + config.module.rules.push({ + test: /\.svg$/, + oneOf: [ + { + // ?raw on import will give raw SVG with no optimizations. + // Good if you need unaltered SVGs for animations. + resourceQuery: /raw/, + use: [ + "babel-loader", + { + loader: "vue-svg-loader", + options: { + svgo: false, + }, + }, + ], + }, + { + // ?url on import will give base64 encoded SVG. + // Good for use in CSS. + resourceQuery: /url/, + use: ["url-loader"], + }, + { + // Default SVG loader, custom SVGO options + loader: "vue-svg-loader", + options: { + svgo: { + plugins: [{ removeViewBox: false }], + }, + }, + }, + ], + }) + }, + }, +} diff --git a/nuxt.config.ts b/nuxt.config.ts deleted file mode 100644 index 1e3cb61d2..000000000 --- a/nuxt.config.ts +++ /dev/null @@ -1,235 +0,0 @@ -// https://nuxt.com/docs/api/configuration/nuxt-config - -export default defineNuxtConfig({ - // debug: true, - // sourcemap: true, - - /* devtools: { - enabled: true, - timeline: { - enabled: true - } - }, */ - // when using local pnpm link with component library uncomment this line - vite: { - build: { - minify: false - }, - // ADDED FOLLOWING LINE TO RESOLVE CROSS-FETCH ERROR - // Uncaught SyntaxError: The requested module '/_nuxt/node_modules/.pnpm/cross-fetch@3.1.8/node_modules/cross-fetch/dist/browser-ponyfill.js?v=4dc3293b' - // does not provide an export named 'default' (at index.js?v=4dc3293b:6:8) - // localhost/: 1 - resolve: { - alias: { - 'cross-fetch': 'cross-fetch/dist/browser-ponyfill.js', - '~ucla-library-design-tokens': 'ucla-library-design-tokens', - // 'vue-router': 'vue-router' - }, - }, - server: { - fs: { - strict: false, - }, - }, - css: { - preprocessorOptions: { - scss: { - additionalData: ` - @import "ucla-library-design-tokens/scss/fonts.scss"; - @import "ucla-library-design-tokens/scss/app.scss"; - `, - }, - }, - } - }, - - nitro: { - minify: false, - prerender: { - crawlLinks: true, - failOnError: false, - concurrency: 250, - interval: 100, - // ignore: ['/', '/about', '/help', '/impact'] - routes: ['/'], - }, - hooks: { - 'prerender:generate'(route) { - // TODO: fix issue with recursive fetches with query string, e.g. - // `/enterprise/agencies?region=europe&amp;amp;service=ecommerce&amp;service=ecommerce&service=content-marketing` - /* if (route.route?.includes('&')) { - route.skip = true - } */ - // console.log('prerender:generate', route) - }, - 'prerender:routes'(routes) { - /* const allRoutes = [] - - const response = await fetch(process.env.CRAFT_ENDPOINT, { - headers: { - 'Content-Type': 'application/json' - }, - method: 'POST', - body: JSON.stringify({ query: 'query AllPages { entries { uri, sectionHandle } }' }) - }) - - const postPages = await response.json() - // console.log('All pages', JSON.stringify(postPages.data.entries)) - if (postPages && postPages.data && postPages.data.entries) { - const postWithoutPayloadRoutes = postPages.data.entries.filter(item => - !item.sectionHandle.includes('meap') && !item.sectionHandle.includes('ftva') - && !item.sectionHandle.includes('organization') && !item.sectionHandle.includes('/__home__') - && !item.sectionHandle.includes('visit/spaces') && !item.sectionHandle.includes('null') - ).map(entry => '/' + entry.uri) - - allRoutes.push(...postWithoutPayloadRoutes) - } - - if (allRoutes.length) { - for (const route of allRoutes) { - routes.add(route) - } - } */ - console.log('prerender:routes ctx.routes', routes) - } - }, - - }, - - runtimeConfig: { - // Private keys are only available on the server - esWriteKey: process.env.ES_WRITE_KEY, - - // Public keys that are exposed to the client - public: { - craftGraphqlURL: process.env.CRAFT_ENDPOINT || '', - s3Bucket: process.env.S3_BUCKET, - esReadKey: process.env.ES_READ_KEY || '', - esIndex: process.env.ES_INDEX || '', - esAlias: process.env.ES_ALIAS || '', - libguidesEsIndex: process.env.LIBGUIDES_ES_INDEX || '', - esIndexPrefix: process.env.ES_INDEX_PREFIX || '', - esTempIndex: process.env.ES_INDEX_PREFIX + '-' + new Date().toISOString().toLowerCase().replaceAll(':', '-'), - esURL: process.env.ES_URL || '', - libcalProxy: - process.env.LIBCAL_ENDPOINT - || 'https://proxy.calendar.library.ucla.edu/', - esTempIndexPrefixLibguides: process.env.ES_TEMP_INDEX_PREFIX_LIBGUIDES || '', - esTempIndexLibguides: '', - gtm: { - id: 'GTM-T2SXV2' - } - }, - }, - - /* - ** Required charset and viewport meta tags - */ - app: { - head: { - htmlAttrs: { - lang: 'en', - }, - meta: [ - { charset: 'utf-8' }, - { - name: 'viewport', - content: - 'width=device-width, initial-scale=1.0, minimum-scale=1.0', - }, - ], - link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }], - }, - - pageTransition: { - name: 'fade', - mode: 'out-in', - }, - }, - - /* - ** Global CSS - */ - css: [ - // 'ucla-library-design-tokens/scss/fonts.scss', - 'ucla-library-design-tokens/scss/app-global.scss', - '~/assets/styles/global.scss', - - // use the following line when using pnpm link --global ucla-library-website-components-vue - 'ucla-library-website-components/dist/style.css', - ], - - typescript: { - strict: false - }, - - modules: [[ - '@pinia/nuxt', - { - autoImports: ['defineStore', 'acceptHMRUpdate'], - }, - ], 'nuxt-graphql-request', '@zadigetvoltaire/nuxt-gtm', '@nuxtjs/seo'], - - build: { - transpile: ['nuxt-graphql-request', 'ucla-library-website-components'], - }, - - site: { - url: process.env.SITEMAP_HOST || 'https://www.library.ucla.edu', - trailingSlash: true, - }, - - imports: { - dirs: ['stores'], - transform: { - // you could also add the path of your built library to prevent this happening - // for your users, but the issue is probably only replicable in your monorepo - exclude: [/\bsfui\b/] - } - }, - - graphql: { - /** - * An Object of your GraphQL clients - */ - clients: { - default: { - /** - * The client endpoint url - */ - endpoint: process.env.CRAFT_ENDPOINT || '', - /** - * Per-client options overrides - * See: https://github.com/prisma-labs/graphql-request#passing-more-options-to-fetch - */ - options: {}, - }, - - }, - - /** - * Options - * See: https://github.com/prisma-labs/graphql-request#passing-more-options-to-fetch - */ - options: { - method: 'get', // Default to `POST` - }, - - /** - * Optional - * default: false (this includes cross-fetch/polyfill before creating the graphql client) - */ - // useFetchPolyfill: true, - - /** - * Optional - * default: false (this includes graphql-tag for node_modules folder) - */ - // includeNodeModules: true, - }, - - experimental: { - payloadExtraction: true, - sharedPrerenderData: true, - } -}) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..7e50531d2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,26243 @@ +{ + "name": "library-website-nuxt", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "library-website-nuxt", + "dependencies": { + "@nuxtjs/gtm": "^2.4.0", + "@nuxtjs/sitemap": "^2.4.0", + "@vue-a11y/skip-to": "^2.1.2", + "consola": "^2.15.3", + "nuxt": "^2.15.8", + "nuxt-robots-module": "^1.5.1" + }, + "devDependencies": { + "@nuxtjs/axios": "^5.13.6", + "@nuxtjs/router-extras": "^1.1.1", + "@nuxtjs/style-resources": "^1.0.0", + "@percy/cli": "^1.0.0-beta.67", + "@percy/cypress": "^3.1.2", + "core-js": "^3.11.0", + "cypress": "^12.5.1", + "date-fns": "^2.22.1", + "eslint": "^7.25.0", + "eslint-plugin-cypress": "^2.12.1", + "eslint-plugin-vue": "^7.9.0", + "graphql": "^15.5.1", + "graphql-tag": "^2.12.5", + "lodash": "^4.17.21", + "nuxt-graphql-request": "^4.0.0", + "prettier": "^2.2.1", + "prettier-eslint": "^12.0.0", + "sass": "^1.45.2", + "sass-loader": "^10.1.1", + "ucla-library-design-tokens": "^5.5.1", + "ucla-library-website-components": "^2.41.6", + "vue-svg-loader": "^0.16.0", + "vue-template-compiler": "^2.6.12" + }, + "engines": { + "node": "16.15.0", + "npm": "8.5.5" + } + }, + "../ucla-library-website-components": { + "version": "2.34.1", + "extraneous": true, + "license": "MIT", + "dependencies": { + "date-fns": "^2.28.0", + "lodash": "^4.17.21", + "video.js": "^7.20.3", + "vue-click-outside": "^1.1.0", + "vue-glide-js": "^1.3.14" + }, + "devDependencies": { + "@babel/core": "^7.14.6", + "@babel/eslint-parser": "^7.12.16", + "@babel/preset-env": "^7.14.7", + "@percy/cli": "^1.17.0", + "@percy/cypress": "^3.1.1", + "@percy/storybook": "^4.0.2", + "@rollup/plugin-alias": "^3.1.2", + "@rollup/plugin-babel": "^5.3.0", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-node-resolve": "^9.0.0", + "@rollup/plugin-replace": "^2.4.2", + "@semantic-release/changelog": "^6.0.2", + "@semantic-release/git": "^10.0.1", + "@storybook/addon-actions": "^6.5.5", + "@storybook/addon-essentials": "^6.5.5", + "@storybook/addon-interactions": "^6.5.5", + "@storybook/addon-links": "^6.5.5", + "@storybook/builder-webpack5": "^6.5.5", + "@storybook/manager-webpack5": "^6.5.5", + "@storybook/testing-library": "^0.0.11", + "@storybook/vue": "^6.5.5", + "@vue/cli-plugin-babel": "~5.0.4", + "@vue/cli-plugin-eslint": "~5.0.0", + "@vue/cli-service": "~5.0.4", + "babel-loader": "^8.2.5", + "core-js": "^3.6.5", + "cross-env": "^7.0.3", + "cypress": "^8.5.0", + "date-fns": "^2.28.0", + "eslint": "^7.32.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-cypress": "^2.12.1", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-storybook": "^0.5.12", + "eslint-plugin-vue": "^8.0.3", + "minimist": "^1.2.5", + "postcss": "^8.4.14", + "postcss-base64": "^0.7.1", + "postcss-loader": "^7.0.0", + "postcss-scss": "^4.0.4", + "prettier": "2.6.2", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "rimraf": "^3.0.2", + "rollup": "^2.52.8", + "rollup-plugin-postcss": "^3.1.8", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-vue": "^5.1.9", + "rollup-plugin-vue-inline-svg": "^1.1.2", + "sass": "^1.45.0", + "sass-loader": "^10.1.1", + "semantic-release": "^19.0.2", + "storybook-vue-router": "^1.0.7", + "ucla-library-design-tokens": "^5.2.0", + "vue": "^2.6.14", + "vue-loader": "^15.9.8", + "vue-router": "^3.5.4", + "vue-svg-loader": "^0.16.0", + "vue-template-compiler": "^2.6.14", + "vuex": "^3.6.2" + }, + "engines": { + "node": "16.15.0", + "npm": "8.5.5" + }, + "peerDependencies": { + "vue": "^2.6.14" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.10", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.12", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.20.12", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.11", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.13", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.13", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.20.13", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.20.12", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.19.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.20.11", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.20.11", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "license": "MIT", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.19.6", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.20.2", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.20.13", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.13", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@csstools/convert-colors": { + "version": "1.4.0", + "license": "CC0-1.0", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@cypress/request": { + "version": "2.88.11", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.10.3", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/@glidejs/glide": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@glidejs/glide/-/glide-3.6.0.tgz", + "integrity": "sha512-47Aa+JmYjY4xTFpTtYCwrqirmI1arnp1UZETwtWpbTPisXUAuxrdJxKJLH8KHFWMsSrLi9+AcfyfzDIuO75rEA==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/babel-preset-app": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.14.0", + "@babel/core": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-imports": "^7.13.12", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-decorators": "^7.13.15", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-transform-runtime": "^7.13.15", + "@babel/preset-env": "^7.14.1", + "@babel/runtime": "^7.14.0", + "@vue/babel-preset-jsx": "^1.2.4", + "core-js": "^2.6.5", + "core-js-compat": "^3.12.1", + "regenerator-runtime": "^0.13.7" + } + }, + "node_modules/@nuxt/babel-preset-app/node_modules/core-js": { + "version": "2.6.12", + "hasInstallScript": true, + "license": "MIT" + }, + "node_modules/@nuxt/builder": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@nuxt/devalue": "^1.2.5", + "@nuxt/utils": "2.15.8", + "@nuxt/vue-app": "2.15.8", + "@nuxt/webpack": "2.15.8", + "chalk": "^4.1.1", + "chokidar": "^3.5.1", + "consola": "^2.15.3", + "fs-extra": "^9.1.0", + "glob": "^7.1.7", + "hash-sum": "^2.0.0", + "ignore": "^5.1.8", + "lodash": "^4.17.21", + "pify": "^5.0.0", + "serialize-javascript": "^5.0.1", + "upath": "^2.0.1" + } + }, + "node_modules/@nuxt/builder/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/builder/node_modules/ignore": { + "version": "5.2.4", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@nuxt/builder/node_modules/jsonfile": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nuxt/builder/node_modules/pify": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxt/builder/node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nuxt/cli": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@nuxt/config": "2.15.8", + "@nuxt/utils": "2.15.8", + "boxen": "^5.0.1", + "chalk": "^4.1.1", + "compression": "^1.7.4", + "connect": "^3.7.0", + "consola": "^2.15.3", + "crc": "^3.8.0", + "defu": "^4.0.1", + "destr": "^1.1.0", + "execa": "^5.0.0", + "exit": "^0.1.2", + "fs-extra": "^9.1.0", + "globby": "^11.0.3", + "hable": "^3.0.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "opener": "1.5.2", + "pretty-bytes": "^5.6.0", + "semver": "^7.3.5", + "serve-static": "^1.14.1", + "std-env": "^2.3.0", + "upath": "^2.0.1", + "wrap-ansi": "^7.0.0" + }, + "bin": { + "nuxt-cli": "bin/nuxt-cli.js" + } + }, + "node_modules/@nuxt/cli/node_modules/defu": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/@nuxt/cli/node_modules/execa": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@nuxt/cli/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/cli/node_modules/get-stream": { + "version": "6.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxt/cli/node_modules/human-signals": { + "version": "2.1.0", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@nuxt/cli/node_modules/jsonfile": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nuxt/cli/node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nuxt/components": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "glob": "^7.1.7", + "globby": "^11.0.4", + "scule": "^0.2.1", + "semver": "^7.3.5", + "upath": "^2.0.1", + "vue-template-compiler": "^2.6.14" + }, + "peerDependencies": { + "consola": "*" + } + }, + "node_modules/@nuxt/config": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@nuxt/utils": "2.15.8", + "consola": "^2.15.3", + "defu": "^4.0.1", + "destr": "^1.1.0", + "dotenv": "^9.0.2", + "lodash": "^4.17.21", + "rc9": "^1.2.0", + "std-env": "^2.3.0", + "ufo": "^0.7.4" + } + }, + "node_modules/@nuxt/config/node_modules/defu": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/@nuxt/core": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@nuxt/config": "2.15.8", + "@nuxt/server": "2.15.8", + "@nuxt/utils": "2.15.8", + "consola": "^2.15.3", + "fs-extra": "^9.1.0", + "hable": "^3.0.0", + "hash-sum": "^2.0.0", + "lodash": "^4.17.21" + } + }, + "node_modules/@nuxt/core/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/core/node_modules/jsonfile": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nuxt/core/node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nuxt/devalue": { + "version": "1.2.5", + "license": "MIT", + "dependencies": { + "consola": "^2.9.0" + } + }, + "node_modules/@nuxt/friendly-errors-webpack-plugin": { + "version": "2.5.2", + "license": "MIT", + "dependencies": { + "chalk": "^2.3.2", + "consola": "^2.6.0", + "error-stack-parser": "^2.0.0", + "string-width": "^4.2.3" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nuxt/generator": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@nuxt/utils": "2.15.8", + "chalk": "^4.1.1", + "consola": "^2.15.3", + "defu": "^4.0.1", + "devalue": "^2.0.1", + "fs-extra": "^9.1.0", + "html-minifier": "^4.0.0", + "node-html-parser": "^3.2.0", + "ufo": "^0.7.4" + } + }, + "node_modules/@nuxt/generator/node_modules/defu": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/@nuxt/generator/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/generator/node_modules/jsonfile": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nuxt/generator/node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nuxt/loading-screen": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "connect": "^3.7.0", + "defu": "^5.0.0", + "get-port-please": "^2.2.0", + "node-res": "^5.0.1", + "serve-static": "^1.14.1" + } + }, + "node_modules/@nuxt/opencollective": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.7" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxt/server": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@nuxt/utils": "2.15.8", + "@nuxt/vue-renderer": "2.15.8", + "@nuxtjs/youch": "^4.2.3", + "compression": "^1.7.4", + "connect": "^3.7.0", + "consola": "^2.15.3", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "^9.1.0", + "ip": "^1.1.5", + "launch-editor-middleware": "^2.2.1", + "on-headers": "^1.0.2", + "pify": "^5.0.0", + "serve-placeholder": "^1.2.3", + "serve-static": "^1.14.1", + "server-destroy": "^1.0.1", + "ufo": "^0.7.4" + } + }, + "node_modules/@nuxt/server/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/server/node_modules/jsonfile": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nuxt/server/node_modules/pify": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxt/server/node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nuxt/telemetry": { + "version": "1.3.9", + "license": "MIT", + "dependencies": { + "arg": "^5.0.2", + "chalk": "^4.1.1", + "ci-info": "^3.6.1", + "consola": "^2.15.3", + "create-require": "^1.1.1", + "defu": "^5.0.0", + "destr": "^1.1.0", + "dotenv": "^9.0.2", + "fs-extra": "^8.1.0", + "git-url-parse": "^13.1.0", + "inquirer": "^7.3.3", + "jiti": "^1.9.2", + "nanoid": "^3.1.23", + "node-fetch": "^2.6.1", + "parse-git-config": "^3.0.0", + "rc9": "^1.2.0", + "std-env": "^2.3.0" + }, + "bin": { + "nuxt-telemetry": "bin/nuxt-telemetry.js" + } + }, + "node_modules/@nuxt/utils": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "consola": "^2.15.3", + "create-require": "^1.1.1", + "fs-extra": "^9.1.0", + "hash-sum": "^2.0.0", + "jiti": "^1.9.2", + "lodash": "^4.17.21", + "proper-lockfile": "^4.1.2", + "semver": "^7.3.5", + "serialize-javascript": "^5.0.1", + "signal-exit": "^3.0.3", + "ua-parser-js": "^0.7.28", + "ufo": "^0.7.4" + } + }, + "node_modules/@nuxt/utils/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/utils/node_modules/jsonfile": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nuxt/utils/node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nuxt/vue-app": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "ufo": "^0.7.4", + "unfetch": "^4.2.0", + "vue": "^2.6.12", + "vue-client-only": "^2.0.0", + "vue-meta": "^2.4.0", + "vue-no-ssr": "^1.1.1", + "vue-router": "^3.5.1", + "vue-template-compiler": "^2.6.12", + "vuex": "^3.6.2" + } + }, + "node_modules/@nuxt/vue-renderer": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@nuxt/devalue": "^1.2.5", + "@nuxt/utils": "2.15.8", + "consola": "^2.15.3", + "defu": "^4.0.1", + "fs-extra": "^9.1.0", + "lodash": "^4.17.21", + "lru-cache": "^5.1.1", + "ufo": "^0.7.4", + "vue": "^2.6.12", + "vue-meta": "^2.4.0", + "vue-server-renderer": "^2.6.12" + } + }, + "node_modules/@nuxt/vue-renderer/node_modules/defu": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/@nuxt/vue-renderer/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/vue-renderer/node_modules/jsonfile": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nuxt/vue-renderer/node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@nuxt/vue-renderer/node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nuxt/vue-renderer/node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" + }, + "node_modules/@nuxt/webpack": { + "version": "2.15.8", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.14.0", + "@nuxt/babel-preset-app": "2.15.8", + "@nuxt/friendly-errors-webpack-plugin": "^2.5.1", + "@nuxt/utils": "2.15.8", + "babel-loader": "^8.2.2", + "cache-loader": "^4.1.0", + "caniuse-lite": "^1.0.30001228", + "consola": "^2.15.3", + "css-loader": "^4.3.0", + "cssnano": "^4.1.11", + "eventsource-polyfill": "^0.9.6", + "extract-css-chunks-webpack-plugin": "^4.9.0", + "file-loader": "^6.2.0", + "glob": "^7.1.7", + "hard-source-webpack-plugin": "^0.13.1", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^4.5.1", + "lodash": "^4.17.21", + "memory-fs": "^0.5.0", + "optimize-css-assets-webpack-plugin": "^5.0.4", + "pify": "^5.0.0", + "pnp-webpack-plugin": "^1.6.4", + "postcss": "^7.0.32", + "postcss-import": "^12.0.1", + "postcss-import-resolver": "^2.0.0", + "postcss-loader": "^3.0.0", + "postcss-preset-env": "^6.7.0", + "postcss-url": "^8.0.0", + "semver": "^7.3.5", + "std-env": "^2.3.0", + "style-resources-loader": "^1.4.1", + "terser-webpack-plugin": "^4.2.3", + "thread-loader": "^3.0.4", + "time-fix-plugin": "^2.0.7", + "ufo": "^0.7.4", + "url-loader": "^4.1.1", + "vue-loader": "^15.9.7", + "vue-style-loader": "^4.1.3", + "vue-template-compiler": "^2.6.12", + "webpack": "^4.46.0", + "webpack-bundle-analyzer": "^4.4.1", + "webpack-dev-middleware": "^4.2.0", + "webpack-hot-middleware": "^2.25.0", + "webpack-node-externals": "^3.0.0", + "webpackbar": "^4.0.0" + } + }, + "node_modules/@nuxt/webpack/node_modules/pify": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxtjs/axios": { + "version": "5.13.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxtjs/proxy": "^2.1.0", + "axios": "^0.21.1", + "axios-retry": "^3.1.9", + "consola": "^2.15.3", + "defu": "^5.0.0" + } + }, + "node_modules/@nuxtjs/gtm": { + "version": "2.4.0", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "semver": "^7.3.2" + } + }, + "node_modules/@nuxtjs/proxy": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy-middleware": "^1.0.6" + } + }, + "node_modules/@nuxtjs/router-extras": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.4.3", + "gray-matter": "^4.0.2" + } + }, + "node_modules/@nuxtjs/sitemap": { + "version": "2.4.0", + "license": "MIT", + "dependencies": { + "async-cache": "^1.1.0", + "consola": "^2.13.0", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "^8.1.0", + "is-https": "^2.0.2", + "lodash.unionby": "^4.8.0", + "minimatch": "^3.0.4", + "sitemap": "^4.1.1" + }, + "engines": { + "node": ">=8.9.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxtjs/style-resources": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^2.15.3", + "glob-all": "^3.2.1", + "sass-resources-loader": "^2.2.4" + }, + "engines": { + "node": ">=v10.24.1", + "npm": ">=6.14.14" + } + }, + "node_modules/@nuxtjs/youch": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "cookie": "^0.3.1", + "mustache": "^2.3.0", + "stack-trace": "0.0.10" + } + }, + "node_modules/@percy/cli": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/cli-app": "1.17.0", + "@percy/cli-build": "1.17.0", + "@percy/cli-command": "1.17.0", + "@percy/cli-config": "1.17.0", + "@percy/cli-exec": "1.17.0", + "@percy/cli-snapshot": "1.17.0", + "@percy/cli-upload": "1.17.0", + "@percy/client": "1.17.0", + "@percy/logger": "1.17.0" + }, + "bin": { + "percy": "bin/run.cjs" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-app": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.17.0", + "@percy/cli-exec": "1.17.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-build": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.17.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-command": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/config": "1.17.0", + "@percy/core": "1.17.0", + "@percy/logger": "1.17.0" + }, + "bin": { + "percy-cli-readme": "bin/readme.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-config": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.17.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-exec": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.17.0", + "cross-spawn": "^7.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-snapshot": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.17.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-upload": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/cli-command": "1.17.0", + "fast-glob": "^3.2.11", + "image-size": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/client": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/env": "1.17.0", + "@percy/logger": "1.17.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/config": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/logger": "1.17.0", + "ajv": "^8.6.2", + "cosmiconfig": "^7.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/core": { + "version": "1.17.0", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@percy/client": "1.17.0", + "@percy/config": "1.17.0", + "@percy/dom": "1.17.0", + "@percy/logger": "1.17.0", + "content-disposition": "^0.5.4", + "cross-spawn": "^7.0.3", + "extract-zip": "^2.0.1", + "fast-glob": "^3.2.11", + "micromatch": "^4.0.4", + "mime-types": "^2.1.34", + "path-to-regexp": "^6.2.0", + "rimraf": "^3.0.2", + "ws": "^8.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cypress": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@percy/sdk-utils": "^1.3.1" + }, + "peerDependencies": { + "cypress": ">=3" + } + }, + "node_modules/@percy/dom": { + "version": "1.17.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@percy/env": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/logger": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/sdk-utils": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "license": "MIT" + }, + "node_modules/@types/eslint-visitor-keys": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/html-minifier-terser": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "14.18.36", + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/q": { + "version": "1.5.5", + "license": "MIT" + }, + "node_modules/@types/sax": { + "version": "1.2.4", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "license": "MIT" + }, + "node_modules/@types/tapable": { + "version": "1.0.8", + "license": "MIT" + }, + "node_modules/@types/uglify-js": { + "version": "3.17.1", + "license": "MIT", + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/@types/webpack": { + "version": "4.41.33", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@types/webpack-sources": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.7.4", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "3.10.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "3.10.1", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "3.10.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/visitor-keys": "3.10.1", + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/@videojs/http-streaming": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-2.16.0.tgz", + "integrity": "sha512-mGNTqjENzP86XGM6HSWdWVO/KAsDlf5+idW2W7dL1+NkzWpwZlSEYhrdEVVnhoOb0A6E7JW6LM611/JA7Jn/3A==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "3.0.5", + "aes-decrypter": "3.1.3", + "global": "^4.4.0", + "m3u8-parser": "4.8.0", + "mpd-parser": "^0.22.1", + "mux.js": "6.0.1", + "video.js": "^6 || ^7" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + }, + "peerDependencies": { + "video.js": "^6 || ^7" + } + }, + "node_modules/@videojs/vhs-utils": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz", + "integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "global": "^4.4.0", + "url-toolkit": "^2.2.1" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, + "node_modules/@videojs/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@videojs/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.5.5", + "global": "~4.4.0", + "is-function": "^1.0.1" + } + }, + "node_modules/@vue-a11y/skip-to": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.4.0", + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-transform-vue-jsx": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-preset-jsx": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "@vue/babel-sugar-composition-api-inject-h": "^1.4.0", + "@vue/babel-sugar-composition-api-render-instance": "^1.4.0", + "@vue/babel-sugar-functional-vue": "^1.4.0", + "@vue/babel-sugar-inject-h": "^1.4.0", + "@vue/babel-sugar-v-model": "^1.4.0", + "@vue/babel-sugar-v-on": "^1.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0", + "vue": "*" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/babel-sugar-composition-api-inject-h": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-composition-api-render-instance": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-functional-vue": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-inject-h": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-on": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "2.7.14", + "dependencies": { + "@babel/parser": "^7.18.4", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/postcss": { + "version": "8.4.21", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "license": "ISC" + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", + "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-decrypter": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-3.1.3.tgz", + "integrity": "sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "global": "^4.4.0", + "pkcs7": "^1.0.4" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "license": "MIT", + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/arch": { + "version": "2.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/arg": { + "version": "5.0.2", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "license": "MIT" + }, + "node_modules/assert": { + "version": "1.5.0", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "license": "ISC" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "license": "MIT", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/async-cache": { + "version": "1.1.0", + "license": "ISC", + "dependencies": { + "lru-cache": "^4.0.0" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "license": "MIT", + "optional": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.8", + "license": "MIT", + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "node_modules/autoprefixer/node_modules/picocolors": { + "version": "0.2.1", + "license": "ISC" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "dev": true, + "license": "MIT" + }, + "node_modules/axios": { + "version": "0.21.4", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/axios-retry": { + "version": "3.4.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/boxen": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "license": "ISC", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/buffer-json": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cache-loader": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + }, + "engines": { + "node": ">= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/cache-loader/node_modules/json5": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/cache-loader/node_modules/loader-utils": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001448", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/caseless": { + "version": "0.12.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "license": "MIT" + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.7.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-css": { + "version": "4.2.4", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.19", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/console-browserify": { + "version": "1.2.0" + }, + "node_modules/consolidate": { + "version": "0.15.1", + "license": "MIT", + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.3.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "3.27.2", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.27.2", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/crc": { + "version": "3.8.0", + "license": "MIT", + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "license": "MIT" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "license": "MIT", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-blank-pseudo": { + "version": "0.1.4", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.5" + }, + "bin": { + "css-blank-pseudo": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-has-pseudo": { + "version": "0.10.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "bin": { + "css-has-pseudo": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/cssesc": { + "version": "2.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.1", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/css-loader/node_modules/camelcase": { + "version": "6.3.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "3.1.1", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.5" + }, + "bin": { + "css-prefers-color-scheme": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "4.4.0", + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "4.1.11", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.8", + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano/node_modules/cosmiconfig": { + "version": "5.2.1", + "license": "MIT", + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano/node_modules/import-fresh": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano/node_modules/parse-json": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano/node_modules/resolve-from": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.1.1", + "license": "MIT" + }, + "node_modules/cuint": { + "version": "0.2.2", + "license": "MIT" + }, + "node_modules/cyclist": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/cypress": { + "version": "12.5.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.5.1.tgz", + "integrity": "sha512-ZmCmJ3lsyeOpBfh410m5+AO2CO1AxAzFBt7k6/uVbNcrNZje1vdiwYTpj2ksPKg9mjr9lR6V8tmlDNMvr4H/YQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.6", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" + } + }, + "node_modules/cypress/node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/cypress/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/date-fns": { + "version": "2.29.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/dayjs": { + "version": "1.11.7", + "dev": true, + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.4", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defu": { + "version": "5.0.1", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destr": { + "version": "1.2.2", + "license": "MIT" + }, + "node_modules/destroy": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/devalue": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-case/node_modules/lower-case": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/dot-case/node_modules/no-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "9.0.2", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "license": "MIT" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.5.0", + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.21.1", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-cypress": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "globals": "^11.12.0" + }, + "peerDependencies": { + "eslint": ">= 3.2.1" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/globals": { + "version": "11.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "7.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-utils": "^2.1.0", + "natural-compare": "^1.4.0", + "semver": "^6.3.0", + "vue-eslint-parser": "^7.10.0" + }, + "engines": { + "node": ">=8.10" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/espree": { + "version": "7.3.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource-polyfill": { + "version": "0.9.6", + "license": "MIT" + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-css-chunks-webpack-plugin": { + "version": "4.9.0", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.0.0" + } + }, + "node_modules/extract-css-chunks-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/extract-css-chunks-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/extract-css-chunks-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/extract-css-chunks-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/extract-files": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "license": "ISC" + }, + "node_modules/figures": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "license": "MIT", + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "node_modules/flatten": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-memo": { + "version": "1.2.0", + "license": "MIT" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "license": "Unlicense" + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port-please": { + "version": "2.6.1", + "license": "MIT", + "dependencies": { + "fs-memo": "^1.2.0" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/git-config-path": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/git-up": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^8.1.0" + } + }, + "node_modules/git-url-parse": { + "version": "13.1.0", + "license": "MIT", + "dependencies": { + "git-up": "^7.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-all": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^7.2.3", + "yargs": "^15.3.1" + }, + "bin": { + "glob-all": "bin/glob-all" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "13.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.2.4", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "license": "ISC" + }, + "node_modules/graphql": { + "version": "15.8.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-request": { + "version": "3.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "peerDependencies": { + "graphql": "14 - 16" + } + }, + "node_modules/graphql-request/node_modules/form-data": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hable": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/hard-source-webpack-plugin": { + "version": "0.13.1", + "license": "ISC", + "dependencies": { + "chalk": "^2.4.1", + "find-cache-dir": "^2.0.0", + "graceful-fs": "^4.1.11", + "lodash": "^4.15.0", + "mkdirp": "^0.5.1", + "node-object-hash": "^1.2.0", + "parse-json": "^4.0.0", + "pkg-dir": "^3.0.0", + "rimraf": "^2.6.2", + "semver": "^5.6.0", + "tapable": "^1.0.0-beta.5", + "webpack-sources": "^1.0.1", + "write-json-file": "^2.3.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "webpack": "*" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/hard-source-webpack-plugin/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/find-cache-dir": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/find-up": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/locate-path": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/make-dir": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/p-locate": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/parse-json": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/path-exists": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/pify": { + "version": "4.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/pkg-dir": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/rimraf": { + "version": "2.7.1", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/semver": { + "version": "5.7.1", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/hard-source-webpack-plugin/node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/hash.js": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/html-entities": { + "version": "2.3.3", + "license": "MIT" + }, + "node_modules/html-minifier": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-minifier-terser": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-minifier-terser/node_modules/camel-case": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-minifier-terser/node_modules/param-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/html-minifier/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/html-webpack-plugin": { + "version": "4.5.2", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/json5": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/html-webpack-plugin/node_modules/loader-utils": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.5", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "1.1.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "4.1.1", + "license": "ISC", + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/iferr": { + "version": "0.1.5", + "license": "MIT" + }, + "node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/immutable": { + "version": "4.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from/node_modules/resolve-from": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/individual": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-2.0.0.tgz", + "integrity": "sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "7.3.3", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/node_modules/rxjs": { + "version": "6.6.7", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/inquirer/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "license": "MIT" + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "node_modules/is-glob": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-https": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/is-retry-allowed": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ssh": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jiti": { + "version": "1.16.2", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/keycode": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz", + "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/last-call-webpack-plugin": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "node_modules/launch-editor": { + "version": "2.6.0", + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/launch-editor-middleware": { + "version": "2.6.0", + "license": "MIT", + "dependencies": { + "launch-editor": "^2.6.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "> 0.8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2": { + "version": "3.14.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "license": "MIT", + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "license": "MIT", + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.unionby": { + "version": "4.8.0", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loglevel": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/loglevel-colored-level-prefix": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^1.1.3", + "loglevel": "^1.4.1" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/m3u8-parser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-4.8.0.tgz", + "integrity": "sha512-UqA2a/Pw3liR6Df3gwxrqghCP17OpPlQj6RBPLYygf/ZSQ4MoSgvdvhvt35qV+3NaaA0FSZx93Ix+2brT1U7cA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "global": "^4.4.0" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "license": "CC0-1.0" + }, + "node_modules/mem": { + "version": "8.1.1", + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/memfs": { + "version": "3.4.13", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memory-fs": { + "version": "0.5.0", + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "license": "MIT" + }, + "node_modules/mime": { + "version": "2.6.0", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dev": true, + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/mississippi": { + "version": "3.0.0", + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/mpd-parser": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.22.1.tgz", + "integrity": "sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "@xmldom/xmldom": "^0.8.3", + "global": "^4.4.0" + }, + "bin": { + "mpd-to-m3u8-json": "bin/parse.js" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/mustache": { + "version": "2.3.2", + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + }, + "engines": { + "npm": ">=1.4.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "license": "ISC" + }, + "node_modules/mux.js": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-6.0.1.tgz", + "integrity": "sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.11.2", + "global": "^4.4.0" + }, + "bin": { + "muxjs-transmux": "bin/transmux.js" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, + "node_modules/nan": { + "version": "2.17.0", + "license": "MIT", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/define-property": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "2.3.2", + "license": "MIT", + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-fetch": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-html-parser": { + "version": "3.3.6", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "he": "1.2.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/buffer": { + "version": "4.9.2", + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "license": "MIT" + }, + "node_modules/node-object-hash": { + "version": "1.4.2", + "license": "ISC", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.8", + "license": "MIT" + }, + "node_modules/node-res": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "destroy": "^1.0.4", + "etag": "^1.8.1", + "mime-types": "^2.1.19", + "on-finished": "^2.3.0", + "vary": "^1.1.2" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "license": "MIT" + }, + "node_modules/nuxt": { + "version": "2.15.8", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@nuxt/babel-preset-app": "2.15.8", + "@nuxt/builder": "2.15.8", + "@nuxt/cli": "2.15.8", + "@nuxt/components": "^2.1.8", + "@nuxt/config": "2.15.8", + "@nuxt/core": "2.15.8", + "@nuxt/generator": "2.15.8", + "@nuxt/loading-screen": "^2.0.3", + "@nuxt/opencollective": "^0.3.2", + "@nuxt/server": "2.15.8", + "@nuxt/telemetry": "^1.3.3", + "@nuxt/utils": "2.15.8", + "@nuxt/vue-app": "2.15.8", + "@nuxt/vue-renderer": "2.15.8", + "@nuxt/webpack": "2.15.8" + }, + "bin": { + "nuxt": "bin/nuxt.js" + } + }, + "node_modules/nuxt-graphql-request": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.1.4", + "graphql-request": "^3.7.0", + "ramda": "^0.27.1" + }, + "peerDependencies": { + "graphql": "14.x || 15.x" + } + }, + "node_modules/nuxt-robots-module": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/nuxt-robots-module/-/nuxt-robots-module-1.5.1.tgz", + "integrity": "sha512-A12tQkAfhGOCMhadqJqZcMFmFB4QWHKdNO75vZU9Lteh5bp8CyPCuzYgXVHG4LC5aHs5defBjsX9ja4FQCYA+w==", + "deprecated": "Use @nuxtjs/robots instead of nuxt-robots-module that was moved to Nuxt Community" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optimize-css-assets-webpack-plugin": { + "version": "5.0.8", + "license": "MIT", + "dependencies": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "license": "MIT" + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/p-defer": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "license": "(MIT AND Zlib)" + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "license": "ISC", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-git-config": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "git-config-path": "^2.0.0", + "ini": "^1.3.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse-git-config/node_modules/ini": { + "version": "1.3.8", + "license": "ISC" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-path": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "protocols": "^2.0.0" + } + }, + "node_modules/parse-url": { + "version": "8.1.0", + "license": "MIT", + "dependencies": { + "parse-path": "^7.0.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascal-case/node_modules/lower-case": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/pascal-case/node_modules/no-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "license": "MIT", + "optional": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "6.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkcs7": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.4.tgz", + "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.5.5" + }, + "bin": { + "pkcs7": "bin/cli.js" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.7.0", + "license": "MIT", + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "2.0.1", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-gray": { + "version": "5.0.0", + "license": "ISC", + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "5.0.3", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-mod-function": { + "version": "3.0.3", + "license": "CC0-1.0", + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-custom-media": { + "version": "7.0.8", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-properties": { + "version": "8.0.11", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-selectors/node_modules/cssesc": { + "version": "2.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "5.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { + "version": "2.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "1.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-env-function": { + "version": "2.0.2", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-focus-visible": { + "version": "4.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-focus-within": { + "version": "3.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-font-variant": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-gap-properties": { + "version": "2.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-image-set-function": { + "version": "3.0.1", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import": { + "version": "12.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import-resolver": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^4.1.1" + } + }, + "node_modules/postcss-import/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-initial": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-lab-function": { + "version": "2.0.1", + "license": "CC0-1.0", + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-load-config/node_modules/cosmiconfig": { + "version": "5.2.1", + "license": "MIT", + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-load-config/node_modules/import-fresh": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-load-config/node_modules/parse-json": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-load-config/node_modules/resolve-from": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-loader": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/postcss-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/postcss-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/postcss-loader/node_modules/json5": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/postcss-loader/node_modules/loader-utils": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-logical": { + "version": "3.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-media-minmax": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "license": "MIT", + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "2.0.0", + "license": "ISC", + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "3.0.3", + "license": "MIT", + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-scope": { + "version": "2.2.0", + "license": "ISC", + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-values": { + "version": "3.0.0", + "license": "ISC", + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "node_modules/postcss-nesting": { + "version": "7.0.1", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/normalize-url": { + "version": "3.3.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-overflow-shorthand": { + "version": "2.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-page-break": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-place": { + "version": "4.0.1", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-preset-env": { + "version": "6.7.1", + "license": "CC0-1.0", + "dependencies": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "6.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { + "version": "2.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-matches": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-not": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-url": { + "version": "8.0.0", + "license": "MIT", + "dependencies": { + "mime": "^2.3.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.0", + "postcss": "^7.0.2", + "xxhashjs": "^0.2.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "license": "MIT" + }, + "node_modules/postcss-values-parser": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/postcss/node_modules/picocolors": { + "version": "0.2.1", + "license": "ISC" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "2.8.3", + "devOptional": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-eslint": { + "version": "12.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/parser": "^3.0.0", + "common-tags": "^1.4.0", + "dlv": "^1.1.0", + "eslint": "^7.9.0", + "indent-string": "^4.0.0", + "lodash.merge": "^4.6.0", + "loglevel-colored-level-prefix": "^1.0.0", + "prettier": "^2.0.0", + "pretty-format": "^23.0.1", + "require-relative": "^0.8.7", + "typescript": "^3.9.3", + "vue-eslint-parser": "~7.1.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/prettier-eslint/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier-eslint/node_modules/espree": { + "version": "6.2.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prettier-eslint/node_modules/vue-eslint-parser": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "eslint-scope": "^5.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.0.1", + "lodash": "^4.17.15" + }, + "engines": { + "node": ">=8.10" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "node_modules/pretty-format": { + "version": "23.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process": { + "version": "0.11.10", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/protocols": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/psl": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.10.4", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/ramda": { + "version": "0.27.2", + "dev": true, + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc9": { + "version": "1.2.4", + "license": "MIT", + "dependencies": { + "defu": "^6.0.0", + "destr": "^1.1.1", + "flat": "^5.0.0" + } + }, + "node_modules/rc9/node_modules/defu": { + "version": "6.1.2", + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.2.2", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.7.1", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "license": "ISC", + "optional": true + }, + "node_modules/renderkid": { + "version": "2.0.7", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } + }, + "node_modules/renderkid/node_modules/ansi-regex": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/renderkid/node_modules/strip-ansi": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/require-relative": { + "version": "0.8.7", + "dev": true, + "license": "MIT" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.1", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "license": "MIT" + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rust-result": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rust-result/-/rust-result-1.0.0.tgz", + "integrity": "sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==", + "dev": true, + "dependencies": { + "individual": "^2.0.0" + } + }, + "node_modules/rxjs": { + "version": "7.8.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-json-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz", + "integrity": "sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==", + "dev": true, + "dependencies": { + "rust-result": "^1.0.0" + } + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.57.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "10.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "sass": "^1.3.0", + "webpack": "^4.36.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/sass-loader/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/sass-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/sass-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/sass-loader/node_modules/schema-utils": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/sass-resources-loader": { + "version": "2.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.1.0", + "glob": "^7.1.6", + "loader-utils": "^2.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "license": "ISC" + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/scule": { + "version": "0.2.1", + "license": "MIT" + }, + "node_modules/section-matter": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/send": { + "version": "0.18.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "5.0.1", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-placeholder": { + "version": "1.2.4", + "license": "MIT", + "dependencies": { + "defu": "^5.0.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/set-value": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.4", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "license": "ISC" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "license": "MIT" + }, + "node_modules/sirv": { + "version": "1.0.19", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sitemap": { + "version": "4.1.1", + "license": "MIT", + "dependencies": { + "@types/node": "^12.0.2", + "@types/sax": "^1.2.0", + "arg": "^4.1.1", + "sax": "^1.2.4", + "xmlbuilder": "^13.0.0" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=8.9.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "12.20.55", + "license": "MIT" + }, + "node_modules/sitemap/node_modules/arg": { + "version": "4.1.3", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys/node_modules/is-plain-obj": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/split-string": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "license": "BSD-3-Clause" + }, + "node_modules/sshpk": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "license": "MIT" + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "license": "MIT" + }, + "node_modules/static-extend": { + "version": "0.1.2", + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/std-env": { + "version": "2.3.1", + "license": "MIT", + "dependencies": { + "ci-info": "^3.1.1" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-resources-loader": { + "version": "1.5.0", + "license": "MIT", + "dependencies": { + "glob": "^7.2.0", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0" + }, + "node_modules/svg-to-vue": { + "version": "0.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "svgo": "^1.3.2" + }, + "peerDependencies": { + "vue-template-compiler": "^2.0.0" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "license": "BSD-2-Clause" + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table": { + "version": "6.8.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.13", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "4.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/terser": { + "version": "4.8.1", + "license": "BSD-2-Clause", + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/acorn": { + "version": "8.8.2", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.16.1", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "license": "MIT" + }, + "node_modules/thread-loader": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/thread-loader/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/thread-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/thread-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/thread-loader/node_modules/schema-utils": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/throttleit": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/time-fix-plugin": { + "version": "2.0.7", + "license": "MIT", + "peerDependencies": { + "webpack": ">=4.0.0" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex/node_modules/define-property": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.4.1", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "license": "MIT" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "dev": true, + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "license": "MIT" + }, + "node_modules/typescript": { + "version": "3.9.10", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.33", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ucla-library-design-tokens": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/ucla-library-design-tokens/-/ucla-library-design-tokens-5.5.1.tgz", + "integrity": "sha512-PuPLeUCi3L3bfjz5yI8lKXsnmYpOJq9tNsIs+jVDPRhTT4gi3I+HTAO7CGpqYuvavdV+s4fTvctO9KkSEm7Dtg==", + "dev": true + }, + "node_modules/ucla-library-website-components": { + "version": "2.41.6", + "resolved": "https://registry.npmjs.org/ucla-library-website-components/-/ucla-library-website-components-2.41.6.tgz", + "integrity": "sha512-8Yo2uuujt5Lgfpx3IamPiKNzrKkZb8hVTZFKtoolemHxT9KGnPZYD6RDzEtgmTTZdAF3V4tViQfSNZwbChaYPA==", + "dev": true, + "dependencies": { + "date-fns": "^2.28.0", + "lodash": "^4.17.21", + "video.js": "^7.20.3", + "vue-click-outside": "^1.1.0", + "vue-glide-js": "^1.3.14" + }, + "engines": { + "node": "16.15.0", + "npm": "8.5.5" + }, + "peerDependencies": { + "vue": "^2.6.14" + } + }, + "node_modules/ufo": { + "version": "0.7.11", + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "license": "BSD-2-Clause", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unfetch": { + "version": "4.2.0", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/uniqs": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/unset-value": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "license": "MIT" + }, + "node_modules/url": { + "version": "0.11.0", + "license": "MIT", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/url-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/url-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/url-toolkit": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz", + "integrity": "sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==", + "dev": true + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "license": "ISC" + }, + "node_modules/utila": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/video.js": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-7.21.2.tgz", + "integrity": "sha512-Zbo23oT4CbtIxeAtfTvzdl7OlN/P34ir7hDzXFtLZB+BtJsaLy0Rgh/06dBMJSGEjQCDo4MUS6uPonuX0Nl3Kg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/http-streaming": "2.16.0", + "@videojs/vhs-utils": "^3.0.4", + "@videojs/xhr": "2.6.0", + "aes-decrypter": "3.1.3", + "global": "^4.4.0", + "keycode": "^2.2.0", + "m3u8-parser": "4.8.0", + "mpd-parser": "0.22.1", + "mux.js": "6.0.1", + "safe-json-parse": "4.0.0", + "videojs-font": "3.2.0", + "videojs-vtt.js": "^0.15.4" + } + }, + "node_modules/videojs-font": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz", + "integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==", + "dev": true + }, + "node_modules/videojs-vtt.js": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.4.tgz", + "integrity": "sha512-r6IhM325fcLb1D6pgsMkTQT1PpFdUdYZa1iqk7wJEu+QlibBwATPfPc9Bg8Jiym0GE5yP1AG2rMLu+QMVWkYtA==", + "dev": true, + "dependencies": { + "global": "^4.3.1" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/vue": { + "version": "2.7.14", + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "2.7.14", + "csstype": "^3.1.0" + } + }, + "node_modules/vue-click-outside": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vue-click-outside/-/vue-click-outside-1.1.0.tgz", + "integrity": "sha512-pNyvAA9mRXJwPHlHJyjMb4IONSc7khS5lxGcMyE2EIKgNMAO279PWM9Hyq0d5J4FkiSRdmFLwnbjDd5UtPizHQ==", + "dev": true + }, + "node_modules/vue-client-only": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/vue-eslint-parser": { + "version": "7.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8.10" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "6.2.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/vue-glide-js": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/vue-glide-js/-/vue-glide-js-1.3.14.tgz", + "integrity": "sha512-dgF+7pcsqNawU5nPE26MD7nMvfKD5zQjOE/e+xd2XccQ6GX83JYGiwAAbM1QlpA1X7Urp5aLqR214gfBunUnjw==", + "dev": true, + "dependencies": { + "@glidejs/glide": "^3.2.4", + "vue": "^2.5.16" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "license": "MIT" + }, + "node_modules/vue-loader": { + "version": "15.10.1", + "license": "MIT", + "dependencies": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "peerDependencies": { + "css-loader": "*", + "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/vue-loader/node_modules/hash-sum": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/vue-loader/node_modules/json5": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/vue-loader/node_modules/loader-utils": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-meta": { + "version": "2.4.0", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.2.2" + } + }, + "node_modules/vue-no-ssr": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/vue-router": { + "version": "3.6.5", + "license": "MIT" + }, + "node_modules/vue-server-renderer": { + "version": "2.7.14", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "hash-sum": "^2.0.0", + "he": "^1.2.0", + "lodash.template": "^4.5.0", + "lodash.uniq": "^4.5.0", + "resolve": "^1.22.0", + "serialize-javascript": "^6.0.0", + "source-map": "0.5.6" + } + }, + "node_modules/vue-server-renderer/node_modules/serialize-javascript": { + "version": "6.0.1", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/vue-server-renderer/node_modules/source-map": { + "version": "0.5.6", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue-style-loader": { + "version": "4.1.3", + "license": "MIT", + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-style-loader/node_modules/hash-sum": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/vue-style-loader/node_modules/json5": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/vue-style-loader/node_modules/loader-utils": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-svg-loader": { + "version": "0.16.0", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^1.2.3", + "svg-to-vue": "^0.7.0" + }, + "peerDependencies": { + "vue-template-compiler": "^2.0.0" + } + }, + "node_modules/vue-svg-loader/node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/vue-svg-loader/node_modules/loader-utils": { + "version": "1.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "license": "MIT" + }, + "node_modules/vuex": { + "version": "3.6.2", + "license": "MIT", + "peerDependencies": { + "vue": "^2.0.0" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "license": "MIT", + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "license": "MIT", + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "license": "MIT", + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/define-property": { + "version": "2.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "license": "MIT", + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "license": "ISC", + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "license": "MIT", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "license": "MIT", + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "license": "MIT", + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "license": "MIT", + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/upath": { + "version": "1.2.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "4.46.0", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.7.0", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn": { + "version": "8.8.2", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.5.9", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "colorette": "^1.2.2", + "mem": "^8.1.1", + "memfs": "^3.2.2", + "mime-types": "^2.1.30", + "range-parser": "^1.2.1", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= v10.23.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack-dev-middleware/node_modules/colorette": { + "version": "1.4.0", + "license": "MIT" + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-hot-middleware": { + "version": "2.25.3", + "license": "MIT", + "dependencies": { + "ansi-html-community": "0.0.8", + "html-entities": "^2.1.0", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack/node_modules/acorn": { + "version": "6.4.2", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/cacache": { + "version": "12.0.4", + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/chownr": { + "version": "1.1.4", + "license": "ISC" + }, + "node_modules/webpack/node_modules/define-property": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "4.0.3", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/find-cache-dir": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/find-up": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/webpack/node_modules/json5": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/webpack/node_modules/loader-runner": { + "version": "2.4.0", + "license": "MIT", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack/node_modules/loader-utils": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/locate-path": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/webpack/node_modules/make-dir": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/memory-fs": { + "version": "0.4.1", + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/p-locate": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/path-exists": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/pify": { + "version": "4.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/pkg-dir": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/rimraf": { + "version": "2.7.1", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/semver": { + "version": "5.7.1", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/webpack/node_modules/serialize-javascript": { + "version": "4.0.0", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/webpack/node_modules/ssri": { + "version": "6.0.2", + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "license": "MIT", + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" + }, + "node_modules/webpackbar": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "consola": "^2.10.0", + "figures": "^3.0.0", + "pretty-time": "^1.1.0", + "std-env": "^2.2.1", + "text-table": "^0.2.0", + "wrap-ansi": "^6.0.0" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/webpackbar/node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpackbar/node_modules/chalk/node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpackbar/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/webpackbar/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/webpackbar/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/webpackbar/node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/webpackbar/node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpackbar/node_modules/wrap-ansi": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "license": "MIT", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/write-json-file": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-json-file/node_modules/is-plain-obj": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/write-json-file/node_modules/make-dir": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-json-file/node_modules/pify": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/write-json-file/node_modules/sort-keys": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ws": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlbuilder": { + "version": "13.0.2", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/xxhashjs": { + "version": "0.2.2", + "license": "MIT", + "dependencies": { + "cuint": "^0.2.2" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "license": "ISC" + }, + "node_modules/yallist": { + "version": "2.1.2", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.2.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.20.10" + }, + "@babel/core": { + "version": "7.20.12", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "semver": { + "version": "6.3.0" + } + } + }, + "@babel/generator": { + "version": "7.20.7", + "requires": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.7", + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "requires": { + "yallist": "^3.0.2" + } + }, + "semver": { + "version": "6.3.0" + }, + "yallist": { + "version": "3.1.1" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.20.12", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0" + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.20.7", + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.11", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.20.7", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1" + }, + "@babel/helper-validator-option": { + "version": "7.18.6" + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.20.13", + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3" + }, + "escape-string-regexp": { + "version": "1.0.5" + }, + "has-flag": { + "version": "3.0.0" + }, + "supports-color": { + "version": "5.5.0", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.20.13" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.20.7", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.20.13", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.20.12", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.19.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.20.7", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.19.0", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.20.11", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.20.7", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0" + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.20.11", + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.20.7", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.19.6", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.20.7", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.20.2", + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.20.13", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.20.7", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "requires": { + "@babel/highlight": "^7.18.6" + } + } + } + }, + "@babel/traverse": { + "version": "7.20.13", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "globals": { + "version": "11.12.0" + } + } + }, + "@babel/types": { + "version": "7.20.7", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "dev": true, + "optional": true + }, + "@csstools/convert-colors": { + "version": "1.4.0" + }, + "@cypress/request": { + "version": "2.88.11", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.10.3", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "@gar/promisify": { + "version": "1.1.3" + }, + "@glidejs/glide": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@glidejs/glide/-/glide-3.6.0.tgz", + "integrity": "sha512-47Aa+JmYjY4xTFpTtYCwrqirmI1arnp1UZETwtWpbTPisXUAuxrdJxKJLH8KHFWMsSrLi9+AcfyfzDIuO75rEA==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0" + }, + "@jridgewell/set-array": { + "version": "1.1.2" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "1.1.1", + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4" + } + } + }, + "@nuxt/babel-preset-app": { + "version": "2.15.8", + "requires": { + "@babel/compat-data": "^7.14.0", + "@babel/core": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-imports": "^7.13.12", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-decorators": "^7.13.15", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-transform-runtime": "^7.13.15", + "@babel/preset-env": "^7.14.1", + "@babel/runtime": "^7.14.0", + "@vue/babel-preset-jsx": "^1.2.4", + "core-js": "^2.6.5", + "core-js-compat": "^3.12.1", + "regenerator-runtime": "^0.13.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.12" + } + } + }, + "@nuxt/builder": { + "version": "2.15.8", + "requires": { + "@nuxt/devalue": "^1.2.5", + "@nuxt/utils": "2.15.8", + "@nuxt/vue-app": "2.15.8", + "@nuxt/webpack": "2.15.8", + "chalk": "^4.1.1", + "chokidar": "^3.5.1", + "consola": "^2.15.3", + "fs-extra": "^9.1.0", + "glob": "^7.1.7", + "hash-sum": "^2.0.0", + "ignore": "^5.1.8", + "lodash": "^4.17.21", + "pify": "^5.0.0", + "serialize-javascript": "^5.0.1", + "upath": "^2.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "ignore": { + "version": "5.2.4" + }, + "jsonfile": { + "version": "6.1.0", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "pify": { + "version": "5.0.0" + }, + "universalify": { + "version": "2.0.0" + } + } + }, + "@nuxt/cli": { + "version": "2.15.8", + "requires": { + "@nuxt/config": "2.15.8", + "@nuxt/utils": "2.15.8", + "boxen": "^5.0.1", + "chalk": "^4.1.1", + "compression": "^1.7.4", + "connect": "^3.7.0", + "consola": "^2.15.3", + "crc": "^3.8.0", + "defu": "^4.0.1", + "destr": "^1.1.0", + "execa": "^5.0.0", + "exit": "^0.1.2", + "fs-extra": "^9.1.0", + "globby": "^11.0.3", + "hable": "^3.0.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "opener": "1.5.2", + "pretty-bytes": "^5.6.0", + "semver": "^7.3.5", + "serve-static": "^1.14.1", + "std-env": "^2.3.0", + "upath": "^2.0.1", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "defu": { + "version": "4.0.1" + }, + "execa": { + "version": "5.1.1", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "fs-extra": { + "version": "9.1.0", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1" + }, + "human-signals": { + "version": "2.1.0" + }, + "jsonfile": { + "version": "6.1.0", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0" + } + } + }, + "@nuxt/components": { + "version": "2.2.1", + "requires": { + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "glob": "^7.1.7", + "globby": "^11.0.4", + "scule": "^0.2.1", + "semver": "^7.3.5", + "upath": "^2.0.1", + "vue-template-compiler": "^2.6.14" + } + }, + "@nuxt/config": { + "version": "2.15.8", + "requires": { + "@nuxt/utils": "2.15.8", + "consola": "^2.15.3", + "defu": "^4.0.1", + "destr": "^1.1.0", + "dotenv": "^9.0.2", + "lodash": "^4.17.21", + "rc9": "^1.2.0", + "std-env": "^2.3.0", + "ufo": "^0.7.4" + }, + "dependencies": { + "defu": { + "version": "4.0.1" + } + } + }, + "@nuxt/core": { + "version": "2.15.8", + "requires": { + "@nuxt/config": "2.15.8", + "@nuxt/server": "2.15.8", + "@nuxt/utils": "2.15.8", + "consola": "^2.15.3", + "fs-extra": "^9.1.0", + "hable": "^3.0.0", + "hash-sum": "^2.0.0", + "lodash": "^4.17.21" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0" + } + } + }, + "@nuxt/devalue": { + "version": "1.2.5", + "requires": { + "consola": "^2.9.0" + } + }, + "@nuxt/friendly-errors-webpack-plugin": { + "version": "2.5.2", + "requires": { + "chalk": "^2.3.2", + "consola": "^2.6.0", + "error-stack-parser": "^2.0.0", + "string-width": "^4.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3" + }, + "escape-string-regexp": { + "version": "1.0.5" + }, + "has-flag": { + "version": "3.0.0" + }, + "supports-color": { + "version": "5.5.0", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@nuxt/generator": { + "version": "2.15.8", + "requires": { + "@nuxt/utils": "2.15.8", + "chalk": "^4.1.1", + "consola": "^2.15.3", + "defu": "^4.0.1", + "devalue": "^2.0.1", + "fs-extra": "^9.1.0", + "html-minifier": "^4.0.0", + "node-html-parser": "^3.2.0", + "ufo": "^0.7.4" + }, + "dependencies": { + "defu": { + "version": "4.0.1" + }, + "fs-extra": { + "version": "9.1.0", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0" + } + } + }, + "@nuxt/loading-screen": { + "version": "2.0.4", + "requires": { + "connect": "^3.7.0", + "defu": "^5.0.0", + "get-port-please": "^2.2.0", + "node-res": "^5.0.1", + "serve-static": "^1.14.1" + } + }, + "@nuxt/opencollective": { + "version": "0.3.3", + "requires": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.7" + } + }, + "@nuxt/server": { + "version": "2.15.8", + "requires": { + "@nuxt/utils": "2.15.8", + "@nuxt/vue-renderer": "2.15.8", + "@nuxtjs/youch": "^4.2.3", + "compression": "^1.7.4", + "connect": "^3.7.0", + "consola": "^2.15.3", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "^9.1.0", + "ip": "^1.1.5", + "launch-editor-middleware": "^2.2.1", + "on-headers": "^1.0.2", + "pify": "^5.0.0", + "serve-placeholder": "^1.2.3", + "serve-static": "^1.14.1", + "server-destroy": "^1.0.1", + "ufo": "^0.7.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "pify": { + "version": "5.0.0" + }, + "universalify": { + "version": "2.0.0" + } + } + }, + "@nuxt/telemetry": { + "version": "1.3.9", + "requires": { + "arg": "^5.0.2", + "chalk": "^4.1.1", + "ci-info": "^3.6.1", + "consola": "^2.15.3", + "create-require": "^1.1.1", + "defu": "^5.0.0", + "destr": "^1.1.0", + "dotenv": "^9.0.2", + "fs-extra": "^8.1.0", + "git-url-parse": "^13.1.0", + "inquirer": "^7.3.3", + "jiti": "^1.9.2", + "nanoid": "^3.1.23", + "node-fetch": "^2.6.1", + "parse-git-config": "^3.0.0", + "rc9": "^1.2.0", + "std-env": "^2.3.0" + } + }, + "@nuxt/utils": { + "version": "2.15.8", + "requires": { + "consola": "^2.15.3", + "create-require": "^1.1.1", + "fs-extra": "^9.1.0", + "hash-sum": "^2.0.0", + "jiti": "^1.9.2", + "lodash": "^4.17.21", + "proper-lockfile": "^4.1.2", + "semver": "^7.3.5", + "serialize-javascript": "^5.0.1", + "signal-exit": "^3.0.3", + "ua-parser-js": "^0.7.28", + "ufo": "^0.7.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0" + } + } + }, + "@nuxt/vue-app": { + "version": "2.15.8", + "requires": { + "node-fetch": "^2.6.1", + "ufo": "^0.7.4", + "unfetch": "^4.2.0", + "vue": "^2.6.12", + "vue-client-only": "^2.0.0", + "vue-meta": "^2.4.0", + "vue-no-ssr": "^1.1.1", + "vue-router": "^3.5.1", + "vue-template-compiler": "^2.6.12", + "vuex": "^3.6.2" + } + }, + "@nuxt/vue-renderer": { + "version": "2.15.8", + "requires": { + "@nuxt/devalue": "^1.2.5", + "@nuxt/utils": "2.15.8", + "consola": "^2.15.3", + "defu": "^4.0.1", + "fs-extra": "^9.1.0", + "lodash": "^4.17.21", + "lru-cache": "^5.1.1", + "ufo": "^0.7.4", + "vue": "^2.6.12", + "vue-meta": "^2.4.0", + "vue-server-renderer": "^2.6.12" + }, + "dependencies": { + "defu": { + "version": "4.0.1" + }, + "fs-extra": { + "version": "9.1.0", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "requires": { + "yallist": "^3.0.2" + } + }, + "universalify": { + "version": "2.0.0" + }, + "yallist": { + "version": "3.1.1" + } + } + }, + "@nuxt/webpack": { + "version": "2.15.8", + "requires": { + "@babel/core": "^7.14.0", + "@nuxt/babel-preset-app": "2.15.8", + "@nuxt/friendly-errors-webpack-plugin": "^2.5.1", + "@nuxt/utils": "2.15.8", + "babel-loader": "^8.2.2", + "cache-loader": "^4.1.0", + "caniuse-lite": "^1.0.30001228", + "consola": "^2.15.3", + "css-loader": "^4.3.0", + "cssnano": "^4.1.11", + "eventsource-polyfill": "^0.9.6", + "extract-css-chunks-webpack-plugin": "^4.9.0", + "file-loader": "^6.2.0", + "glob": "^7.1.7", + "hard-source-webpack-plugin": "^0.13.1", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^4.5.1", + "lodash": "^4.17.21", + "memory-fs": "^0.5.0", + "optimize-css-assets-webpack-plugin": "^5.0.4", + "pify": "^5.0.0", + "pnp-webpack-plugin": "^1.6.4", + "postcss": "^7.0.32", + "postcss-import": "^12.0.1", + "postcss-import-resolver": "^2.0.0", + "postcss-loader": "^3.0.0", + "postcss-preset-env": "^6.7.0", + "postcss-url": "^8.0.0", + "semver": "^7.3.5", + "std-env": "^2.3.0", + "style-resources-loader": "^1.4.1", + "terser-webpack-plugin": "^4.2.3", + "thread-loader": "^3.0.4", + "time-fix-plugin": "^2.0.7", + "ufo": "^0.7.4", + "url-loader": "^4.1.1", + "vue-loader": "^15.9.7", + "vue-style-loader": "^4.1.3", + "vue-template-compiler": "^2.6.12", + "webpack": "^4.46.0", + "webpack-bundle-analyzer": "^4.4.1", + "webpack-dev-middleware": "^4.2.0", + "webpack-hot-middleware": "^2.25.0", + "webpack-node-externals": "^3.0.0", + "webpackbar": "^4.0.0" + }, + "dependencies": { + "pify": { + "version": "5.0.0" + } + } + }, + "@nuxtjs/axios": { + "version": "5.13.6", + "dev": true, + "requires": { + "@nuxtjs/proxy": "^2.1.0", + "axios": "^0.21.1", + "axios-retry": "^3.1.9", + "consola": "^2.15.3", + "defu": "^5.0.0" + } + }, + "@nuxtjs/gtm": { + "version": "2.4.0", + "requires": { + "chalk": "^4.1.0", + "semver": "^7.3.2" + } + }, + "@nuxtjs/proxy": { + "version": "2.1.0", + "dev": true, + "requires": { + "http-proxy-middleware": "^1.0.6" + } + }, + "@nuxtjs/router-extras": { + "version": "1.1.1", + "dev": true, + "requires": { + "chokidar": "^3.4.3", + "gray-matter": "^4.0.2" + } + }, + "@nuxtjs/sitemap": { + "version": "2.4.0", + "requires": { + "async-cache": "^1.1.0", + "consola": "^2.13.0", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "^8.1.0", + "is-https": "^2.0.2", + "lodash.unionby": "^4.8.0", + "minimatch": "^3.0.4", + "sitemap": "^4.1.1" + } + }, + "@nuxtjs/style-resources": { + "version": "1.2.1", + "dev": true, + "requires": { + "consola": "^2.15.3", + "glob-all": "^3.2.1", + "sass-resources-loader": "^2.2.4" + } + }, + "@nuxtjs/youch": { + "version": "4.2.3", + "requires": { + "cookie": "^0.3.1", + "mustache": "^2.3.0", + "stack-trace": "0.0.10" + } + }, + "@percy/cli": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/cli-app": "1.17.0", + "@percy/cli-build": "1.17.0", + "@percy/cli-command": "1.17.0", + "@percy/cli-config": "1.17.0", + "@percy/cli-exec": "1.17.0", + "@percy/cli-snapshot": "1.17.0", + "@percy/cli-upload": "1.17.0", + "@percy/client": "1.17.0", + "@percy/logger": "1.17.0" + } + }, + "@percy/cli-app": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/cli-command": "1.17.0", + "@percy/cli-exec": "1.17.0" + } + }, + "@percy/cli-build": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/cli-command": "1.17.0" + } + }, + "@percy/cli-command": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/config": "1.17.0", + "@percy/core": "1.17.0", + "@percy/logger": "1.17.0" + } + }, + "@percy/cli-config": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/cli-command": "1.17.0" + } + }, + "@percy/cli-exec": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/cli-command": "1.17.0", + "cross-spawn": "^7.0.3", + "which": "^2.0.2" + } + }, + "@percy/cli-snapshot": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/cli-command": "1.17.0", + "yaml": "^2.0.0" + } + }, + "@percy/cli-upload": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/cli-command": "1.17.0", + "fast-glob": "^3.2.11", + "image-size": "^1.0.0" + } + }, + "@percy/client": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/env": "1.17.0", + "@percy/logger": "1.17.0" + } + }, + "@percy/config": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/logger": "1.17.0", + "ajv": "^8.6.2", + "cosmiconfig": "^7.0.0", + "yaml": "^2.0.0" + } + }, + "@percy/core": { + "version": "1.17.0", + "dev": true, + "requires": { + "@percy/client": "1.17.0", + "@percy/config": "1.17.0", + "@percy/dom": "1.17.0", + "@percy/logger": "1.17.0", + "content-disposition": "^0.5.4", + "cross-spawn": "^7.0.3", + "extract-zip": "^2.0.1", + "fast-glob": "^3.2.11", + "micromatch": "^4.0.4", + "mime-types": "^2.1.34", + "path-to-regexp": "^6.2.0", + "rimraf": "^3.0.2", + "ws": "^8.0.0" + } + }, + "@percy/cypress": { + "version": "3.1.2", + "dev": true, + "requires": { + "@percy/sdk-utils": "^1.3.1" + } + }, + "@percy/dom": { + "version": "1.17.0", + "dev": true + }, + "@percy/env": { + "version": "1.17.0", + "dev": true + }, + "@percy/logger": { + "version": "1.17.0", + "dev": true + }, + "@percy/sdk-utils": { + "version": "1.17.0", + "dev": true + }, + "@polka/url": { + "version": "1.0.0-next.21" + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "dev": true + }, + "@types/html-minifier-terser": { + "version": "5.1.2" + }, + "@types/http-proxy": { + "version": "1.17.9", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11" + }, + "@types/node": { + "version": "14.18.36" + }, + "@types/parse-json": { + "version": "4.0.0", + "dev": true + }, + "@types/q": { + "version": "1.5.5" + }, + "@types/sax": { + "version": "1.2.4", + "requires": { + "@types/node": "*" + } + }, + "@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "@types/sizzle": { + "version": "2.3.3", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2" + }, + "@types/tapable": { + "version": "1.0.8" + }, + "@types/uglify-js": { + "version": "3.17.1", + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/webpack": { + "version": "4.41.33", + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "@types/webpack-sources": { + "version": "3.2.0", + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.4" + } + } + }, + "@types/yauzl": { + "version": "2.10.0", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "3.10.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "3.10.1", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "3.10.1", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "@typescript-eslint/types": { + "version": "3.10.1", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "3.10.1", + "dev": true, + "requires": { + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/visitor-keys": "3.10.1", + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "3.10.1", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "@videojs/http-streaming": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-2.16.0.tgz", + "integrity": "sha512-mGNTqjENzP86XGM6HSWdWVO/KAsDlf5+idW2W7dL1+NkzWpwZlSEYhrdEVVnhoOb0A6E7JW6LM611/JA7Jn/3A==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "3.0.5", + "aes-decrypter": "3.1.3", + "global": "^4.4.0", + "m3u8-parser": "4.8.0", + "mpd-parser": "^0.22.1", + "mux.js": "6.0.1", + "video.js": "^6 || ^7" + } + }, + "@videojs/vhs-utils": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz", + "integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "global": "^4.4.0", + "url-toolkit": "^2.2.1" + } + }, + "@videojs/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@videojs/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "global": "~4.4.0", + "is-function": "^1.0.1" + } + }, + "@vue-a11y/skip-to": { + "version": "2.1.2" + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.4.0" + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.4.0", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-preset-jsx": { + "version": "1.4.0", + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "@vue/babel-sugar-composition-api-inject-h": "^1.4.0", + "@vue/babel-sugar-composition-api-render-instance": "^1.4.0", + "@vue/babel-sugar-functional-vue": "^1.4.0", + "@vue/babel-sugar-inject-h": "^1.4.0", + "@vue/babel-sugar-v-model": "^1.4.0", + "@vue/babel-sugar-v-on": "^1.4.0" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.4.0", + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.4.0", + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.4.0", + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.4.0", + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.4.0", + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.4.0", + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0" + } + }, + "@vue/compiler-sfc": { + "version": "2.7.14", + "requires": { + "@babel/parser": "^7.18.4", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + }, + "dependencies": { + "postcss": { + "version": "8.4.21", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + } + } + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2" + } + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xmldom/xmldom": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", + "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0" + }, + "@xtuc/long": { + "version": "4.2.2" + }, + "accepts": { + "version": "1.3.8", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "7.4.1", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0" + }, + "aes-decrypter": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-3.1.3.tgz", + "integrity": "sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "global": "^4.4.0", + "pkcs7": "^1.0.4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.12.0", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "requires": {} + }, + "alphanum-sort": { + "version": "1.0.2" + }, + "ansi-align": { + "version": "3.0.1", + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3" + } + } + }, + "ansi-html-community": { + "version": "0.0.8" + }, + "ansi-regex": { + "version": "3.0.1", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0" + }, + "arch": { + "version": "2.2.0", + "dev": true + }, + "arg": { + "version": "5.0.2" + }, + "argparse": { + "version": "1.0.10", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0" + }, + "arr-flatten": { + "version": "1.1.0" + }, + "arr-union": { + "version": "3.1.0" + }, + "array-union": { + "version": "2.1.0" + }, + "array-unique": { + "version": "0.3.2" + }, + "array.prototype.reduce": { + "version": "1.0.5", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "asn1": { + "version": "0.2.6", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } + } + }, + "assert": { + "version": "1.5.0", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1" + }, + "util": { + "version": "0.10.3", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0" + }, + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "async": { + "version": "3.2.4", + "dev": true + }, + "async-cache": { + "version": "1.1.0", + "requires": { + "lru-cache": "^4.0.0" + } + }, + "async-each": { + "version": "1.0.3", + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "dev": true + }, + "at-least-node": { + "version": "1.0.0" + }, + "atob": { + "version": "2.1.2" + }, + "autoprefixer": { + "version": "9.8.8", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1" + } + } + }, + "available-typed-arrays": { + "version": "1.0.5" + }, + "aws-sign2": { + "version": "0.7.0", + "dev": true + }, + "aws4": { + "version": "1.12.0", + "dev": true + }, + "axios": { + "version": "0.21.4", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "axios-retry": { + "version": "3.4.0", + "dev": true, + "requires": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "babel-loader": { + "version": "8.3.0", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "balanced-match": { + "version": "1.0.2" + }, + "base": { + "version": "0.11.2", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2" + }, + "binary-extensions": { + "version": "2.2.0" + }, + "bindings": { + "version": "1.5.0", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "blob-util": { + "version": "2.0.2", + "dev": true + }, + "bluebird": { + "version": "3.7.2" + }, + "bn.js": { + "version": "5.2.1" + }, + "boolbase": { + "version": "1.0.0" + }, + "boxen": { + "version": "5.1.2", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0" + }, + "browserify-aes": { + "version": "1.2.0", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.21.4", + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "buffer": { + "version": "5.7.1", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "dev": true + }, + "buffer-from": { + "version": "1.1.2" + }, + "buffer-json": { + "version": "2.0.0" + }, + "buffer-xor": { + "version": "1.0.3" + }, + "builtin-status-codes": { + "version": "3.0.0" + }, + "bytes": { + "version": "3.0.0" + }, + "cacache": { + "version": "15.3.0", + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4" + }, + "yallist": { + "version": "4.0.0" + } + } + }, + "cache-base": { + "version": "1.0.1", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cache-loader": { + "version": "4.1.0", + "requires": { + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "cachedir": { + "version": "2.3.0", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0" + } + } + }, + "caller-path": { + "version": "2.0.0", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1" + }, + "caniuse-api": { + "version": "3.0.0", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001448" + }, + "caseless": { + "version": "0.12.0", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chardet": { + "version": "0.7.0" + }, + "check-more-types": { + "version": "2.24.0", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0" + }, + "chrome-trace-event": { + "version": "1.0.3" + }, + "ci-info": { + "version": "3.7.1" + }, + "cipher-base": { + "version": "1.0.4", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + } + }, + "clean-css": { + "version": "4.2.4", + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0" + }, + "cli-boxes": { + "version": "2.2.1" + }, + "cli-cursor": { + "version": "3.1.0", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-table3": { + "version": "0.6.3", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "3.0.0" + }, + "cliui": { + "version": "6.0.0", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "wrap-ansi": { + "version": "6.2.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "coa": { + "version": "2.0.2", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3" + }, + "escape-string-regexp": { + "version": "1.0.5" + }, + "has-flag": { + "version": "3.0.0" + }, + "supports-color": { + "version": "5.5.0", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "collection-visit": { + "version": "1.0.0", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + }, + "dependencies": { + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3" + } + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, + "color-string": { + "version": "1.9.1", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "2.0.19", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "5.1.0", + "dev": true + }, + "common-tags": { + "version": "1.8.2", + "dev": true + }, + "commondir": { + "version": "1.0.1" + }, + "component-emitter": { + "version": "1.3.0" + }, + "compressible": { + "version": "2.0.18", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0" + }, + "safe-buffer": { + "version": "5.1.2" + } + } + }, + "concat-map": { + "version": "0.0.1" + }, + "concat-stream": { + "version": "1.6.2", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.7.0", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0" + } + } + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "console-browserify": { + "version": "1.2.0" + }, + "consolidate": { + "version": "0.15.1", + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0" + }, + "content-disposition": { + "version": "0.5.4", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "convert-source-map": { + "version": "1.9.0" + }, + "cookie": { + "version": "0.3.1" + }, + "copy-concurrently": { + "version": "1.0.5", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1" + }, + "core-js": { + "version": "3.27.2", + "dev": true + }, + "core-js-compat": { + "version": "3.27.2", + "requires": { + "browserslist": "^4.21.4" + } + }, + "core-util-is": { + "version": "1.0.3" + }, + "cosmiconfig": { + "version": "7.1.0", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "dependencies": { + "yaml": { + "version": "1.10.2", + "dev": true + } + } + }, + "crc": { + "version": "3.8.0", + "requires": { + "buffer": "^5.1.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } + } + }, + "create-hash": { + "version": "1.2.0", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-require": { + "version": "1.1.1" + }, + "cross-fetch": { + "version": "3.1.5", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "cross-spawn": { + "version": "7.0.3", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-blank-pseudo": { + "version": "0.1.4", + "requires": { + "postcss": "^7.0.5" + } + }, + "css-color-names": { + "version": "0.0.4" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-has-pseudo": { + "version": "0.10.0", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "css-loader": { + "version": "4.3.0", + "requires": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.1", + "semver": "^7.3.2" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0" + } + } + }, + "css-prefers-color-scheme": { + "version": "3.1.1", + "requires": { + "postcss": "^7.0.5" + } + }, + "css-select": { + "version": "4.3.0", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-select-base-adapter": { + "version": "0.1.1" + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0" + }, + "cssdb": { + "version": "4.4.0" + }, + "cssesc": { + "version": "3.0.0" + }, + "cssnano": { + "version": "4.1.11", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0" + } + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0" + }, + "cssnano-util-get-match": { + "version": "4.0.0" + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1" + }, + "csso": { + "version": "4.2.0", + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14" + } + } + }, + "csstype": { + "version": "3.1.1" + }, + "cuint": { + "version": "0.2.2" + }, + "cyclist": { + "version": "1.0.1" + }, + "cypress": { + "version": "12.5.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.5.1.tgz", + "integrity": "sha512-ZmCmJ3lsyeOpBfh410m5+AO2CO1AxAzFBt7k6/uVbNcrNZje1vdiwYTpj2ksPKg9mjr9lR6V8tmlDNMvr4H/YQ==", + "dev": true, + "requires": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.6", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "dev": true + } + } + }, + "dashdash": { + "version": "1.14.1", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "2.29.3", + "dev": true + }, + "dayjs": { + "version": "1.11.7", + "dev": true + }, + "de-indent": { + "version": "1.0.2" + }, + "debug": { + "version": "4.3.4", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2" + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "deepmerge": { + "version": "4.2.2" + }, + "define-properties": { + "version": "1.1.4", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "0.2.5", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "defu": { + "version": "5.0.1" + }, + "delayed-stream": { + "version": "1.0.0", + "dev": true + }, + "depd": { + "version": "2.0.0" + }, + "des.js": { + "version": "1.0.1", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destr": { + "version": "1.2.2" + }, + "destroy": { + "version": "1.2.0" + }, + "detect-indent": { + "version": "5.0.0" + }, + "devalue": { + "version": "2.0.1" + }, + "diffie-hellman": { + "version": "5.0.3", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "1.4.1", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "domain-browser": { + "version": "1.2.0" + }, + "domelementtype": { + "version": "2.3.0" + }, + "domhandler": { + "version": "4.3.1", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "lower-case": { + "version": "2.0.2", + "requires": { + "tslib": "^2.0.3" + } + }, + "no-case": { + "version": "3.0.4", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + } + } + }, + "dot-prop": { + "version": "5.3.0", + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "9.0.2" + }, + "duplexer": { + "version": "0.1.2" + }, + "duplexify": { + "version": "3.7.1", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1" + }, + "electron-to-chromium": { + "version": "1.4.284" + }, + "elliptic": { + "version": "6.5.4", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } + } + }, + "emoji-regex": { + "version": "8.0.0" + }, + "emojis-list": { + "version": "3.0.0" + }, + "encodeurl": { + "version": "1.0.2" + }, + "end-of-stream": { + "version": "1.4.4", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "enquirer": { + "version": "2.3.6", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.2.0" + }, + "errno": { + "version": "0.1.8", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "requires": { + "stackframe": "^1.3.4" + } + }, + "es-abstract": { + "version": "1.21.1", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0" + }, + "es-set-tostringtag": { + "version": "2.0.1", + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1" + }, + "escape-html": { + "version": "1.0.3" + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, + "eslint-plugin-cypress": { + "version": "2.12.1", + "dev": true, + "requires": { + "globals": "^11.12.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "dev": true + } + } + }, + "eslint-plugin-vue": { + "version": "7.20.0", + "dev": true, + "requires": { + "eslint-utils": "^2.1.0", + "natural-compare": "^1.4.0", + "semver": "^6.3.0", + "vue-eslint-parser": "^7.10.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + }, + "espree": { + "version": "7.3.1", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1" + }, + "esquery": { + "version": "1.4.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0" + } + } + }, + "estraverse": { + "version": "4.3.0" + }, + "esutils": { + "version": "2.0.3" + }, + "etag": { + "version": "1.8.1" + }, + "eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "dev": true + }, + "events": { + "version": "3.3.0" + }, + "eventsource-polyfill": { + "version": "0.9.6" + }, + "evp_bytestokey": { + "version": "1.0.3", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "4.1.0", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "executable": { + "version": "4.1.1", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, + "exit": { + "version": "0.1.2" + }, + "expand-brackets": { + "version": "2.1.4", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0" + } + } + }, + "extend": { + "version": "3.0.2", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "external-editor": { + "version": "3.1.0", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extract-css-chunks-webpack-plugin": { + "version": "4.9.0", + "requires": { + "loader-utils": "^2.0.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "schema-utils": { + "version": "1.0.0", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "extract-files": { + "version": "9.0.0", + "dev": true + }, + "extract-zip": { + "version": "2.0.1", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3" + }, + "fast-glob": { + "version": "3.2.12", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0" + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figgy-pudding": { + "version": "3.5.2" + }, + "figures": { + "version": "3.2.0", + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5" + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-loader": { + "version": "6.2.0", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "schema-utils": { + "version": "3.1.1", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "optional": true + }, + "fill-range": { + "version": "7.0.1", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0" + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2" + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "dev": true + }, + "flatten": { + "version": "1.0.3" + }, + "flush-write-stream": { + "version": "1.1.1", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.15.2", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2" + }, + "forever-agent": { + "version": "0.6.1", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2" + }, + "from2": { + "version": "2.3.0", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-memo": { + "version": "1.2.0" + }, + "fs-minipass": { + "version": "2.1.0", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3" + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0" + }, + "fsevents": { + "version": "2.3.2", + "optional": true + }, + "function-bind": { + "version": "1.1.1" + }, + "function.prototype.name": { + "version": "1.1.5", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3" + }, + "gensync": { + "version": "1.0.0-beta.2" + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-port-please": { + "version": "2.6.1", + "requires": { + "fs-memo": "^1.2.0" + } + }, + "get-stream": { + "version": "5.2.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6" + }, + "getos": { + "version": "3.2.1", + "dev": true, + "requires": { + "async": "^3.2.0" + } + }, + "getpass": { + "version": "0.1.7", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "git-config-path": { + "version": "2.0.0" + }, + "git-up": { + "version": "7.0.0", + "requires": { + "is-ssh": "^1.4.0", + "parse-url": "^8.1.0" + } + }, + "git-url-parse": { + "version": "13.1.0", + "requires": { + "git-up": "^7.0.0" + } + }, + "glob": { + "version": "7.2.3", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-all": { + "version": "3.3.1", + "dev": true, + "requires": { + "glob": "^7.2.3", + "yargs": "^15.3.1" + } + }, + "glob-parent": { + "version": "5.1.2", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "global-dirs": { + "version": "3.0.1", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "globals": { + "version": "13.19.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.2.4" + } + } + }, + "gopd": { + "version": "1.0.1", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.10" + }, + "graphql": { + "version": "15.8.0", + "dev": true + }, + "graphql-request": { + "version": "3.7.0", + "dev": true, + "requires": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "graphql-tag": { + "version": "2.12.6", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "gray-matter": { + "version": "4.0.3", + "dev": true, + "requires": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + } + }, + "gzip-size": { + "version": "6.0.0", + "requires": { + "duplexer": "^0.1.2" + } + }, + "hable": { + "version": "3.0.0" + }, + "hard-source-webpack-plugin": { + "version": "0.13.1", + "requires": { + "chalk": "^2.4.1", + "find-cache-dir": "^2.0.0", + "graceful-fs": "^4.1.11", + "lodash": "^4.15.0", + "mkdirp": "^0.5.1", + "node-object-hash": "^1.2.0", + "parse-json": "^4.0.0", + "pkg-dir": "^3.0.0", + "rimraf": "^2.6.2", + "semver": "^5.6.0", + "tapable": "^1.0.0-beta.5", + "webpack-sources": "^1.0.1", + "write-json-file": "^2.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3" + }, + "escape-string-regexp": { + "version": "1.0.5" + }, + "find-cache-dir": { + "version": "2.1.0", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "requires": { + "locate-path": "^3.0.0" + } + }, + "has-flag": { + "version": "3.0.0" + }, + "locate-path": { + "version": "3.0.0", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-locate": { + "version": "3.0.0", + "requires": { + "p-limit": "^2.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0" + }, + "pify": { + "version": "4.0.1" + }, + "pkg-dir": { + "version": "3.0.0", + "requires": { + "find-up": "^3.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1" + }, + "supports-color": { + "version": "5.5.0", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "has": { + "version": "1.0.3", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.2" + }, + "has-flag": { + "version": "4.0.0" + }, + "has-property-descriptors": { + "version": "1.0.0", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1" + }, + "has-symbols": { + "version": "1.0.3" + }, + "has-tostringtag": { + "version": "1.0.0", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-value": { + "version": "1.0.0", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash-sum": { + "version": "2.0.0" + }, + "hash.js": { + "version": "1.1.7", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0" + }, + "hex-color-regex": { + "version": "1.1.0" + }, + "hmac-drbg": { + "version": "1.0.1", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hsl-regex": { + "version": "1.0.0" + }, + "hsla-regex": { + "version": "1.0.0" + }, + "html-entities": { + "version": "2.3.3" + }, + "html-minifier": { + "version": "4.0.0", + "requires": { + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3" + } + } + }, + "html-minifier-terser": { + "version": "5.1.1", + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "dependencies": { + "camel-case": { + "version": "4.1.2", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "commander": { + "version": "4.1.1" + }, + "param-case": { + "version": "3.0.4", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + } + } + }, + "html-tags": { + "version": "2.0.0" + }, + "html-webpack-plugin": { + "version": "4.5.2", + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-errors": { + "version": "2.0.0", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "statuses": { + "version": "2.0.1" + } + } + }, + "http-proxy": { + "version": "1.18.1", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "1.3.1", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.5", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "http-signature": { + "version": "1.3.6", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + } + }, + "https-browserify": { + "version": "1.0.0" + }, + "human-signals": { + "version": "1.1.1", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.2.1" + }, + "iferr": { + "version": "0.1.5" + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "image-size": { + "version": "1.0.2", + "dev": true, + "requires": { + "queue": "6.0.2" + } + }, + "immutable": { + "version": "4.2.2", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0" + } + } + }, + "imurmurhash": { + "version": "0.1.4" + }, + "indent-string": { + "version": "4.0.0" + }, + "indexes-of": { + "version": "1.0.1" + }, + "individual": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-2.0.0.tgz", + "integrity": "sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4" + }, + "inflight": { + "version": "1.0.6", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4" + }, + "ini": { + "version": "2.0.0", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1" + } + } + }, + "internal-slot": { + "version": "1.0.4", + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ip": { + "version": "1.1.8" + }, + "is-absolute-url": { + "version": "2.1.0" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-array-buffer": { + "version": "3.0.1", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1" + }, + "is-bigint": { + "version": "1.0.4", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6" + }, + "is-callable": { + "version": "1.2.7" + }, + "is-ci": { + "version": "3.0.1", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.5", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0" + } + } + }, + "is-directory": { + "version": "0.3.1" + }, + "is-extendable": { + "version": "0.1.1" + }, + "is-extglob": { + "version": "2.1.1" + }, + "is-fullwidth-code-point": { + "version": "3.0.0" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-https": { + "version": "2.0.2" + }, + "is-installed-globally": { + "version": "0.4.0", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-negative-zero": { + "version": "2.0.2" + }, + "is-number": { + "version": "7.0.0" + }, + "is-number-object": { + "version": "1.0.7", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0" + }, + "is-path-inside": { + "version": "3.0.3", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0" + }, + "is-retry-allowed": { + "version": "2.2.0", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-ssh": { + "version": "1.4.0", + "requires": { + "protocols": "^2.0.1" + } + }, + "is-stream": { + "version": "2.0.1" + }, + "is-string": { + "version": "1.0.7", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2" + }, + "is-wsl": { + "version": "1.1.0" + }, + "isarray": { + "version": "1.0.0" + }, + "isexe": { + "version": "2.0.0" + }, + "isobject": { + "version": "3.0.1" + }, + "isstream": { + "version": "0.1.2", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "jiti": { + "version": "1.16.2" + }, + "js-tokens": { + "version": "4.0.0" + }, + "js-yaml": { + "version": "3.14.1", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "dev": true + }, + "jsesc": { + "version": "2.5.2" + }, + "json-parse-better-errors": { + "version": "1.0.2" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "dev": true + }, + "json5": { + "version": "2.2.3" + }, + "jsonfile": { + "version": "4.0.0", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "2.0.2", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "keycode": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz", + "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3" + }, + "klona": { + "version": "2.0.6", + "dev": true + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "launch-editor": { + "version": "2.6.0", + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "launch-editor-middleware": { + "version": "2.6.0", + "requires": { + "launch-editor": "^2.6.0" + } + }, + "lazy-ass": { + "version": "1.6.0", + "dev": true + }, + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "listr2": { + "version": "3.14.0", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + } + }, + "loader-runner": { + "version": "4.3.0" + }, + "loader-utils": { + "version": "2.0.4", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21" + }, + "lodash._reinterpolate": { + "version": "3.0.0" + }, + "lodash.debounce": { + "version": "4.0.8" + }, + "lodash.kebabcase": { + "version": "4.1.1" + }, + "lodash.memoize": { + "version": "4.1.2" + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "dev": true + }, + "lodash.template": { + "version": "4.5.0", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.truncate": { + "version": "4.4.2", + "dev": true + }, + "lodash.unionby": { + "version": "4.8.0" + }, + "lodash.uniq": { + "version": "4.5.0" + }, + "log-symbols": { + "version": "4.1.0", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "log-update": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "loglevel": { + "version": "1.8.1", + "dev": true + }, + "loglevel-colored-level-prefix": { + "version": "1.0.0", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "loglevel": "^1.4.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "lower-case": { + "version": "1.1.4" + }, + "lru-cache": { + "version": "4.1.5", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "m3u8-parser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-4.8.0.tgz", + "integrity": "sha512-UqA2a/Pw3liR6Df3gwxrqghCP17OpPlQj6RBPLYygf/ZSQ4MoSgvdvhvt35qV+3NaaA0FSZx93Ix+2brT1U7cA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "global": "^4.4.0" + } + }, + "make-dir": { + "version": "3.1.0", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0" + } + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2" + }, + "map-visit": { + "version": "1.0.0", + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4" + }, + "mem": { + "version": "8.1.1", + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.1.0" + } + } + }, + "memfs": { + "version": "3.4.13", + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "memory-fs": { + "version": "0.5.0", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-source-map": { + "version": "1.1.0", + "requires": { + "source-map": "^0.6.1" + } + }, + "merge-stream": { + "version": "2.0.0" + }, + "merge2": { + "version": "1.4.1" + }, + "micromatch": { + "version": "4.0.5", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "miller-rabin": { + "version": "4.0.1", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } + } + }, + "mime": { + "version": "2.6.0" + }, + "mime-db": { + "version": "1.52.0" + }, + "mime-types": { + "version": "2.1.35", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dev": true, + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1" + }, + "minimatch": { + "version": "3.1.2", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7" + }, + "minipass": { + "version": "3.3.6", + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0" + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0" + } + } + }, + "mississippi": { + "version": "3.0.0", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.6", + "requires": { + "minimist": "^1.2.6" + } + }, + "move-concurrently": { + "version": "1.0.1", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "mpd-parser": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.22.1.tgz", + "integrity": "sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "@xmldom/xmldom": "^0.8.3", + "global": "^4.4.0" + } + }, + "mrmime": { + "version": "1.0.1" + }, + "ms": { + "version": "2.1.2" + }, + "mustache": { + "version": "2.3.2" + }, + "mute-stream": { + "version": "0.0.8" + }, + "mux.js": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-6.0.1.tgz", + "integrity": "sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.11.2", + "global": "^4.4.0" + } + }, + "nan": { + "version": "2.17.0", + "optional": true + }, + "nanoid": { + "version": "3.3.4" + }, + "nanomatch": { + "version": "1.2.13", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "negotiator": { + "version": "0.6.3" + }, + "neo-async": { + "version": "2.6.2" + }, + "no-case": { + "version": "2.3.2", + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-fetch": { + "version": "2.6.8", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-html-parser": { + "version": "3.3.6", + "requires": { + "css-select": "^4.1.3", + "he": "1.2.0" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "punycode": { + "version": "1.4.1" + } + } + }, + "node-object-hash": { + "version": "1.4.2" + }, + "node-releases": { + "version": "2.0.8" + }, + "node-res": { + "version": "5.0.1", + "requires": { + "destroy": "^1.0.4", + "etag": "^1.8.1", + "mime-types": "^2.1.19", + "on-finished": "^2.3.0", + "vary": "^1.1.2" + } + }, + "normalize-path": { + "version": "3.0.0" + }, + "normalize-range": { + "version": "0.1.2" + }, + "normalize-url": { + "version": "1.9.1", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-run-path": { + "version": "4.0.1", + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "requires": { + "boolbase": "^1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2" + }, + "nuxt": { + "version": "2.15.8", + "requires": { + "@nuxt/babel-preset-app": "2.15.8", + "@nuxt/builder": "2.15.8", + "@nuxt/cli": "2.15.8", + "@nuxt/components": "^2.1.8", + "@nuxt/config": "2.15.8", + "@nuxt/core": "2.15.8", + "@nuxt/generator": "2.15.8", + "@nuxt/loading-screen": "^2.0.3", + "@nuxt/opencollective": "^0.3.2", + "@nuxt/server": "2.15.8", + "@nuxt/telemetry": "^1.3.3", + "@nuxt/utils": "2.15.8", + "@nuxt/vue-app": "2.15.8", + "@nuxt/vue-renderer": "2.15.8", + "@nuxt/webpack": "2.15.8" + } + }, + "nuxt-graphql-request": { + "version": "4.3.0", + "dev": true, + "requires": { + "cross-fetch": "^3.1.4", + "graphql-request": "^3.7.0", + "ramda": "^0.27.1" + } + }, + "nuxt-robots-module": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/nuxt-robots-module/-/nuxt-robots-module-1.5.1.tgz", + "integrity": "sha512-A12tQkAfhGOCMhadqJqZcMFmFB4QWHKdNO75vZU9Lteh5bp8CyPCuzYgXVHG4LC5aHs5defBjsX9ja4FQCYA+w==" + }, + "object-assign": { + "version": "4.1.1" + }, + "object-copy": { + "version": "0.1.0", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.3" + }, + "object-keys": { + "version": "1.1.1" + }, + "object-visit": { + "version": "1.0.1", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.4", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.5", + "requires": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.pick": { + "version": "1.3.0", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.6", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "on-finished": { + "version": "2.3.0", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2" + }, + "once": { + "version": "1.4.0", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "opener": { + "version": "1.5.2" + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.8", + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.9.1", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "os-browserify": { + "version": "0.3.0" + }, + "os-tmpdir": { + "version": "1.0.2" + }, + "ospath": { + "version": "1.2.2", + "dev": true + }, + "p-defer": { + "version": "1.0.0" + }, + "p-limit": { + "version": "2.3.0", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0" + }, + "pako": { + "version": "1.0.11" + }, + "parallel-transform": { + "version": "1.2.0", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-git-config": { + "version": "3.0.0", + "requires": { + "git-config-path": "^2.0.0", + "ini": "^1.3.5" + }, + "dependencies": { + "ini": { + "version": "1.3.8" + } + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-path": { + "version": "7.0.0", + "requires": { + "protocols": "^2.0.0" + } + }, + "parse-url": { + "version": "8.1.0", + "requires": { + "parse-path": "^7.0.0" + } + }, + "parseurl": { + "version": "1.3.3" + }, + "pascal-case": { + "version": "3.1.2", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "lower-case": { + "version": "2.0.2", + "requires": { + "tslib": "^2.0.3" + } + }, + "no-case": { + "version": "3.0.4", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + } + } + }, + "pascalcase": { + "version": "0.1.1" + }, + "path-browserify": { + "version": "0.0.1" + }, + "path-dirname": { + "version": "1.0.2", + "optional": true + }, + "path-exists": { + "version": "4.0.0" + }, + "path-is-absolute": { + "version": "1.0.1" + }, + "path-key": { + "version": "3.1.1" + }, + "path-parse": { + "version": "1.0.7" + }, + "path-to-regexp": { + "version": "6.2.1", + "dev": true + }, + "path-type": { + "version": "4.0.0" + }, + "pbkdf2": { + "version": "3.1.2", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "dev": true + }, + "picocolors": { + "version": "1.0.0" + }, + "picomatch": { + "version": "2.3.1" + }, + "pify": { + "version": "2.3.0" + }, + "pkcs7": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.4.tgz", + "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5" + } + }, + "pkg-dir": { + "version": "4.2.0", + "requires": { + "find-up": "^4.0.0" + } + }, + "pnp-webpack-plugin": { + "version": "1.7.0", + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "posix-character-classes": { + "version": "0.1.1" + }, + "postcss": { + "version": "7.0.39", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1" + } + } + }, + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, + "postcss-calc": { + "version": "7.0.5", + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-env-function": { + "version": "2.0.2", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-focus-visible": { + "version": "4.0.0", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-font-variant": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-import": { + "version": "12.0.1", + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-import-resolver": { + "version": "2.0.0", + "requires": { + "enhanced-resolve": "^4.1.1" + } + }, + "postcss-initial": { + "version": "3.0.4", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0" + } + } + }, + "postcss-loader": { + "version": "3.0.0", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "json5": { + "version": "1.0.2", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-logical": { + "version": "3.0.0", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-nesting": { + "version": "7.0.1", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0" + }, + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-page-break": { + "version": "2.0.0", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-place": { + "version": "4.0.1", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-preset-env": { + "version": "6.7.1", + "requires": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-not": { + "version": "4.0.1", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.11", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.3", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-url": { + "version": "8.0.0", + "requires": { + "mime": "^2.3.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.0", + "postcss": "^7.0.2", + "xxhashjs": "^0.2.1" + } + }, + "postcss-value-parser": { + "version": "4.2.0" + }, + "postcss-values-parser": { + "version": "2.0.1", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "prelude-ls": { + "version": "1.2.1", + "dev": true + }, + "prepend-http": { + "version": "1.0.4" + }, + "prettier": { + "version": "2.8.3", + "devOptional": true + }, + "prettier-eslint": { + "version": "12.0.0", + "dev": true, + "requires": { + "@typescript-eslint/parser": "^3.0.0", + "common-tags": "^1.4.0", + "dlv": "^1.1.0", + "eslint": "^7.9.0", + "indent-string": "^4.0.0", + "lodash.merge": "^4.6.0", + "loglevel-colored-level-prefix": "^1.0.0", + "prettier": "^2.0.0", + "pretty-format": "^23.0.1", + "require-relative": "^0.8.7", + "typescript": "^3.9.3", + "vue-eslint-parser": "~7.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + }, + "espree": { + "version": "6.2.1", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "vue-eslint-parser": { + "version": "7.1.1", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-scope": "^5.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.0.1", + "lodash": "^4.17.15" + } + } + } + }, + "pretty-bytes": { + "version": "5.6.0" + }, + "pretty-error": { + "version": "2.1.2", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "pretty-format": { + "version": "23.6.0", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + } + } + }, + "pretty-time": { + "version": "1.1.0" + }, + "process": { + "version": "0.11.10" + }, + "process-nextick-args": { + "version": "2.0.1" + }, + "progress": { + "version": "2.0.3", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1" + }, + "proper-lockfile": { + "version": "4.1.2", + "requires": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "protocols": { + "version": "2.0.1" + }, + "proxy-from-env": { + "version": "1.0.0", + "dev": true + }, + "prr": { + "version": "1.0.1" + }, + "pseudomap": { + "version": "1.0.2" + }, + "psl": { + "version": "1.9.0", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0" + } + } + }, + "pump": { + "version": "3.0.0", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.3.0" + }, + "q": { + "version": "1.5.1" + }, + "qs": { + "version": "6.10.4", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "4.3.4", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0" + }, + "querystring-es3": { + "version": "0.2.1" + }, + "queue": { + "version": "6.0.2", + "dev": true, + "requires": { + "inherits": "~2.0.3" + } + }, + "queue-microtask": { + "version": "1.2.3" + }, + "ramda": { + "version": "0.27.2", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1" + }, + "rc9": { + "version": "1.2.4", + "requires": { + "defu": "^6.0.0", + "destr": "^1.1.1", + "flat": "^5.0.0" + }, + "dependencies": { + "defu": { + "version": "6.1.2" + } + } + }, + "read-cache": { + "version": "1.0.0", + "requires": { + "pify": "^2.3.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2" + } + } + }, + "readdirp": { + "version": "3.6.0", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.2" + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11" + }, + "regenerator-transform": { + "version": "0.15.1", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "dev": true + }, + "regexpu-core": { + "version": "5.2.2", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.7.1" + }, + "regjsparser": { + "version": "0.9.1", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0" + } + } + }, + "relateurl": { + "version": "0.2.7" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "optional": true + }, + "renderkid": { + "version": "2.0.7", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1" + }, + "strip-ansi": { + "version": "3.0.1", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.4" + }, + "repeat-string": { + "version": "1.6.1" + }, + "request-progress": { + "version": "3.0.0", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "dev": true + }, + "require-from-string": { + "version": "2.0.2" + }, + "require-main-filename": { + "version": "2.0.0", + "dev": true + }, + "require-relative": { + "version": "0.8.7", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "dev": true + }, + "resolve-url": { + "version": "0.2.1" + }, + "restore-cursor": { + "version": "3.1.0", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15" + }, + "retry": { + "version": "0.12.0" + }, + "reusify": { + "version": "1.0.4" + }, + "rfdc": { + "version": "1.3.0", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1" + }, + "rgba-regex": { + "version": "1.0.0" + }, + "rimraf": { + "version": "3.0.2", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.4.1" + }, + "run-parallel": { + "version": "1.2.0", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-queue": { + "version": "1.0.3", + "requires": { + "aproba": "^1.1.1" + } + }, + "rust-result": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rust-result/-/rust-result-1.0.0.tgz", + "integrity": "sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==", + "dev": true, + "requires": { + "individual": "^2.0.0" + } + }, + "rxjs": { + "version": "7.8.0", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1" + }, + "safe-json-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz", + "integrity": "sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==", + "dev": true, + "requires": { + "rust-result": "^1.0.0" + } + }, + "safe-regex": { + "version": "1.1.0", + "requires": { + "ret": "~0.1.10" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2" + }, + "sass": { + "version": "1.57.1", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "10.4.1", + "dev": true, + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "schema-utils": { + "version": "3.1.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "sass-resources-loader": { + "version": "2.2.5", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.1.0", + "glob": "^7.1.6", + "loader-utils": "^2.0.0" + } + }, + "sax": { + "version": "1.2.4" + }, + "schema-utils": { + "version": "2.7.1", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1" + } + } + }, + "scule": { + "version": "0.2.1" + }, + "section-matter": { + "version": "1.0.0", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + } + }, + "semver": { + "version": "7.3.8", + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0" + } + } + }, + "send": { + "version": "0.18.0", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0" + } + } + }, + "mime": { + "version": "1.6.0" + }, + "ms": { + "version": "2.1.3" + }, + "on-finished": { + "version": "2.4.1", + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "2.0.1" + } + } + }, + "serialize-javascript": { + "version": "5.0.1", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-placeholder": { + "version": "1.2.4", + "requires": { + "defu": "^5.0.0" + } + }, + "serve-static": { + "version": "1.15.0", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "server-destroy": { + "version": "1.0.1" + }, + "set-blocking": { + "version": "2.0.0", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "setimmediate": { + "version": "1.0.5" + }, + "setprototypeof": { + "version": "1.2.0" + }, + "sha.js": { + "version": "2.4.11", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0" + }, + "shell-quote": { + "version": "1.7.4" + }, + "side-channel": { + "version": "1.0.4", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7" + }, + "simple-swizzle": { + "version": "0.2.2", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2" + } + } + }, + "sirv": { + "version": "1.0.19", + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, + "sitemap": { + "version": "4.1.1", + "requires": { + "@types/node": "^12.0.2", + "@types/sax": "^1.2.0", + "arg": "^4.1.1", + "sax": "^1.2.4", + "xmlbuilder": "^13.0.0" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55" + }, + "arg": { + "version": "4.1.3" + } + } + }, + "slash": { + "version": "3.0.0" + }, + "slice-ansi": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0" + }, + "source-map": { + "version": "0.5.7" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "requires": { + "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0" + } + } + }, + "source-list-map": { + "version": "2.0.1" + }, + "source-map": { + "version": "0.6.1" + }, + "source-map-js": { + "version": "1.0.2" + }, + "source-map-resolve": { + "version": "0.5.3", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1" + }, + "split-string": { + "version": "3.1.0", + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3" + }, + "sshpk": { + "version": "1.17.0", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8" + }, + "stack-trace": { + "version": "0.0.10" + }, + "stackframe": { + "version": "1.3.4" + }, + "static-extend": { + "version": "0.1.2", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + } + }, + "statuses": { + "version": "1.5.0" + }, + "std-env": { + "version": "2.3.1", + "requires": { + "ci-info": "^3.1.1" + } + }, + "stream-browserify": { + "version": "2.0.2", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1" + }, + "strict-uri-encode": { + "version": "1.1.0" + }, + "string_decoder": { + "version": "1.1.1", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2" + } + } + }, + "string-width": { + "version": "4.2.3", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1" + } + } + }, + "strip-bom-string": { + "version": "1.0.0", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0" + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "style-resources-loader": { + "version": "1.5.0", + "requires": { + "glob": "^7.2.0", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0", + "tslib": "^2.3.1" + } + }, + "stylehacks": { + "version": "4.0.3", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0" + }, + "svg-tags": { + "version": "1.0.0" + }, + "svg-to-vue": { + "version": "0.7.0", + "dev": true, + "requires": { + "svgo": "^1.3.2" + } + }, + "svgo": { + "version": "1.3.2", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3" + }, + "css-select": { + "version": "2.1.0", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.4.2" + }, + "dom-serializer": { + "version": "0.2.2", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "domutils": { + "version": "1.7.0", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1" + } + } + }, + "escape-string-regexp": { + "version": "1.0.5" + }, + "has-flag": { + "version": "3.0.0" + }, + "nth-check": { + "version": "1.0.2", + "requires": { + "boolbase": "~1.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "table": { + "version": "6.8.1", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "tapable": { + "version": "1.1.3" + }, + "tar": { + "version": "6.1.13", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.0.0", + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4" + }, + "yallist": { + "version": "4.0.0" + } + } + }, + "terser": { + "version": "4.8.1", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3" + } + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "acorn": { + "version": "8.8.2" + }, + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "commander": { + "version": "2.20.3" + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "p-limit": { + "version": "3.1.0", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "terser": { + "version": "5.16.1", + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + } + } + }, + "text-table": { + "version": "0.2.0" + }, + "thread-loader": { + "version": "3.0.4", + "requires": { + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "schema-utils": { + "version": "3.1.1", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "throttleit": { + "version": "1.0.0", + "dev": true + }, + "through": { + "version": "2.3.8" + }, + "through2": { + "version": "2.0.5", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "time-fix-plugin": { + "version": "2.0.7", + "requires": {} + }, + "timers-browserify": { + "version": "2.0.12", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0" + }, + "tmp": { + "version": "0.2.1", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-arraybuffer": { + "version": "1.0.1" + }, + "to-fast-properties": { + "version": "2.0.0" + }, + "to-object-path": { + "version": "0.3.0", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1" + }, + "totalist": { + "version": "1.1.0" + }, + "tough-cookie": { + "version": "2.5.0", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3" + }, + "ts-pnp": { + "version": "1.2.0" + }, + "tslib": { + "version": "2.4.1" + }, + "tsutils": { + "version": "3.21.0", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } + }, + "tty-browserify": { + "version": "0.0.0" + }, + "tunnel-agent": { + "version": "0.6.0", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2" + }, + "typed-array-length": { + "version": "1.0.4", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typedarray": { + "version": "0.0.6" + }, + "typescript": { + "version": "3.9.10", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.33" + }, + "ucla-library-design-tokens": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/ucla-library-design-tokens/-/ucla-library-design-tokens-5.5.1.tgz", + "integrity": "sha512-PuPLeUCi3L3bfjz5yI8lKXsnmYpOJq9tNsIs+jVDPRhTT4gi3I+HTAO7CGpqYuvavdV+s4fTvctO9KkSEm7Dtg==", + "dev": true + }, + "ucla-library-website-components": { + "version": "2.41.6", + "resolved": "https://registry.npmjs.org/ucla-library-website-components/-/ucla-library-website-components-2.41.6.tgz", + "integrity": "sha512-8Yo2uuujt5Lgfpx3IamPiKNzrKkZb8hVTZFKtoolemHxT9KGnPZYD6RDzEtgmTTZdAF3V4tViQfSNZwbChaYPA==", + "dev": true, + "requires": { + "date-fns": "^2.28.0", + "lodash": "^4.17.21", + "video.js": "^7.20.3", + "vue-click-outside": "^1.1.0", + "vue-glide-js": "^1.3.14" + } + }, + "ufo": { + "version": "0.7.11" + }, + "uglify-js": { + "version": "3.17.4" + }, + "unbox-primitive": { + "version": "1.0.2", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unfetch": { + "version": "4.2.0" + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0" + }, + "union-value": { + "version": "1.0.1", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1" + }, + "uniqs": { + "version": "2.0.0" + }, + "unique-filename": { + "version": "1.1.1", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2" + }, + "unpipe": { + "version": "1.0.0" + }, + "unquote": { + "version": "1.1.1" + }, + "unset-value": { + "version": "1.0.0", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4" + } + } + }, + "untildify": { + "version": "4.0.0", + "dev": true + }, + "upath": { + "version": "2.0.1" + }, + "update-browserslist-db": { + "version": "1.0.10", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "upper-case": { + "version": "1.1.3" + }, + "uri-js": { + "version": "4.4.1", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0" + }, + "url": { + "version": "0.11.0", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2" + } + } + }, + "url-loader": { + "version": "4.1.1", + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "schema-utils": { + "version": "3.1.1", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "url-toolkit": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz", + "integrity": "sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==", + "dev": true + }, + "use": { + "version": "3.1.1" + }, + "util": { + "version": "0.11.1", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3" + } + } + }, + "util-deprecate": { + "version": "1.0.2" + }, + "util.promisify": { + "version": "1.0.0", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0" + }, + "utils-merge": { + "version": "1.0.1" + }, + "uuid": { + "version": "8.3.2", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "dev": true + }, + "vary": { + "version": "1.1.2" + }, + "vendors": { + "version": "1.0.4" + }, + "verror": { + "version": "1.10.0", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "dev": true + } + } + }, + "video.js": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-7.21.2.tgz", + "integrity": "sha512-Zbo23oT4CbtIxeAtfTvzdl7OlN/P34ir7hDzXFtLZB+BtJsaLy0Rgh/06dBMJSGEjQCDo4MUS6uPonuX0Nl3Kg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/http-streaming": "2.16.0", + "@videojs/vhs-utils": "^3.0.4", + "@videojs/xhr": "2.6.0", + "aes-decrypter": "3.1.3", + "global": "^4.4.0", + "keycode": "^2.2.0", + "m3u8-parser": "4.8.0", + "mpd-parser": "0.22.1", + "mux.js": "6.0.1", + "safe-json-parse": "4.0.0", + "videojs-font": "3.2.0", + "videojs-vtt.js": "^0.15.4" + } + }, + "videojs-font": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz", + "integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==", + "dev": true + }, + "videojs-vtt.js": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.4.tgz", + "integrity": "sha512-r6IhM325fcLb1D6pgsMkTQT1PpFdUdYZa1iqk7wJEu+QlibBwATPfPc9Bg8Jiym0GE5yP1AG2rMLu+QMVWkYtA==", + "dev": true, + "requires": { + "global": "^4.3.1" + } + }, + "vm-browserify": { + "version": "1.1.2" + }, + "vue": { + "version": "2.7.14", + "requires": { + "@vue/compiler-sfc": "2.7.14", + "csstype": "^3.1.0" + } + }, + "vue-click-outside": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vue-click-outside/-/vue-click-outside-1.1.0.tgz", + "integrity": "sha512-pNyvAA9mRXJwPHlHJyjMb4IONSc7khS5lxGcMyE2EIKgNMAO279PWM9Hyq0d5J4FkiSRdmFLwnbjDd5UtPizHQ==", + "dev": true + }, + "vue-client-only": { + "version": "2.1.0" + }, + "vue-eslint-parser": { + "version": "7.11.0", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^6.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "dev": true + }, + "espree": { + "version": "6.2.1", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "semver": { + "version": "6.3.0", + "dev": true + } + } + }, + "vue-glide-js": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/vue-glide-js/-/vue-glide-js-1.3.14.tgz", + "integrity": "sha512-dgF+7pcsqNawU5nPE26MD7nMvfKD5zQjOE/e+xd2XccQ6GX83JYGiwAAbM1QlpA1X7Urp5aLqR214gfBunUnjw==", + "dev": true, + "requires": { + "@glidejs/glide": "^3.2.4", + "vue": "^2.5.16" + } + }, + "vue-hot-reload-api": { + "version": "2.3.4" + }, + "vue-loader": { + "version": "15.10.1", + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2" + }, + "json5": { + "version": "1.0.2", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-meta": { + "version": "2.4.0", + "requires": { + "deepmerge": "^4.2.2" + } + }, + "vue-no-ssr": { + "version": "1.1.1" + }, + "vue-router": { + "version": "3.6.5" + }, + "vue-server-renderer": { + "version": "2.7.14", + "requires": { + "chalk": "^4.1.2", + "hash-sum": "^2.0.0", + "he": "^1.2.0", + "lodash.template": "^4.5.0", + "lodash.uniq": "^4.5.0", + "resolve": "^1.22.0", + "serialize-javascript": "^6.0.0", + "source-map": "0.5.6" + }, + "dependencies": { + "serialize-javascript": { + "version": "6.0.1", + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.5.6" + } + } + }, + "vue-style-loader": { + "version": "4.1.3", + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2" + }, + "json5": { + "version": "1.0.2", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-svg-loader": { + "version": "0.16.0", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "svg-to-vue": "^0.7.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-template-compiler": { + "version": "2.7.14", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1" + }, + "vuex": { + "version": "3.6.2", + "requires": {} + }, + "watchpack": { + "version": "1.7.5", + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "optional": true + }, + "braces": { + "version": "2.3.2", + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "optional": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "fill-range": { + "version": "4.0.0", + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-binary-path": { + "version": "1.0.1", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "optional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "readdirp": { + "version": "2.2.1", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "upath": { + "version": "1.2.0", + "optional": true + } + } + }, + "webidl-conversions": { + "version": "3.0.1" + }, + "webpack": { + "version": "4.46.0", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2" + }, + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "braces": { + "version": "2.3.2", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "cacache": { + "version": "12.0.4", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4" + }, + "define-property": { + "version": "2.0.2", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "eslint-scope": { + "version": "4.0.3", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "json5": { + "version": "1.0.2", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-runner": { + "version": "2.4.0" + }, + "loader-utils": { + "version": "1.4.2", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "p-locate": { + "version": "3.0.0", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0" + }, + "pify": { + "version": "4.0.1" + }, + "pkg-dir": { + "version": "3.0.0", + "requires": { + "find-up": "^3.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "5.7.1" + }, + "serialize-javascript": { + "version": "4.0.0", + "requires": { + "randombytes": "^2.1.0" + } + }, + "ssri": { + "version": "6.0.2", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yallist": { + "version": "3.1.1" + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.7.0", + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "acorn": { + "version": "8.8.2" + }, + "commander": { + "version": "7.2.0" + }, + "ws": { + "version": "7.5.9", + "requires": {} + } + } + }, + "webpack-dev-middleware": { + "version": "4.3.0", + "requires": { + "colorette": "^1.2.2", + "mem": "^8.1.1", + "memfs": "^3.2.2", + "mime-types": "^2.1.30", + "range-parser": "^1.2.1", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "colorette": { + "version": "1.4.0" + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "schema-utils": { + "version": "3.1.1", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-hot-middleware": { + "version": "2.25.3", + "requires": { + "ansi-html-community": "0.0.8", + "html-entities": "^2.1.0", + "strip-ansi": "^6.0.0" + } + }, + "webpack-node-externals": { + "version": "3.0.0" + }, + "webpack-sources": { + "version": "1.4.3", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "webpackbar": { + "version": "4.0.0", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "consola": "^2.10.0", + "figures": "^3.0.0", + "pretty-time": "^1.1.0", + "std-env": "^2.2.1", + "text-table": "^0.2.0", + "wrap-ansi": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3" + }, + "escape-string-regexp": { + "version": "1.0.5" + }, + "has-flag": { + "version": "3.0.0" + }, + "supports-color": { + "version": "5.5.0", + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "whatwg-url": { + "version": "5.0.0", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "dev": true + }, + "which-typed-array": { + "version": "1.1.9", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "widest-line": { + "version": "3.1.0", + "requires": { + "string-width": "^4.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2" + }, + "write-file-atomic": { + "version": "2.4.3", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "write-json-file": { + "version": "2.3.0", + "requires": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0" + }, + "make-dir": { + "version": "1.3.0", + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0" + }, + "sort-keys": { + "version": "2.0.0", + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "ws": { + "version": "8.12.0", + "dev": true, + "requires": {} + }, + "xmlbuilder": { + "version": "13.0.2" + }, + "xtend": { + "version": "4.0.2" + }, + "xxhashjs": { + "version": "0.2.2", + "requires": { + "cuint": "^0.2.2" + } + }, + "y18n": { + "version": "4.0.3" + }, + "yallist": { + "version": "2.1.2" + }, + "yaml": { + "version": "2.2.1", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yauzl": { + "version": "2.10.0", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0" + } + } +} diff --git a/package.json b/package.json index 4fe1d39be..2e054167b 100644 --- a/package.json +++ b/package.json @@ -1,46 +1,50 @@ { - "name": "library-website-nuxt", - "type": "module", - "scripts": { - "build": "nuxt build", - "dev": "nuxt dev --log-level verbose", - "generate": "nuxi generate", - "prerender": "nuxt build --prerender --log-level verbose", - "start": "pnpm dlx serve .output/public", - "preview": "nuxt preview", - "postinstall": "nuxt prepare", - "cypress": "cypress open", - "cypress-run": "cypress run", - "lint": "eslint . --ext .vue,.js,.ts --ignore-path .gitignore", - "lint:fix": "eslint --fix . --ext .vue,.js,.ts --ignore-path .gitignore", - "typecheck": "nuxi typecheck", - "test": "pnpm lint && pnpm typecheck", - "library": "" - }, - "dependencies": { - "@pinia/nuxt": "^0.5.1", - "@vue-a11y/skip-to": "^3.0.3", - "@nuxtjs/sitemap": "^5.1.1", - "nuxt": "^3.12.2", - "vue": "^3.4.29", - "vue-router": "^4.3.3" - }, - "devDependencies": { - "@nuxt/eslint-config": "^0.2.0", - "@nuxtjs/eslint-config-typescript": "^12.1.0", - "@nuxtjs/seo": "2.0.0-rc.15", - "@percy/cli": "^1.27.0", - "@percy/cypress": "^3.1.2", - "@types/node": "^18.17.3", - "@zadigetvoltaire/nuxt-gtm": "^0.0.13", - "cypress": "^12.17.4", - "date-fns": "^3.6.0", - "eslint": "^8.56.0", - "eslint-plugin-cypress": "^2.15.1", - "lodash": "^4.17.21", - "nuxt-graphql-request": "^7.0.5", - "sass": "^1.66.1", - "ucla-library-design-tokens": "^5.19.0", - "ucla-library-website-components": "^3.2.0" - } -} \ No newline at end of file + "name": "library-website-nuxt", + "engines": { + "npm": "8.5.5", + "node": "16.15.0" + }, + "scripts": { + "dev": "nuxt", + "build": "nuxt build", + "generate": "nuxt generate", + "start": "nuxt start", + "cypress": "cypress open", + "cypress-run": "cypress run", + "lint": "eslint ./", + "lint-fix": "eslint --fix ./" + }, + "dependencies": { + "@nuxtjs/gtm": "^2.4.0", + "@nuxtjs/sitemap": "^2.4.0", + "@vue-a11y/skip-to": "^2.1.2", + "consola": "^2.15.3", + "nuxt": "^2.15.8", + "nuxt-robots-module": "^1.5.1" + }, + "devDependencies": { + "@nuxtjs/axios": "^5.13.6", + "@nuxtjs/router-extras": "^1.1.1", + "@nuxtjs/style-resources": "^1.0.0", + "@percy/cli": "^1.0.0-beta.67", + "@percy/cypress": "^3.1.2", + "core-js": "^3.11.0", + "cypress": "^12.5.1", + "date-fns": "^2.22.1", + "eslint": "^7.25.0", + "eslint-plugin-cypress": "^2.12.1", + "eslint-plugin-vue": "^7.9.0", + "graphql": "^15.5.1", + "graphql-tag": "^2.12.5", + "lodash": "^4.17.21", + "nuxt-graphql-request": "^4.0.0", + "prettier": "^2.2.1", + "prettier-eslint": "^12.0.0", + "sass": "^1.45.2", + "sass-loader": "^10.1.1", + "ucla-library-design-tokens": "^5.5.1", + "ucla-library-website-components": "^2.41.6", + "vue-svg-loader": "^0.16.0", + "vue-template-compiler": "^2.6.12" + } +} diff --git a/pages/[...slug].vue b/pages/[...slug].vue deleted file mode 100644 index b53010a13..000000000 --- a/pages/[...slug].vue +++ /dev/null @@ -1,144 +0,0 @@ - - - - - diff --git a/pages/_.vue b/pages/_.vue new file mode 100644 index 000000000..4dfba4ed9 --- /dev/null +++ b/pages/_.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/pages/about/jobs/staff-academic-jobs/index.vue b/pages/about/jobs/staff-academic-jobs/index.vue index b67e6cb79..496d88d16 100644 --- a/pages/about/jobs/staff-academic-jobs/index.vue +++ b/pages/about/jobs/staff-academic-jobs/index.vue @@ -1,198 +1,175 @@ - - - diff --git a/pages/about/news/[slug].vue b/pages/about/news/[slug].vue deleted file mode 100644 index 4d157cf37..000000000 --- a/pages/about/news/[slug].vue +++ /dev/null @@ -1,190 +0,0 @@ - - - - - diff --git a/pages/about/news/_slug.vue b/pages/about/news/_slug.vue new file mode 100644 index 000000000..e543b0d6e --- /dev/null +++ b/pages/about/news/_slug.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/pages/about/news/index.vue b/pages/about/news/index.vue index 6fc476303..9e69c43a0 100644 --- a/pages/about/news/index.vue +++ b/pages/about/news/index.vue @@ -1,458 +1,434 @@ - - - diff --git a/pages/about/policies/[slug].vue b/pages/about/policies/[slug].vue deleted file mode 100644 index ccb21fb33..000000000 --- a/pages/about/policies/[slug].vue +++ /dev/null @@ -1,135 +0,0 @@ - - - - - diff --git a/pages/about/policies/_slug.vue b/pages/about/policies/_slug.vue new file mode 100644 index 000000000..07db4b47f --- /dev/null +++ b/pages/about/policies/_slug.vue @@ -0,0 +1,143 @@ + + + + diff --git a/pages/about/policies/index.vue b/pages/about/policies/index.vue index 04ab881a0..c189a79e3 100644 --- a/pages/about/policies/index.vue +++ b/pages/about/policies/index.vue @@ -1,135 +1,114 @@ - - - diff --git a/pages/about/programs/[slug].vue b/pages/about/programs/[slug].vue deleted file mode 100644 index aae2f6582..000000000 --- a/pages/about/programs/[slug].vue +++ /dev/null @@ -1,240 +0,0 @@ - - - - - diff --git a/pages/about/programs/_slug.vue b/pages/about/programs/_slug.vue new file mode 100644 index 000000000..f5e9260e7 --- /dev/null +++ b/pages/about/programs/_slug.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/pages/about/programs/index.vue b/pages/about/programs/index.vue index 799b8af3e..b6feff36f 100644 --- a/pages/about/programs/index.vue +++ b/pages/about/programs/index.vue @@ -1,374 +1,384 @@ - - - - + - - - - - + diff --git a/pages/about/reports/index.vue b/pages/about/reports/index.vue index dcb82c370..357d8bdf5 100644 --- a/pages/about/reports/index.vue +++ b/pages/about/reports/index.vue @@ -1,126 +1,119 @@ - + + + + + -