@arcgis/lumina-compiler 5.0.0-next.1 → 5.0.0-next.100

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.
Files changed (94) hide show
  1. package/dist/context/index.d.ts +19 -17
  2. package/dist/context/typeScript.d.ts +1 -1
  3. package/dist/defaultAssetsUrl.d.ts +1 -7
  4. package/dist/dependencies/arcgisCore.d.ts +1 -1
  5. package/dist/dependencies/discover.d.ts +3 -3
  6. package/dist/dependencies/index.d.ts +1 -1
  7. package/dist/dependencies/loaders.d.ts +3 -3
  8. package/dist/dependencies/lumina.d.ts +2 -2
  9. package/dist/dependencies/stencil.d.ts +12 -2
  10. package/dist/dependencies/testSetupFiles.d.ts +1 -1
  11. package/dist/dependencies/updateLumina.d.ts +5 -4
  12. package/dist/docs/config.d.ts +1 -1
  13. package/dist/docs/index.d.ts +1 -1
  14. package/dist/docs/stencilDocsJson.d.ts +1 -1
  15. package/dist/docs/vsCodeCustomData/index.d.ts +1 -1
  16. package/dist/docs/vsCodeCustomData/utils.d.ts +1 -1
  17. package/dist/docs/webTypes/index.d.ts +1 -1
  18. package/dist/docs/webTypes/utils.d.ts +1 -1
  19. package/dist/entrypoints/addNonLazyImports.d.ts +1 -1
  20. package/dist/entrypoints/config.d.ts +0 -1
  21. package/dist/entrypoints/dtsUtils.d.ts +2 -2
  22. package/dist/entrypoints/findUtils.d.ts +5 -10
  23. package/dist/entrypoints/handleComponentImports.d.ts +1 -1
  24. package/dist/entrypoints/pathMapping.d.ts +1 -1
  25. package/dist/entrypoints/resolveTagName.d.ts +3 -3
  26. package/dist/extractor/LuminaApiExtractor.d.ts +63 -0
  27. package/dist/extractor/apiJsonUtils.d.ts +2 -1
  28. package/dist/extractor/declaration.d.ts +3 -3
  29. package/dist/extractor/helpers/event.d.ts +1 -2
  30. package/dist/extractor/helpers/method.d.ts +1 -8
  31. package/dist/extractor/helpers/property.d.ts +2 -7
  32. package/dist/extractor/helpers/resolveType.d.ts +1 -1
  33. package/dist/extractor/index.d.ts +5 -3
  34. package/dist/frameworkTypes/index.d.ts +1 -1
  35. package/dist/frameworkTypes/utils.d.ts +1 -1
  36. package/dist/index.d.ts +11 -11
  37. package/dist/index.js +1728 -1700
  38. package/dist/jsxToLitHtml/autoAddNothing.d.ts +2 -2
  39. package/dist/jsxToLitHtml/comments.d.ts +2 -2
  40. package/dist/jsxToLitHtml/convertProps.d.ts +4 -4
  41. package/dist/jsxToLitHtml/imports.d.ts +4 -9
  42. package/dist/jsxToLitHtml/importsConfig.d.ts +8 -1
  43. package/dist/jsxToLitHtml/index.d.ts +1 -1
  44. package/dist/jsxToLitHtml/inferPropType.d.ts +1 -1
  45. package/dist/jsxToLitHtml/insertRepeatCall.d.ts +1 -1
  46. package/dist/jsxToLitHtml/jsxVisitor.d.ts +2 -2
  47. package/dist/jsxToLitHtml/templateParts.d.ts +1 -1
  48. package/dist/jsxToLitHtml/throwOnImportingExternalized.d.ts +1 -1
  49. package/dist/jsxToLitHtml/types.d.ts +2 -2
  50. package/dist/loader/css.d.ts +3 -3
  51. package/dist/loader/index.d.ts +1 -1
  52. package/dist/loader/lazy.d.ts +3 -3
  53. package/dist/plugins/buildCdn.d.ts +2 -2
  54. package/dist/plugins/buildWebApp.d.ts +1 -1
  55. package/dist/plugins/buildWrappers.d.ts +1 -1
  56. package/dist/plugins/configureVite.d.ts +2 -2
  57. package/dist/plugins/externalizeDependencies.d.ts +1 -1
  58. package/dist/plugins/handleDynamicAssets.d.ts +1 -1
  59. package/dist/plugins/handleStaticAssets.d.ts +1 -1
  60. package/dist/plugins/loadLitCss.d.ts +1 -1
  61. package/dist/plugins/printTotalBuildSize.d.ts +1 -1
  62. package/dist/plugins/provideAssets.d.ts +3 -3
  63. package/dist/plugins/setAssetsPath.d.ts +1 -1
  64. package/dist/plugins/updatePackageJson.d.ts +1 -1
  65. package/dist/publicTypes.d.ts +14 -10
  66. package/dist/puppeteerTesting/globalSetup.d.ts +2 -2
  67. package/dist/puppeteerTesting/index.d.ts +7 -7
  68. package/dist/puppeteerTesting/index.js +11 -11
  69. package/dist/puppeteerTesting/puppeteer/element.d.ts +4 -4
  70. package/dist/puppeteerTesting/puppeteer/events.d.ts +2 -2
  71. package/dist/puppeteerTesting/puppeteer/page.d.ts +1 -1
  72. package/dist/puppeteerTesting/puppeteer/types.d.ts +3 -3
  73. package/dist/puppeteerTesting/vitest/types.d.ts +1 -1
  74. package/dist/testing/index.d.ts +4 -4
  75. package/dist/testing/index.js +77 -74
  76. package/dist/testing/mount.d.ts +1 -1
  77. package/dist/tests/utils.d.ts +2 -2
  78. package/dist/transformers/index.d.ts +1 -1
  79. package/dist/transformers/injectRuntimeOptions.d.ts +1 -1
  80. package/dist/transformers/members.d.ts +1 -1
  81. package/dist/transformers/property.d.ts +2 -2
  82. package/dist/transformers/propertyOptions.d.ts +2 -2
  83. package/dist/transformers/utils.d.ts +2 -2
  84. package/dist/types/astTransformers.d.ts +1 -1
  85. package/dist/types/hideInternalLitElement.d.ts +1 -1
  86. package/dist/types/index.d.ts +1 -1
  87. package/dist/types/liftSetterTypes.d.ts +1 -1
  88. package/dist/types/textTransformers.d.ts +1 -1
  89. package/dist/types/transformComponentMembers.d.ts +1 -1
  90. package/dist/useLumina.d.ts +1 -1
  91. package/package.json +9 -9
  92. package/dist/extractor/extractor.d.ts +0 -54
  93. package/dist/testing/vitestTypes.d.ts +0 -8
  94. package/dist/transformers/internalTypeScriptApis.d.ts +0 -31
