@payloadcms/richtext-lexical 3.5.0 → 3.5.1-canary.15a5791

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,6 +10,6 @@ export { TextJSXConverter } from './components/RichText/converter/converters/tex
10
10
  export { UploadJSXConverter } from './components/RichText/converter/converters/upload.js';
11
11
  export { defaultJSXConverters } from './components/RichText/converter/defaultConverters.js';
12
12
  export { convertLexicalNodesToJSX } from './components/RichText/converter/index.js';
13
- export type { JSXConverters, SerializedLexicalNodeWithParent, } from './components/RichText/converter/types.js';
13
+ export type { JSXConverter, JSXConverters, SerializedLexicalNodeWithParent, } from './components/RichText/converter/types.js';
14
14
  export { type JSXConvertersFunction, RichText } from './components/RichText/index.js';
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAA;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,8DAA8D,CAAA;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAA;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAA;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,YAAY,EACV,aAAa,EACb,+BAA+B,GAChC,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,KAAK,qBAAqB,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAA;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,8DAA8D,CAAA;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAA;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAA;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,YAAY,EACV,YAAY,EACZ,aAAa,EACb,+BAA+B,GAChC,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,KAAK,qBAAqB,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["BlockquoteJSXConverter","HeadingJSXConverter","HorizontalRuleJSXConverter","LinebreakJSXConverter","LinkJSXConverter","ListJSXConverter","ParagraphJSXConverter","TableJSXConverter","TextJSXConverter","UploadJSXConverter","defaultJSXConverters","convertLexicalNodesToJSX","RichText"],"sources":["../../../src/exports/react/index.ts"],"sourcesContent":["export { BlockquoteJSXConverter } from './components/RichText/converter/converters/blockquote.js'\nexport { HeadingJSXConverter } from './components/RichText/converter/converters/heading.js'\nexport { HorizontalRuleJSXConverter } from './components/RichText/converter/converters/horizontalRule.js'\nexport { LinebreakJSXConverter } from './components/RichText/converter/converters/linebreak.js'\nexport { LinkJSXConverter } from './components/RichText/converter/converters/link.js'\nexport { ListJSXConverter } from './components/RichText/converter/converters/list.js'\nexport { ParagraphJSXConverter } from './components/RichText/converter/converters/paragraph.js'\nexport { TableJSXConverter } from './components/RichText/converter/converters/table.js'\nexport { TextJSXConverter } from './components/RichText/converter/converters/text.js'\nexport { UploadJSXConverter } from './components/RichText/converter/converters/upload.js'\n\nexport { defaultJSXConverters } from './components/RichText/converter/defaultConverters.js'\nexport { convertLexicalNodesToJSX } from './components/RichText/converter/index.js'\nexport type {\n JSXConverters,\n SerializedLexicalNodeWithParent,\n} from './components/RichText/converter/types.js'\nexport { type JSXConvertersFunction, RichText } from './components/RichText/index.js'\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ;AACvC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,kBAAkB,QAAQ;AAEnC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,wBAAwB,QAAQ;AAKzC,SAAqCC,QAAQ,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["BlockquoteJSXConverter","HeadingJSXConverter","HorizontalRuleJSXConverter","LinebreakJSXConverter","LinkJSXConverter","ListJSXConverter","ParagraphJSXConverter","TableJSXConverter","TextJSXConverter","UploadJSXConverter","defaultJSXConverters","convertLexicalNodesToJSX","RichText"],"sources":["../../../src/exports/react/index.ts"],"sourcesContent":["export { BlockquoteJSXConverter } from './components/RichText/converter/converters/blockquote.js'\nexport { HeadingJSXConverter } from './components/RichText/converter/converters/heading.js'\nexport { HorizontalRuleJSXConverter } from './components/RichText/converter/converters/horizontalRule.js'\nexport { LinebreakJSXConverter } from './components/RichText/converter/converters/linebreak.js'\nexport { LinkJSXConverter } from './components/RichText/converter/converters/link.js'\nexport { ListJSXConverter } from './components/RichText/converter/converters/list.js'\nexport { ParagraphJSXConverter } from './components/RichText/converter/converters/paragraph.js'\nexport { TableJSXConverter } from './components/RichText/converter/converters/table.js'\nexport { TextJSXConverter } from './components/RichText/converter/converters/text.js'\nexport { UploadJSXConverter } from './components/RichText/converter/converters/upload.js'\n\nexport { defaultJSXConverters } from './components/RichText/converter/defaultConverters.js'\nexport { convertLexicalNodesToJSX } from './components/RichText/converter/index.js'\nexport type {\n JSXConverter,\n JSXConverters,\n SerializedLexicalNodeWithParent,\n} from './components/RichText/converter/types.js'\nexport { type JSXConvertersFunction, RichText } from './components/RichText/index.js'\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ;AACvC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,kBAAkB,QAAQ;AAEnC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,wBAAwB,QAAQ;AAMzC,SAAqCC,QAAQ,QAAQ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/field/Field.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAGnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAG5D,OAAO,mCAAmC,CAAA;AAC1C,OAAO,eAAe,CAAA;AACtB,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAC/B;IACE,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAA;CACnD,GAAG,yBAAyB,CA+F9B,CAAA;AAaD,eAAO,MAAM,QAAQ,EAAE,OAAO,iBAAoD,CAAA"}
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/field/Field.tsx"],"names":[],"mappings":"AAcA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAGnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAE5D,OAAO,mCAAmC,CAAA;AAC1C,OAAO,eAAe,CAAA;AACtB,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAC/B;IACE,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAA;CACnD,GAAG,yBAAyB,CAsG9B,CAAA;AAaD,eAAO,MAAM,QAAQ,EAAE,OAAO,iBAAoD,CAAA"}
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { FieldLabel, useEditDepth, useField, withCondition } from '@payloadcms/ui';
4
+ import { FieldDescription, FieldError, FieldLabel, RenderCustomComponent, useEditDepth, useField, withCondition } from '@payloadcms/ui';
5
5
  import { mergeFieldStyles } from '@payloadcms/ui/shared';
6
6
  import React, { useCallback, useMemo } from 'react';
7
7
  import { ErrorBoundary } from 'react-error-boundary';
8
- import { LexicalProvider } from '../lexical/LexicalProvider.js';
9
8
  import './bundled.css';
9
+ import { LexicalProvider } from '../lexical/LexicalProvider.js';
10
10
  const baseClass = 'rich-text-lexical';
11
11
  const RichTextComponent = props => {
12
12
  const {
@@ -16,6 +16,7 @@ const RichTextComponent = props => {
16
16
  name,
17
17
  admin: {
18
18
  className,
19
+ description,
19
20
  readOnly: readOnlyFromAdmin
20
21
  } = {},
21
22
  label,
@@ -71,7 +72,13 @@ const RichTextComponent = props => {
71
72
  return /*#__PURE__*/_jsxs("div", {
72
73
  className: classes,
73
74
  style: styles,
74
- children: [Error, Label || /*#__PURE__*/_jsx(FieldLabel, {
75
+ children: [/*#__PURE__*/_jsx(RenderCustomComponent, {
76
+ CustomComponent: Error,
77
+ Fallback: /*#__PURE__*/_jsx(FieldError, {
78
+ path: path,
79
+ showError: showError
80
+ })
81
+ }), Label || /*#__PURE__*/_jsx(FieldLabel, {
75
82
  label: label,
76
83
  localized: localized,
77
84
  required: required
@@ -91,7 +98,13 @@ const RichTextComponent = props => {
91
98
  initialValue,
92
99
  path
93
100
  })), AfterInput]
94
- }), Description]
101
+ }), Description, /*#__PURE__*/_jsx(RenderCustomComponent, {
102
+ CustomComponent: Description,
103
+ Fallback: /*#__PURE__*/_jsx(FieldDescription, {
104
+ description: description,
105
+ path: path
106
+ })
107
+ })]
95
108
  })]
96
109
  }, pathWithEditDepth);
