diff --git a/.circleci/config.yml b/.circleci/config.yml index 093daad8..6b7a4987 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,11 +27,15 @@ workflows: - build: <<: *filter_all - test_nginx: - <<: *filter_all + <<: *filter_all - test: <<: *filter_all requires: - build + - test_cypress: + <<: *filter_all + requires: + - build - deploy: name: Deploy (demo) context: "AWS Deploy" @@ -40,6 +44,7 @@ workflows: requires: - test - test_nginx + - test_cypress - deploy: name: Deploy (prod) context: "AWS Deploy" @@ -48,33 +53,56 @@ workflows: requires: - test - test_nginx + - test_cypress -jobs: - # Note (allie): This is its own job because I don't +jobs: + # Note (allie): This is its own job because I don't # want to run the tests in an environment that has the - # built project. + # built project. build: executor: default steps: - checkout - setup_npmrc - - run: - name: Assert that it builds + - run: + name: install dependencies command: | npm ci + - save_cache: + key: v3-deps-{{ checksum "package-lock.json" }} + paths: + - node_modules + - /root/.cache/Cypress + - run: + name: Assert that it builds + command: | npm run build test: executor: default steps: - checkout - - setup_npmrc + - restore_cache: + key: v3-deps-{{ checksum "package-lock.json" }} + # run test suite - run: name: Run unit tests command: | - npm ci npx nuxi prepare - npm run test + npm run test + + test_cypress: + executor: default + steps: + - checkout + - restore_cache: + key: v3-deps-{{ checksum "package-lock.json" }} + # run test suite + - run: + name: Run unit tests + command: | + npx nuxi prepare + npm run test-cypress-ci test_nginx: docker: @@ -96,12 +124,12 @@ jobs: command: | apt-get update && \ apt-get install -y nginx-extras - mkdir -p /app/nginx + mkdir -p /app/nginx cp ./nginx/*.conf /etc/nginx/ nginx -t deploy: - docker: + docker: - image: circleci/python:3.8 parameters: env: @@ -115,7 +143,7 @@ jobs: - checkout - setup_npmrc - setup_remote_docker: - version: 20.10.12 + version: 20.10.12 - run: name: Deploy environment: @@ -128,7 +156,7 @@ jobs: python3 -m venv ~/.venv source ~/.venv/bin/activate pip3 install -U git+https://github.com/nypublicradio/nyprsetuptools.git - + nyprsetuptools DockerDeploy \ --fargate \ --cpu=2048 \ @@ -140,7 +168,7 @@ jobs: --task-role=$ROLE \ --environment=$ENV \ --tag=$TAG \ - --wait=300 + --wait=300 commands: setup_npmrc: @@ -150,10 +178,10 @@ commands: command: | echo "@nypublicradio:registry=https://npm.pkg.github.com" > .npmrc echo "//npm.pkg.github.com/:_authToken=$PAT" >> .npmrc - + executors: default: docker: - - image: cimg/node:16.14.2 - environment: + - image: cypress/browsers:node-16.18.1-chrome-110.0.5481.96-1-ff-109.0-edge-110.0.1587.41-1 + environment: JOBS: 2 diff --git a/.gitignore b/.gitignore index 048d96e5..40380deb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,6 @@ nuxt.d.ts .env coverage .vscode -.npmrc \ No newline at end of file +.npmrc +cypress/videos/ +cypress/screenshots/ \ No newline at end of file diff --git a/components/SectionPageTemplate.vue b/components/SectionPageTemplate.vue index bb7b8753..af98dd65 100644 --- a/components/SectionPageTemplate.vue +++ b/components/SectionPageTemplate.vue @@ -67,7 +67,7 @@ const newsletterSubmitEvent = () => { -
+

Latest {{ page.title }} Articles

diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 00000000..08449baa --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "cypress"; + +export default defineConfig({ + e2e: { + baseUrl: 'http://localhost:3000' + }, +}); diff --git a/cypress/e2e/article.cy.ts b/cypress/e2e/article.cy.ts new file mode 100644 index 00000000..bace1133 --- /dev/null +++ b/cypress/e2e/article.cy.ts @@ -0,0 +1,54 @@ +describe('An article page', () => { + beforeEach(() => { + cy.loadGlobalFixtures() + cy.intercept({ + pathname: '/api/v2/pages/find', + query: { + html_path: 'news/extra-extra-meet-connecticuts-answer-to-pizza-rat' + } + }, {fixture: 'aviary/article.json'}).as('article') + cy.intercept({ + pathname: '/api/v2/pages/find', + query: { + html_path: 'news' + } + }, {fixture: 'aviary/news-page.json'}).as('newsPage') + cy.intercept({ + pathname: '/api/v2/pages', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + sponsored_content: 'false', + descendant_of: '4', + limit: '6' + } + }, {fixture: 'aviary/more-news.json'}).as('moreNews') + }) + it('successfully loads', () => { + cy.visit('/news/extra-extra-meet-connecticuts-answer-to-pizza-rat') + cy.wait('@article') + + cy.get('h1').should('exist') + cy.get('.byline').should('exist') + cy.get('.article-body').should('exist') + cy.get('.tags').should('exist') + cy.get('.author-profile').should('exist') + cy.get('.recirculation').should('exist') + cy.get('.recirculation .gothamist-card:not(.hidden)').should('have.length', 5) + }) + it('shows the marketing CTAs', () => { + cy.intercept( + '/api/v2/system_messages/*', + {fixture: 'aviary/system_messages_bottom.json'} + ).as('systemMessagesWithBottomCTA') + + cy.visit('/news/extra-extra-meet-connecticuts-answer-to-pizza-rat') + cy.get('.marketing-modal').should('exist') + cy.get('.p-dialog-header-close').click() + cy.get('.marketing-modal').should('not.exist') + cy.get('.article-donation-marketing-CTA').should('exist') + cy.get('.article-donation-marketing-bottom-CTA').should('exist') + }) +}) \ No newline at end of file diff --git a/cypress/e2e/index.cy.ts b/cypress/e2e/index.cy.ts new file mode 100644 index 00000000..92024bfb --- /dev/null +++ b/cypress/e2e/index.cy.ts @@ -0,0 +1,61 @@ +describe('The home page', () => { + beforeEach(() => { + cy.loadGlobalFixtures() + cy.intercept({ + pathname :'/api/v2/pages/', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + limit: '6' + } + }, {fixture: 'aviary/latest.json'}).as('latest') + cy.intercept({ + pathname :'/api/v2/pages/', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + limit: '6', + offset: '6' + } + }, {fixture: 'aviary/index-more.json'}).as('indexMore') + cy.intercept({ + pathname: '/api/v2/pages/find', + query: { html_path: '/' }, + }, {fixture: 'aviary/index.json'}).as('index') + }) + it('successfully loads', () => { + cy.visit('/') + cy.wait(['@index','@latest']) + cy.get('.homepage-topper').should('exist') + cy.get('.homepage-topper .gothamist-card').should('have.length', 5) + cy.get('.newsletter-home').should('exist') + cy.get('.center-feature').should('exist') + cy.get('.center-feature .gothamist-card:not(.hidden)').should('have.length', 6) + cy.get('.boroughs').should('exist') + cy.get('#articleList').should('exist') + cy.get('#articleList .gothamist-card').should('have.length', 6) + }) + it('loads more', () => { + cy.visit('/') + cy.wait('@latest') + cy.contains('Load More').click() + cy.wait('@indexMore') + cy.get('#articleList .gothamist-card').should('have.length', 12) + cy.get('#articleList .card-title-link').eq(6).should('have.focus') + }) + it('shows the marketing modal', () => { + cy.intercept( + '/api/v2/system_messages/*', + {fixture: 'aviary/system_messages_bottom.json'} + ).as('systemMessagesWithBottomCTA') + + cy.visit('/') + cy.get('.marketing-modal').should('exist') + cy.get('.p-dialog-header-close').click() + cy.get('.marketing-modal').should('not.exist') + }) +}) diff --git a/cypress/e2e/sectionpage.cy.ts b/cypress/e2e/sectionpage.cy.ts new file mode 100644 index 00000000..4214e1b9 --- /dev/null +++ b/cypress/e2e/sectionpage.cy.ts @@ -0,0 +1,64 @@ +describe('A section page', () => { + beforeEach(() => { + cy.loadGlobalFixtures() + cy.intercept({ + pathname: '/api/v2/pages/find', + query: { + html_path: 'news' + } + }, {fixture: 'aviary/section-page.json'}).as('sectionPage') + cy.intercept({ + pathname: '/api/v2/pages', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + sponsored_content: 'false', + descendant_of: '4', + limit: '6' + } + }, {fixture: 'aviary/section-recirculation.json'}).as('sectionRecirculation') + cy.intercept({ + pathname: '/api/v2/pages', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + sponsored_content: 'false', + descendant_of: '4', + offset: '5' + } + }, {fixture: 'aviary/section-articles.json'}).as('sectionArticles') + cy.intercept({ + pathname: '/api/v2/pages', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + sponsored_content: 'false', + descendant_of: '4', + limit: '10', + offset: '25' + } + }, {fixture: 'aviary/section-more.json'}).as('sectionMore') + }) + it('successfully loads', () => { + cy.visit('/news') + cy.wait('@sectionArticles') + cy.get('#article-recirculation').should('exist') + cy.get('#article-recirculation .gothamist-card:not(.hidden)').should('have.length', 5) + cy.get('#articleList').should('exist') + cy.get('#articleList .gothamist-card').should('have.length', 20) + }) + it('loads more', () => { + cy.visit('/news') + cy.wait('@sectionArticles') + cy.contains('Load More').click() + cy.wait('@sectionMore') + cy.get('#articleList .gothamist-card').should('have.length', 30) + cy.get('#articleList .card-title-link').eq(20).should('have.focus') + }) +}) \ No newline at end of file diff --git a/cypress/e2e/staffpage.cy.ts b/cypress/e2e/staffpage.cy.ts new file mode 100644 index 00000000..ed9e504c --- /dev/null +++ b/cypress/e2e/staffpage.cy.ts @@ -0,0 +1,41 @@ +describe('A staff page', () => { + beforeEach(() => { + cy.loadGlobalFixtures() + cy.intercept({ + pathname: '/api/v2/pages', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + author_slug: 'jen-chung', + limit: '12', + offset: '0' + } + }, {fixture: 'aviary/staff-articles.json'}).as('staffArticles') + + cy.intercept({ + pathname: '/api/v2/pages', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + author_slug: 'jen-chung', + limit: '12', + offset: '12' + } + }, {fixture: 'aviary/staff-more.json'}).as('staffMore') + }) + it('successfully loads', () => { + cy.visit('/staff/jen-chung') + cy.get('#articleList .gothamist-card').should('have.length', 12) + }) + it('loads more', () => { + cy.visit('/staff/jen-chung') + cy.contains('Load More').click() + cy.wait('@staffMore') + cy.get('#articleList .gothamist-card').should('have.length', 24) + cy.get('#articleList .card-title-link').eq(12).should('have.focus') + }) +}) \ No newline at end of file diff --git a/cypress/e2e/tagpage.cy.ts b/cypress/e2e/tagpage.cy.ts new file mode 100644 index 00000000..a20627f5 --- /dev/null +++ b/cypress/e2e/tagpage.cy.ts @@ -0,0 +1,49 @@ +describe('A tag page', () => { + beforeEach(() => { + cy.loadGlobalFixtures() + cy.intercept({ + pathname: '/api/v2/pages/find', + query: { html_path: 'tags/dogs' }, + }, {fixture: 'aviary/tag-page.json'}).as('tagPage') + cy.intercept({ + pathname: '/api/v2/pages', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + limit: '10', + tag_slug: 'dogs' + } + }, {fixture: 'aviary/tag-articles.json'}).as('tagArticles') + cy.intercept({ + pathname: '/api/v2/pages', + query: { + type: 'news.ArticlePage', + fields: 'ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors', + order: '-publication_date', + show_on_index_listing: 'true', + limit: '10', + offset: '10', + tag_slug: 'dogs' + } + }, {fixture: 'aviary/tag-more.json'}).as('tagMore') + }) + it('successfully loads', () => { + cy.visit('/tags/dogs') + cy.wait(['@tagPage', '@tagArticles']) + cy.get('h1').contains('Doggos').should('exist') + cy.get('.tag-page-header-image').should('exist') + cy.get('.tag-page-top-zone').contains('Doggo ipsum').should('exist') + cy.get('.tag-page-mid-zone').contains('Dog goes woof').should('exist') + cy.get('#articleList .gothamist-card').should('have.length', 10) + }) + it('loads more', () => { + cy.visit('/tags/dogs') + cy.wait('@tagArticles') + cy.contains('Load More').click() + cy.wait('@tagMore') + cy.get('#articleList .gothamist-card').should('have.length', 20) + cy.get('#articleList .card-title-link').eq(10).should('have.focus') + }) +}) \ No newline at end of file diff --git a/cypress/fixtures/aviary/article.json b/cypress/fixtures/aviary/article.json new file mode 100644 index 00000000..7e63861f --- /dev/null +++ b/cypress/fixtures/aviary/article.json @@ -0,0 +1,144 @@ +{ + "id": 154796, + "meta": { + "first_published_at": "2023-03-10T13:11:24.478149-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154796/", + "html_url": "http://cms.prod.nypr.digital/news/extra-extra-meet-connecticuts-answer-to-pizza-rat/", + "slug": "extra-extra-meet-connecticuts-answer-to-pizza-rat", + "show_in_menus": true, + "seo_title": "", + "search_description": "", + "parent": { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News" + } + }, + "title": "Extra Extra: Meet Connecticut's answer to Pizza Rat", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "social_image": null, + "social_title": "", + "social_text": "", + "show_on_index_listing": true, + "uuid": "719d1ae0-9fbe-48c9-a5d1-5b918ed41ffe", + "url": "https://gothamist.com/news/extra-extra-meet-connecticuts-answer-to-pizza-rat", + "canonical_url": "", + "publication_date": "2023-03-10T13:11:24.478149-05:00", + "updated_date": null, + "description": "Because it's Pizza Eagle, here are your end-of-day links: Anti-terrorism bollards are great for protecting bike lanes, Malachy McCourt is still rockin', the Sweaters of Inisherin and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337194, + "title": "eagle.jpg", + "width": 2048, + "height": 1540, + "created_at": "2023-03-10T13:06:22.064815-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 466290, + "file_hash": "3ec2a7b85d696da4a1d4e301c9809282d62b3746", + "alt": "a bald eagle in a tree", + "caption": "", + "credit": "Keith Michael", + "credit_link": "https://flickr.com/photos/keithmichaelnyc/39604706041/in/photolist-23kJtik-KyGG2Y-yiTUqw-Ma7pwg-dHUTrn-DjjPRv-qkpxPE-dL1Wc4-9vJKhp-dNjkqw-dvKvwu-dJg1TM-91vnAA-br9SQo-9TdPsK-aCMwoB-e6W1p3-KFzpxT-C2EPUB-m5pKg2-fbTJWj-e2iZfj-bpFjG9-bD3yeP-du57zX-2ng8Jbn-5oKDjF-2ntzfyA-2kPAi1L-2nkeKLK-RKHVhz-2nTvdN6-feF81i-81Xf6P-5nEoGn-JaYjaL-2og4kn5-QzRSCC-4m5gzG-2mpk17z-2mVT6cM-ecyGP4-gdixpw-5mFB2a-2ki5QVh-iJRv1-9n6gTC-7jF2W3-m29iAp-7G1eNo", + "file": "https://cdn.cms.prod.nypr.digital/original_images/eagle.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "40abd414-9078-401b-9a6d-6b2df45812fb" + } + ], + "body": [ + { + "type": "paragraph", + "value": "

Good Friday afternoon in New York City, where the restaurants are all trying to be luncheonettes. Here's what else is happening:

  • Newly released economic data shows that New York City gained 235,200 jobs last year — which was 40,000 more than initially predicted, and brings the city's employment rate very close to what it was right before the pandemic.
  • A hit-and-run driver killed a 56-year-old cyclist in East Williamsburg last night.
  • Along Church Street by the World Trade Center, the anti-terrorism bollards standing between the roadway and the bike lane have created for a uniquely safe cycling experience.
  • Happy early St. Patrick's Day to Malachy McCourt, the actor, WBAI radio host and famed raconteur who, at 91, recently graduated (?) from hospice care by surviving so long.
  • A bald eagle in Wethersfield, Connecticut is now famous for being caught on camera picking up a slice of pizza off the ground.
  • A home inspector in Wilmington, North Carolina recently found an 8-foot alligator walking around the attic of a house under construction.
  • Cincinnati animal care officials announced recently that a serval (a type of wild cat) that was kept illegally as a pet escaped from its owner's car during a traffic stop earlier this year, subsequently tested positive for cocaine, and is now recuperating safely at the Cincinnati Zoo.
  • Van Leeuwen is putting its reputation on the line by making a limited edition Hidden Valley Ranch-flavored ice cream that it plans to sell at select Walmart locations.
  • Also, happy early St. Patrick's Day to the Sweaters of Inisherin.
  • Follow Gothamist on Twitter, Instagram, YouTube and like us on Facebook. You can also get the top stories in our daily newsletter — sign up here.
  • And finally, they will inherit the Earth:
", + "id": "db637da2-9f09-445f-8531-56789544276a" + }, + { + "type": "embed", + "value": { + "title": "", + "embed": "
\n

cmon mr gator u can do it pic.twitter.com/6NEXNaDTuX

— Gators Daily 🐊 (@GatorsDaily) March 2, 2023
\n\n\n
\n" + }, + "id": "4fb5129b-6e19-4d30-a257-722c4020205d" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "tags": [ + { + "name": "extra extra", + "slug": "extra-extra" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/index-more.json b/cypress/fixtures/aviary/index-more.json new file mode 100644 index 00000000..24394b9e --- /dev/null +++ b/cypress/fixtures/aviary/index-more.json @@ -0,0 +1,693 @@ +{ + "meta": { + "total_count": 140417 + }, + "items": [ + { + "id": 154794, + "meta": { + "first_published_at": "2023-03-10T10:00:53.456795-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154794/", + "html_url": "http://cms.prod.nypr.digital/news/early-addition-a-coyote-was-walkin-around-queens-this-week/", + "slug": "early-addition-a-coyote-was-walkin-around-queens-this-week" + }, + "title": "Early Addition: A coyote was walkin' around Queens this week", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "ffa1cf45-9fb7-4c54-b7fd-04eba201d287", + "url": "https://gothamist.com/news/early-addition-a-coyote-was-walkin-around-queens-this-week", + "publication_date": "2023-03-10T10:00:53.456795-05:00", + "updated_date": null, + "description": "Because the canine has now been relocated to Long Island, here are your early links: Retired NYPD officer allegedly threatened teens with a gun, new Biggie mural unveiled, don't drink the Borg and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337191, + "title": "Screen Shot 2023-03-10 at 8.30.47 AM.png", + "width": 1460, + "height": 1090, + "created_at": "2023-03-10T08:33:06.024162-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1845115, + "file_hash": "361491cbb74faccabcc0808f1a9155a5d31ef019", + "alt": "a coyote seen walking on a Queens sidewalk", + "caption": "", + "credit": "NYPD105Pct/Twitter", + "credit_link": "https://twitter.com/NYPD105Pct/status/1633462901775417345", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2023-03-10_at_8.30.47_AM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "60fe77e1-4ae3-46c0-8f8d-e819b3935ef0" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "early addition", + "slug": "early-addition" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154795, + "meta": { + "first_published_at": "2023-03-10T08:54:42.966790-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154795/", + "html_url": "http://cms.prod.nypr.digital/news/a-raccoon-is-eating-lasagna-on-my-porch-and-other-odd-nyc-complaints-after-20-years-of-311/", + "slug": "a-raccoon-is-eating-lasagna-on-my-porch-and-other-odd-nyc-complaints-after-20-years-of-311" + }, + "title": "‘A raccoon is eating lasagna on my porch’ and other odd NYC complaints after 20 years of 311", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "2d99d0a5-b481-4379-92c6-4b9da2749b7f", + "url": "https://gothamist.com/news/a-raccoon-is-eating-lasagna-on-my-porch-and-other-odd-nyc-complaints-after-20-years-of-311", + "publication_date": "2023-03-10T08:54:00-05:00", + "updated_date": "2023-03-10T10:41:00-05:00", + "description": "Over the past two decades, 311 has fielded more than 525 million questions and concerns from New Yorkers. Some of the requests were weird.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337192, + "title": "311 calls.PNG", + "width": 1005, + "height": 597, + "created_at": "2023-03-10T08:51:42.070975-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 586274, + "file_hash": "68f2b915bd73efcde132bf3cc652eaf0cdca5ad1", + "alt": "A chart depicting the biggest volume calls to 311 over the past 20 years.", + "caption": "A chart depicting the biggest volume calls to 311 over the past 20 years.", + "credit": "New York City Hall", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/311_calls.PNG", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 123 + }, + "caption": "", + "image_link": "" + }, + "id": "4b7b4bc6-feae-4592-aee8-008fa0636dea" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 40, + "first_name": "Gwynne", + "last_name": "Hogan", + "photo": 334519, + "job_title": "Reporter", + "biography": "Gwynne Hogan is a general assignment reporter who’s worked at WNYC and Gothamist since 2017. Before joining WNYC, she did stints at the New York Post and the late DNAinfo New York and studied at the CUNY Newmark Graduate School of Journalism, graduating with the class of 2014. She won a Gracie award for her coverage of the COVID-19 pandemic and a Society of Professional Journalists award for her reporting on one Rockaway school’s efforts to avoid suspending students. Follow her on Twitter @GwynneFitz or email her at ghogan@wnyc.org.", + "website": "", + "email": "ghogan@wnyc.org", + "slug": "gwynne-hogan", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/GwynneFitz" + } + ] + } + ], + "tags": [ + { + "name": "311 call center", + "slug": "311-call-center" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "raccoon", + "slug": "raccoon" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154788, + "meta": { + "first_published_at": "2023-03-10T06:01:54.458480-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154788/", + "html_url": "http://cms.prod.nypr.digital/news/nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life/", + "slug": "nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life" + }, + "title": "NYC jail captain thought detainee was ‘making a joke’ when he threatened to take his life", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "8428b6f5-bde8-4872-ba2b-131702c9d507", + "url": "https://gothamist.com/news/nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life", + "publication_date": "2023-03-10T06:01:00-05:00", + "updated_date": null, + "description": "Rebecca Hillman took the stand in her own homicide trial on Thursday.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 319227, + "title": "Rebecca Hillman", + "width": 4032, + "height": 3024, + "created_at": "2021-04-26T20:18:53.071857-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 584053, + "file_hash": "f5a6c5321e0e3db6b72e9568ec26addcfd661582", + "alt": "Rebecca Hillman, wearing sunglasses, a hooded jacket, tries to conceal herself as she is led into court", + "caption": "Captain Rebecca Hillman being escorted to her arraignment.", + "credit": "George Joseph / WNYC", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Image_from_iOS_116.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "8234019c-1e38-4f92-81e6-f8e553fd0cb6" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151868, + "first_name": "Samantha", + "last_name": "Max", + "photo": 334517, + "job_title": "Public Safety Reporter", + "biography": "Samantha reports on whether New Yorkers feel safe and whether the institutions that are supposed to protect them are working. Before coming to WNYC/Gothamist, she spent three years covering the criminal justice system in Tennessee for Nashville Public Radio. Her reporting on Nashville's police department received multiple awards, including the Daniel Schorr Journalism Prize. Samantha was also part of the inaugural class of Report for America, a service journalism program that sends up-and-coming reporters to local newsrooms across the country. She is a Northwestern University grad, a Baltimore native and fluent in Spanish.", + "website": "", + "email": "", + "slug": "samantha-max", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "witness", + "slug": "witness" + }, + { + "name": "department of correction", + "slug": "department-of-correction" + }, + { + "name": "HOMICIDE", + "slug": "homicide" + }, + { + "name": "trial", + "slug": "trial" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154789, + "meta": { + "first_published_at": "2023-03-10T05:00:55.362649-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154789/", + "html_url": "http://cms.prod.nypr.digital/news/these-playwrights-turned-their-downtown-brooklyn-apartment-into-a-decked-out-theater/", + "slug": "these-playwrights-turned-their-downtown-brooklyn-apartment-into-a-decked-out-theater" + }, + "title": "These playwrights turned their Downtown Brooklyn apartment into a ‘decked out’ theater", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "96e042b9-677e-4e1b-946e-3160b2c4e81c", + "url": "https://gothamist.com/news/these-playwrights-turned-their-downtown-brooklyn-apartment-into-a-decked-out-theater", + "publication_date": "2023-03-10T05:00:55.362649-05:00", + "updated_date": null, + "description": "A new play is heading for a theater in Manhattan, but it got its start at the Loading Dock, taking its audience from a living room to a Humvee in Iraq.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337184, + "title": "untitled-1.jpg", + "width": 3000, + "height": 2000, + "created_at": "2023-03-09T22:05:29.048205-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4861410, + "file_hash": "768b558295addffb0222d74ad4a95ae2c072067e", + "alt": "A couple sits among theater equipment.", + "caption": "Erin Treadway (left) and Leegrid Stevens in their living room, turned theater space in Brooklyn.", + "credit": "José A. Alvarado Jr. for Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/untitled-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 137 + }, + "caption": "", + "image_link": "" + }, + "id": "35923740-a83d-4729-a194-da07eb5b6698" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151434, + "first_name": "Catalina", + "last_name": "Gonella", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "catalina-gonella", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "art", + "slug": "art" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + }, + { + "name": "theater", + "slug": "theater" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154793, + "meta": { + "first_published_at": "2023-03-09T20:20:18.391497-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154793/", + "html_url": "http://cms.prod.nypr.digital/news/cop-kills-dog-after-being-attacked-during-staten-island-call-nypd/", + "slug": "cop-kills-dog-after-being-attacked-during-staten-island-call-nypd" + }, + "title": "Cop kills dog after being attacked during Staten Island call: NYPD", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "8ee60dfb-b570-4af2-a72b-4d1fc7d5a8fe", + "url": "https://gothamist.com/news/cop-kills-dog-after-being-attacked-during-staten-island-call-nypd", + "publication_date": "2023-03-09T20:20:18.391497-05:00", + "updated_date": null, + "description": "Police say a German Shepherd lunged at the officer, biting him on the hand and leg.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 336956, + "title": "shutterstock_2057747654.jpg", + "width": 3593, + "height": 2695, + "created_at": "2023-02-27T14:44:20.561487-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 6728491, + "file_hash": "d1480546ad761add726ef7d6df377519e27e7058", + "alt": "Close up of the badge on the side of a New York police department patrol car.", + "caption": "Close up of the badge on the side of a New York police department patrol car.", + "credit": "Ceri Breeze / Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_2057747654.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 128 + }, + "caption": "", + "image_link": "" + }, + "id": "bd1ef23d-bcd6-445e-bdb0-6683bc5a9b53" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151434, + "first_name": "Catalina", + "last_name": "Gonella", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "catalina-gonella", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "staten island", + "slug": "staten-island" + }, + { + "name": "public safety", + "slug": "public-safety" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154791, + "meta": { + "first_published_at": "2023-03-09T19:35:44.885479-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154791/", + "html_url": "http://cms.prod.nypr.digital/news/black-activists-in-ny-duel-over-proposed-bans-on-menthol-cigarette-sales/", + "slug": "black-activists-in-ny-duel-over-proposed-bans-on-menthol-cigarette-sales" + }, + "title": "Black activists in NY duel over proposed bans on menthol cigarette sales", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "acd4845e-4c8c-4c2e-96a3-a223824f95b6", + "url": "https://gothamist.com/news/black-activists-in-ny-duel-over-proposed-bans-on-menthol-cigarette-sales", + "publication_date": "2023-03-09T19:35:44.885479-05:00", + "updated_date": null, + "description": "Some worry the bans will mean more encounters with cops. Others decry the flavored cigarettes' deadly toll on Black people.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337180, + "title": "shutterstock_editorial_13437417a.jpg DO NOT REUSE", + "width": 3328, + "height": 2218, + "created_at": "2023-03-09T17:53:21.471291-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1358302, + "file_hash": "adaea39cfd4bd84fe8c467d7bf803194b039d010", + "alt": "Menthol cigarettes", + "caption": "Menthol-flavored cigarettes would be banned under proposals pending in the State Legislature and New York City Council", + "credit": "Jeff Chiu/AP/Shutterstock", + "credit_link": "https://enterprise.shutterstock.com/editorial/image-editorial/menthol-cigarettes-other-tobacco-products-displayed-store-13437417a", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_13437417a.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 125 + }, + "caption": "", + "image_link": "" + }, + "id": "8e4eda57-eaf9-47b9-9dcf-f69739871f97" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 154600, + "first_name": "Arya", + "last_name": "Sundaram", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "arya-sundaram", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "menthol cigarettes", + "slug": "menthol-cigarettes" + }, + { + "name": "lung cancer", + "slug": "lung-cancer" + }, + { + "name": "Race And Justice Unit", + "slug": "race-and-justice-unit" + }, + { + "name": "Kathy Hochul", + "slug": "kathy-hochul" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/index.json b/cypress/fixtures/aviary/index.json new file mode 100644 index 00000000..e805389d --- /dev/null +++ b/cypress/fixtures/aviary/index.json @@ -0,0 +1,2449 @@ +{ + "id": 3, + "meta": { + "first_published_at": "2019-08-09T13:20:20.088648-04:00", + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/", + "slug": "home", + "show_in_menus": false, + "seo_title": "", + "search_description": "", + "parent": null + }, + "title": "Gothamist", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "social_image": null, + "social_title": "", + "social_text": "", + "show_on_index_listing": true, + "uuid": "fd316a7e-deae-48c7-b277-14d78f85e63a", + "url": "https://gothamist.com", + "page_collection_relationship": [ + { + "id": 2, + "title": "Homepage collection", + "pages": [ + { + "id": 154798, + "meta": { + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154798/", + "html_url": "http://cms.prod.nypr.digital/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview/", + "parent": { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News" + }, + "type": "news.ArticlePage", + "slug": "ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2023-03-10T14:22:09.573329-05:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 31, + "first_name": "Brigid", + "last_name": "Bergin", + "photo": 334518, + "job_title": "Senior Reporter - People and Power", + "biography": "Brigid Bergin is an award-winning senior reporter on the People and Power desk. Fiercely committed to telling stories that help people engage and support democracy for more than a decade, her coverage has led to multiple appearances on NPR, MSNBC and the Black News Network. Brigid's reporting in 2017 included some of the first coverage of a political upstart now known as AOC. In April 2016, she broke the news of a voter purge in Brooklyn just days before New York’s presidential primary, triggering city, state and federal investigations. Brigid also guest hosts The Brian Lehrer Show and The Takeaway. She graduated from the University at Albany and the CUNY Newmark School of Journalism. Follow her on Twitter @brigidbergin", + "website": "", + "email": "bbergin@wnyc.org", + "slug": "brigid-bergin", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/brigidbergin" + } + ] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "social_image": null, + "tags": [ + { + "name": "news", + "slug": "news" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new york state", + "slug": "new-york-state" + }, + { + "name": "Democratic party", + "slug": "democratic-party" + } + ], + "url": "https://gothamist.com/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview", + "path": "0001000100011XT4", + "depth": 4, + "numchild": 0, + "translation_key": "d72d15b7-ded9-4c63-bcd7-7778bd3b93c9", + "title": "NY Democratic Party chair blasts progressives in fiery WNYC interview", + "draft_title": "NY Democratic Party chair blasts progressives in fiery WNYC interview", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview/", + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-03-10T14:38:08.938798-05:00", + "latest_revision_created_at": "2023-03-10T14:38:08.779725-05:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "e96833a5-f6e7-4bbc-a1b8-860e461f5a7b", + "canonical_url": "", + "publication_date": "2023-03-10T14:22:00-05:00", + "updated_date": "2023-03-10T14:37:00-05:00", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337197, + "title": "Jay Jacobs [Shutterstock]", + "width": 5554, + "height": 3703, + "created_at": "2023-03-10T13:43:49.980598-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2688890, + "file_hash": "f202f62762f17aa7a11ea4021151f0a4213dd676", + "alt": "Jay Jacobs, chair of the New York State Democratic Committee, speaks during the New York State Democratic Convention in New York. Jacobs has faced criticism in the last month for not supporting fellow Democrats in their elections.", + "caption": "Jay Jacobs, chair of the New York State Democratic Committee, speaks during the New York State Democratic Convention in New York. Jacobs has faced criticism in the last month for not supporting fellow Democrats in their elections.", + "credit": "Seth Wenig/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_12811418d_1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 82 + }, + "caption": "", + "image_link": "" + }, + "id": "8051d4cd-d52d-4459-ab48-ae642f24b5d8" + } + ], + "description": "Jacobs appeared on \"The Brian Lehrer Show\" to respond to criticism over his leadership.", + "body": [ + { + "type": "paragraph", + "value": "

Jay Jacobs, the embattled chair of the New York State Democratic Party, offered a spirited defense of his leadership and took aim at the party’s progressive members — including Rep. Alexandria Ocasio-Cortez and Public Advocate Jumaane Williams — in a fiery interview on "The Brian Lehrer Show" on Friday.

The interview came roughly two weeks after the New York Times Magazine ran an article titled “The Democratic Party in New York is a Disaster,” which painted a bleak portrait of a dysfunctional party helmed by ineffective leadership from Jacobs. It noted the loss of four congressional seats that handed Republicans control of the House of Representatives. That includes the 3rd Congressional District now represented by Republican Rep. George Santos, the well-documented fabulist.

The article's author Ross Barkan had appeared on the show last month to discuss the story.

Jacobs, who described himself as a “moderate progressive,” described the role of the state party in terms of coordinating between campaigns, maintaining the voter file database that’s used by candidates reaching out to prospective voters and making sure candidates have access to what they need to win elections. “I believe we’ve done that fairly vigorously,” he said.

", + "id": "23dd64a7-b3ae-4f9c-a090-7146fbb2c7da" + }, + { + "type": "pull_quote", + "value": { + "pull_quote": "My job as leader of the party is to speak the truth as far I see it on the political realities of each and everything that we do so as to ensure that ultimately we can elect more Democrats.", + "attribution": "Jay Jacobs, New York State Democratic Party chair" + }, + "id": "1c9c25b6-64cf-491d-93de-52141a6a4ce5" + }, + { + "type": "paragraph", + "value": "

When he was asked by Lehrer why he is more critical of progressive Democrats when moderates like Sean Patrick Maloney lost seats to Republicans, Jacobs argued that progressive candidates don't bring out the same number of voters.

“My job as leader of the party is to speak the truth as far I see it on the political realities of each and everything that we do so as to ensure that ultimately we can elect more Democrats,” said Jacobs.

A caller, Larry of Brooklyn Heights, said Jacobs was allowing the Democratic Party to become a “non-entity” by taking shots at officials like Ocasio-Cortez and Williams, a former gubernatorial candidate who offered voters a clear identity and stance on issues. Jacobs insisted that AOC’s brand of politics would not sell across the state.

“AOC represents a district that is far more to the left than the rest of the state,” said Jacobs, aligning himself with the positions of President Joe Biden and Gov. Kathy Hochul. “It seems to me that you are advocating a far more left push and that will work in some places.”

", + "id": "9187db86-dfda-4470-839d-806884189a11" + }, + { + "type": "embed", + "value": { + "title": "", + "embed": "
\n

Jacobs gives a full-throated defense of his leadership taking aim at progressives. He insists the state has a strong field operation. But where were the state Dems in 2021 when GOP and Conservative parties defeated two voting rights ballot initiatives? https://t.co/0pWl8XVGM1

— Brigid Bergin (@brigidbergin) March 10, 2023
\n\n\n
\n" + }, + "id": "aad19a03-8e66-4c6f-a767-f3843c5ec40e" + }, + { + "type": "paragraph", + "value": "

But he insisted that progressive campaigns are not universally successful, pointing to Williams' failed bid for governor and the progressive candidates who did not win the race for mayor of New York City in 2021.

His repeated use of the term “far left” to refer to other Democrats prompted Lehrer to ask if Jacobs was “accepting a Republican smear.” Jacobs responded by reading portions of the platform for the Democratic Socialists of America, which includes provisions like, “defund the police by cutting budgets annually towards zero.”

“So I’m saying to you, yes, those folks are ‘far left’ now,” Jacobs said. “If somebody wants to give me better terminology I'm happy to use it. But there is a difference between ‘moderate progressives’ and ‘far left progressives.' I count myself as a ‘moderate progressive.’”

Looking ahead to 2024, Jacobs said he expects the party to have a stronger financial backing, including $45 million from the Democratic Majority PAC in recognition of the competitive races happening in parts of the state.

“We're a diverse state with diverse regions, with different electorates and different types of campaigns on [Long] Island and upstate New York. We have real competitive campaigns with Republicans,” said Jacobs. “You don't see that in much of New York City. Some areas, yes. So we have to be mindful of all of that and work together.”

", + "id": "74374504-6994-46c9-b943-aedb5813703d" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 82, + "locked_by": null, + "live_revision": 123284, + "alias_of": null + } + ], + "layout": "single-story-topper", + "label": "" + }, + { + "id": 8, + "title": "Editor's Picks 2", + "pages": [ + { + "id": 154788, + "meta": { + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154788/", + "html_url": "http://cms.prod.nypr.digital/news/nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life/", + "parent": { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News" + }, + "type": "news.ArticlePage", + "slug": "nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2023-03-10T06:01:54.458480-05:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 151868, + "first_name": "Samantha", + "last_name": "Max", + "photo": 334517, + "job_title": "Public Safety Reporter", + "biography": "Samantha reports on whether New Yorkers feel safe and whether the institutions that are supposed to protect them are working. Before coming to WNYC/Gothamist, she spent three years covering the criminal justice system in Tennessee for Nashville Public Radio. Her reporting on Nashville's police department received multiple awards, including the Daniel Schorr Journalism Prize. Samantha was also part of the inaugural class of Report for America, a service journalism program that sends up-and-coming reporters to local newsrooms across the country. She is a Northwestern University grad, a Baltimore native and fluent in Spanish.", + "website": "", + "email": "", + "slug": "samantha-max", + "social_media_profile": [] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "social_image": null, + "tags": [ + { + "name": "witness", + "slug": "witness" + }, + { + "name": "department of correction", + "slug": "department-of-correction" + }, + { + "name": "HOMICIDE", + "slug": "homicide" + }, + { + "name": "trial", + "slug": "trial" + } + ], + "url": "https://gothamist.com/news/nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life", + "path": "0001000100011XSV", + "depth": 4, + "numchild": 0, + "translation_key": "471265a3-4f1e-40f8-b5fd-a783fdb67f55", + "title": "NYC jail captain thought detainee was ‘making a joke’ when he threatened to take his life", + "draft_title": "NYC jail captain thought detainee was ‘making a joke’ when he threatened to take his life", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/news/nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life/", + "go_live_at": "2023-03-10T06:00:00-05:00", + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-03-10T11:49:53.922605-05:00", + "latest_revision_created_at": "2023-03-10T11:49:53.750533-05:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "8428b6f5-bde8-4872-ba2b-131702c9d507", + "canonical_url": "", + "publication_date": "2023-03-10T06:01:00-05:00", + "updated_date": null, + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 319227, + "title": "Rebecca Hillman", + "width": 4032, + "height": 3024, + "created_at": "2021-04-26T20:18:53.071857-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 584053, + "file_hash": "f5a6c5321e0e3db6b72e9568ec26addcfd661582", + "alt": "Rebecca Hillman, wearing sunglasses, a hooded jacket, tries to conceal herself as she is led into court", + "caption": "Captain Rebecca Hillman being escorted to her arraignment.", + "credit": "George Joseph / WNYC", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Image_from_iOS_116.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "8234019c-1e38-4f92-81e6-f8e553fd0cb6" + } + ], + "description": "Rebecca Hillman took the stand in her own homicide trial on Thursday.", + "body": [ + { + "type": "paragraph", + "value": "

A New York City jail captain took the stand in her own homicide trial on Thursday, saying that she waited to get medical aid for a detainee who had threatened to take his life and then hanged himself in his cell because she didn’t realize that he was serious.

Rebecca Hillman repeatedly said officers she was working with at the Manhattan Detention Complex in November 2020 did not give her any reason to believe that someone’s life was in danger.

“I really thought this guy was making a joke and these inmates were laughing at him,” she said.

Hillman, 40, was charged with criminally negligent homicide after Ryan Wilson, 29, died by suicide in a unit that she supervised. Hillman is also charged with lying about what happened on official paperwork. If she is found guilty, she could serve up to four years behind bars.

The Department of Correction and the Correction Captains’ Association did not immediately respond to requests for comment.

Prosecutors have said that Hillman filled out paperwork, walked around and ordered staff not to open Wilson’s cell door instead of immediately taking action to save him. In opening statements, they said her delays cost Wilson his life and called her behavior “a gross deviation from the standard of care.”

But Hillman described a hectic day with various tasks competing for her attention. At the same time, she said, personal grief was distracting her from her work.

Hillman said she had returned to normal duty just weeks earlier, following the 2019 murder of a close friend whom she considered a sister. The captain testified that she spent almost nine months on medical leave and several more on desk duty, during which she had no contact with detainees. She said the department’s medical staff deemed her unfit for duty after the murder and didn’t clear her to work until July 2020.

Hillman said the Department of Correction forced her to return to duty before she was ready. While on leave, she said, a department doctor told her the agency was short-staffed and that she had to start working again.

“I said I wasn’t ready to get back to work, and she said that she didn’t care,” Hillman said.

Later, when a supervisor told the captain it was time to take her required riflery test, Hillman said that she again resisted.

“I was extremely scared,” she said, adding, “I told her that it was not a good idea.”

In the fall of 2020, Hillman returned to full duty. She said she was running six housing units in a facility where she had never worked before her leave and added that she was still learning the layout and getting to know the staff.

“It was very, very challenging,” she said.

Hillman said that she wasn’t given any refresher courses after about a year away from her normal duties. She also said that she had never received suicide prevention training. Less than a fifth of city correction officers took a required suicide prevention class between Sept. 1, 2021 and Sept. 20, 2022, Gothamist reported last year.

During cross-examination, prosecutors said they had found records showing that Hillman had attended suicide prevention trainings in 2014, 2015 and 2018. Hillman said that she did not recall those trainings and that DOC records are not always accurate.

Prosecutors also noted that Hillman had written on official paperwork requesting bereavement leave that her friend was her “sister.” When an assistant district attorney asked Hillman how she defined the word “sister,” she broke down crying on the stand and gasped for breath.

Yoran pressed the captain on her leave from work, suggesting in her questions that she had intentionally misrepresented her relationship with her friend to get the leave, and if she had gotten special treatment. Hillman denied both.

Rampant absenteeism has plagued the city’s Department of Correction for years and has contributed to dire conditions in the jails. Correction officers receive unlimited sick time — a perk that some jail staff have abused, especially at the height of the pandemic. Three employees recently pleaded guilty to federal charges for vacationing, partying and doing home improvements while faking sick.

‘I knew I had to work’

On Nov. 22, 2020, Hillman was overseeing multiple housing units, including Wilson’s. According to prosecutors, the captain was planning to move Wilson because of an altercation with another man in detention. While waiting to be transferred, Wilson allegedly told an officer that he was going to kill himself and then took steps to do so.

Prosecutors said the officer asked Hillman to come right away, but that she waited. After she arrived, they said, she ordered staff not to open Wilson’s cell door and waited another 15 minutes to call for medical help. Prosecutors also alleged that she said Wilson was fine and that he was “playing.” They called her “heartless.”

Hillman challenged the state’s version of what happened.

As surveillance footage played on a screen at the front of the courtroom, Hillman walked through the moments leading up to Wilson’s death, explaining what she was doing and why. At step after step, Hillman said she was unaware of an emergency or had no reason to think that anything out of the ordinary was happening. She said an officer had told her that he’d heard from someone in custody that Wilson was hanging in his cell, but she said that neither she nor the officer believed it.

Hillman said that people in jail regularly tell her that they are going to kill themselves, so that she will take their requests seriously. But in this case, she said, Wilson had not threatened to take his life in front of her. She said he seemed calm when she told him earlier in the afternoon that he was being moved and that she didn’t think that it would cause any sort of emergency.

When Hillman met an officer outside Wilson’s cell and learned that there was a sheet wrapped around his neck, she said, she never ordered the officer not to cut it. The captain said she still didn’t think anything was wrong, because Wilson’s feet looked like they were flat on the ground. Surveillance footage showed that a crowd of incarcerated people had gathered in the hallway.

After several more minutes, someone opened the cell door. That’s when Hillman said she felt like “something’s not right.” She said she told Wilson to come down, and that he didn’t respond. Then, she said, she told the officer to cut the sheet.

Hillman called for a doctor and ordered the officer to perform CPR. Wilson was pronounced dead soon after.

After medical staff arrived, Hillman said, she tried to comfort the officer and “get the facts out.” She denied that she told him to write anything specific in a report about the incident. Hillman said she then went to the captain’s lounge and cried.

“I just fell apart,” she said.

Hillman was temporarily suspended and is now on modified duty at the Anna M. Kross Center on Rikers Island. She does not interact with people in detention. Hillman also testified in court that was written up twice before for a DOC charge called “insufficient performance of duties.” She lost four vacation days in one case and the other is still pending.

If someone you know exhibits warning signs of suicide: do not leave the person alone; remove any firearms, alcohol, drugs or sharp objects that could be used in a suicide attempt; call or text 988 or chat at 988lifeline.org; take the person to an emergency room; or seek help from a medical or mental health professional.

This story has been updated.

", + "id": "92f63cee-c759-45a2-bbfa-bcd38c289e31" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 128, + "locked_by": null, + "live_revision": 123260, + "alias_of": null + }, + { + "id": 154789, + "meta": { + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154789/", + "html_url": "http://cms.prod.nypr.digital/news/these-playwrights-turned-their-downtown-brooklyn-apartment-into-a-decked-out-theater/", + "parent": { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News" + }, + "type": "news.ArticlePage", + "slug": "these-playwrights-turned-their-downtown-brooklyn-apartment-into-a-decked-out-theater", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2023-03-10T05:00:55.362649-05:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 151434, + "first_name": "Catalina", + "last_name": "Gonella", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "catalina-gonella", + "social_media_profile": [] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "social_image": null, + "tags": [ + { + "name": "art", + "slug": "art" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + }, + { + "name": "theater", + "slug": "theater" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "url": "https://gothamist.com/news/these-playwrights-turned-their-downtown-brooklyn-apartment-into-a-decked-out-theater", + "path": "0001000100011XSW", + "depth": 4, + "numchild": 0, + "translation_key": "d36fb7e0-9e8d-4284-aea6-0cb9dcec7a4d", + "title": "These playwrights turned their Downtown Brooklyn apartment into a ‘decked out’ theater", + "draft_title": "These playwrights turned their Downtown Brooklyn apartment into a ‘decked out’ theater", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/news/these-playwrights-turned-their-downtown-brooklyn-apartment-into-a-decked-out-theater/", + "go_live_at": "2023-03-10T05:00:00-05:00", + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-03-10T05:00:55.362649-05:00", + "latest_revision_created_at": "2023-03-09T22:34:07.905448-05:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "96e042b9-677e-4e1b-946e-3160b2c4e81c", + "canonical_url": "", + "publication_date": "2023-03-10T05:00:55.362649-05:00", + "updated_date": null, + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337184, + "title": "untitled-1.jpg", + "width": 3000, + "height": 2000, + "created_at": "2023-03-09T22:05:29.048205-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4861410, + "file_hash": "768b558295addffb0222d74ad4a95ae2c072067e", + "alt": "A couple sits among theater equipment.", + "caption": "Erin Treadway (left) and Leegrid Stevens in their living room, turned theater space in Brooklyn.", + "credit": "José A. Alvarado Jr. for Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/untitled-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 137 + }, + "caption": "", + "image_link": "" + }, + "id": "35923740-a83d-4729-a194-da07eb5b6698" + } + ], + "description": "A new play is heading for a theater in Manhattan, but it got its start at the Loading Dock, taking its audience from a living room to a Humvee in Iraq.", + "body": [ + { + "type": "paragraph", + "value": "

The new play “War Dreamer” is taking the stage this month at The Wild Project in Manhattan. But it first found its footing inside a Brooklyn apartment known as the Loading Dock Theater, taking its audience from a living room to a Humvee in Iraq.

The play centers on a United States veteran who’s returned from Iraq and is struggling with war trauma, ultimately spiraling into paranoia and conspiracy theories. It was the brainchild of Steven Gridley, who wrote and workshopped the play during the pandemic with his partner and star of the show, Erin Treadway. It found its voice on the fully designed set in their own Downtown Brooklyn apartment.

From the moment Treadway took the stage during a mid-February rehearsal, the kitchen at stage left seemed to fade as the theatrical lighting shone on stage. The living room and bedroom, located through a doorway behind the audience, suddenly seemed miles away.

", + "id": "33667e19-a34f-4c71-a5d5-8759c6525167" + }, + { + "type": "image", + "value": { + "image": { + "id": 337185, + "title": "livingroomtheater.jpg", + "width": 3300, + "height": 2550, + "created_at": "2023-03-09T22:12:09.550411-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3306643, + "file_hash": "f575d2dc45edc1937bf14151cc7c8abc3ec0125a", + "alt": "An actor rehearsing a scene in a spotlight.", + "caption": "Erin Treadway rehearses a scene.", + "credit": "José A. Alvarado Jr. for Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/livingroomtheater.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 137 + }, + "caption": "" + }, + "id": "918a5ef6-3301-44bb-8f47-8e73b8fa374f" + }, + { + "type": "paragraph", + "value": "

On the stage, two halves of a tire emerged from the ground along with a metal frame seat and a single headlight. A gas pump was attached to the right of the frame — along with a lampshade, and a rug on the floor between the seat and the front tire.

“It’s sort of all here,” said Gridley, who also goes by the pen name Leegrid Stevens. “I love the kitchen area because it's just there waiting for you when you're done. We put snacks out and drinks and people like to hang out and chat about the show afterwards.”

", + "id": "376017d6-78cd-492c-a136-dc7cc17d4672" + }, + { + "type": "image", + "value": { + "image": { + "id": 337186, + "title": "GONTHEAT022223_Jose-Alvarado-Jr-31.jpg", + "width": 3000, + "height": 2000, + "created_at": "2023-03-09T22:19:05.261136-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4060295, + "file_hash": "46f82b98d6e7d2eff5511b3276235b584d6b0d20", + "alt": "A director speaks with an actor in a living room turned theater space.", + "caption": "Stevens (seated) and Jacob Titus review notes.", + "credit": "José A. Alvarado Jr. for Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GONTHEAT022223_Jose-Alvarado-Jr-31.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 137 + }, + "caption": "" + }, + "id": "adc9d3f7-6bbd-4366-b9d8-19754af8e436" + }, + { + "type": "paragraph", + "value": "

Treadway and Gridley, who both have day jobs working in finance, have been building out theaters in their living spaces for years. The idea first came to them a decade ago when the church that was letting Treadway use its basement for a show kicked her out a week before load-in.

“We ended up moving all our furniture to the side in our tiny studio and just putting the whole set up there and rehearsing there,” Treadway said. “And we were like, ‘You know what? I think we could kind of do this. What if we just keep the furniture pushed away and we make it a rehearsal space and we just do this here?’”

Eventually they built out a theater inside a studio apartment, complete with a grid for lighting equipment and risers for seating. That’s where Gridley put on his stage adaptation of “Miss Julie.”

“The stage manager and I called the show from our bed,” Gridley said.

Their current apartment — a large, windowless box of a room with a corner kitchen, a small living area and an attached bedroom — eventually became available. It was a blank canvas – their most elaborate yet.

", + "id": "737d4b0f-dd4a-4ce5-a386-ec6f9ce8a97b" + }, + { + "type": "image", + "value": { + "image": { + "id": 337187, + "title": "GONTHEAT022223_Jose-Alvarado-Jr-6.jpg", + "width": 3000, + "height": 2000, + "created_at": "2023-03-09T22:22:58.809631-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4718051, + "file_hash": "d2f6a6f46241fc9f672e94260a13a8428b270fb8", + "alt": "A crew rehearsing in a theater space.", + "caption": "", + "credit": "José A. Alvarado Jr. for Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GONTHEAT022223_Jose-Alvarado-Jr-6.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 137 + }, + "caption": "" + }, + "id": "5bf00a4e-a360-43b8-bc77-98771f093f97" + }, + { + "type": "paragraph", + "value": "

Some artists might prefer separation from their work, but Gridley and Treadway said having access to their craft at a moment’s notice has been key to their process.

On a recent Monday morning, Gridley said he woke up inspired.

“I was like, ‘Erin, what if you did this for this one scene?’ And she was like, ‘Can I wake up first and have some coffee before we start rehearsing?’” Gridley said. “I was like, ‘Well, oh yes, yes, let's have coffee, but just this one little moment, can we work on this?’ She's like, ‘Okay, fine. Alright.’ And so we rehearsed this one little moment at like 8 a.m.”

The dedication beamed through with each rehearsal. The lighting changed with each scene — yellow for when the main character experiences a flashback to Iraq and a shade of purple when she’s home. Music and strange, unsettling noises blared during intense war memories.

These subtle details were the result of having access to a stage complete with lighting and sound design equipment throughout the writing and workshopping process. And they were able to workshop those ideas in front of a crowd, thanks to Gridley and Treadway building three rows of raised audience seating into the space.

", + "id": "767b7ee1-7112-4061-98e2-c0d0c51ebe93" + }, + { + "type": "image", + "value": { + "image": { + "id": 337188, + "title": "GONTHEAT022223_Jose-Alvarado-Jr-15.jpg", + "width": 2000, + "height": 3000, + "created_at": "2023-03-09T22:26:20.358591-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4327537, + "file_hash": "91200a205cd5ec668ab1ee2fd1511f272068a4c7", + "alt": "An actor rehearsing a scene in a spotlight.", + "caption": "", + "credit": "José A. Alvarado Jr. for Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GONTHEAT022223_Jose-Alvarado-Jr-15.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 137 + }, + "caption": "" + }, + "id": "edacd750-cde6-4e76-8c23-83770ff91e00" + }, + { + "type": "paragraph", + "value": "

Brooklyn-based playwright Andres Osorio said he first found out about the space when he went there to watch a play.

“I had no idea what I was walking into,” he said. “When I pulled up to an apartment building, I was like, what is this? This cannot be the right spot.”

He continued, “I think I had to buzz some apartment number, and I walked through the door and saw this great living room with a whole decked out theater and I thought it was so cool.”

Knowing how difficult it is to find space in New York, Gridley and Treadway said they allow other playwrights access to their setup for free. They’ve hosted reading series of other works and they’re also one of the venues that hosts the Exponential Festival, a monthlong festival dedicated to emerging artists working in experimental performance.

“They found a way to not rely on the invitation of institutions to facilitate their creative process,” said Theresa Buchheister, who runs the Exponential Festival as well as The Brick, an innovative theater incubator in Williamsburg.

Buchheister is no stranger to operating underground and DIY spaces – they’ve been involved in the scene for years.

“The access point is incredibly elitist to start a space,” she said. “I think it's impossible to have a fully legal space in New York.”

They added, “If you try to go about it in a 100% legal way, then you're gonna be stuck in construction and zoning hell for years and probably hemorrhage any sort of reserve of funding that you had.”

After seeing the Loading Dock’s theater, Osorio reached out about doing a reading series at the space that included his own play. Gridley and Treadway obliged.

“It was a really nice, intimate feeling,” Osorio said. “It was really important to put it up in front of an audience to see what jokes land, what do people get, what do they not get.”

", + "id": "dcd1cf2b-1416-4bcd-b34d-db68e2414f94" + }, + { + "type": "image", + "value": { + "image": { + "id": 337189, + "title": "GONTHEAT022223_Jose-Alvarado-Jr-23.jpg", + "width": 3000, + "height": 2000, + "created_at": "2023-03-09T22:31:07.146977-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4164222, + "file_hash": "3d37246898e872cf29b066c824f678a216998e56", + "alt": "Two actors rehearse an intense scene.", + "caption": "Sam Tilles (center) and Treadway rehearse a flashback scene.", + "credit": "José A. Alvarado Jr. for Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GONTHEAT022223_Jose-Alvarado-Jr-23.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 137 + }, + "caption": "" + }, + "id": "6cc9c77f-96d2-470f-9963-12760dd46bae" + }, + { + "type": "paragraph", + "value": "

Osorio said he had never presented his play – which was developed during the pandemic era of Zoom theater – in front of a live audience.

“We’re taught that theater can happen anywhere and for very little money, but the reality in New York City is that it's actually very hard to put stuff up,” Osorio said. “And at this stage in my career, it was extremely helpful to find a space that is free.”

With Gridley’s encouragement, Osorio submitted his play, “Erastes,” about the power dynamics in gay relationships between older and younger men, to local festivals. It will run in the Fresh Fruit Festival in May.

“[One thing] I'm super excited about being able to offer to other people is for them to be able to se their play, not in just a wooden room with chairs around with everybody lit, but focused with theatrical lighting on the actor,” Gridley said. “It's [got] good sound and you can have some effects in things like that. I think it really helps playwrights.”

", + "id": "0f39e530-785f-4add-8f72-84686590cf06" + }, + { + "type": "image", + "value": { + "image": { + "id": 337190, + "title": "GONTHEAT022223_Jose-Alvarado-Jr-25.jpg", + "width": 3000, + "height": 2000, + "created_at": "2023-03-09T22:33:33.664894-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3922916, + "file_hash": "2763972c56102adc29f761cc96124dc07c8fd86b", + "alt": "An actor leaves set. A sign reads \"Loading Dock Theatre.\"", + "caption": "", + "credit": "José A. Alvarado Jr. for Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GONTHEAT022223_Jose-Alvarado-Jr-25.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 137 + }, + "caption": "" + }, + "id": "ace89baa-f801-4db8-8245-4b0183e6001f" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 129, + "locked_by": null, + "live_revision": 123250, + "alias_of": null + }, + { + "id": 154792, + "meta": { + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154792/", + "html_url": "http://cms.prod.nypr.digital/news/penn-station-redevelopment-isnt-dead-yet-gov-hochul-says/", + "parent": { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News" + }, + "type": "news.ArticlePage", + "slug": "penn-station-redevelopment-isnt-dead-yet-gov-hochul-says", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2023-03-09T18:49:29.999520-05:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 171, + "first_name": "Jon", + "last_name": "Campbell", + "photo": 328437, + "job_title": "Reporter", + "biography": "Jon Campbell covers the New York State Capitol for WNYC and Gothamist. Prior to that, he covered the Capitol for more than a decade for the USA TODAY Network. He has twice earned the Walter T. Brown Memorial Award, an honor given annually by the Legislative Correspondents Association alumni for outstanding state government coverage. Jon grew up in the Buffalo area and graduated from the University at Albany.", + "website": "", + "email": "jcampbell@wnyc.org", + "slug": "jon-campbell", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/JonCampbellNY" + } + ] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "social_image": null, + "tags": [ + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new york state", + "slug": "new-york-state" + }, + { + "name": "Kathy Hochul", + "slug": "kathy-hochul" + } + ], + "url": "https://gothamist.com/news/penn-station-redevelopment-isnt-dead-yet-gov-hochul-says", + "path": "0001000100011XSZ", + "depth": 4, + "numchild": 0, + "translation_key": "48a217bf-5a78-448c-a2ac-b73596e15e60", + "title": "Penn Station redevelopment isn’t dead yet, Gov. Hochul says", + "draft_title": "Penn Station redevelopment isn’t dead yet, Gov. Hochul says", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/news/penn-station-redevelopment-isnt-dead-yet-gov-hochul-says/", + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-03-09T18:49:29.999520-05:00", + "latest_revision_created_at": "2023-03-09T18:49:29.866934-05:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "2d8fa30e-1971-434d-821f-8749274e4e4e", + "canonical_url": "", + "publication_date": "2023-03-09T18:49:29.999520-05:00", + "updated_date": null, + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337183, + "title": "Hochul Getty do not reuse", + "width": 6635, + "height": 4425, + "created_at": "2023-03-09T18:37:06.424963-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 10635415, + "file_hash": "6a5fa86a602a66d8539db828cd2d488793fc66c8", + "alt": "Gov. Kathy Hochul speaks during a press event on Long Island.", + "caption": "Gov. Kathy Hochul speaks during a press event on Long Island.", + "credit": "Steve Pfost/Newsday RM via Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GettyImages-1472110383.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 129 + }, + "caption": "", + "image_link": "" + }, + "id": "97637fed-e9d3-4465-a816-fbdf0f52f604" + } + ], + "description": "On WNYC, the Democratic governor declined to give up on the Penn Station project, even though Vornado has paused its involvement.", + "body": [ + { + "type": "paragraph", + "value": "

New York Gov. Kathy Hochul isn’t willing to say the $7 billion renovation of Penn Station is dead, even though a key state senator says it’s “dead three different ways.”

On WNYC’s All Things Considered on Thursday, host Sean Carlson asked the Democratic governor about the future of the Penn Station redevelopment, which has been dealt repeated blows in recent months by real-estate giant Vornado’s decision to pull back on a series of planned office towers in the surrounding area — buildings that were supposed to pay for much of the massive transit project.

", + "id": "d7681aa8-67d2-46f4-bf99-ab917a5427bd" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "e2bfe107-e6ab-4be7-b39b-fc115c2dd83b" + }, + { + "type": "paragraph", + "value": "

Hochul said any “declaration of death for the Penn Station” project is “premature,” vowing to pursue an “alternative plan” to make sure it moves forward.

“I’m committed to getting that done,” Hochul said. “I will shift gears and find other ways to make sure this happens. It is not contingent on what Vornado was planning in the entire neighborhood.”

The Penn Station project has been years in the making and was first championed by then-Gov. Andrew Cuomo.

Under the original plan, Vornado was set to build 10 high-rise towers in the areas surrounding Penn Station in exchange for more than $1 billion in tax breaks. The developer would then make payments in lieu of taxes to help fund the Penn redevelopment.

But since then, interest rates have increased and the COVID pandemic reshaped demand for office space, leading Vornado to suggest it would pause its plans first in November and again last month. That led state Sen. Leroy Comrie, a Queens Democrat who chairs the Senate committee overseeing the MTA, to declare the project “dead and moot” last week, calling it a “ridiculous plan which we already know is dead three different ways.”

Hochul gave no indication of what her “alternate plan” to fund the Penn Station project would entail. She’s currently in the midst of state budget negotiations with lawmakers, with a final spending plan due before April 1.

“My plan is simply to give New York commuters an experience that is not equated to a living hell, OK?” Hochul said on WNYC. “They deserve to have a beautiful, light-filled, uplifting experience when they arrive at Penn Station — our commuters, our residents and our visitors.”

Meanwhile, Hochul also continued to tout her proposed housing plan, which she claims would create 800,000 new units over the next decade.

The bulk of Hochul’s plan is centered on requiring each city, town and village to meet certain goals — a 3% increase in the housing stock over the next three years for communities in the MTA service area, and 1% elsewhere. If a community doesn’t hit the mark, the state could step in and approve residential development projects, which has many suburban town supervisors crying foul.

Hochul said she’s not concerned about the political blowback from her plan, which has stirred up significant criticism on Long Island — where she recently lost both counties in her successful 2022 election bid.

“I’ve heard all the threats,” she said. “I knew this was not going to be easy. If it was easy, someone would have done it long before.”

Already, Republican officials in suburban counties — including Rockland County Executive Ed Day — have threatened to sue to stop Hochul’s plan if lawmakers approve it, arguing that it would unconstitutionally usurp local control. But Hochul said she’s confident her plan “will meet legal muster.”

“We crafted it in a way that gives flexibility to communities, and we’re just telling them to meet certain growth targets any way that they choose to,” she said.

", + "id": "081baa68-54ec-4f19-844e-0d91f891511c" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 129, + "locked_by": null, + "live_revision": 123231, + "alias_of": null + }, + { + "id": 154784, + "meta": { + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154784/", + "html_url": "http://cms.prod.nypr.digital/news/nyc-retirees-must-switch-new-medicare-coverage-after-union-leaders-favor-aetna-privatized-plan/", + "parent": { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News" + }, + "type": "news.ArticlePage", + "slug": "nyc-retirees-must-switch-new-medicare-coverage-after-union-leaders-favor-aetna-privatized-plan", + "seo_title": "250K NYC retirees must switch to new Medicare coverage after union leaders favor Aetna plan", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2023-03-09T12:42:16.773635-05:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": { + "id": 337175, + "title": "medicare advantage vote_20230309_GettyImages-1246120531.jpg", + "width": 3100, + "height": 2065, + "created_at": "2023-03-09T11:27:50.392883-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4358124, + "file_hash": "c790377b66c32092f194f2ad4f3f2c34b3275cd2", + "alt": "Participants seen cheering during an NYC City Council hearing about the proposed changes to the city’s administrative code and municipal retirees' health care benefits, Jan. 9, 2023.", + "caption": "Participants seen cheering during an NYC City Council hearing about the proposed changes to the city’s administrative code and municipal retirees' health care benefits, Jan. 9, 2023.", + "credit": "Erik McGregor/LightRocket via Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/medicare_advantage_vote_20230309_GettyImages-1246120531.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "related_authors": [ + { + "id": 22, + "first_name": "Caroline", + "last_name": "Lewis", + "photo": 334520, + "job_title": "Health Reporter", + "biography": "Caroline Lewis is on the health care beat for WNYC and Gothamist — and also covers cannabis, both with an eye towards equity and accountability. She was previously a health care reporter for Crain’s New York Business. Lewis has a degree from the CUNY Graduate School of Journalism and is a native New Yorker, although she has left occasionally. She did a Fulbright in Chile in 2011 and is fluent in Spanish. She now resides in Brooklyn.", + "website": "", + "email": "", + "slug": "caroline-lewis", + "social_media_profile": [] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "social_image": { + "id": 337175, + "title": "medicare advantage vote_20230309_GettyImages-1246120531.jpg", + "width": 3100, + "height": 2065, + "created_at": "2023-03-09T11:27:50.392883-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4358124, + "file_hash": "c790377b66c32092f194f2ad4f3f2c34b3275cd2", + "alt": "Participants seen cheering during an NYC City Council hearing about the proposed changes to the city’s administrative code and municipal retirees' health care benefits, Jan. 9, 2023.", + "caption": "Participants seen cheering during an NYC City Council hearing about the proposed changes to the city’s administrative code and municipal retirees' health care benefits, Jan. 9, 2023.", + "credit": "Erik McGregor/LightRocket via Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/medicare_advantage_vote_20230309_GettyImages-1246120531.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "tags": [ + { + "name": "Health and Science", + "slug": "health-and-science" + }, + { + "name": "union", + "slug": "union" + }, + { + "name": "health care", + "slug": "health-care" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "url": "https://gothamist.com/news/nyc-retirees-must-switch-new-medicare-coverage-after-union-leaders-favor-aetna-privatized-plan", + "path": "0001000100011XSR", + "depth": 4, + "numchild": 0, + "translation_key": "e47f91dd-425c-4dd4-9af4-df20c851f1be", + "title": "250K NYC retirees must switch to new Medicare coverage after union leaders favor privatized plan", + "draft_title": "250K NYC retirees must switch to new Medicare coverage after union leaders favor privatized plan", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/news/nyc-retirees-must-switch-new-medicare-coverage-after-union-leaders-favor-aetna-privatized-plan/", + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-03-09T23:21:50.033589-05:00", + "latest_revision_created_at": "2023-03-09T23:21:49.874037-05:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "5ca57628-fc02-4cd0-8e33-e72de1c1a13c", + "canonical_url": "", + "publication_date": "2023-03-09T12:42:00-05:00", + "updated_date": "2023-03-09T23:15:00-05:00", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337176, + "title": "medicare advantage_20230309_shutterstock_editorial_13740802a.jpg", + "width": 3889, + "height": 2624, + "created_at": "2023-03-09T11:47:11.156624-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1445626, + "file_hash": "cd05b28f7385eaad6aa5f5373715b98f6a5ef719", + "alt": "A page from the 2019 U.S. Medicare Handbook in Washington.", + "caption": "According to a summary of the plan that was shared with Gothamist, Aetna won’t require prior authorization for any medical services for the first 120 days after coverage begins.", + "credit": "Pablo Martinez Monsivais/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/medicare_advantage_20230309_shutterstock_editorial_13740802a.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "", + "image_link": "" + }, + "id": "13e94eec-ebf0-4a8d-8c61-03bc857bd90a" + } + ], + "description": "The switch will provide some new benefits, but critics of the change have raised concerns that the Medicare Advantage plan will be more likely to require prior approval for certain medical services and potentially deny coverage.", + "body": [ + { + "type": "paragraph", + "value": "

A committee of New York City labor leaders voted to approve a new Aetna-run Medicare Advantage plan for municipal retirees Thursday – a move that will force many former city workers off of their existing health coverage. The Municipal Labor Committee vote came out in favor of the plan, according to United Federation of Teachers President Michael Mulgrew, who is executive vice chair of the committee.

Some 250,000 retired city workers – and any dependents who use their insurance – will automatically be enrolled in Aetna’s new Medicare Advantage plan on Sept. 1, unless they decide to opt out, according to documents that were provided to the Municipal Labor Committee ahead of their vote and shared with Gothamist. For those currently enrolled in SeniorCare, the city-funded plan that supplements traditional Medicare, prescription drug coverage under the new Aetna plan will begin later, in January 2024. SeniorCare will ultimately be discontinued.

The switch will provide some new benefits, such as routine hearing and vision exams, hearing aids, and mental health care provided via telemedicine. But critics of the change have raised concerns that the Medicare Advantage plan will be more likely to require prior approval for certain medical services and potentially deny coverage. A recent federal investigation found that Medicare Advantage plans frequently deny coverage for services inappropriately.

Some retirees reportedly protested outside of union offices and City Hall ahead of Thursday’s vote.

", + "id": "79679fc6-3945-4a44-96ac-e862da6f923e" + }, + { + "type": "embed", + "value": { + "title": "", + "embed": "
\n

Retirees are protesting as the Municipal Labor Committee is set to vote on the Medicare Advantage plan today. They’re planning to march past the offices of DC37, UFT, PSC and OLR and conclude at City Hall. pic.twitter.com/KpBDCRShoq

— Madina Touré (@madinatoure) March 9, 2023
\n\n\n
\n" + }, + "id": "7cac05c9-2e1e-46e3-aea3-633acb6a95f0" + }, + { + "type": "paragraph", + "value": "

The Municipal Labor Committee vote propels forward a long-delayed effort by Mayor Eric Adams to save money on city health benefits by switching retirees from traditional Medicare, bolstered by SeniorCare, to a privately run Medicare Advantage plan. The switch, which was originally proposed by former Mayor Bill de Blasio, could bring in an estimated $600 million annually in federal subsidies that are available to Medicare Advantage plans, according to the city.

"Aetna's much-improved Medicare Advantage proposal, with new guarantees about prior authorization of services and enhanced other benefits, has been approved overwhelmingly by the Municipal Labor Committee,” Mulgrew said in an emailed statement.

The city’s effort to transition retirees has been mired in lawsuits for years and faced widespread opposition from those who fear their coverage under Medicare Advantage won’t be as good. Some retirees have fought to stay on traditional Medicare without paying extra, and this group loses out under the terms of the new deal.

Those retirees who want to avoid joining a Medicare Advantage plan altogether can waive city health benefits and remain on traditional Medicare – but they will have to pay out of pocket for any supplemental coverage. The monthly premium for Medicare Part B, which covers services including doctors’ visits and medical equipment, is $164.90 for those earning less than $97,000 a year. The current SeniorCare plan is premium-free, and the same will be true of the Aetna plan that will replace it.

", + "id": "cba0c829-28e8-43e3-ba1b-e8f18b75aa26" + }, + { + "type": "pull_quote", + "value": { + "pull_quote": "A side-by-side comparison between SeniorCare and Aetna’s Medicare Advantage plan reveals that the new coverage has a lower annual deductible", + "attribution": "" + }, + "id": "99387051-651e-41dd-b27c-f7ebbdeec447" + }, + { + "type": "paragraph", + "value": "

The new plan will also offer some benefits that were not covered under SeniorCare. A side-by-side comparison between it and Aetna’s Medicare Advantage plan reveals that the new coverage has a lower annual deductible – $150 compared with $276 under SeniorCare. The Medicare Advantage deductible will also be waived during the 2023 calendar year.

The maximum amount that members can pay out of pocket for medical services in a given year is also limited to $1,500 under the Aetna plan, while there was no maximum under SeniorCare.

About 25,500 retirees are already enrolled in a separate Medicare Advantage plan the city offers as an alternative to SeniorCare, known as HIP VIP and they will not have to switch plans, according to City Hall spokesperson Jonah Allon.

The Municipal Labor Committee came out in favor of the Aetna plan by 79%, with votes weighted by how many members are in each union, according to the committee’s chair and Teamsters Local 831 President Harry Nespoli. The New York Daily News reported that 26 union leaders voted against the measure.

“We will continue to monitor its implementation to ensure that Aetna meets its obligations to our retirees," Mulgrew stated.

Mayor Adams added, via a spokesperson, that City Hall and the Municipal Labor Committee worked diligently to negotiate a contract with Aetna, while also hearing the concerns of retirees.

“In the coming days, we will communicate with all city retirees to provide details and next steps for the plan, and Aetna will be providing additional resources to answer any questions about the plan,” Adams said. “This Medicare Advantage Plan is in the best interests of retirees and taxpayers. We thank the MLC for their steadfast partnership throughout this process.”

The criticism

Often it’s the people who are sickest and need the most care who face the greatest barriers to coverage under Medicare Advantage plans, said Barbara Caress, who teaches health policy at Baruch College and previously served as director of strategic and policy planning for the union 32BJ’s benefit funds.

“It covers 95% of the people 95% of the time,” Caress said of Medicare Advantage. “But for the other 5%, and those are the people who are sickest and most in need of very expensive care, it isn't as good. And everybody who's over 65 imagines themselves in that group, even if they're not [currently] in that group.”

Caress said she is enrolled in a Medicare Advantage plan herself because, for her, it is cheaper than paying for supplemental coverage under traditional Medicare. But she said if she got sick and needed more complex care she would switch to traditional Medicare.

At a City Council hearing on the switch in January, city officials said Aetna’s Medicare Advantage plan was being customized for New York City retirees and wouldn’t have the same issues as other plans bearing this moniker.

", + "id": "6fad8650-7725-4628-92b8-2098354a139b" + }, + { + "type": "pull_quote", + "value": { + "pull_quote": "We understand the concerns about prior authorization and want to assure retirees that this is not an issue they need to be concerned about.", + "attribution": "Claire Levitt, deputy commissioner for the Mayor’s Office of Labor Relations" + }, + "id": "c3dd188a-999b-494d-840b-20ac942b09e1" + }, + { + "type": "paragraph", + "value": "

“We understand the concerns about prior authorization and want to assure retirees that this is not an issue they need to be concerned about,” Claire Levitt, deputy commissioner for the Mayor’s Office of Labor Relations, said at the hearing.

According to a summary of the plan that was shared with Gothamist, Aetna won’t require prior authorization for any medical services for the first 120 days after coverage begins. After that, some types of care will require prior approval – but it will only apply to about 20% of the services Aetna typically subjects to this type of scrutiny.

Services that will need prior authorization include hospital inpatient care, physical therapy, long-term nursing care and some specialty medications – with exceptions for emergency or urgently needed care. This list will be subject to review every two years and could change, with the approval of the city and Municipal Labor Committee.

Aetna will have to report on its use of prior authorization and any denials of care to the city.

In a statement, Aetna spokesperson Ethan Slavin said the plan underwent a “thorough” review by the Municipal Labor Committee. “We are confident that our customized plan would be of great benefit to the city of New York retirees,” Slavin said.

Some retirees have also raised concerns about whether all of the doctors they currently see will accept their new insurance. But at the City Council hearing in January, Levitt said about 85% of the doctors who currently accept SeniorCare would also be in Aetna’s network, and another 10% have indicated they would accept an Aetna Medicare Advantage plan even if they are not in-network. The plan documents shared with Gothamist indicate that Aetna will offer the same reimbursement to out-of-network health care providers as those it contracts with.

", + "id": "1f703424-3b0c-484d-bdb3-f1b91bbc5b62" + }, + { + "type": "image", + "value": { + "image": { + "id": 337175, + "title": "medicare advantage vote_20230309_GettyImages-1246120531.jpg", + "width": 3100, + "height": 2065, + "created_at": "2023-03-09T11:27:50.392883-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4358124, + "file_hash": "c790377b66c32092f194f2ad4f3f2c34b3275cd2", + "alt": "Participants seen cheering during an NYC City Council hearing about the proposed changes to the city’s administrative code and municipal retirees' health care benefits, Jan. 9, 2023.", + "caption": "Participants seen cheering during an NYC City Council hearing about the proposed changes to the city’s administrative code and municipal retirees' health care benefits, Jan. 9, 2023.", + "credit": "Erik McGregor/LightRocket via Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/medicare_advantage_vote_20230309_GettyImages-1246120531.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "" + }, + "id": "62f14116-875a-4262-8730-02fef63a18c5" + }, + { + "type": "paragraph", + "value": "

Earlier this year, members of the New York City Council were considering a request from Adams to change the city’s administrative code to allow the city to charge retirees a premium to remain on SeniorCare. At the time, retirees who spoke at a Council hearing on the plan were split – with some urging the Council to make the change so they could keep their current coverage, and others suggesting the Council endorse an alternative solution to the Medicare Advantage switch altogether.

Councilmembers ultimately opted not to move forward with the mayor’s request, in effect taking the option to retain SeniorCare coverage off the table.

But one prominent advocate is still pushing for last-minute action. Marianne Pizzitola is a retired FDNY worker who serves as president of the New York City Organization of Public Service Retirees, a nonprofit formed to oppose the Medicare Advantage switch. She said she has been trying to get councilmembers to introduce legislation prohibiting the administration from “diminishing” retirees’ benefits, including by shifting them onto a Medicare Advantage plan.

Councilmember Carmen de la Rosa, who initially introduced the bill to change the city code to allow retirees to pay to stay on SeniorCare, did not respond to a request for comment on whether the Council would take up the issue again.

This story was updated with quotes from Municipal Labor Committee members, a comment from Mayor Adams and details on Thursday’s vote.

", + "id": "0ea82397-30e7-42a9-9299-66db6f6b1d79" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 106, + "locked_by": null, + "live_revision": 123251, + "alias_of": null + }, + { + "id": 154765, + "meta": { + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154765/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/a-new-generation-of-visual-artists-is-creating-love-letters-to-a-vanishing-nyc/", + "parent": { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment" + }, + "type": "news.ArticlePage", + "slug": "a-new-generation-of-visual-artists-is-creating-love-letters-to-a-vanishing-nyc", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2023-03-09T14:39:34.461129-05:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "social_image": null, + "tags": [ + { + "name": "art", + "slug": "art" + }, + { + "name": "manhattan", + "slug": "manhattan" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "url": "https://gothamist.com/arts-entertainment/a-new-generation-of-visual-artists-is-creating-love-letters-to-a-vanishing-nyc", + "path": "0001000100040OLL", + "depth": 4, + "numchild": 0, + "translation_key": "3fd26cd9-09f9-4e2e-9dc4-8dabab57afaf", + "title": "A new generation of visual artists is creating love letters to a vanishing NYC", + "draft_title": "A new generation of visual artists is creating love letters to a vanishing NYC", + "live": true, + "has_unpublished_changes": true, + "url_path": "/home/arts-entertainment/a-new-generation-of-visual-artists-is-creating-love-letters-to-a-vanishing-nyc/", + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-03-10T09:22:26.261048-05:00", + "latest_revision_created_at": "2023-03-10T09:23:22.607588-05:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "2fb4eb45-7c7a-4de4-b87e-d45f7e262c4b", + "canonical_url": "", + "publication_date": "2023-03-09T14:39:00-05:00", + "updated_date": null, + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337155, + "title": "Screen Shot 2023-03-08 at 4.34.31 PM.png", + "width": 1660, + "height": 1250, + "created_at": "2023-03-08T16:36:34.408478-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2415874, + "file_hash": "c5ea5c9eff15a5755969a43a17c60ec4e12f7e4a", + "alt": "A drawing of Joe's Bar, a storefront with large windows showing tables and plants.", + "caption": "Holland says he has made more than 700 drawings since he began drawing some of his favorite places.", + "credit": "Illustration courtesy of Joel Holland", + "credit_link": "https://www.instagram.com/joelholland_studio/", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2023-03-08_at_4.34.31_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "", + "image_link": "" + }, + "id": "ca24360f-e08a-46a5-93a3-7d4bc45b85d0" + } + ], + "description": "A wide range of New Yorkers are creating social media projects to preserve and celebrate an ever-changing city as it emerges from pandemic trauma.", + "body": [ + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "16a5e324-bd08-41bd-b0d7-4cf7c6e49dad" + }, + { + "type": "paragraph", + "value": "

Omar Aguirre has wanted to live in New York City ever since he visited when he was 13.

“Coming from Mexico, there's nothing really similar,“ he said. “Now I realize that there's nothing really similar anywhere else in the world, to be honest. But it got stuck in my head, like I had to go to New York at some point.”

Aguirre, 34, now lives on the Lower East Side and designs eyewear for Nike and Converse. But this year he launched a personal side project on Instagram called Manhatoon, for which he draws iconic local businesses and landmarks — like Ray’s Candy Store, Chinatown Fair and Balloon Saloon — then animates the illustrations and adds sound.

He’s one of a growing number of New Yorkers who have set out to document and preserve an ever-changing city through DIY projects spread via social media, particularly Instagram. Their creations are love letters to a city that is still only beginning to emerge from the trauma of the pandemic. And in some cases, their efforts bolster an urban landscape where rising rents endanger longtime businesses beloved by locals.

", + "id": "66ac96ad-be21-46ea-a4ed-82e6b927f09b" + }, + { + "type": "image", + "value": { + "image": { + "id": 337178, + "title": "Screen Shot 2023-03-09 at 2.12.38 PM (1).png", + "width": 1976, + "height": 1164, + "created_at": "2023-03-09T14:22:04.817336-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 510445, + "file_hash": "dfcdce0da507b7e8849de13af751f0ad7a11bbee", + "alt": "A drawing of Russ & Daughters, showing their iconic green awning with whales.", + "caption": "Omar Aguirre launched an Instagram account called Manhatoon, where he displays drawings of landmark New York City locations and businesses.", + "credit": "Illustration courtesy of Omar Aguirre", + "credit_link": "https://www.instagram.com/manhatoon/", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2023-03-09_at_2.12.38_PM_1.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 138 + }, + "caption": "" + }, + "id": "d137d0dc-e6ed-4fbc-a8d3-f16890f2768b" + }, + { + "type": "paragraph", + "value": "

Aguirre says his project – an offshoot of an app he’s still working on, meant to encourage people to share their favorite bars and restaurants with friends and acquaintances – is a celebration of life in his adopted city, and an attempt at supporting places struggling with pandemic-era losses.

“I wanted to share my favorite places in a fun and engaging way,” he said, “and sprinkle it with a little bit of notes or anecdotes about life in the city, in hopes that it would probably boost, even just a little bit, their business.”

Aguirre has posted about 30 illustrations on Manhatoon in just over a month, and has begun to earn a following on Reddit and Instagram. He’s also gained the admiration of store owners who frequently repost his work.

“I lived on top of Ivan Ramen for three years of my life,” he said, “and it was really nice when Ivan himself sent me a DM thanking me for the animation.”

Aguirre joins a crowded field of photographers, cartoonists, tinkerers and artists engaged in similarly inspired visual projects. He’s the new kid on the block compared to someone like John Donohue, who since 2017 has served up a never-ending exploration of the city’s culinary offerings with “All The Restaurants In New York.” He chose to focus on restaurants because he knew he’d never run out of subjects.

Donohue thinks people feel compelled to chronicle the city because it connects them with a living history.

“To me the city is like the embodiment of the human imagination,” he said. “And it’s a collective imagination, so it's like generations of builders, dreamers, architects, engineers, aspirants.”

", + "id": "cf5e69a7-a353-4325-9392-d40b85fa92a0" + }, + { + "type": "image", + "value": { + "image": { + "id": 337156, + "title": "Donohue_Odeon_Signed_Left_LR.jpg", + "width": 2000, + "height": 1339, + "created_at": "2023-03-08T16:39:15.781483-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 256868, + "file_hash": "1ec796b537f99ebb8cfca110846b3999c2041ab8", + "alt": "A drawing of the Odeon restaurant on white paper with red letters.", + "caption": "A drawing of the iconic Odeon restaurant in Tribeca.", + "credit": "Illustration courtesy of John Donohue", + "credit_link": "https://www.instagram.com/eat.draw.repeat/?hl=en", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Donohue_Odeon_Signed_Left_LR.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "" + }, + "id": "b2c5e98b-341d-4506-965d-407dbe26f357" + }, + { + "type": "paragraph", + "value": "

Like Aguirre with Manhatoon, Joel Holland was sparked to start drawing NYC storefronts at the start of the pandemic.

The 46-year-old Holland, who works professionally as an illustrator and hand letterer, moved to the Gramercy area with his family in the fateful month of March 2020. He would take his daughters on trips downtown during that spring as part of their pandemic routine. They couldn’t actually enter a lot of stores, so he instead started drawing some of their favorite places, starting with Economy Candy.

“I drew that and I'm like, ‘Hey kids, we can't go in here, but isn't this cool?'” Holland said. “I posted that on Instagram, and I got kind of addicted to it.”

Since then, he has made more than 700 drawings, about 225 of which were featured in his book “NYC Storefronts: Illustrations of the Big Apple's Best-Loved Spots,” which was released last fall. That book focused on Manhattan stores, and he’s currently working on a follow-up looking at Brooklyn shops.

Holland grew up in Pennsylvania, but has lived in the city since 1998. He thinks the fact that he’s not a native New Yorker is one reason why he’s so driven to document this place.

“I'm so psyched that I still live here, that I can live here, and I'm trying to hug all of it as much as possible,” he said. “I feel like in New York, you're always hustling, you're crawling on the sidewalks to stay alive. And in a way, it's seeing other businesses and people do the same thing that keeps me active.”

", + "id": "1a584410-de59-43c8-9bd4-ccff868c4684" + }, + { + "type": "image", + "value": { + "image": { + "id": 337157, + "title": "mamas too.jpg", + "width": 1851, + "height": 1780, + "created_at": "2023-03-08T16:40:16.988898-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2854101, + "file_hash": "430f5d932f0ceef56c4c16f9a3d67c98ce61e905", + "alt": "A drawing of Mama's Too, a red brick pizza shop with big windows and stools.", + "caption": "Joel Holland said he was inspired to start drawing New York City storefronts, including this one of Mama's Too.", + "credit": "Illustration courtesy of Joel Holland", + "credit_link": "https://www.instagram.com/joelholland_studio/", + "file": "https://cdn.cms.prod.nypr.digital/original_images/mamas_too.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "" + }, + "id": "af81a971-88b5-4bc0-9f4b-127aa78c8c3d" + }, + { + "type": "paragraph", + "value": "

Jack Giambanco, 47, is a lifelong New Yorker with a similar outlook. The Gravesend resident worked for a chemical manufacturing company until the start of the pandemic, when he started spending more time working on 3-D printing. Now, his full-time job is Major Minis, where he designs and manufactures miniature storefront models of New York spaces.

Giambanco’s father owned pizzerias, so he saw the difficulties of running small businesses up close. He naturally empathized with struggling mom-and-pop shops during this period of contraction.

“I know what it's like, the heartache that the owners go through,” Giambanco said. “To see places closed down during a pandemic, or people struggling, it touched me. I came up with an idea one day of using my talents to capture these places and create miniatures of them, and kind of memorialize them forever, and give them to the owners of the places.”

Although he had operated 3-D printers since 2014, it took Giambanco months to perfect his own methodology. Now it takes about a week to create each model – and he takes requests from fans.

“To know that all the time I've put into learning my craft, to know that this storefront that I'm creating for somebody is going to touch them deeply, it makes me want to go on,” he said. “And what better place than the city that we live in? There's so many stories in these storefronts and these businesses, these little subcultures that we can all learn about and that you don't wanna lose. These places actually define us as people.”

", + "id": "7b8f284f-1d12-442a-adb3-921438089fe3" + }, + { + "type": "image", + "value": { + "image": { + "id": 337158, + "title": "LennysPizza_miniature_2.jpg", + "width": 2100, + "height": 1395, + "created_at": "2023-03-08T16:41:03.255826-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2197183, + "file_hash": "e2178e021a24f345f49fa46dd9926022f82db92b", + "alt": "A miniature model of Lenny's Pizza on a glass pizza counter as workers stand in the background.", + "caption": "When the pandemic started, Jack Giambanco started spending more time working on 3-D printing. Now he works full time designing and manufacturing small models of New York landmarks.", + "credit": "Courtesy of Jack Giambanco", + "credit_link": "https://www.instagram.com/major_minis/", + "file": "https://cdn.cms.prod.nypr.digital/original_images/LennysPizza_miniature_2.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "" + }, + "id": "be02eefc-4fd6-417f-94fc-8cce7eee0fe1" + }, + { + "type": "image", + "value": { + "image": { + "id": 337159, + "title": "BrennanandCarr5 - Copy.jpg", + "width": 1750, + "height": 1163, + "created_at": "2023-03-08T16:41:34.087073-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1849078, + "file_hash": "d3dff0406e061a5ef15f8ba8252a3f46d01cc53d", + "alt": "A miniature model of Brennan & Carr, a restaurant in Brooklyn known for its roast beef. The model is a small brick building with an American Flag waving.", + "caption": "A miniature model of iconic Brooklyn roast beef joint Brennan & Carr, made by Giambanco.", + "credit": "Courtesy of Jack Giambanco", + "credit_link": "https://www.instagram.com/major_minis/", + "file": "https://cdn.cms.prod.nypr.digital/original_images/BrennanandCarr5_-_Copy.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "" + }, + "id": "0ea13610-7d46-4f98-90f6-6ab98c107a47" + }, + { + "type": "paragraph", + "value": "

Someone who keenly understands how our urban environment defines us is Nicolas Heller, better known as New York Nico. He’s become the patron saint of the city’s most eccentric characters and an encyclopedia of New York personalities. He uses his wildly popular Instagram account to highlight unsung locals and promote endangered small businesses.

“Preservation is the main thing,” he said. “I think it's important to keep it going in everyday conversation. And that was my mission from the very jump.”

Heller posits that New York’s urban aesthetics and abundance of classic signage suits these kinds of projects. “A lot of these storefronts have a ton of character and are fun to look at,” he said, “so that lends itself well to photographs or illustrations or models.”

Among his own inspirations was the work of James and Karla Murray, a husband-and-wife team of photographers who have been documenting the eradication of local stores for decades. Their landmark 2008 book, “Store Front: The Disappearing Face of New York,” is in many ways a precursor to all these archival projects, including Heller’s unique, gritty vision.

"I loved how they were documenting all these storefronts and not only was it visually appealing, it also told a story," Heller said. “I used it myself as a guide of places that I wanted to check out."

Aguirre, the Manhatoon creator, says what he thinks ultimately unites all these disparate artists is how deeply they identify with their surroundings.

“New York City gives you a sense of belonging,” he says. “There are so many people from all over the world here, but New York is their city. Whenever I go back to Mexico, I call New York City home. I plan to probably die here, you know what I mean?”

", + "id": "86e96dd0-b7dd-4a65-9e1e-c96520ceb84d" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 30, + "locked_by": null, + "live_revision": 123257, + "alias_of": null + }, + { + "id": 154780, + "meta": { + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154780/", + "html_url": "http://cms.prod.nypr.digital/news/toxic-fumes-detected-at-popular-brooklyn-shuffleboard-club-for-past-2-years/", + "parent": { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News" + }, + "type": "news.ArticlePage", + "slug": "toxic-fumes-detected-at-popular-brooklyn-shuffleboard-club-for-past-2-years", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2023-03-09T06:00:59.699204-05:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 152986, + "first_name": "Jordan", + "last_name": "Gass-Poore'", + "job_title": "Freelance reporter", + "biography": "", + "website": "", + "email": "", + "slug": "jordan-gass-poore", + "social_media_profile": [] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "social_image": null, + "tags": [ + { + "name": "Gowanus", + "slug": "gowanus" + }, + { + "name": "Health and Science", + "slug": "health-and-science" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + }, + { + "name": "environment", + "slug": "environment" + } + ], + "url": "https://gothamist.com/news/toxic-fumes-detected-at-popular-brooklyn-shuffleboard-club-for-past-2-years", + "path": "0001000100011XSO", + "depth": 4, + "numchild": 0, + "translation_key": "fe3f8af3-7702-42e7-9d79-ac856f3fc9eb", + "title": "Toxic fumes detected at popular Brooklyn shuffleboard club for past 2 years", + "draft_title": "Toxic fumes detected at popular Brooklyn shuffleboard club for past 2 years", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/news/toxic-fumes-detected-at-popular-brooklyn-shuffleboard-club-for-past-2-years/", + "go_live_at": "2023-03-09T06:00:00-05:00", + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-03-10T13:13:41.785609-05:00", + "latest_revision_created_at": "2023-03-10T13:13:41.643262-05:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "d187af04-c4a3-45fd-9e07-5abbab713fc8", + "canonical_url": "", + "publication_date": "2023-03-09T06:00:00-05:00", + "updated_date": "2023-03-09T10:47:00-05:00", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337171, + "title": "royal palms_20230308_shuffleboard. gas_L1500214.jpeg", + "width": 3000, + "height": 2000, + "created_at": "2023-03-08T22:11:46.772923-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4388899, + "file_hash": "1e0becb47efc9c3fa1ded447b450de159177ab61", + "alt": "The Royal Palms Shuffleboard Club is located at 514 Union Street in Brooklyn. Environmental surveys detected high levels of a cancer-causing chemical called trichloroethylene and other industrial pollutants at the site in early 2021. But state regulators took a year to notify nearby residents about the health hazard. Remediation efforts to contain the toxins began last month.", + "caption": "The Royal Palms Shuffleboard Club is located at 514 Union Street in Brooklyn. Environmental surveys detected high levels of a cancer-causing chemical called trichloroethylene and other industrial pollutants at the site in early 2021. But state regulators took a year to notify nearby residents about the health hazard. Remediation efforts to contain the toxins began last month.", + "credit": "Reece T. Williams/Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/royal_palms_20230308_shuffleboard._gas_L1500214_GSlBL3l.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "", + "image_link": "" + }, + "id": "70c578bd-52ce-4061-a832-e02e5a13b751" + } + ], + "description": "Here’s why you’re only now hearing about the incident at the Royal Palms Shuffleboard Club.", + "body": [ + { + "type": "paragraph", + "value": "

The New York State Department of Environmental Conservation took a year to alert Gowanus Canal residents about toxic fumes rising into the building that houses the popular Royal Palms Shuffleboard Club in Brooklyn, according to documents reviewed by Gothamist. Despite being discovered by the DEC nearly two years ago, the airborne hazards at 514 Union St. have not been widely communicated.

The DEC had documented indoor air pollution concerns at the venue beginning in March 2021 that involved a cancer-causing chemical called trichloroethylene or TCE, an industrial solvent used in manufacturing that’s resistant to degradation. The 21,000 microgram per cubic meter concentration of trichloroethylene measured under parts of the building is more than 10,000 times the allowable amount under New York State Department of Health guidelines, according to monitoring results from the DEC.

This underground pollution is seeping fumes into the indoor air at the Royal Palms that have been measured at 20 times the state’s allowable limit, the results show. High levels of contaminants, including TCE, remained detectable in the building’s underlying soil and groundwater through last autumn, according to a DEC investigation.

", + "id": "b8b69187-2786-415d-8963-a541699e2c69" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "e145c330-a78d-4a0c-831a-9a615e14d28b" + }, + { + "type": "paragraph", + "value": "

A state-approved construction project to contain and reduce these fumes only began in February, and all the systems meant to help vent the underground pollution won’t be completed until the third quarter of 2024.

Thousands of people have likely been exposed to trichloroethylene at the Royal Palms, given the club's popularity, its 500-person capacity for events and the fact that the ground contamination predated the detection two years ago as well as the club’s opening in 2013. Aside from cancer, long-term exposure to trichloroethylene can cause headaches, liver damage and even death, according to the Centers for Disease Control and Prevention.

", + "id": "a29dd77b-1fe7-4046-aa29-cb0e64944cc1" + }, + { + "type": "image", + "value": { + "image": { + "id": 337172, + "title": "trichloroethylene_large_A625468.jpeg", + "width": 1044, + "height": 1536, + "created_at": "2023-03-08T23:18:20.861618-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 119887, + "file_hash": "9aa8e20463c9bab8fb2dba026d0d7a335f47befc", + "alt": "Trichloroethylene can cause kidney cancer and has been linked to a heightened risk of non-Hodgkin lymphoma. The compound was originally developed as an anesthetic. The National Cancer Institute says it can be inhaled and absorbed through the skin.", + "caption": "Trichloroethylene can cause kidney cancer and has been linked to a heightened risk of non-Hodgkin lymphoma. The compound was originally developed as an anesthetic. The National Cancer Institute says it can be inhaled and absorbed through the skin.", + "credit": "Science Museum Group Collection, CC BY-NC-SA", + "credit_link": "https://collection.sciencemuseumgroup.org.uk/objects/co75740/bottle-of-trichloroethylene-england-1940-1960-anaesthetic-bottle", + "file": "https://cdn.cms.prod.nypr.digital/original_images/trichloroethylene_large_A625468.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "" + }, + "id": "a45306c6-59cd-4bfa-999a-37286a41c082" + }, + { + "type": "paragraph", + "value": "

Other hazardous chemicals are present at the site along with trichloroethylene. DEC documents said the agency detected high amounts of perchloroethylene and methylene chloride that exceed New York State Department of Health guidelines.

The DEC said it plans to share its findings this summer. Even after the containment project is complete, the agency will monitor the site on a quarterly basis for at least a year to determine if it’s successful.

In a statement to Gothamist, Royal Palms co-owner Jonathan Schnapp pointed to the DEC’s approval of a plan to remediate pollution underneath the location.

“They [DEC] determined that air conditions were not dangerous in a way that would prevent people from spending time inside the building at 514 Union St. during that process,” Schnapp said. Rather than passing judgment on the benefits or drawbacks of residential development in Gowanus, the Royal Palms remains focused on nurturing the incredible community it's built over the past decade and continuing to introduce new players to the game of shuffleboard for years to come."

The building’s owners — Avery Hall Investments — said this remediation plan will occur in three phases for 514 Union St. and a neighboring development site.

“The first phase has been completed, with the second phase underway and a third phase planned for the future development,” the emailed statement said. “The property owner and tenant have complied with the DEC-approved remediation plan throughout the process.”

A “mixed-use and mixed-income” apartment complex is to be built around the Royal Palms Shuffleboard Club and completed in 2025.

What the public knew about the 'brownfield' under 514 Union St.

The toxic gases are rising into the Royal Palms venue from below, caused by a legacy of manufacturing in the area, according to historic maps and DEC information. This phenomenon is called vapor intrusion, which occurs when chemicals from the soil and groundwater evaporate and enter buildings through cracks in the foundation.

The process creates what federal regulators call brownfield sites, or property “that may be complicated by the presence or potential presence of a hazardous substance, pollutant, or contaminant.” In New York state, such land is overseen by the DEC’s Division of Environmental Remediation. The address housing the Royal Palms Shuffleboard Club — 514 Union St. — had previously been used as a facility to manufacture building materials and other products since 1886.

", + "id": "a8d17bcc-a3b6-46e6-ac55-2c56a8c2b310" + }, + { + "type": "image", + "value": { + "image": { + "id": 337168, + "title": "silos on gowanus canal_1988_GettyImages-1406762067.jpeg", + "width": 4691, + "height": 5818, + "created_at": "2023-03-08T22:11:46.540218-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2705167, + "file_hash": "91815eebb5a5bab306a4dd6b9fb973733c03551e", + "alt": "Silos on the Gowanus Canal in the Carroll Gardens section of Brooklyn, June 1, 1988.", + "caption": "Silos on the Gowanus Canal in the Carroll Gardens section of Brooklyn, June 1, 1988.", + "credit": "Thomas McGovern/Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/silos_on_gowanus_canal_1988_GettyImages-1406762067_ovZQ3Id.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "" + }, + "id": "a949407e-5683-444e-b2fb-1c960c284ad2" + }, + { + "type": "paragraph", + "value": "

In January 2021, Avery Hall Investments — under 473 President LLC — applied for funding under New York’s Brownfield Cleanup Program, a voluntary program that helps tidy up and redevelop contaminated sites by providing developers opportunities for property tax credits and liability protection.

An environmental history, appended to the company’s application, states that a 2019 investigation found ground contamination among the properties adjacent to 514 Union St. Pollution on the site could have come from the nearby Gowanus Canal, 318 Nevins St. – a former petroleum bulk storage location – and other hazardous sites in the area, according to the DEC.

The DEC said the owners of Royal Palms Shuffleboard Club became aware of the indoor air pollution in April 2021, a few weeks after a fresh survey was conducted at the grounds. The location was designated a brownfield site by late October.

Another five months passed before the DEC alerted the public about the contamination at 514 Union St. — and this announcement and subsequent updates were not widely publicized.

", + "id": "ea1fd4a8-9740-4372-b134-5aa45aee8b9b" + }, + { + "type": "pull_quote", + "value": { + "pull_quote": "If you have a very large population living in an area that is affected by this chronic exposure then you're really putting a lot of people at risk.", + "attribution": "Dr. Ana Navas-Acien, professor of environmental health sciences, Columbia University" + }, + "id": "a4ffdf97-66db-469e-b4c1-9860d0a360d4" + }, + { + "type": "paragraph", + "value": "

The DEC said they shared factsheets on the site’s initial investigation proposal and interim remediation plans in March 2022 with those who’ve registered online for the agency’s email alerts. Another factsheet was sent in December when the remediation plan was updated.

This email alert reaches about 57,000 people, according to the DEC, but only 15,000 subscribers are based in Brooklyn, a borough with a population of 2.7 million. (Census data shows Gowanus’s population is nearly 20,000 on its own). The December factsheet was also accompanied by a notice in the Brooklyn Daily Eagle.

The factsheets and notice do not mention the levels of trichloroethylene, or any other contaminant, exceeding the New York State Department of Health guideline.

Gothamist spoke with 10 Gowanus residents who said although they or organizations they’re affiliated with receive the DEC’s email alerts about hazardous sites in the area, they were not aware of the contamination at 514 Union St.

“I occasionally receive some of their notices through the Gowanus CAG [Community Advisory Group] facilitator and have looked up the fact sheets of some of the sites in Gowanus,” said Katia Kelly, a long-time Brooklyn resident and member of the environmental organization Voice of Gowanus, via email. “I don’t remember specifically receiving anything on the Union St. site.”

Who’s most at risk?

Workers at the club and those who live near the 17,000 square foot venue are more likely than others to be exposed to TCE and other contaminants at the site, putting them at a higher risk of kidney and liver cancer, said Dr. Ana Navas-Acien, a professor of environmental health sciences at Columbia University.

These cancers are linked to long-term exposure to the chemicals in the air, she said. In most cases, people will not notice a smell or be aware of their exposure to pollutants like trichloroethylene.

", + "id": "f03c774c-8cd5-4551-b25b-8fb413f5cbd2" + }, + { + "type": "image", + "value": { + "image": { + "id": 337170, + "title": "20230308_shuffleboard gas_indoor monitoring well_Sept 6 2022.jpeg", + "width": 710, + "height": 532, + "created_at": "2023-03-08T22:11:46.622511-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 90167, + "file_hash": "1f74eefeb8629e58d7ac1a30e4a0989995ca4262", + "alt": "Contractors install a groundwater monitoring well inside 514 Union Street in Brooklyn. The well was used to investigate the site's subterranean levels of industrial chemicals. Photo from DEC daily field report, Sept. 6, 2022", + "caption": "Contractors install a groundwater monitoring well inside 514 Union Street in Brooklyn. The well was used to investigate the site's subterranean levels of industrial chemicals. Photo from DEC daily field report, Sept. 6, 2022", + "credit": "DEC", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/20230308_shuffleboard_gas_indoor_monitoring_well_Sept_6_2022.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "" + }, + "id": "42a5de3f-6550-4e3f-afa2-0cba0db19f39" + }, + { + "type": "paragraph", + "value": "

“That's one of the reasons why we need to minimize these exposures,” said Navas-Acien. “If you have a very large population living in an area that is affected by this chronic exposure then you're really putting a lot of people at risk, and you might be able to see excess cancer risk happening.”

Outside of cancer, these released fumes have short-term side effects. TCE can cause headaches, eye irritation, and some confusion in people exposed to the chemical, Navas-Acien said.

“I am even more worried about these toxic chemicals that you don't really notice because the levels are not high enough for you to detect them,” said Navas-Acien. “That's when you can be exposed for very long periods of time without being detected, and that's when it can be particularly harmful.”

Fixing the earth and clearing the air

Strict compliance with state standards would call for removing all of the underground toxins at 514 Union St., but multiple remediation plans put forth by the DEC and the building’s owners over the past year don’t include this measure.

Instead, the current remediation project, which is underway, would allow unknown amounts of toxic pollution to remain on-site where it threatens public health and the environment. Langan Engineering, an independent contractor and environmental consultant, is managing the project and also prepared the plans on behalf of the building’s owners.

The DEC’s plan is to drill down through the ground at various points around the site and inject 40,000 gallons of remedial chemicals to stabilize the pollution, contain its toxic plume and possibly keep it from migrating. State documents infer that the groundwater under the Royal Palms flows west toward the Gowanus Canal, a federally designated Superfund site located 350 feet away. Preventing this flow is a secondary objective of the remediation project.

", + "id": "3fef8d53-7e86-4a03-8393-a2ee79b3a6d8" + }, + { + "type": "image", + "value": { + "image": { + "id": 315464, + "title": "01_DSC_7468_edit_small.jpg", + "width": 3000, + "height": 2003, + "created_at": "2020-12-08T18:42:48.942766-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 5535106, + "file_hash": "ff94e0d39e69d3cb3e5b348c8e135e33c73bc24c", + "alt": "A large machine dredges \"black mayonnaise\" from the Gowanus Canal.", + "caption": "Dredging the Gowanus Canal.", + "credit": "Nathan Kensinger / Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/01_DSC_7468_edit_small.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 26 + }, + "caption": "A large machine dredges \"black mayonnaise\" from the Gowanus Canal in late 2020." + }, + "id": "59ad35fe-e617-4e8c-a5e1-92b7dd06822b" + }, + { + "type": "paragraph", + "value": "

An initial plan was pitched in July 2022, and then honed over the summer and fall during an investigation period. Updated details were released last month, with implementation set to begin immediately.

In the meantime, the Royal Palms site continues to pose indoor air risks, so the DEC accepted a separate plan from Avery Hall Investments to vent the pollution from the ground before it enters the building. But this project doesn’t go as far as what’s typically expected.

Normally, the agency would install a “sub-slab depressurization” system to move the underground fumes before the hazardous chemicals can rise into the building, said Walter Hang, president and founder of Toxics Targeting, an Ithaca-based environmental data firm that tracks and analyzes documented contamination sites using available government information.

Such a system consists of a series of fans and multiple pipes to carry pollution from under the building to outdoors where the particles “dissipate and are not harmful to human health,” the DEC said.

But the original work plan, issued last July by the DEC and the building’s developers, said a sub-slab depressurization system could not be installed because of the “unique construction of the building,” namely the finished floor “precludes access to the building slab for the majority of the site.”

", + "id": "1c794752-8cde-4fef-a3f3-78024abdb535" + }, + { + "type": "image", + "value": { + "image": { + "id": 337165, + "title": "20230308_shuffleboard gas_remedial injection2 Feb 2023.jpg", + "width": 932, + "height": 699, + "created_at": "2023-03-08T22:11:46.089767-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 131032, + "file_hash": "d988f9edb2969d12811849ef6ab2a0e8aeca6b87", + "alt": "Contractors are injecting 40,000 gallons of remedial chemicals underground at 514 Union Street to contain and neutralize hazardous vapors resulting from legacy contamination in the groundwater and soil. Photo from DEC daily field report, Feb. 17, 2023", + "caption": "Contractors are injecting 40,000 gallons of remedial chemicals underground at 514 Union Street to contain and neutralize hazardous vapors resulting from legacy contamination in the groundwater and soil. Photo from DEC daily field report, Feb. 17, 2023", + "credit": "DEC", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/20230308_shuffleboard_gas_remedial_injection2_Feb_2023_sd1ifYB.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "" + }, + "id": "938f5c99-3e7a-4e0e-9c9e-981b851bcd8a" + }, + { + "type": "paragraph", + "value": "

Instead, the project developed a scaled-down alternative at “four ventilation points across the site” in consultation with the New York State Department of Health. It was installed in the space beneath the finished floor and the building’s concrete slab last September.

“An effective modified soil vapor intrusion mitigation system was installed,” the DEC told Gothamist. “The system is designed to prevent soil vapor contaminants from entering the indoor air by venting this air outdoors where the contaminants dissipate and are not harmful to human health.”

The agency added that indoor air results have shown that the system is working effectively. Gothamist asked the DEC to provide evidence of the recent indoor measurements, but the agency didn’t reply before publication.

The debate over doing enough for Gowanus

Hang has been working with Voice of Gowanus, the grassroots organization in Brooklyn, on a campaign that calls for the DEC to reject the current cleanup objectives for 514 Union St. and implement a new plan that will remove all toxic chemicals from the site. Regardless of whether an underground ventilation system is installed or all the floor cracks and drains are sealed, there’s still a risk of contamination, he said.

The Environmental Protection Agency has likewise voiced concerns that New York state is not remediating "upland" toxic sites sufficiently to safeguard public health and prevent recontamination of the Gowanus Canal.

“It is our responsibility as public servants to really be truthful to the mission of the agency and do whatever the law requires us to do,” said Christos Tsiamis, the EPA’s Gowanus Canal remedial project manager, during a Jan. 23 Gowanus Community Advisory Group meeting about the DEC’s proposed plan to not fully clean up the nearby Citizens Manufactured Gas Plant. “We will be amiss if we turn around and did not take the measures that have to be taken.”

", + "id": "bcb08b51-a431-403a-b6a2-d681aa25754b" + }, + { + "type": "image", + "value": { + "image": { + "id": 337173, + "title": "20230308_shuffleboard gas_shutterstock_editorial_5780743a.jpeg", + "width": 3059, + "height": 3720, + "created_at": "2023-03-09T00:02:28.580648-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1991475, + "file_hash": "658216226b95fc3b45cdd3edf8ac47f89a34ff32", + "alt": "A north-facing view of Brooklyn's Gowanus Canal in July 2016, featuring new developments in the formerly industrial neighborhood.", + "caption": "A north-facing view of Brooklyn's Gowanus Canal in July 2016, featuring new developments in the formerly industrial neighborhood.", + "credit": "Bebeto Matthews/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/20230308_shuffleboard_gas_shutterstock_editorial_5780743a.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "A partial view of Brooklyn's Gowanus Canal in July 2016, featuring modern developments in the formerly industrial neighborhood." + }, + "id": "8dd2b471-e08e-45c6-a969-0e62b4d4aa36" + }, + { + "type": "paragraph", + "value": "

Andrew Guglielmi, the DEC's director of environmental remediation, wrote in a letter to volunteer members of the Gowanus Canal Community Action Group on Jan. 6: “The goal of New York’s Brownfield Cleanup and State Superfund programs is to ensure that contaminated properties are cleaned up, with a specific focus on protecting public health by reducing any potential for exposure to site-related contamination.”

He added in a statement to Gothamist that the DEC prioritizes the protection of public health and the environment and works closely with the state health department to address any immediate exposure concerns.

“New York state has a proven track record of successfully investigating and cleaning up many contaminated sites across New York City, including former industrial sites like 514 Union St. and others in the Gowanus Canal area, under the state’s various cleanup programs, including the Brownfield Cleanup Program,” Guglielmi said.

Hang and members of Voice of Gowanus are requesting that New York Gov. Kathy Hochul require a comprehensive site remediation in strict compliance with all applicable regulatory requirements, including restoration of the site to "pre-disposal" conditions, or the way the land was before it was contaminated.

Margaret Maugenest, a Voice of Gowanus member and long-time resident of the neighborhood, said the DEC’s cleanup plan does not fulfill the goals of the agency. She said the proposed cleanup for this site fails to enforce Section 171 of the New York Navigation Law, which ensures the “prompt cleanup” and “removal” of leaking petroleum that has damaged the environment and poses a risk to public health.

“While you may be able to limit direct contact, you can’t control any kind of gases from this,” she said. “The only remedy is you either have to clean it all up or don’t build on it.”

", + "id": "1a5d87c6-febb-4d4b-814e-cfff3e3148ac" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [ + { + "type": "cms_page", + "value": { + "page": 154771, + "title_override": "" + }, + "id": "f179f0f2-6f7f-4b1e-892d-77fbdf3db56e" + }, + { + "type": "cms_page", + "value": { + "page": 154280, + "title_override": "" + }, + "id": "1b1540b8-0f03-4a8b-9f3e-c7c9b20e5690" + } + ], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 106, + "locked_by": null, + "live_revision": 123264, + "alias_of": null + } + ], + "layout": "center-feature", + "label": "Editor's Picks" + }, + { + "id": 3, + "title": "COVID Tracker", + "pages": [ + { + "id": 142990, + "meta": { + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/142990/", + "html_url": "http://cms.prod.nypr.digital/news/coronavirus-statistics-tracking-epidemic-new-york/", + "parent": { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News" + }, + "type": "news.ArticlePage", + "slug": "coronavirus-statistics-tracking-epidemic-new-york", + "seo_title": "Coronavirus Statistics: Tracking the epidemic in NYC", + "show_in_menus": true, + "search_description": "Graphs charting the coronavirus in New York State and New York City.", + "first_published_at": "2020-03-28T18:17:21.839954-04:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 121, + "first_name": "Jaclyn", + "last_name": "Jeffrey-Wilensky", + "photo": 334525, + "job_title": "Data Reporter", + "biography": "Jaclyn writes data-driven health and science stories for WNYC/Gothamist. She also runs Gothamist's COVID data dashboards. She is an alumna of the Newmark Graduate School of Journalism. Her work has appeared in NBC News, Spectrum, the Daily Beast, and other outlets.", + "website": "", + "email": "", + "slug": "jaclyn-jeffrey-wilensky", + "social_media_profile": [] + }, + { + "id": 146821, + "first_name": "Nsikan", + "last_name": "Akpan", + "photo": 334544, + "job_title": "Editor, Health & Science", + "biography": "Nsikan runs the health and science desk at WNYC/Gothamist. Nsikan was previously at National Geographic where he worked as a science editor, overseeing its COVID-19 coverage in addition to other topics in science, health and technology. Before National Geographic, he worked for more than four years at PBS NewsHour, where he co-created an award-winning video series named ScienceScope. \r\n\r\nHe shared a 2020 Emmy for the PBS NewsHour series “Stopping a Killer Pandemic” and in 2019 received a George Foster Peabody Award for the PBS NewsHour series “The Plastic Problem.” Nsikan has also worked for NPR, Science News Magazine, Science Magazine, KUSP Central Coast Public Radio, the Santa Cruz Sentinel and as a writer at the Center for Infection and Immunity at Columbia University. He holds a doctorate in pathobiology from Columbia University and is an alum of the science communication program at the University of California, Santa Cruz.", + "website": "", + "email": "", + "slug": "nsikan-akpan", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/MoNscience" + } + ] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [], + "social_image": null, + "tags": [ + { + "name": "data", + "slug": "data" + }, + { + "name": "new york", + "slug": "new-york" + }, + { + "name": "graphs", + "slug": "graphs" + }, + { + "name": "data tracker", + "slug": "data-tracker" + }, + { + "name": "statistics", + "slug": "statistics" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "Health and Science", + "slug": "health-and-science" + }, + { + "name": "coronavirus", + "slug": "coronavirus" + } + ], + "url": "https://gothamist.com/news/coronavirus-statistics-tracking-epidemic-new-york", + "path": "0001000100011QV5", + "depth": 4, + "numchild": 0, + "translation_key": "10406b40-e31a-4a5d-8bd2-f2c0a97e1a77", + "title": "Coronavirus Statistics: Tracking the epidemic in New York", + "draft_title": "Coronavirus Statistics: Tracking the epidemic in New York", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/news/coronavirus-statistics-tracking-epidemic-new-york/", + "go_live_at": "2023-03-02T14:00:00-05:00", + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-03-02T14:00:58.265822-05:00", + "latest_revision_created_at": "2023-03-02T13:07:14.552421-05:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "These graphs track the coronavirus statistics across New York City and the state.", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "538202da-8628-4465-b234-37df29d7a67c", + "canonical_url": "", + "publication_date": "2020-03-28T18:17:00-04:00", + "updated_date": "2023-03-02T14:00:00-05:00", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 323304, + "title": "sars cov 2_CAN REUSE_51389300360_350fb57e59_k.jpg", + "width": 2048, + "height": 1743, + "created_at": "2021-08-30T17:24:55.938240-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1710518, + "file_hash": "6ca74487a5a5b76550787b5b9c9553e60ef78636", + "alt": "A cell (green) infected with a variant of the SARS-CoV-2 coronavirus (orange), isolated from a patient sample.", + "caption": "A cell (green) infected with a variant of the SARS-CoV-2 coronavirus (orange), isolated from a patient sample.", + "credit": "NIAID", + "credit_link": "https://flic.kr/p/2mi6AC1", + "file": "https://cdn.cms.prod.nypr.digital/original_images/sars_cov_2_CAN_REUSE_51389300360_350fb57e59_k.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "", + "image_link": "" + }, + "id": "84f08a0e-8de0-42cc-b2f6-f81fe1b685cb" + } + ], + "description": "These charts show the growth of COVID-19 in New York City and the tri-state area.", + "body": [ + { + "type": "paragraph", + "value": "

What's New

  • COVID-19 case rates continue to decline. Average daily infections are hovering around 670 per day, down from 3,370 at the start of this year. Hospitalizations have also declined.
  • The XBB.1.5 subvariant, affectionately dubbed the “Kraken” by some scientists, continues to dominate in our area and elsewhere. CDC data projects that it accounts for 97% of new cases in our epidemiological region, which includes New York, New Jersey, Puerto Rico and the Virgin Islands.
  • All five boroughs are currently at the CDC’s lowest level for COVID burden. That means that cases are low and hospitalizations aren’t putting too much pressure on the health care system.
", + "id": "d7021f3f-dae8-4a7a-93c5-492bfdd75243" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "cd55d94c-9dc9-44f6-8f19-d9ac4a0bc563" + }, + { + "type": "paragraph", + "value": "

The charts, tables and maps on this page refresh with the latest data daily or weekly, but we update the article’s text about once a month. The last text update happened on March 2.

Want different metrics on this page? Please send any questions or comments to SciHealthData@wnyc.org.

", + "id": "c6f258af-c4f5-4f93-b87b-f4253f7dbd96" + }, + { + "type": "code", + "value": { + "title": "", + "code": "
\n

Menu

\n

Recent Trends

\n

Vaccinations

\n

Variants

\n

NYC Pandemic Over Time\n

\n

COVID-19 Pandemic In New York, New Jersey And Connecticut\n

\n\n
" + }, + "id": "a9c89e9f-2b7d-4b1a-a88b-9ee0e9fe8f2a" + }, + { + "type": "code", + "value": { + "title": "", + "code": "Recent Trends" + }, + "id": "75a49378-801a-4be2-8302-e419c7a57ffc" + }, + { + "type": "paragraph", + "value": "

Recent Trends

", + "id": "5911eaaa-01d8-4bd0-a518-666c09f2ced0" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "dfca7f5e-e21d-4fa7-a97f-a8748da42e35" + }, + { + "type": "paragraph", + "value": "

These charts portray New York City’s primary COVID statistics over the last 90 days. Confirmed infections rose sharply after Thanksgiving and remained high ahead of Christmas. Cases dropped slightly over the winter holidays and have declined even more in recent months.

", + "id": "d2f0dda8-a354-4c9e-8703-6f7c9e9e06a9" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "b8169216-4c85-43c3-b068-54e53fa66f57" + }, + { + "type": "paragraph", + "value": "

This map shows COVID-19 hospitalizations over the last 28 days. Hospitalization rates tend to be higher in parts of the city where fewer people are vaccinated.

Most of New York City’s data is released on a three-day lag. Data for the most recent days is typically provisional. The department revises the data for older dates as new tallies arrive, so numbers for each date may change slightly over time.

The New York State Department of Health also compiles hospitalization data from medical centers statewide, giving a more complete picture than NYC’s dataset. The state’s accounting includes information on how many patients were actually hospitalized due to COVID, as opposed to just being hospitalized with COVID.

Based on state data, the city’s hospitalization rate climbed steadily in the last months of 2022, peaking in early January. But this rise didn’t match the epic surge seen a year ago, and the death rate remains low and flat.

", + "id": "75fe7a62-0017-430f-ae57-ef37c2f8c691" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "1e292896-0eb3-4781-b407-bc22f28b7047" + }, + { + "type": "code", + "value": { + "title": "", + "code": "Vaccinations" + }, + "id": "ecbd2263-14ea-4164-bd86-c4a1e3e1eada" + }, + { + "type": "paragraph", + "value": "

Vaccinations

", + "id": "a8c52616-effd-46fd-b6b4-28c0abd21c9e" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "c3bbfe6d-9ebc-4f64-bc92-c9b8db3634a6" + }, + { + "type": "paragraph", + "value": "

New York City’s vaccine campaign started with early hiccups, caused mostly by inclement weather and limited federal supplies of the Moderna and Pfizer vaccines. Since then, though, most New Yorkers have opted for at least the initial course of vaccines. The boosters have been less popular, however.

", + "id": "0ad0cc69-2f88-4b35-a434-bdd1881e6b6c" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "aca173e3-4e86-45a7-963a-04bf7bb69315" + }, + { + "type": "paragraph", + "value": "

Original vaccination rates still vary widely among neighborhoods—from 55% in Borough Park to 100% in Midtown Manhattan. Uptake of the bivalent boosters, meanwhile, hasn’t cracked 50% in any neighborhood.

", + "id": "d7bb80d0-c988-4f91-a01d-0308f9734e11" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "e0cd0a5a-f763-4d86-903f-fa7a1c457f96" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "f699b9a2-c367-4eb2-ade0-992201efba9c" + }, + { + "type": "paragraph", + "value": "

About 89% of New Yorkers over the age of 55 are fully vaccinated. But the oldest New Yorkers are still behind: just 65% of those over age 85 are fully inoculated, and less than a fifth have gotten their bivalent boosters. Black and white New Yorkers also remain undervaccinated.

According to the latest city data, more than half of school-age children and 83% of teens are fully vaccinated. Younger children became eligible for the Pfizer-BioNTech and Moderna COVID vaccines in June 2022, but just 11% have gotten at least one shot.

", + "id": "b22b2515-f394-49c1-9986-dd93407aa81c" + }, + { + "type": "code", + "value": { + "title": "", + "code": "Variants" + }, + "id": "f6766f49-46f8-45bc-869a-6b966bcbb141" + }, + { + "type": "paragraph", + "value": "

Variants

Viruses mutate, much like any microorganism or creature with a genome. Coronavirus variants will pose a perpetual threat to unvaccinated people until infection rates are driven to zero.

The latest variant of interest is XBB.1.5. According to CDC projections, it accounts for 95% of analyzed coronavirus in our region as of late February.

XBB.1.5 descends from two versions of the omicron BA.2 variant, which thrived from February to June of last year. As such, many people may have some immunity to XBB.1.5, which the World Health Organization described on Jan. 4 as the most transmissible subvariant of omicron to date.

The global health agency also stated that XBB.1.5 doesn’t yet appear more severe than past variants, a claim that was supported by recent research from the New York City health department.

", + "id": "5933ded4-1345-45a8-b3b0-c377db808613" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "83796a63-c7ca-4557-9781-ed873402a329" + }, + { + "type": "paragraph", + "value": "

Research suggests that the COVID-19 vaccines may not be as effective against infections caused by the delta and omicron variants, but the drugs can still protect against severe disease, especially after boosters. Hospitalizations and deaths are low for people who take a full course of vaccines.

", + "id": "cd74e09a-24b9-49f7-8813-d3d19b797d79" + }, + { + "type": "code", + "value": { + "title": "", + "code": "NYC Pandemic Over Time" + }, + "id": "5b025c2f-99a5-4b08-84b8-fb4f9f41a1be" + }, + { + "type": "paragraph", + "value": "

NYC Pandemic Over Time

These charts show how cases and hospitalizations evolved throughout every borough and citywide.

", + "id": "1bdbbede-c303-4fcd-b7cb-ad7bc736bceb" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "4d6558c7-5429-4fc4-9fd1-2fbf90ef447e" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "3a5d29a9-708c-41b2-913e-0cdf5a733360" + }, + { + "type": "code", + "value": { + "title": "", + "code": "COVID-19 Pandemic In New York, New Jersey And Connecticut" + }, + "id": "0cfe92fc-3fc5-43c2-a437-a918965a21c3" + }, + { + "type": "paragraph", + "value": "

COVID-19 Pandemic In New York, New Jersey And Connecticut

Parts of New York outside of the five boroughs were hit harder by the state’s second wave relative to its first, a pattern that applied to New Jersey and Connecticut, too. Cases and deaths in all three states decreased dramatically as vaccines became widely available but surged again during the omicron wave.

In 2022, the CDC updated its COVID-19 guidance to recommend universal masking only when hospitalizations and cases are very high and hospital capacity is limited. Right now, that designation doesn’t apply anywhere in the tri-state area. In early July, amid rising cases, New York City’s health department took its own COVID alert level system off its website, saying it was “re-evaluating” the rubric. And in September, New York Governor Kathy Hochul announced that the state was lifting its mask mandate for public transit.

", + "id": "99633d18-07b3-430d-bd39-6bc5c24903d0" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "b0586c18-0c05-4f40-a77d-f4311bb55f79" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "f54b271c-da5e-46c7-b501-60be5a9b6a86" + }, + { + "type": "code", + "value": { + "title": "", + "code": "" + }, + "id": "81f5168b-cdbb-4920-8676-246f98b70555" + } + ], + "sponsored_content": false, + "disable_comments": false, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 20, + "locked_by": null, + "live_revision": 122460, + "alias_of": null + } + ], + "layout": "single-story-feature", + "label": "" + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/latest.json b/cypress/fixtures/aviary/latest.json new file mode 100644 index 00000000..5e4c8069 --- /dev/null +++ b/cypress/fixtures/aviary/latest.json @@ -0,0 +1,703 @@ +{ + "meta": { + "total_count": 140417 + }, + "items": [ + { + "id": 154802, + "meta": { + "first_published_at": "2023-03-10T16:38:50.339360-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154802/", + "html_url": "http://cms.prod.nypr.digital/news/adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event/", + "slug": "adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event" + }, + "title": "Mayor Adams praises new probation chief's decision to invite Cardi B to academy event", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "96467a16-3e35-45fb-b6eb-f5ebbded09e8", + "url": "https://gothamist.com/news/adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event", + "publication_date": "2023-03-10T16:38:00-05:00", + "updated_date": null, + "description": "Juanita Holmes previously served as chief of training for the department.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328281, + "title": "Screen Shot 2022-01-01 at 2.47.05 PM.png", + "width": 1932, + "height": 1266, + "created_at": "2022-01-01T14:50:16.439492-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3131205, + "file_hash": "aca6e2d00e75f2007203afcbb5a87b09b3bcef5f", + "alt": "Juanita Holmes, wearing a mask, holds a picture at a press conference last year.", + "caption": "Juanita Holmes, wearing a mask, holds a picture at a press conference last year.", + "credit": "Mayor's Office / Twitter", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2022-01-01_at_2.47.05_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 78 + }, + "caption": "", + "image_link": "" + }, + "id": "677b5483-9982-42ef-a94b-5ef3b515b029" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151636, + "first_name": "Isidoro", + "last_name": "Rodriguez", + "job_title": "Public Safety Reporter", + "biography": "Isidoro Rodriguez reports on safety and policing in New York City. Prior to joining Gothamist, he was deputy editor of The Crime Report at the Center on Media, Crime and Justice at the John Jay College of Criminal Justice in New York.", + "website": "", + "email": "", + "slug": "isidoro-rodriguez", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "cardi b", + "slug": "cardi-b" + }, + { + "name": "juanita holmes", + "slug": "juanita-holmes" + }, + { + "name": "probation department", + "slug": "probation-department" + }, + { + "name": "nypd", + "slug": "nypd" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154801, + "meta": { + "first_published_at": "2023-03-10T15:32:44.362908-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154801/", + "html_url": "http://cms.prod.nypr.digital/news/tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions/", + "slug": "tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions" + }, + "title": "Tambourine-shaking ex-NYPD cop convicted for Jan. 6 actions", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "e856d4f3-9a6b-4f33-9aeb-366c69ce8f30", + "url": "https://gothamist.com/news/tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions", + "publication_date": "2023-03-10T15:32:44.362908-05:00", + "updated_date": null, + "description": "Two NYPD cops have been convicted for rioting at the Capitol.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 318246, + "title": "Screen Shot 2021-03-23 at 2.18.13 PM.png", + "width": 678, + "height": 626, + "created_at": "2021-03-23T14:19:03.655578-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 665083, + "file_hash": "0b5440b6a5e054d5c15defc5fdefa40b4dedf83c", + "alt": "A woman identified as Sara Carpenter shaking a tambourine inside the U.S. Capitol", + "caption": "A woman identified as Sara Carpenter shaking a tambourine inside the U.S. Capitol", + "credit": "DOJ", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2021-03-23_at_2.18.13_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 28 + }, + "caption": "", + "image_link": "" + }, + "id": "26ee92d0-9f61-47ed-b9cb-195d9c59edfd" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 93, + "first_name": "Matt", + "last_name": "Katz", + "photo": 334524, + "job_title": "Reporter", + "biography": "Matt Katz reports on public safety, focusing on decarceration and the equitable enforcement of laws. He has investigated abuse in ICE detention and covered former N.J. Gov. Chris Christie, sharing a Peabody Award for coverage of Bridgegate and writing a book, \"American Governor: Chris Christie's Bridge to Redemption.\" Once upon a time, he wrote a syndicated dating column.", + "website": "", + "email": "mkatz@wnyc.org", + "slug": "matt-katz", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/mattkatz00" + } + ] + } + ], + "tags": [ + { + "name": "federal court", + "slug": "federal-court" + }, + { + "name": "capitol riots", + "slug": "capitol-riots" + }, + { + "name": "nypd", + "slug": "nypd" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154799, + "meta": { + "first_published_at": "2023-03-10T15:00:19.746957-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154799/", + "html_url": "http://cms.prod.nypr.digital/news/with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike/", + "slug": "with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike" + }, + "title": "With 94% vote, Rutgers faculty tells union leaders they can call a strike", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "2a52c86d-1030-4069-9b3c-2617f8b93b65", + "url": "https://gothamist.com/news/with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike", + "publication_date": "2023-03-10T15:00:00-05:00", + "updated_date": null, + "description": "It would be the first faculty walkout in the school’s 256-year history.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337198, + "title": "shutterstock_1427628818.jpg", + "width": 6000, + "height": 4000, + "created_at": "2023-03-10T13:58:53.740976-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 12059531, + "file_hash": "8281179c7712f4fa1cd1791eb02e1a77eb807348", + "alt": "The unions representing Rutgers faculty members say they're headed back to the negotiating table for a contract, but they're now authorized to call a strike at any time.", + "caption": "The unions representing Rutgers faculty members say they're headed back to the negotiating table for a contract, but they're now authorized to call a strike at any time.", + "credit": "Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_1427628818.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 134 + }, + "caption": "", + "image_link": "" + }, + "id": "6541164e-f168-44b5-8779-1948ce57797f" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 142982, + "first_name": "Nancy", + "last_name": "Solomon", + "job_title": "reporter", + "biography": "", + "website": "", + "email": "", + "slug": "nancy-solomon-wnyc", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "Workforce", + "slug": "workforce" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new jersey", + "slug": "new-jersey" + }, + { + "name": "education", + "slug": "education" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154798, + "meta": { + "first_published_at": "2023-03-10T14:22:09.573329-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154798/", + "html_url": "http://cms.prod.nypr.digital/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview/", + "slug": "ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview" + }, + "title": "NY Democratic Party chair blasts progressives in fiery WNYC interview", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "e96833a5-f6e7-4bbc-a1b8-860e461f5a7b", + "url": "https://gothamist.com/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview", + "publication_date": "2023-03-10T14:22:00-05:00", + "updated_date": "2023-03-10T14:37:00-05:00", + "description": "Jacobs appeared on \"The Brian Lehrer Show\" to respond to criticism over his leadership.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337197, + "title": "Jay Jacobs [Shutterstock]", + "width": 5554, + "height": 3703, + "created_at": "2023-03-10T13:43:49.980598-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2688890, + "file_hash": "f202f62762f17aa7a11ea4021151f0a4213dd676", + "alt": "Jay Jacobs, chair of the New York State Democratic Committee, speaks during the New York State Democratic Convention in New York. Jacobs has faced criticism in the last month for not supporting fellow Democrats in their elections.", + "caption": "Jay Jacobs, chair of the New York State Democratic Committee, speaks during the New York State Democratic Convention in New York. Jacobs has faced criticism in the last month for not supporting fellow Democrats in their elections.", + "credit": "Seth Wenig/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_12811418d_1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 82 + }, + "caption": "", + "image_link": "" + }, + "id": "8051d4cd-d52d-4459-ab48-ae642f24b5d8" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 31, + "first_name": "Brigid", + "last_name": "Bergin", + "photo": 334518, + "job_title": "Senior Reporter - People and Power", + "biography": "Brigid Bergin is an award-winning senior reporter on the People and Power desk. Fiercely committed to telling stories that help people engage and support democracy for more than a decade, her coverage has led to multiple appearances on NPR, MSNBC and the Black News Network. Brigid's reporting in 2017 included some of the first coverage of a political upstart now known as AOC. In April 2016, she broke the news of a voter purge in Brooklyn just days before New York’s presidential primary, triggering city, state and federal investigations. Brigid also guest hosts The Brian Lehrer Show and The Takeaway. She graduated from the University at Albany and the CUNY Newmark School of Journalism. Follow her on Twitter @brigidbergin", + "website": "", + "email": "bbergin@wnyc.org", + "slug": "brigid-bergin", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/brigidbergin" + } + ] + } + ], + "tags": [ + { + "name": "news", + "slug": "news" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new york state", + "slug": "new-york-state" + }, + { + "name": "Democratic party", + "slug": "democratic-party" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154797, + "meta": { + "first_published_at": "2023-03-10T14:10:31.010276-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154797/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/watch-the-oscars-among-friends-and-strangers-and-more-things-to-do-this-week-in-nyc/", + "slug": "watch-the-oscars-among-friends-and-strangers-and-more-things-to-do-this-week-in-nyc" + }, + "title": "Watch the Oscars among friends (and strangers) and more things to do this week in NYC", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "d3295477-588e-4599-ba5d-f4f781a64bc6", + "url": "https://gothamist.com/arts-entertainment/watch-the-oscars-among-friends-and-strangers-and-more-things-to-do-this-week-in-nyc", + "publication_date": "2023-03-10T14:10:31.010276-05:00", + "updated_date": null, + "description": "It’s impossible to keep up with everything happening in New York City arts and culture, but here are some recommendations for events you shouldn’t miss during the week ahead.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337193, + "title": "shutterstock_2119939280.jpg", + "width": 4592, + "height": 3064, + "created_at": "2023-03-10T13:03:03.078975-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 5982121, + "file_hash": "5d32b799b0f7e8a1a00c9f8525318df92d8e40ab", + "alt": "A golden statuette shaped like a man", + "caption": "Catch up with the Oscars on Sunday night at one of the city's many public viewing events.", + "credit": "LanKS/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_2119939280.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 127 + }, + "caption": "", + "image_link": "" + }, + "id": "79044b49-f1d2-4adf-82e5-12a1c2c858c9" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 150749, + "first_name": "Steve", + "last_name": "Smith", + "photo": 328940, + "job_title": "Culture & Arts Editor", + "biography": "Steve Smith came to WNYC from NPR, where he served as a senior editor on the Arts Desk. He ostensibly focused on music coverage, but in reality handled subjects like Mickey Mouse's creator, AI voice cloning, and even the 50th anniversary of the Crock Pot. Steve served previously as a music editor at Time Out New York, a classical-music critic for The New York Times, a weekly contributor to The New Yorker, and an assistant arts editor at the Boston Globe. He lives in Jackson Heights, Queens, with his wife, journalist and scholar Lara Pellegrinelli (herself a past contributor to WNYC and NPR), their daughter, and two dogs.", + "website": "", + "email": "", + "slug": "steve-smith", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "nyc events", + "slug": "nyc-events" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154796, + "meta": { + "first_published_at": "2023-03-10T13:11:24.478149-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154796/", + "html_url": "http://cms.prod.nypr.digital/news/extra-extra-meet-connecticuts-answer-to-pizza-rat/", + "slug": "extra-extra-meet-connecticuts-answer-to-pizza-rat" + }, + "title": "Extra Extra: Meet Connecticut's answer to Pizza Rat", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "719d1ae0-9fbe-48c9-a5d1-5b918ed41ffe", + "url": "https://gothamist.com/news/extra-extra-meet-connecticuts-answer-to-pizza-rat", + "publication_date": "2023-03-10T13:11:24.478149-05:00", + "updated_date": null, + "description": "Because it's Pizza Eagle, here are your end-of-day links: Anti-terrorism bollards are great for protecting bike lanes, Malachy McCourt is still rockin', the Sweaters of Inisherin and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337194, + "title": "eagle.jpg", + "width": 2048, + "height": 1540, + "created_at": "2023-03-10T13:06:22.064815-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 466290, + "file_hash": "3ec2a7b85d696da4a1d4e301c9809282d62b3746", + "alt": "a bald eagle in a tree", + "caption": "", + "credit": "Keith Michael", + "credit_link": "https://flickr.com/photos/keithmichaelnyc/39604706041/in/photolist-23kJtik-KyGG2Y-yiTUqw-Ma7pwg-dHUTrn-DjjPRv-qkpxPE-dL1Wc4-9vJKhp-dNjkqw-dvKvwu-dJg1TM-91vnAA-br9SQo-9TdPsK-aCMwoB-e6W1p3-KFzpxT-C2EPUB-m5pKg2-fbTJWj-e2iZfj-bpFjG9-bD3yeP-du57zX-2ng8Jbn-5oKDjF-2ntzfyA-2kPAi1L-2nkeKLK-RKHVhz-2nTvdN6-feF81i-81Xf6P-5nEoGn-JaYjaL-2og4kn5-QzRSCC-4m5gzG-2mpk17z-2mVT6cM-ecyGP4-gdixpw-5mFB2a-2ki5QVh-iJRv1-9n6gTC-7jF2W3-m29iAp-7G1eNo", + "file": "https://cdn.cms.prod.nypr.digital/original_images/eagle.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "40abd414-9078-401b-9a6d-6b2df45812fb" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "extra extra", + "slug": "extra-extra" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/more-news.json b/cypress/fixtures/aviary/more-news.json new file mode 100644 index 00000000..e71cdaa9 --- /dev/null +++ b/cypress/fixtures/aviary/more-news.json @@ -0,0 +1,699 @@ +{ + "meta": { + "total_count": 90144 + }, + "items": [ + { + "id": 154802, + "meta": { + "first_published_at": "2023-03-10T16:38:50.339360-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154802/", + "html_url": "http://cms.prod.nypr.digital/news/adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event/", + "slug": "adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event" + }, + "title": "Mayor Adams praises new probation chief's decision to invite Cardi B to academy event", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "96467a16-3e35-45fb-b6eb-f5ebbded09e8", + "url": "https://gothamist.com/news/adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event", + "publication_date": "2023-03-10T16:38:00-05:00", + "updated_date": null, + "description": "Juanita Holmes previously served as chief of training for the department.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328281, + "title": "Screen Shot 2022-01-01 at 2.47.05 PM.png", + "width": 1932, + "height": 1266, + "created_at": "2022-01-01T14:50:16.439492-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3131205, + "file_hash": "aca6e2d00e75f2007203afcbb5a87b09b3bcef5f", + "alt": "Juanita Holmes, wearing a mask, holds a picture at a press conference last year.", + "caption": "Juanita Holmes, wearing a mask, holds a picture at a press conference last year.", + "credit": "Mayor's Office / Twitter", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2022-01-01_at_2.47.05_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 78 + }, + "caption": "", + "image_link": "" + }, + "id": "677b5483-9982-42ef-a94b-5ef3b515b029" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151636, + "first_name": "Isidoro", + "last_name": "Rodriguez", + "job_title": "Public Safety Reporter", + "biography": "Isidoro Rodriguez reports on safety and policing in New York City. Prior to joining Gothamist, he was deputy editor of The Crime Report at the Center on Media, Crime and Justice at the John Jay College of Criminal Justice in New York.", + "website": "", + "email": "", + "slug": "isidoro-rodriguez", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "cardi b", + "slug": "cardi-b" + }, + { + "name": "juanita holmes", + "slug": "juanita-holmes" + }, + { + "name": "probation department", + "slug": "probation-department" + }, + { + "name": "nypd", + "slug": "nypd" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154801, + "meta": { + "first_published_at": "2023-03-10T15:32:44.362908-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154801/", + "html_url": "http://cms.prod.nypr.digital/news/tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions/", + "slug": "tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions" + }, + "title": "Tambourine-shaking ex-NYPD cop convicted for Jan. 6 actions", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "e856d4f3-9a6b-4f33-9aeb-366c69ce8f30", + "url": "https://gothamist.com/news/tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions", + "publication_date": "2023-03-10T15:32:44.362908-05:00", + "updated_date": null, + "description": "Two NYPD cops have been convicted for rioting at the Capitol.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 318246, + "title": "Screen Shot 2021-03-23 at 2.18.13 PM.png", + "width": 678, + "height": 626, + "created_at": "2021-03-23T14:19:03.655578-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 665083, + "file_hash": "0b5440b6a5e054d5c15defc5fdefa40b4dedf83c", + "alt": "A woman identified as Sara Carpenter shaking a tambourine inside the U.S. Capitol", + "caption": "A woman identified as Sara Carpenter shaking a tambourine inside the U.S. Capitol", + "credit": "DOJ", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2021-03-23_at_2.18.13_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 28 + }, + "caption": "", + "image_link": "" + }, + "id": "26ee92d0-9f61-47ed-b9cb-195d9c59edfd" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 93, + "first_name": "Matt", + "last_name": "Katz", + "photo": 334524, + "job_title": "Reporter", + "biography": "Matt Katz reports on public safety, focusing on decarceration and the equitable enforcement of laws. He has investigated abuse in ICE detention and covered former N.J. Gov. Chris Christie, sharing a Peabody Award for coverage of Bridgegate and writing a book, \"American Governor: Chris Christie's Bridge to Redemption.\" Once upon a time, he wrote a syndicated dating column.", + "website": "", + "email": "mkatz@wnyc.org", + "slug": "matt-katz", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/mattkatz00" + } + ] + } + ], + "tags": [ + { + "name": "federal court", + "slug": "federal-court" + }, + { + "name": "capitol riots", + "slug": "capitol-riots" + }, + { + "name": "nypd", + "slug": "nypd" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154799, + "meta": { + "first_published_at": "2023-03-10T15:00:19.746957-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154799/", + "html_url": "http://cms.prod.nypr.digital/news/with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike/", + "slug": "with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike" + }, + "title": "With 94% vote, Rutgers faculty tells union leaders they can call a strike", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "2a52c86d-1030-4069-9b3c-2617f8b93b65", + "url": "https://gothamist.com/news/with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike", + "publication_date": "2023-03-10T15:00:00-05:00", + "updated_date": null, + "description": "It would be the first faculty walkout in the school’s 256-year history.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337198, + "title": "shutterstock_1427628818.jpg", + "width": 6000, + "height": 4000, + "created_at": "2023-03-10T13:58:53.740976-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 12059531, + "file_hash": "8281179c7712f4fa1cd1791eb02e1a77eb807348", + "alt": "The unions representing Rutgers faculty members say they're headed back to the negotiating table for a contract, but they're now authorized to call a strike at any time.", + "caption": "The unions representing Rutgers faculty members say they're headed back to the negotiating table for a contract, but they're now authorized to call a strike at any time.", + "credit": "Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_1427628818.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 134 + }, + "caption": "", + "image_link": "" + }, + "id": "6541164e-f168-44b5-8779-1948ce57797f" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 142982, + "first_name": "Nancy", + "last_name": "Solomon", + "job_title": "reporter", + "biography": "", + "website": "", + "email": "", + "slug": "nancy-solomon-wnyc", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "Workforce", + "slug": "workforce" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new jersey", + "slug": "new-jersey" + }, + { + "name": "education", + "slug": "education" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154798, + "meta": { + "first_published_at": "2023-03-10T14:22:09.573329-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154798/", + "html_url": "http://cms.prod.nypr.digital/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview/", + "slug": "ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview" + }, + "title": "NY Democratic Party chair blasts progressives in fiery WNYC interview", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "e96833a5-f6e7-4bbc-a1b8-860e461f5a7b", + "url": "https://gothamist.com/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview", + "publication_date": "2023-03-10T14:22:00-05:00", + "updated_date": "2023-03-10T14:37:00-05:00", + "description": "Jacobs appeared on \"The Brian Lehrer Show\" to respond to criticism over his leadership.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337197, + "title": "Jay Jacobs [Shutterstock]", + "width": 5554, + "height": 3703, + "created_at": "2023-03-10T13:43:49.980598-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2688890, + "file_hash": "f202f62762f17aa7a11ea4021151f0a4213dd676", + "alt": "Jay Jacobs, chair of the New York State Democratic Committee, speaks during the New York State Democratic Convention in New York. Jacobs has faced criticism in the last month for not supporting fellow Democrats in their elections.", + "caption": "Jay Jacobs, chair of the New York State Democratic Committee, speaks during the New York State Democratic Convention in New York. Jacobs has faced criticism in the last month for not supporting fellow Democrats in their elections.", + "credit": "Seth Wenig/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_12811418d_1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 82 + }, + "caption": "", + "image_link": "" + }, + "id": "8051d4cd-d52d-4459-ab48-ae642f24b5d8" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 31, + "first_name": "Brigid", + "last_name": "Bergin", + "photo": 334518, + "job_title": "Senior Reporter - People and Power", + "biography": "Brigid Bergin is an award-winning senior reporter on the People and Power desk. Fiercely committed to telling stories that help people engage and support democracy for more than a decade, her coverage has led to multiple appearances on NPR, MSNBC and the Black News Network. Brigid's reporting in 2017 included some of the first coverage of a political upstart now known as AOC. In April 2016, she broke the news of a voter purge in Brooklyn just days before New York’s presidential primary, triggering city, state and federal investigations. Brigid also guest hosts The Brian Lehrer Show and The Takeaway. She graduated from the University at Albany and the CUNY Newmark School of Journalism. Follow her on Twitter @brigidbergin", + "website": "", + "email": "bbergin@wnyc.org", + "slug": "brigid-bergin", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/brigidbergin" + } + ] + } + ], + "tags": [ + { + "name": "news", + "slug": "news" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new york state", + "slug": "new-york-state" + }, + { + "name": "Democratic party", + "slug": "democratic-party" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154796, + "meta": { + "first_published_at": "2023-03-10T13:11:24.478149-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154796/", + "html_url": "http://cms.prod.nypr.digital/news/extra-extra-meet-connecticuts-answer-to-pizza-rat/", + "slug": "extra-extra-meet-connecticuts-answer-to-pizza-rat" + }, + "title": "Extra Extra: Meet Connecticut's answer to Pizza Rat", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "719d1ae0-9fbe-48c9-a5d1-5b918ed41ffe", + "url": "https://gothamist.com/news/extra-extra-meet-connecticuts-answer-to-pizza-rat", + "publication_date": "2023-03-10T13:11:24.478149-05:00", + "updated_date": null, + "description": "Because it's Pizza Eagle, here are your end-of-day links: Anti-terrorism bollards are great for protecting bike lanes, Malachy McCourt is still rockin', the Sweaters of Inisherin and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337194, + "title": "eagle.jpg", + "width": 2048, + "height": 1540, + "created_at": "2023-03-10T13:06:22.064815-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 466290, + "file_hash": "3ec2a7b85d696da4a1d4e301c9809282d62b3746", + "alt": "a bald eagle in a tree", + "caption": "", + "credit": "Keith Michael", + "credit_link": "https://flickr.com/photos/keithmichaelnyc/39604706041/in/photolist-23kJtik-KyGG2Y-yiTUqw-Ma7pwg-dHUTrn-DjjPRv-qkpxPE-dL1Wc4-9vJKhp-dNjkqw-dvKvwu-dJg1TM-91vnAA-br9SQo-9TdPsK-aCMwoB-e6W1p3-KFzpxT-C2EPUB-m5pKg2-fbTJWj-e2iZfj-bpFjG9-bD3yeP-du57zX-2ng8Jbn-5oKDjF-2ntzfyA-2kPAi1L-2nkeKLK-RKHVhz-2nTvdN6-feF81i-81Xf6P-5nEoGn-JaYjaL-2og4kn5-QzRSCC-4m5gzG-2mpk17z-2mVT6cM-ecyGP4-gdixpw-5mFB2a-2ki5QVh-iJRv1-9n6gTC-7jF2W3-m29iAp-7G1eNo", + "file": "https://cdn.cms.prod.nypr.digital/original_images/eagle.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "40abd414-9078-401b-9a6d-6b2df45812fb" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "extra extra", + "slug": "extra-extra" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154794, + "meta": { + "first_published_at": "2023-03-10T10:00:53.456795-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154794/", + "html_url": "http://cms.prod.nypr.digital/news/early-addition-a-coyote-was-walkin-around-queens-this-week/", + "slug": "early-addition-a-coyote-was-walkin-around-queens-this-week" + }, + "title": "Early Addition: A coyote was walkin' around Queens this week", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "ffa1cf45-9fb7-4c54-b7fd-04eba201d287", + "url": "https://gothamist.com/news/early-addition-a-coyote-was-walkin-around-queens-this-week", + "publication_date": "2023-03-10T10:00:53.456795-05:00", + "updated_date": null, + "description": "Because the canine has now been relocated to Long Island, here are your early links: Retired NYPD officer allegedly threatened teens with a gun, new Biggie mural unveiled, don't drink the Borg and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337191, + "title": "Screen Shot 2023-03-10 at 8.30.47 AM.png", + "width": 1460, + "height": 1090, + "created_at": "2023-03-10T08:33:06.024162-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1845115, + "file_hash": "361491cbb74faccabcc0808f1a9155a5d31ef019", + "alt": "a coyote seen walking on a Queens sidewalk", + "caption": "", + "credit": "NYPD105Pct/Twitter", + "credit_link": "https://twitter.com/NYPD105Pct/status/1633462901775417345", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2023-03-10_at_8.30.47_AM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "60fe77e1-4ae3-46c0-8f8d-e819b3935ef0" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "early addition", + "slug": "early-addition" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/navigation.json b/cypress/fixtures/aviary/navigation.json new file mode 100644 index 00000000..3acc0188 --- /dev/null +++ b/cypress/fixtures/aviary/navigation.json @@ -0,0 +1,170 @@ +{ + "id": 1, + "meta": { + "type": "navigation.NavigationSettings", + "detail_url": "https://cms.prod.nypr.digital/api/v2/navigation/1/" + }, + "primary_navigation": [ + { + "type": "cms_page", + "value": { + "page": 4, + "title": "News", + "url": "/news/", + "slug": "news" + }, + "id": "7f4ddffd-5aa1-42e8-ae4e-1dd0d22bba11" + }, + { + "type": "cms_page", + "value": { + "page": 8, + "title": "Culture", + "url": "/arts-entertainment/", + "slug": "arts-entertainment" + }, + "id": "a0511d0e-3568-4497-a6d7-752e5693012c" + }, + { + "type": "external_link", + "value": { + "url": "https://gothamist.com/tags/transportation", + "title": "Transit" + }, + "id": "db43b0b2-cc50-4cd9-82bc-338b11f944ec" + }, + { + "type": "external_link", + "value": { + "url": "https://gothamist.com/tags/politics", + "title": "Politics" + }, + "id": "cfea409d-ab3b-4c3e-a277-5e34f309c8da" + }, + { + "type": "external_link", + "value": { + "url": "https://gothamist.com/tags/health-and-science", + "title": "Health & Science" + }, + "id": "d2c9d285-93ab-4ef8-a5bc-5e57a32daa11" + } + ], + "secondary_navigation": [ + { + "type": "external_link", + "value": { + "url": "https://sponsorship.wnyc.org", + "title": "Advertising" + }, + "id": "152aaac4-c9c7-4939-897b-ff3b589f8a0e" + }, + { + "type": "cms_page", + "value": { + "page": 144938, + "title": "Contact Us", + "url": "/contact/", + "slug": "contact" + }, + "id": "b1136d9b-3183-49f4-bea5-e8d0798ae597" + }, + { + "type": "external_link", + "value": { + "url": "https://gothamist.com/feed", + "title": "RSS Feed" + }, + "id": "062cdf6b-b487-4c6d-88eb-3043b25e0102" + }, + { + "type": "external_link", + "value": { + "url": "https://www.nypublicradio.org/diversity-dei-overview/", + "title": "Diversity (DEI)" + }, + "id": "b4cf7e84-4ae3-4bd3-b4e5-36c431577b41" + }, + { + "type": "external_link", + "value": { + "url": "https://www.nypublicradio.org/support/", + "title": "Support Us" + }, + "id": "535ceb58-7a08-47bd-bec9-99543263e9ce" + } + ], + "primary_footer_links": [ + { + "type": "external_link", + "value": { + "url": "https://sponsorship.wnyc.org", + "title": "Advertising" + }, + "id": "8baa479d-b20c-4ee9-993f-7ad2e1e066dc" + }, + { + "type": "cms_page", + "value": { + "page": 144938, + "title": "Contact Us", + "url": "/contact/", + "slug": "contact" + }, + "id": "5b3f8aaa-11eb-42fd-beb2-e1afb5ad1ae5" + }, + { + "type": "external_link", + "value": { + "url": "https://gothamist.com/feed", + "title": "RSS Feed" + }, + "id": "203474f4-2eef-4ef8-b791-eda56b947507" + }, + { + "type": "external_link", + "value": { + "url": "https://www.nypublicradio.org/diversity-dei-overview/", + "title": "Diversity (DEI)" + }, + "id": "7abe9f06-53ba-42a1-a6cd-a338a761e4f1" + }, + { + "type": "external_link", + "value": { + "url": "https://nypublicradio.org/careers/", + "title": "Careers" + }, + "id": "117c369f-66ea-4fee-9f54-bfc6e5611f9e" + } + ], + "secondary_footer_links": [], + "legal_links": [ + { + "type": "external_link", + "value": { + "url": "https://www.wnyc.org/terms", + "title": "Terms Of Use" + }, + "id": "a4063b81-1bb5-4c00-aa37-35814212e9b9" + }, + { + "type": "external_link", + "value": { + "url": "https://www.wnyc.org/privacy", + "title": "Privacy Policy" + }, + "id": "a54908fe-b560-4dc3-a001-349839f9fe62" + }, + { + "type": "external_link", + "value": { + "url": "https://media.wnyc.org/media/resources/2022/May/06/accessibility_policy_5.6.22.pdf", + "title": "Accessibility" + }, + "id": "14da45df-56cf-464a-8890-b21351cac0a4" + } + ], + "copyright_year": "2023", + "property_description": "

Gothamist is a website about New York City news, arts, events and food, brought to you by New York Public Radio.

" +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/news-page.json b/cypress/fixtures/aviary/news-page.json new file mode 100644 index 00000000..9fec936a --- /dev/null +++ b/cypress/fixtures/aviary/news-page.json @@ -0,0 +1,32 @@ +{ + "id": 4, + "meta": { + "first_published_at": "2019-08-09T13:24:40.447281-04:00", + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/", + "slug": "news", + "show_in_menus": true, + "seo_title": "", + "search_description": "", + "parent": { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist" + } + }, + "title": "News", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "social_image": null, + "social_title": "", + "social_text": "", + "show_on_index_listing": true, + "uuid": "bd865ae3-b0df-476e-bd9b-1eac532ebe68", + "url": "https://gothamist.com/news" +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/section-articles.json b/cypress/fixtures/aviary/section-articles.json new file mode 100644 index 00000000..8f3c4c41 --- /dev/null +++ b/cypress/fixtures/aviary/section-articles.json @@ -0,0 +1,2330 @@ +{ + "meta": { + "total_count": 90159 + }, + "items": [ + { + "id": 154808, + "meta": { + "first_published_at": "2023-03-13T06:01:57.066606-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154808/", + "html_url": "http://cms.prod.nypr.digital/news/what-is-the-future-of-housing-in-nyc-ask-mayor-adams-and-other-top-housing-experts/", + "slug": "what-is-the-future-of-housing-in-nyc-ask-mayor-adams-and-other-top-housing-experts" + }, + "title": "What is the future of housing in NYC? Ask Mayor Adams and other top housing experts.", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "bf9cb569-8d75-40eb-bf99-9e9d2cdb3cdf", + "url": "https://gothamist.com/news/what-is-the-future-of-housing-in-nyc-ask-mayor-adams-and-other-top-housing-experts", + "publication_date": "2023-03-13T06:01:57.066606-04:00", + "updated_date": null, + "description": "The WNYC and Gothamist newsroom will host an event with Mayor Eric Adams, Comptroller Brad Lander and other top housing experts to discuss what the future of housing looks like in the five boroughs.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337209, + "title": "GettyImages-514119605.jpg", + "width": 7108, + "height": 4477, + "created_at": "2023-03-10T18:09:12.730223-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 24755294, + "file_hash": "3780b1bd077af813cc308d79535b5683eebda3cf", + "alt": "A birds-eye view of the West Village shows tightly packed brick buildings", + "caption": "The event will feature a conversation with Mayor Eric Adams and a panel discussion with City Comptroller Brad Lander and top housing experts.", + "credit": "Noam Galai / noamgalai.com", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GettyImages-514119605.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 138 + }, + "caption": "", + "image_link": "" + }, + "id": "a04d85a7-66e4-4a60-81bf-e53ab81ee976" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 153020, + "first_name": "Josefa", + "last_name": "Velásquez", + "photo": 334513, + "job_title": "Editor, Economics & Equity", + "biography": "", + "website": "", + "email": "", + "slug": "josefa-velásquez", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "eric adams", + "slug": "eric-adams" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "economy", + "slug": "economy" + }, + { + "name": "Workforce", + "slug": "workforce" + }, + { + "name": "housing", + "slug": "housing" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "new york state", + "slug": "new-york-state" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154806, + "meta": { + "first_published_at": "2023-03-13T05:01:23.290448-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154806/", + "html_url": "http://cms.prod.nypr.digital/news/colored-school-no-4-in-chelsea-moves-closer-to-landmark-status/", + "slug": "colored-school-no-4-in-chelsea-moves-closer-to-landmark-status" + }, + "title": "‘Colored School No. 4’ in Chelsea moves closer to landmark status", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "66ce428c-fd76-4a97-9910-18c704577fe9", + "url": "https://gothamist.com/news/colored-school-no-4-in-chelsea-moves-closer-to-landmark-status", + "publication_date": "2023-03-13T05:01:00-04:00", + "updated_date": null, + "description": "The building figures in a larger push to preserve sites representing the history of Black New Yorkers.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337200, + "title": "Colored School No. 4.jpg", + "width": 3024, + "height": 4032, + "created_at": "2023-03-10T16:20:12.499575-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2162814, + "file_hash": "1f03b02d89907653fb4c1405f37b6fe7f471bb77", + "alt": "Colored School No. 4", + "caption": "The rundown building known as \"Colored School No. 4,\" at 128 W. 17th St. in the Chelsea section of Manhattan, is inching a step closer to receiving landmark status. It was once a bustling, hub of activity for Black New Yorkers gaining education against the backdrop of slavery.", + "credit": "Arun Venugopal / Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Colored_School_No._4.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 125 + }, + "caption": "", + "image_link": "" + }, + "id": "2b4b3b25-e96f-4238-9a38-8b16167ad982" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 81, + "first_name": "Arun", + "last_name": "Venugopal", + "photo": 334514, + "job_title": "Senior Reporter, Race and Justice", + "biography": "Arun Venugopal is a senior reporter for the WNYC and Gothamist Race & Justice Unit who focuses on issues of race and bias in our region. His reporting also tackles the topics of immigration, faith, and inequality. Arun serves as the regular fill-in host of the station's \"U.S. of Anxiety\" program.\r\n\r\nArun was the creator and host of Micropolis, a series about race and identity. He is a contributor to NPR's Morning Edition and All Things Considered. He has appeared on PBS Newshour, On the Media and Studio 360, and has been published in The Guardian, The Wall Street Journal and Salon. He also frequently serves as an emcee and moderator of panel discussions on race, religion, and identity issues and has been a guest host of NPR's \"Fresh Air.\" He lives with his family in Queens.", + "website": "", + "email": "", + "slug": "arun-venugopal", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/arunNYC" + } + ] + } + ], + "tags": [ + { + "name": "Race And Justice Unit", + "slug": "race-and-justice-unit" + }, + { + "name": "black history", + "slug": "black-history" + }, + { + "name": "manhattan", + "slug": "manhattan" + }, + { + "name": "landmark preservation commission", + "slug": "landmark-preservation-commission" + }, + { + "name": "segregation", + "slug": "segregation" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154813, + "meta": { + "first_published_at": "2023-03-12T19:45:01.436253-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154813/", + "html_url": "http://cms.prod.nypr.digital/news/state-closes-nyc-based-bank-as-regulators-seek-to-stem-crisis/", + "slug": "state-closes-nyc-based-bank-as-regulators-seek-to-stem-crisis" + }, + "title": "State closes NYC-based bank as regulators seek to stem crisis", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "ce76cee5-68ec-4c24-a551-c3473790f83c", + "url": "https://gothamist.com/news/state-closes-nyc-based-bank-as-regulators-seek-to-stem-crisis", + "publication_date": "2023-03-12T19:45:00-04:00", + "updated_date": null, + "description": "The closure comes days after a run on Silicon Valley Bank led to the country’s largest bank failure since the 2008 financial crisis.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337218, + "title": "Signature Bank shutterstock do not reuse", + "width": 2496, + "height": 1664, + "created_at": "2023-03-12T19:15:55.890852-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 882736, + "file_hash": "22b5c15d2a88288c9b92c955dc26004bebb979d9", + "alt": "Signature Bank is pictured in New York City.", + "caption": "Signature Bank is pictured in New York City.", + "credit": "PL Gould/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_1064732243.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 129 + }, + "caption": "", + "image_link": "" + }, + "id": "58f4f297-de51-4910-a8af-fefe397dcb32" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 13, + "first_name": "Jake", + "last_name": "Offenhartz", + "photo": 334533, + "job_title": "Reporter", + "biography": "Jake Offenhartz is a general assignment reporter. He covers policing, transportation, local politics, climate change and and all manner of New York City oddities. He lives in Manhattan, and enjoys bikes, pickup basketball, and city beaches.", + "website": "", + "email": "joffenhartz@gothamist.com", + "slug": "jake-offenhartz", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/jangelooff" + } + ] + } + ], + "tags": [ + { + "name": "economy", + "slug": "economy" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154812, + "meta": { + "first_published_at": "2023-03-12T16:19:09.831459-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154812/", + "html_url": "http://cms.prod.nypr.digital/news/pedestrian-plazas-car-free-blocks-coming-to-broadway-between-madison-and-herald-square/", + "slug": "pedestrian-plazas-car-free-blocks-coming-to-broadway-between-madison-and-herald-square" + }, + "title": "Pedestrian plazas, car-free blocks coming to Broadway between Madison and Herald Square", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "21603cc6-e66e-44b6-bd9d-8d7fafda735d", + "url": "https://gothamist.com/news/pedestrian-plazas-car-free-blocks-coming-to-broadway-between-madison-and-herald-square", + "publication_date": "2023-03-12T16:19:09.831459-04:00", + "updated_date": null, + "description": "The cornerstone of the redesign will be a ban on vehicles between 25th and 27th streets.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337216, + "title": "Broadway Vision", + "width": 2000, + "height": 1000, + "created_at": "2023-03-12T16:06:05.790187-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1192649, + "file_hash": "204c7c82c0708d3d71fdeecfaec6626d4f010487", + "alt": "Rendering of Greeley Square after capital construction work is completed.", + "caption": "Rendering of Greeley Square after capital construction work is completed.", + "credit": "Courtesy “New” New York Panel", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/2023-03-12-broadway-vision-2_original.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 129 + }, + "caption": "", + "image_link": "" + }, + "id": "6fe42187-d28e-4962-a91c-3d6bf0647a84" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 13, + "first_name": "Jake", + "last_name": "Offenhartz", + "photo": 334533, + "job_title": "Reporter", + "biography": "Jake Offenhartz is a general assignment reporter. He covers policing, transportation, local politics, climate change and and all manner of New York City oddities. He lives in Manhattan, and enjoys bikes, pickup basketball, and city beaches.", + "website": "", + "email": "joffenhartz@gothamist.com", + "slug": "jake-offenhartz", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/jangelooff" + } + ] + } + ], + "tags": [ + { + "name": "transportation", + "slug": "transportation" + }, + { + "name": "manhattan", + "slug": "manhattan" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154811, + "meta": { + "first_published_at": "2023-03-12T10:15:57.119354-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154811/", + "html_url": "http://cms.prod.nypr.digital/news/madison-square-garden-sues-ny-state-liquor-authority-as-agency-mulls-booze-ban/", + "slug": "madison-square-garden-sues-ny-state-liquor-authority-as-agency-mulls-booze-ban" + }, + "title": "Madison Square Garden sues NY State Liquor Authority as agency mulls booze ban", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "befd9186-fbc9-41b5-b007-c412b1441223", + "url": "https://gothamist.com/news/madison-square-garden-sues-ny-state-liquor-authority-as-agency-mulls-booze-ban", + "publication_date": "2023-03-12T10:15:00-04:00", + "updated_date": null, + "description": "The agency threatened to ban alcohol sales at Madison Square Garden and other venues for Dolan’s controversial surveillance policy.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 336320, + "title": "shutterstock_1806329554.jpg", + "width": 4242, + "height": 2828, + "created_at": "2023-01-25T13:56:34.323444-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 9809547, + "file_hash": "a437f8f84268b2f82628c7b954de43fdfbc5833d", + "alt": "Madison Square Garden photographed from the outside with a yellow taxi in front.", + "caption": "", + "credit": "Sergii Figurnyi / Shutterstock", + "credit_link": "https://enterprise.shutterstock.com/image-photo/new-york-city-usa-march-15-1806329554", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_1806329554.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 141 + }, + "caption": "", + "image_link": "" + }, + "id": "73e09a3a-4546-49dd-bde3-4a9fab78f319" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 153721, + "first_name": "Bahar", + "last_name": "Ostadan", + "photo": 335319, + "job_title": "NYC Accountability Reporter", + "biography": "Bahar Ostadan is a reporter on the NYC Accountability desk interested in people and places that are often misrepresented in the news. She's reported on biker gangs in Staten Island and abortion access networks in rural Kentucky.", + "website": "", + "email": "bostadan@wnyc.org", + "slug": "bahar-ostadan", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/BaharOstadan" + } + ] + } + ], + "tags": [ + { + "name": "manhattan", + "slug": "manhattan" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154800, + "meta": { + "first_published_at": "2023-03-12T07:01:00.206137-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154800/", + "html_url": "http://cms.prod.nypr.digital/news/hello-sunshine-nycs-sunsets-are-about-to-start-at-7-pm-or-later/", + "slug": "hello-sunshine-nycs-sunsets-are-about-to-start-at-7-pm-or-later" + }, + "title": "Hello, sunshine! NYC's sunsets are about to start at 7 p.m. or later.", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "87113504-6cf2-46fa-a37b-de4df0fefcd9", + "url": "https://gothamist.com/news/hello-sunshine-nycs-sunsets-are-about-to-start-at-7-pm-or-later", + "publication_date": "2023-03-12T07:01:00.206137-04:00", + "updated_date": null, + "description": "Some New Yorkers are ready for later sunsets.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337199, + "title": "NYC Sunset", + "width": 5563, + "height": 3707, + "created_at": "2023-03-10T14:53:38.412947-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 11259299, + "file_hash": "00810289dd0c9e5288223a92aa57d1520f33e7ef", + "alt": "the sun shines behind the brooklyn bridge", + "caption": "The sun sets over the Brooklyn Bridge.", + "credit": "Mihai_Andritoiu / Shutterstock", + "credit_link": "https://enterprise.shutterstock.com/image-photo/brooklyn-bridge-lower-manhattan-skyline-sunset-288748241", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_288748241.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 141 + }, + "caption": "", + "image_link": "" + }, + "id": "aceb1872-12cd-4850-9d13-dd77d2ad3b12" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151434, + "first_name": "Catalina", + "last_name": "Gonella", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "catalina-gonella", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "sunset", + "slug": "sunset" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154810, + "meta": { + "first_published_at": "2023-03-11T18:33:23.328318-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154810/", + "html_url": "http://cms.prod.nypr.digital/news/over-100-nyc-protesters-rally-against-iranian-government/", + "slug": "over-100-nyc-protesters-rally-against-iranian-government" + }, + "title": "Over 100 NYC protesters rally against Iranian government", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "3e6fd751-d06d-4ca0-9d78-95f8e24d38b2", + "url": "https://gothamist.com/news/over-100-nyc-protesters-rally-against-iranian-government", + "publication_date": "2023-03-11T18:33:23.328318-05:00", + "updated_date": null, + "description": "They called on local, state and national leaders to exert pressure on the Iranian government.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337215, + "title": "IMG_8354.jpg", + "width": 4032, + "height": 3024, + "created_at": "2023-03-11T18:26:18.452513-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3751197, + "file_hash": "018c937eef0a8d5a1599ffef9e8059356cd459ba", + "alt": "Protesters at Foley Square.", + "caption": "More than 100 protesters gathered in Downtown Manhattan on Saturday to call for change in Iran.", + "credit": "Arya Sundaram/Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/IMG_8354.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 135 + }, + "caption": "", + "image_link": "" + }, + "id": "a0e11904-ba1c-4682-a272-26b2e7bee686" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 154600, + "first_name": "Arya", + "last_name": "Sundaram", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "arya-sundaram", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "manhattan", + "slug": "manhattan" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154809, + "meta": { + "first_published_at": "2023-03-11T17:59:53.041924-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154809/", + "html_url": "http://cms.prod.nypr.digital/news/mta-unveils-new-nyc-subway-cars-on-the-a-line/", + "slug": "mta-unveils-new-nyc-subway-cars-on-the-a-line" + }, + "title": "MTA unveils new NYC subway cars on the A line", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "75ac102e-1d80-4717-b40c-e443cb03f4c5", + "url": "https://gothamist.com/news/mta-unveils-new-nyc-subway-cars-on-the-a-line", + "publication_date": "2023-03-11T17:59:53.041924-05:00", + "updated_date": null, + "description": "The new train cars include flip-up seating for riders with disabilities and wider door openings for quicker boarding.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337214, + "title": "52739291818_611dda35f8_o.jpg", + "width": 4525, + "height": 3197, + "created_at": "2023-03-11T17:56:46.625825-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3191000, + "file_hash": "9a7d600cbd0443958577c98262c80fb90b14b174", + "alt": "An R211 train.", + "caption": "The new R211 trains include security cameras, flip-up seating, and wider door openings.", + "credit": "Metropolitan Transit Authority", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/52739291818_611dda35f8_o.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 135 + }, + "caption": "", + "image_link": "" + }, + "id": "78d6649f-ac11-4091-be48-72c3230fc194" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 154600, + "first_name": "Arya", + "last_name": "Sundaram", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "arya-sundaram", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "MTA", + "slug": "mta" + }, + { + "name": "transportation", + "slug": "transportation" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154805, + "meta": { + "first_published_at": "2023-03-11T11:00:55.380632-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154805/", + "html_url": "http://cms.prod.nypr.digital/news/queens-councilmember-calls-street-vendors-a-public-safety-hazard/", + "slug": "queens-councilmember-calls-street-vendors-a-public-safety-hazard" + }, + "title": "Queens councilmember calls street vendors a public safety hazard", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "3175b8a0-4501-4bfd-b157-a419d6d69c22", + "url": "https://gothamist.com/news/queens-councilmember-calls-street-vendors-a-public-safety-hazard", + "publication_date": "2023-03-11T11:00:55.380632-05:00", + "updated_date": null, + "description": "Councilmember Sandra Ung has started a petition to increase enforcement in Downtown Flushing.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337206, + "title": "IMG_0620.jpg", + "width": 4032, + "height": 3024, + "created_at": "2023-03-10T17:12:57.680356-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1162446, + "file_hash": "e95361a0271dcf029c5fb952c42e510538832c50", + "alt": "Vendors outside the Long Island Rail Road in downtown Flushing.", + "caption": "Vendors outside the Long Island Rail Road in downtown Flushing.", + "credit": "Isidoro Rodriguez / Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/IMG_0620.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 128 + }, + "caption": "", + "image_link": "" + }, + "id": "37ef0523-358b-4a0c-bb45-86a2926c230e" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151636, + "first_name": "Isidoro", + "last_name": "Rodriguez", + "job_title": "Public Safety Reporter", + "biography": "Isidoro Rodriguez reports on safety and policing in New York City. Prior to joining Gothamist, he was deputy editor of The Crime Report at the Center on Media, Crime and Justice at the John Jay College of Criminal Justice in New York.", + "website": "", + "email": "", + "slug": "isidoro-rodriguez", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "City Council", + "slug": "city-council" + }, + { + "name": "street vendors", + "slug": "street-vendors" + }, + { + "name": "queens", + "slug": "queens" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154807, + "meta": { + "first_published_at": "2023-03-11T09:01:33.452567-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154807/", + "html_url": "http://cms.prod.nypr.digital/news/one-queens-activist-resorts-to-a-hunger-strike-in-long-running-fight-over-a-city-building/", + "slug": "one-queens-activist-resorts-to-a-hunger-strike-in-long-running-fight-over-a-city-building" + }, + "title": "One Queens activist resorts to a hunger strike in long-running fight over a city building", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "525f37ec-f37c-47a0-9235-6de73aa315dd", + "url": "https://gothamist.com/news/one-queens-activist-resorts-to-a-hunger-strike-in-long-running-fight-over-a-city-building", + "publication_date": "2023-03-11T09:01:33.452567-05:00", + "updated_date": null, + "description": "Lashawn \"Suga Ray\" Marston, an artist and member of the Western QueensCommunity Land Trust, says he has not eaten since his strike began on Feb. 28.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337208, + "title": "Screenshot 2023-03-10 at 5.25.41 PM.png", + "width": 902, + "height": 708, + "created_at": "2023-03-10T17:32:52.825884-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1289952, + "file_hash": "ccabe7139368e9bcb2ccfcd2857b8c9f70d674d0", + "alt": "A rendering of a potential rooftop garden at a city-owned building in Queens.", + "caption": "A rendering of a potential rooftop garden at a city-owned building in Queens. Activists say that's one use the building could feature if turned over to the community.", + "credit": "Bloustein School of Planning and Public Policy, Rutgers University, on behalf of the the Western Queens Community Land Trust", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screenshot_2023-03-10_at_5.25.41_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 123 + }, + "caption": "", + "image_link": "" + }, + "id": "4855a5b5-949a-4b1c-bbf0-4f5e978aa52b" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151433, + "first_name": "Michelle", + "last_name": "Bocanegra", + "photo": 334516, + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "michelle-bocanegra", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "eric adams", + "slug": "eric-adams" + }, + { + "name": "real estate", + "slug": "real-estate" + }, + { + "name": "queens", + "slug": "queens" + }, + { + "name": "Amazon deal", + "slug": "amazon-deal" + }, + { + "name": "land use", + "slug": "land-use" + }, + { + "name": "hunger strike", + "slug": "hunger-strike" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154804, + "meta": { + "first_published_at": "2023-03-10T17:20:50.261145-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154804/", + "html_url": "http://cms.prod.nypr.digital/news/real-estate-exec-pleads-guilty-to-kickback-scheme-of-corrupt-homeless-services-boss/", + "slug": "real-estate-exec-pleads-guilty-to-kickback-scheme-of-corrupt-homeless-services-boss" + }, + "title": "Real estate exec pleads guilty to kickback scheme of corrupt homeless services boss", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "a58e8e16-387e-4309-8f8e-10d37b195d5c", + "url": "https://gothamist.com/news/real-estate-exec-pleads-guilty-to-kickback-scheme-of-corrupt-homeless-services-boss", + "publication_date": "2023-03-10T17:20:50.261145-05:00", + "updated_date": null, + "description": "Real estate executive Sheina Levin admitted to paying hundreds of thousands of dollars to disgraced former nonprofit CEO Victor Rivera in exchange for his organization leasing buildings owned by her company.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337202, + "title": "GettyImages-1448950009.jpg", + "width": 5472, + "height": 3648, + "created_at": "2023-03-10T16:58:19.931760-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 16501506, + "file_hash": "6c6d2e6beb27f3dc8773f35de0c112990401b1bf", + "alt": "A blue tent and a shopping cart at the base of the Manhattan Bridge bridge ahead of a homeless encampment sweep.", + "caption": "Federal prosecutors in Manhattan said Sheina Levin paid the ex-CEO of a homeless shelter provider nearly $700,000 to rent out a Bronx shelter building owned by her company.", + "credit": "Andrew Lichtenstein/Corbis via Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GettyImages-1448950009.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 138 + }, + "caption": "", + "image_link": "" + }, + "id": "263d0731-e062-40d1-8517-991c1dc4ebea" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 212, + "first_name": "David", + "last_name": "Brand", + "job_title": "Gothamist Editor", + "biography": "", + "website": "", + "email": "", + "slug": "david-brand", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "homelessness", + "slug": "homelessness" + }, + { + "name": "bronx", + "slug": "bronx" + }, + { + "name": "housing", + "slug": "housing" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154802, + "meta": { + "first_published_at": "2023-03-10T16:38:50.339360-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154802/", + "html_url": "http://cms.prod.nypr.digital/news/adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event/", + "slug": "adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event" + }, + "title": "Mayor Adams praises new probation chief's decision to invite Cardi B to academy event", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "96467a16-3e35-45fb-b6eb-f5ebbded09e8", + "url": "https://gothamist.com/news/adams-praises-new-probation-chiefs-decision-to-invite-cardi-b-to-academy-event", + "publication_date": "2023-03-10T16:38:00-05:00", + "updated_date": null, + "description": "Juanita Holmes previously served as chief of training for the department.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328281, + "title": "Screen Shot 2022-01-01 at 2.47.05 PM.png", + "width": 1932, + "height": 1266, + "created_at": "2022-01-01T14:50:16.439492-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3131205, + "file_hash": "aca6e2d00e75f2007203afcbb5a87b09b3bcef5f", + "alt": "Juanita Holmes, wearing a mask, holds a picture at a press conference last year.", + "caption": "Juanita Holmes, wearing a mask, holds a picture at a press conference last year.", + "credit": "Mayor's Office / Twitter", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2022-01-01_at_2.47.05_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 78 + }, + "caption": "", + "image_link": "" + }, + "id": "677b5483-9982-42ef-a94b-5ef3b515b029" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151636, + "first_name": "Isidoro", + "last_name": "Rodriguez", + "job_title": "Public Safety Reporter", + "biography": "Isidoro Rodriguez reports on safety and policing in New York City. Prior to joining Gothamist, he was deputy editor of The Crime Report at the Center on Media, Crime and Justice at the John Jay College of Criminal Justice in New York.", + "website": "", + "email": "", + "slug": "isidoro-rodriguez", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "cardi b", + "slug": "cardi-b" + }, + { + "name": "juanita holmes", + "slug": "juanita-holmes" + }, + { + "name": "probation department", + "slug": "probation-department" + }, + { + "name": "nypd", + "slug": "nypd" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154801, + "meta": { + "first_published_at": "2023-03-10T15:32:44.362908-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154801/", + "html_url": "http://cms.prod.nypr.digital/news/tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions/", + "slug": "tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions" + }, + "title": "Tambourine-shaking ex-NYPD cop convicted for Jan. 6 actions", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "e856d4f3-9a6b-4f33-9aeb-366c69ce8f30", + "url": "https://gothamist.com/news/tambourine-shaking-ex-nypd-cop-convicted-for-jan-6-actions", + "publication_date": "2023-03-10T15:32:44.362908-05:00", + "updated_date": null, + "description": "Two NYPD cops have been convicted for rioting at the Capitol.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 318246, + "title": "Screen Shot 2021-03-23 at 2.18.13 PM.png", + "width": 678, + "height": 626, + "created_at": "2021-03-23T14:19:03.655578-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 665083, + "file_hash": "0b5440b6a5e054d5c15defc5fdefa40b4dedf83c", + "alt": "A woman identified as Sara Carpenter shaking a tambourine inside the U.S. Capitol", + "caption": "A woman identified as Sara Carpenter shaking a tambourine inside the U.S. Capitol", + "credit": "DOJ", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2021-03-23_at_2.18.13_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 28 + }, + "caption": "", + "image_link": "" + }, + "id": "26ee92d0-9f61-47ed-b9cb-195d9c59edfd" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 93, + "first_name": "Matt", + "last_name": "Katz", + "photo": 334524, + "job_title": "Reporter", + "biography": "Matt Katz reports on public safety, focusing on decarceration and the equitable enforcement of laws. He has investigated abuse in ICE detention and covered former N.J. Gov. Chris Christie, sharing a Peabody Award for coverage of Bridgegate and writing a book, \"American Governor: Chris Christie's Bridge to Redemption.\" Once upon a time, he wrote a syndicated dating column.", + "website": "", + "email": "mkatz@wnyc.org", + "slug": "matt-katz", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/mattkatz00" + } + ] + } + ], + "tags": [ + { + "name": "federal court", + "slug": "federal-court" + }, + { + "name": "capitol riots", + "slug": "capitol-riots" + }, + { + "name": "nypd", + "slug": "nypd" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154799, + "meta": { + "first_published_at": "2023-03-10T15:00:19.746957-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154799/", + "html_url": "http://cms.prod.nypr.digital/news/with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike/", + "slug": "with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike" + }, + "title": "With 94% vote, Rutgers faculty tells union leaders they can call a strike", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "2a52c86d-1030-4069-9b3c-2617f8b93b65", + "url": "https://gothamist.com/news/with-90-vote-rutgers-faculty-tells-union-leaders-they-can-call-a-strike", + "publication_date": "2023-03-10T15:00:00-05:00", + "updated_date": null, + "description": "It would be the first faculty walkout in the school’s 256-year history.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337198, + "title": "shutterstock_1427628818.jpg", + "width": 6000, + "height": 4000, + "created_at": "2023-03-10T13:58:53.740976-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 12059531, + "file_hash": "8281179c7712f4fa1cd1791eb02e1a77eb807348", + "alt": "The unions representing Rutgers faculty members say they're headed back to the negotiating table for a contract, but they're now authorized to call a strike at any time.", + "caption": "The unions representing Rutgers faculty members say they're headed back to the negotiating table for a contract, but they're now authorized to call a strike at any time.", + "credit": "Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_1427628818.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 134 + }, + "caption": "", + "image_link": "" + }, + "id": "6541164e-f168-44b5-8779-1948ce57797f" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 142982, + "first_name": "Nancy", + "last_name": "Solomon", + "job_title": "reporter", + "biography": "", + "website": "", + "email": "", + "slug": "nancy-solomon-wnyc", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "Workforce", + "slug": "workforce" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new jersey", + "slug": "new-jersey" + }, + { + "name": "education", + "slug": "education" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154798, + "meta": { + "first_published_at": "2023-03-10T14:22:09.573329-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154798/", + "html_url": "http://cms.prod.nypr.digital/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview/", + "slug": "ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview" + }, + "title": "NY Democratic Party chair blasts progressives in fiery WNYC interview", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "e96833a5-f6e7-4bbc-a1b8-860e461f5a7b", + "url": "https://gothamist.com/news/ny-democratic-party-chair-blasts-progressives-in-fiery-wnyc-interview", + "publication_date": "2023-03-10T14:22:00-05:00", + "updated_date": "2023-03-10T14:37:00-05:00", + "description": "Jacobs appeared on \"The Brian Lehrer Show\" to respond to criticism over his leadership.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337197, + "title": "Jay Jacobs [Shutterstock]", + "width": 5554, + "height": 3703, + "created_at": "2023-03-10T13:43:49.980598-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2688890, + "file_hash": "f202f62762f17aa7a11ea4021151f0a4213dd676", + "alt": "Jay Jacobs, chair of the New York State Democratic Committee, speaks during the New York State Democratic Convention in New York. Jacobs has faced criticism in the last month for not supporting fellow Democrats in their elections.", + "caption": "Jay Jacobs, chair of the New York State Democratic Committee, speaks during the New York State Democratic Convention in New York. Jacobs has faced criticism in the last month for not supporting fellow Democrats in their elections.", + "credit": "Seth Wenig/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_12811418d_1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 82 + }, + "caption": "", + "image_link": "" + }, + "id": "8051d4cd-d52d-4459-ab48-ae642f24b5d8" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 31, + "first_name": "Brigid", + "last_name": "Bergin", + "photo": 334518, + "job_title": "Senior Reporter - People and Power", + "biography": "Brigid Bergin is an award-winning senior reporter on the People and Power desk. Fiercely committed to telling stories that help people engage and support democracy for more than a decade, her coverage has led to multiple appearances on NPR, MSNBC and the Black News Network. Brigid's reporting in 2017 included some of the first coverage of a political upstart now known as AOC. In April 2016, she broke the news of a voter purge in Brooklyn just days before New York’s presidential primary, triggering city, state and federal investigations. Brigid also guest hosts The Brian Lehrer Show and The Takeaway. She graduated from the University at Albany and the CUNY Newmark School of Journalism. Follow her on Twitter @brigidbergin", + "website": "", + "email": "bbergin@wnyc.org", + "slug": "brigid-bergin", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/brigidbergin" + } + ] + } + ], + "tags": [ + { + "name": "news", + "slug": "news" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new york state", + "slug": "new-york-state" + }, + { + "name": "Democratic party", + "slug": "democratic-party" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154796, + "meta": { + "first_published_at": "2023-03-10T13:11:24.478149-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154796/", + "html_url": "http://cms.prod.nypr.digital/news/extra-extra-meet-connecticuts-answer-to-pizza-rat/", + "slug": "extra-extra-meet-connecticuts-answer-to-pizza-rat" + }, + "title": "Extra Extra: Meet Connecticut's answer to Pizza Rat", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "719d1ae0-9fbe-48c9-a5d1-5b918ed41ffe", + "url": "https://gothamist.com/news/extra-extra-meet-connecticuts-answer-to-pizza-rat", + "publication_date": "2023-03-10T13:11:24.478149-05:00", + "updated_date": null, + "description": "Because it's Pizza Eagle, here are your end-of-day links: Anti-terrorism bollards are great for protecting bike lanes, Malachy McCourt is still rockin', the Sweaters of Inisherin and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337194, + "title": "eagle.jpg", + "width": 2048, + "height": 1540, + "created_at": "2023-03-10T13:06:22.064815-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 466290, + "file_hash": "3ec2a7b85d696da4a1d4e301c9809282d62b3746", + "alt": "a bald eagle in a tree", + "caption": "", + "credit": "Keith Michael", + "credit_link": "https://flickr.com/photos/keithmichaelnyc/39604706041/in/photolist-23kJtik-KyGG2Y-yiTUqw-Ma7pwg-dHUTrn-DjjPRv-qkpxPE-dL1Wc4-9vJKhp-dNjkqw-dvKvwu-dJg1TM-91vnAA-br9SQo-9TdPsK-aCMwoB-e6W1p3-KFzpxT-C2EPUB-m5pKg2-fbTJWj-e2iZfj-bpFjG9-bD3yeP-du57zX-2ng8Jbn-5oKDjF-2ntzfyA-2kPAi1L-2nkeKLK-RKHVhz-2nTvdN6-feF81i-81Xf6P-5nEoGn-JaYjaL-2og4kn5-QzRSCC-4m5gzG-2mpk17z-2mVT6cM-ecyGP4-gdixpw-5mFB2a-2ki5QVh-iJRv1-9n6gTC-7jF2W3-m29iAp-7G1eNo", + "file": "https://cdn.cms.prod.nypr.digital/original_images/eagle.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "40abd414-9078-401b-9a6d-6b2df45812fb" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "extra extra", + "slug": "extra-extra" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154794, + "meta": { + "first_published_at": "2023-03-10T10:00:53.456795-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154794/", + "html_url": "http://cms.prod.nypr.digital/news/early-addition-a-coyote-was-walkin-around-queens-this-week/", + "slug": "early-addition-a-coyote-was-walkin-around-queens-this-week" + }, + "title": "Early Addition: A coyote was walkin' around Queens this week", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "ffa1cf45-9fb7-4c54-b7fd-04eba201d287", + "url": "https://gothamist.com/news/early-addition-a-coyote-was-walkin-around-queens-this-week", + "publication_date": "2023-03-10T10:00:53.456795-05:00", + "updated_date": null, + "description": "Because the canine has now been relocated to Long Island, here are your early links: Retired NYPD officer allegedly threatened teens with a gun, new Biggie mural unveiled, don't drink the Borg and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337191, + "title": "Screen Shot 2023-03-10 at 8.30.47 AM.png", + "width": 1460, + "height": 1090, + "created_at": "2023-03-10T08:33:06.024162-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1845115, + "file_hash": "361491cbb74faccabcc0808f1a9155a5d31ef019", + "alt": "a coyote seen walking on a Queens sidewalk", + "caption": "", + "credit": "NYPD105Pct/Twitter", + "credit_link": "https://twitter.com/NYPD105Pct/status/1633462901775417345", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2023-03-10_at_8.30.47_AM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "60fe77e1-4ae3-46c0-8f8d-e819b3935ef0" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "early addition", + "slug": "early-addition" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154795, + "meta": { + "first_published_at": "2023-03-10T08:54:42.966790-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154795/", + "html_url": "http://cms.prod.nypr.digital/news/a-raccoon-is-eating-lasagna-on-my-porch-and-other-odd-nyc-complaints-after-20-years-of-311/", + "slug": "a-raccoon-is-eating-lasagna-on-my-porch-and-other-odd-nyc-complaints-after-20-years-of-311" + }, + "title": "‘A raccoon is eating lasagna on my porch’ and other odd NYC complaints after 20 years of 311", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "2d99d0a5-b481-4379-92c6-4b9da2749b7f", + "url": "https://gothamist.com/news/a-raccoon-is-eating-lasagna-on-my-porch-and-other-odd-nyc-complaints-after-20-years-of-311", + "publication_date": "2023-03-10T08:54:00-05:00", + "updated_date": "2023-03-10T10:41:00-05:00", + "description": "Over the past two decades, 311 has fielded more than 525 million questions and concerns from New Yorkers. Some of the requests were weird.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337192, + "title": "311 calls.PNG", + "width": 1005, + "height": 597, + "created_at": "2023-03-10T08:51:42.070975-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 586274, + "file_hash": "68f2b915bd73efcde132bf3cc652eaf0cdca5ad1", + "alt": "A chart depicting the biggest volume calls to 311 over the past 20 years.", + "caption": "A chart depicting the biggest volume calls to 311 over the past 20 years.", + "credit": "New York City Hall", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/311_calls.PNG", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 123 + }, + "caption": "", + "image_link": "" + }, + "id": "4b7b4bc6-feae-4592-aee8-008fa0636dea" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 40, + "first_name": "Gwynne", + "last_name": "Hogan", + "photo": 334519, + "job_title": "Reporter", + "biography": "Gwynne Hogan is a general assignment reporter who’s worked at WNYC and Gothamist since 2017. Before joining WNYC, she did stints at the New York Post and the late DNAinfo New York and studied at the CUNY Newmark Graduate School of Journalism, graduating with the class of 2014. She won a Gracie award for her coverage of the COVID-19 pandemic and a Society of Professional Journalists award for her reporting on one Rockaway school’s efforts to avoid suspending students. Follow her on Twitter @GwynneFitz or email her at ghogan@wnyc.org.", + "website": "", + "email": "ghogan@wnyc.org", + "slug": "gwynne-hogan", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/GwynneFitz" + } + ] + } + ], + "tags": [ + { + "name": "311 call center", + "slug": "311-call-center" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "raccoon", + "slug": "raccoon" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154788, + "meta": { + "first_published_at": "2023-03-10T06:01:54.458480-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154788/", + "html_url": "http://cms.prod.nypr.digital/news/nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life/", + "slug": "nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life" + }, + "title": "NYC jail captain thought detainee was ‘making a joke’ when he threatened to take his life", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "8428b6f5-bde8-4872-ba2b-131702c9d507", + "url": "https://gothamist.com/news/nyc-jail-captain-thought-detainee-was-making-a-joke-when-he-threatened-to-take-his-life", + "publication_date": "2023-03-10T06:01:00-05:00", + "updated_date": null, + "description": "Rebecca Hillman took the stand in her own homicide trial on Thursday.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 319227, + "title": "Rebecca Hillman", + "width": 4032, + "height": 3024, + "created_at": "2021-04-26T20:18:53.071857-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 584053, + "file_hash": "f5a6c5321e0e3db6b72e9568ec26addcfd661582", + "alt": "Rebecca Hillman, wearing sunglasses, a hooded jacket, tries to conceal herself as she is led into court", + "caption": "Captain Rebecca Hillman being escorted to her arraignment.", + "credit": "George Joseph / WNYC", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Image_from_iOS_116.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "8234019c-1e38-4f92-81e6-f8e553fd0cb6" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151868, + "first_name": "Samantha", + "last_name": "Max", + "photo": 334517, + "job_title": "Public Safety Reporter", + "biography": "Samantha reports on whether New Yorkers feel safe and whether the institutions that are supposed to protect them are working. Before coming to WNYC/Gothamist, she spent three years covering the criminal justice system in Tennessee for Nashville Public Radio. Her reporting on Nashville's police department received multiple awards, including the Daniel Schorr Journalism Prize. Samantha was also part of the inaugural class of Report for America, a service journalism program that sends up-and-coming reporters to local newsrooms across the country. She is a Northwestern University grad, a Baltimore native and fluent in Spanish.", + "website": "", + "email": "", + "slug": "samantha-max", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "witness", + "slug": "witness" + }, + { + "name": "department of correction", + "slug": "department-of-correction" + }, + { + "name": "HOMICIDE", + "slug": "homicide" + }, + { + "name": "trial", + "slug": "trial" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154793, + "meta": { + "first_published_at": "2023-03-09T20:20:18.391497-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154793/", + "html_url": "http://cms.prod.nypr.digital/news/cop-kills-dog-after-being-attacked-during-staten-island-call-nypd/", + "slug": "cop-kills-dog-after-being-attacked-during-staten-island-call-nypd" + }, + "title": "Cop kills dog after being attacked during Staten Island call: NYPD", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "8ee60dfb-b570-4af2-a72b-4d1fc7d5a8fe", + "url": "https://gothamist.com/news/cop-kills-dog-after-being-attacked-during-staten-island-call-nypd", + "publication_date": "2023-03-09T20:20:18.391497-05:00", + "updated_date": null, + "description": "Police say a German Shepherd lunged at the officer, biting him on the hand and leg.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 336956, + "title": "shutterstock_2057747654.jpg", + "width": 3593, + "height": 2695, + "created_at": "2023-02-27T14:44:20.561487-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 6728491, + "file_hash": "d1480546ad761add726ef7d6df377519e27e7058", + "alt": "Close up of the badge on the side of a New York police department patrol car.", + "caption": "Close up of the badge on the side of a New York police department patrol car.", + "credit": "Ceri Breeze / Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_2057747654.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 128 + }, + "caption": "", + "image_link": "" + }, + "id": "bd1ef23d-bcd6-445e-bdb0-6683bc5a9b53" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151434, + "first_name": "Catalina", + "last_name": "Gonella", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "catalina-gonella", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "staten island", + "slug": "staten-island" + }, + { + "name": "public safety", + "slug": "public-safety" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/section-more.json b/cypress/fixtures/aviary/section-more.json new file mode 100644 index 00000000..d958eb21 --- /dev/null +++ b/cypress/fixtures/aviary/section-more.json @@ -0,0 +1,1194 @@ +{ + "meta": { + "total_count": 90159 + }, + "items": [ + { + "id": 154791, + "meta": { + "first_published_at": "2023-03-09T19:35:44.885479-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154791/", + "html_url": "http://cms.prod.nypr.digital/news/black-activists-in-ny-duel-over-proposed-bans-on-menthol-cigarette-sales/", + "slug": "black-activists-in-ny-duel-over-proposed-bans-on-menthol-cigarette-sales" + }, + "title": "Black activists in NY duel over proposed bans on menthol cigarette sales", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "acd4845e-4c8c-4c2e-96a3-a223824f95b6", + "url": "https://gothamist.com/news/black-activists-in-ny-duel-over-proposed-bans-on-menthol-cigarette-sales", + "publication_date": "2023-03-09T19:35:44.885479-05:00", + "updated_date": null, + "description": "Some worry the bans will mean more encounters with cops. Others decry the flavored cigarettes' deadly toll on Black people.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337180, + "title": "shutterstock_editorial_13437417a.jpg DO NOT REUSE", + "width": 3328, + "height": 2218, + "created_at": "2023-03-09T17:53:21.471291-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1358302, + "file_hash": "adaea39cfd4bd84fe8c467d7bf803194b039d010", + "alt": "Menthol cigarettes", + "caption": "Menthol-flavored cigarettes would be banned under proposals pending in the State Legislature and New York City Council", + "credit": "Jeff Chiu/AP/Shutterstock", + "credit_link": "https://enterprise.shutterstock.com/editorial/image-editorial/menthol-cigarettes-other-tobacco-products-displayed-store-13437417a", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_13437417a.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 125 + }, + "caption": "", + "image_link": "" + }, + "id": "8e4eda57-eaf9-47b9-9dcf-f69739871f97" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 154600, + "first_name": "Arya", + "last_name": "Sundaram", + "job_title": "Reporter", + "biography": "", + "website": "", + "email": "", + "slug": "arya-sundaram", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "menthol cigarettes", + "slug": "menthol-cigarettes" + }, + { + "name": "lung cancer", + "slug": "lung-cancer" + }, + { + "name": "Race And Justice Unit", + "slug": "race-and-justice-unit" + }, + { + "name": "Kathy Hochul", + "slug": "kathy-hochul" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154792, + "meta": { + "first_published_at": "2023-03-09T18:49:29.999520-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154792/", + "html_url": "http://cms.prod.nypr.digital/news/penn-station-redevelopment-isnt-dead-yet-gov-hochul-says/", + "slug": "penn-station-redevelopment-isnt-dead-yet-gov-hochul-says" + }, + "title": "Penn Station redevelopment isn’t dead yet, Gov. Hochul says", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "2d8fa30e-1971-434d-821f-8749274e4e4e", + "url": "https://gothamist.com/news/penn-station-redevelopment-isnt-dead-yet-gov-hochul-says", + "publication_date": "2023-03-09T18:49:29.999520-05:00", + "updated_date": null, + "description": "On WNYC, the Democratic governor declined to give up on the Penn Station project, even though Vornado has paused its involvement.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337183, + "title": "Hochul Getty do not reuse", + "width": 6635, + "height": 4425, + "created_at": "2023-03-09T18:37:06.424963-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 10635415, + "file_hash": "6a5fa86a602a66d8539db828cd2d488793fc66c8", + "alt": "Gov. Kathy Hochul speaks during a press event on Long Island.", + "caption": "Gov. Kathy Hochul speaks during a press event on Long Island.", + "credit": "Steve Pfost/Newsday RM via Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GettyImages-1472110383.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 129 + }, + "caption": "", + "image_link": "" + }, + "id": "97637fed-e9d3-4465-a816-fbdf0f52f604" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 171, + "first_name": "Jon", + "last_name": "Campbell", + "photo": 328437, + "job_title": "Reporter", + "biography": "Jon Campbell covers the New York State Capitol for WNYC and Gothamist. Prior to that, he covered the Capitol for more than a decade for the USA TODAY Network. He has twice earned the Walter T. Brown Memorial Award, an honor given annually by the Legislative Correspondents Association alumni for outstanding state government coverage. Jon grew up in the Buffalo area and graduated from the University at Albany.", + "website": "", + "email": "jcampbell@wnyc.org", + "slug": "jon-campbell", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/JonCampbellNY" + } + ] + } + ], + "tags": [ + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "new york state", + "slug": "new-york-state" + }, + { + "name": "Kathy Hochul", + "slug": "kathy-hochul" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154790, + "meta": { + "first_published_at": "2023-03-09T17:59:28.702332-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154790/", + "html_url": "http://cms.prod.nypr.digital/news/nypd-arrests-man-suspected-of-robbing-4-bodegas-killing-1/", + "slug": "nypd-arrests-man-suspected-of-robbing-4-bodegas-killing-1" + }, + "title": "NYPD arrests man suspected of robbing 4 bodegas, killing 1", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "c5b157ae-6ec9-4293-bd81-fe661cf70215", + "url": "https://gothamist.com/news/nypd-arrests-man-suspected-of-robbing-4-bodegas-killing-1", + "publication_date": "2023-03-09T17:59:00-05:00", + "updated_date": null, + "description": "The NYPD announced the arrest of 39-year-old Kimond Cyrus, accusing him of robbing four bodegas in Brooklyn and Manhattan, killing an employee in the process.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 334121, + "title": "shutterstock_60781090.jpg", + "width": 3152, + "height": 2364, + "created_at": "2022-09-24T12:29:31.492035-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1307329, + "file_hash": "cbbfdd617e322027ad7852be6ad73394000fca37", + "alt": "Police tape at a crime scene", + "caption": "Police are investigating an incident in which a woman was killed by a hit-and-run driver early Saturday morning in Queens.", + "credit": "M. Kuperus/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_60781090.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 127 + }, + "caption": "", + "image_link": "" + }, + "id": "421876f2-8168-4c9b-aafa-145da3161e28" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 151636, + "first_name": "Isidoro", + "last_name": "Rodriguez", + "job_title": "Public Safety Reporter", + "biography": "Isidoro Rodriguez reports on safety and policing in New York City. Prior to joining Gothamist, he was deputy editor of The Crime Report at the Center on Media, Crime and Justice at the John Jay College of Criminal Justice in New York.", + "website": "", + "email": "", + "slug": "isidoro-rodriguez", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "public safety", + "slug": "public-safety" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154787, + "meta": { + "first_published_at": "2023-03-09T15:40:54.292848-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154787/", + "html_url": "http://cms.prod.nypr.digital/news/cost-of-second-ave-subway-extension-to-east-harlem-balloons-to-77b/", + "slug": "cost-of-second-ave-subway-extension-to-east-harlem-balloons-to-77b" + }, + "title": "Cost of 2nd Avenue Subway extension to East Harlem balloons to $7.7B", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "4051ebba-b343-4ea5-9b62-9f87fafb08b7", + "url": "https://gothamist.com/news/cost-of-second-ave-subway-extension-to-east-harlem-balloons-to-77b", + "publication_date": "2023-03-09T15:40:00-05:00", + "updated_date": "2023-03-09T15:50:00-05:00", + "description": "It’s the latest price hike for the project, which aims to extend the subway by 1.5 miles through a tunnel that’s already partially built.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 327172, + "title": "Second Avenue Subway tour (stephen nessen)", + "width": 3000, + "height": 2000, + "created_at": "2021-11-24T20:05:44.178219-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2875517, + "file_hash": "58387e1cf51bb785fb1184ff5647bfc65824f111", + "alt": "Inside the partially constructed 2nd avenue subway tunnels", + "caption": "The Second Avenue Subway's phase two tunnel, November 23, 2021", + "credit": "Stephen Nessen / WNYC", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/SA_st-4.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "The partially constructed Second Avenue Subway tunnel in East Harlem.", + "image_link": "" + }, + "id": "09dc2825-999d-43a8-bc8d-130f2d2b5739" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 29, + "first_name": "Stephen", + "last_name": "Nessen", + "photo": 327485, + "job_title": "Transportation Reporter", + "biography": "Stephen Nessen covers transportation. Since 2008 he has reported on everything from Occupy Wall Street, the rebuilding of the World Trade Center site, Hurricane Sandy, to Trump’s campaign for president. His transportation reporting has taken him everywhere from the MTA’s secret Rail Control Center to the gleaming subways of Seoul.", + "website": "", + "email": "snessen@wnyc.org", + "slug": "stephen-nessen", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/s_nessen" + } + ] + }, + { + "id": 153522, + "first_name": "Clayton", + "last_name": "Guse", + "job_title": "Assistant Editor, NYC Accountability", + "biography": "", + "website": "", + "email": "cguse@nypublicradio.org", + "slug": "clayton-guse", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "transportation", + "slug": "transportation" + }, + { + "name": "manhattan", + "slug": "manhattan" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154786, + "meta": { + "first_published_at": "2023-03-09T14:48:58.606537-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154786/", + "html_url": "http://cms.prod.nypr.digital/news/extra-extra-remember-the-time-before-legal-weed-when-nyc-smelled-awesome/", + "slug": "extra-extra-remember-the-time-before-legal-weed-when-nyc-smelled-awesome" + }, + "title": "Extra Extra: Remember the time before legal weed, when NYC smelled awesome?", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "6a04a497-a1a1-4bae-bb0e-6a5b3a6d1460", + "url": "https://gothamist.com/news/extra-extra-remember-the-time-before-legal-weed-when-nyc-smelled-awesome", + "publication_date": "2023-03-09T14:48:00-05:00", + "updated_date": null, + "description": "Because the scent of that dank kush is pushing some longtime New Yorkers over the edge, here are your end-of-day links: Undercover taxi boss, smoking inside Atlantic City casinos, COVID rats and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337179, + "title": "trash.jpg", + "width": 3216, + "height": 1842, + "created_at": "2023-03-09T14:43:13.627717-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1190773, + "file_hash": "668e24a5722ec8f9d2d938a749908870527ce041", + "alt": "a woman on a cell phone walks by bags of trash", + "caption": "", + "credit": "Justin Lane/EPA/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/trash.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "3dfe64f3-6e1e-4e74-94b2-2a4a34a2d58a" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "extra extra", + "slug": "extra-extra" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154785, + "meta": { + "first_published_at": "2023-03-09T13:04:13.988098-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154785/", + "html_url": "http://cms.prod.nypr.digital/news/gov-hochul-wants-to-loan-455-million-to-belmont-park-some-say-its-a-bad-bet/", + "slug": "gov-hochul-wants-to-loan-455-million-to-belmont-park-some-say-its-a-bad-bet" + }, + "title": "Gov. Hochul wants to loan $455 million to Belmont Park. Some say it’s a bad bet.", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "066e0a34-c1b9-48c6-92a6-a001ac78901c", + "url": "https://gothamist.com/news/gov-hochul-wants-to-loan-455-million-to-belmont-park-some-say-its-a-bad-bet", + "publication_date": "2023-03-09T13:04:00-05:00", + "updated_date": "2023-03-09T16:22:00-05:00", + "description": "If the loan goes through, the state would take control of more than 100 acres near JFK International Airport.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337177, + "title": "Belmont Park [Shutterstock]", + "width": 2823, + "height": 1783, + "created_at": "2023-03-09T12:26:13.676742-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 910800, + "file_hash": "7bccde01a4ce50ddccc28bfeb0ceeb66a97063e8", + "alt": "Mo Donegal, with Irad Ortiz Jr. wins The Belmont Stakes presented by NYRA Bets at Belmont Park in Elmont in June last year. Hochul seeks to issue a $455 million loan to Belmont Park to redevelop the grandstand and clubhouse.", + "caption": "Mo Donegal, with Irad Ortiz Jr. wins the Belmont Stakes presented by NYRA Bets at Belmont Park in Elmont in June last year. Hochul seeks to issue a $455 million loan to Belmont Park to redevelop the grandstand and clubhouse.", + "credit": "Alex Evers/CSM/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_12982585b.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 82 + }, + "caption": "", + "image_link": "" + }, + "id": "dad99b1d-e4b8-4842-a86e-a7356da92091" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 171, + "first_name": "Jon", + "last_name": "Campbell", + "photo": 328437, + "job_title": "Reporter", + "biography": "Jon Campbell covers the New York State Capitol for WNYC and Gothamist. Prior to that, he covered the Capitol for more than a decade for the USA TODAY Network. He has twice earned the Walter T. Brown Memorial Award, an honor given annually by the Legislative Correspondents Association alumni for outstanding state government coverage. Jon grew up in the Buffalo area and graduated from the University at Albany.", + "website": "", + "email": "jcampbell@wnyc.org", + "slug": "jon-campbell", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/JonCampbellNY" + } + ] + } + ], + "tags": [ + { + "name": "news", + "slug": "news" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "Kathy Hochul", + "slug": "kathy-hochul" + }, + { + "name": "new york", + "slug": "new-york" + }, + { + "name": "Belmont Stakes", + "slug": "belmont-stakes" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154784, + "meta": { + "first_published_at": "2023-03-09T12:42:16.773635-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154784/", + "html_url": "http://cms.prod.nypr.digital/news/nyc-retirees-must-switch-new-medicare-coverage-after-union-leaders-favor-aetna-privatized-plan/", + "slug": "nyc-retirees-must-switch-new-medicare-coverage-after-union-leaders-favor-aetna-privatized-plan" + }, + "title": "250K NYC retirees must switch to new Medicare coverage after union leaders favor privatized plan", + "listing_title": "", + "listing_summary": "", + "listing_image": { + "id": 337175, + "title": "medicare advantage vote_20230309_GettyImages-1246120531.jpg", + "width": 3100, + "height": 2065, + "created_at": "2023-03-09T11:27:50.392883-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4358124, + "file_hash": "c790377b66c32092f194f2ad4f3f2c34b3275cd2", + "alt": "Participants seen cheering during an NYC City Council hearing about the proposed changes to the city’s administrative code and municipal retirees' health care benefits, Jan. 9, 2023.", + "caption": "Participants seen cheering during an NYC City Council hearing about the proposed changes to the city’s administrative code and municipal retirees' health care benefits, Jan. 9, 2023.", + "credit": "Erik McGregor/LightRocket via Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/medicare_advantage_vote_20230309_GettyImages-1246120531.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "uuid": "5ca57628-fc02-4cd0-8e33-e72de1c1a13c", + "url": "https://gothamist.com/news/nyc-retirees-must-switch-new-medicare-coverage-after-union-leaders-favor-aetna-privatized-plan", + "publication_date": "2023-03-09T12:42:00-05:00", + "updated_date": "2023-03-09T23:15:00-05:00", + "description": "The switch will provide some new benefits, but critics of the change have raised concerns that the Medicare Advantage plan will be more likely to require prior approval for certain medical services and potentially deny coverage.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337176, + "title": "medicare advantage_20230309_shutterstock_editorial_13740802a.jpg", + "width": 3889, + "height": 2624, + "created_at": "2023-03-09T11:47:11.156624-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1445626, + "file_hash": "cd05b28f7385eaad6aa5f5373715b98f6a5ef719", + "alt": "A page from the 2019 U.S. Medicare Handbook in Washington.", + "caption": "According to a summary of the plan that was shared with Gothamist, Aetna won’t require prior authorization for any medical services for the first 120 days after coverage begins.", + "credit": "Pablo Martinez Monsivais/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/medicare_advantage_20230309_shutterstock_editorial_13740802a.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "", + "image_link": "" + }, + "id": "13e94eec-ebf0-4a8d-8c61-03bc857bd90a" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 22, + "first_name": "Caroline", + "last_name": "Lewis", + "photo": 334520, + "job_title": "Health Reporter", + "biography": "Caroline Lewis is on the health care beat for WNYC and Gothamist — and also covers cannabis, both with an eye towards equity and accountability. She was previously a health care reporter for Crain’s New York Business. Lewis has a degree from the CUNY Graduate School of Journalism and is a native New Yorker, although she has left occasionally. She did a Fulbright in Chile in 2011 and is fluent in Spanish. She now resides in Brooklyn.", + "website": "", + "email": "", + "slug": "caroline-lewis", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "Health and Science", + "slug": "health-and-science" + }, + { + "name": "union", + "slug": "union" + }, + { + "name": "health care", + "slug": "health-care" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154783, + "meta": { + "first_published_at": "2023-03-09T09:52:53.328420-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154783/", + "html_url": "http://cms.prod.nypr.digital/news/early-addition-cruising-through-the-korean-dmz-on-google-street-view/", + "slug": "early-addition-cruising-through-the-korean-dmz-on-google-street-view" + }, + "title": "Early Addition: Cruising through the Korean DMZ on Google Street View", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "97c94349-4409-4be7-80b5-576b47a6d33a", + "url": "https://gothamist.com/news/early-addition-cruising-through-the-korean-dmz-on-google-street-view", + "publication_date": "2023-03-09T09:52:53.328420-05:00", + "updated_date": null, + "description": "Because Google is marking the 70th anniversary of the peninsula's armistice, here are your early links: Good news for gun fanatics in New Jersey, dueling rallies over menthol cigarette ban, Donald Trump's letters from celebrities and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337174, + "title": "Screen Shot 2023-03-09 at 9.26.24 AM.png", + "width": 2620, + "height": 1280, + "created_at": "2023-03-09T09:29:11.687429-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 5249836, + "file_hash": "ead2570f0d062727623407bf10da5c7439b710d2", + "alt": "an abandoned office in the Korean DMZ", + "caption": "", + "credit": "Google", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2023-03-09_at_9.26.24_AM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "c963ac21-3f00-4246-a9a7-2ac4ca7c7a39" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "early addition", + "slug": "early-addition" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154779, + "meta": { + "first_published_at": "2023-03-09T07:30:57.415828-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154779/", + "html_url": "http://cms.prod.nypr.digital/news/daylight-saving-time-is-coming-to-nyc-beware/", + "slug": "daylight-saving-time-is-coming-to-nyc-beware" + }, + "title": "Daylight saving time is coming to NYC — beware", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "69c6c467-3051-4c52-9512-c73966766d57", + "url": "https://gothamist.com/news/daylight-saving-time-is-coming-to-nyc-beware", + "publication_date": "2023-03-09T07:30:57.415828-05:00", + "updated_date": null, + "description": "We're still changing the clocks twice a year even though most people think it's silly and scientists say it's dangerous.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337160, + "title": "DST GETTY NO REUSE .jpg", + "width": 4368, + "height": 2912, + "created_at": "2023-03-08T16:57:30.015242-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4684234, + "file_hash": "b3ecbc32b4a475cb5d5b5d65b6b68982223d76f8", + "alt": "A photo of a clock in springtime to depict daylight saving time.", + "caption": "Yes, we'll have later sunsets, but scientists say daylight saving time messes with our sleep.", + "credit": "Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/DST_GETTY_NO_REUSE_.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 123 + }, + "caption": "", + "image_link": "" + }, + "id": "e68abd75-af21-4585-91ff-cd9bff5a0636" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 154778, + "first_name": "Rose Marina", + "last_name": "Boubion", + "job_title": "Gothamist Contributor", + "biography": "", + "website": "", + "email": "", + "slug": "rose-marina-boubion", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "sleep deprivation", + "slug": "sleep-deprivation" + }, + { + "name": "senate", + "slug": "senate" + }, + { + "name": "assembly", + "slug": "assembly" + }, + { + "name": "daylight saving time", + "slug": "daylight-saving-time" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154780, + "meta": { + "first_published_at": "2023-03-09T06:00:59.699204-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154780/", + "html_url": "http://cms.prod.nypr.digital/news/toxic-fumes-detected-at-popular-brooklyn-shuffleboard-club-for-past-2-years/", + "slug": "toxic-fumes-detected-at-popular-brooklyn-shuffleboard-club-for-past-2-years" + }, + "title": "Toxic fumes detected at popular Brooklyn shuffleboard club for past 2 years", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "d187af04-c4a3-45fd-9e07-5abbab713fc8", + "url": "https://gothamist.com/news/toxic-fumes-detected-at-popular-brooklyn-shuffleboard-club-for-past-2-years", + "publication_date": "2023-03-09T06:00:00-05:00", + "updated_date": "2023-03-09T10:47:00-05:00", + "description": "Here’s why you’re only now hearing about the incident at the Royal Palms Shuffleboard Club.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337171, + "title": "royal palms_20230308_shuffleboard. gas_L1500214.jpeg", + "width": 3000, + "height": 2000, + "created_at": "2023-03-08T22:11:46.772923-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4388899, + "file_hash": "1e0becb47efc9c3fa1ded447b450de159177ab61", + "alt": "The Royal Palms Shuffleboard Club is located at 514 Union Street in Brooklyn. Environmental surveys detected high levels of a cancer-causing chemical called trichloroethylene and other industrial pollutants at the site in early 2021. But state regulators took a year to notify nearby residents about the health hazard. Remediation efforts to contain the toxins began last month.", + "caption": "The Royal Palms Shuffleboard Club is located at 514 Union Street in Brooklyn. Environmental surveys detected high levels of a cancer-causing chemical called trichloroethylene and other industrial pollutants at the site in early 2021. But state regulators took a year to notify nearby residents about the health hazard. Remediation efforts to contain the toxins began last month.", + "credit": "Reece T. Williams/Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/royal_palms_20230308_shuffleboard._gas_L1500214_GSlBL3l.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 106 + }, + "caption": "", + "image_link": "" + }, + "id": "70c578bd-52ce-4061-a832-e02e5a13b751" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 152986, + "first_name": "Jordan", + "last_name": "Gass-Poore'", + "job_title": "Freelance reporter", + "biography": "", + "website": "", + "email": "", + "slug": "jordan-gass-poore", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "Gowanus", + "slug": "gowanus" + }, + { + "name": "Health and Science", + "slug": "health-and-science" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + }, + { + "name": "environment", + "slug": "environment" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/section-page.json b/cypress/fixtures/aviary/section-page.json new file mode 100644 index 00000000..9fec936a --- /dev/null +++ b/cypress/fixtures/aviary/section-page.json @@ -0,0 +1,32 @@ +{ + "id": 4, + "meta": { + "first_published_at": "2019-08-09T13:24:40.447281-04:00", + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/", + "slug": "news", + "show_in_menus": true, + "seo_title": "", + "search_description": "", + "parent": { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist" + } + }, + "title": "News", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "social_image": null, + "social_title": "", + "social_text": "", + "show_on_index_listing": true, + "uuid": "bd865ae3-b0df-476e-bd9b-1eac532ebe68", + "url": "https://gothamist.com/news" +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/section-recirculation.json b/cypress/fixtures/aviary/section-recirculation.json new file mode 100644 index 00000000..edd2fa76 --- /dev/null +++ b/cypress/fixtures/aviary/section-recirculation.json @@ -0,0 +1,720 @@ +{ + "meta": { + "total_count": 90160 + }, + "items": [ + { + "id": 154821, + "meta": { + "first_published_at": "2023-03-13T16:44:46.361486-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154821/", + "html_url": "http://cms.prod.nypr.digital/news/dozens-of-nj-groups-want-feds-to-investigate-of-paterson-police-after-latest-shooting-death/", + "slug": "dozens-of-nj-groups-want-feds-to-investigate-of-paterson-police-after-latest-shooting-death" + }, + "title": "Dozens of NJ groups want feds to investigate Paterson police after latest shooting death", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "be5891be-e3ff-4cfe-b47b-2797ed84fd4f", + "url": "https://gothamist.com/news/dozens-of-nj-groups-want-feds-to-investigate-of-paterson-police-after-latest-shooting-death", + "publication_date": "2023-03-13T16:44:00-04:00", + "updated_date": null, + "description": "Paterson officers shot 31-year-old Najee Seabrooks, who worked with violence intervention group, during an incident at his home.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337223, + "title": "thumbnail_Najee Seabrooks.jpg", + "width": 1600, + "height": 1067, + "created_at": "2023-03-13T14:40:26.684335-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 724755, + "file_hash": "476483de51ef0e1f2a647896c951bc82626bd938", + "alt": "Najee Seabrooks, a violence intervention specialist with the Paterson Healing Collective, was shot and killed by police in an incident at his home on March 3.", + "caption": "Najee Seabrooks, a violence intervention specialist with the Paterson Healing Collective, was shot and killed by police in an incident at his home on March 3.", + "credit": "New Jersey Violence Intervention and Prevention Coalition", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/thumbnail_Najee_Seabrooks.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 134 + }, + "caption": "", + "image_link": "" + }, + "id": "93ababb6-b357-4f9a-b23d-cab7ed3cf0fc" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 142982, + "first_name": "Nancy", + "last_name": "Solomon", + "job_title": "reporter", + "biography": "", + "website": "", + "email": "", + "slug": "nancy-solomon-wnyc", + "social_media_profile": [] + }, + { + "id": 152305, + "first_name": "Louis C.", + "last_name": "Hochman", + "photo": 332883, + "job_title": "New Jersey & Suburbs Editor", + "biography": "After about two decades in (mostly) New Jersey-focused commercial print, digital and digital-but-radio-adjacent news, Lou stumbled into member-supported news in early 2021, as the editor and CEO of Montclair Local. There, he (hopes he) expanded enterprise, brought more sophistication to digital storytelling and moved the nonprofit newsroom closer to long-term financial sustainability. He helped lead the Local to its fourth consecutive General Excellence award from the New Jersey Press Association — the NJPA's highest honor with judges noting the paper's work to strip away layers of government opacity, to hold power to account, to make news accessible for more members of the community, to share the stories and concerns of more facets of the community and to tell compelling stories across multiple media.\r\n\r\nHe's excited to continue the same ethic — news as a public service — at NYPR as the New Jersey and suburbs editor, drawing on the extraordinary talents of reporters including Karen Yi and Nancy Solomon. Lou lives in Philly (that commute!) with his partner and their two cats, about whom and about which he speaks incessantly.", + "website": "", + "email": "", + "slug": "louis-c-hochman", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "new jersey", + "slug": "new-jersey" + }, + { + "name": "public safety", + "slug": "public-safety" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154819, + "meta": { + "first_published_at": "2023-03-13T15:22:45.238532-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154819/", + "html_url": "http://cms.prod.nypr.digital/news/port-authority-opts-for-bus-improvements-to-lagaurdia-as-panel-officially-kills-cuomos-airtrain-idea/", + "slug": "port-authority-opts-for-bus-improvements-to-lagaurdia-as-panel-officially-kills-cuomos-airtrain-idea" + }, + "title": "Port Authority opts for bus improvements to LaGuardia as panel officially kills Cuomo’s AirTrain idea", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "f620ea64-eef9-4924-a619-00d43ab937a5", + "url": "https://gothamist.com/news/port-authority-opts-for-bus-improvements-to-lagaurdia-as-panel-officially-kills-cuomos-airtrain-idea", + "publication_date": "2023-03-13T15:22:00-04:00", + "updated_date": null, + "description": "The project comes more than 17 months after Gov. Kathy Hochul paused work on her predecessor’s plan for a rail link from Willets Point in Queens.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337225, + "title": "GettyImages-1441426421.jpg", + "width": 3000, + "height": 2001, + "created_at": "2023-03-13T15:14:10.666493-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1715107, + "file_hash": "6b6023ff0dcb76cf8ed3663674eab9c7251449a1", + "alt": "A United Airlines jet at LaGuardia Airport.", + "caption": "A United Airlines jet at LaGuardia Airport.", + "credit": "Bruce Bennett/Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GettyImages-1441426421.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 143 + }, + "caption": "", + "image_link": "" + }, + "id": "8a5d5bca-495d-4a8f-8c91-c9037bffed62" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 29, + "first_name": "Stephen", + "last_name": "Nessen", + "photo": 327485, + "job_title": "Transportation Reporter", + "biography": "Stephen Nessen covers transportation. Since 2008 he has reported on everything from Occupy Wall Street, the rebuilding of the World Trade Center site, Hurricane Sandy, to Trump’s campaign for president. His transportation reporting has taken him everywhere from the MTA’s secret Rail Control Center to the gleaming subways of Seoul.", + "website": "", + "email": "snessen@wnyc.org", + "slug": "stephen-nessen", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/s_nessen" + } + ] + } + ], + "tags": [ + { + "name": "transportation", + "slug": "transportation" + }, + { + "name": "queens", + "slug": "queens" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154818, + "meta": { + "first_published_at": "2023-03-13T14:54:16.447452-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154818/", + "html_url": "http://cms.prod.nypr.digital/news/extra-extra-new-jersey-is-one-of-the-most-international-states-gov-murphy-explains/", + "slug": "extra-extra-new-jersey-is-one-of-the-most-international-states-gov-murphy-explains" + }, + "title": "Extra Extra: New Jersey is 'one of the most international states,' Gov. Murphy explains", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "29d5a9d7-b929-444d-8d33-963370f69a3e", + "url": "https://gothamist.com/news/extra-extra-new-jersey-is-one-of-the-most-international-states-gov-murphy-explains", + "publication_date": "2023-03-13T14:54:16.447452-04:00", + "updated_date": null, + "description": "Because Phil \"Mr. Worldwide\" Murphy isn't running for president yet, here are your end-of-day links: Bad weather, Tom Sachs cult was not fun, George Santos' take on the Oscars and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337222, + "title": "murphy.jpg", + "width": 3810, + "height": 2540, + "created_at": "2023-03-13T14:36:41.734830-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 712532, + "file_hash": "bccef5e7739f1d039bd09634fd2f1953d8db82fc", + "alt": "Gov. Phil Murphy in a Ukraine mask", + "caption": "", + "credit": "Seth Wenig/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/murphy.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "57bc1a2d-65c4-46bc-b329-2b0c23cae7d1" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "extra extra", + "slug": "extra-extra" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154817, + "meta": { + "first_published_at": "2023-03-13T14:36:56.365080-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154817/", + "html_url": "http://cms.prod.nypr.digital/news/signature-bank-closure-do-i-have-to-worry-about-my-money/", + "slug": "signature-bank-closure-do-i-have-to-worry-about-my-money" + }, + "title": "Signature Bank closure: Do I have to worry about my money?", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "a029a199-8f4c-4a7b-b034-2f0c50a753e1", + "url": "https://gothamist.com/news/signature-bank-closure-do-i-have-to-worry-about-my-money", + "publication_date": "2023-03-13T14:36:56.365080-04:00", + "updated_date": null, + "description": "Signature Bank counts a variety of New York City landlords and small businesses as clients.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337221, + "title": "Signature Bank [Getty]", + "width": 6240, + "height": 4160, + "created_at": "2023-03-13T13:52:20.263046-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4654268, + "file_hash": "c239e0aea4608dd251cb5c5445b4db668f47e98b", + "alt": "People walk by a Manhattan branch of Signature Bank which was closed by bank regulators on Sunday on March 13, 2023 in New York City. The move by the state's Department of Financial Services seeks to prevent a banking crisis spurred by the failure of Silicon Valley Bank.", + "caption": "People walk by a Manhattan branch of Signature Bank which was closed by bank regulators on Sunday on March 13, 2023 in New York City. The move by the state's Department of Financial Services seeks to prevent a banking crisis spurred by the failure of Silicon Valley Bank.", + "credit": "Photo by Spencer Platt/Getty Images", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/GettyImages-1473258993.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 82 + }, + "caption": "", + "image_link": "" + }, + "id": "39e5d50b-c979-4c40-a8bf-24305bcd9b13" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 171, + "first_name": "Jon", + "last_name": "Campbell", + "photo": 328437, + "job_title": "Reporter", + "biography": "Jon Campbell covers the New York State Capitol for WNYC and Gothamist. Prior to that, he covered the Capitol for more than a decade for the USA TODAY Network. He has twice earned the Walter T. Brown Memorial Award, an honor given annually by the Legislative Correspondents Association alumni for outstanding state government coverage. Jon grew up in the Buffalo area and graduated from the University at Albany.", + "website": "", + "email": "jcampbell@wnyc.org", + "slug": "jon-campbell", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/JonCampbellNY" + } + ] + }, + { + "id": 212, + "first_name": "David", + "last_name": "Brand", + "job_title": "Gothamist Editor", + "biography": "", + "website": "", + "email": "", + "slug": "david-brand", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "news", + "slug": "news" + }, + { + "name": "Politics", + "slug": "politics" + }, + { + "name": "Kathy Hochul", + "slug": "kathy-hochul" + }, + { + "name": "signature bank", + "slug": "signature-bank" + }, + { + "name": "new york", + "slug": "new-york" + }, + { + "name": "bank failure", + "slug": "bank-failure" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154816, + "meta": { + "first_published_at": "2023-03-13T10:24:52.730180-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154816/", + "html_url": "http://cms.prod.nypr.digital/news/early-addition-book-thief-pleads-guilty-to-stealing-manuscripts-that-he-cherished/", + "slug": "early-addition-book-thief-pleads-guilty-to-stealing-manuscripts-that-he-cherished" + }, + "title": "Early Addition: Book thief pleads guilty to stealing manuscripts that he cherished", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "83210f93-bbc8-4b3a-b758-b424867e9fa0", + "url": "https://gothamist.com/news/early-addition-book-thief-pleads-guilty-to-stealing-manuscripts-that-he-cherished", + "publication_date": "2023-03-13T10:24:52.730180-04:00", + "updated_date": null, + "description": "Because he loved the written word, here are your early links: West Village newspaper wars, Oscar win for the mommies, some love for middle managers and more.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337220, + "title": "rooney.jpg", + "width": 5000, + "height": 3333, + "created_at": "2023-03-13T10:00:32.779295-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2988926, + "file_hash": "b4b4e46482c2ac82507222afb00952d48f0310d1", + "alt": "Sally Rooney's hardcover, Beautiful World, Where Are You", + "caption": "", + "credit": "VICKIE FLORES/EPA-EFE/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/rooney.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 33 + }, + "caption": "", + "image_link": "" + }, + "id": "670e840e-9800-4c7b-a8c5-4e57437fdf46" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 35, + "first_name": "James", + "last_name": "Ramsay", + "photo": 327650, + "job_title": "Digital Producer", + "biography": "", + "website": "", + "email": "", + "slug": "james-ramsay", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "early addition", + "slug": "early-addition" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 154814, + "meta": { + "first_published_at": "2023-03-13T08:06:50.668289-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/154814/", + "html_url": "http://cms.prod.nypr.digital/news/noreaster-to-bring-rain-heavy-winds-and-maybe-a-little-snow-to-nyc/", + "slug": "noreaster-to-bring-rain-heavy-winds-and-maybe-a-little-snow-to-nyc" + }, + "title": "Nor'easter to bring rain, heavy winds and maybe a little snow to NYC", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "2772ac5c-6e7f-4e07-9bd6-9969bdc2244d", + "url": "https://gothamist.com/news/noreaster-to-bring-rain-heavy-winds-and-maybe-a-little-snow-to-nyc", + "publication_date": "2023-03-13T08:06:50.668289-04:00", + "updated_date": null, + "description": "The storm could bring coastal flooding and a potential coating of snow, with heavier snow predicted north of the city.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 337219, + "title": "Screenshot 2023-03-13 at 8.00.37 AM.png", + "width": 1062, + "height": 786, + "created_at": "2023-03-13T08:02:35.697147-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 391439, + "file_hash": "cbf16579a81b4e89de1da9ea01484b67ff2fd6b0", + "alt": "A weather map shows potential hazards for the metro area with Monday's Nor'easter.", + "caption": "A National Weather Service map shows potential hazards for the metro area with Monday's Nor'easter.", + "credit": "National Weather Service", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screenshot_2023-03-13_at_8.00.37_AM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 123 + }, + "caption": "", + "image_link": "" + }, + "id": "18071431-2797-4991-84a6-0bd050205492" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 40, + "first_name": "Gwynne", + "last_name": "Hogan", + "photo": 334519, + "job_title": "Reporter", + "biography": "Gwynne Hogan is a general assignment reporter who’s worked at WNYC and Gothamist since 2017. Before joining WNYC, she did stints at the New York Post and the late DNAinfo New York and studied at the CUNY Newmark Graduate School of Journalism, graduating with the class of 2014. She won a Gracie award for her coverage of the COVID-19 pandemic and a Society of Professional Journalists award for her reporting on one Rockaway school’s efforts to avoid suspending students. Follow her on Twitter @GwynneFitz or email her at ghogan@wnyc.org.", + "website": "", + "email": "ghogan@wnyc.org", + "slug": "gwynne-hogan", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/GwynneFitz" + } + ] + } + ], + "tags": [ + { + "name": "weather", + "slug": "weather" + }, + { + "name": "national weather service", + "slug": "national-weather-service" + }, + { + "name": "nor'easter", + "slug": "noreaster" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/sitewide_components.json b/cypress/fixtures/aviary/sitewide_components.json new file mode 100644 index 00000000..16973cd9 --- /dev/null +++ b/cypress/fixtures/aviary/sitewide_components.json @@ -0,0 +1,8 @@ +{ + "id": 2, + "meta": { + "type": "sitewide.SiteWideComponents", + "detail_url": "https://cms.prod.nypr.digital/api/v2/sitewide_components/2/" + }, + "breaking_news": [] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/staff-articles.json b/cypress/fixtures/aviary/staff-articles.json new file mode 100644 index 00000000..c29f40b9 --- /dev/null +++ b/cypress/fixtures/aviary/staff-articles.json @@ -0,0 +1,1759 @@ +{ + "meta": { + "total_count": 33495 + }, + "items": [ + { + "id": 151834, + "meta": { + "first_published_at": "2022-05-27T15:01:30.314887-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151834/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/say-hello-to-the-central-park-zoos-three-new-bears/", + "slug": "say-hello-to-the-central-park-zoos-three-new-bears" + }, + "title": "Say hello to the Central Park Zoo's three new bears", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "59ab99dd-55ed-428a-af01-1c4b39896245", + "url": "https://gothamist.com/arts-entertainment/say-hello-to-the-central-park-zoos-three-new-bears", + "publication_date": "2022-05-27T15:01:30.314887-04:00", + "updated_date": null, + "description": "The bears, Amber, Luna, and Treena, come from the Bronx Zoo.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 331488, + "title": "Central Park bears (Julie Larsen Maher)", + "width": 2000, + "height": 1335, + "created_at": "2022-05-27T13:25:54.136260-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2051761, + "file_hash": "489edd81f813c2838e79bd0987df144c3376824d", + "alt": "photographs of the brown bears debuting in Central Park", + "caption": "The Central Park Zoo's new bears", + "credit": "Julie Larsen Maher, Wildlife Conservation Society / Central Park Zoo", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Julie_Larsen_Maher_9224_Brown_Bears_CPZ_05_19_22_1.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "efacf3a9-00ad-49cd-aedd-5247fa1c932e" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "grizzly bears", + "slug": "grizzly-bears" + }, + { + "name": "bears", + "slug": "bears" + }, + { + "name": "central park zoo", + "slug": "central-park-zoo" + }, + { + "name": "wildlife conservation society", + "slug": "wildlife-conservation-society" + }, + { + "name": "bronx zoo", + "slug": "bronx-zoo" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151579, + "meta": { + "first_published_at": "2022-05-07T06:02:20.571360-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151579/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/free-rides-to-celebrate-100th-birthday-of-janes-carousel/", + "slug": "free-rides-to-celebrate-100th-birthday-of-janes-carousel" + }, + "title": "Free rides to celebrate 100th birthday of Jane's Carousel", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "fb15c498-618a-4d77-b594-35a862bf0f66", + "url": "https://gothamist.com/arts-entertainment/free-rides-to-celebrate-100th-birthday-of-janes-carousel", + "publication_date": "2022-05-07T06:02:20.571360-04:00", + "updated_date": null, + "description": "The carousel, which was restored by Jane Walentas and brought to Brooklyn in 2011, was originally built in 1922.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 330822, + "title": "Jane's Carousel", + "width": 3600, + "height": 2400, + "created_at": "2022-05-04T19:13:10.097164-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2405537, + "file_hash": "0c6722f108781ddcbfa38e9bf21ba11272ff6db3", + "alt": "A photograph of a carousel with horses, with the East River seen on the right side", + "caption": "Jane's Carousel", + "credit": "Courtesy of Julian Mackler", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Credit__Julian_Mackler_copy.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "26d1892d-a03b-4cd6-bfca-6188d68b89ad" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "jane's carousel", + "slug": "janes-carousel" + }, + { + "name": "David Walentas", + "slug": "david-walentas" + }, + { + "name": "brooklyn bridge park", + "slug": "brooklyn-bridge-park" + }, + { + "name": "dumbo", + "slug": "dumbo" + }, + { + "name": "Jane Walentas", + "slug": "jane-walentas" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151364, + "meta": { + "first_published_at": "2022-04-12T15:59:01.153040-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151364/", + "html_url": "http://cms.prod.nypr.digital/news/nyc-subway-systems-history-as-a-rare-target-of-mass-violence/", + "slug": "nyc-subway-systems-history-as-a-rare-target-of-mass-violence" + }, + "title": "NYC Subway system’s history as a rare target of mass violence", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "f4993b05-5488-4510-b5b2-12057856131b", + "url": "https://gothamist.com/news/nyc-subway-systems-history-as-a-rare-target-of-mass-violence", + "publication_date": "2022-04-12T15:59:00-04:00", + "updated_date": "2022-04-13T18:00:00-04:00", + "description": "The subway system has been the target of other violent attacks, most notably bombing attempts.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 330376, + "title": "Increased security subway bag check (Shutterstock no reuse)", + "width": 3500, + "height": 2333, + "created_at": "2022-04-12T15:30:24.703577-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1770047, + "file_hash": "e9290a086098ab06d7afda19827f021fac58e19d", + "alt": "Police officers check a passenger's bag", + "caption": "The police check a subway rider's bag at a subway station", + "credit": "Richard Drew/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_6044108d.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "073d6a42-2e26-4a39-bd35-dd02f829d155" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 141726, + "first_name": "Sophia", + "last_name": "Chang", + "job_title": "Reporter", + "biography": "Sophia Chang is a reporter on the NYC Accountability desk covering government policy, social structures and other issues that enable and complicate city life.", + "website": "", + "email": "schang@gothamist.com", + "slug": "sophia-chang", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/bysophiachang" + } + ] + }, + { + "id": 121, + "first_name": "Jaclyn", + "last_name": "Jeffrey-Wilensky", + "photo": 334525, + "job_title": "Data Reporter", + "biography": "Jaclyn writes data-driven health and science stories for WNYC/Gothamist. She also runs Gothamist's COVID data dashboards. She is an alumna of the Newmark Graduate School of Journalism. Her work has appeared in NBC News, Spectrum, the Daily Beast, and other outlets.", + "website": "", + "email": "", + "slug": "jaclyn-jeffrey-wilensky", + "social_media_profile": [] + }, + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "gun violence", + "slug": "gun-violence" + }, + { + "name": "subway", + "slug": "subway" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + }, + { + "name": "subway crime", + "slug": "subway-crime" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "sunset park", + "slug": "sunset-park" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151291, + "meta": { + "first_published_at": "2022-04-11T11:30:12.748162-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151291/", + "html_url": "http://cms.prod.nypr.digital/news/mtas-reduced-fare-customers-will-get-to-use-omny-this-summer/", + "slug": "mtas-reduced-fare-customers-will-get-to-use-omny-this-summer" + }, + "title": "MTA's reduced-fare customers will get to use OMNY this summer", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "963f0116-080b-4522-bf78-6210cda4483d", + "url": "https://gothamist.com/news/mtas-reduced-fare-customers-will-get-to-use-omny-this-summer", + "publication_date": "2022-04-11T11:30:12.748162-04:00", + "updated_date": null, + "description": "OMNY will replace MetroCards in 2024.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329208, + "title": "OMNY card (MTA)", + "width": 2048, + "height": 1529, + "created_at": "2022-02-18T16:56:15.006431-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 536054, + "file_hash": "6fea9b8a3de3b8e9e36776b02128e3cc9d09d08e", + "alt": "A view of the OMNY readers on subway turnstiles", + "caption": "The MTA started its rollout of OMNY in 2019", + "credit": "Marc A. Hermann / MTA New York City Transit", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/48536036201_2381c18d36_k_NKmCqVT.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "e919c516-2853-49e7-ad67-6aafeaace7db" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "subway", + "slug": "subway" + }, + { + "name": "metrocard", + "slug": "metrocard" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "reduced fare", + "slug": "reduced-fare" + }, + { + "name": "omny", + "slug": "omny" + }, + { + "name": "MTA", + "slug": "mta" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151246, + "meta": { + "first_published_at": "2022-04-03T14:15:11.843514-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151246/", + "html_url": "http://cms.prod.nypr.digital/news/car-free-earth-day-open-streets-2022/", + "slug": "car-free-earth-day-open-streets-2022" + }, + "title": "Car-Free Earth Day is coming back in 2022", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "623951a3-1c76-4507-babe-eeb5b2f94a92", + "url": "https://gothamist.com/news/car-free-earth-day-open-streets-2022", + "publication_date": "2022-04-03T14:15:11.843514-04:00", + "updated_date": null, + "description": "100 streets will be car-free on Saturday, April 23rd, which will kick-off 2022's Open Streets program.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 330059, + "title": "Bicyclists Summer Streets (Scott Lynch)", + "width": 1089, + "height": 713, + "created_at": "2022-03-31T16:04:37.508031-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 163932, + "file_hash": "3ed0a216633c2ce709f36dca648c627c3fa88877", + "alt": "Dozens of bicyclists can be seen on Park Avenue during Summer Streets", + "caption": "Bicyclists enjoying Summer Streets on Park Avenue", + "credit": "Scott Lynch / Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/bicyclists.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "82b2b7f2-d8d6-44c1-b71d-4e91a6a05c72" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "earth day", + "slug": "earth-day" + }, + { + "name": "open streets", + "slug": "open-streets" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "department of transportation", + "slug": "department-of-transportation" + }, + { + "name": "car-free streets", + "slug": "car-free-streets" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151228, + "meta": { + "first_published_at": "2022-03-30T15:15:48.262631-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151228/", + "html_url": "http://cms.prod.nypr.digital/news/coyote-spotted-wandering-around-fort-tryon-park/", + "slug": "coyote-spotted-wandering-around-fort-tryon-park" + }, + "title": "Coyote spotted wandering around Fort Tryon Park", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "d84b9e63-0f54-4d43-b8b8-1041ba5c0687", + "url": "https://gothamist.com/news/coyote-spotted-wandering-around-fort-tryon-park", + "publication_date": "2022-03-30T15:15:00-04:00", + "updated_date": null, + "description": "\"Over the last several decades coyotes have been expanding their natural range in response to ample food and open habitat,\" the Parks Department said.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329992, + "title": "Coyote (Robert Randall)", + "width": 574, + "height": 395, + "created_at": "2022-03-29T18:08:48.840121-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 475041, + "file_hash": "42603086286dbb1900e3e36e35c286678c537cb8", + "alt": "A coyote in the woods with rocks in the background", + "caption": "The coyote in Fort Tryon", + "credit": "Courtesy of Travis Aikman and Robert Randall", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/Screen_Shot_2022-03-29_at_4.41.00_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "cd9f13dc-e90b-40b3-848d-af99f4429636" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "fort tryon park", + "slug": "fort-tryon-park" + }, + { + "name": "central park", + "slug": "central-park" + }, + { + "name": "wildlife", + "slug": "wildlife" + }, + { + "name": "manhattan", + "slug": "manhattan" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "coyote", + "slug": "coyote" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151177, + "meta": { + "first_published_at": "2022-03-23T11:14:29.312543-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151177/", + "html_url": "http://cms.prod.nypr.digital/news/former-ma-transportation-head-richard-davey-to-lead-city-transit/", + "slug": "former-ma-transportation-head-richard-davey-to-lead-city-transit" + }, + "title": "Former MA transportation head Richard Davey to lead city transit", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "43b4c208-7564-42c5-ae07-99bc2c5fd329", + "url": "https://gothamist.com/news/former-ma-transportation-head-richard-davey-to-lead-city-transit", + "publication_date": "2022-03-23T11:14:29.312543-04:00", + "updated_date": null, + "description": "\"Davey lives with his wife and two rescue cats and has not owned an automobile in 12 years,\" the MTA's press release said.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329898, + "title": "Richard Davey (no reuse)", + "width": 3846, + "height": 2581, + "created_at": "2022-03-23T09:09:21.714651-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1256904, + "file_hash": "1eea17f9bb46d32108156d7477565dc972c67fed", + "alt": "Photograph of Richard Davey in a suit, gesturing", + "caption": "Richard Davey", + "credit": "Stephan Savoia/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_6099697a.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "3e3c5868-7922-46e1-bfa2-f05b27684095" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "subway", + "slug": "subway" + }, + { + "name": "bus", + "slug": "bus" + }, + { + "name": "Richard Davey", + "slug": "richard-davey" + }, + { + "name": "nyc transit", + "slug": "nyc-transit" + }, + { + "name": "MTA", + "slug": "mta" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151144, + "meta": { + "first_published_at": "2022-03-18T16:57:11.887486-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151144/", + "html_url": "http://cms.prod.nypr.digital/news/dot-to-install-500-accessible-pedestrian-signals-at-intersections-next-year/", + "slug": "dot-to-install-500-accessible-pedestrian-signals-at-intersections-next-year" + }, + "title": "DOT to install 500 accessible pedestrian signals at intersections next year", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "0ab15f5e-b76c-47ff-8596-2e5c42bbb40f", + "url": "https://gothamist.com/news/dot-to-install-500-accessible-pedestrian-signals-at-intersections-next-year", + "publication_date": "2022-03-18T16:57:11.887486-04:00", + "updated_date": null, + "description": "A federal judge said that New York City too slow to make the city's streets accessible to the blind and low-vision pedestrians.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329826, + "title": "Accessible Pedestrian Signal (NYC Council)", + "width": 2048, + "height": 1363, + "created_at": "2022-03-18T13:12:35.473574-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 322115, + "file_hash": "32c0158f4b076e7e26ae44b672729719fd4f16b9", + "alt": "An accessible pedestrian signal button", + "caption": "An accessible pedestrian signal", + "credit": "William Alatriste / NYC Council", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/6192375167_47b2068ca3_k.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "08053c62-a570-466d-acb3-32874c73f873" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "Accessible Pedestrian Signals", + "slug": "accessible-pedestrian-signals" + }, + { + "name": "intersections", + "slug": "intersections" + }, + { + "name": "blind", + "slug": "blind" + }, + { + "name": "traffic light", + "slug": "traffic-light" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151133, + "meta": { + "first_published_at": "2022-03-17T14:53:18.718597-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151133/", + "html_url": "http://cms.prod.nypr.digital/news/mta-expects-congestion-pricing-to-start-at-the-end-of-2023/", + "slug": "mta-expects-congestion-pricing-to-start-at-the-end-of-2023" + }, + "title": "MTA expects congestion pricing to start at the end of 2023", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "188c9ae1-7a15-4efe-a1f3-987a1bc8d4e7", + "url": "https://gothamist.com/news/mta-expects-congestion-pricing-to-start-at-the-end-of-2023", + "publication_date": "2022-03-17T14:53:18.718597-04:00", + "updated_date": null, + "description": "Right now, the 16-month federal environmental review is underway.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 322105, + "title": "Downtown traffic", + "width": 2048, + "height": 1536, + "created_at": "2021-07-15T17:27:41.466401-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 615045, + "file_hash": "11b5c07b1d355c4993180db142635849d94ecb3f", + "alt": "Cars are packed at an intersection in lower Manhattan", + "caption": "Traffic at Charlton Street and Varick Street on July 8, 2021", + "credit": "Kate Hinds / WNYC", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/E5zNidsWEAY-kvm.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "a2c3e93e-1701-4379-95f0-7b1d021b68f0" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "mass transit", + "slug": "mass-transit" + }, + { + "name": "subway", + "slug": "subway" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "congestion pricing", + "slug": "congestion-pricing" + }, + { + "name": "MTA", + "slug": "mta" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151103, + "meta": { + "first_published_at": "2022-03-16T09:00:52.129424-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151103/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/nyc-st-patricks-day-parade-2022-details/", + "slug": "nyc-st-patricks-day-parade-2022-details" + }, + "title": "St. Patrick's Day parade returns to NYC streets after pandemic pause", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "27efa12f-2d40-4f53-9a33-7bd119cd269e", + "url": "https://gothamist.com/arts-entertainment/nyc-st-patricks-day-parade-2022-details", + "publication_date": "2022-03-16T09:00:52.129424-04:00", + "updated_date": null, + "description": "Here's what streets will be closed on March 17, 2022.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 32645, + "title": "cd83fa1cestpats-156-jpg.jpeg", + "width": 1500, + "height": 1000, + "created_at": "2019-08-23T19:21:51.161781-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 329268, + "file_hash": "", + "alt": "", + "caption": "", + "credit": "Scott Lynch / Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/gothamistgallery/2019/3/17/cd83fa1cestpats-156-jpg.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": null + }, + "caption": "", + "image_link": "" + }, + "id": "9dd31d6c-48b7-4ccf-87c4-604380b83a33" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "st. patrick's day parade", + "slug": "st-patricks-day-parade" + }, + { + "name": "st. patrick's day", + "slug": "st-patricks-day" + }, + { + "name": "manhattan", + "slug": "manhattan" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 151022, + "meta": { + "first_published_at": "2022-03-05T10:31:37.225306-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/151022/", + "html_url": "http://cms.prod.nypr.digital/news/jump-in-red-light-violations-in-nyc-renew-push-for-local-control-of-state-traffic-laws/", + "slug": "jump-in-red-light-violations-in-nyc-renew-push-for-local-control-of-state-traffic-laws" + }, + "title": "Jump in red-light violations in NYC renew push for local control of state traffic laws", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "3e51b299-2f05-44b6-baaa-02216edf281e", + "url": "https://gothamist.com/news/jump-in-red-light-violations-in-nyc-renew-push-for-local-control-of-state-traffic-laws", + "publication_date": "2022-03-05T10:31:37.225306-05:00", + "updated_date": null, + "description": "Only a small fraction of NYC's streets have red-light cameras, which give tickets to speeders and prevent speeding.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329584, + "title": "School zone speed limit NYC (Jen Chung)", + "width": 4032, + "height": 3024, + "created_at": "2022-03-04T16:14:35.391113-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 4461446, + "file_hash": "97e7ab0e83951354806ceb5cc8a56c1db4985624", + "alt": "a speed limit sign for 15 mph across the street from a school on a nyc street", + "caption": "", + "credit": "Jen Chung / Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/schoolzone.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "ab3872bf-c36d-4b63-a779-6f9cce16bb32" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "vision zero", + "slug": "vision-zero" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "speed camera", + "slug": "speed-camera" + }, + { + "name": "department of transportation", + "slug": "department-of-transportation" + }, + { + "name": "home rule", + "slug": "home-rule" + }, + { + "name": "red light cameras", + "slug": "red-light-cameras" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + }, + { + "name": "Albany", + "slug": "albany" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150966, + "meta": { + "first_published_at": "2022-02-27T15:18:22.923918-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150966/", + "html_url": "http://cms.prod.nypr.digital/news/hochul-ny-state-ending-indoor-mask-mandate-schools-starting-march-2nd/", + "slug": "hochul-ny-state-ending-indoor-mask-mandate-schools-starting-march-2nd" + }, + "title": "NYC could lift indoor school mask mandate on March 7th", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "3b6b5a71-bdc7-4bac-a717-b0a919b5c20c", + "url": "https://gothamist.com/news/hochul-ny-state-ending-indoor-mask-mandate-schools-starting-march-2nd", + "publication_date": "2022-02-27T15:18:00-05:00", + "updated_date": null, + "description": "Statewide, Governor Hochul announced the indoor mask mandate for schools will be lifted on March 2nd. The city is waiting longer.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 323308, + "title": "schoolguidepic.png", + "width": 800, + "height": 542, + "created_at": "2021-08-31T12:15:54.364685-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 764747, + "file_hash": "0130f9b72aa691765e134210326fbff56a001219", + "alt": "A young girl wearing a red tshirt and a face mask gives the peace sign to the camera at PS 8 in Brooklyn.", + "caption": "A student at PS 8 in Brooklyn.", + "credit": "DOE", + "credit_link": "https://twitter.com/DOEChancellor/status/1422612549334409223?s=20", + "file": "https://cdn.cms.prod.nypr.digital/original_images/schoolguidepic.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 78 + }, + "caption": "", + "image_link": "" + }, + "id": "593ef9ec-4faa-41ec-a522-2b71c4024304" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "eric adams", + "slug": "eric-adams" + }, + { + "name": "Kathy Hochul", + "slug": "kathy-hochul" + }, + { + "name": "new york", + "slug": "new-york" + }, + { + "name": "public schools", + "slug": "public-schools" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "pandemic", + "slug": "pandemic" + }, + { + "name": "COVID-19", + "slug": "covid-19" + }, + { + "name": "mask mandate", + "slug": "mask-mandate" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/staff-more.json b/cypress/fixtures/aviary/staff-more.json new file mode 100644 index 00000000..85fa6c34 --- /dev/null +++ b/cypress/fixtures/aviary/staff-more.json @@ -0,0 +1,1731 @@ +{ + "meta": { + "total_count": 33495 + }, + "items": [ + { + "id": 150864, + "meta": { + "first_published_at": "2022-02-14T17:45:02.441920-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150864/", + "html_url": "http://cms.prod.nypr.digital/news/nyc-commits-75-million-funding-fair-fares-discounted-metrocard-program/", + "slug": "nyc-commits-75-million-funding-fair-fares-discounted-metrocard-program" + }, + "title": "NYC commits to $75 million in funding for \"Fair Fares\" discounted MetroCard program", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "159b2d6c-6d8f-45af-a426-0a93046fb676", + "url": "https://gothamist.com/news/nyc-commits-75-million-funding-fair-fares-discounted-metrocard-program", + "publication_date": "2022-02-14T17:45:02.441920-05:00", + "updated_date": null, + "description": "New Yorkers who make less than the federal poverty level qualify for Fair Fares.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328060, + "title": "Metrocard (creative commons Flickr)", + "width": 2048, + "height": 1463, + "created_at": "2021-12-22T15:51:04.205247-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 433343, + "file_hash": "7561955bfe7f102175118624aee00b275180eeec", + "alt": "A Metrocard being held in someone's hand", + "caption": "", + "credit": "Mr.TinDC / Flickr", + "credit_link": "https://www.flickr.com/photos/mr_t_in_dc/4444688472", + "file": "https://cdn.cms.prod.nypr.digital/original_images/4444688472_05e1ed1ba9_k.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "3ee491fa-2b66-4582-b241-0fb0beeeeed2" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "low-income household", + "slug": "low-income-household" + }, + { + "name": "subway", + "slug": "subway" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "fair fares", + "slug": "fair-fares" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150845, + "meta": { + "first_published_at": "2022-02-12T08:01:16.672327-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150845/", + "html_url": "http://cms.prod.nypr.digital/news/it-will-take-care-of-our-family-nycs-for-hire-vehicle-drivers-get-53-raise/", + "slug": "it-will-take-care-of-our-family-nycs-for-hire-vehicle-drivers-get-53-raise" + }, + "title": "'It will take care of our family' — NYC's for-hire vehicle drivers get 5.3% raise", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "9ebf40f2-63a2-46d9-b099-5d38a785c332", + "url": "https://gothamist.com/news/it-will-take-care-of-our-family-nycs-for-hire-vehicle-drivers-get-53-raise", + "publication_date": "2022-02-12T08:01:16.672327-05:00", + "updated_date": null, + "description": "The raise comes to reflect the 5.3% rise in the Consumer Price Index.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329111, + "title": "Uber Lyft car (stock)", + "width": 4811, + "height": 3901, + "created_at": "2022-02-11T15:46:40.262184-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 14297728, + "file_hash": "e6b96f981d2b9a621da9ea18e616180453bcb6fc", + "alt": "A windshield that shows both Uber and Lyft logos", + "caption": "A for-hire vehicle in New York City", + "credit": "rblfmr / Shutterstock", + "credit_link": "https://enterprise.shutterstock.com/g/rblfmr", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_1614135751.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "d9529f5f-d72d-49cb-a268-1ca2d8f382cd" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + }, + { + "id": 18, + "first_name": "Elizabeth", + "last_name": "Kim", + "photo": 327468, + "job_title": "Reporter", + "biography": "Elizabeth Kim is a reporter on the People and Power desk who covers mayoral power. She previously covered the pandemic, housing, redevelopment and public spaces. A native of Queens, she speaks fluent Mandarin.", + "website": "", + "email": "ekim@gothamist.com", + "slug": "elizabeth-kim", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "uber", + "slug": "uber" + }, + { + "name": "lyft", + "slug": "lyft" + }, + { + "name": "minimum wage", + "slug": "minimum-wage" + }, + { + "name": "taxi and limousine commission", + "slug": "taxi-and-limousine-commission" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150832, + "meta": { + "first_published_at": "2022-02-09T18:41:55.825509-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150832/", + "html_url": "http://cms.prod.nypr.digital/news/mta-subway-ridership-surpasses-3-million-first-time-omicron-surge/", + "slug": "mta-subway-ridership-surpasses-3-million-first-time-omicron-surge" + }, + "title": "MTA: Subway ridership surpasses 3 million for first time since omicron surge", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "c985ec4d-f645-4345-a06b-19eaea49e433", + "url": "https://gothamist.com/news/mta-subway-ridership-surpasses-3-million-first-time-omicron-surge", + "publication_date": "2022-02-09T18:41:00-05:00", + "updated_date": null, + "description": "It's a hopeful sign for the MTA.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329101, + "title": "subway riders (no reuse)", + "width": 5576, + "height": 3717, + "created_at": "2022-02-09T18:08:47.988776-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2862558, + "file_hash": "1fef7abd9277140f237329c6f410593343d2e38f", + "alt": "Masked subway riders seen on an A from from outside the train car, through the window", + "caption": "Subway riders on an A train last month", + "credit": "SARAH YENESEL/EPA-EFE/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/shutterstock_editorial_12775885c.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "58d8c67e-2173-4740-be2a-54058e3dc3d4" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "Ridership", + "slug": "ridership" + }, + { + "name": "subway", + "slug": "subway" + }, + { + "name": "MTA", + "slug": "mta" + }, + { + "name": "pandemic", + "slug": "pandemic" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150606, + "meta": { + "first_published_at": "2022-01-23T11:01:24.993052-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150606/", + "html_url": "http://cms.prod.nypr.digital/news/want-be-voice-your-neighborhood-join-your-local-community-board/", + "slug": "want-be-voice-your-neighborhood-join-your-local-community-board" + }, + "title": "Want To Be A Voice For Your Neighborhood? Join Your Local Community Board", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "835fa32f-4216-4bb7-ab70-dc41ef4a78cb", + "url": "https://gothamist.com/news/want-be-voice-your-neighborhood-join-your-local-community-board", + "publication_date": "2022-01-23T11:01:24.993052-05:00", + "updated_date": null, + "description": "Applications are open across all five boroughs.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 98772, + "title": "2014_01_cb7rep.jpg", + "width": 640, + "height": 480, + "created_at": "2019-08-24T00:08:12.921894-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": null, + "file_hash": "", + "alt": "A community member addresses the DOT, NYPD and board", + "caption": "A community member addresses the DOT, NYPD and board", + "credit": "Jen Chung/Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/attachments/jen/2014_01_cb7rep.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": null + }, + "caption": "A 2014 community board meeting on the Upper West Side", + "image_link": "" + }, + "id": "1106cedf-546f-41b2-be72-db4f9ff28291" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "queens", + "slug": "queens" + }, + { + "name": "staten island", + "slug": "staten-island" + }, + { + "name": "civic duty", + "slug": "civic-duty" + }, + { + "name": "neighborhood", + "slug": "neighborhood" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + }, + { + "name": "bronx", + "slug": "bronx" + }, + { + "name": "manhattan", + "slug": "manhattan" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "community board", + "slug": "community-board" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150681, + "meta": { + "first_published_at": "2022-01-21T20:14:34.567928-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150681/", + "html_url": "http://cms.prod.nypr.digital/news/two-officers-shot-harlem-reports-fatalities/", + "slug": "two-officers-shot-harlem-reports-fatalities" + }, + "title": "One Officer Fatally Shot, Another \"Fighting For His Life\" In Harlem", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "0786a8c4-a941-40fb-b27a-34a470d14ac6", + "url": "https://gothamist.com/news/two-officers-shot-harlem-reports-fatalities", + "publication_date": "2022-01-21T20:14:00-05:00", + "updated_date": null, + "description": "The incident occurred on West 135th Street, after 6 p.m., police said.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328795, + "title": "Police shooting January 21 2022 Harlem Hospital (CS Muncy)", + "width": 1620, + "height": 1080, + "created_at": "2022-01-21T23:25:54.094409-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 292849, + "file_hash": "7cf5b693a269428ce9aacc4be47ae28fc3aca868", + "alt": "Mayor Eric Adams, with Police Commissioner Keechant Sewell to his right and Lieutenant Governor Brian Benjamin on his left, at Harlem Hospital on January 21, 2022", + "caption": "Mayor Eric Adams, with Police Commissioner Keechant Sewell to his right and Lieutenant Governor Brian Benjamin on his left, at Harlem Hospital on January 21, 2022", + "credit": "CS Muncy / Gothamist", + "credit_link": "https://www.csmuncyphotography.com/Artist.asp?ArtistID=27448&Akey=L6DFMQ9D&ajx=1", + "file": "https://cdn.cms.prod.nypr.digital/original_images/IMG_1463.JPG", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "7f2d0cd4-fc6e-4d9d-8e83-e8bfcb4e2dca" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + }, + { + "id": 143037, + "first_name": "David", + "last_name": "Cruz", + "photo": 334530, + "job_title": "News Editor", + "biography": "David edits and reports on the People & Power Desk. He came to WNYC and Gothamist in March 2020 after working at News 12 The Bronx, WCBS-AM, The Bronx Times Reporter, and Norwood News, where he served as editor-in-chief. Have a story idea? Send to dcruz@gothamist.com.", + "website": "", + "email": "", + "slug": "david-cruz", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "police shooting", + "slug": "police-shooting" + }, + { + "name": "eric adams", + "slug": "eric-adams" + }, + { + "name": "harlem", + "slug": "harlem" + }, + { + "name": "nypd", + "slug": "nypd" + }, + { + "name": "gun violence", + "slug": "gun-violence" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150525, + "meta": { + "first_published_at": "2022-01-05T15:41:23.642664-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150525/", + "html_url": "http://cms.prod.nypr.digital/news/hochul-promises-inter-borough-express-rail-service-connect-brooklyn-and-queens/", + "slug": "hochul-promises-inter-borough-express-rail-service-connect-brooklyn-and-queens" + }, + "title": "Hochul Promises \"Inter-Borough Express\" Rail Service To Connect Brooklyn And Queens", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "8ab34584-c893-45eb-8c38-d91256e7e8c3", + "url": "https://gothamist.com/news/hochul-promises-inter-borough-express-rail-service-connect-brooklyn-and-queens", + "publication_date": "2022-01-05T15:41:23.642664-05:00", + "updated_date": null, + "description": "The governor made the announcement during her State of the State address.", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 142057, + "default_image": { + "id": 300126, + "title": "IMG_9438.jpg", + "width": 3504, + "height": 2336, + "created_at": "2020-01-23T11:19:25.920257-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2850377, + "file_hash": "6750ce0a40252aa0812910b236ebf59d49ec0253", + "alt": "The MTA could add passenger service to these freight rail tracks", + "caption": "The MTA could add passenger service to these freight rail tracks", + "credit": "JAKE DOBKIN / GOTHAMIST", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/IMG_9438.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 28 + } + }, + "id": "aa33bb23-48f2-4e18-bc6d-e4e74d5c5f74" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "Bay Ridge Branch", + "slug": "bay-ridge-branch" + }, + { + "name": "queens", + "slug": "queens" + }, + { + "name": "Governor Kathy Hochul", + "slug": "governor-kathy-hochul" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + }, + { + "name": "Kathy Hochul", + "slug": "kathy-hochul" + }, + { + "name": "MTA", + "slug": "mta" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150497, + "meta": { + "first_published_at": "2022-01-01T12:48:53.457041-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150497/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/we-basically-have-down-science-sanitation-crews-collect-40-tons-new-years-eve-debris/", + "slug": "we-basically-have-down-science-sanitation-crews-collect-40-tons-new-years-eve-debris" + }, + "title": "\"We Basically Have This Down To A Science\": Sanitation Crews Collect Up To 40 Tons Of New Year's Eve Debris", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "5f0f39ae-87dd-4751-8ca3-c6a3b0ae8c11", + "url": "https://gothamist.com/arts-entertainment/we-basically-have-down-science-sanitation-crews-collect-40-tons-new-years-eve-debris", + "publication_date": "2022-01-01T12:48:53.457041-05:00", + "updated_date": null, + "description": "Sure, it's a smaller crowd, but it's still a big mess!", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 150496, + "default_image": { + "id": 328273, + "title": "Times Square New Year's 2022 clean up (Gretchen Robinette)", + "width": 1300, + "height": 867, + "created_at": "2022-01-01T11:05:30.969341-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1303381, + "file_hash": "5c462a75ed767f532c681efbe4296de140af1ee0", + "alt": "The Department of Sanitation crews cleaning up Times Square after revelers ring in 2022 - workers aided by mechanical sweepers, big collection trucks, and regular brooms.", + "caption": "NYC Department of Sanitation workers clean up Times Square, January 1, 2022", + "credit": "Gretchen Robinette / Gothamist", + "credit_link": "https://www.gretchenrobinette.com/", + "file": "https://cdn.cms.prod.nypr.digital/original_images/NYE-58.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + } + }, + "id": "ae20730e-432e-47a7-9e4c-12c2d77a4490" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + }, + { + "id": 141576, + "first_name": "Gretchen", + "last_name": "Robinette", + "job_title": "Photojournalist", + "biography": "", + "website": "", + "email": "", + "slug": "gretchen-robinette", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "new year's eve", + "slug": "new-years-eve" + }, + { + "name": "department of sanitation", + "slug": "department-of-sanitation" + }, + { + "name": "2022", + "slug": "2022" + }, + { + "name": "Times Square", + "slug": "times-square" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150494, + "meta": { + "first_published_at": "2022-01-01T11:08:35.316796-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150494/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/times-square-welcomes-2002-masked-and-vaxxed-crowd/", + "slug": "times-square-welcomes-2002-masked-and-vaxxed-crowd" + }, + "title": "Photos: Times Square Welcomes 2022 With Masked And Vaxxed Crowd", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "35ce40c3-d572-42ed-b023-3ba46c170134", + "url": "https://gothamist.com/arts-entertainment/times-square-welcomes-2002-masked-and-vaxxed-crowd", + "publication_date": "2022-01-01T11:08:00-05:00", + "updated_date": null, + "description": "The \"Crossroads of the World\" welcomed the public back, but with rules.", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 150493, + "default_image": { + "id": 328232, + "title": "2022 New Year's Eve Times Square (Gretchen Robinette)", + "width": 1300, + "height": 867, + "created_at": "2022-01-01T09:36:17.441730-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1216509, + "file_hash": "cf77fe055e71917cf5df9421f765212aa25fae25", + "alt": "Revelers in Times Square, wearing masked, during the New Year's Eve celebrations to welcome 2022", + "caption": "New Year's Eve in Times Square, December 31, 2021", + "credit": "Gretchen Robinette / Gothamist", + "credit_link": "https://www.gretchenrobinette.com/", + "file": "https://cdn.cms.prod.nypr.digital/original_images/NYE-11.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + } + }, + "id": "e0c67d2f-0e3d-4669-b1b1-cf5a4c5ecfc7" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "new year's eve", + "slug": "new-years-eve" + }, + { + "name": "pandemic", + "slug": "pandemic" + }, + { + "name": "Times Square", + "slug": "times-square" + }, + { + "name": "new york city", + "slug": "new-york-city" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150473, + "meta": { + "first_published_at": "2021-12-29T09:41:47.154127-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150473/", + "html_url": "http://cms.prod.nypr.digital/news/new-law-requires-mta-consider-bicycle-and-pedestrian-access-bridges-and-stations/", + "slug": "new-law-requires-mta-consider-bicycle-and-pedestrian-access-bridges-and-stations" + }, + "title": "New Law Requires MTA \"To Consider Bicycle And Pedestrian Access\" At Bridges And Stations", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "7f317901-b542-4164-aa4e-102eadf4d403", + "url": "https://gothamist.com/news/new-law-requires-mta-consider-bicycle-and-pedestrian-access-bridges-and-stations", + "publication_date": "2021-12-29T09:41:47.154127-05:00", + "updated_date": null, + "description": "Governor Kathy Hochul signed the legislation, which is to promote cycling and pedestrian access at bridges and stations, on Tuesday.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 322612, + "title": "Bicycles Grand Central (MTA)", + "width": 2048, + "height": 1444, + "created_at": "2021-08-12T16:41:07.292037-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1028266, + "file_hash": "09dbc3c9d1af77fecd40f75c28a55b6e3aa21267", + "alt": "MTA Metro-North President Catherine Rinaldi and Long Island Rail Road President Phil Eng are joined by Bike New York President Ken Podziba and Alzheimer’s Association Vice President of Development Joanne Luciano in Grand Central Terminal, by the clock, with bicycles in front of them", + "caption": "MTA Metro-North President Catherine Rinaldi and Long Island Rail Road President Phil Eng are joined by Bike New York President Ken Podziba and Alzheimer’s Association Vice President of Development Joanne Luciano in Grand Central Terminal on August 12, 2021", + "credit": "Marc A. Hermann / MTA", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/51374733905_8b4a576d21_k.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "MTA Metro-North President Catherine Rinaldi and Long Island Rail Road President Phil Eng are joined by Bike New York President Ken Podziba and Alzheimer’s Association Vice President of Development Joanne Luciano in Grand Central Terminal, in August 2021, when the MTA announced it was dropping its bike permit fee", + "image_link": "https://gothamist.com/news/lure-more-cyclists-mta-drops-bicycle-permit-commuter-rails" + }, + "id": "d4216ef0-bb6e-44af-95f8-b0b3e0008b3e" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "bike new york", + "slug": "bike-new-york" + }, + { + "name": "subway", + "slug": "subway" + }, + { + "name": "bus", + "slug": "bus" + }, + { + "name": "MTA", + "slug": "mta" + }, + { + "name": "metro north", + "slug": "metro-north" + }, + { + "name": "long island rail road", + "slug": "long-island-rail-road" + }, + { + "name": "we the commuters", + "slug": "we-the-commuters" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150467, + "meta": { + "first_published_at": "2021-12-28T10:40:47.067997-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150467/", + "html_url": "http://cms.prod.nypr.digital/news/apple-closes-nyc-locations-only-allows-online-pick-ups/", + "slug": "apple-closes-nyc-locations-only-allows-online-pick-ups" + }, + "title": "Apple Closes NYC Locations, Allows Online Pick-Ups", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "2d7c56db-4de0-44cc-805d-7762b9af7a00", + "url": "https://gothamist.com/news/apple-closes-nyc-locations-only-allows-online-pick-ups", + "publication_date": "2021-12-28T10:40:00-05:00", + "updated_date": "2021-12-28T14:15:00-05:00", + "description": "In-store or Genius Bar appointments may be made at some stores.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 107959, + "title": "e037851dd072816applestore2-jpg.jpeg", + "width": 1600, + "height": 1067, + "created_at": "2019-08-24T00:47:56.716567-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1436130, + "file_hash": "", + "alt": "", + "caption": "", + "credit": "Scott Heins/Gothamist", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/gothamistgallery/2016/7/28/e037851dd072816applestore2-jpg.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": null + }, + "caption": "The Apple Store in Wililamsburg, Brooklyn, pre-pandemic.", + "image_link": "" + }, + "id": "8bd42739-978c-44e3-886d-b33fc87047fb" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "omicron", + "slug": "omicron" + }, + { + "name": "apple store", + "slug": "apple-store" + }, + { + "name": "new york city", + "slug": "new-york-city" + }, + { + "name": "pandemic", + "slug": "pandemic" + }, + { + "name": "COVID-19", + "slug": "covid-19" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150461, + "meta": { + "first_published_at": "2021-12-27T14:45:08.892591-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150461/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/patti-smith-receives-key-new-york-city-i-wish-i-could-give-nyc-key-me/", + "slug": "patti-smith-receives-key-new-york-city-i-wish-i-could-give-nyc-key-me" + }, + "title": "Patti Smith Receives Key To New York City: \"I Wish I Could Give NYC The Key To Me\"", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "57b43548-867b-484a-9930-f3369c13d365", + "url": "https://gothamist.com/arts-entertainment/patti-smith-receives-key-new-york-city-i-wish-i-could-give-nyc-key-me", + "publication_date": "2021-12-27T14:45:00-05:00", + "updated_date": null, + "description": "Last week, Mayor de Blasio gave a key to Spike Lee.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328096, + "title": "Patti Smith (NYC Mayor's office)", + "width": 2048, + "height": 1364, + "created_at": "2021-12-27T12:46:02.793011-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 306027, + "file_hash": "8038543ccaf2fedab6c2d2556e551160b42c2ff9", + "alt": "Bill de Blasio hugs Patti Smith as he presents her the key to NYC", + "caption": "Mayor Bill de Blasio gives Patti Smith the Key to New York City", + "credit": "NYC Mayor's Office", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/bdbpatti.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "755796ab-3ed7-4045-8a6a-4f80569da824" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "patti smith", + "slug": "patti-smith" + }, + { + "name": "mayor bill de blasio", + "slug": "mayor-bill-de-blasio" + }, + { + "name": "spike lee", + "slug": "spike-lee" + }, + { + "name": "Key to NYC", + "slug": "key-to-nyc" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150445, + "meta": { + "first_published_at": "2021-12-26T08:01:15.399045-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/150445/", + "html_url": "http://cms.prod.nypr.digital/news/ny-state-drops-two-more-vessels-including-chickadee-tugboat-waters-artificial-reefing/", + "slug": "ny-state-drops-two-more-vessels-including-chickadee-tugboat-waters-artificial-reefing" + }, + "title": "NY State Drops Two More Vessels, Including \"Chickadee\" The Tugboat, Into Waters For Artificial Reefing", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "4ae4ada7-687a-41de-a627-a85f48e66579", + "url": "https://gothamist.com/news/ny-state-drops-two-more-vessels-including-chickadee-tugboat-waters-artificial-reefing", + "publication_date": "2021-12-26T08:01:15.399045-05:00", + "updated_date": null, + "description": "There are twelve artificial reefs in the area—two in the Long Island Sound, two in Great South Bay, and eight in the Atlantic Ocean, south of Long Island.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328063, + "title": "Chickadee (NY State DEC)", + "width": 4608, + "height": 3456, + "created_at": "2021-12-22T16:33:48.409436-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3824537, + "file_hash": "1ef4a78eb895d77a952e1f302e7620c7139f0313", + "alt": "An old-looking tugboat on the sea", + "caption": "The Chickadee", + "credit": "NY State Department of Environmental Conservation", + "credit_link": "", + "file": "https://cdn.cms.prod.nypr.digital/original_images/45-foot_steel_tugboat_Chickadee_deployed_to_McAllister_Grounds_Reef_1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + }, + "caption": "", + "image_link": "" + }, + "id": "612379eb-e0c5-4546-bfa8-5bf145f21c57" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "long island sound", + "slug": "long-island-sound" + }, + { + "name": "artificial reef", + "slug": "artificial-reef" + }, + { + "name": "ny state", + "slug": "ny-state" + }, + { + "name": "Department of Environmental Conservation", + "slug": "department-of-environmental-conservation" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.prod.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/system_messages.json b/cypress/fixtures/aviary/system_messages.json new file mode 100644 index 00000000..7dcfb8c8 --- /dev/null +++ b/cypress/fixtures/aviary/system_messages.json @@ -0,0 +1,23 @@ +{ + "id": 2, + "meta": { + "type": "utils.SystemMessagesSettings", + "detail_url": "https://cms.prod.nypr.digital/api/v2/system_messages/2/" + }, + "product_banners": [ + { + "id": "0e0ebcc5-2dda-4aac-aea5-f079f608aa92", + "type": "product_banner", + "value": { + "title": "Get a Free Gothamist Tote!", + "description": "

Donate today and receive our new Gothamist rat tote.

", + "is_live_eligible": true, + "start_time": "2023-03-08T16:00:00-05:00", + "button_text": "Donate Now", + "button_link": "https://pledge.wnyc.org/support/gothamist/?utm_source=gothamist-dot-com&utm_campaign=march23-rat-tote&", + "frequency": 72, + "location": "BOTTOM" + } + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/system_messages_bottom.json b/cypress/fixtures/aviary/system_messages_bottom.json new file mode 100644 index 00000000..7dcfb8c8 --- /dev/null +++ b/cypress/fixtures/aviary/system_messages_bottom.json @@ -0,0 +1,23 @@ +{ + "id": 2, + "meta": { + "type": "utils.SystemMessagesSettings", + "detail_url": "https://cms.prod.nypr.digital/api/v2/system_messages/2/" + }, + "product_banners": [ + { + "id": "0e0ebcc5-2dda-4aac-aea5-f079f608aa92", + "type": "product_banner", + "value": { + "title": "Get a Free Gothamist Tote!", + "description": "

Donate today and receive our new Gothamist rat tote.

", + "is_live_eligible": true, + "start_time": "2023-03-08T16:00:00-05:00", + "button_text": "Donate Now", + "button_link": "https://pledge.wnyc.org/support/gothamist/?utm_source=gothamist-dot-com&utm_campaign=march23-rat-tote&", + "frequency": 72, + "location": "BOTTOM" + } + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/system_messages_empty.json b/cypress/fixtures/aviary/system_messages_empty.json new file mode 100644 index 00000000..c3cec060 --- /dev/null +++ b/cypress/fixtures/aviary/system_messages_empty.json @@ -0,0 +1,8 @@ +{ + "id": 2, + "meta": { + "type": "utils.SystemMessagesSettings", + "detail_url": "https://cms.prod.nypr.digital/api/v2/system_messages/2/" + }, + "product_banners": [] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/tag-articles.json b/cypress/fixtures/aviary/tag-articles.json new file mode 100644 index 00000000..cfd3bb08 --- /dev/null +++ b/cypress/fixtures/aviary/tag-articles.json @@ -0,0 +1,1327 @@ +{ + "meta": { + "total_count": 819 + }, + "items": [ + { + "id": 150765, + "meta": { + "first_published_at": "2022-02-09T09:00:52.263794-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/150765/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/dog-run-runaround-how-volunteers-scrap-claw-keep-nycs-dog-parks-running/", + "slug": "dog-run-runaround-how-volunteers-scrap-claw-keep-nycs-dog-parks-running" + }, + "title": "The dog run runaround: How volunteers scrap & claw to keep NYC's dog parks running", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "b81c2850-6e82-4751-ba4c-820fe9590f8a", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/dog-run-runaround-how-volunteers-scrap-claw-keep-nycs-dog-parks-running", + "publication_date": "2022-02-09T09:00:00-05:00", + "updated_date": null, + "description": "\"You know, it's kind of a thankless job.\"", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329063, + "title": "20220128_160922.jpg", + "width": 4032, + "height": 3024, + "created_at": "2022-02-07T16:06:20.953502-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 8827544, + "file_hash": "bea568583f3c8fbf81592211ad748e2c11cb983f", + "alt": "A photo of Lodati Park Dog Run", + "caption": "Lodati Park Dog Run", + "credit": "Rick Duro", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/20220128_160922.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "", + "image_link": "" + }, + "id": "fe2bc67e-a979-4ede-a572-8c2726a28fbd" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "forest park", + "slug": "forest-park" + }, + { + "name": "maria hernandez park", + "slug": "maria-hernandez-park" + }, + { + "name": "parks", + "slug": "parks" + }, + { + "name": "brooklyn", + "slug": "brooklyn" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "dog runs", + "slug": "dog-runs" + }, + { + "name": "queens", + "slug": "queens" + }, + { + "name": "dog", + "slug": "dog" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150729, + "meta": { + "first_published_at": "2022-02-04T11:40:58.812737-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/150729/", + "html_url": "http://cms.prod.nypr.digital/news/new-yorkers-think-these-are-best-and-worst-dog-runs-nyc/", + "slug": "new-yorkers-think-these-are-best-and-worst-dog-runs-nyc" + }, + "title": "New Yorkers Think These Are The Best And Worst Dog Runs In NYC", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "04d0699d-3dbb-47bb-ba1f-27cd2a790e42", + "url": "https://gothamist-vue3demo.gothamist.com/news/new-yorkers-think-these-are-best-and-worst-dog-runs-nyc", + "publication_date": "2022-02-04T11:40:58.812737-05:00", + "updated_date": null, + "description": "New Yorkers are passionate about the state of the city's public facilities for dogs.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328962, + "title": "Screen Shot 2022-02-01 at 1.08.02 PM.png", + "width": 1366, + "height": 908, + "created_at": "2022-02-01T13:08:44.207474-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3216527, + "file_hash": "a3b1a82338a43eec011695fa2f021473ac9eebb6", + "alt": "A photo of a dog at a dog run in Brooklyn", + "caption": "", + "credit": "Levi Mandel", + "credit_link": "https://www.flickr.com/photos/thechickenkid/3371533456/in/photolist-nYp6y2-q1Bwwd-ofSDP2-odQwyC-hPxnSD-Rz18uu-9TZNs8-qugXEw-oxipB5-ofGeBU-qhnh4R-m6VLST-nYpgS8-iSVEAi-ofSA8z-8qHm2k-8wb2qH-68VZrb-atMyNP-9A53Y3-9B331v-9B4wH9-9AcQPN", + "file": "https://cdn.cms.demo.nypr.digital/original_images/Screen_Shot_2022-02-01_at_1.08.02_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "", + "image_link": "" + }, + "id": "7d30964f-f390-454a-92ad-4fb00844a739" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "parks", + "slug": "parks" + }, + { + "name": "dog runs", + "slug": "dog-runs" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "Rate Your Dog Run", + "slug": "rate-your-dog-run" + }, + { + "name": "pups", + "slug": "pups" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150709, + "meta": { + "first_published_at": "2022-01-27T09:00:52.873793-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/150709/", + "html_url": "http://cms.prod.nypr.digital/news/rats-trash-tennis-balls-what-grade-would-you-give-your-nyc-dog-run/", + "slug": "rats-trash-tennis-balls-what-grade-would-you-give-your-nyc-dog-run" + }, + "title": "Rats, Trash & Tennis Balls: How Would You Rate Your NYC Dog Run?", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "73fca20a-a59f-4b5d-a224-1c44e037d60d", + "url": "https://gothamist-vue3demo.gothamist.com/news/rats-trash-tennis-balls-what-grade-would-you-give-your-nyc-dog-run", + "publication_date": "2022-01-27T09:00:00-05:00", + "updated_date": null, + "description": "We're asking for your help to identify some of the best and worst public dog runs across the five boroughs.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328848, + "title": "DOGPARK2.jpg", + "width": 1440, + "height": 1073, + "created_at": "2022-01-26T13:11:29.927359-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1871309, + "file_hash": "2d02f0863265872b3b326685111122478b17129f", + "alt": "A photo of four dogs at the 105th Street Dog Run", + "caption": "Dogs hanging out at the 105th Street Dog Run", + "credit": "Ben Yakas Studios", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/DOGPARK2.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "", + "image_link": "" + }, + "id": "fa3e4179-272d-4e5e-9cb9-0b4d8090e220" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 44, + "first_name": "Jen", + "last_name": "Carlson", + "photo": 327430, + "job_title": "Editor", + "biography": "Jen Carlson has been an editor with Gothamist since 2004. Her writing has also been published on Jezebel, Deadspin, and a number of composition notebooks before the internet existed. In 2015 she won a spot in the inaugural Amtrak Residency program and traveled the nation via rail. She has an Ed Hardy tattoo, but she can explain.\r\n\r\nShe is currently an editor and reporter on the NYC Accountability desk in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jencarlson@gothamist.com", + "slug": "jen-carlson", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/jenist" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jencarlson" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/jendcarlson/" + } + ] + }, + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "mccarren park", + "slug": "mccarren-park" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "dog runs", + "slug": "dog-runs" + }, + { + "name": "Leptospirosis", + "slug": "leptospirosis" + }, + { + "name": "Rate Your Dog Run", + "slug": "rate-your-dog-run" + }, + { + "name": "teekay yakas", + "slug": "teekay-yakas" + }, + { + "name": "pups", + "slug": "pups" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150690, + "meta": { + "first_published_at": "2022-01-23T15:19:26.786771-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/150690/", + "html_url": "http://cms.prod.nypr.digital/news/leptospirosis-dog-deaths-nyc-parks-2022/", + "slug": "leptospirosis-dog-deaths-nyc-parks-2022" + }, + "title": "City Investigating Dog Deaths Possibly Linked To Brooklyn Park", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "ea39b203-4ce1-4fb8-b2a1-47d8046eccb8", + "url": "https://gothamist-vue3demo.gothamist.com/news/leptospirosis-dog-deaths-nyc-parks-2022", + "publication_date": "2022-01-23T15:19:26.786771-05:00", + "updated_date": null, + "description": "“New York City dogs are at high risk [for leptospirosis] because of the rat population,” one local vet told WNYC/Gothamist. “Anywhere there’s runoff, you’re at risk.”", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 328822, + "title": "shutterstock_editorial_11749936l.jpg", + "width": 4441, + "height": 2961, + "created_at": "2022-01-23T15:12:27.540081-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 822161, + "file_hash": "06b6f481a611d721d74674061abae62ee9bcf956", + "alt": "A dog in McCarren Park in 2021.", + "caption": "A dog in McCarren Park in 2021.", + "credit": "Erik Pendzich/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/shutterstock_editorial_11749936l.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 21 + }, + "caption": "", + "image_link": "" + }, + "id": "48d9f892-f2f7-4f58-8ff5-8f5aabe8e8ce" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 143225, + "first_name": "Katherine", + "last_name": "Fung", + "job_title": "Reporter + Producer", + "biography": "Katherine Fung is a reporter and producer in the newsroom.", + "website": "", + "email": "", + "slug": "katherine-fung-wnyc", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "health department", + "slug": "health-department" + }, + { + "name": "mccarren park", + "slug": "mccarren-park" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "Leptospirosis", + "slug": "leptospirosis" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 150663, + "meta": { + "first_published_at": "2022-01-20T15:35:36.777865-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/150663/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/governors-island-ferry-service-dogs-2022/", + "slug": "governors-island-ferry-service-dogs-2022" + }, + "title": "More Ferries & More Dogs Coming To Governors Island This Year", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "42260fef-98ef-4881-a3cc-1df185898d8c", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/governors-island-ferry-service-dogs-2022", + "publication_date": "2022-01-20T15:35:36.777865-05:00", + "updated_date": null, + "description": "Governors Island just became more accessible with extended ferry service. And now your dog can go, too.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 39345, + "title": "f85310bafimg_6408-1-jpg.jpeg", + "width": 4032, + "height": 3024, + "created_at": "2019-08-23T19:50:13.365775-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3927448, + "file_hash": "", + "alt": "The working dogs at sunrise", + "caption": "Sunrise patrol", + "credit": "Jen Carlson/Gothamist", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/gothamistgallery/2018/12/11/f85310bafimg_6408-1-jpg.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": null + }, + "caption": "The working dogs of Governors Island.", + "image_link": "" + }, + "id": "ab3af6f1-bfed-4b24-aebf-852f15a690e4" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 44, + "first_name": "Jen", + "last_name": "Carlson", + "photo": 327430, + "job_title": "Editor", + "biography": "Jen Carlson has been an editor with Gothamist since 2004. Her writing has also been published on Jezebel, Deadspin, and a number of composition notebooks before the internet existed. In 2015 she won a spot in the inaugural Amtrak Residency program and traveled the nation via rail. She has an Ed Hardy tattoo, but she can explain.\r\n\r\nShe is currently an editor and reporter on the NYC Accountability desk in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jencarlson@gothamist.com", + "slug": "jen-carlson", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/jenist" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jencarlson" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/jendcarlson/" + } + ] + } + ], + "tags": [ + { + "name": "governors island", + "slug": "governors-island" + }, + { + "name": "nyc ferry", + "slug": "nyc-ferry" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "ferry", + "slug": "ferry" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 149957, + "meta": { + "first_published_at": "2021-11-01T16:16:48.131147-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/149957/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/photos-2021-fort-greene-great-pupkin/", + "slug": "photos-2021-fort-greene-great-pupkin" + }, + "title": "Photos: Howie's Hot Dog Cart Won At The 2021 Fort Greene Great PUPkin", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "301ca5e3-9c4f-4746-9e0c-bbd180c6738b", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/photos-2021-fort-greene-great-pupkin", + "publication_date": "2021-11-01T16:16:00-04:00", + "updated_date": null, + "description": "Hundreds of people turned out to watch 87 brave, beautiful pups compete at the 2021 Great PUPkin Dog Costume Contest in Fort Greene.", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 149959, + "default_image": { + "id": 326416, + "title": "Ft Greene Pupkin Costume Contest-TodSeelie-66.jpg", + "width": 2000, + "height": 1331, + "created_at": "2021-11-01T14:55:09.978301-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 941153, + "file_hash": "3f8fffafbe0e9e78b9c85b70f2e4206e94657961", + "alt": "Photos from The 2021 Fort Greene Great PUPkin Dog Costume Contest", + "caption": "Howie's Hot Dog Cart", + "credit": "Tod Seelie/Gothamist", + "credit_link": "https://www.todseelie.com/", + "file": "https://cdn.cms.demo.nypr.digital/original_images/Ft_Greene_Pupkin_Costume_Contest-TodSeelie-66.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + } + }, + "id": "45979856-bbdc-45c8-9d7d-698fe9b4c8aa" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "fort greene", + "slug": "fort-greene" + }, + { + "name": "ft greene park", + "slug": "ft-greene-park" + }, + { + "name": "great pupkin", + "slug": "great-pupkin" + }, + { + "name": "halloween", + "slug": "halloween" + }, + { + "name": "fort greene pupkin", + "slug": "fort-greene-pupkin" + }, + { + "name": "dogs", + "slug": "dogs" + } + ], + "show_as_feature": true, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 149874, + "meta": { + "first_published_at": "2021-10-25T11:09:58.860936-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/149874/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/photos-all-best-costumes-tompkins-square-halloween-dog-parade-2021/", + "slug": "photos-all-best-costumes-tompkins-square-halloween-dog-parade-2021" + }, + "title": "Photos: All The Best Costumes At The 2021 Tompkins Square Halloween Dog Parade", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "5eee35c8-b360-4dc7-b843-3b3bc5ee63b2", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/photos-all-best-costumes-tompkins-square-halloween-dog-parade-2021", + "publication_date": "2021-10-25T11:09:00-04:00", + "updated_date": null, + "description": "From Schitt's Creek to the Staten Island Ferry, here are all the creative costumes from this year's big Halloween dog parade.", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 149879, + "default_image": { + "id": 325253, + "title": "Tompkins Square Park dog parade 2021", + "width": 3894, + "height": 2596, + "created_at": "2021-10-25T10:59:06.309894-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1026993, + "file_hash": "949102afa49f9725ea1c0040f67ef3a2e2f169f4", + "alt": "Dogs in costume at the Tompkins Square Park Halloween Parade", + "caption": "", + "credit": "Scott Lynch / Gothamist", + "credit_link": "http://instagram.com/scoboco", + "file": "https://cdn.cms.demo.nypr.digital/original_images/doghalloween-143.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 21 + } + }, + "id": "664b9cbd-82f8-4f7f-9780-6ae0c927a19d" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 19, + "first_name": "Scott", + "last_name": "Lynch", + "photo": 327700, + "job_title": "Photojournalist", + "biography": "Photojournalist, food writer, preschool receptionist. Love NYC.", + "website": "", + "email": "scoboco@gmail.com", + "slug": "scott-lynch", + "social_media_profile": [ + { + "service": "instagram", + "profile_url": "https://www.instagram.com/scoboco/" + } + ] + } + ], + "tags": [ + { + "name": "halloween", + "slug": "halloween" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "tompkins square halloween dog parade", + "slug": "tompkins-square-halloween-dog-parade" + }, + { + "name": "costume", + "slug": "costume" + } + ], + "show_as_feature": true, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 148727, + "meta": { + "first_published_at": "2021-06-22T16:21:23.641350-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/148727/", + "html_url": "http://cms.prod.nypr.digital/news/dog-bites-traffic/", + "slug": "dog-bites-traffic" + }, + "title": "MTA Honors Brave Lost Dog Who Ran Through Queens-Midtown Tunnel During Rush Hour (And Officers Who Helped Her)", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "6f0ad056-c73a-4faf-adf1-3f029370d0ee", + "url": "https://gothamist-vue3demo.gothamist.com/news/dog-bites-traffic", + "publication_date": "2021-06-22T16:21:23.641350-04:00", + "updated_date": null, + "description": "You won't want to miss out on the latest indie short film, \"Indie The Dog Makes Her Way Through The Queens Midtown Tunnel.\"", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 148728, + "default_image": { + "id": 321067, + "title": "51263346207_67f1e3fd80_k.jpg", + "width": 2048, + "height": 1396, + "created_at": "2021-06-22T14:26:55.059037-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 549732, + "file_hash": "329f089a4574fe973321ba277c7f3f2803a2f461", + "alt": "Photos of MTA Bridges & Tunnels Vice President and Chief of Operations Richard Hildebrand presenting commendations to Sgt. Orlando Caholo and BTO Heather Minutello at the Queens Midtown Tunnel after rescuing the lost dog Indie", + "caption": "Owner Heather Angus with Indie the dog", + "credit": "Marc A. Hermann / MTA", + "credit_link": "https://www.flickr.com/photos/mtaphotos/sets/72157719447762101/", + "file": "https://cdn.cms.demo.nypr.digital/original_images/51263346207_67f1e3fd80_k.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + } + }, + "id": "a5d19c95-91d1-469a-ae75-e340905027ba" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "MTA", + "slug": "mta" + }, + { + "name": "queens midtown tunnel", + "slug": "queens-midtown-tunnel" + }, + { + "name": "lost dog", + "slug": "lost-dog" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "dog news", + "slug": "dog-news" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 148641, + "meta": { + "first_published_at": "2021-06-14T12:08:01.858224-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/148641/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/photos-wasabi-pekingese-wins-westminster-dog-show-2021/", + "slug": "photos-wasabi-pekingese-wins-westminster-dog-show-2021" + }, + "title": "Photos: Wasabi The Pekingese Wins Westminster Dog Show 2021", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "b36279ce-93a4-4feb-9c1d-da567ac7330c", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/photos-wasabi-pekingese-wins-westminster-dog-show-2021", + "publication_date": "2021-06-14T12:08:01.858224-04:00", + "updated_date": null, + "description": "Look at that face!", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 148646, + "default_image": { + "id": 320754, + "title": "Westminster Dog Show 2021", + "width": 3119, + "height": 2079, + "created_at": "2021-06-14T11:02:05.117741-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 829746, + "file_hash": "21957a639c493f95331e0b4c471fa585752e671a", + "alt": "Wasabi sticks out his tongue as he races to walk", + "caption": "Pekingese walks with its handler in the Best in Show at the Westminster Kennel Club dog show, in Tarrytown, N.Y. The dog won the blue ribbon in Best in Show on June 13, 2021", + "credit": "Kathy Willens/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/shutterstock_editorial_12071763o.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + } + }, + "id": "36ac06ea-b29c-4f61-86ce-7d47d7916348" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "westminster kennel club dog show", + "slug": "westminster-kennel-club-dog-show" + }, + { + "name": "pekingese", + "slug": "pekingese" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "westminster dog show", + "slug": "westminster-dog-show" + } + ], + "show_as_feature": true, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 147060, + "meta": { + "first_published_at": "2021-02-01T14:55:47.016543-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/147060/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/fact-these-nyc-dogs-are-lovin-blizzard/", + "slug": "fact-these-nyc-dogs-are-lovin-blizzard" + }, + "title": "Fact: These NYC Dogs Are Lovin' All This Snow", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "3236caf7-c44e-4aa6-a75a-b4282ce13e9e", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/fact-these-nyc-dogs-are-lovin-blizzard", + "publication_date": "2021-02-01T14:55:00-05:00", + "updated_date": null, + "description": "You might not love the 20-40 MPH wind with snow being pelted in your face, but your dog is into it!", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 147059, + "default_image": { + "id": 316977, + "title": "Snow dogs February 2021", + "width": 5749, + "height": 3833, + "created_at": "2021-02-01T13:26:26.130158-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2662090, + "file_hash": "ef85207d2f4eb12c98aa65052d1859d32be2e41f", + "alt": "An annoyed looking bulldog climbing through the snow", + "caption": "Possible a mixed reaction to the snow in Crown Heights", + "credit": "Scott Heins / Gothamist", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/Photo_Feb_01_11_36_18_AM.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + } + }, + "id": "c8de462a-09c9-4da2-b95b-a6b4c794dbb2" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "snow", + "slug": "snow" + }, + { + "name": "Blizzard", + "slug": "blizzard" + }, + { + "name": "blizzard 2021", + "slug": "blizzard-2021" + }, + { + "name": "dogs", + "slug": "dogs" + } + ], + "show_as_feature": true, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/tag-more.json b/cypress/fixtures/aviary/tag-more.json new file mode 100644 index 00000000..11a481a6 --- /dev/null +++ b/cypress/fixtures/aviary/tag-more.json @@ -0,0 +1,1318 @@ +{ + "meta": { + "total_count": 819 + }, + "items": [ + { + "id": 142498, + "meta": { + "first_published_at": "2020-02-21T12:17:48.773419-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/142498/", + "html_url": "http://cms.prod.nypr.digital/news/ny-cat-and-dog-owners-will-have-get-creative-plastic-bag-ban/", + "slug": "ny-cat-and-dog-owners-will-have-get-creative-plastic-bag-ban" + }, + "title": "NY Cat And Dog Owners Will Have To Get Creative With Plastic Bag Ban", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "a45aea05-7b50-4b0f-9d67-01021ede0a1f", + "url": "https://gothamist-vue3demo.gothamist.com/news/ny-cat-and-dog-owners-will-have-get-creative-plastic-bag-ban", + "publication_date": "2020-02-21T12:17:48.773419-05:00", + "updated_date": null, + "description": "“Necessity is the mother of invention. I’m not giving up my cat, I love her dearly so I'm marching on.”", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 301283, + "title": "shutterstock_1155216337.jpg", + "width": 5760, + "height": 3840, + "created_at": "2020-02-21T12:09:59.448671-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 12280109, + "file_hash": "00844f64ff7cde1175c053478e7a75b7237690f4", + "alt": "A cat sits next to a kitty litter box.", + "caption": "A cat sits next to a kitty litter box looking up at its owner with a quizzical expression as if to say, \"Surely, you can figure this bag thing out right?\"", + "credit": "New Africa / Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/shutterstock_1155216337.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 23 + }, + "caption": "", + "image_link": "" + }, + "id": "693bf339-62f9-4b05-818f-69f7a3283c49" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 40, + "first_name": "Gwynne", + "last_name": "Hogan", + "photo": 328396, + "job_title": "Reporter", + "biography": "Gwynne Hogan is a general assignment reporter who’s worked at WNYC and Gothamist since 2017. Before joining WNYC, she did stints at the New York Post and the late DNAinfo New York and studied at the CUNY Newmark Graduate School of Journalism, graduating with the class of 2014. She won a Gracie award for her coverage of the COVID-19 pandemic and a Society of Professional Journalists award for her reporting on one Rockaway school’s efforts to avoid suspending students. Follow her on Twitter.", + "website": "", + "email": "", + "slug": "gwynne-hogan", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/GwynneFitz" + } + ] + } + ], + "tags": [ + { + "name": "plastic bag ban", + "slug": "plastic-bag-ban" + }, + { + "name": "cats", + "slug": "cats" + }, + { + "name": "dogs", + "slug": "dogs" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 142351, + "meta": { + "first_published_at": "2020-02-12T13:31:43.097541-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/142351/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/photos-hanging-out-backstage-supernaturally-chill-dogs-westminster-dog-show-2020/", + "slug": "photos-hanging-out-backstage-supernaturally-chill-dogs-westminster-dog-show-2020" + }, + "title": "Photos: Hanging Out Backstage With The Supernaturally Chill Dogs Of Westminster Dog Show 2020", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "5a581164-c6fc-4e70-849d-11f3f689c70c", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/photos-hanging-out-backstage-supernaturally-chill-dogs-westminster-dog-show-2020", + "publication_date": "2020-02-12T13:31:43.097541-05:00", + "updated_date": null, + "description": "Backstage at Westminster, the fierce competition gave way to utterly polite chaos, soundtracked by a symphony of hair dryers.", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 142356, + "default_image": { + "id": 300891, + "title": "DogShow-97.jpg", + "width": 2000, + "height": 1333, + "created_at": "2020-02-11T15:20:07.480037-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1804998, + "file_hash": "6130e9551bb465e2a690594a909b2ceb982b1628", + "alt": "Photos of various dogs from the 2020 Westminster Dog Show", + "caption": "", + "credit": "Gretchen Robinette/Gothamist", + "credit_link": "https://www.gretchenrobinette.com/", + "file": "https://cdn.cms.demo.nypr.digital/original_images/DogShow-97.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + } + }, + "id": "2827fc08-117d-40d3-ae32-a4672af9489f" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "westminster", + "slug": "westminster" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "westminster kennel club dog show", + "slug": "westminster-kennel-club-dog-show" + }, + { + "name": "westminster dog show", + "slug": "westminster-dog-show" + }, + { + "name": "dog", + "slug": "dog" + }, + { + "name": "good doggy", + "slug": "good-doggy" + } + ], + "show_as_feature": true, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 142363, + "meta": { + "first_published_at": "2020-02-12T11:41:22.229967-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/142363/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/siba-rock-star-standard-poodle-wins-best-show-westminster-dog-show/", + "slug": "siba-rock-star-standard-poodle-wins-best-show-westminster-dog-show" + }, + "title": "Siba, The Rock-Star Standard Poodle, Wins Best In Show At Westminster Dog Show", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "dc610e6a-b01f-44d6-a218-41b4c16b116d", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/siba-rock-star-standard-poodle-wins-best-show-westminster-dog-show", + "publication_date": "2020-02-12T11:41:00-05:00", + "updated_date": null, + "description": "Big hair, don't care.", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 142362, + "default_image": { + "id": 300943, + "title": "shutterstock_editorial_10554319ak.jpg", + "width": 4338, + "height": 2892, + "created_at": "2020-02-12T09:27:05.071608-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2205179, + "file_hash": "173ba55cfccd252b2f064c0a9934214df7078d8d", + "alt": "Siba sits regally on the Best in Show winner stage, surrounded by flowers and trophies", + "caption": "Siba, the standard poodle, poses for photographs after winning Best in Show in the 144th Westminster Kennel Club dog show, in New York", + "credit": "John Minchillo/AP/Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/shutterstock_editorial_10554319ak.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 20 + } + }, + "id": "40f523ad-0156-42cb-a4f4-f3432767d949" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 14, + "first_name": "Jen", + "last_name": "Chung", + "photo": 327349, + "job_title": "Co-founder of Gothamist + Senior Editor", + "biography": "Jen Chung co-created Gothamist in 2002 with Jake Dobkin, establishing it as a website about New York City and everything that happens in it and an essential must-read for New Yorkers. She also launched sites across the country and world, including DCist, LAist, and Londonist. She loves learning about NYC arcana and meeting bodega cats. \r\n\r\nShe is currently Senior Editor of NYC Accountability in the Gothamist + WNYC newsroom.", + "website": "", + "email": "jen@gothamist.com", + "slug": "jen-chung", + "social_media_profile": [ + { + "service": "facebook", + "profile_url": "https://www.facebook.com/chungjen" + }, + { + "service": "linkedin", + "profile_url": "https://www.linkedin.com/in/jen-chung-061b28/" + }, + { + "service": "instagram", + "profile_url": "https://www.instagram.com/chungjen/?hl=en" + }, + { + "service": "twitter", + "profile_url": "https://twitter.com/jenchung" + } + ] + } + ], + "tags": [ + { + "name": "westminster", + "slug": "westminster" + }, + { + "name": "poodle", + "slug": "poodle" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "westminster kennel club dog show", + "slug": "westminster-kennel-club-dog-show" + }, + { + "name": "westminster dog show", + "slug": "westminster-dog-show" + }, + { + "name": "dog", + "slug": "dog" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 142290, + "meta": { + "first_published_at": "2020-02-10T16:18:50.936894-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/142290/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/photos-look-upon-dogs-westminster-dog-show-2020-ye-mighty-be-delighted/", + "slug": "photos-look-upon-dogs-westminster-dog-show-2020-ye-mighty-be-delighted" + }, + "title": "Photos: Look Upon The Dogs Of Westminster Dog Show 2020, Ye Mighty, & Be Delighted!", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "855a3607-bad7-4966-81eb-6657d9936277", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/photos-look-upon-dogs-westminster-dog-show-2020-ye-mighty-be-delighted", + "publication_date": "2020-02-10T16:18:50.936894-05:00", + "updated_date": null, + "description": "Did you catch a whiff of grooming spray emanating from Midtown this weekend?", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 142300, + "default_image": { + "id": 300747, + "title": "Champ_and_Phil-1.jpg", + "width": 1100, + "height": 733, + "created_at": "2020-02-10T14:31:36.792592-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 325038, + "file_hash": "7f8e74ae23ce19a2c441e6c072a44135bf7ea5a4", + "alt": "A photo of Champ and Phil, who are Dalmatian brothers. \"They like to be well-groomed, Citronella is a favorite. They like to smell nice.\"", + "caption": "Champ and Phil are Dalmatian brothers. \"They like to be well-groomed, Citronella is a favorite. They like to smell nice.\"", + "credit": "Gretchen Robinette/Gothamist", + "credit_link": "https://www.gretchenrobinette.com", + "file": "https://cdn.cms.demo.nypr.digital/original_images/Champ_and_Phil-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + } + }, + "id": "1f196bb8-5f59-4ecc-a617-274fa6c4a3cc" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "westminster", + "slug": "westminster" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "westminster kennel club dog show", + "slug": "westminster-kennel-club-dog-show" + }, + { + "name": "westminster dog show", + "slug": "westminster-dog-show" + }, + { + "name": "dog", + "slug": "dog" + } + ], + "show_as_feature": true, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 142131, + "meta": { + "first_published_at": "2020-01-28T17:24:29.146485-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/142131/", + "html_url": "http://cms.prod.nypr.digital/news/video-does-michael-r-bloomberg-know-how-pet-dog/", + "slug": "video-does-michael-r-bloomberg-know-how-pet-dog" + }, + "title": "Video: Does Michael R. Bloomberg Know How To Pet A Dog?", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "6ce7150e-e871-4fb6-8e99-fac9abef5dcc", + "url": "https://gothamist-vue3demo.gothamist.com/news/video-does-michael-r-bloomberg-know-how-pet-dog", + "publication_date": "2020-01-28T17:24:00-05:00", + "updated_date": null, + "description": "An important debate rages.", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 300346, + "title": "BLOOMDOG.jpg", + "width": 1990, + "height": 1500, + "created_at": "2020-01-28T17:08:35.010567-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1877023, + "file_hash": "6489383316632122a4cdcc5549fa7a995e45693a", + "alt": "Michael Bloomberg shaking hands with a business acquaintance in 2012", + "caption": "Michael Bloomberg shaking hands with a business acquaintance in 2012", + "credit": "Shutterstock", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/BLOOMDOG.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "", + "image_link": "" + }, + "id": "544e58ca-a9f4-4d7c-9cb5-5af8d20845b9" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "mike bloomberg", + "slug": "mike-bloomberg" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "michael bloomberg", + "slug": "michael-bloomberg" + }, + { + "name": "dog etiquette", + "slug": "dog-etiquette" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 141200, + "meta": { + "first_published_at": "2019-11-28T09:58:37.199937-05:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/141200/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/best-thanksgiving-tradition-national-dog-show/", + "slug": "best-thanksgiving-tradition-national-dog-show" + }, + "title": "The Best Thanksgiving Tradition Is The National Dog Show", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "48f3d1ae-113c-46ea-a8c6-34858eb4ad5d", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/best-thanksgiving-tradition-national-dog-show", + "publication_date": "2019-11-28T09:58:37.199937-05:00", + "updated_date": null, + "description": "Let me explain.", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 141215, + "default_image": { + "id": 297059, + "title": "23dogshow112119.jpg", + "width": 1024, + "height": 682, + "created_at": "2019-11-21T17:53:30.705509-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 161077, + "file_hash": "cb4ee115e7258c06b8393bb8742ea98d137cc8b5", + "alt": "This is a photo of an Afghan hound on the grooming table at the National Dog Show.", + "caption": "", + "credit": "Steve Donahue", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/23dogshow112119.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 27 + } + }, + "id": "077cc81c-c7ac-4609-8b3b-9ecf1bf966eb" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 28, + "first_name": "Claire", + "last_name": "Lampen", + "job_title": "Gothamist Editor", + "biography": "", + "website": "", + "email": "", + "slug": "claire-lampen", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "dog show", + "slug": "dog-show" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "thanksgiving", + "slug": "thanksgiving" + } + ], + "show_as_feature": true, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 140852, + "meta": { + "first_published_at": "2019-10-28T12:41:26.708534-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/140852/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/photos-very-good-dogs-years-great-pupkin-halloween-parade/", + "slug": "photos-very-good-dogs-years-great-pupkin-halloween-parade" + }, + "title": "Photos: The Very Good Dogs At This Year's Great PUPkin Halloween Parade", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "d35c23ee-3d41-4517-b0ec-a8b741876c9f", + "url": "https://gothamist-vue3demo.gothamist.com/arts-entertainment/photos-very-good-dogs-years-great-pupkin-halloween-parade", + "publication_date": "2019-10-28T12:41:26.708534-04:00", + "updated_date": null, + "description": "Dogs dressed up as 'Midsommar' was a dominant theme of the day.", + "lead_asset": [ + { + "type": "lead_gallery", + "value": { + "gallery": 140841, + "default_image": { + "id": 295454, + "title": "Pup-58.jpg", + "width": 1400, + "height": 957, + "created_at": "2019-10-27T08:58:57.811436-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1096703, + "file_hash": "9928ac40d765b443315efcbd5796d6baf7671348", + "alt": "Dog as hot dog vendor", + "caption": "", + "credit": "Gretchen Robinette / Gothamist", + "credit_link": "http://gretchenrobinette.com", + "file": "https://cdn.cms.demo.nypr.digital/original_images/Pup-58.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 21 + } + }, + "id": "c20bd6be-eb99-436e-b27c-6e7bff21dec8" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "great pupkin", + "slug": "great-pupkin" + }, + { + "name": "great pupkin contest", + "slug": "great-pupkin-contest" + }, + { + "name": "halloween costumes", + "slug": "halloween-costumes" + }, + { + "name": "halloween", + "slug": "halloween" + }, + { + "name": "dogs", + "slug": "dogs" + } + ], + "show_as_feature": true, + "legacy_id": null, + "ancestry": [ + { + "id": 8, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/8/", + "html_url": "http://cms.prod.nypr.digital/arts-entertainment/" + }, + "title": "Arts & Entertainment", + "slug": "arts-entertainment" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 140073, + "meta": { + "first_published_at": "2019-09-09T15:16:12.224177-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/140073/", + "html_url": "http://cms.prod.nypr.digital/news/pols-outraged-open-door-shoe-selfie-helicopter-flights-dogs/", + "slug": "pols-outraged-open-door-shoe-selfie-helicopter-flights-dogs" + }, + "title": "Pols Outraged By Open Door 'Shoe Selfie' Helicopter Flights With Dogs", + "listing_title": "", + "listing_summary": "", + "listing_image": null, + "uuid": "0e5d9d6e-0da2-483c-8a69-31dc2608805b", + "url": "https://gothamist-vue3demo.gothamist.com/news/pols-outraged-open-door-shoe-selfie-helicopter-flights-dogs", + "publication_date": "2019-09-09T15:16:00-04:00", + "updated_date": null, + "description": "'Strapping in dogs for dangerous doors-off flights over New York is just totally repugnant.'", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 293221, + "title": "Screen Shot 2019-09-09 at 12.03.37 PM.png", + "width": 2210, + "height": 1522, + "created_at": "2019-09-09T12:04:36.534983-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 3525049, + "file_hash": "cf1704e3af0d0a5a06642671138a566a32a01f1f", + "alt": "helicopter dog", + "caption": "Bentley The Bulldog", + "credit": "FlyNYON", + "credit_link": "https://www.youtube.com/watch?v=Os4XkbkzZ8I", + "file": "https://cdn.cms.demo.nypr.digital/original_images/Screen_Shot_2019-09-09_at_12.03.37_PM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 30 + }, + "caption": "", + "image_link": "" + }, + "id": "4ae4c5d2-7655-4f9b-82da-d588d2044e20" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "chuck schumer", + "slug": "chuck-schumer" + }, + { + "name": "flynyon", + "slug": "flynyon" + }, + { + "name": "helicopter", + "slug": "helicopter" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "pets", + "slug": "pets" + } + ], + "show_as_feature": false, + "legacy_id": null, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 139906, + "meta": { + "first_published_at": "2019-08-26T12:34:24-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/139906/", + "html_url": "http://cms.prod.nypr.digital/news/beware-toxic-dog-killing-algae-found-in-multiple-nyc-parks/", + "slug": "beware-toxic-dog-killing-algae-found-in-multiple-nyc-parks" + }, + "title": "Beware: Toxic Dog-Killing Algae Found In Multiple NYC Parks", + "listing_title": "", + "listing_summary": "", + "listing_image": { + "id": 292673, + "title": "247063716_9f082e3eb6_z.jpg", + "width": 640, + "height": 427, + "created_at": "2019-08-26T18:28:43.337566-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": null, + "file_hash": "", + "alt": "Turtle Pond in Central Park.", + "caption": "Turtle Pond in Central Park.", + "credit": "Photo by Wally G", + "credit_link": "https://www.flickr.com/photos/wallyg/247063716", + "file": "https://cdn.cms.demo.nypr.digital/attachments/arts_jen/247063716_9f082e3eb6_z.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": null + }, + "uuid": "bfd71293-dd98-4371-9ca0-996f593eb197", + "url": "https://gothamist-vue3demo.gothamist.com/news/beware-toxic-dog-killing-algae-found-in-multiple-nyc-parks", + "publication_date": "2019-08-26T12:34:24-04:00", + "updated_date": "2019-08-26T13:40:27-04:00", + "description": "'It's important to try to avoid contact with any algae and keep pets on leashes... do not allow them to enter or drink from lakes and ponds unless in areas specifically designated for such activities.'", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 292673, + "title": "247063716_9f082e3eb6_z.jpg", + "width": 640, + "height": 427, + "created_at": "2019-08-26T18:28:43.337566-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": null, + "file_hash": "", + "alt": "Turtle Pond in Central Park.", + "caption": "Turtle Pond in Central Park.", + "credit": "Photo by Wally G", + "credit_link": "https://www.flickr.com/photos/wallyg/247063716", + "file": "https://cdn.cms.demo.nypr.digital/attachments/arts_jen/247063716_9f082e3eb6_z.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": null + }, + "caption": "Turtle Pond in Central Park.", + "image_link": null + }, + "id": "26845372-814c-4573-873c-6a022211a34a" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 15, + "first_name": "Ben", + "last_name": "Yakas", + "photo": 327480, + "job_title": "Culture & Arts Reporter", + "biography": "Ben Yakas was born and raised in New York, and has worked for Gothamist for over a decade, and WNYC for four years, covering literally everything. He has hung out with Dan Smith (who will teach you guitar), but still has yet to have a guitar lesson with him.", + "website": "", + "email": "benyakas@gothamist.com", + "slug": "ben-yakas", + "social_media_profile": [ + { + "service": "twitter", + "profile_url": "https://twitter.com/yenbakas" + } + ] + } + ], + "tags": [ + { + "name": "algae", + "slug": "algae" + }, + { + "name": "central park", + "slug": "central-park" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "morningside park", + "slug": "morningside-park" + }, + { + "name": "nyc parks", + "slug": "nyc-parks" + }, + { + "name": "parks", + "slug": "parks" + }, + { + "name": "prospect park", + "slug": "prospect-park" + } + ], + "show_as_feature": true, + "legacy_id": 709032, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + }, + { + "id": 139660, + "meta": { + "first_published_at": "2019-08-22T11:04:00-04:00", + "type": "news.ArticlePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/139660/", + "html_url": "http://cms.prod.nypr.digital/news/dog-stolen-from-williamsburg-street-corner-returned-safely-to-owner/", + "slug": "dog-stolen-from-williamsburg-street-corner-returned-safely-to-owner" + }, + "title": "Dog Stolen From Williamsburg Street Corner Returned Safely To Owner", + "listing_title": "", + "listing_summary": "", + "listing_image": { + "id": 291940, + "title": "breanadtheo082219horiz.jpg", + "width": 640, + "height": 509, + "created_at": "2019-08-26T11:29:42.119707-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": null, + "file_hash": "", + "alt": "Bre Kelly and her dog, Theo, who was dognapped earlier this week and has now been returned.", + "caption": "Bre Kelly and her dog, Theo, who was dognapped earlier this week and has now been returned.", + "credit": "Courtesy of Bre Kelly", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/attachments/nyc_clampen/breanadtheo082219horiz.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": null + }, + "uuid": "7b5974e8-9e17-41bd-8215-5a39fc916454", + "url": "https://gothamist-vue3demo.gothamist.com/news/dog-stolen-from-williamsburg-street-corner-returned-safely-to-owner", + "publication_date": "2019-08-22T11:04:00-04:00", + "updated_date": "2019-08-22T12:22:27-04:00", + "description": "\"He's definitely shaken up and nervous, and seems like he can barely believe he's home.\"", + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 291940, + "title": "breanadtheo082219horiz.jpg", + "width": 640, + "height": 509, + "created_at": "2019-08-26T11:29:42.119707-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": null, + "file_hash": "", + "alt": "Bre Kelly and her dog, Theo, who was dognapped earlier this week and has now been returned.", + "caption": "Bre Kelly and her dog, Theo, who was dognapped earlier this week and has now been returned.", + "credit": "Courtesy of Bre Kelly", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/attachments/nyc_clampen/breanadtheo082219horiz.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": null + }, + "caption": "Bre Kelly and her dog, Theo, who was dognapped earlier this week and has now been returned.", + "image_link": null + }, + "id": "5852e779-16e6-4c41-866b-2ef4315f3a99" + } + ], + "sponsored_content": false, + "related_authors": [ + { + "id": 28, + "first_name": "Claire", + "last_name": "Lampen", + "job_title": "Gothamist Editor", + "biography": "", + "website": "", + "email": "", + "slug": "claire-lampen", + "social_media_profile": [] + } + ], + "tags": [ + { + "name": "bed stuy", + "slug": "bed-stuy" + }, + { + "name": "bushwick", + "slug": "bushwick" + }, + { + "name": "dog", + "slug": "dog" + }, + { + "name": "dognapping", + "slug": "dognapping" + }, + { + "name": "dogs", + "slug": "dogs" + }, + { + "name": "nypd", + "slug": "nypd" + }, + { + "name": "williamsburg", + "slug": "williamsburg" + } + ], + "show_as_feature": true, + "legacy_id": 708996, + "ancestry": [ + { + "id": 4, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/4/", + "html_url": "http://cms.prod.nypr.digital/news/" + }, + "title": "News", + "slug": "news" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ] + } + ] +} \ No newline at end of file diff --git a/cypress/fixtures/aviary/tag-page.json b/cypress/fixtures/aviary/tag-page.json new file mode 100644 index 00000000..e82c9492 --- /dev/null +++ b/cypress/fixtures/aviary/tag-page.json @@ -0,0 +1,1413 @@ +{ + "id": 151236, + "meta": { + "first_published_at": "2022-08-03T22:43:14.198977-04:00", + "type": "tagpages.TagPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/151236/", + "html_url": "http://cms.prod.nypr.digital/tags/dogs/", + "slug": "dogs", + "show_in_menus": true, + "seo_title": "Custom dog headline", + "search_description": "", + "parent": { + "id": 147372, + "meta": { + "type": "tagpages.TagPageIndex", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/147372/", + "html_url": "http://cms.prod.nypr.digital/tags/" + }, + "title": "Tags" + } + }, + "title": "Doggos!", + "listing_title": "TEST DOGS TITLE", + "listing_summary": "TEST DOGS TITLE", + "listing_image": null, + "social_image": null, + "social_title": "Great Dogs!", + "social_text": "Great Dogs!", + "show_on_index_listing": true, + "uuid": "5cc47525-c467-4b04-b680-4ba673fdbb6f", + "url": "https://gothamist-vue3demo.gothamist.com/tags/dogs", + "designed_header": [ + { + "type": "image", + "value": { + "image": { + "id": 329929, + "title": "cute-dog.jpg", + "width": 5031, + "height": 3179, + "created_at": "2022-08-03T22:43:08.403206-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2307557, + "file_hash": "e4df1a48ef1b60300c6b7d2716f6227739766344", + "alt": "cute dog", + "caption": "", + "credit": "Unsplash", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/rebecca-campbell-w40Eig2e4Qg-unsplash.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 83 + }, + "caption": "" + }, + "id": "2713de16-f339-4e4b-a295-5cb141c11ad4" + } + ], + "top_page_zone": [ + { + "id": "dfdc7f4c-2d5c-4bd5-982f-509b6a2c5806", + "type": "paragraph", + "value": "

Doggo ipsum wow such tempt big ol pupper. Pupper such treat big ol heckin good boys most angery pupper I have ever seen, fat boi what a nice floof blop. Wow very biscit extremely cuuuuuute puggorino borkdrive sub woofer, big ol h*ck smol. noodle horse shoob tungg. You are doing me a frighten fat boi shooberino heckin angery woofer boof, floofs very taste wow waggy wags shoob snoot, h*ck the neighborhood pupper shoober. Clouds shooberino super chub blep mlem heckin angery woofer smol, most angery pupper I have ever seen sub woofer ur givin me a spook adorable doggo. Mlem pupperino snoot very hand that feed shibe, what a nice floof blop. Thicc pupper long doggo, much ruin diet. Borking doggo boofers fat boi waggy wags such treat, extremely cuuuuuute wow such tempt. H*ck what a nice floof lotsa pats h*ck, tungg.

Super chub blep heckin good boys and girls boof pats doge, vvv thicc blop. Tungg long bois heckin doing me a frighten h*ck lotsa pats doggo very hand that feed shibe long doggo, long woofer fluffer pupper smol lotsa pats many pats. Blop clouds doge heckin angery woofer lotsa pats clouds wow such tempt, clouds shoob thicc floofs lotsa pats. heck big ol. Heckin woofer long water shoob boofers shooberino aqua doggo adorable doggo, big ol very jealous pupper blop pupper boof. Very jealous pupper what a nice floof pats, he made many woofs. Ur givin me a spook doggo blep boofers borkf, wow such tempt puggorino fat boi pupper heckin angery woofer, shoob shooberino long water shoob.

Long woofer very jealous pupper fluffer blep fat boi pats, much ruin diet lotsa pats long woofer. Shooberino sub woofer doge boof, h*ck. Aqua doggo stop it fren long water shoob boofers, big ol pupper woofer. Such treat long water shoob long woofer heckin angery woofer boofers, wow very biscit wow such tempt very taste wow, shooberino doge fat boi. I am bekom fat wow such tempt puggo you are doing me a frighten I am bekom fat, ruff adorable doggo. Most angery pupper I have ever seen big ol pupper h*ck shoober porgo yapper, boofers you are doing me the shock borkf sub woofer snoot, borking doggo waggy wags very hand that feed shibe such treat.

" + }, + { + "id": "72bb0594-819c-428a-8da9-5eb968db759c", + "type": "content_collection", + "value": { + "id": 6, + "title": "Grubhub", + "pages": [ + { + "id": 151019, + "meta": { + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/151019/", + "html_url": "http://cms.prod.nypr.digital/food/grubhub-guide-to-great-nyc-breakfasts/", + "parent": { + "id": 5, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/5/", + "html_url": "http://cms.prod.nypr.digital/food/" + }, + "title": "Food" + }, + "type": "news.ArticlePage", + "slug": "grubhub-guide-to-great-nyc-breakfasts", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2022-03-04T14:29:18.300842-05:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 5, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/5/", + "html_url": "http://cms.prod.nypr.digital/food/" + }, + "title": "Food", + "slug": "food" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 39, + "first_name": "Gothamist", + "last_name": "Sponsor", + "job_title": "Gothamist Editor", + "biography": "", + "website": "", + "email": "", + "slug": "sponsor", + "social_media_profile": [] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [ + { + "id": 36, + "name": "Grubhub", + "link": "http://grubhub.com", + "logo": 329931 + } + ], + "social_image": null, + "tags": [], + "url": "https://gothamist-vue3demo.gothamist.com/food/grubhub-guide-to-great-nyc-breakfasts", + "path": "0001000100020BF1", + "depth": 4, + "numchild": 0, + "translation_key": "48c602ba-24c7-4b90-969a-5a4d2114e447", + "title": "Grubhub Guide To Great NYC Breakfasts", + "draft_title": "Grubhub Guide To Great NYC Breakfasts", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/food/grubhub-guide-to-great-nyc-breakfasts/", + "go_live_at": "2022-03-08T00:00:00-05:00", + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2022-03-08T12:21:05.993672-05:00", + "latest_revision_created_at": "2022-03-08T12:21:05.898005-05:00", + "social_title": "", + "social_text": "", + "listing_title": "[sponsor] Grubhub Guide To Great NYC Breakfasts", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "0c80a217-8d9a-46fa-ae4b-c8c5fa50906b", + "canonical_url": "", + "publication_date": "2022-03-08T00:00:00-05:00", + "updated_date": null, + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329573, + "title": "editheater-2.jpg", + "width": 3763, + "height": 2509, + "created_at": "2022-03-04T14:21:33.206861-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 666093, + "file_hash": "c07cf9dc92fa8c4cc0f29cbcb09fbef5ed2955ed", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/editheater-2.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "", + "image_link": "" + }, + "id": "af1d2803-1a1b-4457-8748-116f005096b6" + } + ], + "description": "Here is a tiny sampling of all the best spots to get all the best breakfasts delivered by Grubhub to your home, office, or wherever else you may be when the craving strikes", + "body": [ + { + "type": "paragraph", + "value": "

This post is a sponsored collaboration between Grubhub and Gothamist staff.

As many of us are getting back into the swing of going into the office, mornings might seem a bit more hectic than usual. Whether you're commuting in, or just can't muster that up-and-at-'em spirit, and need some sustenance delivered as close to your big comfy bed as possible, Grubhub can make breakfast easy. It's time to discover, and re-discover, your favorite breakfast spots.

Also, remember: breakfast food can be a good idea any time of day if the right people are making it for you. Here, then, is just a tiny sampling of all the best spots to get all the best breakfasts delivered by Grubhub to your home, office, or wherever else you may be when the craving strikes for things like bagels, BECs, burritos, and other eggy delights. And coffee, of course. Lots and lots of coffee.

", + "id": "55343c2a-ab3d-4993-8913-7e824340c85a" + }, + { + "type": "image", + "value": { + "image": { + "id": 329574, + "title": "editheatery-1.jpg", + "width": 4203, + "height": 2802, + "created_at": "2022-03-04T14:22:21.650904-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1230377, + "file_hash": "8250d70d46527e88622862dba4be778c3c8da156", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/editheatery-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "defcf451-a2d1-4484-8441-063ab2fc209d" + }, + { + "type": "paragraph", + "value": "

Edith's Sandwich and Edith's Eatery in Williamsburg

What started as an early-pandemic pop-up at Paulie Gee's has turned into not one but two of the best breakfast (and lunch) spots in town, Elyssa Heller's amazing Edith's sandwich shop on Lorimer Street, and her new Jewish deli-style flagship Edith's Eatery and Grocery not far away on Leonard Street. The former features a stellar lineup of eggy bagel delights (the BEC&L adds latke to the usual bacon, egg and cheese mix); the latter will deliver slightly fancier fare like the complete Turkish Breakfast and, luxurious-morning-in-bed-alert, a fantastic Smoked Fish Plate for Two.

Edith's Sandwich is located at 495 Lorimer Street; Edith's Eatery is at 312 Leonard -- Order Now

", + "id": "5270e606-2d1f-43ec-8a5d-21f2eaa371af" + }, + { + "type": "image", + "value": { + "image": { + "id": 329575, + "title": "electricburrito-2.jpg", + "width": 3957, + "height": 2638, + "created_at": "2022-03-04T14:23:09.084398-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 791584, + "file_hash": "ebc511f3c31f366c966ea767ca008b6e2892dd2b", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/electricburrito-2_DHJWAbN.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "e096a23b-c7e4-4299-86cb-61e6c669d34d" + }, + { + "type": "paragraph", + "value": "

Electric Burrito in the East Village

Looking for a real beast of a breakfast? Electric Burrito on St. Mark's Place, home to all sorts of monster-sized meals, is definitely the move. Co-founded last spring by San Diego native and chef Alex Thaboua, this tiny shop serves up its burritos So-Cal-style, complete with french fries inside, and features five different breakfast varieties, including the massive "Hot Rod" stuffed with carne asada, eggs, bacon, beans, cheese, fries, and crema. Pro tip: this makes for a great dinner as well.

Electric Burrito is located at 81 St. Mark's Place -- Order Now

", + "id": "4df38fa1-6e37-4cc6-8e99-47ab0a1697c2" + }, + { + "type": "image", + "value": { + "image": { + "id": 329576, + "title": "veselka-2.jpg", + "width": 5603, + "height": 3735, + "created_at": "2022-03-04T14:23:55.267752-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1790528, + "file_hash": "7c6373a8ae4024e89f3ee85a812c9e0ac831e573", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/veselka-2_pofqgu8.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "96d5825b-47d2-4b03-b7a5-adf8af60917d" + }, + { + "type": "paragraph", + "value": "

Veselka in East Village

The beloved Ukrainian diner, which has been feeding East Village locals and late-night party people for nearly 70 years now, does many things really well--the Beef Stroganoff is a long-time favorite--but if we had to choose only one meal to eat at Veselka, it would have to be breakfast. A platter of Pierogis, a bowl of rejuvenating red Borscht, a couple of wonderfully greasy Potato Pancakes, maybe a Blintz or two... all absolute NYC classics. And no table waits when you order delivery via Grubhub!

Veselka is located at 144 Second Avenue -- Order Now

", + "id": "f1e5d83e-321f-4073-995e-2ff06e043ebf" + }, + { + "type": "image", + "value": { + "image": { + "id": 329577, + "title": "gertie-1.jpg", + "width": 4436, + "height": 2957, + "created_at": "2022-03-04T14:24:55.267841-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1076307, + "file_hash": "38205ed224214d8bc8f1213d47a3e2faa7709212", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/gertie-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "21572fd2-3c8a-45b1-a15f-b525c888972f" + }, + { + "type": "paragraph", + "value": "

Gertie in Williamsburg

This self-proclaimed “modern Jew-ish diner” opened at the end of Grand Street about three years ago, and has quickly become a neighborhood mainstay for its welcoming vibe, retro-chic decor, and excellent food. During the early pandemic, when to-go was the way to go, Gertie went all in on its selection of Bagel and Bialy Sandwiches, and now they're among the best in town. Pick hits: the Gift of Gab, with egg salad, capers, and belly lox; and the Best Bialy, starring the house hot smoked pastrami salmon.

Gertie's is located at 357 Grand Street -- Order Now

", + "id": "efa7561d-8c47-4d66-a3d7-9aa4b4965579" + }, + { + "type": "image", + "value": { + "image": { + "id": 329578, + "title": "kopitiam-1.jpg", + "width": 4000, + "height": 2667, + "created_at": "2022-03-04T14:25:27.535969-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 935040, + "file_hash": "abb130572a9a99a0beb6c83591e764f05d128f50", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/kopitiam-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "8136b7df-af31-4ea3-a27a-d63d0bb08f03" + }, + { + "type": "paragraph", + "value": "

Kopitiam on Lower East Side

One of the city's best restaurants--chef Kyo Pang was just nominated for a James Beard award, not that long-time fans like us needed any proof that the food here totally rules--Kopitiam has grown over the last seven years from a tiny Malaysian coffee house with a few excellent pastries to a glorious three-meal counter-service spot on East Broadway. There are so many amazing things to eat here, but for breakfast it’s hard to resist either the sweet and sticky Malaysian Style Milo French Toast or the salty Pan Mee, loaded with chewy fried anchovies. And always get the Kaya Butter Toast, a pandan-coconut delight.

Kopitiam is located at 151 East Broadway -- Order Now

", + "id": "4f07fce8-6880-4132-b25a-e44c96e3e02f" + }, + { + "type": "image", + "value": { + "image": { + "id": 329579, + "title": "eggshop-1.jpg", + "width": 5760, + "height": 3840, + "created_at": "2022-03-04T14:26:23.862897-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1744904, + "file_hash": "0cedbef3cb59141ed967416c17450feb69ece33a", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/eggshop-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "038e9769-ad4a-4423-88d3-548cc6502df1" + }, + { + "type": "paragraph", + "value": "

Egg Shop in Nolita and Williamsburg

Since 2014, the charming little Egg Shop on Elizabeth Street has been serving a remarkably versatile, almost entirely eggy menu to the cool kids of Nolita and, since 2017, on North 8th Street in Williamsburg. Why so popular? How about the fact that eggs are pretty much the perfect food? There are breakfast burritos to be had here, and "cruisers," which are basically what they call plates of food, and, best of all, Egg Sandwiches stuffed with things like avocado, or smoked salmon, or fried chicken, or ricotta cheese. And with Grubhub delivery, you don't even have to get out of your pajamas to eat them!

Egg Shop is located at 151 Elizabeth and 136 N 8th -- Order Now

", + "id": "bba6b8c5-2b87-4d98-a206-7ddf34ff4722" + }, + { + "type": "image", + "value": { + "image": { + "id": 329580, + "title": "goblessusa-1.jpg", + "width": 4804, + "height": 3203, + "created_at": "2022-03-04T14:26:58.804406-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1040139, + "file_hash": "16400343740501670cce9acf56d1079e499ff07c", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/goblessusa-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "6cd62fbb-abff-4f1c-81f8-8b08a1a23907" + }, + { + "type": "paragraph", + "value": "

God Bless USA Deli in Greenpoint

Like thousands of other bodegas everywhere in the city, the post-9/11-renamed God Bless USA Deli on bustling Manhattan Avenue slings a version of that NYC icon, the "baconeggncheese." And yet somehow this Greenpoint institution transcends its unremarkable surroundings for a sandwich that should be held up as a model BEC for all random delis everywhere. Is it wizardry at the griddle that makes it special? That extra slice of cheese? The perfectly even, un-miserly distribution of bacon, ensuring that each bite contains the entire holy trinity of fillings? The fact that it still costs a shockingly low $3.99? The answer is: all of it. If this is your local, you are a fortunate human being.

God Bless USA Deli is located at 818 Manhattan Avenue -- Order Now

", + "id": "30213d78-549d-4d1a-9456-4f384123336a" + }, + { + "type": "image", + "value": { + "image": { + "id": 329581, + "title": "blackseed-2.jpg", + "width": 4570, + "height": 3047, + "created_at": "2022-03-04T14:27:42.841369-05:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1150290, + "file_hash": "448084d07811633bb9ca4877ee850ac9bb585743", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/blackseed-2.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "30393da2-721d-4201-ba10-e026710f80d5" + }, + { + "type": "paragraph", + "value": "

Black Seed Bagels in East Village, Nolita, Bushwick, Williamsburg, Nomad

Finally, it seems a bit sacrilege to hype a Montreal-style bagel chainlet on this very New York City list, but Black Seed has been delivering the goods since 2014, when founding partner, executive chef, and recent James Beard Award-nominee Dianna Daoheung opened her first shop on Elizabeth Street. There are multiple breakfast-y sandwiches on the menu (the PEC, made with pastrami instead of bacon, is particularly great), as well as several housemade cream cheese spreads, and all arrive on Daoheung's delicious wood-fired Montreal bagels.

There are Blacks Seed Bagels locations in Nolita, the East Village, Bushwick, Williamsburg, and Nomad -- Order Now

Explore New York's best food delivered straight to your couch with Grubhub. And with the Grubhub Guarantee, get it delivered on-time and at the lowest prices - guaranteed or Grubhub will make it right. Learn more.

", + "id": "5f32fc30-25a4-47ca-903d-4be74ffa9d20" + } + ], + "sponsored_content": true, + "disable_comments": true, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": true, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 69, + "locked_by": null, + "live_revision": 91966, + "alias_of": null + }, + { + "id": 151140, + "meta": { + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/151140/", + "html_url": "http://cms.prod.nypr.digital/food/grubhubs-guide-to-great-nyc-wings/", + "parent": { + "id": 5, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/5/", + "html_url": "http://cms.prod.nypr.digital/food/" + }, + "title": "Food" + }, + "type": "news.ArticlePage", + "slug": "grubhubs-guide-to-great-nyc-wings", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2022-03-18T11:00:23.801065-04:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 5, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/5/", + "html_url": "http://cms.prod.nypr.digital/food/" + }, + "title": "Food", + "slug": "food" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 39, + "first_name": "Gothamist", + "last_name": "Sponsor", + "job_title": "Gothamist Editor", + "biography": "", + "website": "", + "email": "", + "slug": "sponsor", + "social_media_profile": [] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [ + { + "id": 36, + "name": "Grubhub", + "link": "http://grubhub.com", + "logo": 329931 + } + ], + "social_image": null, + "tags": [], + "url": "https://gothamist-vue3demo.gothamist.com/food/grubhubs-guide-to-great-nyc-wings", + "path": "0001000100020BF6", + "depth": 4, + "numchild": 0, + "translation_key": "25e935f2-d248-4aa1-8a88-195a46783f80", + "title": "Just In Time For March Madness, Grubhub's Guide To Great NYC Wings", + "draft_title": "Just In Time For March Madness, Grubhub's Guide To Great NYC Wings", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/food/grubhubs-guide-to-great-nyc-wings/", + "go_live_at": "2022-03-22T00:00:00-04:00", + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2023-01-30T11:39:46.725795-05:00", + "latest_revision_created_at": "2023-01-30T11:39:46.613016-05:00", + "social_title": "", + "social_text": "", + "listing_title": "[sponsor] Grubhub's Guide To Great NYC Wings", + "listing_summary": "", + "show_on_index_listing": true, + "legacy_url": "", + "uuid": "84974c03-3c5a-4a9d-85bd-37f54af04ba3", + "canonical_url": "", + "publication_date": "2022-03-22T00:00:00-04:00", + "updated_date": null, + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329816, + "title": "danjohn-2.jpg", + "width": 1000, + "height": 667, + "created_at": "2022-03-18T10:49:38.617996-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 102349, + "file_hash": "4243c63b2e747b7630582d6f3b67396e902a8874", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/danjohn-2.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "", + "image_link": "" + }, + "id": "fc8dab28-e034-4ecc-9867-58140514347a" + } + ], + "description": "With citywide favorites including Blondie's, Chick Chick, Bonnie's Grill and more.", + "body": [ + { + "type": "paragraph", + "value": "

This post is a sponsored collaboration between Grubhub and Gothamist staff. Test

Chicken wings, the second best part of that essential bird, go beyond fall and football watching– we eat them all year long, and as many as possible, whether Buffalo, Asian, barbecue, jerk, "cheffy," or just straight-up fried. It's by far the best reason to get your hands messy, in our opinion. Plus they work equally well as a snack, as a side dish or starter, or heck, give us a large enough platter and that's all we need for a meal!

And if you do need a special excuse to order a whole stack of wings delivered to your home via Grubhub, just for yourself or for a whole crew, note that March Madness begins this week, which means there are hundreds of hours of exciting college basketball coming up. Why watch your bracket get busted without wings? It's a lot less painful if you're eating a pile of these bird bits from the following variety of local favorites, all available on Grubhub.

", + "id": "a058a85e-1dfb-4c6f-9803-2934409192a1" + }, + { + "type": "image", + "value": { + "image": { + "id": 329817, + "title": "kettleblack-1.jpg", + "width": 1000, + "height": 667, + "created_at": "2022-03-18T10:50:26.405433-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 120057, + "file_hash": "0407407487750cf16b43946c0207f20453d04cf8", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/kettleblack-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "9abf051e-e136-498d-9aa8-95154cb9bf18" + }, + { + "type": "paragraph", + "value": "

The Kettle Black in Bay Ridge and on Staten Island

Bay Ridge has more than its share of hopping neighborhood bars that celebrate sports- watching (Staten Island, too), but it's The Kettle Black on Third Avenue in Brooklyn that really nails the form. Go on any night of the week and the spacious, memorabilia-covered place will be festive with regulars sipping beers, shouting at screens, and tucking into platters of these exceptional chicken wings. Or do all that sipping, shouting, and tucking in from the comfort of your home, with delivery via Grubhub! The wings here come sauced, glazed, or rubbed about a dozen different ways, but the basics seem like the best way to go, whether that means their excellent take on the classic Buffalo, or generously coated in a zippy blend they call "the original 87th Street dry rub."

The Kettle Black has locations in Bay Ridge and on Staten Island - Order Now

", + "id": "fa55599c-690d-4548-9037-806862f92563" + }, + { + "type": "image", + "value": { + "image": { + "id": 329818, + "title": "blondie-1.jpg", + "width": 1000, + "height": 667, + "created_at": "2022-03-18T10:51:01.036960-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 97456, + "file_hash": "439e48fffa83b7ad3b2d77d9e9efa9ca56508dd9", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/blondie-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "6c23c8e7-2243-45a4-9c13-ab9aba389c28" + }, + { + "type": "paragraph", + "value": "

Blondie's on the Upper West Side

It feels like this Upper West Side sports bar has been around forever, but even after all these years Blondie's signature Buffalo Wings consistently arrive at your table cooked to crisp perfection. An alternative idea to wading into the mayhem (and a good strategy for skipping the headache in the morning): watch the game at home, and order a 20-pack of wings via Grubhub. Note, though, that anything above "Hot" on the spiciness scale is to be devoured with caution.

Blondies is located at 212 West 79th Street -- Order Now

", + "id": "133ecc12-3f63-4130-a25c-27024a598d6a" + }, + { + "type": "image", + "value": { + "image": { + "id": 329819, + "title": "Screen Shot 2022-03-18 at 10.51.26 AM.png", + "width": 463, + "height": 306, + "created_at": "2022-03-18T10:51:47.952283-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 308023, + "file_hash": "4b4dac28f7ed254ec493336c786171aecf21e8e0", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/Screen_Shot_2022-03-18_at_10.51.26_AM.png", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "42dcdf37-1c91-4f69-9e18-1271942ea377" + }, + { + "type": "paragraph", + "value": "

Fuku in Hudson Yards and Rockefeller Center

It's been a little start-and-stop-and-start for David Chang's great fried chicken mini-chain--a couple of locations closed for good when the pandemic hit--but the Hudson Yards and the Rockefeller Center outposts are still going strong and, really, Fuku still slings some of the best bird in town. Get a Sando or two (when the first Fuku launched in the East Village seven years ago, the Spicy Fried Sando was basically the only thing on the menu), and either, or both, of the wings six-packs, Sweet and Spicy, or Gochu and Garlic.

Fuku has locations in Hudson Yards and Rockefeller Center -- Order Now

", + "id": "e7ccc380-a896-4f6d-a29c-e928d6989584" + }, + { + "type": "image", + "value": { + "image": { + "id": 329820, + "title": "danjohns-1.jpg", + "width": 1000, + "height": 667, + "created_at": "2022-03-18T10:52:20.227011-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 123483, + "file_hash": "35457754df48b9974f47e2164b5690d5b939779f", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/danjohns-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "317d93d3-5848-4abf-bb21-705d5190baa3" + }, + { + "type": "paragraph", + "value": "

Dan and John's in the East Village, Murray Hill, and Downtown Brooklyn

The Smorgasburg mainstay Dan and John's found a fixed home in the East Village back in 2015, and has since opened spots on Third Avenue in Murray Hill, and downstairs at the Dekalb Market on Albee Square, but whether you get these Buffalo-style beauties from a tent, a food hall, or a storefront, you can expect crunchy, juicy delights, sauced up as fiery as your desires can handle. Bonus: as at most great wing spots, the celery sticks are fresh and bright, and actually add an extra bit of pleasure to your meal. First-rate Fried Pickle Chips and Tater Tots too.

Dan and John's has locations in the East Village, Murray Hill, and Downtown Brooklyn -- Order Now

", + "id": "145680ff-4b84-4d7a-be16-ca9d8164c854" + }, + { + "type": "image", + "value": { + "image": { + "id": 329821, + "title": "chickchick-2.jpg", + "width": 5492, + "height": 3661, + "created_at": "2022-03-18T10:55:22.072910-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1671134, + "file_hash": "e4f9347d0f9d7c1d40c325d2db2f62c0247bf123", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/chickchick-2.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "577e0232-d8ef-4bd8-9032-1c73c738c234" + }, + { + "type": "paragraph", + "value": "

Chick Chick on the Upper West Side

One of the city's best new pandemic-era restaurants opened on the Upper West Side last spring, chef and owner Jun Park's Chick Chick, a glorious celebration of his two favorite foods, fried chicken and ramen. There are three different kinds of the former here: Park's signature KSG, or Korean Sweet Gochujang; his take on Nashville Hot Chicken, which he drizzles with white sauce; and Crispy Chicken, which arrives extra-crackling on the outside and somehow still juicy within. You can get these in sandwiches, as boneless tenders, as a whole or half bird, or, relevant to the current discussion, as a pile of excellent wings. The Kimchi Fried Rice with chicken sausage crumbles makes for a terrific side dish too.

Chick Chick is located at 618 Amsterdam Avenue -- Order Now

", + "id": "08f92251-b547-4cd7-8a38-0d8a7e2de1cb" + }, + { + "type": "image", + "value": { + "image": { + "id": 329822, + "title": "bonnies-1.jpg", + "width": 1000, + "height": 667, + "created_at": "2022-03-18T10:56:03.147758-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 121073, + "file_hash": "61fcc9b72fa30da84a724a74f8e4e7394ea39d95", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/bonnies-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "d748d662-d8a4-437d-8bb9-8a16c710ccb4" + }, + { + "type": "image", + "value": { + "image": { + "id": 329823, + "title": "internationalwings-1.jpg", + "width": 1000, + "height": 667, + "created_at": "2022-03-18T10:56:37.276113-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 125560, + "file_hash": "731b411578aa15af9d76de027899aa9996d9be8c", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/internationalwings-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "c9dc3495-a6e8-48d7-bfe9-3b7c4e557b39" + }, + { + "type": "paragraph", + "value": "

International Wings Factory on the Upper East Side

For about a decade now chef Deepak Ballaney's International Wings Factory has been sending out top-notch wings from his tiny First Avenue shop, starring an impressive array of housemade dry rubs and sauces, from Classic Barbecue to Vietnamese Chili Gold to Lemon Cajun to Tandoori Masala. We've tried just about every variety over the years, and our current favorite is probably Ballaney's zesty Black Pepper Teriyaki, but if you have a bunch of people over it's fun to get multiple flavors delivered via Grubhub and try them all.

International Wings Factory is located at 1762 First Avenue -- Order Now

", + "id": "85351d8b-e117-4c19-9dcf-e5ce74959440" + }, + { + "type": "image", + "value": { + "image": { + "id": 329824, + "title": "fishcheeks-1.jpg", + "width": 5100, + "height": 3400, + "created_at": "2022-03-18T10:57:13.871795-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1488127, + "file_hash": "a182de842b79caff01c3e2bf02657087533ab530", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/fishcheeks-1.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "8d46fbc9-44f7-4a9f-b34a-af235bd271e4" + }, + { + "type": "paragraph", + "value": "

Fish Cheeks in Noho

The Bond Street Thai food hotspot Fish Cheeks is known mostly for its seafood--the fiery Coconut Crab Curry is legendary, and the Grilled Branzino wrapped in a banana leaf has become something of a fan favorite--but chefs/owners/brothers Ohm and Chat Suansilphong definitely know how to cook up chicken wings as well. Called Zabb Wings when you're dining in and simply Wings To Go when you're ordering delivery through Grubhub, these crispy, three-section lovelies are lively with chili, cool with lime and mint, and all-around delicious.

Fish Cheeks is located at 55 Bond Street -- Order Now

Explore New York's best food delivered straight to your couch with Grubhub. And with the Grubhub Guarantee, get it delivered on-time and at the lowest prices - guaranteed or Grubhub will make it right. Learn more.

", + "id": "672d2862-874e-45e0-a504-fe58097e39a4" + } + ], + "sponsored_content": true, + "disable_comments": true, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": true, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 69, + "locked_by": null, + "live_revision": 96095, + "alias_of": null + }, + { + "id": 151170, + "meta": { + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/151170/", + "html_url": "http://cms.prod.nypr.digital/food/your-grubhub-guide-to-nycs-best-affordable-sushi/", + "parent": { + "id": 5, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/5/", + "html_url": "http://cms.prod.nypr.digital/food/" + }, + "title": "Food" + }, + "type": "news.ArticlePage", + "slug": "your-grubhub-guide-to-nycs-best-affordable-sushi", + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "first_published_at": "2022-03-22T16:00:08.042315-04:00", + "locale": 1 + }, + "ancestry": [ + { + "id": 5, + "meta": { + "type": "standardpages.IndexPage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/5/", + "html_url": "http://cms.prod.nypr.digital/food/" + }, + "title": "Food", + "slug": "food" + }, + { + "id": 3, + "meta": { + "type": "home.HomePage", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/3/", + "html_url": "http://cms.prod.nypr.digital/" + }, + "title": "Gothamist", + "slug": "home" + }, + { + "id": 1, + "meta": { + "type": "wagtailcore.Page", + "detail_url": "https://cms.demo.nypr.digital/api/v2/pages/1/", + "html_url": null + }, + "title": "Root", + "slug": "root" + } + ], + "listing_image": null, + "related_authors": [ + { + "id": 39, + "first_name": "Gothamist", + "last_name": "Sponsor", + "job_title": "Gothamist Editor", + "biography": "", + "website": "", + "email": "", + "slug": "sponsor", + "social_media_profile": [] + } + ], + "related_contributing_organizations": [], + "related_sponsors": [ + { + "id": 36, + "name": "Grubhub", + "link": "http://grubhub.com", + "logo": 329931 + } + ], + "social_image": null, + "tags": [], + "url": "https://gothamist-vue3demo.gothamist.com/food/your-grubhub-guide-to-nycs-best-affordable-sushi", + "path": "0001000100020BF7", + "depth": 4, + "numchild": 0, + "translation_key": "beeade20-cbf3-477b-bf53-c34e306cc1e4", + "title": "Your Grubhub Guide To NYC's Best Affordable Sushi", + "draft_title": "Your Grubhub Guide To NYC's Best Affordable Sushi", + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/food/your-grubhub-guide-to-nycs-best-affordable-sushi/", + "go_live_at": "2021-03-29T00:00:00-04:00", + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "last_published_at": "2022-03-22T16:00:08.042315-04:00", + "latest_revision_created_at": "2022-03-22T16:00:07.901154-04:00", + "social_title": "", + "social_text": "", + "listing_title": "", + "listing_summary": "", + "show_on_index_listing": false, + "legacy_url": "", + "uuid": "4862b631-7ede-4821-a1ef-9b7ded6ae94d", + "canonical_url": "", + "publication_date": "2021-03-29T00:00:00-04:00", + "updated_date": null, + "lead_asset": [ + { + "type": "lead_image", + "value": { + "image": { + "id": 329883, + "title": "sush1-1.jpeg", + "width": 5247, + "height": 3498, + "created_at": "2022-03-22T15:52:26.217484-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 1819585, + "file_hash": "c75859fa5a6927862695c6d0a59b75463611cb17", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/sush1-1.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "", + "image_link": "" + }, + "id": "6c3925e3-081b-43c0-96e2-38a50b2008b5" + } + ], + "description": "", + "body": [ + { + "type": "paragraph", + "value": "

Most of the sushi hype in this town goes to the big-name omakase palaces which we're sure are delicious and all, but currently top out at more than $1000 per person for a single meal at Masa. Even the more "affordable" big names out there will set you back a couple hundred bucks for a dinner that, let's be frank, probably won't even fill you up. Ever grabbed a slice on the way home from a 13-piece, $150+ omakase? We sure have.

But it doesn't have to be that way! Sushi--or, more specifically for our purposes here, raw fish in its many guises--can make for a special-feeling and completely satisfying meal without triggering a bunch of financial anxiety. So here is just a small sampling of all the great, more neighborhood-y sushi options in the city. And if you order your dinner via Grubhub, even after generously tipping your deliverista you're still going to save money instead of going out, especially if you wash your dinner down with bodega beers.

", + "id": "0bf9a480-860d-4bed-8df7-ecb45c4b2836" + }, + { + "type": "image", + "value": { + "image": { + "id": 329884, + "title": "chikarashi-1.jpeg", + "width": 3450, + "height": 2300, + "created_at": "2022-03-22T15:53:14.618778-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 652320, + "file_hash": "03573398825ed5ecbc91c8501c09da86ef9e7fbd", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/chikarashi-1.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "ae9de66a-1df9-40e0-94e0-bdbb9f952a3e" + }, + { + "type": "paragraph", + "value": "

Chikarashi in Chinatown

Located on a bustling stretch of Canal street, Chikarashi has been serving first-rate "contemporary poke" bowls for more than five years now, combining some lovely cuts of fish with judiciously-handled toppings and sauces on top of well-vinegared sticky rice. The Salmon Ikura Chirashi is an obvious crowd-pleaser, the Spicy Hamachi has a nice bit of zing to it, and if you want your swimmer cooked, the roasted Hamachi Collar is really good too. And just about everything is under twenty bucks!

Chikarashi is located at 227 Canal Street -- Order Now

", + "id": "d2843190-b48b-4a52-ac34-e078dcf6a95d" + }, + { + "type": "image", + "value": { + "image": { + "id": 329885, + "title": "sush1-2.jpeg", + "width": 5553, + "height": 3702, + "created_at": "2022-03-22T15:54:14.120769-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2249699, + "file_hash": "105adc11ffff464ed9731e29476e145e47b49b2c", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/sush1-2.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "1ec2cf81-c971-45c2-a65c-6992f94b5882" + }, + { + "type": "paragraph", + "value": "

Sush1 in Chelsea

This Brazilian-based mini-chain was founded on a simple proposition: to make sushi as accessible as any other fast-casual food by a bringing decent quality fish--served as nigiri, sashimi, or hand rolls--to a counter-service setting, and only charging about a buck each for every a piece (most things are now $1.25). True, the fish at Sush1 is limited to greatest hits like tuna, salmon, yellow tail, and eel, but order one of those big combo boxes and you definitely won't get bored. And if you really want to wow your next watch party, splurge on a "100 for $100" platter for a sushi party at home.

Sush1 is located at 555 Sixth Avenue -- Order Now

", + "id": "72f9d944-8098-4a79-b52f-0930eb5a53a4" + }, + { + "type": "image", + "value": { + "image": { + "id": 329886, + "title": "kanoyama-3.jpeg", + "width": 5592, + "height": 3728, + "created_at": "2022-03-22T15:54:57.854550-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2960425, + "file_hash": "e75c9f15bb280d77571e3a6a0a1c2420452e3317", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/kanoyama-3.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "5cd50019-4cb4-4be4-8ae9-d1f0664ccd44" + }, + { + "type": "paragraph", + "value": "

Kanoyama in East Village

For a more traditional sushi experience that still doesn't cost a fortune, the beloved neighborhood spot Kanoyama, sprawled out a bit at the corner of Second Avenue and 11th Street, has been making locals and destination date-nighters happy for some 15 years now. The prices aren't too scary ($42 for Chirashi; a beautiful Sushi and Sashimi platter for two will run you $138), the fish is always top-notch, and if you order delivery via Grubhub, it makes for a perfect meal for a romantic evening at home.

Kanoyama is located at 175 Second Avenue -- Order Now

", + "id": "79cf7718-19f7-4a63-8356-0944d5e6e211" + }, + { + "type": "image", + "value": { + "image": { + "id": 329887, + "title": "gofish-1.jpeg", + "width": 4005, + "height": 2670, + "created_at": "2022-03-22T15:56:08.840052-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 719438, + "file_hash": "1e52f3626ae9764996743ca295e42cb8c5314371", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/gofish-1.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "f4ad4294-a661-40ec-84d2-6e298d75b4b6" + }, + { + "type": "paragraph", + "value": "

Go Fish in Midtown East

After a rough early pandemic period, the food halls in Manhattan run by Urbanspace have come roaring back to life--and with more opening soon--including this art deco gem inside the historic General Electric building at 570 Lexington Avenue. Eight vendors sling the wares here, but our favorite for a bright and flavorful lunch might be Go Fish Sushi Box, which delivers, via Grubhub, loaded up Chirashi bowls as well as rolls and nigiri-sashimi combos. Even the fanciest dishes top out at about $15, too, so it's easy to treat yourself.

Go Fish us at the 570 Lexington Market -- Order Now

", + "id": "6493d7f8-b3ab-4c65-9893-aa36a7896241" + }, + { + "type": "image", + "value": { + "image": { + "id": 329888, + "title": "momoya-1.jpeg", + "width": 560, + "height": 420, + "created_at": "2022-03-22T15:56:57.568111-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 100886, + "file_hash": "01c295bba7d7fe03ce57106c5b8f1b3dd39781fa", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/momoya-1.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "5bec15fa-d08e-4132-8926-29480ba7f4aa" + }, + { + "type": "paragraph", + "value": "

Momoya on the Upper West Side and in Chelsea

Since the mid-aughts the Momoyas on the UWS and in Chelsea have been serving up crowd-pleasing platters, bowls, and rolls in stylish settings, establishing themselves as neighborhood go-tos for those nights when the craving for sushi hits hard. We usually keep it simple here and get a Chirashi, but the Bakudan Roll with spicy scallop, the Momoya Black Cod Roll, and the Salmon Crunch Roll are all fun and satisfying options too. Good non-fish dishes are available as well. Order delivery via Grubhub and suddenly your random Tuesday night at home just got a lot more exciting.

Momoya is located at 427 Amsterdam Ave and 185 Seventh Ave -- Order Now

", + "id": "825d3103-321b-477d-bdee-2aea619eb624" + }, + { + "type": "image", + "value": { + "image": { + "id": 329889, + "title": "bessou-1.jpeg", + "width": 3478, + "height": 2319, + "created_at": "2022-03-22T15:57:27.854118-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 459292, + "file_hash": "27aa185e73f5f330681378bab79938434c297a28", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/bessou-1.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "2e36f924-c154-4af1-829b-5843cccddeeb" + }, + { + "type": "paragraph", + "value": "

Bessou in the East Village

Bessou on Bleecker Street isn't really a sushi restaurant per se; the tag "modern Japanese comfort food" is a much better descriptor, and the menu features plenty of non-fish fare like Spicy Miso Spare Ribs, Fried Chicken Sandwiches, and loaded bowls of hot or cold Udon noodles. That said, our favorite things here are probably Maiko Kyogoku and chef Emily Yuen's fantastic Crispy Rice creations, triangles of the chewy, crackling grain piled high with either salmon, spicy tuna, or enoki mushroom and black garlic. It's one of our most frequent sushi(ish) cravings, and, with delivery via Grubhub, it's also one that's easily satisfied.

Bessou is located at 5 Bleecker Street -- Order Now

", + "id": "a2981d1d-83e5-446b-9197-4d5a0edc9041" + }, + { + "type": "image", + "value": { + "image": { + "id": 329890, + "title": "yubu-1.jpeg", + "width": 3407, + "height": 2271, + "created_at": "2022-03-22T15:58:05.723233-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 938301, + "file_hash": "72dcda565ce422276d4d33589d1f4978af743a79", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/yubu-1.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "a2f1bf32-d9d7-4840-84cd-3ee2410039ed" + }, + { + "type": "paragraph", + "value": "

Yubu in the East Village

More not-standard-sushi for the list! Yubu, which opened its tiny storefront on East 7th Street during our second pandemic summer, sells only one thing: yubuchobap, which are Korean fried bean curd pockets stuffed with sushi-style vinegared rice. Ah but "yubu," as it's abbreviated here, proves to be the perfect vehicle for all manner of rich and hearty toppings, including Salmon, Spicy Tuna, and Crabmeat with special Myungran Mayo sauce. The meaty ones (Pork Jaeyook, Beef Bulgogi) are excellent too. Put this place into your regular Grubhub delivery rotation.

Yubu is located at 86 East 7th Street -- Order Now

", + "id": "0d69a96c-4063-4375-bb67-07885c307ed5" + }, + { + "type": "image", + "value": { + "image": { + "id": 329891, + "title": "beyondsushi-2.jpeg", + "width": 640, + "height": 480, + "created_at": "2022-03-22T15:58:57.792792-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 119427, + "file_hash": "0ccffdb4fe36b9698353e81114159ab6ed0ed457", + "alt": "Grubhub", + "caption": "", + "credit": "", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/beyondsushi-2.jpeg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 69 + }, + "caption": "" + }, + "id": "734adfeb-fbac-42f5-abf9-75bedc456c09" + }, + { + "type": "paragraph", + "value": "

Beyond Sushi in Midtown West, on Upper East Side, Nolita, Garment District

For more than a decade now the mini-chain Beyond Sushi has been delighting both vegans and omnivores alike with their lovely, creative, completely meatless "sushi" pieces and rolls. Vegetable dishes like the earthy Mighty Mushroom Roll and the festive-looking Rainbow Roll anchor the menu here, but in recent years the franchise has expanded its offering to include things like Fried Chik'n Bao and Impossible Meat dumplings.

Beyond Sushi has locations in Midtown, the UES, Nolita, and the Garment District -- Order Now

Explore New York's best food delivered straight to your couch with Grubhub. And with the Grubhub Guarantee, get it delivered on-time and at the lowest prices - guaranteed or Grubhub will make it right. Learn more.

", + "id": "4bfd9df2-9b10-423f-bb6a-d0c78637a137" + } + ], + "sponsored_content": true, + "disable_comments": true, + "provocative_content": false, + "sensitive_content": false, + "related_links": [], + "show_as_feature": false, + "json_blob": "", + "legacy_id": null, + "content_type": 29, + "owner": 69, + "locked_by": null, + "live_revision": 93075, + "alias_of": null + } + ] + } + } + ], + "midpage_zone": [ + { + "id": "a382b945-4d3f-4bbd-b8f0-9d646417d849", + "type": "image", + "value": { + "image": { + "id": 329929, + "title": "cute-dog.jpg", + "width": 5031, + "height": 3179, + "created_at": "2022-08-03T22:43:08.403206-04:00", + "focal_point_x": null, + "focal_point_y": null, + "focal_point_width": null, + "focal_point_height": null, + "file_size": 2307557, + "file_hash": "e4df1a48ef1b60300c6b7d2716f6227739766344", + "alt": "cute dog", + "caption": "", + "credit": "Unsplash", + "credit_link": "", + "file": "https://cdn.cms.demo.nypr.digital/original_images/rebecca-campbell-w40Eig2e4Qg-unsplash.jpg", + "usage_limitations": "", + "expiry_date": null, + "collection": 1, + "uploaded_by_user": 83 + }, + "caption": "" + } + }, + { + "id": "f9142b98-4341-473b-ad6d-044926f6ca60", + "type": "pull_quote", + "value": { + "pull_quote": "Dog goes woof, Cat goes meow, Bird goes tweet, And mouse goes squeek", + "attribution": "Ylvis" + } + } + ], + "tags": [ + "dogs" + ] +} \ No newline at end of file diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json new file mode 100644 index 00000000..02e42543 --- /dev/null +++ b/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/cypress/fixtures/publisher/whats_on.json b/cypress/fixtures/publisher/whats_on.json new file mode 100644 index 00000000..0d1aeb10 --- /dev/null +++ b/cypress/fixtures/publisher/whats_on.json @@ -0,0 +1 @@ +{"links":{"first":"http://api.prod.nypr.digital/api/v4/whats_on/?filter%5Bslug%5D=wnyc-fm939&include=current-airing.image%2Ccurrent-show.show.image%2Ccurrent-episode.segments&page=1","last":"http://api.prod.nypr.digital/api/v4/whats_on/?filter%5Bslug%5D=wnyc-fm939&include=current-airing.image%2Ccurrent-show.show.image%2Ccurrent-episode.segments&page=1","next":null,"prev":null},"data":[{"type":"whats-on-now","id":"1","attributes":{"name":"WNYC 93.9 FM","slug":"wnyc-fm939","short-description":"News, Culture & Talk","has-playlists":false,"image-logo":"https://media.wnyc.org/i/500/500/c/80/1/wnyc_2_1.png","schedule-url":"http://www.wnyc.org/schedule/?scheduleStation=wnyc-fm939","playlist-url":"http://www.wnyc.org/playlist-daily/?scheduleStation=wnyc-fm939","whats-on":null,"audio-bumper":"/streambumper/streambumper000001_wnycfm.mp3","aac":"https://fm939.wnyc.org/wnycfm.aac","mp3":"https://fm939.wnyc.org/wnycfm","mobile-aac":"https://fm939.wnyc.org/wnycfm-mobile.aac","mobile-mp3":"https://fm939.wnyc.org/wnycfm-web","hls":"https://hls-live.wnyc.org/wnycfm32/playlist.m3u8","twitter-handle":"","site-id":1,"order":1},"relationships":{"current-show":{"data":{"type":"show-schedule","id":"53"}},"current-airing":{"data":null},"current-episode":{"data":null}}}],"included":[{"type":"image","id":"192305","attributes":{"caption":"All Things Considered","credits-url":"","credits-name":"NPR","crop":"l","h":1200,"is-display":true,"name":"2020/10/atc.jpg","source":{"url":"http://www.npr.org/","name":"NPR"},"template":"https://media.wnyc.org/i/%s/%s/%s/%s/2020/10/atc.jpg","url":"https://media.wnyc.org/i/1200/1200/l/80/2020/10/atc.jpg","w":1200}},{"type":"show","id":"379","attributes":{"slug":"atc","title":"All Things Considered","url":"https://www.wnyc.org/shows/atc","linkroll":[{"href":null,"nav-slug":"episodes","title":"Episodes"},{"href":null,"nav-slug":"about","title":"About"}],"about":{"body":"

A wrap-up of the day’s news, with features and interviews about the latest developments in New York City and around the world, from NPR and the WNYC newsroom.

","roles":{},"social":{"twitter":"npratc","facebook":"npratc","instagram":"npratc"}},"description":"

A wrap-up of the day’s news, with features and interviews about the latest developments in New York City and around the world, from NPR and the WNYC newsroom.

","social-links":null,"bg-color":"","featured":null,"sidebar-chunks":[null,null],"donate-chunk":{"content":"","slug":""},"listing-object-type":"show","rss-feed":"http://www.wnyc.org/feeds/shows/atc","edit-link":["cms/show/379"],"podcast-links":null,"itunes-podcast-id":null,"studios-marquee-mobile-offset":null,"cms-pk":379,"tease":"

A wrap-up of the day’s news, with features and interviews about the latest developments in New York City and around the world, from NPR and the WNYC newsroom.

","schedule-summary":"Weekdays from 4-8pm on 93.9FM & AM820. Weekends at 5pm on 93.9FM & AM820.","contact-email":""},"relationships":{"image":{"data":{"type":"image","id":"192305"}},"marquee-image":{"data":null},"studios-marquee-image":{"data":null},"fb-image":{"data":null},"producing-organizations":{"meta":{"count":2},"data":[{"type":"producing-organization","id":"6"},{"type":"producing-organization","id":"7"}]}}},{"type":"show-schedule","id":"53","attributes":{"iso-start-time":"2023-03-10T21:00:00+00:00","iso-end-time":"2023-03-10T23:30:00+00:00"},"relationships":{"show":{"data":{"type":"show","id":"379"}}}}],"meta":{"pagination":{"page":1,"pages":1,"count":1}}} \ No newline at end of file diff --git a/cypress/generate-fixtures.sh b/cypress/generate-fixtures.sh new file mode 100755 index 00000000..9b5c3dc1 --- /dev/null +++ b/cypress/generate-fixtures.sh @@ -0,0 +1,40 @@ +#!/bin/bash +cd "${0%/*}" + +mkdir fixtures/aviary +mkdir fixtures/publisher + +# Global +# curl "https://cms.prod.nypr.digital/api/v2/system_messages/2/" > "fixtures/aviary/system_messages.json" +# curl "https://cms.prod.nypr.digital/api/v2/sitewide_components/2/" > "fixtures/aviary/sitewide_components.json" +# curl "https://cms.prod.nypr.digital/api/v2/navigation/1/" > "fixtures/aviary/navigation.json" + +# Home Page +curl "https://cms.prod.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&limit=6" > "fixtures/aviary/latest.json" +curl -L "https://cms.prod.nypr.digital/api/v2/pages/find?html_path=/" > "fixtures/aviary/index.json" +curl "https://cms.prod.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&limit=6&offset=6" > "fixtures/aviary/index-more.json" + +# What's On +curl "https://api.prod.nypr.digital/api/v4/whats_on/?filter\[slug\]=wnyc-fm939&include=current-airing.image,current-show.show.image,current-episode.segments" > "fixtures/publisher/whats_on.json" + +#Article Page +curl -L "https://cms.prod.nypr.digital/api/v2/pages/find?html_path=news/extra-extra-meet-connecticuts-answer-to-pizza-rat" > "fixtures/aviary/article.json" + +#News Page +curl -L "https://cms.prod.nypr.digital/api/v2/pages/find?html_path=news" > "fixtures/aviary/news-page.json" +curl "https://cms.prod.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&sponsored_content=false&descendant_of=4&limit=6" > "fixtures/aviary/more-news.json" + +#Staff Page +curl "https://cms.prod.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&author_slug=jen-chung&limit=12&offset=0" > fixtures/aviary/staff-articles.json +curl "https://cms.prod.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&author_slug=jen-chung&limit=12&offset=12" > fixtures/aviary/staff-more.json + +#Section Page +curl -L "https://cms.prod.nypr.digital/api/v2/pages/find?html_path=news" > fixtures/aviary/section-page.json +curl "https://cms.prod.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&sponsored_content=false&descendant_of=4&limit=6" > fixtures/aviary/section-recirculation.json +curl "https://cms.prod.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&sponsored_content=false&descendant_of=4&offset=5" > fixtures/aviary/section-articles.json +curl "https://cms.prod.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&sponsored_content=false&limit=10&offset=25&descendant_of=4" > fixtures/aviary/section-more.json + +#Tag Page +curl -L "https://cms.demo.nypr.digital/api/v2/pages/find/?html_path=tags/dogs" > fixtures/aviary/tag-page.json +curl "https://cms.demo.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&limit=10&tag_slug=dogs" > fixtures/aviary/tag-articles.json +curl "https://cms.demo.nypr.digital/api/v2/pages/?type=news.ArticlePage&fields=ancestry,description,lead_asset,legacy_id,listing_image,publication_date,show_as_feature,sponsored_content,tags,updated_date,url,uuid,listing_title,listing_summary,related_authors&order=-publication_date&show_on_index_listing=true&limit=10&offset=10&tag_slug=dogs" > fixtures/aviary/tag-more.json diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts new file mode 100644 index 00000000..1921e100 --- /dev/null +++ b/cypress/support/commands.ts @@ -0,0 +1,53 @@ +/// +// *********************************************** +// This example commands.ts shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) +// +// declare global { +// namespace Cypress { +// interface Chainable { +// login(email: string, password: string): Chainable +// drag(subject: string, options?: Partial): Chainable +// dismiss(subject: string, options?: Partial): Chainable +// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable +// } +// } +// } + +declare module 'Cypress' { + interface Chainable { + loadGlobalFixtures(): Chainable + } +} + +Cypress.Commands.add('loadGlobalFixtures', () => { + cy.intercept('/api/v2/system_messages/*', {fixture: 'aviary/system_messages_empty.json'}).as('systemMessages') + cy.intercept('/api/v2/sitewide_components/*', {fixture: 'aviary/sitewide_components.json'}).as('sitewideComponents') + cy.intercept('/api/v2/navigation/*', {fixture: 'aviary/navigation.json'}).as('navigation') + cy.intercept('/api/v4/whats_on/**', {fixture: 'publisher/whats_on.json'}).as('whatsOn') + cy.intercept({ + hostname: 'open-api.spot.im' + }, {statusCode: 200, body: {messages_count: []}}).as('commentCounts') +}) diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts new file mode 100644 index 00000000..f80f74f8 --- /dev/null +++ b/cypress/support/e2e.ts @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.ts 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 +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file diff --git a/nuxt.config.ts b/nuxt.config.ts index 4ec5bb98..00c196a2 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -97,6 +97,7 @@ export default defineNuxtConfig({ NEWRELIC_AGENT: process.env['NEWRELIC_AGENT'] || 'newrelic-dev.js', } }, + ssr: Boolean(process.env['NUXT_SSR'] !== 'false'), typescript: { strict: true } diff --git a/package-lock.json b/package-lock.json index 7c686b7c..7e4493c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,8 +28,10 @@ "@babel/preset-env": "^7.16.11", "@vue/cli-service": "^5.0.4", "@vue/compiler-sfc": "^3.2.31", + "cypress": "^12.3.0", "jest-axe": "^5.0.1", "nuxt": "^3.0.0", + "start-server-and-test": "^2.0.0", "typescript": "^4.5.4" } }, @@ -205,12 +207,50 @@ "node": ">=12.0.0" } }, + "node_modules/@azure/core-http/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@azure/core-http/node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "optional": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@azure/core-http/node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "optional": true }, + "node_modules/@azure/core-http/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "optional": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/@azure/core-lro": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.5.1.tgz", @@ -282,6 +322,20 @@ "node": ">=12.0.0" } }, + "node_modules/@azure/core-rest-pipeline/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@azure/core-rest-pipeline/node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -529,21 +583,21 @@ "optional": true }, "node_modules/@azure/msal-browser": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.33.0.tgz", - "integrity": "sha512-c7CVh1tfUfxiWkEIhoIb11hL4PGo4hz0M+gMy34ATagAKdLK7qyEu/5AXJWAf5lz5eE+vQhm7+LKiuETrcXXGw==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.34.0.tgz", + "integrity": "sha512-stoXdlfAtyVIMOp1lS5PorgO5f66MGRi3Q1FBlXhVZFTsTfAWrNdSOx1m/PXWHskWE9aXO+NEzXVOoWmDNnvNA==", "optional": true, "dependencies": { - "@azure/msal-common": "^10.0.0" + "@azure/msal-common": "^11.0.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-browser/node_modules/@azure/msal-common": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-10.0.0.tgz", - "integrity": "sha512-/LghpT93jsZLy55QzTsRZWMx6R1Mjc1Aktwps8sKSGE3WbrGwbSsh2uhDlpl6FMcKChYjJ0ochThWwwOodrQNg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-11.0.0.tgz", + "integrity": "sha512-SZH8ObQ3Hq5v3ogVGBYJp1nNW7p+MtM4PH4wfNadBP9wf7K0beQHF9iOtRcjPOkwZf+ZD49oXqw91LndIkdk8g==", "optional": true, "engines": { "node": ">=0.8.0" @@ -559,12 +613,12 @@ } }, "node_modules/@azure/msal-node": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.15.0.tgz", - "integrity": "sha512-fwC5M0c8pxOAzmScPbpx7j28YVTDebUaizlVF7bR0xvlU0r3VWW5OobCcr9ybqKS6wGyO7u4EhXJS9rjRWAuwA==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.16.0.tgz", + "integrity": "sha512-eGXPp65i++mAIvziafbCH970TCeECB6iaQP7aRzZEjtU238cW4zKm40U8YxkiCn9rR1G2VeMHENB5h6WRk7ZCQ==", "optional": true, "dependencies": { - "@azure/msal-common": "^10.0.0", + "@azure/msal-common": "^11.0.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -573,9 +627,9 @@ } }, "node_modules/@azure/msal-node/node_modules/@azure/msal-common": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-10.0.0.tgz", - "integrity": "sha512-/LghpT93jsZLy55QzTsRZWMx6R1Mjc1Aktwps8sKSGE3WbrGwbSsh2uhDlpl6FMcKChYjJ0ochThWwwOodrQNg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-11.0.0.tgz", + "integrity": "sha512-SZH8ObQ3Hq5v3ogVGBYJp1nNW7p+MtM4PH4wfNadBP9wf7K0beQHF9iOtRcjPOkwZf+ZD49oXqw91LndIkdk8g==", "optional": true, "engines": { "node": ">=0.8.0" @@ -625,6 +679,20 @@ "node": ">=14.0.0" } }, + "node_modules/@azure/storage-blob/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@azure/storage-blob/node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -2276,6 +2344,64 @@ "mime": "^3.0.0" } }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "2.88.11", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.11.tgz", + "integrity": "sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==", + "dev": true, + "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", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -4348,9 +4474,9 @@ } }, "node_modules/@planetscale/database": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@planetscale/database/-/database-1.5.0.tgz", - "integrity": "sha512-Qwh7Or1W5dB5mZ9EQqDkgvkDKhBBmQe58KIVUy0SGocNtr5fP4JAWtvZ6EdLAV6C6hVpzNlCA2xIg9lKTswm1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@planetscale/database/-/database-1.6.0.tgz", + "integrity": "sha512-eb02567S706Xme/nVwx+EN/wyoHhHBXl1a7+67R/Xm91myEpLn0vZNl58TvLZztBxje4gga16lc8dLt0elNrJA==", "optional": true, "engines": { "node": ">=16" @@ -5206,9 +5332,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.14.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", - "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==" + "version": "14.18.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", + "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==" }, "node_modules/@types/node-fetch": { "version": "2.6.2", @@ -5288,6 +5414,18 @@ "@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", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, "node_modules/@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -5325,22 +5463,32 @@ "@types/node": "*" } }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@unhead/dom": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.17.tgz", - "integrity": "sha512-7mqgiUllue+T2ZZyGI9bII8WAe9fLhZni3Oz3JkDg2I5wwyD64jUyc8hbgdFcP8Xi97r5f1mAH+KdWOVD825Ww==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.21.tgz", + "integrity": "sha512-69kip2vrJIoAD7NKQXS9VhNeTyzRp90vIRFsaOM6L6emWlBc3NmMVdmFUrEcBmGNnGBN6/+vAESPGGG+vvQSIQ==", "dependencies": { - "@unhead/schema": "1.1.17", - "@unhead/shared": "1.1.17" + "@unhead/schema": "1.1.21", + "@unhead/shared": "1.1.21" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/schema": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.17.tgz", - "integrity": "sha512-9cs5gPkppwWLQfb3LD/svICmRlaX42NRvpxZxJ+bxtXE3q9i8cFvelBFH9U9xlu+eKjrEiDuPbgSIsfWvpp7Xw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.21.tgz", + "integrity": "sha512-JfOX2TGlxWY/ZRpEeOJohzDn0MWGjgvsI8O7nwqpOEIr/hu/sMz7Y4+3UYVAKkbHUAIi7edXtiDKLvKvfC7wtg==", "dependencies": { "hookable": "^5.4.2", "zhead": "^2.0.4" @@ -5350,37 +5498,37 @@ } }, "node_modules/@unhead/shared": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.17.tgz", - "integrity": "sha512-jwpNeoTP+uEk7eROmHK2YNoFcP67CBBIgIo4TQrK9unx7S9LiX05yXPsCAsgmxTjvCbirxk0v4EcwU1rUkzaxg==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.21.tgz", + "integrity": "sha512-LuWYzcrt6TouUeQ4Qr5En1VluTUBLD7an60FGCp2U/Nzl8go4RQBZ9LLMKkWaLKjv5LqnGTuH3MfL8e0xcrUVQ==", "dependencies": { - "@unhead/schema": "1.1.17" + "@unhead/schema": "1.1.21" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/ssr": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.17.tgz", - "integrity": "sha512-IXRwDQPZKpdxDpvscbFzSwC9rye0d72CQoFSjFu5efvly25ReEhn1y6uaak0JOx7ajakH6FtL04SXreNM2U4RA==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.21.tgz", + "integrity": "sha512-QZ/6oeVGQzm1GWixqf0LVj/XiJrbN5W2USNcp5xfmXc7hdsI0r+6r1lEWJVwNRfohGRSwpP5lZMuB84JJH7RfA==", "dependencies": { - "@unhead/schema": "1.1.17", - "@unhead/shared": "1.1.17" + "@unhead/schema": "1.1.21", + "@unhead/shared": "1.1.21" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/vue": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.17.tgz", - "integrity": "sha512-+mCPF9S3lTVe2T9mgLvpbFlWOK24JROkKxm2wD6XiRjg4/eeWXNRCq2aTfE1NclNQqVy45aQzB//OCXuEcxdLg==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.21.tgz", + "integrity": "sha512-zX4tIoHAhF7SRe2N89b1bylo2yWY6ClQ5PRdaZzaK5FcwTi6i7RCYC/feQdP9U5TxZLLmdBw3aqBxx4s1m6tyQ==", "dependencies": { - "@unhead/schema": "1.1.17", - "@unhead/shared": "1.1.17", + "@unhead/schema": "1.1.21", + "@unhead/shared": "1.1.21", "hookable": "^5.4.2", - "unhead": "1.1.17" + "unhead": "1.1.21" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" @@ -5529,6 +5677,104 @@ "pretty-format": "^27.5.1" } }, + "node_modules/@vitest/utils/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/utils/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@vitest/utils/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/utils/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/utils/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@vue/babel-helper-vue-transform-on": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", @@ -6065,14 +6311,14 @@ } }, "node_modules/@vueuse/head": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@vueuse/head/-/head-1.1.15.tgz", - "integrity": "sha512-LJqvb7dpSqnsdn6YWUxv97vWCnn/s6IfBrE4ih5kRlh8XQXr/HjXJ8IyIxxp0X7QDr3FhOsjRDpJSiQbDYbBdQ==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@vueuse/head/-/head-1.1.19.tgz", + "integrity": "sha512-ow6HqD0gDfz97rsS3CSJ3lKrQjMpvzK6gy2+N5reWyk6mOYzOpVx96iLYaq7KETDxC820aqx1SDukhXgEMwqCg==", "dependencies": { - "@unhead/dom": "^1.1.15", - "@unhead/schema": "^1.1.15", - "@unhead/ssr": "^1.1.15", - "@unhead/vue": "^1.1.15" + "@unhead/dom": "^1.1.19", + "@unhead/schema": "^1.1.19", + "@unhead/ssr": "^1.1.19", + "@unhead/vue": "^1.1.19" }, "peerDependencies": { "vue": ">=2.7 || >=3" @@ -6369,6 +6615,19 @@ "node": ">= 6.0.0" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6432,15 +6691,24 @@ "ajv": "^6.9.1" } }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-escapes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", - "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dependencies": { - "type-fest": "^3.0.0" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=14.16" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6614,6 +6882,12 @@ "node": ">=10" } }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -6635,6 +6909,24 @@ "node": ">=8" } }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -6643,6 +6935,15 @@ "node": "*" } }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -6699,6 +7000,21 @@ "postcss": "^8.1.0" } }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, "node_modules/axe-core": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.1.tgz", @@ -6786,6 +7102,15 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -6821,6 +7146,12 @@ "readable-stream": "^3.4.0" } }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -6875,6 +7206,21 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/bonjour-service": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", @@ -7032,6 +7378,15 @@ "node": ">=8" } }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -7091,9 +7446,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001460", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz", - "integrity": "sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==", + "version": "1.0.30001462", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz", + "integrity": "sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==", "funding": [ { "type": "opencollective", @@ -7114,6 +7469,12 @@ "node": ">=4" } }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, "node_modules/chai": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", @@ -7157,6 +7518,15 @@ "node": "*" } }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -7237,18 +7607,25 @@ "node": ">= 10.0" } }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, "dependencies": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/cli-highlight": { @@ -7353,67 +7730,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "string-width": "^4.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { - "node": ">=12" + "node": "10.* || >= 12.*" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/cli-width": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", @@ -7531,11 +7878,21 @@ } }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, "engines": { - "node": ">= 12" + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" } }, "node_modules/commondir": { @@ -7622,6 +7979,11 @@ "proto-list": "~1.2.1" } }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -7747,9 +8109,9 @@ } }, "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "node_modules/cosmiconfig": { "version": "7.1.0", @@ -8133,6 +8495,255 @@ "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" }, + "node_modules/cypress": { + "version": "12.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.7.0.tgz", + "integrity": "sha512-7rq+nmhzz0u6yabCFyPtADU2OOrYt6pvUau9qV7xyifJ/hnsaw/vkr0tnLlcuuQKUAOC1v1M1e4Z0zG7S0IAvA==", + "dev": true, + "hasInstallScript": true, + "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.4", + "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/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/cypress/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cypress/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cypress/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "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/cypress/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cypress/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cypress/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/cypress/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", @@ -8166,6 +8777,12 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", + "dev": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -8258,6 +8875,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/default-gateway/node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -8578,6 +9204,16 @@ "node": ">=6.0.0" } }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -8634,9 +9270,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.320", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz", - "integrity": "sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==" + "version": "1.4.325", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.325.tgz", + "integrity": "sha512-K1C03NT4I7BuzsRdCU5RWkgZxtswnKDYM6/eMhkEXqKu4e5T+ck610x3FPzu1y7HVFSiQKZqP16gnJzPpji1TQ==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -8680,6 +9316,18 @@ "node": ">=10.13.0" } }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -9484,6 +10132,27 @@ "node": ">=4.0.0" } }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "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", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -9583,6 +10252,18 @@ "which": "bin/which" } }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -9646,6 +10327,27 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -9659,6 +10361,17 @@ "node": ">=4" } }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/externality": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/externality/-/externality-1.0.0.tgz", @@ -9670,6 +10383,50 @@ "ufo": "^1.0.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "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/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -9747,6 +10504,15 @@ "node": ">=0.8.0" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -9770,26 +10536,15 @@ } }, "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" + "escape-string-regexp": "^1.0.5" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9923,17 +10678,27 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 6" + "node": ">= 0.12" } }, "node_modules/formdata-polyfill": { @@ -9976,6 +10741,12 @@ "node": ">= 0.6" } }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -10109,6 +10880,24 @@ "node": ">=6" } }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, "node_modules/giget": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/giget/-/giget-1.1.2.tgz", @@ -10214,6 +11003,21 @@ "process": "^0.11.10" } }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -10469,6 +11273,15 @@ "node": ">=12" } }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, "node_modules/html-tags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", @@ -10608,6 +11421,20 @@ "node": ">= 0.12.0" } }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -10621,11 +11448,12 @@ } }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=8.12.0" } }, "node_modules/humps": { @@ -10712,6 +11540,15 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -10727,9 +11564,13 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/inquirer": { "version": "9.1.4", @@ -10756,6 +11597,20 @@ "node": ">=12.0.0" } }, + "node_modules/inquirer/node_modules/ansi-escapes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", + "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", + "dependencies": { + "type-fest": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inquirer/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -10822,11 +11677,51 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/inquirer/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inquirer/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "node_modules/inquirer/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inquirer/node_modules/is-interactive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", @@ -10838,6 +11733,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/inquirer/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inquirer/node_modules/log-symbols": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", @@ -10875,6 +11781,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/inquirer/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inquirer/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -10905,6 +11826,17 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/inquirer/node_modules/type-fest": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.1.tgz", + "integrity": "sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inquirer/node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -11003,6 +11935,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", @@ -11069,6 +12013,22 @@ "node": ">=0.10.0" } }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "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-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -11095,7 +12055,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "peer": true, "engines": { "node": ">=8" } @@ -11205,12 +12164,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11245,6 +12211,12 @@ "node": ">=0.10.0" } }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, "node_modules/javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -11554,9 +12526,9 @@ } }, "node_modules/jiti": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz", - "integrity": "sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==", + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.2.tgz", + "integrity": "sha512-Xf0nU8+8wuiQpLcqdb2HRyHqYwGk2Pd+F7kstyp20ZuqTyCmB9dqpX2NxaxFc1kovraa2bG6c1RL3W7XfapiZg==", "bin": { "jiti": "bin/jiti.js" } @@ -11635,6 +12607,12 @@ "integrity": "sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ==", "optional": true }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, "node_modules/jsdom": { "version": "21.1.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.0.tgz", @@ -11690,6 +12668,19 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/jsdom/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/jsdom/node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -11701,6 +12692,28 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/jsdom/node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsdom/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -11724,6 +12737,12 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -11735,6 +12754,12 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "peer": true }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -11832,6 +12857,21 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "optional": true }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, "node_modules/jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -11894,6 +12934,15 @@ "launch-editor": "^2.6.0" } }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, "node_modules/lazystream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", @@ -12023,6 +13072,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/listhen/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/listhen/node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -12045,6 +13102,33 @@ "node": ">=8" } }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "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", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -12168,6 +13252,12 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, "node_modules/lodash.pick": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", @@ -12274,18 +13364,6 @@ "node": ">=8" } }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -12299,128 +13377,85 @@ } }, "node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" + "node": ">=10" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "mimic-fn": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "node": ">=8" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/log-update/node_modules/strip-ansi": { + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/log-update/node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/loose-envify": { @@ -12492,6 +13527,12 @@ "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==" }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", @@ -12661,9 +13702,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", - "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz", + "integrity": "sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" @@ -13045,6 +14086,17 @@ "node": ">=10" } }, + "node_modules/nitropack/node_modules/pretty-bytes": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", + "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/nitropack/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -13610,18 +14662,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -13649,31 +14689,6 @@ "node": ">=8" } }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -13694,6 +14709,12 @@ "node": ">=0.10.0" } }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -13733,6 +14754,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -13793,6 +14829,11 @@ "node": ">=8" } }, + "node_modules/parse-git-config/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -13928,11 +14969,32 @@ "node": "*" } }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "node_modules/perfect-debounce": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-0.1.3.tgz", "integrity": "sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==" }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -14650,11 +15712,12 @@ } }, "node_modules/pretty-bytes": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", - "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14757,6 +15820,36 @@ "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" } }, + "node_modules/progress-webpack-plugin/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/progress-webpack-plugin/node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -14769,6 +15862,101 @@ "node": ">=4" } }, + "node_modules/progress-webpack-plugin/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -14801,11 +15989,32 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" }, + "node_modules/ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", + "dev": true, + "dependencies": { + "event-stream": "=3.3.4" + }, + "bin": { + "ps-tree": "bin/ps-tree.js" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -14835,9 +16044,9 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", "dependencies": { "side-channel": "^1.0.4" }, @@ -15240,6 +16449,15 @@ "strip-ansi": "^6.0.1" } }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -15287,18 +16505,16 @@ } }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/retry": { @@ -15319,6 +16535,12 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -15873,42 +17095,52 @@ } }, "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "engines": { - "node": ">=12" + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=7.0.0" } }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/smob": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/smob/-/smob-0.0.6.tgz", @@ -15957,9 +17189,9 @@ "deprecated": "Please use @jridgewell/sourcemap-codec instead" }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -16018,6 +17250,43 @@ "wbuf": "^1.7.3" } }, + "node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "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", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -16052,6 +17321,98 @@ "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" }, + "node_modules/start-server-and-test": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.0.tgz", + "integrity": "sha512-UqKLw0mJbfrsG1jcRLTUlvuRi9sjNuUiDOLI42r7R5fA9dsFoywAy9DoLXNYys9B886E4RCKb+qM1Gzu96h7DQ==", + "dev": true, + "dependencies": { + "arg": "^5.0.2", + "bluebird": "3.7.2", + "check-more-types": "2.24.0", + "debug": "4.3.4", + "execa": "5.1.1", + "lazy-ass": "1.6.0", + "ps-tree": "1.2.0", + "wait-on": "7.0.1" + }, + "bin": { + "server-test": "src/bin/start.js", + "start-server-and-test": "src/bin/start.js", + "start-test": "src/bin/start.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/start-server-and-test/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "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/start-server-and-test/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/start-server-and-test/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/start-server-and-test/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/start-server-and-test/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -16107,6 +17468,15 @@ } } }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -16458,6 +17828,12 @@ "node": ">=8.9.0" } }, + "node_modules/throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==", + "dev": true + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -16502,14 +17878,15 @@ } }, "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, "dependencies": { - "os-tmpdir": "~1.0.2" + "rimraf": "^3.0.0" }, "engines": { - "node": ">=0.6.0" + "node": ">=8.17.0" } }, "node_modules/to-fast-properties": { @@ -16549,25 +17926,16 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" + "node": ">=0.8" } }, "node_modules/tr46": { @@ -16603,6 +17971,24 @@ "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -16624,11 +18010,11 @@ } }, "node_modules/type-fest": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.1.tgz", - "integrity": "sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16712,13 +18098,13 @@ } }, "node_modules/unhead": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.17.tgz", - "integrity": "sha512-TT4qUHgzOcMXgc35u0JrISCWMYA6KryKevCP7tpNEaJ4D0HjmxnzNgAtw3pb9x+BDglo3oawM0AMRK8xvtTgnw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.21.tgz", + "integrity": "sha512-+ZFPAfHDVEpYpS8ucz0jjreIsgcMnR/NEiDuGXV3w6uWGzP9Tcyyi8Z5k5zhSVCEksSP98C2cbfhWa0CGFK4zA==", "dependencies": { - "@unhead/dom": "1.1.17", - "@unhead/schema": "1.1.17", - "@unhead/shared": "1.1.17", + "@unhead/dom": "1.1.21", + "@unhead/schema": "1.1.21", + "@unhead/shared": "1.1.21", "hookable": "^5.4.2" }, "funding": { @@ -16845,9 +18231,9 @@ "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==" }, "node_modules/unstorage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.2.0.tgz", - "integrity": "sha512-QRCcetx19ug1QiYkWk7M5SyrQkjMy2NKY1LsbzdQhSEhIp7Td+tUkAJc64XeCHhzqiHDZ/69S0xseQs6gByESA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.4.0.tgz", + "integrity": "sha512-l4ggmklguKsfkoEcO9QiSgnYLEUTVqHk+Sl9Y63FzhUnCqGz7icxLX7WmvDwPtAYH6qI4hBkfJbVVjS5rispMQ==", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^3.5.3", @@ -16855,20 +18241,20 @@ "h3": "^1.5.0", "ioredis": "^5.3.1", "listhen": "^1.0.3", - "lru-cache": "^7.17.0", + "lru-cache": "^7.18.3", "mri": "^1.2.0", "node-fetch-native": "^1.0.2", "ofetch": "^1.0.1", - "ufo": "^1.1.0" + "ufo": "^1.1.1" }, "optionalDependencies": { "@azure/app-configuration": "^1.3.1", - "@azure/cosmos": "^3.17.2", + "@azure/cosmos": "^3.17.3", "@azure/data-tables": "^13.2.1", "@azure/identity": "^3.1.3", "@azure/keyvault-secrets": "^4.6.0", - "@azure/storage-blob": "^12.12.0", - "@planetscale/database": "^1.5.0" + "@azure/storage-blob": "^12.13.0", + "@planetscale/database": "^1.6.0" } }, "node_modules/unstorage/node_modules/lru-cache": { @@ -16879,6 +18265,15 @@ "node": ">=12" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/untyped": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/untyped/-/untyped-1.2.2.tgz", @@ -16980,6 +18375,20 @@ "node": ">= 0.8" } }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, "node_modules/vite": { "version": "2.9.15", "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.15.tgz", @@ -17516,20 +18925,6 @@ } } }, - "node_modules/vite-plugin-checker/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/vite-plugin-checker/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -17575,6 +18970,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/vite-plugin-checker/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, "node_modules/vite-plugin-checker/node_modules/fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", @@ -17618,17 +19021,6 @@ "node": ">=8" } }, - "node_modules/vite-plugin-checker/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/vite/node_modules/@esbuild/linux-loong64": { "version": "0.14.54", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", @@ -18452,6 +19844,69 @@ "node": ">=14" } }, + "node_modules/wait-on": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz", + "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==", + "dev": true, + "dependencies": { + "axios": "^0.27.2", + "joi": "^17.7.0", + "lodash": "^4.17.21", + "minimist": "^1.2.7", + "rxjs": "^7.8.0" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/wait-on/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/wait-on/node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/wait-on/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -19229,6 +20684,16 @@ "node": ">=10" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -19403,11 +20868,40 @@ "xml2js": "^0.4.19" }, "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "optional": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "optional": true + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "optional": true } } }, @@ -19485,6 +20979,17 @@ "tslib": "^2.2.0" } }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -19714,18 +21219,18 @@ } }, "@azure/msal-browser": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.33.0.tgz", - "integrity": "sha512-c7CVh1tfUfxiWkEIhoIb11hL4PGo4hz0M+gMy34ATagAKdLK7qyEu/5AXJWAf5lz5eE+vQhm7+LKiuETrcXXGw==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.34.0.tgz", + "integrity": "sha512-stoXdlfAtyVIMOp1lS5PorgO5f66MGRi3Q1FBlXhVZFTsTfAWrNdSOx1m/PXWHskWE9aXO+NEzXVOoWmDNnvNA==", "optional": true, "requires": { - "@azure/msal-common": "^10.0.0" + "@azure/msal-common": "^11.0.0" }, "dependencies": { "@azure/msal-common": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-10.0.0.tgz", - "integrity": "sha512-/LghpT93jsZLy55QzTsRZWMx6R1Mjc1Aktwps8sKSGE3WbrGwbSsh2uhDlpl6FMcKChYjJ0ochThWwwOodrQNg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-11.0.0.tgz", + "integrity": "sha512-SZH8ObQ3Hq5v3ogVGBYJp1nNW7p+MtM4PH4wfNadBP9wf7K0beQHF9iOtRcjPOkwZf+ZD49oXqw91LndIkdk8g==", "optional": true } } @@ -19737,20 +21242,20 @@ "optional": true }, "@azure/msal-node": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.15.0.tgz", - "integrity": "sha512-fwC5M0c8pxOAzmScPbpx7j28YVTDebUaizlVF7bR0xvlU0r3VWW5OobCcr9ybqKS6wGyO7u4EhXJS9rjRWAuwA==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.16.0.tgz", + "integrity": "sha512-eGXPp65i++mAIvziafbCH970TCeECB6iaQP7aRzZEjtU238cW4zKm40U8YxkiCn9rR1G2VeMHENB5h6WRk7ZCQ==", "optional": true, "requires": { - "@azure/msal-common": "^10.0.0", + "@azure/msal-common": "^11.0.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, "dependencies": { "@azure/msal-common": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-10.0.0.tgz", - "integrity": "sha512-/LghpT93jsZLy55QzTsRZWMx6R1Mjc1Aktwps8sKSGE3WbrGwbSsh2uhDlpl6FMcKChYjJ0ochThWwwOodrQNg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-11.0.0.tgz", + "integrity": "sha512-SZH8ObQ3Hq5v3ogVGBYJp1nNW7p+MtM4PH4wfNadBP9wf7K0beQHF9iOtRcjPOkwZf+ZD49oXqw91LndIkdk8g==", "optional": true } } @@ -19793,6 +21298,17 @@ "xml2js": "^0.4.19" } }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -20934,6 +22450,60 @@ "mime": "^3.0.0" } }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, + "@cypress/request": { + "version": "2.88.11", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.11.tgz", + "integrity": "sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==", + "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", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, "@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -22083,9 +23653,9 @@ "optional": true }, "@planetscale/database": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@planetscale/database/-/database-1.5.0.tgz", - "integrity": "sha512-Qwh7Or1W5dB5mZ9EQqDkgvkDKhBBmQe58KIVUy0SGocNtr5fP4JAWtvZ6EdLAV6C6hVpzNlCA2xIg9lKTswm1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@planetscale/database/-/database-1.6.0.tgz", + "integrity": "sha512-eb02567S706Xme/nVwx+EN/wyoHhHBXl1a7+67R/Xm91myEpLn0vZNl58TvLZztBxje4gga16lc8dLt0elNrJA==", "optional": true }, "@polka/url": { @@ -22707,9 +24277,9 @@ "dev": true }, "@types/node": { - "version": "18.14.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", - "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==" + "version": "14.18.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", + "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==" }, "@types/node-fetch": { "version": "2.6.2", @@ -22788,6 +24358,18 @@ "@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", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, "@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -22825,50 +24407,60 @@ "@types/node": "*" } }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, "@unhead/dom": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.17.tgz", - "integrity": "sha512-7mqgiUllue+T2ZZyGI9bII8WAe9fLhZni3Oz3JkDg2I5wwyD64jUyc8hbgdFcP8Xi97r5f1mAH+KdWOVD825Ww==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.21.tgz", + "integrity": "sha512-69kip2vrJIoAD7NKQXS9VhNeTyzRp90vIRFsaOM6L6emWlBc3NmMVdmFUrEcBmGNnGBN6/+vAESPGGG+vvQSIQ==", "requires": { - "@unhead/schema": "1.1.17", - "@unhead/shared": "1.1.17" + "@unhead/schema": "1.1.21", + "@unhead/shared": "1.1.21" } }, "@unhead/schema": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.17.tgz", - "integrity": "sha512-9cs5gPkppwWLQfb3LD/svICmRlaX42NRvpxZxJ+bxtXE3q9i8cFvelBFH9U9xlu+eKjrEiDuPbgSIsfWvpp7Xw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.21.tgz", + "integrity": "sha512-JfOX2TGlxWY/ZRpEeOJohzDn0MWGjgvsI8O7nwqpOEIr/hu/sMz7Y4+3UYVAKkbHUAIi7edXtiDKLvKvfC7wtg==", "requires": { "hookable": "^5.4.2", "zhead": "^2.0.4" } }, "@unhead/shared": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.17.tgz", - "integrity": "sha512-jwpNeoTP+uEk7eROmHK2YNoFcP67CBBIgIo4TQrK9unx7S9LiX05yXPsCAsgmxTjvCbirxk0v4EcwU1rUkzaxg==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.21.tgz", + "integrity": "sha512-LuWYzcrt6TouUeQ4Qr5En1VluTUBLD7an60FGCp2U/Nzl8go4RQBZ9LLMKkWaLKjv5LqnGTuH3MfL8e0xcrUVQ==", "requires": { - "@unhead/schema": "1.1.17" + "@unhead/schema": "1.1.21" } }, "@unhead/ssr": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.17.tgz", - "integrity": "sha512-IXRwDQPZKpdxDpvscbFzSwC9rye0d72CQoFSjFu5efvly25ReEhn1y6uaak0JOx7ajakH6FtL04SXreNM2U4RA==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.21.tgz", + "integrity": "sha512-QZ/6oeVGQzm1GWixqf0LVj/XiJrbN5W2USNcp5xfmXc7hdsI0r+6r1lEWJVwNRfohGRSwpP5lZMuB84JJH7RfA==", "requires": { - "@unhead/schema": "1.1.17", - "@unhead/shared": "1.1.17" + "@unhead/schema": "1.1.21", + "@unhead/shared": "1.1.21" } }, "@unhead/vue": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.17.tgz", - "integrity": "sha512-+mCPF9S3lTVe2T9mgLvpbFlWOK24JROkKxm2wD6XiRjg4/eeWXNRCq2aTfE1NclNQqVy45aQzB//OCXuEcxdLg==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.21.tgz", + "integrity": "sha512-zX4tIoHAhF7SRe2N89b1bylo2yWY6ClQ5PRdaZzaK5FcwTi6i7RCYC/feQdP9U5TxZLLmdBw3aqBxx4s1m6tyQ==", "requires": { - "@unhead/schema": "1.1.17", - "@unhead/shared": "1.1.17", + "@unhead/schema": "1.1.21", + "@unhead/shared": "1.1.21", "hookable": "^5.4.2", - "unhead": "1.1.17" + "unhead": "1.1.21" } }, "@vercel/nft": { @@ -22977,6 +24569,64 @@ "loupe": "^2.3.6", "picocolors": "^1.0.0", "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + } + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==" + }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + } + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } } }, "@vue/babel-helper-vue-transform-on": { @@ -23398,14 +25048,14 @@ } }, "@vueuse/head": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@vueuse/head/-/head-1.1.15.tgz", - "integrity": "sha512-LJqvb7dpSqnsdn6YWUxv97vWCnn/s6IfBrE4ih5kRlh8XQXr/HjXJ8IyIxxp0X7QDr3FhOsjRDpJSiQbDYbBdQ==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@vueuse/head/-/head-1.1.19.tgz", + "integrity": "sha512-ow6HqD0gDfz97rsS3CSJ3lKrQjMpvzK6gy2+N5reWyk6mOYzOpVx96iLYaq7KETDxC820aqx1SDukhXgEMwqCg==", "requires": { - "@unhead/dom": "^1.1.15", - "@unhead/schema": "^1.1.15", - "@unhead/ssr": "^1.1.15", - "@unhead/vue": "^1.1.15" + "@unhead/dom": "^1.1.19", + "@unhead/schema": "^1.1.19", + "@unhead/ssr": "^1.1.19", + "@unhead/vue": "^1.1.19" } }, "@vueuse/metadata": { @@ -23654,6 +25304,16 @@ "debug": "4" } }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -23701,12 +25361,18 @@ "dev": true, "requires": {} }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, "ansi-escapes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", - "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { - "type-fest": "^3.0.0" + "type-fest": "^0.21.3" } }, "ansi-html-community": { @@ -23835,6 +25501,12 @@ "readable-stream": "^3.6.0" } }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -23853,11 +25525,32 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, "async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -23892,6 +25585,18 @@ "postcss-value-parser": "^4.2.0" } }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, "axe-core": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.1.tgz", @@ -23952,6 +25657,15 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -23981,6 +25695,12 @@ "readable-stream": "^3.4.0" } }, + "blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -24027,6 +25747,15 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } } } }, @@ -24138,6 +25867,12 @@ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -24187,9 +25922,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001460", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz", - "integrity": "sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==" + "version": "1.0.30001462", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz", + "integrity": "sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==" }, "case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -24197,6 +25932,12 @@ "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", "dev": true }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, "chai": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", @@ -24231,6 +25972,12 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==" }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -24281,12 +26028,19 @@ "source-map": "~0.6.0" } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, "requires": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^3.1.0" } }, "cli-highlight": { @@ -24359,43 +26113,24 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" }, + "cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - } + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" } }, "cli-width": { @@ -24494,9 +26229,16 @@ } }, "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true }, "commondir": { "version": "1.0.1", @@ -24573,6 +26315,13 @@ "requires": { "ini": "^1.3.4", "proto-list": "~1.2.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + } } }, "connect-history-api-fallback": { @@ -24666,9 +26415,9 @@ } }, "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "cosmiconfig": { "version": "7.1.0", @@ -24936,6 +26685,192 @@ "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" }, + "cypress": { + "version": "12.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.7.0.tgz", + "integrity": "sha512-7rq+nmhzz0u6yabCFyPtADU2OOrYt6pvUau9qV7xyifJ/hnsaw/vkr0tnLlcuuQKUAOC1v1M1e4Z0zG7S0IAvA==", + "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.4", + "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": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "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" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, "data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", @@ -24956,6 +26891,12 @@ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" }, + "dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", + "dev": true + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -25019,6 +26960,12 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -25260,6 +27207,16 @@ "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", "dev": true }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -25312,9 +27269,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.320", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz", - "integrity": "sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==" + "version": "1.4.325", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.325.tgz", + "integrity": "sha512-K1C03NT4I7BuzsRdCU5RWkgZxtswnKDYM6/eMhkEXqKu4e5T+ck610x3FPzu1y7HVFSiQKZqP16gnJzPpji1TQ==" }, "emoji-regex": { "version": "8.0.0", @@ -25349,6 +27306,15 @@ "tapable": "^2.2.0" } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -25837,6 +27803,27 @@ "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", "dev": true }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.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", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -25914,6 +27901,15 @@ } } }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, "express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -25973,9 +27969,24 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } } } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -25984,6 +27995,16 @@ "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + } } }, "externality": { @@ -25997,6 +28018,35 @@ "ufo": "^1.0.0" } }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -26060,6 +28110,15 @@ "websocket-driver": ">=0.5.1" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -26070,19 +28129,12 @@ } }, "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" - } + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -26193,13 +28245,20 @@ } } }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -26227,6 +28286,12 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -26329,6 +28394,24 @@ "pump": "^3.0.0" } }, + "getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "requires": { + "async": "^3.2.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, "giget": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/giget/-/giget-1.1.2.tgz", @@ -26418,6 +28501,15 @@ "process": "^0.11.10" } }, + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -26625,6 +28717,14 @@ "param-case": "^3.0.4", "relateurl": "^0.2.7", "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + } } }, "html-tags": { @@ -26719,6 +28819,17 @@ "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==" }, + "http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + } + }, "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -26729,9 +28840,10 @@ } }, "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true }, "humps": { "version": "2.0.1", @@ -26783,6 +28895,12 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "peer": true }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -26798,9 +28916,10 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true }, "inquirer": { "version": "9.1.4", @@ -26824,6 +28943,14 @@ "wrap-ansi": "^8.0.1" }, "dependencies": { + "ansi-escapes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", + "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", + "requires": { + "type-fest": "^3.0.0" + } + }, "ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -26858,16 +28985,43 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==" }, + "cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "requires": { + "restore-cursor": "^4.0.0" + } + }, "emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + }, + "figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "requires": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + } + }, "is-interactive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" + }, "log-symbols": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", @@ -26893,6 +29047,15 @@ "wcwidth": "^1.0.1" } }, + "restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -26911,6 +29074,11 @@ "ansi-regex": "^6.0.1" } }, + "type-fest": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.1.tgz", + "integrity": "sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==" + }, "wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -26977,6 +29145,15 @@ "builtin-modules": "^3.3.0" } }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, "is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", @@ -27022,6 +29199,16 @@ "is-extglob": "^2.1.1" } }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -27041,8 +29228,7 @@ "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "peer": true + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-plain-obj": { "version": "3.0.0", @@ -27121,10 +29307,17 @@ "has-symbols": "^1.0.2" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true }, "is-wsl": { "version": "2.2.0", @@ -27149,6 +29342,12 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, "javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -27379,9 +29578,9 @@ } }, "jiti": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz", - "integrity": "sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==" + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.2.tgz", + "integrity": "sha512-Xf0nU8+8wuiQpLcqdb2HRyHqYwGk2Pd+F7kstyp20ZuqTyCmB9dqpX2NxaxFc1kovraa2bG6c1RL3W7XfapiZg==" }, "joi": { "version": "17.8.3", @@ -27439,6 +29638,12 @@ "integrity": "sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ==", "optional": true }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, "jsdom": { "version": "21.1.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.0.tgz", @@ -27477,6 +29682,16 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -27484,6 +29699,22 @@ "requires": { "entities": "^4.4.0" } + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" } } }, @@ -27504,6 +29735,12 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -27515,6 +29752,12 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "peer": true }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -27593,6 +29836,18 @@ } } }, + "jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, "jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -27649,6 +29904,12 @@ "launch-editor": "^2.6.0" } }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true + }, "lazystream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", @@ -27753,6 +30014,11 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -27768,6 +30034,22 @@ } } }, + "listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "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", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -27872,6 +30154,12 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, "lodash.pick": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", @@ -27954,12 +30242,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27972,95 +30254,61 @@ } }, "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "color-convert": "^2.0.1" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "onetime": { + "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "color-name": "~1.1.4" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "strip-ansi": { + "slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } @@ -28127,6 +30375,12 @@ "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==" }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, "mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", @@ -28265,9 +30519,9 @@ } }, "mini-css-extract-plugin": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", - "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz", + "integrity": "sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w==", "dev": true, "requires": { "schema-utils": "^4.0.0" @@ -28567,6 +30821,11 @@ "yallist": "^4.0.0" } }, + "pretty-bytes": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", + "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==" + }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -28985,15 +31244,6 @@ "supports-color": "^7.1.0" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -29015,22 +31265,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -29047,6 +31281,12 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -29071,6 +31311,15 @@ "p-limit": "^3.0.2" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -29119,6 +31368,13 @@ "requires": { "git-config-path": "^2.0.0", "ini": "^1.3.5" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + } } }, "parse-json": { @@ -29236,11 +31492,32 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "requires": { + "through": "~2.3" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "perfect-debounce": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-0.1.3.tgz", "integrity": "sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==" }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -29698,9 +31975,10 @@ "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==" }, "pretty-bytes": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", - "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==" + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true }, "pretty-error": { "version": "4.0.0", @@ -29780,6 +32058,27 @@ "log-update": "^2.3.0" }, "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -29788,6 +32087,77 @@ "requires": { "escape-string-regexp": "^1.0.5" } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } } } }, @@ -29819,11 +32189,26 @@ } } }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" }, + "ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", + "dev": true, + "requires": { + "event-stream": "=3.3.4" + } + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -29850,9 +32235,9 @@ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", "requires": { "side-channel": "^1.0.4" } @@ -30164,6 +32549,15 @@ "strip-ansi": "^6.0.1" } }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -30196,9 +32590,10 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -30215,6 +32610,12 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -30635,23 +33036,39 @@ "dev": true }, "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==" + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, @@ -30696,9 +33113,9 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -30754,6 +33171,32 @@ "wbuf": "^1.7.3" } }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "requires": { + "through": "2" + } + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "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", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -30784,6 +33227,68 @@ "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" }, + "start-server-and-test": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.0.tgz", + "integrity": "sha512-UqKLw0mJbfrsG1jcRLTUlvuRi9sjNuUiDOLI42r7R5fA9dsFoywAy9DoLXNYys9B886E4RCKb+qM1Gzu96h7DQ==", + "dev": true, + "requires": { + "arg": "^5.0.2", + "bluebird": "3.7.2", + "check-more-types": "2.24.0", + "debug": "4.3.4", + "execa": "5.1.1", + "lazy-ass": "1.6.0", + "ps-tree": "1.2.0", + "wait-on": "7.0.1" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "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" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + } + } + }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -30820,6 +33325,15 @@ "memoizerific": "^1.11.3" } }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "requires": { + "duplexer": "~0.1.1" + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -31073,6 +33587,12 @@ } } }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==", + "dev": true + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -31111,11 +33631,12 @@ "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==" }, "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "rimraf": "^3.0.0" } }, "to-fast-properties": { @@ -31143,21 +33664,13 @@ "dev": true }, "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "dependencies": { - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" - } + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tr46": { @@ -31184,6 +33697,21 @@ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "optional": true }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -31199,9 +33727,9 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, "type-fest": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.1.tgz", - "integrity": "sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==" + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" }, "type-is": { "version": "1.6.18", @@ -31270,13 +33798,13 @@ } }, "unhead": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.17.tgz", - "integrity": "sha512-TT4qUHgzOcMXgc35u0JrISCWMYA6KryKevCP7tpNEaJ4D0HjmxnzNgAtw3pb9x+BDglo3oawM0AMRK8xvtTgnw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.21.tgz", + "integrity": "sha512-+ZFPAfHDVEpYpS8ucz0jjreIsgcMnR/NEiDuGXV3w6uWGzP9Tcyyi8Z5k5zhSVCEksSP98C2cbfhWa0CGFK4zA==", "requires": { - "@unhead/dom": "1.1.17", - "@unhead/schema": "1.1.17", - "@unhead/shared": "1.1.17", + "@unhead/dom": "1.1.21", + "@unhead/schema": "1.1.21", + "@unhead/shared": "1.1.21", "hookable": "^5.4.2" } }, @@ -31377,28 +33905,28 @@ } }, "unstorage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.2.0.tgz", - "integrity": "sha512-QRCcetx19ug1QiYkWk7M5SyrQkjMy2NKY1LsbzdQhSEhIp7Td+tUkAJc64XeCHhzqiHDZ/69S0xseQs6gByESA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.4.0.tgz", + "integrity": "sha512-l4ggmklguKsfkoEcO9QiSgnYLEUTVqHk+Sl9Y63FzhUnCqGz7icxLX7WmvDwPtAYH6qI4hBkfJbVVjS5rispMQ==", "requires": { "@azure/app-configuration": "^1.3.1", - "@azure/cosmos": "^3.17.2", + "@azure/cosmos": "^3.17.3", "@azure/data-tables": "^13.2.1", "@azure/identity": "^3.1.3", "@azure/keyvault-secrets": "^4.6.0", - "@azure/storage-blob": "^12.12.0", - "@planetscale/database": "^1.5.0", + "@azure/storage-blob": "^12.13.0", + "@planetscale/database": "^1.6.0", "anymatch": "^3.1.3", "chokidar": "^3.5.3", "destr": "^1.2.2", "h3": "^1.5.0", "ioredis": "^5.3.1", "listhen": "^1.0.3", - "lru-cache": "^7.17.0", + "lru-cache": "^7.18.3", "mri": "^1.2.0", "node-fetch-native": "^1.0.2", "ofetch": "^1.0.1", - "ufo": "^1.1.0" + "ufo": "^1.1.1" }, "dependencies": { "lru-cache": { @@ -31408,6 +33936,12 @@ } } }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, "untyped": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/untyped/-/untyped-1.2.2.tgz", @@ -31484,6 +34018,17 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, "vite": { "version": "2.9.15", "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.15.tgz", @@ -31755,14 +34300,6 @@ "vscode-uri": "^3.0.2" }, "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -31793,6 +34330,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, "fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", @@ -31823,11 +34365,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" } } }, @@ -32257,6 +34794,48 @@ "xml-name-validator": "^4.0.0" } }, + "wait-on": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz", + "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==", + "dev": true, + "requires": { + "axios": "^0.27.2", + "joi": "^17.7.0", + "lodash": "^4.17.21", + "minimist": "^1.2.7", + "rxjs": "^7.8.0" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -32817,6 +35396,16 @@ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 0dca2d38..93643726 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,17 @@ "private": true, "scripts": { "dev": "nuxi dev", + "dev-no-ssr": "NUXT_SSR=false nuxi dev", "build": "nuxi build", "start": "node .output/server/index.mjs", "preview": "nuxi preview", "test": "vitest", - "coverage": "vitest run --coverage" + "coverage": "vitest run --coverage", + "cy:run": "cypress run", + "cy:ci": "cypress run --config video=false", + "cy:open": "cypress open", + "test-cypress": "start-server-and-test dev-no-ssr http://localhost:3000 cy:run", + "test-cypress-ci": "start-server-and-test dev-no-ssr http://localhost:3000 cy:ci" }, "devDependencies": { "@babel/core": "^7.17.7", @@ -14,8 +20,10 @@ "@babel/preset-env": "^7.16.11", "@vue/cli-service": "^5.0.4", "@vue/compiler-sfc": "^3.2.31", + "cypress": "^12.3.0", "jest-axe": "^5.0.1", "nuxt": "^3.0.0", + "start-server-and-test": "^2.0.0", "typescript": "^4.5.4" }, "dependencies": { @@ -36,4 +44,4 @@ "vitest": "^0.29.2", "vue-social-sharing": "^4.0.0-alpha4" } -} \ No newline at end of file +} diff --git a/pages/index.vue b/pages/index.vue index 108c9c9e..e022104e 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -144,7 +144,7 @@ const nativoSectionLoaded = (name) => { -
+