@@ -1,16 +1,15 @@
1
1
  import { ConfigEnv, Plugin, ResolvedConfig, ViteDevServer } from 'vite';
2
2
  import { default as ts } from 'typescript';
3
- import { ApiCssCustomProperty, ApiCustomElementDeclaration, ApiJson } from '@arcgis/api-extractor';
4
- import { LuminaOptions, AssetSpec, AssetTransformer, DeclarationTextTransformer, ProvideAssetsOptions, LintingOptions } from '../publicTypes';
5
- import { ComponentPathMapping } from '../entrypoints/pathMapping';
6
- import { DocsType } from '../docs/types';
7
- import { ContextDirectories } from './types';
8
- import { makeLoaders, computeServeOnlyDependencies } from '../dependencies/loaders';
9
- import { parseStoryFiles } from '../extractor/parseStoryFiles';
10
- import { CustomElementInterdependencies } from '../entrypoints/config';
11
- import { getCompilerOptionsForPrinter } from '../transformers';
12
- import { getPrinter } from '../transformers/internalTypeScriptApis';
13
- import { getLocalDefinedComponentsFromApiJson } from '../entrypoints/resolveTagName';
3
+ import { ApiCssCustomProperty, ApiCustomElementDeclaration, ApiJson, unsafeGetUndocumentedPrinter } from '@arcgis/api-extractor';
4
+ import { LuminaOptions, AssetSpec, AssetTransformer, DeclarationTextTransformer, ProvideAssetsOptions, LintingOptions } from '../publicTypes.ts';
5
+ import { ComponentPathMapping } from '../entrypoints/pathMapping.ts';
6
+ import { DocsType } from '../docs/types.ts';
7
+ import { ContextDirectories } from './types.ts';
8
+ import { makeLoaders, computeServeOnlyDependencies } from '../dependencies/loaders.ts';
9
+ import { parseStoryFiles } from '../extractor/parseStoryFiles.ts';
10
+ import { CustomElementInterdependencies } from '../entrypoints/config.ts';
11
+ import { getCompilerOptionsForPrinter } from '../transformers/index.ts';
12
+ import { getLocalDefinedComponentsFromApiJson } from '../entrypoints/resolveTagName.ts';
14
13
  import { Deferred } from '@arcgis/toolkit/promise';