97
110
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","names":["FieldLabel","useEditDepth","useField","withCondition","mergeFieldStyles","React","useCallback","useMemo","ErrorBoundary","LexicalProvider","baseClass","RichTextComponent","props","editorConfig","field","name","admin","className","readOnly","readOnlyFromAdmin","label","localized","required","path","pathFromProps","readOnlyFromTopLevelProps","validate","readOnlyFromProps","editDepth","memoizedValidate","value","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","formInitializing","formProcessing","initialValue","setValue","showError","disabled","classes","hideGutter","filter","Boolean","join","pathWithEditDepth","handleChange","editorState","toJSON","styles","_jsxs","style","_jsx","fallbackRender","onReset","composerKey","fieldProps","onChange","JSON","stringify","error","role","color","message","RichText"],"sources":["../../src/field/Field.tsx"],"sourcesContent":["'use client'\nimport type { EditorState, SerializedEditorState } from 'lexical'\nimport type { Validate } from 'payload'\n\nimport { FieldLabel, useEditDepth, useField, withCondition } from '@payloadcms/ui'\nimport { mergeFieldStyles } from '@payloadcms/ui/shared'\nimport React, { useCallback, useMemo } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\n\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\nimport type { LexicalRichTextFieldProps } from '../types.js'\n\nimport { LexicalProvider } from '../lexical/LexicalProvider.js'\nimport '../lexical/theme/EditorTheme.scss'\nimport './bundled.css'\nimport './index.scss'\n\nconst baseClass = 'rich-text-lexical'\n\nconst RichTextComponent: React.FC<\n {\n readonly editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n } & LexicalRichTextFieldProps\n> = (props) => {\n const {\n editorConfig,\n field,\n field: {\n name,\n admin: { className, readOnly: readOnlyFromAdmin } = {},\n label,\n localized,\n required,\n },\n path: pathFromProps,\n readOnly: readOnlyFromTopLevelProps,\n validate, // Users can pass in client side validation if they WANT to, but it's not required anymore\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n const path = pathFromProps ?? name\n\n const editDepth = useEditDepth()\n\n const memoizedValidate = useCallback<Validate>(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return validate(value, { ...validationOptions, required })\n }\n return true\n },\n // Important: do not add props to the dependencies array.\n // This would cause an infinite loop and endless re-rendering.\n // Removing props from the dependencies array fixed this issue: https://github.com/payloadcms/payload/issues/3709\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n formInitializing,\n formProcessing,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<SerializedEditorState>({\n path,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || formProcessing || formInitializing\n\n const classes = [\n baseClass,\n 'field-type',\n className,\n showError && 'error',\n disabled && `${baseClass}--read-only`,\n editorConfig?.admin?.hideGutter !== true ? `${baseClass}--show-gutter` : null,\n ]\n .filter(Boolean)\n .join(' ')\n\n const pathWithEditDepth = `${path}.${editDepth}`\n\n const handleChange = useCallback(\n (editorState: EditorState) => {\n setValue(editorState.toJSON())\n },\n [setValue],\n )\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div className={classes} key={pathWithEditDepth} style={styles}>\n {Error}\n {Label || <FieldLabel label={label} localized={localized} required={required} />}\n <div className={`${baseClass}__wrap`}>\n <ErrorBoundary fallbackRender={fallbackRender} onReset={() => {}}>\n {BeforeInput}\n <LexicalProvider\n composerKey={pathWithEditDepth}\n editorConfig={editorConfig}\n fieldProps={props}\n key={JSON.stringify({ initialValue, path })} // makes sure lexical is completely re-rendered when initialValue changes, bypassing the lexical-internal value memoization. That way, external changes to the form will update the editor. More infos in PR description (https://github.com/payloadcms/payload/pull/5010)\n onChange={handleChange}\n readOnly={disabled}\n value={value}\n />\n {AfterInput}\n </ErrorBoundary>\n {Description}\n </div>\n </div>\n )\n}\n\nfunction fallbackRender({ error }: { error: Error }) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return (\n <div className=\"errorBoundary\" role=\"alert\">\n <p>Something went wrong:</p>\n <pre style={{ color: 'red' }}>{error.message}</pre>\n </div>\n )\n}\n\nexport const RichText: typeof RichTextComponent = withCondition(RichTextComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Field.js","names":["FieldDescription","FieldError","FieldLabel","RenderCustomComponent","useEditDepth","useField","withCondition","mergeFieldStyles","React","useCallback","useMemo","ErrorBoundary","LexicalProvider","baseClass","RichTextComponent","props","editorConfig","field","name","admin","className","description","readOnly","readOnlyFromAdmin","label","localized","required","path","pathFromProps","readOnlyFromTopLevelProps","validate","readOnlyFromProps","editDepth","memoizedValidate","value","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","formInitializing","formProcessing","initialValue","setValue","showError","disabled","classes","hideGutter","filter","Boolean","join","pathWithEditDepth","handleChange","editorState","toJSON","styles","_jsxs","style","_jsx","CustomComponent","Fallback","fallbackRender","onReset","composerKey","fieldProps","onChange","JSON","stringify","error","role","color","message","RichText"],"sources":["../../src/field/Field.tsx"],"sourcesContent":["'use client'\nimport type { EditorState, SerializedEditorState } from 'lexical'\nimport type { Validate } from 'payload'\n\nimport {\n FieldDescription,\n FieldError,\n FieldLabel,\n RenderCustomComponent,\n useEditDepth,\n useField,\n withCondition,\n} from '@payloadcms/ui'\nimport { mergeFieldStyles } from '@payloadcms/ui/shared'\nimport React, { useCallback, useMemo } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\n\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\nimport type { LexicalRichTextFieldProps } from '../types.js'\n\nimport '../lexical/theme/EditorTheme.scss'\nimport './bundled.css'\nimport './index.scss'\nimport { LexicalProvider } from '../lexical/LexicalProvider.js'\n\nconst baseClass = 'rich-text-lexical'\n\nconst RichTextComponent: React.FC<\n {\n readonly editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n } & LexicalRichTextFieldProps\n> = (props) => {\n const {\n editorConfig,\n field,\n field: {\n name,\n admin: { className, description, readOnly: readOnlyFromAdmin } = {},\n label,\n localized,\n required,\n },\n path: pathFromProps,\n readOnly: readOnlyFromTopLevelProps,\n validate, // Users can pass in client side validation if they WANT to, but it's not required anymore\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n const path = pathFromProps ?? name\n\n const editDepth = useEditDepth()\n\n const memoizedValidate = useCallback<Validate>(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return validate(value, { ...validationOptions, required })\n }\n return true\n },\n // Important: do not add props to the dependencies array.\n // This would cause an infinite loop and endless re-rendering.\n // Removing props from the dependencies array fixed this issue: https://github.com/payloadcms/payload/issues/3709\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n formInitializing,\n formProcessing,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<SerializedEditorState>({\n path,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || formProcessing || formInitializing\n\n const classes = [\n baseClass,\n 'field-type',\n className,\n showError && 'error',\n disabled && `${baseClass}--read-only`,\n editorConfig?.admin?.hideGutter !== true ? `${baseClass}--show-gutter` : null,\n ]\n .filter(Boolean)\n .join(' ')\n\n const pathWithEditDepth = `${path}.${editDepth}`\n\n const handleChange = useCallback(\n (editorState: EditorState) => {\n setValue(editorState.toJSON())\n },\n [setValue],\n )\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div className={classes} key={pathWithEditDepth} style={styles}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {Label || <FieldLabel label={label} localized={localized} required={required} />}\n <div className={`${baseClass}__wrap`}>\n <ErrorBoundary fallbackRender={fallbackRender} onReset={() => {}}>\n {BeforeInput}\n <LexicalProvider\n composerKey={pathWithEditDepth}\n editorConfig={editorConfig}\n fieldProps={props}\n key={JSON.stringify({ initialValue, path })} // makes sure lexical is completely re-rendered when initialValue changes, bypassing the lexical-internal value memoization. That way, external changes to the form will update the editor. More infos in PR description (https://github.com/payloadcms/payload/pull/5010)\n onChange={handleChange}\n readOnly={disabled}\n value={value}\n />\n {AfterInput}\n </ErrorBoundary>\n {Description}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nfunction fallbackRender({ error }: { error: Error }) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return (\n <div className=\"errorBoundary\" role=\"alert\">\n <p>Something went wrong:</p>\n <pre style={{ color: 'red' }}>{error.message}</pre>\n </div>\n )\n}\n\nexport const RichText: typeof RichTextComponent = withCondition(RichTextComponent)\n"],"mappings":"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","ignoreList":[]}