mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-26 11:43:59 -05:00
Update nextjs monorepo to v12.3.0 (#2222)
* Update nextjs monorepo to v12.3.0 Signed-off-by: Renovate Bot <bot@renovateapp.com> * Fix tests Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de> Signed-off-by: Renovate Bot <bot@renovateapp.com> Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
parent
7d926ca690
commit
7b264042dc
19 changed files with 166 additions and 157 deletions
|
@ -106,7 +106,7 @@
|
||||||
"markmap-lib": "0.13.5",
|
"markmap-lib": "0.13.5",
|
||||||
"markmap-view": "0.13.5",
|
"markmap-view": "0.13.5",
|
||||||
"mermaid": "9.1.6",
|
"mermaid": "9.1.6",
|
||||||
"next": "12.2.2",
|
"next": "12.3.0",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-bootstrap": "1.6.6",
|
"react-bootstrap": "1.6.6",
|
||||||
"react-bootstrap-typeahead": "5.2.2",
|
"react-bootstrap-typeahead": "5.2.2",
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
"yjs": "13.5.41"
|
"yjs": "13.5.41"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@next/bundle-analyzer": "12.2.2",
|
"@next/bundle-analyzer": "12.3.0",
|
||||||
"@testing-library/cypress": "8.0.3",
|
"@testing-library/cypress": "8.0.3",
|
||||||
"@testing-library/dom": "8.17.1",
|
"@testing-library/dom": "8.17.1",
|
||||||
"@testing-library/jest-dom": "5.16.5",
|
"@testing-library/jest-dom": "5.16.5",
|
||||||
|
|
|
@ -13,6 +13,9 @@ import type { Note, NoteMetadata } from '../../../api/notes/types'
|
||||||
import { Mock } from 'ts-mockery'
|
import { Mock } from 'ts-mockery'
|
||||||
import { waitForOtherPromisesToFinish } from '../../../utils/wait-for-other-promises-to-finish'
|
import { waitForOtherPromisesToFinish } from '../../../utils/wait-for-other-promises-to-finish'
|
||||||
|
|
||||||
|
jest.mock('../../../api/notes')
|
||||||
|
jest.mock('../../../hooks/common/use-single-string-url-parameter')
|
||||||
|
|
||||||
describe('create non existing note hint', () => {
|
describe('create non existing note hint', () => {
|
||||||
const mockedNoteId = 'mockedNoteId'
|
const mockedNoteId = 'mockedNoteId'
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,13 @@ import * as CommonErrorPageModule from '../../error-pages/common-error-page'
|
||||||
import * as LoadingScreenModule from '../../../components/application-loader/loading-screen/loading-screen'
|
import * as LoadingScreenModule from '../../../components/application-loader/loading-screen/loading-screen'
|
||||||
import * as CreateNonExistingNoteHintModule from './create-non-existing-note-hint'
|
import * as CreateNonExistingNoteHintModule from './create-non-existing-note-hint'
|
||||||
|
|
||||||
|
jest.mock('../../../hooks/common/use-single-string-url-parameter')
|
||||||
|
jest.mock('../../../api/notes')
|
||||||
|
jest.mock('../../../redux/note-details/methods')
|
||||||
|
jest.mock('../../error-pages/common-error-page')
|
||||||
|
jest.mock('../../../components/application-loader/loading-screen/loading-screen')
|
||||||
|
jest.mock('./create-non-existing-note-hint')
|
||||||
|
|
||||||
describe('Note loading boundary', () => {
|
describe('Note loading boundary', () => {
|
||||||
const mockedNoteId = 'mockedNoteId'
|
const mockedNoteId = 'mockedNoteId'
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,8 @@ import type { CodeProps } from '../../replace-components/code-block-component-re
|
||||||
import { AbcjsMarkdownExtension } from './abcjs-markdown-extension'
|
import { AbcjsMarkdownExtension } from './abcjs-markdown-extension'
|
||||||
import { mockI18n } from '../../test-utils/mock-i18n'
|
import { mockI18n } from '../../test-utils/mock-i18n'
|
||||||
|
|
||||||
|
jest.mock('./abc-frame')
|
||||||
|
|
||||||
describe('AbcJs Markdown Extension', () => {
|
describe('AbcJs Markdown Extension', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
jest.spyOn(AbcFrameModule, 'AbcFrame').mockImplementation((({ code }) => {
|
jest.spyOn(AbcFrameModule, 'AbcFrame').mockImplementation((({ code }) => {
|
||||||
|
|
|
@ -12,6 +12,8 @@ import { render } from '@testing-library/react'
|
||||||
import { TestMarkdownRenderer } from '../../test-utils/test-markdown-renderer'
|
import { TestMarkdownRenderer } from '../../test-utils/test-markdown-renderer'
|
||||||
import { CsvTableMarkdownExtension } from './csv-table-markdown-extension'
|
import { CsvTableMarkdownExtension } from './csv-table-markdown-extension'
|
||||||
|
|
||||||
|
jest.mock('../csv/csv-table')
|
||||||
|
|
||||||
describe('CSV Table Markdown Extension', () => {
|
describe('CSV Table Markdown Extension', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
jest.spyOn(CsvTableModule, 'CsvTable').mockImplementation((({ code }) => {
|
jest.spyOn(CsvTableModule, 'CsvTable').mockImplementation((({ code }) => {
|
||||||
|
|
|
@ -12,6 +12,8 @@ import { FlowchartMarkdownExtension } from './flowchart-markdown-extension'
|
||||||
import * as Flowchart from '../flowchart/flowchart'
|
import * as Flowchart from '../flowchart/flowchart'
|
||||||
import type { CodeProps } from '../../replace-components/code-block-component-replacer'
|
import type { CodeProps } from '../../replace-components/code-block-component-replacer'
|
||||||
|
|
||||||
|
jest.mock('../flowchart/flowchart')
|
||||||
|
|
||||||
describe('Flowchart markdown extensions', () => {
|
describe('Flowchart markdown extensions', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
jest.spyOn(Flowchart, 'FlowChart').mockImplementation((({ code }) => {
|
jest.spyOn(Flowchart, 'FlowChart').mockImplementation((({ code }) => {
|
||||||
|
|
|
@ -12,6 +12,8 @@ import { GraphvizMarkdownExtension } from './graphviz-markdown-extension'
|
||||||
import * as GraphvizFrameModule from '../graphviz/graphviz-frame'
|
import * as GraphvizFrameModule from '../graphviz/graphviz-frame'
|
||||||
import type { CodeProps } from '../../replace-components/code-block-component-replacer'
|
import type { CodeProps } from '../../replace-components/code-block-component-replacer'
|
||||||
|
|
||||||
|
jest.mock('../graphviz/graphviz-frame')
|
||||||
|
|
||||||
describe('PlantUML markdown extensions', () => {
|
describe('PlantUML markdown extensions', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
jest.spyOn(GraphvizFrameModule, 'GraphvizFrame').mockImplementation((({ code }) => {
|
jest.spyOn(GraphvizFrameModule, 'GraphvizFrame').mockImplementation((({ code }) => {
|
||||||
|
|
|
@ -12,6 +12,8 @@ import * as HighlightedCodeModule from './highlighted-code'
|
||||||
import { mockI18n } from '../../test-utils/mock-i18n'
|
import { mockI18n } from '../../test-utils/mock-i18n'
|
||||||
import { HighlightedCodeMarkdownExtension } from './highlighted-code-markdown-extension'
|
import { HighlightedCodeMarkdownExtension } from './highlighted-code-markdown-extension'
|
||||||
|
|
||||||
|
jest.mock('./highlighted-code')
|
||||||
|
|
||||||
describe('Highlighted code markdown extension', () => {
|
describe('Highlighted code markdown extension', () => {
|
||||||
describe('renders', () => {
|
describe('renders', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`Legacy shortcodes markdown extension renders correctly 1`] = `
|
exports[`Legacy shortcodes markdown extension transforms a pdf short code into an URL 1`] = `
|
||||||
<div>
|
<div>
|
||||||
<p>
|
<p>
|
||||||
<a
|
<a
|
||||||
|
@ -8,17 +8,29 @@ exports[`Legacy shortcodes markdown extension renders correctly 1`] = `
|
||||||
>
|
>
|
||||||
https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
|
https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
|
||||||
</a>
|
</a>
|
||||||
<br />
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Legacy shortcodes markdown extension transforms a slideshare short code into an URL 1`] = `
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
<a
|
<a
|
||||||
href="https://www.slideshare.net/example/123456789"
|
href="https://www.slideshare.net/example/123456789"
|
||||||
>
|
>
|
||||||
https://www.slideshare.net/example/123456789
|
https://www.slideshare.net/example/123456789
|
||||||
</a>
|
</a>
|
||||||
<br />
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Legacy shortcodes markdown extension transforms a speakerdeck short code into an URL 1`] = `
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
<a
|
<a
|
||||||
href="https://speakerdeck.com/example/123456789"
|
href="https://speakerdeck.com/example/123456789"
|
||||||
>
|
>
|
||||||
|
|
|
@ -3,41 +3,37 @@
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
import * as replaceLegacyPdfShortCodeModule from './replace-legacy-pdf-short-code'
|
|
||||||
import * as replaceLegacySlideshareShortCodeModule from './replace-legacy-slideshare-short-code'
|
|
||||||
import * as replaceLegacySpeakerdeckShortCodeModule from './replace-legacy-speakerdeck-short-code'
|
|
||||||
import { render } from '@testing-library/react'
|
import { render } from '@testing-library/react'
|
||||||
import { TestMarkdownRenderer } from '../../test-utils/test-markdown-renderer'
|
import { TestMarkdownRenderer } from '../../test-utils/test-markdown-renderer'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { LegacyShortcodesMarkdownExtension } from './legacy-shortcodes-markdown-extension'
|
import { LegacyShortcodesMarkdownExtension } from './legacy-shortcodes-markdown-extension'
|
||||||
import MarkdownIt from 'markdown-it'
|
|
||||||
|
|
||||||
describe('Legacy shortcodes markdown extension', () => {
|
describe('Legacy shortcodes markdown extension', () => {
|
||||||
const replaceLegacyPdfShortCodeMarkdownItExtensionMock = jest.spyOn(
|
it('transforms a pdf short code into an URL', () => {
|
||||||
replaceLegacyPdfShortCodeModule,
|
|
||||||
'legacyPdfShortCode'
|
|
||||||
)
|
|
||||||
const replaceLegacySlideshareShortCodeMarkdownItExtensionMock = jest.spyOn(
|
|
||||||
replaceLegacySlideshareShortCodeModule,
|
|
||||||
'legacySlideshareShortCode'
|
|
||||||
)
|
|
||||||
const replaceLegacySpeakerdeckShortCodeMarkdownItExtensionMock = jest.spyOn(
|
|
||||||
replaceLegacySpeakerdeckShortCodeModule,
|
|
||||||
'legacySpeakerdeckShortCode'
|
|
||||||
)
|
|
||||||
|
|
||||||
it('renders correctly', () => {
|
|
||||||
const view = render(
|
const view = render(
|
||||||
<TestMarkdownRenderer
|
<TestMarkdownRenderer
|
||||||
extensions={[new LegacyShortcodesMarkdownExtension()]}
|
extensions={[new LegacyShortcodesMarkdownExtension()]}
|
||||||
content={
|
content={'{%pdf https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf %}'}
|
||||||
'{%pdf https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf %}\n{%slideshare example/123456789 %}\n{%speakerdeck example/123456789 %}'
|
/>
|
||||||
}
|
)
|
||||||
|
expect(view.container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
it('transforms a slideshare short code into an URL', () => {
|
||||||
|
const view = render(
|
||||||
|
<TestMarkdownRenderer
|
||||||
|
extensions={[new LegacyShortcodesMarkdownExtension()]}
|
||||||
|
content={'{%slideshare example/123456789 %}'}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
expect(view.container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
it('transforms a speakerdeck short code into an URL', () => {
|
||||||
|
const view = render(
|
||||||
|
<TestMarkdownRenderer
|
||||||
|
extensions={[new LegacyShortcodesMarkdownExtension()]}
|
||||||
|
content={'{%speakerdeck example/123456789 %}'}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
expect(replaceLegacyPdfShortCodeMarkdownItExtensionMock).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(replaceLegacySlideshareShortCodeMarkdownItExtensionMock).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(replaceLegacySpeakerdeckShortCodeMarkdownItExtensionMock).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(view.container).toMatchSnapshot()
|
expect(view.container).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -13,6 +13,8 @@ import * as reduxModule from '../../../../redux'
|
||||||
import { Mock } from 'ts-mockery'
|
import { Mock } from 'ts-mockery'
|
||||||
import type { ApplicationState } from '../../../../redux/application-state'
|
import type { ApplicationState } from '../../../../redux/application-state'
|
||||||
|
|
||||||
|
jest.mock('../../../../redux')
|
||||||
|
|
||||||
describe('PlantUML markdown extensions', () => {
|
describe('PlantUML markdown extensions', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await mockI18n()
|
await mockI18n()
|
||||||
|
|
|
@ -12,6 +12,8 @@ import { VegaLiteMarkdownExtension } from './vega-lite-markdown-extension'
|
||||||
import * as VegaLiteChartModule from '../vega-lite/vega-lite-chart'
|
import * as VegaLiteChartModule from '../vega-lite/vega-lite-chart'
|
||||||
import type { CodeProps } from '../../replace-components/code-block-component-replacer'
|
import type { CodeProps } from '../../replace-components/code-block-component-replacer'
|
||||||
|
|
||||||
|
jest.mock('../vega-lite/vega-lite-chart')
|
||||||
|
|
||||||
describe('Vega-Lite markdown extensions', () => {
|
describe('Vega-Lite markdown extensions', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
jest.spyOn(VegaLiteChartModule, 'VegaLiteChart').mockImplementation((({ code }) => {
|
jest.spyOn(VegaLiteChartModule, 'VegaLiteChart').mockImplementation((({ code }) => {
|
||||||
|
|
|
@ -9,6 +9,8 @@ import React from 'react'
|
||||||
import type { ClickShieldProps } from '../../replace-components/click-shield/click-shield'
|
import type { ClickShieldProps } from '../../replace-components/click-shield/click-shield'
|
||||||
import * as ClickShieldModule from '../../replace-components/click-shield/click-shield'
|
import * as ClickShieldModule from '../../replace-components/click-shield/click-shield'
|
||||||
|
|
||||||
|
jest.mock('../../replace-components/click-shield/click-shield')
|
||||||
|
|
||||||
describe('VimeoFrame', () => {
|
describe('VimeoFrame', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.spyOn(ClickShieldModule, 'ClickShield').mockImplementation((({ children }) => {
|
jest.spyOn(ClickShieldModule, 'ClickShield').mockImplementation((({ children }) => {
|
||||||
|
|
|
@ -9,6 +9,8 @@ import React from 'react'
|
||||||
import type { ClickShieldProps } from '../../replace-components/click-shield/click-shield'
|
import type { ClickShieldProps } from '../../replace-components/click-shield/click-shield'
|
||||||
import * as ClickShieldModule from '../../replace-components/click-shield/click-shield'
|
import * as ClickShieldModule from '../../replace-components/click-shield/click-shield'
|
||||||
|
|
||||||
|
jest.mock('../../replace-components/click-shield/click-shield')
|
||||||
|
|
||||||
describe('YoutubeFrame', () => {
|
describe('YoutubeFrame', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.spyOn(ClickShieldModule, 'ClickShield').mockImplementation((({ children }) => {
|
jest.spyOn(ClickShieldModule, 'ClickShield').mockImplementation((({ children }) => {
|
||||||
|
|
|
@ -11,20 +11,10 @@ import * as YouTubeFrameModule from './youtube-frame'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import type { IdProps } from '../../replace-components/custom-tag-with-id-component-replacer'
|
import type { IdProps } from '../../replace-components/custom-tag-with-id-component-replacer'
|
||||||
import { mockI18n } from '../../test-utils/mock-i18n'
|
import { mockI18n } from '../../test-utils/mock-i18n'
|
||||||
import MarkdownIt from 'markdown-it'
|
|
||||||
import * as replaceLegacyYoutubeShortCodeMarkdownItPluginModule from './replace-legacy-youtube-short-code'
|
jest.mock('./youtube-frame')
|
||||||
import * as replaceYouTubeLinkMarkdownItPluginModule from './replace-youtube-link'
|
|
||||||
|
|
||||||
describe('youtube markdown extension', () => {
|
describe('youtube markdown extension', () => {
|
||||||
const replaceYouTubeLinkMarkdownItPluginSpy = jest.spyOn(
|
|
||||||
replaceYouTubeLinkMarkdownItPluginModule,
|
|
||||||
'replaceYouTubeLinkMarkdownItPlugin'
|
|
||||||
)
|
|
||||||
const replaceLegacyYoutubeShortCodeMarkdownItPluginSpy = jest.spyOn(
|
|
||||||
replaceLegacyYoutubeShortCodeMarkdownItPluginModule,
|
|
||||||
'replaceLegacyYoutubeShortCodeMarkdownItPlugin'
|
|
||||||
)
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
jest
|
jest
|
||||||
.spyOn(YouTubeFrameModule, 'YouTubeFrame')
|
.spyOn(YouTubeFrameModule, 'YouTubeFrame')
|
||||||
|
@ -46,8 +36,6 @@ describe('youtube markdown extension', () => {
|
||||||
content={'https://www.youtube.com/watch?v=XDnhKh5V5XQ'}
|
content={'https://www.youtube.com/watch?v=XDnhKh5V5XQ'}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
expect(replaceYouTubeLinkMarkdownItPluginSpy).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(replaceLegacyYoutubeShortCodeMarkdownItPluginSpy).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(view.container).toMatchSnapshot()
|
expect(view.container).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -55,8 +43,6 @@ describe('youtube markdown extension', () => {
|
||||||
const view = render(
|
const view = render(
|
||||||
<TestMarkdownRenderer extensions={[new YoutubeMarkdownExtension()]} content={'{%youtube XDnhKh5V5XQ %}'} />
|
<TestMarkdownRenderer extensions={[new YoutubeMarkdownExtension()]} content={'{%youtube XDnhKh5V5XQ %}'} />
|
||||||
)
|
)
|
||||||
expect(replaceYouTubeLinkMarkdownItPluginSpy).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(replaceLegacyYoutubeShortCodeMarkdownItPluginSpy).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(view.container).toMatchSnapshot()
|
expect(view.container).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -64,8 +50,6 @@ describe('youtube markdown extension', () => {
|
||||||
const view = render(
|
const view = render(
|
||||||
<TestMarkdownRenderer extensions={[new YoutubeMarkdownExtension()]} content={'{%youtube a %}'} />
|
<TestMarkdownRenderer extensions={[new YoutubeMarkdownExtension()]} content={'{%youtube a %}'} />
|
||||||
)
|
)
|
||||||
expect(replaceYouTubeLinkMarkdownItPluginSpy).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(replaceLegacyYoutubeShortCodeMarkdownItPluginSpy).toHaveBeenCalledWith(expect.any(MarkdownIt))
|
|
||||||
expect(view.container).toMatchSnapshot()
|
expect(view.container).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -3,21 +3,15 @@
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
import * as generateNoteTitleModule from '../generate-note-title'
|
|
||||||
import { buildStateFromFirstHeadingUpdate } from './build-state-from-first-heading-update'
|
import { buildStateFromFirstHeadingUpdate } from './build-state-from-first-heading-update'
|
||||||
import { initialState } from '../initial-state'
|
import { initialState } from '../initial-state'
|
||||||
|
|
||||||
|
// noinspection JSUnusedGlobalSymbols
|
||||||
|
jest.mock('../generate-note-title', () => ({
|
||||||
|
generateNoteTitle: () => 'generated title'
|
||||||
|
}))
|
||||||
|
|
||||||
describe('build state from first heading update', () => {
|
describe('build state from first heading update', () => {
|
||||||
const generateNoteTitleMock = jest.spyOn(generateNoteTitleModule, 'generateNoteTitle')
|
|
||||||
|
|
||||||
beforeAll(() => {
|
|
||||||
generateNoteTitleMock.mockImplementation(() => 'generated title')
|
|
||||||
})
|
|
||||||
|
|
||||||
afterAll(() => {
|
|
||||||
generateNoteTitleMock.mockReset()
|
|
||||||
})
|
|
||||||
|
|
||||||
it('generates a new state with the given first heading', () => {
|
it('generates a new state with the given first heading', () => {
|
||||||
const startState = { ...initialState, firstHeading: 'heading', title: 'noteTitle' }
|
const startState = { ...initialState, firstHeading: 'heading', title: 'noteTitle' }
|
||||||
const actual = buildStateFromFirstHeadingUpdate(startState, 'new first heading')
|
const actual = buildStateFromFirstHeadingUpdate(startState, 'new first heading')
|
||||||
|
|
|
@ -12,6 +12,8 @@ import { DateTime } from 'luxon'
|
||||||
import { initialSlideOptions } from '../initial-state'
|
import { initialSlideOptions } from '../initial-state'
|
||||||
import type { Note } from '../../../api/notes/types'
|
import type { Note } from '../../../api/notes/types'
|
||||||
|
|
||||||
|
jest.mock('../build-state-from-updated-markdown-content')
|
||||||
|
|
||||||
describe('build state from set note data from server', () => {
|
describe('build state from set note data from server', () => {
|
||||||
const buildStateFromUpdatedMarkdownContentMock = jest.spyOn(
|
const buildStateFromUpdatedMarkdownContentMock = jest.spyOn(
|
||||||
buildStateFromUpdatedMarkdownContentModule,
|
buildStateFromUpdatedMarkdownContentModule,
|
||||||
|
|
|
@ -10,6 +10,8 @@ import { Mock } from 'ts-mockery'
|
||||||
import type { NoteDetails } from '../types/note-details'
|
import type { NoteDetails } from '../types/note-details'
|
||||||
import { buildStateFromTaskListUpdate } from './build-state-from-task-list-update'
|
import { buildStateFromTaskListUpdate } from './build-state-from-task-list-update'
|
||||||
|
|
||||||
|
jest.mock('../build-state-from-updated-markdown-content')
|
||||||
|
|
||||||
describe('build state from task list update', () => {
|
describe('build state from task list update', () => {
|
||||||
const buildStateFromUpdatedMarkdownContentLinesMock = jest.spyOn(
|
const buildStateFromUpdatedMarkdownContentLinesMock = jest.spyOn(
|
||||||
buildStateFromUpdatedMarkdownContentLinesModule,
|
buildStateFromUpdatedMarkdownContentLinesModule,
|
||||||
|
|
185
yarn.lock
185
yarn.lock
|
@ -1929,7 +1929,7 @@ __metadata:
|
||||||
"@hpcc-js/wasm": 1.12.8
|
"@hpcc-js/wasm": 1.12.8
|
||||||
"@matejmazur/react-katex": 3.1.3
|
"@matejmazur/react-katex": 3.1.3
|
||||||
"@mrdrogdrog/optional": 0.2.0
|
"@mrdrogdrog/optional": 0.2.0
|
||||||
"@next/bundle-analyzer": 12.2.2
|
"@next/bundle-analyzer": 12.3.0
|
||||||
"@react-hook/resize-observer": 1.2.6
|
"@react-hook/resize-observer": 1.2.6
|
||||||
"@redux-devtools/core": 3.13.1
|
"@redux-devtools/core": 3.13.1
|
||||||
"@reduxjs/toolkit": 1.8.5
|
"@reduxjs/toolkit": 1.8.5
|
||||||
|
@ -2020,7 +2020,7 @@ __metadata:
|
||||||
markmap-lib: 0.13.5
|
markmap-lib: 0.13.5
|
||||||
markmap-view: 0.13.5
|
markmap-view: 0.13.5
|
||||||
mermaid: 9.1.6
|
mermaid: 9.1.6
|
||||||
next: 12.2.2
|
next: 12.3.0
|
||||||
prettier: 2.7.1
|
prettier: 2.7.1
|
||||||
react: 18.2.0
|
react: 18.2.0
|
||||||
react-bootstrap: 1.6.6
|
react-bootstrap: 1.6.6
|
||||||
|
@ -2629,19 +2629,19 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/bundle-analyzer@npm:12.2.2":
|
"@next/bundle-analyzer@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/bundle-analyzer@npm:12.2.2"
|
resolution: "@next/bundle-analyzer@npm:12.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
webpack-bundle-analyzer: 4.3.0
|
webpack-bundle-analyzer: 4.3.0
|
||||||
checksum: d6f416c46f8978de707b22d7adaab7e58971182fdcdedc5c034f6a7e9df182944b8e9171b3a4f08655bb4cbd5741fa75be5a708225a02d7d7d10b1500242bbea
|
checksum: 0b0a1f9ee8cd9d68c150ea9de5699ad78eebe444b01b06c2b0ab19467ccc51dcb2120735c447aa80ee930cd20d1ee53fc2f0c3f874ff6d8c111a961ef6d9d60b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/env@npm:12.2.2":
|
"@next/env@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/env@npm:12.2.2"
|
resolution: "@next/env@npm:12.3.0"
|
||||||
checksum: ea79db56b3af5076de9b02941e0226d8d68e179101e99cf3bb1a17fb980d30de781311c176ce3a87fc72b9598e311d18e5244e71c553b03875f2dbe27dffa864
|
checksum: 9f5d0894de00f8827f887dc737b0beebc1f268cc6809dc0f49acbcc035f4398f2af1dccb2c2f470f2ac31ef450ff5214a1a63ddd5c906b3ea52960824a2552be
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -2654,93 +2654,93 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-android-arm-eabi@npm:12.2.2":
|
"@next/swc-android-arm-eabi@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-android-arm-eabi@npm:12.2.2"
|
resolution: "@next/swc-android-arm-eabi@npm:12.3.0"
|
||||||
conditions: os=android & cpu=arm
|
conditions: os=android & cpu=arm
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-android-arm64@npm:12.2.2":
|
"@next/swc-android-arm64@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-android-arm64@npm:12.2.2"
|
resolution: "@next/swc-android-arm64@npm:12.3.0"
|
||||||
conditions: os=android & cpu=arm64
|
conditions: os=android & cpu=arm64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-darwin-arm64@npm:12.2.2":
|
"@next/swc-darwin-arm64@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-darwin-arm64@npm:12.2.2"
|
resolution: "@next/swc-darwin-arm64@npm:12.3.0"
|
||||||
conditions: os=darwin & cpu=arm64
|
conditions: os=darwin & cpu=arm64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-darwin-x64@npm:12.2.2":
|
"@next/swc-darwin-x64@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-darwin-x64@npm:12.2.2"
|
resolution: "@next/swc-darwin-x64@npm:12.3.0"
|
||||||
conditions: os=darwin & cpu=x64
|
conditions: os=darwin & cpu=x64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-freebsd-x64@npm:12.2.2":
|
"@next/swc-freebsd-x64@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-freebsd-x64@npm:12.2.2"
|
resolution: "@next/swc-freebsd-x64@npm:12.3.0"
|
||||||
conditions: os=freebsd & cpu=x64
|
conditions: os=freebsd & cpu=x64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-linux-arm-gnueabihf@npm:12.2.2":
|
"@next/swc-linux-arm-gnueabihf@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-linux-arm-gnueabihf@npm:12.2.2"
|
resolution: "@next/swc-linux-arm-gnueabihf@npm:12.3.0"
|
||||||
conditions: os=linux & cpu=arm
|
conditions: os=linux & cpu=arm
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-linux-arm64-gnu@npm:12.2.2":
|
"@next/swc-linux-arm64-gnu@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-linux-arm64-gnu@npm:12.2.2"
|
resolution: "@next/swc-linux-arm64-gnu@npm:12.3.0"
|
||||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-linux-arm64-musl@npm:12.2.2":
|
"@next/swc-linux-arm64-musl@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-linux-arm64-musl@npm:12.2.2"
|
resolution: "@next/swc-linux-arm64-musl@npm:12.3.0"
|
||||||
conditions: os=linux & cpu=arm64 & libc=musl
|
conditions: os=linux & cpu=arm64 & libc=musl
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-linux-x64-gnu@npm:12.2.2":
|
"@next/swc-linux-x64-gnu@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-linux-x64-gnu@npm:12.2.2"
|
resolution: "@next/swc-linux-x64-gnu@npm:12.3.0"
|
||||||
conditions: os=linux & cpu=x64 & libc=glibc
|
conditions: os=linux & cpu=x64 & libc=glibc
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-linux-x64-musl@npm:12.2.2":
|
"@next/swc-linux-x64-musl@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-linux-x64-musl@npm:12.2.2"
|
resolution: "@next/swc-linux-x64-musl@npm:12.3.0"
|
||||||
conditions: os=linux & cpu=x64 & libc=musl
|
conditions: os=linux & cpu=x64 & libc=musl
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-win32-arm64-msvc@npm:12.2.2":
|
"@next/swc-win32-arm64-msvc@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-win32-arm64-msvc@npm:12.2.2"
|
resolution: "@next/swc-win32-arm64-msvc@npm:12.3.0"
|
||||||
conditions: os=win32 & cpu=arm64
|
conditions: os=win32 & cpu=arm64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-win32-ia32-msvc@npm:12.2.2":
|
"@next/swc-win32-ia32-msvc@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-win32-ia32-msvc@npm:12.2.2"
|
resolution: "@next/swc-win32-ia32-msvc@npm:12.3.0"
|
||||||
conditions: os=win32 & cpu=ia32
|
conditions: os=win32 & cpu=ia32
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@next/swc-win32-x64-msvc@npm:12.2.2":
|
"@next/swc-win32-x64-msvc@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "@next/swc-win32-x64-msvc@npm:12.2.2"
|
resolution: "@next/swc-win32-x64-msvc@npm:12.3.0"
|
||||||
conditions: os=win32 & cpu=x64
|
conditions: os=win32 & cpu=x64
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
@ -3092,12 +3092,12 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@swc/helpers@npm:0.4.2":
|
"@swc/helpers@npm:0.4.11":
|
||||||
version: 0.4.2
|
version: 0.4.11
|
||||||
resolution: "@swc/helpers@npm:0.4.2"
|
resolution: "@swc/helpers@npm:0.4.11"
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: ^2.4.0
|
tslib: ^2.4.0
|
||||||
checksum: 0b8c86ad03b17b8fe57dc4498e25dc294ea6bc42558a6b92d8fcd789351dac80199409bef38a2e3ac06aae0fedddfc0ab9c34409acbf74e55d1bbbd74f68b6b7
|
checksum: 736857d524b41a8a4db81094e9b027f554004e0fa3e86325d85bdb38f7e6459ce022db079edb6c61ba0f46fe8583b3e663e95f7acbd13e51b8da6c34e45bba2e
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -10537,7 +10537,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"nanoid@npm:^3.1.30":
|
"nanoid@npm:^3.3.4":
|
||||||
version: 3.3.4
|
version: 3.3.4
|
||||||
resolution: "nanoid@npm:3.3.4"
|
resolution: "nanoid@npm:3.3.4"
|
||||||
bin:
|
bin:
|
||||||
|
@ -10567,29 +10567,29 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"next@npm:12.2.2":
|
"next@npm:12.3.0":
|
||||||
version: 12.2.2
|
version: 12.3.0
|
||||||
resolution: "next@npm:12.2.2"
|
resolution: "next@npm:12.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@next/env": 12.2.2
|
"@next/env": 12.3.0
|
||||||
"@next/swc-android-arm-eabi": 12.2.2
|
"@next/swc-android-arm-eabi": 12.3.0
|
||||||
"@next/swc-android-arm64": 12.2.2
|
"@next/swc-android-arm64": 12.3.0
|
||||||
"@next/swc-darwin-arm64": 12.2.2
|
"@next/swc-darwin-arm64": 12.3.0
|
||||||
"@next/swc-darwin-x64": 12.2.2
|
"@next/swc-darwin-x64": 12.3.0
|
||||||
"@next/swc-freebsd-x64": 12.2.2
|
"@next/swc-freebsd-x64": 12.3.0
|
||||||
"@next/swc-linux-arm-gnueabihf": 12.2.2
|
"@next/swc-linux-arm-gnueabihf": 12.3.0
|
||||||
"@next/swc-linux-arm64-gnu": 12.2.2
|
"@next/swc-linux-arm64-gnu": 12.3.0
|
||||||
"@next/swc-linux-arm64-musl": 12.2.2
|
"@next/swc-linux-arm64-musl": 12.3.0
|
||||||
"@next/swc-linux-x64-gnu": 12.2.2
|
"@next/swc-linux-x64-gnu": 12.3.0
|
||||||
"@next/swc-linux-x64-musl": 12.2.2
|
"@next/swc-linux-x64-musl": 12.3.0
|
||||||
"@next/swc-win32-arm64-msvc": 12.2.2
|
"@next/swc-win32-arm64-msvc": 12.3.0
|
||||||
"@next/swc-win32-ia32-msvc": 12.2.2
|
"@next/swc-win32-ia32-msvc": 12.3.0
|
||||||
"@next/swc-win32-x64-msvc": 12.2.2
|
"@next/swc-win32-x64-msvc": 12.3.0
|
||||||
"@swc/helpers": 0.4.2
|
"@swc/helpers": 0.4.11
|
||||||
caniuse-lite: ^1.0.30001332
|
caniuse-lite: ^1.0.30001332
|
||||||
postcss: 8.4.5
|
postcss: 8.4.14
|
||||||
styled-jsx: 5.0.2
|
styled-jsx: 5.0.6
|
||||||
use-sync-external-store: 1.1.0
|
use-sync-external-store: 1.2.0
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
fibers: ">= 3.1.0"
|
fibers: ">= 3.1.0"
|
||||||
node-sass: ^6.0.0 || ^7.0.0
|
node-sass: ^6.0.0 || ^7.0.0
|
||||||
|
@ -10632,7 +10632,7 @@ __metadata:
|
||||||
optional: true
|
optional: true
|
||||||
bin:
|
bin:
|
||||||
next: dist/bin/next
|
next: dist/bin/next
|
||||||
checksum: fb8ced6fb551c60c71a0fb8f443f0a15cd12aed0b1a21fbaba132c47863cccf7517dce8074b1572ba1f20c974d6e5329963a9c4fb89afe88fe22eb1505ba0db8
|
checksum: eafed4732d1d3cfdc4ccfdd6e1047d24b29f0d19587a03d46581e77988e4a081d206ad373de98858dfbc7109308fe1ad39d0b8443ea19276fb11fa5634080841
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -11087,14 +11087,14 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"postcss@npm:8.4.5":
|
"postcss@npm:8.4.14":
|
||||||
version: 8.4.5
|
version: 8.4.14
|
||||||
resolution: "postcss@npm:8.4.5"
|
resolution: "postcss@npm:8.4.14"
|
||||||
dependencies:
|
dependencies:
|
||||||
nanoid: ^3.1.30
|
nanoid: ^3.3.4
|
||||||
picocolors: ^1.0.0
|
picocolors: ^1.0.0
|
||||||
source-map-js: ^1.0.1
|
source-map-js: ^1.0.2
|
||||||
checksum: b78abdd89c10f7b48f4bdcd376104a19d6e9c7495ab521729bdb3df315af6c211360e9f06887ad3bc0ab0f61a04b91d68ea11462997c79cced58b9ccd66fac07
|
checksum: fe58766ff32e4becf65a7d57678995cfd239df6deed2fe0557f038b47c94e4132e7e5f68b5aa820c13adfec32e523b693efaeb65798efb995ce49ccd83953816
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -12277,7 +12277,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1":
|
"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2":
|
||||||
version: 1.0.2
|
version: 1.0.2
|
||||||
resolution: "source-map-js@npm:1.0.2"
|
resolution: "source-map-js@npm:1.0.2"
|
||||||
checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c
|
checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c
|
||||||
|
@ -12540,9 +12540,9 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"styled-jsx@npm:5.0.2":
|
"styled-jsx@npm:5.0.6":
|
||||||
version: 5.0.2
|
version: 5.0.6
|
||||||
resolution: "styled-jsx@npm:5.0.2"
|
resolution: "styled-jsx@npm:5.0.6"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ">= 16.8.0 || 17.x.x || ^18.0.0-0"
|
react: ">= 16.8.0 || 17.x.x || ^18.0.0-0"
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
|
@ -12550,7 +12550,7 @@ __metadata:
|
||||||
optional: true
|
optional: true
|
||||||
babel-plugin-macros:
|
babel-plugin-macros:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 86d55819ebeabd283a574d2f44f7d3f8fa6b8c28fa41687ece161bf1e910e04965611618921d8f5cd33dc6dae1033b926a70421ae5ea045440a9861edc3e0d87
|
checksum: 9e41cb6958fcb980dbfcfee2fb133de61cc0873df9304d2476ab35930679fc3b3c1d968a503c9b0afa459f243c288119e35d0fd31cf3066c2ba0e130c4d2f87e
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -13189,16 +13189,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"use-sync-external-store@npm:1.1.0":
|
"use-sync-external-store@npm:1.2.0, use-sync-external-store@npm:^1.0.0":
|
||||||
version: 1.1.0
|
|
||||||
resolution: "use-sync-external-store@npm:1.1.0"
|
|
||||||
peerDependencies:
|
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
|
||||||
checksum: 8993a0b642f91d7fcdbb02b7b3ac984bd3af4769686f38291fe7fcfe73dfb73d6c64d20dfb7e5e7fbf5a6da8f5392d6f8e5b00c243a04975595946e82c02b883
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"use-sync-external-store@npm:^1.0.0":
|
|
||||||
version: 1.2.0
|
version: 1.2.0
|
||||||
resolution: "use-sync-external-store@npm:1.2.0"
|
resolution: "use-sync-external-store@npm:1.2.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
Loading…
Reference in a new issue