15
14
  export declare class CompilerContext {
16
15
  /**
@@ -84,6 +83,7 @@ export declare class CompilerContext {
84
83
  * @private
85
84
  */
86
85
  readonly _plugin: Plugin;
86
+ private _startCollectingComponentStories;
87
87
  /**
88
88
  * List of directories of common interest to the compiler
89
89
  */
@@ -106,10 +106,10 @@ export declare class CompilerContext {
106
106
  */
107
107
  privateApiJson: ApiJson;
108
108
  /**
109
- * Resolves once api.json is first generated.
109
+ * Resolves once api.json is first generated during a given build run.
110
110
  * @private
111
111
  */
112
- readonly apiJsonDeferred: Deferred<void>;
112
+ apiJsonDeferred: Deferred<void>;
113
113
  /**
114
114
  * In some test environments, api.json will never be produced.
115
115
  */
@@ -188,6 +188,7 @@ export declare class CompilerContext {
188
188
  * If running in a Vite instance created by Vitest Puppeteer integration.
189
189
  */
190
190
  isInPuppeteerTestFrontEnd: boolean;
191
+ isInBuildWatch: boolean;
191
192
  /**
192
193
  * Whether Vite build/serve is running inside of Storybook.
193
194
  */
@@ -301,7 +302,7 @@ export declare class CompilerContext {
301
302
  *
302
303
  * @private
303
304
  */
304
- readonly _customElementDependencies: CustomElementInterdependencies;
305
+ _customElementDependencies: CustomElementInterdependencies;
305
306
  /**
306
307
  * Result of getCompilerOptionsForPrinter() call.
307
308
  *
@@ -314,7 +315,7 @@ export declare class CompilerContext {
314
315
  *
315
316
  * @private
316
317
  */
317
- _typeScriptPrinter: ReturnType<typeof getPrinter>;
318
+ _typeScriptPrinter: ReturnType<typeof unsafeGetUndocumentedPrinter>;
318
319
  /**
319
320
  * Cached RegExp for replacing occurrences of `ArcgisCounter["el"]` with
320
321
  * `HtmlElementArcgisCounter`.
@@ -331,8 +332,9 @@ export declare class CompilerContext {
331
332
  * @private
332
333
  */
333
334
  _updateLuminaTsPromise?: Promise<void>;
334
- normalizedDocumentationUrl: string;
335
- alternativeDocumentationUrl: string;
335
+ private _didCallOptions;
336
+ /** @private */
337
+ _originalRollupInputOptions?: Record<string, string> | undefined;
336
338
  constructor(options: LuminaOptions);
337
339
  private _inferBuildSetup;
338
340
  /**
@@ -1,5 +1,5 @@
1
1
  import { default as ts } from 'typescript';
2
- import { CompilerContext } from '.';
2
+ import { CompilerContext } from './index.ts';
3
3
  /**
4
4
  * In build mode, vite-plugin-dts already parses tsconfig. However, it
5
5
  * overwrites the resolved tsconfig.target with ESNext, which is not what we
@@ -12,10 +12,4 @@
12
12
  export declare function inferCdnUrl(packageJson?: {
13
13
  name: string;
14
14
  version: string;
15
- }, preferNext?: boolean,
16
- /**
17
- * Whether to include the patch semver component in the URL (1.1.x <- the x)
18
- *
19
- * @default false, unless packageJson.name is `@esri/calcite-components`
20
- */
21
- includePatch?: boolean): string;
15
+ }, preferNext?: boolean): string;
@@ -1,4 +1,4 @@
1
- import { DependencyInjectionMode, DependencyInjectionResult } from './utils';
1
+ import { DependencyInjectionMode, DependencyInjectionResult } from './utils.ts';
2
2
  export declare const hasCore: boolean;
3
3
  /**
4
4
  * Thanks to Vite's dependency pre-bundling, we do not have to use the CDN
@@ -1,8 +1,8 @@
1
1
  import { MiniPackageJson } from '@arcgis/components-build-utils';
2
- import { ModulePath } from '../extractor/helpers/resolveType';
3
- import { WebTypes } from '../docs/webTypes/types';
2
+ import { ModulePath } from '../extractor/helpers/resolveType.ts';
3
+ import { WebTypes } from '../docs/webTypes/types.ts';
4
4
  import { ApiJson } from '@arcgis/api-extractor';
5
- import { LuminaOptions } from '../publicTypes';
5
+ import { LuminaOptions } from '../publicTypes.ts';
6
6
  export type ResolvedDependencyComponents = {
7
7
  readonly packageName: string;
8
8
  readonly type: "@arcgis/lumina" | "stencil" | "unknown";
@@ -1,5 +1,5 @@
1
1
  import { IndexHtmlTransformContext, Plugin } from 'vite';
2
- import { CompilerContext } from '../context';
2
+ import { CompilerContext } from '../context/index.ts';
3
3
  export declare const doLoadersApply: (context: CompilerContext, htmlContext?: IndexHtmlTransformContext) => boolean;
4
4
  /**
5
5
  * In serve mode, augment index.html by adding the necessary script tags for
@@ -1,5 +1,5 @@
1
- import { CompilerContext } from '../context';
2
- import { ResolvedDependencyComponents } from './discover';
3
- import { DependencyInjectionResult } from './utils';
1
+ import { CompilerContext } from '../context/index.ts';
2
+ import { ResolvedDependencyComponents } from './discover.ts';
3
+ import { DependencyInjectionResult } from './utils.ts';
4
4
  export declare function makeLoaders(context: CompilerContext): Promise<DependencyInjectionResult[]>;
5
5
  export declare function computeServeOnlyDependencies(context: CompilerContext): Promise<readonly ResolvedDependencyComponents[]>;
@@ -1,3 +1,3 @@
1
- import { DependencyInjectionMode, DependencyInjectionResult } from './utils';
2
- import { ResolvedDependencyComponents } from './discover';
1
+ import { DependencyInjectionMode, DependencyInjectionResult } from './utils.ts';
2
+ import { ResolvedDependencyComponents } from './discover.ts';
3
3
  export declare function makeLuminaLoader(baseUrl: string, dependency: ResolvedDependencyComponents, mode: DependencyInjectionMode, index: number, preferNext: boolean): Promise<DependencyInjectionResult>;
@@ -1,7 +1,17 @@
1
- import { DependencyInjectionMode, DependencyInjectionResult } from './utils';
2
- import { ResolvedDependencyComponents } from './discover';
1
+ import { DependencyInjectionMode, DependencyInjectionResult } from './utils.ts';
2
+ import { ResolvedDependencyComponents } from './discover.ts';
3
3
  export declare function makeStencilLoader(baseUrl: string, dependency: ResolvedDependencyComponents, mode: DependencyInjectionMode, index: number, preferNext: boolean): Promise<DependencyInjectionResult[]>;
4
4
  export declare function findCdnFiles(packageDirectory: string): Promise<{
5
5
  readonly cdnName: string;
6
6
  readonly hasCss: boolean;
7
7
  } | undefined>;
8
+ export type StencilLazyLoadingData = LazyBundleRuntimeData[];
9
+ type LazyBundleRuntimeData = [string, ComponentRuntimeMetaCompact[]];
10
+ type ComponentRuntimeMetaCompact = [
11
+ number,
12
+ /** tagname */
13
+ string,
14
+ /** members */
15
+ Record<string, [number, string?]>?
16
+ ];
17
+ export {};
@@ -1,4 +1,4 @@
1
- import { CompilerContext } from '../context';
1
+ import { CompilerContext } from '../context/index.ts';
2
2
  export declare const testSetupFileName = "/@arcgis/lumina-compiler/testSetupFile";
