@wordpress/asset-loader 1.1.1-next.dc3f6d3c1.0 → 1.2.1-next.8b30e05b0.0
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.
- package/CHANGELOG.md +2 -0
- package/build/index.js +2 -8
- package/build/index.js.map +2 -2
- package/build-module/index.js +2 -8
- package/build-module/index.js.map +2 -2
- package/build-types/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +2 -11
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
package/build/index.js
CHANGED
|
@@ -194,11 +194,8 @@ async function loadAssets(scriptsData, inlineScripts, stylesData, inlineStyles,
|
|
|
194
194
|
injectInlineStyle(handle, afterInline, "after");
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
-
const
|
|
198
|
-
const scriptElementsBody = [];
|
|
197
|
+
const scriptElements = [];
|
|
199
198
|
for (const handle of orderedScripts) {
|
|
200
|
-
const inFooter = scriptsData[handle].in_footer || false;
|
|
201
|
-
const scriptElements = inFooter ? scriptElementsBody : scriptElementsHead;
|
|
202
199
|
const beforeInline = inlineScripts.before?.[handle];
|
|
203
200
|
if (beforeInline) {
|
|
204
201
|
scriptElements.push(
|
|
@@ -213,10 +210,7 @@ async function loadAssets(scriptsData, inlineScripts, stylesData, inlineStyles,
|
|
|
213
210
|
);
|
|
214
211
|
}
|
|
215
212
|
}
|
|
216
|
-
const scriptsPromise = (
|
|
217
|
-
await performScriptLoad(scriptElementsHead, document.head);
|
|
218
|
-
await performScriptLoad(scriptElementsBody, document.body);
|
|
219
|
-
})();
|
|
213
|
+
const scriptsPromise = performScriptLoad(scriptElements, document.body);
|
|
220
214
|
await Promise.all([Promise.all(stylePromises), scriptsPromise]);
|
|
221
215
|
if (htmlTemplates && htmlTemplates.length > 0) {
|
|
222
216
|
htmlTemplates.forEach((templateHtml) => {
|
package/build/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["type Style = {\n\tsrc: string;\n\tdeps?: string[];\n\tversion?: string;\n\tmedia?: string;\n};\ntype InlineStyle = string | string[];\ntype Script = {\n\tsrc: string;\n\tdeps?: string[];\n\tversion?: string;\n\tin_footer?: boolean;\n};\ntype InlineScript = string | string[];\ntype ScriptModules = Record< string, string >;\n\n/**\n * Injects or extends the import map with new module entries.\n *\n * @param scriptModules - Object mapping module specifiers to URLs\n */\nfunction injectImportMap( scriptModules: Record< string, string > ): void {\n\tif ( ! scriptModules || Object.keys( scriptModules ).length === 0 ) {\n\t\treturn;\n\t}\n\n\t// Find the existing import map script element\n\tconst existingMapElement = document.querySelector< HTMLScriptElement >(\n\t\t'script#wp-importmap[type=importmap]'\n\t);\n\n\tif ( existingMapElement ) {\n\t\ttry {\n\t\t\t// Parse the existing import map\n\t\t\tconst existingMap = JSON.parse( existingMapElement.text );\n\n\t\t\t// Ensure the imports object exists\n\t\t\tif ( ! existingMap.imports ) {\n\t\t\t\texistingMap.imports = {};\n\t\t\t}\n\n\t\t\t// Merge new imports with existing ones (new entries take precedence)\n\t\t\texistingMap.imports = {\n\t\t\t\t...existingMap.imports,\n\t\t\t\t...scriptModules,\n\t\t\t};\n\n\t\t\t// Update the script element's content\n\t\t\texistingMapElement.text = JSON.stringify( existingMap, null, 2 );\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( 'Failed to parse or update import map:', error );\n\t\t}\n\t} else {\n\t\t// If no import map exists, create a new one\n\t\tconst script = document.createElement( 'script' );\n\t\tscript.type = 'importmap';\n\t\tscript.id = 'wp-importmap';\n\t\tscript.text = JSON.stringify(\n\t\t\t{\n\t\t\t\timports: scriptModules,\n\t\t\t},\n\t\t\tnull,\n\t\t\t2\n\t\t);\n\t\tdocument.head.appendChild( script );\n\t}\n}\n\nfunction loadStylesheet( handle: string, styleData: Style ): Promise< void > {\n\treturn new Promise( ( resolve ) => {\n\t\tif ( ! styleData.src ) {\n\t\t\tresolve(); // No external file to load\n\t\t\treturn;\n\t\t}\n\n\t\tconst existingLink = document.getElementById( handle + '-css' );\n\t\tif ( existingLink ) {\n\t\t\tresolve(); // Already loaded\n\t\t\treturn;\n\t\t}\n\n\t\tconst link = document.createElement( 'link' );\n\t\tlink.rel = 'stylesheet';\n\t\tlink.href =\n\t\t\tstyleData.src +\n\t\t\t( styleData.version ? '?ver=' + styleData.version : '' );\n\t\tlink.id = handle + '-css';\n\t\tlink.media = styleData.media || 'all';\n\n\t\tlink.onload = () => resolve();\n\t\tlink.onerror = () => {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( `Failed to load stylesheet: ${ handle }` );\n\t\t\tresolve();\n\t\t};\n\n\t\tdocument.head.appendChild( link );\n\t} );\n}\n\nfunction loadScript( handle: string, scriptData: Script ): HTMLScriptElement {\n\t// If no external script source, just mark as processed and resolve\n\tif ( ! scriptData.src ) {\n\t\t// Still mark as processed with an ID so we don't repeat processing\n\t\tconst marker = document.createElement( 'script' );\n\t\tmarker.id = handle + '-js';\n\t\tmarker.textContent = '// Processed: ' + handle;\n\t\treturn marker;\n\t}\n\n\tconst script = document.createElement( 'script' );\n\tscript.src =\n\t\tscriptData.src +\n\t\t( scriptData.version ? '?ver=' + scriptData.version : '' );\n\tscript.id = handle + '-js';\n\tscript.async = false;\n\n\treturn script;\n}\n\n// Function to inject inline styles\nfunction injectInlineStyle(\n\thandle: string,\n\tinlineStyle: InlineStyle,\n\tposition: 'before' | 'after'\n) {\n\t// Handle both string and array formats\n\tlet styleContent = '';\n\tif ( Array.isArray( inlineStyle ) ) {\n\t\tstyleContent = inlineStyle.join( '\\n' );\n\t} else if ( typeof inlineStyle === 'string' ) {\n\t\tstyleContent = inlineStyle;\n\t}\n\n\tif ( styleContent && styleContent.trim() ) {\n\t\tconst styleId = handle + '-' + position + '-inline-css';\n\t\tif ( ! document.getElementById( styleId ) ) {\n\t\t\tconst style = document.createElement( 'style' );\n\t\t\tstyle.id = styleId;\n\t\t\tstyle.textContent = styleContent.trim();\n\t\t\tdocument.head.appendChild( style );\n\t\t}\n\t}\n}\n\nfunction injectInlineScript(\n\thandle: string,\n\tinlineScript: InlineScript,\n\tposition: 'before' | 'after'\n): HTMLScriptElement {\n\tlet scriptContent = inlineScript;\n\tif ( Array.isArray( scriptContent ) ) {\n\t\tscriptContent = scriptContent.join( '\\n' );\n\t}\n\n\tconst script = document.createElement( 'script' );\n\tscript.id = handle + '-' + position + '-js';\n\tscript.textContent = scriptContent.trim();\n\n\treturn script;\n}\n\n// Function to create dependency-ordered list respecting WordPress dependency graph\nfunction buildDependencyOrderedList< T extends Style | Script >(\n\tassetsData: Record< string, T >\n) {\n\tconst visited = new Set();\n\tconst visiting = new Set();\n\tconst orderedList: string[] = [];\n\n\tfunction visit( handle: string ) {\n\t\tif ( visited.has( handle ) ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( visiting.has( handle ) ) {\n\t\t\t// Circular dependency detected, skip to avoid infinite loop\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t`Circular dependency detected for handle: ${ handle }`\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tvisiting.add( handle );\n\n\t\tif ( assetsData[ handle ] ) {\n\t\t\t// Visit all dependencies first\n\t\t\tconst deps = assetsData[ handle ].deps || [];\n\t\t\tdeps.forEach( ( dep ) => {\n\t\t\t\tif ( assetsData[ dep ] ) {\n\t\t\t\t\tvisit( dep );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tvisiting.delete( handle );\n\t\tvisited.add( handle );\n\n\t\tif ( assetsData[ handle ] ) {\n\t\t\torderedList.push( handle );\n\t\t}\n\t}\n\n\t// Visit all handles\n\tObject.keys( assetsData ).forEach( ( handle ) => {\n\t\tvisit( handle );\n\t} );\n\n\treturn orderedList;\n}\n\nasync function performScriptLoad(\n\tscriptElements: HTMLScriptElement[],\n\tdestination: HTMLElement\n) {\n\tlet parallel = [];\n\tfor ( const scriptElement of scriptElements ) {\n\t\tif ( scriptElement.src ) {\n\t\t\t// External scripts can be loaded in parallel. They will be executed in DOM order\n\t\t\t// because the `script` tags have an `async = false` attribute. Therefore cross-script\n\t\t\t// dependencies are guaranteed to be satisfied.\n\t\t\tconst loader = Promise.withResolvers< void >();\n\t\t\tscriptElement.onload = () => loader.resolve();\n\t\t\tscriptElement.onerror = () => {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( `Failed to load script: ${ scriptElement.id }` );\n\t\t\t\tloader.resolve();\n\t\t\t};\n\t\t\tparallel.push( loader.promise );\n\t\t} else {\n\t\t\t// We've encountered an inline script. Inline scripts are executed immediately after\n\t\t\t// inserting them to the DOM. Therefore we need to wait for all external scripts to load.\n\t\t\tawait Promise.all( parallel );\n\t\t\tparallel = [];\n\t\t}\n\t\t// Append the `script` element (external or inline) to the DOM and trigger the load.\n\t\tdestination.appendChild( scriptElement );\n\t}\n\t// Wait for all the remainingexternal scripts to load.\n\tawait Promise.all( parallel );\n\tparallel = [];\n}\n\n// Main async function to load all assets and return editor settings\nasync function loadAssets(\n\tscriptsData: Record< string, Script >,\n\tinlineScripts: Record< 'before' | 'after', Record< string, InlineScript > >,\n\tstylesData: Record< string, Style >,\n\tinlineStyles: Record< 'before' | 'after', Record< string, InlineStyle > >,\n\thtmlTemplates?: string[],\n\tscriptModules?: ScriptModules\n): Promise< void > {\n\t// Inject import map first so script modules can be resolved\n\tif ( scriptModules ) {\n\t\tinjectImportMap( scriptModules );\n\t}\n\n\t// Build dependency-ordered lists\n\tconst orderedStyles = buildDependencyOrderedList( stylesData );\n\tconst orderedScripts = buildDependencyOrderedList( scriptsData );\n\n\tconst stylePromises: Promise< void >[] = [];\n\n\t// Load stylesheets in dependency order\n\tfor ( const handle of orderedStyles ) {\n\t\tconst beforeInline = inlineStyles.before?.[ handle ];\n\t\tif ( beforeInline ) {\n\t\t\tinjectInlineStyle( handle, beforeInline, 'before' );\n\t\t}\n\t\tstylePromises.push( loadStylesheet( handle, stylesData[ handle ] ) );\n\t\tconst afterInline = inlineStyles.after?.[ handle ];\n\t\tif ( afterInline ) {\n\t\t\tinjectInlineStyle( handle, afterInline, 'after' );\n\t\t}\n\t}\n\n\t// Load scripts in dependency order\n\tconst scriptElementsHead: HTMLScriptElement[] = [];\n\tconst scriptElementsBody: HTMLScriptElement[] = [];\n\n\tfor ( const handle of orderedScripts ) {\n\t\tconst inFooter = scriptsData[ handle ].in_footer || false;\n\t\tconst scriptElements = inFooter\n\t\t\t? scriptElementsBody\n\t\t\t: scriptElementsHead;\n\n\t\tconst beforeInline = inlineScripts.before?.[ handle ];\n\t\tif ( beforeInline ) {\n\t\t\tscriptElements.push(\n\t\t\t\tinjectInlineScript( handle, beforeInline, 'before' )\n\t\t\t);\n\t\t}\n\n\t\tscriptElements.push( loadScript( handle, scriptsData[ handle ] ) );\n\n\t\tconst afterInline = inlineScripts.after?.[ handle ];\n\t\tif ( afterInline ) {\n\t\t\tscriptElements.push(\n\t\t\t\tinjectInlineScript( handle, afterInline, 'after' )\n\t\t\t);\n\t\t}\n\t}\n\n\tconst scriptsPromise = ( async () => {\n\t\tawait performScriptLoad( scriptElementsHead, document.head );\n\t\tawait performScriptLoad( scriptElementsBody, document.body );\n\t} )();\n\n\tawait Promise.all( [ Promise.all( stylePromises ), scriptsPromise ] );\n\n\t// Inject HTML templates (e.g., wp.media templates) into the DOM\n\t// Note: We can't use innerHTML for script tags, so we need to parse and create elements properly\n\tif ( htmlTemplates && htmlTemplates.length > 0 ) {\n\t\thtmlTemplates.forEach( ( templateHtml ) => {\n\t\t\t// Extract the script tag attributes and content\n\t\t\tconst scriptMatch = templateHtml.match(\n\t\t\t\t/<script([^>]*)>(.*?)<\\/script>/is\n\t\t\t);\n\t\t\tif ( scriptMatch ) {\n\t\t\t\tconst attributes = scriptMatch[ 1 ];\n\t\t\t\tconst content = scriptMatch[ 2 ];\n\n\t\t\t\t// Create a new script element\n\t\t\t\tconst script = document.createElement( 'script' );\n\n\t\t\t\t// Extract and set the id attribute\n\t\t\t\tconst idMatch = attributes.match( /id=[\"']([^\"']+)[\"']/ );\n\t\t\t\tif ( idMatch ) {\n\t\t\t\t\tscript.id = idMatch[ 1 ];\n\t\t\t\t}\n\n\t\t\t\t// Extract and set the type attribute\n\t\t\t\tconst typeMatch = attributes.match( /type=[\"']([^\"']+)[\"']/ );\n\t\t\t\tif ( typeMatch ) {\n\t\t\t\t\tscript.type = typeMatch[ 1 ];\n\t\t\t\t}\n\n\t\t\t\t// Set the content\n\t\t\t\tscript.textContent = content;\n\n\t\t\t\t// Append to body\n\t\t\t\tdocument.body.appendChild( script );\n\t\t\t}\n\t\t} );\n\t}\n}\n\nexport default loadAssets;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBA,SAAS,gBAAiB,eAAgD;AACzE,MAAK,CAAE,iBAAiB,OAAO,KAAM,aAAc,EAAE,WAAW,GAAI;AACnE;AAAA,EACD;AAGA,QAAM,qBAAqB,SAAS;AAAA,IACnC;AAAA,EACD;AAEA,MAAK,oBAAqB;AACzB,QAAI;AAEH,YAAM,cAAc,KAAK,MAAO,mBAAmB,IAAK;AAGxD,UAAK,CAAE,YAAY,SAAU;AAC5B,oBAAY,UAAU,CAAC;AAAA,MACxB;AAGA,kBAAY,UAAU;AAAA,QACrB,GAAG,YAAY;AAAA,QACf,GAAG;AAAA,MACJ;AAGA,yBAAmB,OAAO,KAAK,UAAW,aAAa,MAAM,CAAE;AAAA,IAChE,SAAU,OAAQ;AAEjB,cAAQ,MAAO,yCAAyC,KAAM;AAAA,IAC/D;AAAA,EACD,OAAO;AAEN,UAAM,SAAS,SAAS,cAAe,QAAS;AAChD,WAAO,OAAO;AACd,WAAO,KAAK;AACZ,WAAO,OAAO,KAAK;AAAA,MAClB;AAAA,QACC,SAAS;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,IACD;AACA,aAAS,KAAK,YAAa,MAAO;AAAA,EACnC;AACD;AAEA,SAAS,eAAgB,QAAgB,WAAoC;AAC5E,SAAO,IAAI,QAAS,CAAE,YAAa;AAClC,QAAK,CAAE,UAAU,KAAM;AACtB,cAAQ;AACR;AAAA,IACD;AAEA,UAAM,eAAe,SAAS,eAAgB,SAAS,MAAO;AAC9D,QAAK,cAAe;AACnB,cAAQ;AACR;AAAA,IACD;AAEA,UAAM,OAAO,SAAS,cAAe,MAAO;AAC5C,SAAK,MAAM;AACX,SAAK,OACJ,UAAU,OACR,UAAU,UAAU,UAAU,UAAU,UAAU;AACrD,SAAK,KAAK,SAAS;AACnB,SAAK,QAAQ,UAAU,SAAS;AAEhC,SAAK,SAAS,MAAM,QAAQ;AAC5B,SAAK,UAAU,MAAM;AAEpB,cAAQ,MAAO,8BAA+B,MAAO,EAAG;AACxD,cAAQ;AAAA,IACT;AAEA,aAAS,KAAK,YAAa,IAAK;AAAA,EACjC,CAAE;AACH;AAEA,SAAS,WAAY,QAAgB,YAAwC;AAE5E,MAAK,CAAE,WAAW,KAAM;AAEvB,UAAM,SAAS,SAAS,cAAe,QAAS;AAChD,WAAO,KAAK,SAAS;AACrB,WAAO,cAAc,mBAAmB;AACxC,WAAO;AAAA,EACR;AAEA,QAAM,SAAS,SAAS,cAAe,QAAS;AAChD,SAAO,MACN,WAAW,OACT,WAAW,UAAU,UAAU,WAAW,UAAU;AACvD,SAAO,KAAK,SAAS;AACrB,SAAO,QAAQ;AAEf,SAAO;AACR;AAGA,SAAS,kBACR,QACA,aACA,UACC;AAED,MAAI,eAAe;AACnB,MAAK,MAAM,QAAS,WAAY,GAAI;AACnC,mBAAe,YAAY,KAAM,IAAK;AAAA,EACvC,WAAY,OAAO,gBAAgB,UAAW;AAC7C,mBAAe;AAAA,EAChB;AAEA,MAAK,gBAAgB,aAAa,KAAK,GAAI;AAC1C,UAAM,UAAU,SAAS,MAAM,WAAW;AAC1C,QAAK,CAAE,SAAS,eAAgB,OAAQ,GAAI;AAC3C,YAAM,QAAQ,SAAS,cAAe,OAAQ;AAC9C,YAAM,KAAK;AACX,YAAM,cAAc,aAAa,KAAK;AACtC,eAAS,KAAK,YAAa,KAAM;AAAA,IAClC;AAAA,EACD;AACD;AAEA,SAAS,mBACR,QACA,cACA,UACoB;AACpB,MAAI,gBAAgB;AACpB,MAAK,MAAM,QAAS,aAAc,GAAI;AACrC,oBAAgB,cAAc,KAAM,IAAK;AAAA,EAC1C;AAEA,QAAM,SAAS,SAAS,cAAe,QAAS;AAChD,SAAO,KAAK,SAAS,MAAM,WAAW;AACtC,SAAO,cAAc,cAAc,KAAK;AAExC,SAAO;AACR;AAGA,SAAS,2BACR,YACC;AACD,QAAM,UAAU,oBAAI,IAAI;AACxB,QAAM,WAAW,oBAAI,IAAI;AACzB,QAAM,cAAwB,CAAC;AAE/B,WAAS,MAAO,QAAiB;AAChC,QAAK,QAAQ,IAAK,MAAO,GAAI;AAC5B;AAAA,IACD;AACA,QAAK,SAAS,IAAK,MAAO,GAAI;AAG7B,cAAQ;AAAA,QACP,4CAA6C,MAAO;AAAA,MACrD;AACA;AAAA,IACD;AAEA,aAAS,IAAK,MAAO;AAErB,QAAK,WAAY,MAAO,GAAI;AAE3B,YAAM,OAAO,WAAY,MAAO,EAAE,QAAQ,CAAC;AAC3C,WAAK,QAAS,CAAE,QAAS;AACxB,YAAK,WAAY,GAAI,GAAI;AACxB,gBAAO,GAAI;AAAA,QACZ;AAAA,MACD,CAAE;AAAA,IACH;AAEA,aAAS,OAAQ,MAAO;AACxB,YAAQ,IAAK,MAAO;AAEpB,QAAK,WAAY,MAAO,GAAI;AAC3B,kBAAY,KAAM,MAAO;AAAA,IAC1B;AAAA,EACD;AAGA,SAAO,KAAM,UAAW,EAAE,QAAS,CAAE,WAAY;AAChD,UAAO,MAAO;AAAA,EACf,CAAE;AAEF,SAAO;AACR;AAEA,eAAe,kBACd,gBACA,aACC;AACD,MAAI,WAAW,CAAC;AAChB,aAAY,iBAAiB,gBAAiB;AAC7C,QAAK,cAAc,KAAM;AAIxB,YAAM,SAAS,QAAQ,cAAsB;AAC7C,oBAAc,SAAS,MAAM,OAAO,QAAQ;AAC5C,oBAAc,UAAU,MAAM;AAE7B,gBAAQ,MAAO,0BAA2B,cAAc,EAAG,EAAG;AAC9D,eAAO,QAAQ;AAAA,MAChB;AACA,eAAS,KAAM,OAAO,OAAQ;AAAA,IAC/B,OAAO;AAGN,YAAM,QAAQ,IAAK,QAAS;AAC5B,iBAAW,CAAC;AAAA,IACb;AAEA,gBAAY,YAAa,aAAc;AAAA,EACxC;AAEA,QAAM,QAAQ,IAAK,QAAS;AAC5B,aAAW,CAAC;AACb;AAGA,eAAe,WACd,aACA,eACA,YACA,cACA,eACA,eACkB;AAElB,MAAK,eAAgB;AACpB,oBAAiB,aAAc;AAAA,EAChC;AAGA,QAAM,gBAAgB,2BAA4B,UAAW;AAC7D,QAAM,iBAAiB,2BAA4B,WAAY;AAE/D,QAAM,gBAAmC,CAAC;AAG1C,aAAY,UAAU,eAAgB;AACrC,UAAM,eAAe,aAAa,SAAU,MAAO;AACnD,QAAK,cAAe;AACnB,wBAAmB,QAAQ,cAAc,QAAS;AAAA,IACnD;AACA,kBAAc,KAAM,eAAgB,QAAQ,WAAY,MAAO,CAAE,CAAE;AACnE,UAAM,cAAc,aAAa,QAAS,MAAO;AACjD,QAAK,aAAc;AAClB,wBAAmB,QAAQ,aAAa,OAAQ;AAAA,IACjD;AAAA,EACD;AAGA,QAAM,
|
|
4
|
+
"sourcesContent": ["type Style = {\n\tsrc: string;\n\tdeps?: string[];\n\tversion?: string;\n\tmedia?: string;\n};\ntype InlineStyle = string | string[];\ntype Script = {\n\tsrc: string;\n\tdeps?: string[];\n\tversion?: string;\n\tin_footer?: boolean;\n};\ntype InlineScript = string | string[];\ntype ScriptModules = Record< string, string >;\n\n/**\n * Injects or extends the import map with new module entries.\n *\n * @param scriptModules - Object mapping module specifiers to URLs\n */\nfunction injectImportMap( scriptModules: Record< string, string > ): void {\n\tif ( ! scriptModules || Object.keys( scriptModules ).length === 0 ) {\n\t\treturn;\n\t}\n\n\t// Find the existing import map script element\n\tconst existingMapElement = document.querySelector< HTMLScriptElement >(\n\t\t'script#wp-importmap[type=importmap]'\n\t);\n\n\tif ( existingMapElement ) {\n\t\ttry {\n\t\t\t// Parse the existing import map\n\t\t\tconst existingMap = JSON.parse( existingMapElement.text );\n\n\t\t\t// Ensure the imports object exists\n\t\t\tif ( ! existingMap.imports ) {\n\t\t\t\texistingMap.imports = {};\n\t\t\t}\n\n\t\t\t// Merge new imports with existing ones (new entries take precedence)\n\t\t\texistingMap.imports = {\n\t\t\t\t...existingMap.imports,\n\t\t\t\t...scriptModules,\n\t\t\t};\n\n\t\t\t// Update the script element's content\n\t\t\texistingMapElement.text = JSON.stringify( existingMap, null, 2 );\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( 'Failed to parse or update import map:', error );\n\t\t}\n\t} else {\n\t\t// If no import map exists, create a new one\n\t\tconst script = document.createElement( 'script' );\n\t\tscript.type = 'importmap';\n\t\tscript.id = 'wp-importmap';\n\t\tscript.text = JSON.stringify(\n\t\t\t{\n\t\t\t\timports: scriptModules,\n\t\t\t},\n\t\t\tnull,\n\t\t\t2\n\t\t);\n\t\tdocument.head.appendChild( script );\n\t}\n}\n\nfunction loadStylesheet( handle: string, styleData: Style ): Promise< void > {\n\treturn new Promise( ( resolve ) => {\n\t\tif ( ! styleData.src ) {\n\t\t\tresolve(); // No external file to load\n\t\t\treturn;\n\t\t}\n\n\t\tconst existingLink = document.getElementById( handle + '-css' );\n\t\tif ( existingLink ) {\n\t\t\tresolve(); // Already loaded\n\t\t\treturn;\n\t\t}\n\n\t\tconst link = document.createElement( 'link' );\n\t\tlink.rel = 'stylesheet';\n\t\tlink.href =\n\t\t\tstyleData.src +\n\t\t\t( styleData.version ? '?ver=' + styleData.version : '' );\n\t\tlink.id = handle + '-css';\n\t\tlink.media = styleData.media || 'all';\n\n\t\tlink.onload = () => resolve();\n\t\tlink.onerror = () => {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( `Failed to load stylesheet: ${ handle }` );\n\t\t\tresolve();\n\t\t};\n\n\t\tdocument.head.appendChild( link );\n\t} );\n}\n\nfunction loadScript( handle: string, scriptData: Script ): HTMLScriptElement {\n\t// If no external script source, just mark as processed and resolve\n\tif ( ! scriptData.src ) {\n\t\t// Still mark as processed with an ID so we don't repeat processing\n\t\tconst marker = document.createElement( 'script' );\n\t\tmarker.id = handle + '-js';\n\t\tmarker.textContent = '// Processed: ' + handle;\n\t\treturn marker;\n\t}\n\n\tconst script = document.createElement( 'script' );\n\tscript.src =\n\t\tscriptData.src +\n\t\t( scriptData.version ? '?ver=' + scriptData.version : '' );\n\tscript.id = handle + '-js';\n\tscript.async = false;\n\n\treturn script;\n}\n\n// Function to inject inline styles\nfunction injectInlineStyle(\n\thandle: string,\n\tinlineStyle: InlineStyle,\n\tposition: 'before' | 'after'\n) {\n\t// Handle both string and array formats\n\tlet styleContent = '';\n\tif ( Array.isArray( inlineStyle ) ) {\n\t\tstyleContent = inlineStyle.join( '\\n' );\n\t} else if ( typeof inlineStyle === 'string' ) {\n\t\tstyleContent = inlineStyle;\n\t}\n\n\tif ( styleContent && styleContent.trim() ) {\n\t\tconst styleId = handle + '-' + position + '-inline-css';\n\t\tif ( ! document.getElementById( styleId ) ) {\n\t\t\tconst style = document.createElement( 'style' );\n\t\t\tstyle.id = styleId;\n\t\t\tstyle.textContent = styleContent.trim();\n\t\t\tdocument.head.appendChild( style );\n\t\t}\n\t}\n}\n\nfunction injectInlineScript(\n\thandle: string,\n\tinlineScript: InlineScript,\n\tposition: 'before' | 'after'\n): HTMLScriptElement {\n\tlet scriptContent = inlineScript;\n\tif ( Array.isArray( scriptContent ) ) {\n\t\tscriptContent = scriptContent.join( '\\n' );\n\t}\n\n\tconst script = document.createElement( 'script' );\n\tscript.id = handle + '-' + position + '-js';\n\tscript.textContent = scriptContent.trim();\n\n\treturn script;\n}\n\n// Function to create dependency-ordered list respecting WordPress dependency graph\nfunction buildDependencyOrderedList< T extends Style | Script >(\n\tassetsData: Record< string, T >\n) {\n\tconst visited = new Set();\n\tconst visiting = new Set();\n\tconst orderedList: string[] = [];\n\n\tfunction visit( handle: string ) {\n\t\tif ( visited.has( handle ) ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( visiting.has( handle ) ) {\n\t\t\t// Circular dependency detected, skip to avoid infinite loop\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t`Circular dependency detected for handle: ${ handle }`\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tvisiting.add( handle );\n\n\t\tif ( assetsData[ handle ] ) {\n\t\t\t// Visit all dependencies first\n\t\t\tconst deps = assetsData[ handle ].deps || [];\n\t\t\tdeps.forEach( ( dep ) => {\n\t\t\t\tif ( assetsData[ dep ] ) {\n\t\t\t\t\tvisit( dep );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tvisiting.delete( handle );\n\t\tvisited.add( handle );\n\n\t\tif ( assetsData[ handle ] ) {\n\t\t\torderedList.push( handle );\n\t\t}\n\t}\n\n\t// Visit all handles\n\tObject.keys( assetsData ).forEach( ( handle ) => {\n\t\tvisit( handle );\n\t} );\n\n\treturn orderedList;\n}\n\nasync function performScriptLoad(\n\tscriptElements: HTMLScriptElement[],\n\tdestination: HTMLElement\n) {\n\tlet parallel = [];\n\tfor ( const scriptElement of scriptElements ) {\n\t\tif ( scriptElement.src ) {\n\t\t\t// External scripts can be loaded in parallel. They will be executed in DOM order\n\t\t\t// because the `script` tags have an `async = false` attribute. Therefore cross-script\n\t\t\t// dependencies are guaranteed to be satisfied.\n\t\t\tconst loader = Promise.withResolvers< void >();\n\t\t\tscriptElement.onload = () => loader.resolve();\n\t\t\tscriptElement.onerror = () => {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( `Failed to load script: ${ scriptElement.id }` );\n\t\t\t\tloader.resolve();\n\t\t\t};\n\t\t\tparallel.push( loader.promise );\n\t\t} else {\n\t\t\t// We've encountered an inline script. Inline scripts are executed immediately after\n\t\t\t// inserting them to the DOM. Therefore we need to wait for all external scripts to load.\n\t\t\tawait Promise.all( parallel );\n\t\t\tparallel = [];\n\t\t}\n\t\t// Append the `script` element (external or inline) to the DOM and trigger the load.\n\t\tdestination.appendChild( scriptElement );\n\t}\n\t// Wait for all the remainingexternal scripts to load.\n\tawait Promise.all( parallel );\n\tparallel = [];\n}\n\n// Main async function to load all assets and return editor settings\nasync function loadAssets(\n\tscriptsData: Record< string, Script >,\n\tinlineScripts: Record< 'before' | 'after', Record< string, InlineScript > >,\n\tstylesData: Record< string, Style >,\n\tinlineStyles: Record< 'before' | 'after', Record< string, InlineStyle > >,\n\thtmlTemplates?: string[],\n\tscriptModules?: ScriptModules\n): Promise< void > {\n\t// Inject import map first so script modules can be resolved\n\tif ( scriptModules ) {\n\t\tinjectImportMap( scriptModules );\n\t}\n\n\t// Build dependency-ordered lists\n\tconst orderedStyles = buildDependencyOrderedList( stylesData );\n\tconst orderedScripts = buildDependencyOrderedList( scriptsData );\n\n\tconst stylePromises: Promise< void >[] = [];\n\n\t// Load stylesheets in dependency order\n\tfor ( const handle of orderedStyles ) {\n\t\tconst beforeInline = inlineStyles.before?.[ handle ];\n\t\tif ( beforeInline ) {\n\t\t\tinjectInlineStyle( handle, beforeInline, 'before' );\n\t\t}\n\t\tstylePromises.push( loadStylesheet( handle, stylesData[ handle ] ) );\n\t\tconst afterInline = inlineStyles.after?.[ handle ];\n\t\tif ( afterInline ) {\n\t\t\tinjectInlineStyle( handle, afterInline, 'after' );\n\t\t}\n\t}\n\n\t// Load scripts in dependency order\n\tconst scriptElements: HTMLScriptElement[] = [];\n\n\tfor ( const handle of orderedScripts ) {\n\t\tconst beforeInline = inlineScripts.before?.[ handle ];\n\t\tif ( beforeInline ) {\n\t\t\tscriptElements.push(\n\t\t\t\tinjectInlineScript( handle, beforeInline, 'before' )\n\t\t\t);\n\t\t}\n\n\t\tscriptElements.push( loadScript( handle, scriptsData[ handle ] ) );\n\n\t\tconst afterInline = inlineScripts.after?.[ handle ];\n\t\tif ( afterInline ) {\n\t\t\tscriptElements.push(\n\t\t\t\tinjectInlineScript( handle, afterInline, 'after' )\n\t\t\t);\n\t\t}\n\t}\n\n\tconst scriptsPromise = performScriptLoad( scriptElements, document.body );\n\n\tawait Promise.all( [ Promise.all( stylePromises ), scriptsPromise ] );\n\n\t// Inject HTML templates (e.g., wp.media templates) into the DOM\n\t// Note: We can't use innerHTML for script tags, so we need to parse and create elements properly\n\tif ( htmlTemplates && htmlTemplates.length > 0 ) {\n\t\thtmlTemplates.forEach( ( templateHtml ) => {\n\t\t\t// Extract the script tag attributes and content\n\t\t\tconst scriptMatch = templateHtml.match(\n\t\t\t\t/<script([^>]*)>(.*?)<\\/script>/is\n\t\t\t);\n\t\t\tif ( scriptMatch ) {\n\t\t\t\tconst attributes = scriptMatch[ 1 ];\n\t\t\t\tconst content = scriptMatch[ 2 ];\n\n\t\t\t\t// Create a new script element\n\t\t\t\tconst script = document.createElement( 'script' );\n\n\t\t\t\t// Extract and set the id attribute\n\t\t\t\tconst idMatch = attributes.match( /id=[\"']([^\"']+)[\"']/ );\n\t\t\t\tif ( idMatch ) {\n\t\t\t\t\tscript.id = idMatch[ 1 ];\n\t\t\t\t}\n\n\t\t\t\t// Extract and set the type attribute\n\t\t\t\tconst typeMatch = attributes.match( /type=[\"']([^\"']+)[\"']/ );\n\t\t\t\tif ( typeMatch ) {\n\t\t\t\t\tscript.type = typeMatch[ 1 ];\n\t\t\t\t}\n\n\t\t\t\t// Set the content\n\t\t\t\tscript.textContent = content;\n\n\t\t\t\t// Append to body\n\t\t\t\tdocument.body.appendChild( script );\n\t\t\t}\n\t\t} );\n\t}\n}\n\nexport default loadAssets;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build-module/index.js
CHANGED
|
@@ -170,11 +170,8 @@ async function loadAssets(scriptsData, inlineScripts, stylesData, inlineStyles,
|
|
|
170
170
|
injectInlineStyle(handle, afterInline, "after");
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
|
-
const
|
|
174
|
-
const scriptElementsBody = [];
|
|
173
|
+
const scriptElements = [];
|
|
175
174
|
for (const handle of orderedScripts) {
|
|
176
|
-
const inFooter = scriptsData[handle].in_footer || false;
|
|
177
|
-
const scriptElements = inFooter ? scriptElementsBody : scriptElementsHead;
|
|
178
175
|
const beforeInline = inlineScripts.before?.[handle];
|
|
179
176
|
if (beforeInline) {
|
|
180
177
|
scriptElements.push(
|
|
@@ -189,10 +186,7 @@ async function loadAssets(scriptsData, inlineScripts, stylesData, inlineStyles,
|
|
|
189
186
|
);
|
|
190
187
|
}
|
|
191
188
|
}
|
|
192
|
-
const scriptsPromise = (
|
|
193
|
-
await performScriptLoad(scriptElementsHead, document.head);
|
|
194
|
-
await performScriptLoad(scriptElementsBody, document.body);
|
|
195
|
-
})();
|
|
189
|
+
const scriptsPromise = performScriptLoad(scriptElements, document.body);
|
|
196
190
|
await Promise.all([Promise.all(stylePromises), scriptsPromise]);
|
|
197
191
|
if (htmlTemplates && htmlTemplates.length > 0) {
|
|
198
192
|
htmlTemplates.forEach((templateHtml) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["type Style = {\n\tsrc: string;\n\tdeps?: string[];\n\tversion?: string;\n\tmedia?: string;\n};\ntype InlineStyle = string | string[];\ntype Script = {\n\tsrc: string;\n\tdeps?: string[];\n\tversion?: string;\n\tin_footer?: boolean;\n};\ntype InlineScript = string | string[];\ntype ScriptModules = Record< string, string >;\n\n/**\n * Injects or extends the import map with new module entries.\n *\n * @param scriptModules - Object mapping module specifiers to URLs\n */\nfunction injectImportMap( scriptModules: Record< string, string > ): void {\n\tif ( ! scriptModules || Object.keys( scriptModules ).length === 0 ) {\n\t\treturn;\n\t}\n\n\t// Find the existing import map script element\n\tconst existingMapElement = document.querySelector< HTMLScriptElement >(\n\t\t'script#wp-importmap[type=importmap]'\n\t);\n\n\tif ( existingMapElement ) {\n\t\ttry {\n\t\t\t// Parse the existing import map\n\t\t\tconst existingMap = JSON.parse( existingMapElement.text );\n\n\t\t\t// Ensure the imports object exists\n\t\t\tif ( ! existingMap.imports ) {\n\t\t\t\texistingMap.imports = {};\n\t\t\t}\n\n\t\t\t// Merge new imports with existing ones (new entries take precedence)\n\t\t\texistingMap.imports = {\n\t\t\t\t...existingMap.imports,\n\t\t\t\t...scriptModules,\n\t\t\t};\n\n\t\t\t// Update the script element's content\n\t\t\texistingMapElement.text = JSON.stringify( existingMap, null, 2 );\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( 'Failed to parse or update import map:', error );\n\t\t}\n\t} else {\n\t\t// If no import map exists, create a new one\n\t\tconst script = document.createElement( 'script' );\n\t\tscript.type = 'importmap';\n\t\tscript.id = 'wp-importmap';\n\t\tscript.text = JSON.stringify(\n\t\t\t{\n\t\t\t\timports: scriptModules,\n\t\t\t},\n\t\t\tnull,\n\t\t\t2\n\t\t);\n\t\tdocument.head.appendChild( script );\n\t}\n}\n\nfunction loadStylesheet( handle: string, styleData: Style ): Promise< void > {\n\treturn new Promise( ( resolve ) => {\n\t\tif ( ! styleData.src ) {\n\t\t\tresolve(); // No external file to load\n\t\t\treturn;\n\t\t}\n\n\t\tconst existingLink = document.getElementById( handle + '-css' );\n\t\tif ( existingLink ) {\n\t\t\tresolve(); // Already loaded\n\t\t\treturn;\n\t\t}\n\n\t\tconst link = document.createElement( 'link' );\n\t\tlink.rel = 'stylesheet';\n\t\tlink.href =\n\t\t\tstyleData.src +\n\t\t\t( styleData.version ? '?ver=' + styleData.version : '' );\n\t\tlink.id = handle + '-css';\n\t\tlink.media = styleData.media || 'all';\n\n\t\tlink.onload = () => resolve();\n\t\tlink.onerror = () => {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( `Failed to load stylesheet: ${ handle }` );\n\t\t\tresolve();\n\t\t};\n\n\t\tdocument.head.appendChild( link );\n\t} );\n}\n\nfunction loadScript( handle: string, scriptData: Script ): HTMLScriptElement {\n\t// If no external script source, just mark as processed and resolve\n\tif ( ! scriptData.src ) {\n\t\t// Still mark as processed with an ID so we don't repeat processing\n\t\tconst marker = document.createElement( 'script' );\n\t\tmarker.id = handle + '-js';\n\t\tmarker.textContent = '// Processed: ' + handle;\n\t\treturn marker;\n\t}\n\n\tconst script = document.createElement( 'script' );\n\tscript.src =\n\t\tscriptData.src +\n\t\t( scriptData.version ? '?ver=' + scriptData.version : '' );\n\tscript.id = handle + '-js';\n\tscript.async = false;\n\n\treturn script;\n}\n\n// Function to inject inline styles\nfunction injectInlineStyle(\n\thandle: string,\n\tinlineStyle: InlineStyle,\n\tposition: 'before' | 'after'\n) {\n\t// Handle both string and array formats\n\tlet styleContent = '';\n\tif ( Array.isArray( inlineStyle ) ) {\n\t\tstyleContent = inlineStyle.join( '\\n' );\n\t} else if ( typeof inlineStyle === 'string' ) {\n\t\tstyleContent = inlineStyle;\n\t}\n\n\tif ( styleContent && styleContent.trim() ) {\n\t\tconst styleId = handle + '-' + position + '-inline-css';\n\t\tif ( ! document.getElementById( styleId ) ) {\n\t\t\tconst style = document.createElement( 'style' );\n\t\t\tstyle.id = styleId;\n\t\t\tstyle.textContent = styleContent.trim();\n\t\t\tdocument.head.appendChild( style );\n\t\t}\n\t}\n}\n\nfunction injectInlineScript(\n\thandle: string,\n\tinlineScript: InlineScript,\n\tposition: 'before' | 'after'\n): HTMLScriptElement {\n\tlet scriptContent = inlineScript;\n\tif ( Array.isArray( scriptContent ) ) {\n\t\tscriptContent = scriptContent.join( '\\n' );\n\t}\n\n\tconst script = document.createElement( 'script' );\n\tscript.id = handle + '-' + position + '-js';\n\tscript.textContent = scriptContent.trim();\n\n\treturn script;\n}\n\n// Function to create dependency-ordered list respecting WordPress dependency graph\nfunction buildDependencyOrderedList< T extends Style | Script >(\n\tassetsData: Record< string, T >\n) {\n\tconst visited = new Set();\n\tconst visiting = new Set();\n\tconst orderedList: string[] = [];\n\n\tfunction visit( handle: string ) {\n\t\tif ( visited.has( handle ) ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( visiting.has( handle ) ) {\n\t\t\t// Circular dependency detected, skip to avoid infinite loop\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t`Circular dependency detected for handle: ${ handle }`\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tvisiting.add( handle );\n\n\t\tif ( assetsData[ handle ] ) {\n\t\t\t// Visit all dependencies first\n\t\t\tconst deps = assetsData[ handle ].deps || [];\n\t\t\tdeps.forEach( ( dep ) => {\n\t\t\t\tif ( assetsData[ dep ] ) {\n\t\t\t\t\tvisit( dep );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tvisiting.delete( handle );\n\t\tvisited.add( handle );\n\n\t\tif ( assetsData[ handle ] ) {\n\t\t\torderedList.push( handle );\n\t\t}\n\t}\n\n\t// Visit all handles\n\tObject.keys( assetsData ).forEach( ( handle ) => {\n\t\tvisit( handle );\n\t} );\n\n\treturn orderedList;\n}\n\nasync function performScriptLoad(\n\tscriptElements: HTMLScriptElement[],\n\tdestination: HTMLElement\n) {\n\tlet parallel = [];\n\tfor ( const scriptElement of scriptElements ) {\n\t\tif ( scriptElement.src ) {\n\t\t\t// External scripts can be loaded in parallel. They will be executed in DOM order\n\t\t\t// because the `script` tags have an `async = false` attribute. Therefore cross-script\n\t\t\t// dependencies are guaranteed to be satisfied.\n\t\t\tconst loader = Promise.withResolvers< void >();\n\t\t\tscriptElement.onload = () => loader.resolve();\n\t\t\tscriptElement.onerror = () => {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( `Failed to load script: ${ scriptElement.id }` );\n\t\t\t\tloader.resolve();\n\t\t\t};\n\t\t\tparallel.push( loader.promise );\n\t\t} else {\n\t\t\t// We've encountered an inline script. Inline scripts are executed immediately after\n\t\t\t// inserting them to the DOM. Therefore we need to wait for all external scripts to load.\n\t\t\tawait Promise.all( parallel );\n\t\t\tparallel = [];\n\t\t}\n\t\t// Append the `script` element (external or inline) to the DOM and trigger the load.\n\t\tdestination.appendChild( scriptElement );\n\t}\n\t// Wait for all the remainingexternal scripts to load.\n\tawait Promise.all( parallel );\n\tparallel = [];\n}\n\n// Main async function to load all assets and return editor settings\nasync function loadAssets(\n\tscriptsData: Record< string, Script >,\n\tinlineScripts: Record< 'before' | 'after', Record< string, InlineScript > >,\n\tstylesData: Record< string, Style >,\n\tinlineStyles: Record< 'before' | 'after', Record< string, InlineStyle > >,\n\thtmlTemplates?: string[],\n\tscriptModules?: ScriptModules\n): Promise< void > {\n\t// Inject import map first so script modules can be resolved\n\tif ( scriptModules ) {\n\t\tinjectImportMap( scriptModules );\n\t}\n\n\t// Build dependency-ordered lists\n\tconst orderedStyles = buildDependencyOrderedList( stylesData );\n\tconst orderedScripts = buildDependencyOrderedList( scriptsData );\n\n\tconst stylePromises: Promise< void >[] = [];\n\n\t// Load stylesheets in dependency order\n\tfor ( const handle of orderedStyles ) {\n\t\tconst beforeInline = inlineStyles.before?.[ handle ];\n\t\tif ( beforeInline ) {\n\t\t\tinjectInlineStyle( handle, beforeInline, 'before' );\n\t\t}\n\t\tstylePromises.push( loadStylesheet( handle, stylesData[ handle ] ) );\n\t\tconst afterInline = inlineStyles.after?.[ handle ];\n\t\tif ( afterInline ) {\n\t\t\tinjectInlineStyle( handle, afterInline, 'after' );\n\t\t}\n\t}\n\n\t// Load scripts in dependency order\n\tconst scriptElementsHead: HTMLScriptElement[] = [];\n\tconst scriptElementsBody: HTMLScriptElement[] = [];\n\n\tfor ( const handle of orderedScripts ) {\n\t\tconst inFooter = scriptsData[ handle ].in_footer || false;\n\t\tconst scriptElements = inFooter\n\t\t\t? scriptElementsBody\n\t\t\t: scriptElementsHead;\n\n\t\tconst beforeInline = inlineScripts.before?.[ handle ];\n\t\tif ( beforeInline ) {\n\t\t\tscriptElements.push(\n\t\t\t\tinjectInlineScript( handle, beforeInline, 'before' )\n\t\t\t);\n\t\t}\n\n\t\tscriptElements.push( loadScript( handle, scriptsData[ handle ] ) );\n\n\t\tconst afterInline = inlineScripts.after?.[ handle ];\n\t\tif ( afterInline ) {\n\t\t\tscriptElements.push(\n\t\t\t\tinjectInlineScript( handle, afterInline, 'after' )\n\t\t\t);\n\t\t}\n\t}\n\n\tconst scriptsPromise = ( async () => {\n\t\tawait performScriptLoad( scriptElementsHead, document.head );\n\t\tawait performScriptLoad( scriptElementsBody, document.body );\n\t} )();\n\n\tawait Promise.all( [ Promise.all( stylePromises ), scriptsPromise ] );\n\n\t// Inject HTML templates (e.g., wp.media templates) into the DOM\n\t// Note: We can't use innerHTML for script tags, so we need to parse and create elements properly\n\tif ( htmlTemplates && htmlTemplates.length > 0 ) {\n\t\thtmlTemplates.forEach( ( templateHtml ) => {\n\t\t\t// Extract the script tag attributes and content\n\t\t\tconst scriptMatch = templateHtml.match(\n\t\t\t\t/<script([^>]*)>(.*?)<\\/script>/is\n\t\t\t);\n\t\t\tif ( scriptMatch ) {\n\t\t\t\tconst attributes = scriptMatch[ 1 ];\n\t\t\t\tconst content = scriptMatch[ 2 ];\n\n\t\t\t\t// Create a new script element\n\t\t\t\tconst script = document.createElement( 'script' );\n\n\t\t\t\t// Extract and set the id attribute\n\t\t\t\tconst idMatch = attributes.match( /id=[\"']([^\"']+)[\"']/ );\n\t\t\t\tif ( idMatch ) {\n\t\t\t\t\tscript.id = idMatch[ 1 ];\n\t\t\t\t}\n\n\t\t\t\t// Extract and set the type attribute\n\t\t\t\tconst typeMatch = attributes.match( /type=[\"']([^\"']+)[\"']/ );\n\t\t\t\tif ( typeMatch ) {\n\t\t\t\t\tscript.type = typeMatch[ 1 ];\n\t\t\t\t}\n\n\t\t\t\t// Set the content\n\t\t\t\tscript.textContent = content;\n\n\t\t\t\t// Append to body\n\t\t\t\tdocument.body.appendChild( script );\n\t\t\t}\n\t\t} );\n\t}\n}\n\nexport default loadAssets;\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["type Style = {\n\tsrc: string;\n\tdeps?: string[];\n\tversion?: string;\n\tmedia?: string;\n};\ntype InlineStyle = string | string[];\ntype Script = {\n\tsrc: string;\n\tdeps?: string[];\n\tversion?: string;\n\tin_footer?: boolean;\n};\ntype InlineScript = string | string[];\ntype ScriptModules = Record< string, string >;\n\n/**\n * Injects or extends the import map with new module entries.\n *\n * @param scriptModules - Object mapping module specifiers to URLs\n */\nfunction injectImportMap( scriptModules: Record< string, string > ): void {\n\tif ( ! scriptModules || Object.keys( scriptModules ).length === 0 ) {\n\t\treturn;\n\t}\n\n\t// Find the existing import map script element\n\tconst existingMapElement = document.querySelector< HTMLScriptElement >(\n\t\t'script#wp-importmap[type=importmap]'\n\t);\n\n\tif ( existingMapElement ) {\n\t\ttry {\n\t\t\t// Parse the existing import map\n\t\t\tconst existingMap = JSON.parse( existingMapElement.text );\n\n\t\t\t// Ensure the imports object exists\n\t\t\tif ( ! existingMap.imports ) {\n\t\t\t\texistingMap.imports = {};\n\t\t\t}\n\n\t\t\t// Merge new imports with existing ones (new entries take precedence)\n\t\t\texistingMap.imports = {\n\t\t\t\t...existingMap.imports,\n\t\t\t\t...scriptModules,\n\t\t\t};\n\n\t\t\t// Update the script element's content\n\t\t\texistingMapElement.text = JSON.stringify( existingMap, null, 2 );\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( 'Failed to parse or update import map:', error );\n\t\t}\n\t} else {\n\t\t// If no import map exists, create a new one\n\t\tconst script = document.createElement( 'script' );\n\t\tscript.type = 'importmap';\n\t\tscript.id = 'wp-importmap';\n\t\tscript.text = JSON.stringify(\n\t\t\t{\n\t\t\t\timports: scriptModules,\n\t\t\t},\n\t\t\tnull,\n\t\t\t2\n\t\t);\n\t\tdocument.head.appendChild( script );\n\t}\n}\n\nfunction loadStylesheet( handle: string, styleData: Style ): Promise< void > {\n\treturn new Promise( ( resolve ) => {\n\t\tif ( ! styleData.src ) {\n\t\t\tresolve(); // No external file to load\n\t\t\treturn;\n\t\t}\n\n\t\tconst existingLink = document.getElementById( handle + '-css' );\n\t\tif ( existingLink ) {\n\t\t\tresolve(); // Already loaded\n\t\t\treturn;\n\t\t}\n\n\t\tconst link = document.createElement( 'link' );\n\t\tlink.rel = 'stylesheet';\n\t\tlink.href =\n\t\t\tstyleData.src +\n\t\t\t( styleData.version ? '?ver=' + styleData.version : '' );\n\t\tlink.id = handle + '-css';\n\t\tlink.media = styleData.media || 'all';\n\n\t\tlink.onload = () => resolve();\n\t\tlink.onerror = () => {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( `Failed to load stylesheet: ${ handle }` );\n\t\t\tresolve();\n\t\t};\n\n\t\tdocument.head.appendChild( link );\n\t} );\n}\n\nfunction loadScript( handle: string, scriptData: Script ): HTMLScriptElement {\n\t// If no external script source, just mark as processed and resolve\n\tif ( ! scriptData.src ) {\n\t\t// Still mark as processed with an ID so we don't repeat processing\n\t\tconst marker = document.createElement( 'script' );\n\t\tmarker.id = handle + '-js';\n\t\tmarker.textContent = '// Processed: ' + handle;\n\t\treturn marker;\n\t}\n\n\tconst script = document.createElement( 'script' );\n\tscript.src =\n\t\tscriptData.src +\n\t\t( scriptData.version ? '?ver=' + scriptData.version : '' );\n\tscript.id = handle + '-js';\n\tscript.async = false;\n\n\treturn script;\n}\n\n// Function to inject inline styles\nfunction injectInlineStyle(\n\thandle: string,\n\tinlineStyle: InlineStyle,\n\tposition: 'before' | 'after'\n) {\n\t// Handle both string and array formats\n\tlet styleContent = '';\n\tif ( Array.isArray( inlineStyle ) ) {\n\t\tstyleContent = inlineStyle.join( '\\n' );\n\t} else if ( typeof inlineStyle === 'string' ) {\n\t\tstyleContent = inlineStyle;\n\t}\n\n\tif ( styleContent && styleContent.trim() ) {\n\t\tconst styleId = handle + '-' + position + '-inline-css';\n\t\tif ( ! document.getElementById( styleId ) ) {\n\t\t\tconst style = document.createElement( 'style' );\n\t\t\tstyle.id = styleId;\n\t\t\tstyle.textContent = styleContent.trim();\n\t\t\tdocument.head.appendChild( style );\n\t\t}\n\t}\n}\n\nfunction injectInlineScript(\n\thandle: string,\n\tinlineScript: InlineScript,\n\tposition: 'before' | 'after'\n): HTMLScriptElement {\n\tlet scriptContent = inlineScript;\n\tif ( Array.isArray( scriptContent ) ) {\n\t\tscriptContent = scriptContent.join( '\\n' );\n\t}\n\n\tconst script = document.createElement( 'script' );\n\tscript.id = handle + '-' + position + '-js';\n\tscript.textContent = scriptContent.trim();\n\n\treturn script;\n}\n\n// Function to create dependency-ordered list respecting WordPress dependency graph\nfunction buildDependencyOrderedList< T extends Style | Script >(\n\tassetsData: Record< string, T >\n) {\n\tconst visited = new Set();\n\tconst visiting = new Set();\n\tconst orderedList: string[] = [];\n\n\tfunction visit( handle: string ) {\n\t\tif ( visited.has( handle ) ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( visiting.has( handle ) ) {\n\t\t\t// Circular dependency detected, skip to avoid infinite loop\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t`Circular dependency detected for handle: ${ handle }`\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tvisiting.add( handle );\n\n\t\tif ( assetsData[ handle ] ) {\n\t\t\t// Visit all dependencies first\n\t\t\tconst deps = assetsData[ handle ].deps || [];\n\t\t\tdeps.forEach( ( dep ) => {\n\t\t\t\tif ( assetsData[ dep ] ) {\n\t\t\t\t\tvisit( dep );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tvisiting.delete( handle );\n\t\tvisited.add( handle );\n\n\t\tif ( assetsData[ handle ] ) {\n\t\t\torderedList.push( handle );\n\t\t}\n\t}\n\n\t// Visit all handles\n\tObject.keys( assetsData ).forEach( ( handle ) => {\n\t\tvisit( handle );\n\t} );\n\n\treturn orderedList;\n}\n\nasync function performScriptLoad(\n\tscriptElements: HTMLScriptElement[],\n\tdestination: HTMLElement\n) {\n\tlet parallel = [];\n\tfor ( const scriptElement of scriptElements ) {\n\t\tif ( scriptElement.src ) {\n\t\t\t// External scripts can be loaded in parallel. They will be executed in DOM order\n\t\t\t// because the `script` tags have an `async = false` attribute. Therefore cross-script\n\t\t\t// dependencies are guaranteed to be satisfied.\n\t\t\tconst loader = Promise.withResolvers< void >();\n\t\t\tscriptElement.onload = () => loader.resolve();\n\t\t\tscriptElement.onerror = () => {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( `Failed to load script: ${ scriptElement.id }` );\n\t\t\t\tloader.resolve();\n\t\t\t};\n\t\t\tparallel.push( loader.promise );\n\t\t} else {\n\t\t\t// We've encountered an inline script. Inline scripts are executed immediately after\n\t\t\t// inserting them to the DOM. Therefore we need to wait for all external scripts to load.\n\t\t\tawait Promise.all( parallel );\n\t\t\tparallel = [];\n\t\t}\n\t\t// Append the `script` element (external or inline) to the DOM and trigger the load.\n\t\tdestination.appendChild( scriptElement );\n\t}\n\t// Wait for all the remainingexternal scripts to load.\n\tawait Promise.all( parallel );\n\tparallel = [];\n}\n\n// Main async function to load all assets and return editor settings\nasync function loadAssets(\n\tscriptsData: Record< string, Script >,\n\tinlineScripts: Record< 'before' | 'after', Record< string, InlineScript > >,\n\tstylesData: Record< string, Style >,\n\tinlineStyles: Record< 'before' | 'after', Record< string, InlineStyle > >,\n\thtmlTemplates?: string[],\n\tscriptModules?: ScriptModules\n): Promise< void > {\n\t// Inject import map first so script modules can be resolved\n\tif ( scriptModules ) {\n\t\tinjectImportMap( scriptModules );\n\t}\n\n\t// Build dependency-ordered lists\n\tconst orderedStyles = buildDependencyOrderedList( stylesData );\n\tconst orderedScripts = buildDependencyOrderedList( scriptsData );\n\n\tconst stylePromises: Promise< void >[] = [];\n\n\t// Load stylesheets in dependency order\n\tfor ( const handle of orderedStyles ) {\n\t\tconst beforeInline = inlineStyles.before?.[ handle ];\n\t\tif ( beforeInline ) {\n\t\t\tinjectInlineStyle( handle, beforeInline, 'before' );\n\t\t}\n\t\tstylePromises.push( loadStylesheet( handle, stylesData[ handle ] ) );\n\t\tconst afterInline = inlineStyles.after?.[ handle ];\n\t\tif ( afterInline ) {\n\t\t\tinjectInlineStyle( handle, afterInline, 'after' );\n\t\t}\n\t}\n\n\t// Load scripts in dependency order\n\tconst scriptElements: HTMLScriptElement[] = [];\n\n\tfor ( const handle of orderedScripts ) {\n\t\tconst beforeInline = inlineScripts.before?.[ handle ];\n\t\tif ( beforeInline ) {\n\t\t\tscriptElements.push(\n\t\t\t\tinjectInlineScript( handle, beforeInline, 'before' )\n\t\t\t);\n\t\t}\n\n\t\tscriptElements.push( loadScript( handle, scriptsData[ handle ] ) );\n\n\t\tconst afterInline = inlineScripts.after?.[ handle ];\n\t\tif ( afterInline ) {\n\t\t\tscriptElements.push(\n\t\t\t\tinjectInlineScript( handle, afterInline, 'after' )\n\t\t\t);\n\t\t}\n\t}\n\n\tconst scriptsPromise = performScriptLoad( scriptElements, document.body );\n\n\tawait Promise.all( [ Promise.all( stylePromises ), scriptsPromise ] );\n\n\t// Inject HTML templates (e.g., wp.media templates) into the DOM\n\t// Note: We can't use innerHTML for script tags, so we need to parse and create elements properly\n\tif ( htmlTemplates && htmlTemplates.length > 0 ) {\n\t\thtmlTemplates.forEach( ( templateHtml ) => {\n\t\t\t// Extract the script tag attributes and content\n\t\t\tconst scriptMatch = templateHtml.match(\n\t\t\t\t/<script([^>]*)>(.*?)<\\/script>/is\n\t\t\t);\n\t\t\tif ( scriptMatch ) {\n\t\t\t\tconst attributes = scriptMatch[ 1 ];\n\t\t\t\tconst content = scriptMatch[ 2 ];\n\n\t\t\t\t// Create a new script element\n\t\t\t\tconst script = document.createElement( 'script' );\n\n\t\t\t\t// Extract and set the id attribute\n\t\t\t\tconst idMatch = attributes.match( /id=[\"']([^\"']+)[\"']/ );\n\t\t\t\tif ( idMatch ) {\n\t\t\t\t\tscript.id = idMatch[ 1 ];\n\t\t\t\t}\n\n\t\t\t\t// Extract and set the type attribute\n\t\t\t\tconst typeMatch = attributes.match( /type=[\"']([^\"']+)[\"']/ );\n\t\t\t\tif ( typeMatch ) {\n\t\t\t\t\tscript.type = typeMatch[ 1 ];\n\t\t\t\t}\n\n\t\t\t\t// Set the content\n\t\t\t\tscript.textContent = content;\n\n\t\t\t\t// Append to body\n\t\t\t\tdocument.body.appendChild( script );\n\t\t\t}\n\t\t} );\n\t}\n}\n\nexport default loadAssets;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AACrC,KAAK,MAAM,GAAG;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AACtC,KAAK,aAAa,GAAG,MAAM,CAAE,MAAM,EAAE,MAAM,CAAE,CAAC;AAuO9C,iBAAe,UAAU,CACxB,WAAW,EAAE,MAAM,CAAE,MAAM,EAAE,MAAM,CAAE,EACrC,aAAa,EAAE,MAAM,CAAE,QAAQ,GAAG,OAAO,EAAE,MAAM,CAAE,MAAM,EAAE,YAAY,CAAE,CAAE,EAC3E,UAAU,EAAE,MAAM,CAAE,MAAM,EAAE,KAAK,CAAE,EACnC,YAAY,EAAE,MAAM,CAAE,QAAQ,GAAG,OAAO,EAAE,MAAM,CAAE,MAAM,EAAE,WAAW,CAAE,CAAE,EACzE,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,aAAa,CAAC,EAAE,aAAa,GAC3B,OAAO,CAAE,IAAI,CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AACrC,KAAK,MAAM,GAAG;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AACtC,KAAK,aAAa,GAAG,MAAM,CAAE,MAAM,EAAE,MAAM,CAAE,CAAC;AAuO9C,iBAAe,UAAU,CACxB,WAAW,EAAE,MAAM,CAAE,MAAM,EAAE,MAAM,CAAE,EACrC,aAAa,EAAE,MAAM,CAAE,QAAQ,GAAG,OAAO,EAAE,MAAM,CAAE,MAAM,EAAE,YAAY,CAAE,CAAE,EAC3E,UAAU,EAAE,MAAM,CAAE,MAAM,EAAE,KAAK,CAAE,EACnC,YAAY,EAAE,MAAM,CAAE,QAAQ,GAAG,OAAO,EAAE,MAAM,CAAE,MAAM,EAAE,WAAW,CAAE,CAAE,EACzE,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,aAAa,CAAC,EAAE,aAAa,GAC3B,OAAO,CAAE,IAAI,CAAE,CAqFjB;AAED,eAAe,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/asset-loader",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.1-next.8b30e05b0.0",
|
|
4
4
|
"description": "Utility to dynamically load WordPress scripts and styles with dependency resolution.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "2466f6bc223f8be98c55e1ac7270e8c3e413eaaf"
|
|
44
44
|
}
|
package/src/index.ts
CHANGED
|
@@ -276,15 +276,9 @@ async function loadAssets(
|
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
// Load scripts in dependency order
|
|
279
|
-
const
|
|
280
|
-
const scriptElementsBody: HTMLScriptElement[] = [];
|
|
279
|
+
const scriptElements: HTMLScriptElement[] = [];
|
|
281
280
|
|
|
282
281
|
for ( const handle of orderedScripts ) {
|
|
283
|
-
const inFooter = scriptsData[ handle ].in_footer || false;
|
|
284
|
-
const scriptElements = inFooter
|
|
285
|
-
? scriptElementsBody
|
|
286
|
-
: scriptElementsHead;
|
|
287
|
-
|
|
288
282
|
const beforeInline = inlineScripts.before?.[ handle ];
|
|
289
283
|
if ( beforeInline ) {
|
|
290
284
|
scriptElements.push(
|
|
@@ -302,10 +296,7 @@ async function loadAssets(
|
|
|
302
296
|
}
|
|
303
297
|
}
|
|
304
298
|
|
|
305
|
-
const scriptsPromise = (
|
|
306
|
-
await performScriptLoad( scriptElementsHead, document.head );
|
|
307
|
-
await performScriptLoad( scriptElementsBody, document.body );
|
|
308
|
-
} )();
|
|
299
|
+
const scriptsPromise = performScriptLoad( scriptElements, document.body );
|
|
309
300
|
|
|
310
301
|
await Promise.all( [ Promise.all( stylePromises ), scriptsPromise ] );
|
|
311
302
|
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/index.ts"],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"e91484a069b19135ee1841b8cac46d1bd511f1142d5eb257fc3f9765c1708e03","signature":"a89c94bf9be67c44067e73c782565cc2d1d0811b4a1eba32466182d000ce8873"}],"root":[83],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"checkJs":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"rootDir":"./src","skipDefaultLibCheck":true,"strict":true,"target":99},"latestChangedDtsFile":"./build-types/index.d.ts","version":"5.9.3"}
|
|
1
|
+
{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/index.ts"],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"ad7994d6c7daf7c5108f653ab083c525a4f510a7d1529e05ba40a15cc524db9a","signature":"a89c94bf9be67c44067e73c782565cc2d1d0811b4a1eba32466182d000ce8873"}],"root":[83],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"checkJs":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"rootDir":"./src","skipDefaultLibCheck":true,"strict":true,"target":99},"latestChangedDtsFile":"./build-types/index.d.ts","version":"5.9.3"}
|