3
3
  export declare const testSetupFileRegex: RegExp;
4
4
  export declare const testSetupFileNames: string[];
@@ -1,7 +1,8 @@
1
- import { ResolvedDependencyComponents } from './discover';
2
- import { VitestBrowserModeProvider } from '../testing/vitestTypes';
3
- export declare function updateLuminaTs(dependencies: readonly ResolvedDependencyComponents[], srcDir: string, hasCore: boolean, browserProvider?: VitestBrowserModeProvider, packageJson?: import('@arcgis/components-build-utils').MiniPackageJson): Promise<boolean>;
4
- declare function produceLuminaTs(dependencies: readonly ResolvedDependencyComponents[], hasCore: boolean, browserProvider?: VitestBrowserModeProvider, packageJson?: import('@arcgis/components-build-utils').MiniPackageJson): string;
1
+ import { ResolvedDependencyComponents } from './discover.ts';
2
+ export declare function updateLuminaTs(dependencies: readonly ResolvedDependencyComponents[], srcDir: string, hasCore: boolean,
3
+ /** Preserved positional argument for compatibility because codemod was passing it */
4
+ _unused?: never, packageJson?: import('@arcgis/components-build-utils').MiniPackageJson): Promise<boolean>;
5
+ declare function produceLuminaTs(dependencies: readonly ResolvedDependencyComponents[], hasCore: boolean, packageJson?: import('@arcgis/components-build-utils').MiniPackageJson): string;
5
6
  export declare const exportsForTests: {
6
7
  produceLuminaTs: typeof produceLuminaTs;
7
8
  };
@@ -1,2 +1,2 @@
1
- import { DocsType } from './types';
1
+ import { DocsType } from './types.ts';
2
2
  export declare const defaultDocsFileNames: Record<DocsType, string>;
@@ -1,4 +1,4 @@
1
- import { CompilerContext } from '../context';
1
+ import { CompilerContext } from '../context/index.ts';
2
2
  import { Plugin } from 'vite';
3
3
  /**
4
4
  * Generate JSON component metadata in 4 formats ()
@@ -1,4 +1,4 @@
1
- import { CompilerContext } from '../context';
1
+ import { CompilerContext } from '../context/index.ts';
2
2
  import { ApiDocsTag } from '@arcgis/api-extractor';
3
3
  /**
4
4
  * To avoid having a dependency on Stencil, we inline Stencil types rather than
@@ -1,4 +1,4 @@
1
- import { VsCodeHtmlDocs, VsCodeCssDocs } from './types.js';
1
+ import { VsCodeHtmlDocs, VsCodeCssDocs } from './types.ts';
2
2
  import { ApiCustomElementDeclaration } from '@arcgis/api-extractor';
3
3
  /**
4
4
  * Originally based on
@@ -1,3 +1,3 @@
1
- import { VsCodeTag } from './types';
1
+ import { VsCodeTag } from './types.ts';
2
2
  import { ApiCustomElementDeclaration } from '@arcgis/api-extractor';
3
3
  export declare const getTagList: (components: ApiCustomElementDeclaration[]) => VsCodeTag[];
@@ -1,4 +1,4 @@
1
- import { WebTypesOptions, WebTypesElement, WebTypes } from './types';
1
+ import { WebTypesOptions, WebTypesElement, WebTypes } from './types.ts';
2
2
  import { ApiCustomElementDeclaration } from '@arcgis/api-extractor';
3
3
  /**
4
4
  * Originally based on
@@ -1,5 +1,5 @@
1
1
  import { ApiCustomElementDeclaration } from '@arcgis/api-extractor';
2
- import { WebTypesAttribute, WebTypesCssProperty, WebTypesPseudoElement } from './types';
2
+ import { WebTypesAttribute, WebTypesCssProperty, WebTypesPseudoElement } from './types.ts';
3
3
  export declare const getCssPropertyList: (components: ApiCustomElementDeclaration[]) => WebTypesCssProperty[];
4
4
  export declare const getCssPartList: (components: ApiCustomElementDeclaration[]) => WebTypesPseudoElement[];
5
5
  export declare const getComponentAttributes: (component: ApiCustomElementDeclaration) => WebTypesAttribute[];
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'vite';
2
- import { CompilerContext } from '../context';
2
+ import { CompilerContext } from '../context/index.ts';
3
3
  /**
4
4
  * When component is imported in a non-lazy-loading way, we need to make sure
5
5
  * the component file has explicit import statements for all web component it
@@ -16,4 +16,3 @@ export type CustomElementInterdependencies = Record<string, {
16
16
  referencedDeferredTagNames: string[];
17
17
  readonly referencedBy: string[];
18
18
  }>;
19
- export declare const defaultBrowserTestProvider = "playwright";
@@ -1,6 +1,6 @@
1
- import { DeclarationTextTransformer } from '../publicTypes';
1
+ import { DeclarationTextTransformer } from '../publicTypes.ts';
2
2
  import { path } from '@arcgis/components-build-utils';
3
- import { CompilerContext } from '../context';
3
+ import { CompilerContext } from '../context/index.ts';
4
4
  export declare const rewriteDtsComponentFileNames: DeclarationTextTransformer;
5
5
  export declare const rePath: RegExp;
6
6
  /**
@@ -1,19 +1,14 @@
1
- import { CompilerContext } from '../context';
2
- /**
3
- * Create a separate entrypoint for each component to allow consuming
4
- * applications to only load the necessary code.
5
- *
6
- * @remarks
7
- * Finds all components in the src/components folder. With support for nested
8
- * components (looking for .tsx files whose name matches their folder name)
9
- */
10
- export declare const getComponentEntrypoints: (context: CompilerContext) => Promise<Readonly<Record<string, string>>>;
1
+ import { CompilerContext } from '../context/index.ts';
11
2
  /**
12
3
  * @example
13
4
  * `src/components/component-name/component-name.tsx` =>
14
5
  * `./components/component-name/customElement`
15
6
  */
16
7
  export declare const entrypointPathToDistPath: (sourceFileName: string, srcPath?: string) => string;
8
+ /**
9
+ * Finds all components in the src/components folder. With support for nested
10
+ * components (looking for .tsx files whose name matches their folder name)
11
+ */
17
12
  export declare const findComponentFiles: (context: CompilerContext, componentsDirectory: string, searchBase?: string) => Promise<string[]>;
18
13
  /**
19
14
  * Check if absolute file path looks like a component entrypoint
@@ -1,5 +1,5 @@
1
1
  import { default as ts } from 'typescript';
2
- import { JsxContext } from '../jsxToLitHtml/types';
2
+ import { JsxContext } from '../jsxToLitHtml/types.ts';
3
3
  /**
4
4
  * Instead of adding imports to the component source file, take note of imports
5
5
  * that need to be added and have addNonLazyImports() add them to component's
@@ -1,4 +1,4 @@
1
- import { CompilerContext } from '../context';
1
+ import { CompilerContext } from '../context/index.ts';
2
2
  /**
3
3
  * A mapping between a path to a component folder in src/components and it's
4
4
  * tag name.
@@ -1,6 +1,6 @@
1
- import { ResolvedDependencyComponent } from '../dependencies/discover';
2
- import { ModulePath } from '../extractor/helpers/resolveType';
3
- import { CompilerContext } from '../context';
1
+ import { ResolvedDependencyComponent } from '../dependencies/discover.ts';
2
+ import { ModulePath } from '../extractor/helpers/resolveType.ts';
3
+ import { CompilerContext } from '../context/index.ts';
4
4
  /**
5
5
  * Automatically add imports as appropriate for all referenced internally defined
6
6
  * and externally defined custom elements
@@ -0,0 +1,63 @@
1
+ import { default as ts } from 'typescript';
2
+ import { ApiExtractor, ApiAttribute, ApiClassMethod, ApiCustomElementDeclaration, ApiCustomElementField, ApiCustomElementMember, ApiDeclaration, ApiEvent, ApiJson, ApiModule, ApiReference, CopyDocDefinitions } from '@arcgis/api-extractor';
3
+ import { CompilerContext } from '../context/index.ts';
4
+ export declare class LuminaApiExtractor extends ApiExtractor {
5
+ constructor(context: CompilerContext, isPatchOnly: boolean);
6
+ readonly context: CompilerContext;
7
+ protected readonly isPatchOnly: boolean;
8
+ protected localCssImports?: Set<string>;
9
+ protected localTagName: string | undefined;
10
+ protected localClassName: string | undefined;
11
+ protected pairedSetter: ts.SetAccessorDeclaration | undefined;
12
+ protected copyDocDefinitions: CopyDocDefinitions;
13
+ apiComponent: ApiCustomElementDeclaration;
14
+ indexedComponents: Map<string, ApiCustomElementDeclaration>;
15
+ moduleName: string;
16
+ resolveJsDocLink: (completeMatch: string, match: string) => string;
17
+ extract(files: readonly ts.SourceFile[]): ApiJson;
18
+ extractModules(files: readonly ts.SourceFile[]): ApiModule[];
19
+ extractModule(module: ts.SourceFile): ApiModule;
20
+ protected extractDeclaration(statement: ts.Statement): ApiDeclaration | undefined;
21
+ protected collectCssImports(node: ts.ImportDeclaration): void;
22
+ protected extractComponentDeclaration(node: ts.ClassDeclaration): ApiCustomElementDeclaration | undefined;
23
+ protected extractComponentMembers(node: ts.ClassDeclaration): ApiCustomElementMember[];
24
+ protected extractComponentMember(node: ts.ClassElement, name: string | undefined): ApiCustomElementMember | undefined;
25
+ protected extractComponentField(node: ts.AccessorDeclaration | ts.PropertyDeclaration, name: string): ApiCustomElementField | undefined;
26
+ /**
27
+ * Based on a `non-@property()` property, extract a public event if it is one.
28
+ */
29
+ protected extractComponentEvent(node: ts.PropertyDeclaration, name: string): ApiEvent | undefined;
30
+ /**
31
+ * When doing full API extraction, extract additional details for a field.
32
+ */
33
+ protected extractComponentFieldDetails(node: ts.AccessorDeclaration | ts.PropertyDeclaration, property: ApiCustomElementField): void;
34
+ static loggedBooleanWarning: boolean;
35
+ /**
36
+ * Find the properties given to the `@property()` decorator.
37
+ */
38
+ protected findPropertyOptions(member: ts.AccessorDeclaration | ts.PropertyDeclaration): readonly ts.ObjectLiteralElementLike[] | undefined;
39
+ protected extractComponentMethod(node: ts.MethodDeclaration, name: string): ApiClassMethod | undefined;
40
+ /**
41
+ * Infer attributes based on public component members.
42
+ */
43
+ protected inferAttributes(members: ApiCustomElementMember[]): ApiAttribute[];
44
+ protected resolveInheritance(superClassModule: string, modules: ApiModule[]): false | {
45
+ inheritanceData: ApiReference;
46
+ declaration: import('@arcgis/api-extractor').ApiClassDeclaration | import('@arcgis/api-extractor').ApiMixinDeclaration;
47
+ hasSettableField: boolean;
48
+ indexedMembers: Map<string, import('@arcgis/api-extractor').ApiClassMember | ApiCustomElementMember | undefined> | undefined;
49
+ indexedEvents: Record<string, ApiEvent> | undefined;
50
+ indexedAttributes: Record<string, ApiAttribute> | undefined;
51
+ indexedSlots: Record<string, import('@arcgis/api-extractor').ApiSlot> | undefined;
52
+ indexedCssParts: Record<string, import('@arcgis/api-extractor').ApiCssPart> | undefined;
53
+ indexedCssProperties: Record<string, import('@arcgis/api-extractor').ApiCssCustomProperty> | undefined;
54
+ indexedCssStates: Record<string, import('@arcgis/api-extractor').ApiCssCustomState> | undefined;
55
+ };
56
+ /**
57
+ * Overwrite point
58
+ *
59
+ * FINAL: jsapi-extractor has a more efficient implementation because it
60
+ * has to deal with inheritance a lot. Unify it with Lumina.
61
+ */
62
+ protected findSuperclassDeclaration(className: string, modules: ApiModule[]): readonly [string, ApiCustomElementDeclaration] | false;
63
+ }
@@ -1,4 +1,5 @@
1
1
  import { default as ts } from 'typescript';
2
2
  import { ApiClassMethod, ApiCustomElementDeclaration, ApiCustomElementField, ApiJson, ApiModule } from '@arcgis/api-extractor';
3
3
  export declare function findMember(component: Pick<ApiCustomElementDeclaration, "members" | "name">, memberNode: ts.AccessorDeclaration | ts.MethodDeclaration | ts.PropertyDeclaration): ApiClassMethod | ApiCustomElementField | undefined;
4
- export declare function findApiModule(filePath: string, rootDir: string, apiJson: ApiJson): ApiModule | undefined;
4
+ export declare function findApiModule(filePath: string, extractRootDir: string, apiJson: ApiJson): ApiModule | undefined;
5
+ export declare function apiMethodReturnsPromise(apiMethod: ApiClassMethod): boolean;
@@ -1,7 +1,7 @@
1
- import { FileTransformer, DeclarationTextTransformer } from '../publicTypes';
1
+ import { FileTransformer, DeclarationTextTransformer } from '../publicTypes.ts';
2
2
  export declare const removeDeclarationFromDts: DeclarationTextTransformer;
3
3
  export declare const addCustomElementDecoratorTransformer: FileTransformer;
4
- export declare function findDeclaredComponents(code: string): readonly (readonly [string, string])[] | undefined;
4
+ export declare function findDeclaredComponent(code: string): readonly [tagName: string, className: string] | undefined;
5
5
  export declare const exportsForTests: {
6
- findDeclaredComponents: typeof findDeclaredComponents;
6
+ findDeclaredComponent: typeof findDeclaredComponent;
7
7
  };
@@ -1,9 +1,8 @@
1
1
  import { default as ts } from 'typescript';
2
2
  import { ApiEvent } from '@arcgis/api-extractor';
3
- import { CompilerContext } from '../../context';
3
+ import { CompilerContext } from '../../context/index.ts';
4
4
  /**
5
5
  * If property is an event emitter, extract event payload type and event name.
6
6
  * Even name is derived by converting property name to kebab-case.
7
7
  */
8
8
  export declare function extractComponentEvent(propertyDeclaration: ts.PropertyDeclaration, name: string, context: CompilerContext, sourceFile: ts.SourceFile): ApiEvent | undefined;
9
- export declare function extractBooleanInitializer(initializer: ts.Expression, sourceFile: ts.SourceFile): boolean;
@@ -1,11 +1,4 @@
1
1
  import { default as ts } from 'typescript';
2
- import { ContextDirectories } from '../../context/types';
2
+ import { ContextDirectories } from '../../context/types.ts';
3
3
  import { ApiClassMethod } from '@arcgis/api-extractor';
4
4
  export declare function extractComponentMethodDetails(node: ts.MethodDeclaration, method: ApiClassMethod, checker: ts.TypeChecker, sourceFile: ts.SourceFile, dirs: ContextDirectories): void;
5
- /**
6
- * Inspired by https://github.com/bennypowers/cem-plugins/blob/main/plugins/cem-plugin-async-function/index.js
7
- *
8
- * That package works, but uses outdated peerDependency and the author doesn't
9
- * wish to update it. Refactoring it, and adding TypeScript typings
10
- */
11
- export declare const isAsync: (nodeDeclaration: ts.MethodDeclaration) => boolean;
@@ -1,9 +1,4 @@
1
1
  import { default as ts } from 'typescript';
2
- import { ApiType, ApiTypeReference } from '@arcgis/api-extractor';
3
- import { CompilerContext } from '../../context';
2
+ import { ApiType } from '@arcgis/api-extractor';
3
+ import { CompilerContext } from '../../context/index.ts';
4
4
  export declare const getComplexPropertyType: (context: CompilerContext, typeContainerNode: ts.AccessorDeclaration | ts.PropertyDeclaration, isRequired: boolean, sourceFile: ts.SourceFile) => ApiType;
5
- /**
6
- * Associate a start and end index with each type reference. Drop unresolved
7
- * references.
8
- */
9
- export declare function findReferenceRanges(references: ApiTypeReference[], resolvedString: string): ApiTypeReference[] | undefined;
@@ -1,5 +1,5 @@
1
1
  import { default as ts } from 'typescript';
2
- import { ContextDirectories } from '../../context/types';
2
+ import { ContextDirectories } from '../../context/types.ts';
3
3
  import { ApiType } from '@arcgis/api-extractor';
4
4
  export declare const addPropMetadataPluginName = "@arcgis/lumina:addPropMetadata";
5
5
  export declare function resolveType(checker: ts.TypeChecker, type: ts.Type, sourceFile: ts.SourceFile, dirs: ContextDirectories, stripNullish?: boolean): ApiType;
@@ -1,12 +1,14 @@
1
- import { CompilerContext } from '../context';
1
+ import { CompilerContext } from '../context/index.ts';
2
2
  import { ApiCustomElementDeclaration, ApiJson } from '@arcgis/api-extractor';
3
+ import { LuminaApiExtractor } from './LuminaApiExtractor.ts';
3
4
  /**
4
5
  * Build the complete api.json, either once during build, or in serve mode if
5
6
  * full-reload is needed.
6
7
  */
7
- export declare function buildApiJson(context: CompilerContext, isFirstGenerate: boolean): Promise<ApiJson>;
8
+ export declare function buildApiJson(context: CompilerContext, reFetchComponentEntrypoints: boolean): Promise<ApiJson>;
8
9
  /**
9
10
  * Update the api.json for a single file on hot reload
10
11
  */
11
12
  export declare function patchApiJson(context: CompilerContext, fileName: string, code: string): ApiCustomElementDeclaration[] | undefined;
12
- export declare function postProcessComponent(component: ApiCustomElementDeclaration, context: CompilerContext, indexedComponents: Map<string, ApiCustomElementDeclaration>): void;
13
+ export declare function postProcessComponent(component: ApiCustomElementDeclaration, extractor: LuminaApiExtractor): void;
14
+ export declare const jsDocLinkToMarkdown: (extractor: LuminaApiExtractor) => (completeMatch: string, match: string) => string;
@@ -1,4 +1,4 @@
1
- import { CompilerContext } from '../context';
1
+ import { CompilerContext } from '../context/index.ts';
2
2
  import { Plugin } from 'vite';
3
3
  /**
4
4
  * Generate component typings for vanilla JavaScript and JSX frameworks.
@@ -1,5 +1,5 @@
1
1
  import { ApiCustomElementMember } from '@arcgis/api-extractor';
2
- import { CompilerContext } from '../context';
2
+ import { CompilerContext } from '../context/index.ts';
3
3
  /** Generate a string for importing component types */
4
4
  export declare const generateComponentTypeImports: (context: CompilerContext) => string;
5
5
  export declare const isPropertyEscapeNeeded: (name: string) => boolean;
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { initializeComponentDependencies } from './dependencies/discover';
2
- import { updateLuminaTs } from './dependencies/updateLumina';
3
- import { findDeclaredComponents } from './extractor/declaration';
4
- export { useLumina } from './useLumina';
5
- export type * from './publicTypes';
6
- export { inferCdnUrl } from './defaultAssetsUrl';
7
- export type { CompilerContext } from './context';
8
- export { LuminaApiExtractor } from './extractor/extractor';
1
+ import { initializeComponentDependencies } from './dependencies/discover.ts';
2
+ import { updateLuminaTs } from './dependencies/updateLumina.ts';
3
+ import { findDeclaredComponent } from './extractor/declaration.ts';
4
+ export { useLumina } from './useLumina.ts';
5
+ export type * from './publicTypes.ts';
6
+ export { inferCdnUrl } from './defaultAssetsUrl.ts';
7
+ export type { CompilerContext } from './context/index.ts';
8
+ export { LuminaApiExtractor } from './extractor/LuminaApiExtractor.ts';
9
9
  /**
10
10
  * These are exposed only for usage by the @arcgis/stencil-to-lumina codemod
11
11
  *
@@ -15,10 +15,10 @@ export declare const exportsForCodemod: {
15
15
  initializeComponentDependencies: typeof initializeComponentDependencies;
16
16
  updateLuminaTs: typeof updateLuminaTs;
17
17
  propertyToAttributeMappings: {
18
- readonly common: Required<import('./jsxToLitHtml/config').ElementPropertyToAttributeMappings>;
19
- readonly perElement: Record<string, import('./jsxToLitHtml/config').ElementPropertyToAttributeMappings | undefined>;
18
+ readonly common: Required<import('./jsxToLitHtml/config.ts').ElementPropertyToAttributeMappings>;
19
+ readonly perElement: Record<string, import('./jsxToLitHtml/config.ts').ElementPropertyToAttributeMappings | undefined>;
20
20
  };
21
- findDeclaredComponents: typeof findDeclaredComponents;
21
+ findDeclaredComponent: typeof findDeclaredComponent;
22
22
  nativeEvents: Set<string>;
23
23
  svgElements: Set<string>;
24
24
  mathMlElements: Set<string>;