123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253 |
- import { BuildResultsComponentGraph } from '.';
- import type { BuildEvents, BuildLog, BuildOutput, CompilerBuildResults, CompilerBuildStart, CompilerFsStats, CompilerRequestResponse, CompilerSystem, Config, CopyResults, DevServerConfig, DevServerEditor, Diagnostic, FsWriteOptions, Logger, LoggerTimeSpan, OptimizeCssInput, OptimizeCssOutput, OutputTargetWww, PageReloadStrategy, PrerenderConfig, StyleDoc, LoggerLineUpdater, TaskCommand } from './stencil-public-compiler';
- import type { ComponentInterface, ListenOptions, ListenTargetOptions, VNode, VNodeData } from './stencil-public-runtime';
- export interface SourceMap {
- file: string;
- mappings: string;
- names: string[];
- sourceRoot?: string;
- sources: string[];
- sourcesContent?: string[];
- version: number;
- }
- export interface PrintLine {
- lineIndex: number;
- lineNumber: number;
- text?: string;
- errorCharStart: number;
- errorLength?: number;
- }
- export interface AssetsMeta {
- absolutePath: string;
- cmpRelativePath: string;
- originalComponentPath: string;
- }
- export interface ParsedImport {
- importPath: string;
- basename: string;
- ext: string;
- data: ImportData;
- }
- export interface ImportData {
- tag?: string;
- encapsulation?: string;
- mode?: string;
- }
- export interface SerializeImportData extends ImportData {
- importeePath: string;
- importerPath?: string;
- }
- export interface BuildFeatures {
- style: boolean;
- mode: boolean;
- shadowDom: boolean;
- shadowDelegatesFocus: boolean;
- scoped: boolean;
- /**
- * Every component has a render function
- */
- allRenderFn: boolean;
- /**
- * At least one component has a render function
- */
- hasRenderFn: boolean;
- vdomRender: boolean;
- vdomAttribute: boolean;
- vdomClass: boolean;
- vdomFunctional: boolean;
- vdomKey: boolean;
- vdomListener: boolean;
- vdomPropOrAttr: boolean;
- vdomRef: boolean;
- vdomStyle: boolean;
- vdomText: boolean;
- vdomXlink: boolean;
- slotRelocation: boolean;
- slot: boolean;
- svg: boolean;
- element: boolean;
- event: boolean;
- hostListener: boolean;
- hostListenerTargetWindow: boolean;
- hostListenerTargetDocument: boolean;
- hostListenerTargetBody: boolean;
- /**
- * @deprecated Prevented from new apps, but left in for older collections
- */
- hostListenerTargetParent: boolean;
- hostListenerTarget: boolean;
- method: boolean;
- prop: boolean;
- propMutable: boolean;
- state: boolean;
- watchCallback: boolean;
- member: boolean;
- updatable: boolean;
- propBoolean: boolean;
- propNumber: boolean;
- propString: boolean;
- lifecycle: boolean;
- cmpDidLoad: boolean;
- cmpShouldUpdate: boolean;
- cmpWillLoad: boolean;
- cmpDidUpdate: boolean;
- cmpWillUpdate: boolean;
- cmpWillRender: boolean;
- cmpDidRender: boolean;
- cmpDidUnload: boolean;
- connectedCallback: boolean;
- disconnectedCallback: boolean;
- asyncLoading: boolean;
- observeAttribute: boolean;
- reflect: boolean;
- taskQueue: boolean;
- }
- export interface BuildConditionals extends Partial<BuildFeatures> {
- hotModuleReplacement?: boolean;
- isDebug?: boolean;
- isTesting?: boolean;
- isDev?: boolean;
- devTools?: boolean;
- invisiblePrehydration?: boolean;
- hydrateServerSide?: boolean;
- hydrateClientSide?: boolean;
- lifecycleDOMEvents?: boolean;
- cssAnnotations?: boolean;
- lazyLoad?: boolean;
- profile?: boolean;
- cssVarShim?: boolean;
- constructableCSS?: boolean;
- appendChildSlotFix?: boolean;
- slotChildNodesFix?: boolean;
- scopedSlotTextContentFix?: boolean;
- cloneNodeFix?: boolean;
- dynamicImportShim?: boolean;
- hydratedAttribute?: boolean;
- hydratedClass?: boolean;
- initializeNextTick?: boolean;
- safari10?: boolean;
- scriptDataOpts?: boolean;
- shadowDomShim?: boolean;
- asyncQueue?: boolean;
- transformTagName?: boolean;
- attachStyles?: boolean;
- }
- export declare type ModuleFormat = 'amd' | 'cjs' | 'es' | 'iife' | 'system' | 'umd' | 'commonjs' | 'esm' | 'module' | 'systemjs';
- export interface RollupResultModule {
- id: string;
- }
- export interface RollupResults {
- modules: RollupResultModule[];
- }
- export interface UpdatedLazyBuildCtx {
- name: 'esm-browser' | 'esm' | 'cjs' | 'system';
- buildCtx: BuildCtx;
- }
- export interface BuildCtx {
- buildId: number;
- buildResults: CompilerBuildResults;
- buildStats?: CompilerBuildStats | {
- diagnostics: Diagnostic[];
- };
- buildMessages: string[];
- bundleBuildCount: number;
- collections: Collection[];
- compilerCtx: CompilerCtx;
- esmBrowserComponentBundle: ReadonlyArray<BundleModule>;
- esmComponentBundle: ReadonlyArray<BundleModule>;
- es5ComponentBundle: ReadonlyArray<BundleModule>;
- systemComponentBundle: ReadonlyArray<BundleModule>;
- commonJsComponentBundle: ReadonlyArray<BundleModule>;
- components: ComponentCompilerMeta[];
- componentGraph: Map<string, string[]>;
- config: Config;
- createTimeSpan(msg: string, debug?: boolean): LoggerTimeSpan;
- data: any;
- debug: (msg: string) => void;
- diagnostics: Diagnostic[];
- dirsAdded: string[];
- dirsDeleted: string[];
- entryModules: EntryModule[];
- filesAdded: string[];
- filesChanged: string[];
- filesDeleted: string[];
- filesUpdated: string[];
- filesWritten: string[];
- globalStyle: string | undefined;
- hasConfigChanges: boolean;
- hasError: boolean;
- hasFinished: boolean;
- hasHtmlChanges: boolean;
- hasPrintedResults: boolean;
- hasServiceWorkerChanges: boolean;
- hasScriptChanges: boolean;
- hasStyleChanges: boolean;
- hasWarning: boolean;
- hydrateAppFilePath: string;
- indexBuildCount: number;
- indexDoc: Document;
- isRebuild: boolean;
- moduleFiles: Module[];
- packageJson: PackageJsonData;
- pendingCopyTasks: Promise<CopyResults>[];
- progress(task: BuildTask): void;
- requiresFullBuild: boolean;
- rollupResults?: RollupResults;
- scriptsAdded: string[];
- scriptsDeleted: string[];
- startTime: number;
- styleBuildCount: number;
- stylesPromise: Promise<void>;
- stylesUpdated: BuildStyleUpdate[];
- timeSpan: LoggerTimeSpan;
- timestamp: string;
- transpileBuildCount: number;
- validateTypesBuild?(): Promise<void>;
- validateTypesHandler?: (results: any) => Promise<void>;
- validateTypesPromise?: Promise<any>;
- }
- export interface BuildStyleUpdate {
- styleTag: string;
- styleText: string;
- styleMode: string;
- }
- export declare type BuildTask = any;
- export declare type BuildStatus = 'pending' | 'error' | 'disabled' | 'default';
- export interface CompilerBuildStats {
- timestamp: string;
- compiler: {
- name: string;
- version: string;
- };
- app: {
- namespace: string;
- fsNamespace: string;
- components: number;
- entries: number;
- bundles: number;
- outputs: any;
- };
- options: {
- minifyJs: boolean;
- minifyCss: boolean;
- hashFileNames: boolean;
- hashedFileNameLength: number;
- buildEs5: boolean | 'prod';
- };
- formats: {
- esmBrowser: ReadonlyArray<CompilerBuildStatBundle>;
- esm: ReadonlyArray<CompilerBuildStatBundle>;
- es5: ReadonlyArray<CompilerBuildStatBundle>;
- system: ReadonlyArray<CompilerBuildStatBundle>;
- commonjs: ReadonlyArray<CompilerBuildStatBundle>;
- };
- components: BuildComponent[];
- entries: EntryModule[];
- rollupResults: RollupResults;
- sourceGraph?: BuildSourceGraph;
- componentGraph: BuildResultsComponentGraph;
- collections: {
- name: string;
- source: string;
- tags: string[];
- }[];
- }
- export interface CompilerBuildStatBundle {
- key: string;
- components: string[];
- bundleId: string;
- fileName: string;
- imports: string[];
- originalByteSize: number;
- }
- export interface BuildEntry {
- entryId: string;
- components: BuildComponent[];
- bundles: BuildBundle[];
- inputs: string[];
- modes?: string[];
- encapsulations: Encapsulation[];
- }
- export interface BuildBundle {
- fileName: string;
- outputs: string[];
- size?: number;
- mode?: string;
- scopedStyles?: boolean;
- target?: string;
- }
- export interface BuildSourceGraph {
- [filePath: string]: string[];
- }
- export interface BuildComponent {
- tag: string;
- dependencyOf?: string[];
- dependencies?: string[];
- }
- export interface BundleOutputChunk {
- code: string;
- fileName: string;
- isDynamicEntry: boolean;
- isEntry: boolean;
- map: any;
- dynamicImports: string[];
- imports: string[];
- exports: string[];
- modules: {
- [modulePath: string]: {
- renderedExports: string[];
- removedExports: string[];
- renderedLength: number;
- originalLength: number;
- };
- };
- name: string;
- }
- export declare type SourceTarget = 'es5' | 'es2017' | 'latest';
- export interface BundleEntryInputs {
- [entryKey: string]: string;
- }
- /**
- * A note regarding Rollup types:
- * As of this writing, there is no great way to import external types for packages that are directly embedded in the
- * Stencil source. As a result, some types are duplicated here for Rollup that will be used within the codebase.
- * Updates to rollup may require these typings to be updated.
- */
- export declare type RollupResult = RollupChunkResult | RollupAssetResult;
- export interface RollupAssetResult {
- type: 'asset';
- fileName: string;
- content: string;
- }
- export interface RollupChunkResult {
- type: 'chunk';
- entryKey: string;
- fileName: string;
- code: string;
- isEntry: boolean;
- isComponent: boolean;
- isCore: boolean;
- isIndex: boolean;
- isBrowserLoader: boolean;
- imports: string[];
- moduleFormat: ModuleFormat;
- map?: RollupSourceMap;
- }
- export interface RollupSourceMap {
- file: string;
- mappings: string;
- names: string[];
- sources: string[];
- sourcesContent: string[];
- version: number;
- toString(): string;
- toUrl(): string;
- }
- /**
- * Result of Stencil compressing, mangling, and otherwise 'minifying' JavaScript
- */
- export declare type OptimizeJsResult = {
- output: string;
- diagnostics: Diagnostic[];
- sourceMap?: SourceMap;
- };
- export interface BundleModule {
- entryKey: string;
- rollupResult: RollupChunkResult;
- cmps: ComponentCompilerMeta[];
- output: BundleModuleOutput;
- }
- export interface BundleModuleOutput {
- bundleId: string;
- fileName: string;
- code: string;
- }
- export interface Cache {
- get(key: string): Promise<string>;
- put(key: string, value: string): Promise<boolean>;
- has(key: string): Promise<boolean>;
- createKey(domain: string, ...args: any[]): Promise<string>;
- commit(): Promise<void>;
- clear(): void;
- clearDiskCache(): Promise<void>;
- getMemoryStats(): string;
- initCacheDir(): Promise<void>;
- }
- export interface CollectionCompilerMeta {
- collectionName?: string;
- moduleId?: string;
- moduleDir?: string;
- moduleFiles?: Module[];
- global?: Module;
- compiler?: CollectionCompilerVersion;
- isInitialized?: boolean;
- hasExports?: boolean;
- dependencies?: string[];
- bundles?: {
- components: string[];
- }[];
- }
- export interface CollectionCompilerVersion {
- name: string;
- version: string;
- typescriptVersion?: string;
- }
- export interface CollectionManifest {
- entries?: CollectionComponentEntryPath[];
- collections?: CollectionDependencyManifest[];
- global?: string;
- compiler?: CollectionCompilerVersion;
- bundles?: CollectionBundleManifest[];
- }
- export declare type CollectionComponentEntryPath = string;
- export interface CollectionBundleManifest {
- components: string[];
- }
- export interface CollectionDependencyManifest {
- name: string;
- tags: string[];
- }
- /** OLD WAY */
- export interface Collection {
- collectionName?: string;
- moduleDir?: string;
- moduleFiles?: any[];
- global?: any;
- compiler?: CollectionCompiler;
- isInitialized?: boolean;
- hasExports?: boolean;
- dependencies?: string[];
- bundles?: {
- components: string[];
- }[];
- }
- export interface CollectionCompiler {
- name: string;
- version: string;
- typescriptVersion?: string;
- }
- export interface AppRegistry {
- namespace?: string;
- fsNamespace?: string;
- loader?: string;
- core?: string;
- corePolyfilled?: string;
- global?: string;
- components?: AppRegistryComponents;
- }
- export interface AppRegistryComponents {
- [tagName: string]: {
- bundleIds: ModeBundleIds;
- encapsulation?: 'shadow' | 'scoped';
- };
- }
- /** OLD WAY */
- export interface ModuleFile {
- sourceFilePath: string;
- jsFilePath?: string;
- dtsFilePath?: string;
- cmpMeta?: any;
- isCollectionDependency?: boolean;
- excludeFromCollection?: boolean;
- originalCollectionComponentPath?: string;
- externalImports?: string[];
- localImports?: string[];
- potentialCmpRefs?: string[];
- hasSlot?: boolean;
- hasSvg?: boolean;
- }
- export interface ModuleBundles {
- [bundleId: string]: string;
- }
- export interface CollectionData {
- components?: ComponentData[];
- collections?: CollectionDependencyData[];
- global?: string;
- modules?: string[];
- compiler?: {
- name: string;
- version: string;
- typescriptVersion?: string;
- };
- bundles?: CollectionBundle[];
- }
- export interface CollectionBundle {
- components: string[];
- }
- export interface CollectionDependencyData {
- name: string;
- tags: string[];
- }
- export interface ComponentData {
- tag?: string;
- componentPath?: string;
- componentClass?: string;
- dependencies?: string[];
- styles?: StylesData;
- props?: PropData[];
- states?: StateData[];
- listeners?: ListenerData[];
- methods?: MethodData[];
- events?: EventData[];
- connect?: ConnectData[];
- context?: ContextData[];
- hostElement?: HostElementData;
- host?: any;
- assetPaths?: string[];
- slot?: 'hasSlots' | 'hasNamedSlots';
- shadow?: boolean;
- scoped?: boolean;
- priority?: 'low';
- }
- export interface StylesData {
- [modeName: string]: StyleData;
- }
- export interface StyleData {
- stylePaths?: string[];
- style?: string;
- }
- export interface PropData {
- name?: string;
- type?: 'Boolean' | 'Number' | 'String' | 'Any';
- mutable?: boolean;
- attr?: string;
- reflectToAttr?: boolean;
- watch?: string[];
- }
- export interface StateData {
- name: string;
- }
- export interface ListenerData {
- event: string;
- method: string;
- capture?: boolean;
- passive?: boolean;
- enabled?: boolean;
- }
- export interface MethodData {
- name: string;
- }
- export interface EventData {
- event: string;
- method?: string;
- bubbles?: boolean;
- cancelable?: boolean;
- composed?: boolean;
- }
- export interface ConnectData {
- name: string;
- tag?: string;
- }
- export interface ContextData {
- name: string;
- id?: string;
- }
- export interface HostElementData {
- name: string;
- }
- export interface BuildOutputFile {
- name: string;
- content: string;
- }
- export declare type OnCallback = (buildStart: CompilerBuildStart) => void;
- export declare type RemoveCallback = () => boolean;
- export interface CompilerCtx {
- version: number;
- activeBuildId: number;
- activeDirsAdded: string[];
- activeDirsDeleted: string[];
- activeFilesAdded: string[];
- activeFilesDeleted: string[];
- activeFilesUpdated: string[];
- addWatchDir: (path: string, recursive: boolean) => void;
- addWatchFile: (path: string) => void;
- cache: Cache;
- cssModuleImports: Map<string, string[]>;
- cachedGlobalStyle: string;
- collections: CollectionCompilerMeta[];
- compilerOptions: any;
- events: BuildEvents;
- fs: InMemoryFileSystem;
- hasSuccessfulBuild: boolean;
- isActivelyBuilding: boolean;
- lastBuildResults: CompilerBuildResults;
- moduleMap: ModuleMap;
- nodeMap: NodeMap;
- resolvedCollections: Set<string>;
- rollupCacheHydrate: any;
- rollupCacheLazy: any;
- rollupCacheNative: any;
- styleModeNames: Set<string>;
- changedModules: Set<string>;
- changedFiles: Set<string>;
- worker?: CompilerWorkerContext;
- rollupCache: Map<string, any>;
- reset(): void;
- }
- export declare type NodeMap = WeakMap<any, ComponentCompilerMeta>;
- /** Must be serializable to JSON!! */
- export interface ComponentCompilerFeatures {
- hasAttribute: boolean;
- hasAttributeChangedCallbackFn: boolean;
- hasComponentWillLoadFn: boolean;
- hasComponentDidLoadFn: boolean;
- hasComponentShouldUpdateFn: boolean;
- hasComponentWillUpdateFn: boolean;
- hasComponentDidUpdateFn: boolean;
- hasComponentWillRenderFn: boolean;
- hasComponentDidRenderFn: boolean;
- hasComponentDidUnloadFn: boolean;
- hasConnectedCallbackFn: boolean;
- hasDisconnectedCallbackFn: boolean;
- hasElement: boolean;
- hasEvent: boolean;
- hasLifecycle: boolean;
- hasListener: boolean;
- hasListenerTarget: boolean;
- hasListenerTargetWindow: boolean;
- hasListenerTargetDocument: boolean;
- hasListenerTargetBody: boolean;
- /**
- * @deprecated Prevented from new apps, but left in for older collections
- */
- hasListenerTargetParent: boolean;
- hasMember: boolean;
- hasMethod: boolean;
- hasMode: boolean;
- hasProp: boolean;
- hasPropBoolean: boolean;
- hasPropNumber: boolean;
- hasPropString: boolean;
- hasPropMutable: boolean;
- hasReflect: boolean;
- hasRenderFn: boolean;
- hasState: boolean;
- hasStyle: boolean;
- hasVdomAttribute: boolean;
- hasVdomClass: boolean;
- hasVdomFunctional: boolean;
- hasVdomKey: boolean;
- hasVdomListener: boolean;
- hasVdomPropOrAttr: boolean;
- hasVdomRef: boolean;
- hasVdomRender: boolean;
- hasVdomStyle: boolean;
- hasVdomText: boolean;
- hasVdomXlink: boolean;
- hasWatchCallback: boolean;
- htmlAttrNames: string[];
- htmlTagNames: string[];
- htmlParts: string[];
- isUpdateable: boolean;
- isPlain: boolean;
- potentialCmpRefs: string[];
- }
- /** Must be serializable to JSON!! */
- export interface ComponentCompilerMeta extends ComponentCompilerFeatures {
- assetsDirs: CompilerAssetDir[];
- componentClassName: string;
- elementRef: string;
- encapsulation: Encapsulation;
- shadowDelegatesFocus: boolean;
- excludeFromCollection: boolean;
- isCollectionDependency: boolean;
- docs: CompilerJsDoc;
- jsFilePath: string;
- sourceMapPath: string;
- listeners: ComponentCompilerListener[];
- events: ComponentCompilerEvent[];
- methods: ComponentCompilerMethod[];
- virtualProperties: ComponentCompilerVirtualProperty[];
- properties: ComponentCompilerProperty[];
- watchers: ComponentCompilerWatch[];
- sourceFilePath: string;
- states: ComponentCompilerState[];
- styleDocs: CompilerStyleDoc[];
- styles: StyleCompiler[];
- tagName: string;
- internal: boolean;
- legacyConnect: ComponentCompilerLegacyConnect[];
- legacyContext: ComponentCompilerLegacyContext[];
- dependencies?: string[];
- dependents?: string[];
- directDependencies?: string[];
- directDependents?: string[];
- }
- export interface ComponentCompilerLegacyConnect {
- name: string;
- connect: string;
- }
- export interface ComponentCompilerLegacyContext {
- name: string;
- context: string;
- }
- export declare type Encapsulation = 'shadow' | 'scoped' | 'none';
- export interface ComponentCompilerStaticProperty {
- mutable: boolean;
- optional: boolean;
- required: boolean;
- type: ComponentCompilerPropertyType;
- complexType: ComponentCompilerPropertyComplexType;
- attribute?: string;
- reflect?: boolean;
- docs: CompilerJsDoc;
- defaultValue?: string;
- }
- export interface ComponentCompilerProperty extends ComponentCompilerStaticProperty {
- name: string;
- internal: boolean;
- }
- export interface ComponentCompilerVirtualProperty {
- name: string;
- type: string;
- docs: string;
- }
- export declare type ComponentCompilerPropertyType = 'any' | 'string' | 'boolean' | 'number' | 'unknown';
- export interface ComponentCompilerPropertyComplexType {
- original: string;
- resolved: string;
- references: ComponentCompilerTypeReferences;
- }
- export interface ComponentCompilerTypeReferences {
- [key: string]: ComponentCompilerTypeReference;
- }
- export interface ComponentCompilerTypeReference {
- location: 'local' | 'global' | 'import';
- path?: string;
- }
- export interface ComponentCompilerStaticEvent {
- name: string;
- method: string;
- bubbles: boolean;
- cancelable: boolean;
- composed: boolean;
- docs: CompilerJsDoc;
- complexType: ComponentCompilerEventComplexType;
- }
- export interface ComponentCompilerEvent extends ComponentCompilerStaticEvent {
- internal: boolean;
- }
- export interface ComponentCompilerEventComplexType {
- original: string;
- resolved: string;
- references: ComponentCompilerTypeReferences;
- }
- export interface ComponentCompilerListener {
- name: string;
- method: string;
- capture: boolean;
- passive: boolean;
- target: ListenTargetOptions | undefined;
- }
- export interface ComponentCompilerStaticMethod {
- docs: CompilerJsDoc;
- complexType: ComponentCompilerMethodComplexType;
- }
- export interface ComponentCompilerMethodComplexType {
- signature: string;
- parameters: CompilerJsDoc[];
- references: ComponentCompilerTypeReferences;
- return: string;
- }
- export interface ComponentCompilerWatch {
- propName: string;
- methodName: string;
- }
- export interface ComponentCompilerMethod extends ComponentCompilerStaticMethod {
- name: string;
- internal: boolean;
- }
- export interface ComponentCompilerState {
- name: string;
- }
- export interface CompilerJsDoc {
- text: string;
- tags: CompilerJsDocTagInfo[];
- }
- export interface CompilerJsDocTagInfo {
- name: string;
- text?: string;
- }
- export interface CompilerStyleDoc {
- name: string;
- docs: string;
- annotation: 'prop';
- }
- export interface CompilerAssetDir {
- absolutePath?: string;
- cmpRelativePath?: string;
- originalComponentPath?: string;
- }
- export interface ComponentCompilerData {
- exportLine: string;
- filePath: string;
- cmp: ComponentCompilerMeta;
- uniqueComponentClassName?: string;
- importLine?: string;
- }
- export interface ComponentConstructor {
- is?: string;
- properties?: ComponentConstructorProperties;
- watchers?: ComponentConstructorWatchers;
- events?: ComponentConstructorEvent[];
- listeners?: ComponentConstructorListener[];
- style?: string;
- styleId?: string;
- encapsulation?: ComponentConstructorEncapsulation;
- observedAttributes?: string[];
- cmpMeta?: ComponentRuntimeMeta;
- isProxied?: boolean;
- isStyleRegistered?: boolean;
- }
- export interface ComponentConstructorWatchers {
- [propName: string]: string[];
- }
- export interface ComponentTestingConstructor extends ComponentConstructor {
- COMPILER_META: ComponentCompilerMeta;
- prototype?: {
- componentWillLoad?: Function;
- componentWillUpdate?: Function;
- componentWillRender?: Function;
- __componentWillLoad?: Function;
- __componentWillUpdate?: Function;
- __componentWillRender?: Function;
- };
- }
- export interface ComponentNativeConstructor extends ComponentConstructor {
- cmpMeta: ComponentRuntimeMeta;
- }
- export declare type ComponentConstructorEncapsulation = 'shadow' | 'scoped' | 'none';
- export interface ComponentConstructorProperties {
- [propName: string]: ComponentConstructorProperty;
- }
- export interface ComponentConstructorProperty {
- attribute?: string;
- elementRef?: boolean;
- method?: boolean;
- mutable?: boolean;
- reflect?: boolean;
- state?: boolean;
- type?: ComponentConstructorPropertyType;
- watchCallbacks?: string[];
- }
- export declare type ComponentConstructorPropertyType = StringConstructor | BooleanConstructor | NumberConstructor | 'string' | 'boolean' | 'number';
- export interface ComponentConstructorEvent {
- name: string;
- method: string;
- bubbles: boolean;
- cancelable: boolean;
- composed: boolean;
- }
- export interface ComponentConstructorListener {
- name: string;
- method: string;
- capture?: boolean;
- passive?: boolean;
- }
- export interface HostConfig {
- hosting?: {
- rules?: HostRule[];
- };
- }
- export interface HostRule {
- include: string;
- headers: HostRuleHeader[];
- }
- export interface HostRuleHeader {
- name?: string;
- value?: string;
- }
- export interface CssVarShim {
- i(): Promise<any>;
- addLink(linkEl: HTMLLinkElement): Promise<any>;
- addGlobalStyle(styleEl: HTMLStyleElement): void;
- createHostStyle(hostEl: HTMLElement, templateName: string, cssText: string, isScoped: boolean): HTMLStyleElement;
- removeHost(hostEl: HTMLElement): void;
- updateHost(hostEl: HTMLElement): void;
- updateGlobal(): void;
- }
- export interface DevClientWindow extends Window {
- ['s-dev-server']: boolean;
- ['s-initial-load']: boolean;
- ['s-build-id']: number;
- WebSocket: new (socketUrl: string, protos: string[]) => WebSocket;
- devServerConfig?: DevClientConfig;
- }
- export interface DevClientConfig {
- basePath: string;
- editors: DevServerEditor[];
- reloadStrategy: PageReloadStrategy;
- socketUrl?: string;
- }
- export interface HttpRequest {
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS';
- acceptHeader: string;
- url: URL;
- searchParams: URLSearchParams;
- pathname?: string;
- filePath?: string;
- stats?: CompilerFsStats;
- headers?: {
- [name: string]: string;
- };
- host?: string;
- }
- export interface DevServerMessage {
- startServer?: DevServerConfig;
- closeServer?: boolean;
- serverStarted?: DevServerConfig;
- serverClosed?: boolean;
- buildStart?: boolean;
- buildLog?: BuildLog;
- buildResults?: CompilerBuildResults;
- requestBuildResults?: boolean;
- error?: {
- message?: string;
- type?: string;
- stack?: any;
- };
- isActivelyBuilding?: boolean;
- compilerRequestPath?: string;
- compilerRequestResults?: CompilerRequestResponse;
- requestLog?: {
- method: string;
- url: string;
- status: number;
- };
- }
- export declare type DevServerSendMessage = (msg: DevServerMessage) => void;
- export interface DevServerContext {
- connectorHtml: string;
- dirTemplate: string;
- getBuildResults: () => Promise<CompilerBuildResults>;
- getCompilerRequest: (path: string) => Promise<CompilerRequestResponse>;
- isServerListening: boolean;
- logRequest: (req: {
- method: string;
- pathname?: string;
- }, status: number) => void;
- prerenderConfig: PrerenderConfig;
- serve302: (req: any, res: any, pathname?: string) => void;
- serve404: (req: any, res: any, xSource: string, content?: string) => void;
- serve500: (req: any, res: any, error: any, xSource: string) => void;
- sys: CompilerSystem;
- }
- export declare type InitServerProcess = (sendMsg: (msg: DevServerMessage) => void) => (msg: DevServerMessage) => void;
- export interface DevResponseHeaders {
- 'cache-control'?: string;
- expires?: string;
- 'content-type'?: string;
- 'content-length'?: number;
- date?: string;
- 'access-control-allow-origin'?: string;
- 'access-control-expose-headers'?: string;
- 'content-encoding'?: 'gzip';
- vary?: 'Accept-Encoding';
- server?: string;
- 'x-directory-index'?: string;
- 'x-source'?: string;
- }
- export interface OpenInEditorData {
- file?: string;
- line?: number;
- column?: number;
- open?: string;
- editor?: string;
- exists?: boolean;
- error?: string;
- }
- export interface EntryModule {
- entryKey: string;
- cmps: ComponentCompilerMeta[];
- }
- export interface EntryBundle {
- fileName: string;
- text: string;
- outputs: string[];
- modeName: string;
- isScopedStyles: boolean;
- sourceTarget: string;
- }
- export interface EntryComponent {
- tag: string;
- dependencyOf?: string[];
- }
- export interface ComponentRef {
- tag: string;
- filePath: string;
- }
- export interface ModuleGraph {
- filePath: string;
- importPaths: string[];
- }
- export interface AddEventListener {
- (elm: Element | Document | Window, eventName: string, cb: EventListenerCallback, opts?: ListenOptions): Function;
- }
- export interface EventListenerCallback {
- (ev?: any): void;
- }
- export interface EventEmitterData<T = any> {
- detail?: T;
- bubbles?: boolean;
- cancelable?: boolean;
- composed?: boolean;
- }
- export interface FsReadOptions {
- useCache?: boolean;
- setHash?: boolean;
- }
- export interface FsReaddirOptions {
- inMemoryOnly?: boolean;
- recursive?: boolean;
- /**
- * Directory names to exclude. Just the basename,
- * not the entire path. Basically for "node_moduels".
- */
- excludeDirNames?: string[];
- /**
- * Extensions we know we can avoid. Each extension
- * should include the `.` so that we can test for both
- * `.d.ts.` and `.ts`. If `excludeExtensions` isn't provided it
- * doesn't try to exclude anything. This only checks against
- * the filename, not directory names when recursive.
- */
- excludeExtensions?: string[];
- }
- export interface FsReaddirItem {
- absPath: string;
- relPath: string;
- isDirectory: boolean;
- isFile: boolean;
- }
- export interface FsWriteResults {
- changedContent: boolean;
- queuedWrite: boolean;
- ignored: boolean;
- }
- export declare type FsItems = Map<string, FsItem>;
- export interface FsItem {
- fileText: string;
- isFile: boolean;
- isDirectory: boolean;
- size: number;
- mtimeMs: number;
- exists: boolean;
- queueCopyFileToDest: string;
- queueWriteToDisk: boolean;
- queueDeleteFromDisk?: boolean;
- useCache: boolean;
- }
- export interface HostElement extends HTMLElement {
- connectedCallback?: () => void;
- attributeChangedCallback?: (attribName: string, oldVal: string, newVal: string, namespace: string) => void;
- disconnectedCallback?: () => void;
- host?: Element;
- forceUpdate?: () => void;
- /**
- * Unique stencil id for this element
- */
- ['s-id']?: string;
- /**
- * Content Reference:
- * Reference to the HTML Comment that's placed inside of the
- * host element's original content. This comment is used to
- * always represent where host element's light dom is.
- */
- ['s-cr']?: RenderNode;
- /**
- * Lifecycle ready
- */
- ['s-lr']?: boolean;
- /**
- * On Render Callbacks:
- * Array of callbacks to fire off after it has rendered.
- */
- ['s-rc']?: (() => void)[];
- /**
- * Scope Id
- * The scope id of this component when using scoped css encapsulation
- * or using shadow dom but the browser doesn't support it
- */
- ['s-sc']?: string;
- /**
- * Hot Module Replacement, dev mode only
- */
- ['s-hmr']?: (versionId: string) => void;
- /**
- * Callback method for when HMR finishes
- */
- ['s-hmr-load']?: () => void;
- ['s-p']?: Promise<void>[];
- componentOnReady?: () => Promise<this>;
- }
- export interface InMemoryFileSystem {
- sys?: CompilerSystem;
- accessData(filePath: string): Promise<{
- exists: boolean;
- isDirectory: boolean;
- isFile: boolean;
- }>;
- access(filePath: string): Promise<boolean>;
- /**
- * Synchronous!!! Do not use!!!
- * (Only typescript transpiling is allowed to use)
- * @param filePath
- */
- accessSync(filePath: string): boolean;
- copyFile(srcFile: string, dest: string): Promise<void>;
- emptyDirs(dirPaths: string[]): Promise<void>;
- readdir(dirPath: string, opts?: FsReaddirOptions): Promise<FsReaddirItem[]>;
- readFile(filePath: string, opts?: FsReadOptions): Promise<string>;
- /**
- * Synchronous!!! Do not use!!!
- * (Only typescript transpiling is allowed to use)
- * @param filePath
- */
- readFileSync(filePath: string, opts?: FsReadOptions): string;
- remove(itemPath: string): Promise<void>;
- stat(itemPath: string): Promise<{
- isFile: boolean;
- isDirectory: boolean;
- }>;
- /**
- * Synchronous!!! Do not use!!!
- * (Only typescript transpiling is allowed to use)
- * @param itemPath
- */
- statSync(itemPath: string): {
- exists: boolean;
- isFile: boolean;
- isDirectory: boolean;
- };
- writeFile(filePath: string, content: string, opts?: FsWriteOptions): Promise<FsWriteResults>;
- writeFiles(files: {
- [filePath: string]: string;
- } | Map<string, String>, opts?: FsWriteOptions): Promise<FsWriteResults[]>;
- commit(): Promise<{
- filesWritten: string[];
- filesDeleted: string[];
- filesCopied: string[][];
- dirsDeleted: string[];
- dirsAdded: string[];
- }>;
- cancelDeleteFilesFromDisk(filePaths: string[]): void;
- cancelDeleteDirectoriesFromDisk(filePaths: string[]): void;
- clearDirCache(dirPath: string): void;
- clearFileCache(filePath: string): void;
- getItem(itemPath: string): FsItem;
- getBuildOutputs(): BuildOutput[];
- clearCache(): void;
- keys(): string[];
- getMemoryStats(): string;
- }
- export interface HydrateResults {
- buildId: string;
- diagnostics: Diagnostic[];
- url: string;
- host: string;
- hostname: string;
- href: string;
- port: string;
- pathname: string;
- search: string;
- hash: string;
- html: string;
- components: HydrateComponent[];
- anchors: HydrateAnchorElement[];
- imgs: HydrateImgElement[];
- scripts: HydrateScriptElement[];
- styles: HydrateStyleElement[];
- staticData: HydrateStaticData[];
- title: string;
- hydratedCount: number;
- httpStatus: number;
- }
- export interface HydrateComponent {
- tag: string;
- mode: string;
- count: number;
- depth: number;
- }
- export interface HydrateElement {
- [attrName: string]: string | undefined;
- }
- export interface HydrateAnchorElement extends HydrateElement {
- href?: string;
- target?: string;
- }
- export interface HydrateImgElement extends HydrateElement {
- src?: string;
- }
- export interface HydrateScriptElement extends HydrateElement {
- src?: string;
- type?: string;
- }
- export interface HydrateStyleElement extends HydrateElement {
- href?: string;
- }
- export interface HydrateStaticData {
- id: string;
- type: string;
- content: string;
- }
- export interface JsDoc {
- name: string;
- documentation: string;
- type: string;
- tags: JSDocTagInfo[];
- default?: string;
- parameters?: JsDoc[];
- returns?: {
- type: string;
- documentation: string;
- };
- }
- export interface JSDocTagInfo {
- name: string;
- text?: string;
- }
- export interface MinifyJsResult {
- code: string;
- sourceMap: any;
- error: {
- message: string;
- filename: string;
- line: number;
- col: number;
- pos: number;
- };
- }
- export declare type ModuleMap = Map<string, Module>;
- /**
- * Module gets serialized/parsed as JSON
- * cannot use Map or Set
- */
- export interface Module {
- cmps: ComponentCompilerMeta[];
- coreRuntimeApis: string[];
- collectionName: string;
- dtsFilePath: string;
- excludeFromCollection: boolean;
- externalImports: string[];
- htmlAttrNames: string[];
- htmlTagNames: string[];
- htmlParts: string[];
- isCollectionDependency: boolean;
- isLegacy: boolean;
- jsFilePath: string;
- localImports: string[];
- originalImports: string[];
- originalCollectionComponentPath: string;
- potentialCmpRefs: string[];
- sourceFilePath: string;
- staticSourceFile: any;
- staticSourceFileText: string;
- sourceMapPath: string;
- sourceMapFileText: string;
- hasVdomAttribute: boolean;
- hasVdomClass: boolean;
- hasVdomFunctional: boolean;
- hasVdomKey: boolean;
- hasVdomListener: boolean;
- hasVdomPropOrAttr: boolean;
- hasVdomRef: boolean;
- hasVdomRender: boolean;
- hasVdomStyle: boolean;
- hasVdomText: boolean;
- hasVdomXlink: boolean;
- }
- export interface Plugin {
- name?: string;
- pluginType?: string;
- load?: (id: string, context: PluginCtx) => Promise<string> | string;
- resolveId?: (importee: string, importer: string, context: PluginCtx) => Promise<string> | string;
- transform?: (sourceText: string, id: string, context: PluginCtx) => Promise<PluginTransformResults> | PluginTransformResults | string;
- }
- export interface PluginTransformResults {
- code?: string;
- map?: string;
- id?: string;
- diagnostics?: Diagnostic[];
- dependencies?: string[];
- }
- export interface PluginCtx {
- config: Config;
- sys: CompilerSystem;
- fs: InMemoryFileSystem;
- cache: Cache;
- diagnostics: Diagnostic[];
- }
- export interface PrerenderUrlResults {
- anchorUrls: string[];
- diagnostics: Diagnostic[];
- filePath: string;
- }
- export interface PrerenderUrlRequest {
- appDir: string;
- buildId: string;
- baseUrl: string;
- componentGraphPath: string;
- devServerHostUrl: string;
- hydrateAppFilePath: string;
- isDebug: boolean;
- prerenderConfigPath: string;
- staticSite: boolean;
- templateId: string;
- url: string;
- writeToFilePath: string;
- }
- export interface PrerenderManager {
- config: Config;
- prerenderUrlWorker: (prerenderRequest: PrerenderUrlRequest) => Promise<PrerenderUrlResults>;
- devServerHostUrl: string;
- diagnostics: Diagnostic[];
- hydrateAppFilePath: string;
- isDebug: boolean;
- logCount: number;
- outputTarget: OutputTargetWww;
- prerenderConfig: PrerenderConfig;
- prerenderConfigPath: string;
- progressLogger?: LoggerLineUpdater;
- resolve: Function;
- staticSite: boolean;
- templateId: string;
- componentGraphPath: string;
- urlsProcessing: Set<string>;
- urlsPending: Set<string>;
- urlsCompleted: Set<string>;
- maxConcurrency: number;
- }
- /**
- * Generic node that represents all of the
- * different types of nodes we'd see when rendering
- */
- export interface RenderNode extends HostElement {
- /**
- * Shadow root's host
- */
- host?: Element;
- /**
- * Is Content Reference Node:
- * This node is a content reference node.
- */
- ['s-cn']?: boolean;
- /**
- * Is a slot reference node:
- * This is a node that represents where a slot
- * was originally located.
- */
- ['s-sr']?: boolean;
- /**
- * Slot name
- */
- ['s-sn']?: string;
- /**
- * Host element tag name:
- * The tag name of the host element that this
- * node was created in.
- */
- ['s-hn']?: string;
- /**
- * Original Location Reference:
- * A reference pointing to the comment
- * which represents the original location
- * before it was moved to its slot.
- */
- ['s-ol']?: RenderNode;
- /**
- * Node reference:
- * This is a reference for a original location node
- * back to the node that's been moved around.
- */
- ['s-nr']?: RenderNode;
- /**
- * Scope Id
- */
- ['s-si']?: string;
- /**
- * Host Id (hydrate only)
- */
- ['s-host-id']?: number;
- /**
- * Node Id (hydrate only)
- */
- ['s-node-id']?: number;
- /**
- * Used to know the components encapsulation.
- * empty "" for shadow, "c" from scoped
- */
- ['s-en']?: '' | /*shadow*/ 'c';
- }
- export declare type LazyBundlesRuntimeData = LazyBundleRuntimeData[];
- export declare type LazyBundleRuntimeData = [
- /** bundleIds */
- string,
- ComponentRuntimeMetaCompact[]
- ];
- export declare type ComponentRuntimeMetaCompact = [
- /** flags */
- number,
- /** tagname */
- string,
- /** members */
- {
- [memberName: string]: ComponentRuntimeMember;
- }?,
- /** listeners */
- ComponentRuntimeHostListener[]?
- ];
- export interface ComponentRuntimeMeta {
- $flags$: number;
- $tagName$: string;
- $members$?: ComponentRuntimeMembers;
- $listeners$?: ComponentRuntimeHostListener[];
- $attrsToReflect$?: [string, string][];
- $watchers$?: ComponentConstructorWatchers;
- $lazyBundleId$?: string;
- }
- export interface ComponentRuntimeMembers {
- [memberName: string]: ComponentRuntimeMember;
- }
- export declare type ComponentRuntimeMember = [
- /**
- * flags data
- */
- number,
- /**
- * attribute name to observe
- */
- string?
- ];
- export declare type ComponentRuntimeHostListener = [
- /**
- * event flags
- */
- number,
- /**
- * event name,
- */
- string,
- /**
- * event method,
- */
- string
- ];
- export declare type ModeBundleId = ModeBundleIds | string;
- export interface ModeBundleIds {
- [modeName: string]: string;
- }
- export declare type RuntimeRef = HostElement | {};
- /**
- * Interface used to track an Element, it's virtual Node (`VNode`), and other data
- */
- export interface HostRef {
- $ancestorComponent$?: HostElement;
- $flags$: number;
- $cmpMeta$: ComponentRuntimeMeta;
- $hostElement$?: HostElement;
- $instanceValues$?: Map<string, any>;
- $lazyInstance$?: ComponentInterface;
- $onReadyPromise$?: Promise<any>;
- $onReadyResolve$?: (elm: any) => void;
- $onInstancePromise$?: Promise<any>;
- $onInstanceResolve$?: (elm: any) => void;
- $onRenderResolve$?: () => void;
- $vnode$?: VNode;
- $queuedListeners$?: [string, any][];
- $rmListeners$?: (() => void)[];
- $modeName$?: string;
- $renderCount$?: number;
- }
- export interface PlatformRuntime {
- $cssShim$?: CssVarShim;
- $flags$: number;
- $orgLocNodes$?: Map<string, RenderNode>;
- $resourcesUrl$: string;
- jmp: (c: Function) => any;
- raf: (c: FrameRequestCallback) => number;
- ael: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
- rel: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
- ce: (eventName: string, opts?: any) => CustomEvent;
- }
- export declare type RefMap = WeakMap<any, HostRef>;
- export declare type StyleMap = Map<string, CSSStyleSheet | string>;
- export declare type RootAppliedStyleMap = WeakMap<Element, Set<string>>;
- export declare type AppliedStyleMap = Set<string>;
- export declare type ActivelyProcessingCmpMap = Set<Element>;
- export interface ScreenshotConnector {
- initBuild(opts: ScreenshotConnectorOptions): Promise<void>;
- completeBuild(masterBuild: ScreenshotBuild): Promise<ScreenshotBuildResults>;
- getMasterBuild(): Promise<ScreenshotBuild>;
- pullMasterBuild(): Promise<void>;
- publishBuild(buildResults: ScreenshotBuildResults): Promise<ScreenshotBuildResults>;
- getScreenshotCache(): Promise<ScreenshotCache>;
- updateScreenshotCache(screenshotCache: ScreenshotCache, buildResults: ScreenshotBuildResults): Promise<ScreenshotCache>;
- generateJsonpDataUris(build: ScreenshotBuild): Promise<void>;
- sortScreenshots(screenshots: Screenshot[]): Screenshot[];
- toJson(masterBuild: ScreenshotBuild, screenshotCache: ScreenshotCache): string;
- }
- export interface ScreenshotBuildResults {
- appNamespace: string;
- masterBuild: ScreenshotBuild;
- currentBuild: ScreenshotBuild;
- compare: ScreenshotCompareResults;
- }
- export interface ScreenshotCompareResults {
- id: string;
- a: {
- id: string;
- message: string;
- author: string;
- url: string;
- previewUrl: string;
- };
- b: {
- id: string;
- message: string;
- author: string;
- url: string;
- previewUrl: string;
- };
- timestamp: number;
- url: string;
- appNamespace: string;
- diffs: ScreenshotDiff[];
- }
- export interface ScreenshotConnectorOptions {
- buildId: string;
- buildMessage: string;
- buildAuthor?: string;
- buildUrl?: string;
- previewUrl?: string;
- appNamespace: string;
- buildTimestamp: number;
- logger: Logger;
- rootDir: string;
- cacheDir: string;
- packageDir: string;
- screenshotDirName?: string;
- imagesDirName?: string;
- buildsDirName?: string;
- currentBuildDir?: string;
- updateMaster?: boolean;
- allowableMismatchedPixels?: number;
- allowableMismatchedRatio?: number;
- pixelmatchThreshold?: number;
- waitBeforeScreenshot?: number;
- pixelmatchModulePath?: string;
- }
- export interface ScreenshotBuildData {
- buildId: string;
- rootDir: string;
- screenshotDir: string;
- imagesDir: string;
- buildsDir: string;
- currentBuildDir: string;
- updateMaster: boolean;
- allowableMismatchedPixels: number;
- allowableMismatchedRatio: number;
- pixelmatchThreshold: number;
- masterScreenshots: {
- [screenshotId: string]: string;
- };
- cache: {
- [cacheKey: string]: number;
- };
- timeoutBeforeScreenshot: number;
- pixelmatchModulePath: string;
- }
- export interface PixelMatchInput {
- imageAPath: string;
- imageBPath: string;
- width: number;
- height: number;
- pixelmatchThreshold: number;
- }
- export interface ScreenshotBuild {
- id: string;
- message: string;
- author?: string;
- url?: string;
- previewUrl?: string;
- appNamespace: string;
- timestamp: number;
- screenshots: Screenshot[];
- }
- export interface ScreenshotCache {
- timestamp?: number;
- lastBuildId?: string;
- size?: number;
- items?: {
- /**
- * Cache key
- */
- key: string;
- /**
- * Timestamp used to remove the oldest data
- */
- ts: number;
- /**
- * Mismatched pixels
- */
- mp: number;
- }[];
- }
- export interface Screenshot {
- id: string;
- desc?: string;
- image: string;
- device?: string;
- userAgent?: string;
- width?: number;
- height?: number;
- deviceScaleFactor?: number;
- hasTouch?: boolean;
- isLandscape?: boolean;
- isMobile?: boolean;
- testPath?: string;
- diff?: ScreenshotDiff;
- }
- export interface ScreenshotDiff {
- mismatchedPixels: number;
- id?: string;
- desc?: string;
- imageA?: string;
- imageB?: string;
- device?: string;
- userAgent?: string;
- width?: number;
- height?: number;
- deviceScaleFactor?: number;
- hasTouch?: boolean;
- isLandscape?: boolean;
- isMobile?: boolean;
- allowableMismatchedPixels: number;
- allowableMismatchedRatio: number;
- testPath?: string;
- cacheKey?: string;
- }
- export interface ScreenshotOptions {
- /**
- * When true, takes a screenshot of the full scrollable page.
- * Default: `false`
- */
- fullPage?: boolean;
- /**
- * An object which specifies clipping region of the page.
- */
- clip?: ScreenshotBoundingBox;
- /**
- * Hides default white background and allows capturing screenshots with transparency.
- * Default: `false`
- */
- omitBackground?: boolean;
- /**
- * Matching threshold, ranges from `0` to 1. Smaller values make the comparison
- * more sensitive. Defaults to the testing config `pixelmatchThreshold` value;
- */
- pixelmatchThreshold?: number;
- }
- export interface ScreenshotBoundingBox {
- /**
- * The x-coordinate of top-left corner.
- */
- x: number;
- /**
- * The y-coordinate of top-left corner.
- */
- y: number;
- /**
- * The width in pixels.
- */
- width: number;
- /**
- * The height in pixels.
- */
- height: number;
- }
- export interface ServerConfigInput {
- app: ExpressApp;
- configPath?: string;
- }
- export interface ServerConfigOutput {
- config: Config;
- logger: Logger;
- wwwDir: string;
- destroy?: () => void;
- }
- export interface ExpressApp {
- use?: Function;
- }
- export interface MiddlewareConfig {
- config: string | Config;
- destroy?: () => void;
- }
- export interface StyleCompiler {
- modeName: string;
- styleId: string;
- styleStr: string;
- styleIdentifier: string;
- externalStyles: ExternalStyleCompiler[];
- }
- export interface ExternalStyleCompiler {
- absolutePath: string;
- relativePath: string;
- originalComponentPath: string;
- }
- export interface CompilerModeStyles {
- [modeName: string]: string[];
- }
- export interface CssImportData {
- srcImport: string;
- updatedImport?: string;
- url: string;
- filePath?: string;
- altFilePath?: string;
- styleText?: string;
- }
- export interface CssToEsmImportData {
- srcImportText: string;
- varName: string;
- url: string;
- filePath: string;
- }
- export interface TransformCssToEsmInput {
- input: string;
- module?: 'cjs' | 'esm' | string;
- file?: string;
- tag?: string;
- encapsulation?: string;
- mode?: string;
- commentOriginalSelector?: boolean;
- sourceMap?: boolean;
- minify?: boolean;
- docs?: boolean;
- autoprefixer?: any;
- styleImportData?: string;
- }
- export interface TransformCssToEsmOutput {
- styleText: string;
- output: string;
- map: any;
- diagnostics: Diagnostic[];
- defaultVarName: string;
- styleDocs: StyleDoc[];
- imports: {
- varName: string;
- importPath: string;
- }[];
- }
- export interface PackageJsonData {
- name?: string;
- version?: string;
- main?: string;
- description?: string;
- bin?: {
- [key: string]: string;
- };
- browser?: string;
- module?: string;
- 'jsnext:main'?: string;
- 'collection:main'?: string;
- unpkg?: string;
- collection?: string;
- types?: string;
- files?: string[];
- ['dist-tags']?: {
- latest: string;
- };
- dependencies?: {
- [moduleId: string]: string;
- };
- devDependencies?: {
- [moduleId: string]: string;
- };
- repository?: {
- type?: string;
- url?: string;
- };
- private?: boolean;
- scripts?: {
- [runName: string]: string;
- };
- license?: string;
- keywords?: string[];
- }
- export interface Workbox {
- generateSW(swConfig: any): Promise<any>;
- generateFileManifest(): Promise<any>;
- getFileManifestEntries(): Promise<any>;
- injectManifest(swConfig: any): Promise<any>;
- copyWorkboxLibraries(wwwDir: string): Promise<any>;
- }
- export interface Url {
- href?: string;
- protocol?: string;
- auth?: string;
- hostname?: string;
- host?: string;
- port?: string;
- pathname?: string;
- path?: string;
- search?: string;
- query?: string | any;
- hash?: string;
- }
- declare global {
- namespace jest {
- interface Matchers<R, T> {
- /**
- * Compares HTML, but first normalizes the HTML so all
- * whitespace, attribute order and css class order are
- * the same. When given an element, it will compare
- * the element's `outerHTML`. When given a Document Fragment,
- * such as a Shadow Root, it'll compare its `innerHTML`.
- * Otherwise it'll compare two strings representing HTML.
- */
- toEqualHtml(expectHtml: string): void;
- /**
- * Compares HTML light DOKM only, but first normalizes the HTML so all
- * whitespace, attribute order and css class order are
- * the same. When given an element, it will compare
- * the element's `outerHTML`. When given a Document Fragment,
- * such as a Shadow Root, it'll compare its `innerHTML`.
- * Otherwise it'll compare two strings representing HTML.
- */
- toEqualLightHtml(expectLightHtml: string): void;
- /**
- * When given an element, it'll compare the element's
- * `textContent`. Otherwise it'll compare two strings. This
- * matcher will also `trim()` each string before comparing.
- */
- toEqualText(expectTextContent: string): void;
- /**
- * Checks if an element simply has the attribute. It does
- * not check any values of the attribute
- */
- toHaveAttribute(expectAttrName: string): void;
- /**
- * Checks if an element's attribute value equals the expect value.
- */
- toEqualAttribute(expectAttrName: string, expectAttrValue: any): void;
- /**
- * Checks if an element's has each of the expected attribute
- * names and values.
- */
- toEqualAttributes(expectAttrs: {
- [attrName: string]: any;
- }): void;
- /**
- * Checks if an element has the expected css class.
- */
- toHaveClass(expectClassName: string): void;
- /**
- * Checks if an element has each of the expected css classes
- * in the array.
- */
- toHaveClasses(expectClassNames: string[]): void;
- /**
- * Checks if an element has the exact same css classes
- * as the expected array of css classes.
- */
- toMatchClasses(expectClassNames: string[]): void;
- /**
- * When given an EventSpy, checks if the event has been
- * received or not.
- */
- toHaveReceivedEvent(): void;
- /**
- * When given an EventSpy, checks how many times the
- * event has been received.
- */
- toHaveReceivedEventTimes(count: number): void;
- /**
- * When given an EventSpy, checks the event has
- * received the correct custom event `detail` data.
- */
- toHaveReceivedEventDetail(eventDetail: any): void;
- /**
- * When given an EventSpy, checks the first event has
- * received the correct custom event `detail` data.
- */
- toHaveFirstReceivedEventDetail(eventDetail: any): void;
- /**
- * When given an EventSpy, checks the event at an index
- * has received the correct custom event `detail` data.
- */
- toHaveNthReceivedEventDetail(index: number, eventDetail: any): void;
- /**
- * Used to evaluate the results of `compareScreenshot()`, such as
- * `expect(compare).toMatchScreenshot()`. The `allowableMismatchedRatio`
- * value from the testing config is used by default if
- * `MatchScreenshotOptions` were not provided.
- */
- toMatchScreenshot(opts?: MatchScreenshotOptions): void;
- }
- }
- }
- export interface MatchScreenshotOptions {
- /**
- * The `allowableMismatchedPixels` value is the total number of pixels
- * that can be mismatched until the test fails. For example, if the value
- * is `100`, and if there were `101` pixels that were mismatched then the
- * test would fail. If the `allowableMismatchedRatio` is provided it will
- * take precedence, otherwise `allowableMismatchedPixels` will be used.
- */
- allowableMismatchedPixels?: number;
- /**
- * The `allowableMismatchedRatio` ranges from `0` to `1` and is used to
- * determine an acceptable ratio of pixels that can be mismatched before
- * the image is considered to have changes. Realistically, two screenshots
- * representing the same content may have a small number of pixels that
- * are not identical due to anti-aliasing, which is perfectly normal. The
- * `allowableMismatchedRatio` is the number of pixels that were mismatched,
- * divided by the total number of pixels in the screenshot. For example,
- * a ratio value of `0.06` means 6% of the pixels can be mismatched before
- * the image is considered to have changes. If the `allowableMismatchedRatio`
- * is provided it will take precedence, otherwise `allowableMismatchedPixels`
- * will be used.
- */
- allowableMismatchedRatio?: number;
- }
- export interface EventSpy {
- events: SerializedEvent[];
- eventName: string;
- firstEvent: SerializedEvent;
- lastEvent: SerializedEvent;
- length: number;
- next(): Promise<{
- done: boolean;
- value: SerializedEvent;
- }>;
- }
- export interface SerializedEvent {
- bubbles: boolean;
- cancelBubble: boolean;
- cancelable: boolean;
- composed: boolean;
- currentTarget: any;
- defaultPrevented: boolean;
- detail: any;
- eventPhase: any;
- isTrusted: boolean;
- returnValue: any;
- srcElement: any;
- target: any;
- timeStamp: number;
- type: string;
- isSerializedEvent: boolean;
- }
- export interface EventInitDict {
- bubbles?: boolean;
- cancelable?: boolean;
- composed?: boolean;
- detail?: any;
- }
- export interface JestEnvironmentGlobal {
- __NEW_TEST_PAGE__: () => Promise<any>;
- __CLOSE_OPEN_PAGES__: () => Promise<any>;
- Context: any;
- loadTestWindow: (testWindow: any) => Promise<void>;
- h: any;
- resourcesUrl: string;
- currentSpec?: {
- id: string;
- description: string;
- fullName: string;
- testPath: string;
- };
- env: {
- [prop: string]: string;
- };
- screenshotDescriptions: Set<string>;
- }
- export interface E2EProcessEnv {
- STENCIL_COMMIT_ID?: string;
- STENCIL_COMMIT_MESSAGE?: string;
- STENCIL_REPO_URL?: string;
- STENCIL_SCREENSHOT_CONNECTOR?: string;
- STENCIL_SCREENSHOT_SERVER?: string;
- __STENCIL_EMULATE_CONFIGS__?: string;
- __STENCIL_ENV__?: string;
- __STENCIL_EMULATE__?: string;
- __STENCIL_BROWSER_URL__?: string;
- __STENCIL_APP_SCRIPT_URL__?: string;
- __STENCIL_APP_STYLE_URL__?: string;
- __STENCIL_BROWSER_WS_ENDPOINT__?: string;
- __STENCIL_BROWSER_WAIT_UNTIL?: string;
- __STENCIL_SCREENSHOT__?: 'true';
- __STENCIL_SCREENSHOT_BUILD__?: string;
- __STENCIL_E2E_TESTS__?: 'true';
- __STENCIL_E2E_DEVTOOLS__?: 'true';
- __STENCIL_SPEC_TESTS__?: 'true';
- __STENCIL_PUPPETEER_MODULE__?: string;
- __STENCIL_DEFAULT_TIMEOUT__?: string;
- }
- export interface AnyHTMLElement extends HTMLElement {
- [key: string]: any;
- }
- export interface SpecPage {
- /**
- * Mocked testing `document.body`.
- */
- body: HTMLBodyElement;
- /**
- * Mocked testing `document`.
- */
- doc: HTMLDocument;
- /**
- * The first component found within the mocked `document.body`. If a component isn't found, then it'll return `document.body.firstElementChild`.
- */
- root?: AnyHTMLElement;
- /**
- * Similar to `root`, except returns the component instance. If a root component was not found it'll return `null`.
- */
- rootInstance?: any;
- /**
- * Convenience function to set `document.body.innerHTML` and `waitForChanges()`. Function argument should be an html string.
- */
- setContent: (html: string) => Promise<any>;
- /**
- * After changes have been made to a component, such as a update to a property or attribute, the test page does not automatically apply the changes. In order to wait for, and apply the update, call `await page.waitForChanges()`.
- */
- waitForChanges: () => Promise<any>;
- /**
- * Mocked testing `window`.
- */
- win: Window;
- build: BuildConditionals;
- flushLoadModule: (bundleId?: string) => Promise<any>;
- flushQueue: () => Promise<any>;
- styles: Map<string, string>;
- }
- export interface NewSpecPageOptions {
- /**
- * An array of components to test. Component classes can be imported into the spec file, then their reference should be added to the `component` array in order to be used throughout the test.
- */
- components: any[];
- /**
- * Sets the mocked `document.cookie`.
- */
- cookie?: string;
- /**
- * Sets the mocked `dir` attribute on `<html>`.
- */
- direction?: string;
- flushQueue?: boolean;
- /**
- * The initial HTML used to generate the test. This can be useful to construct a collection of components working together, and assign HTML attributes. This value sets the mocked `document.body.innerHTML`.
- */
- html?: string;
- /**
- * The initial JSX used to generate the test.
- * Use `template` when you want to initialize a component using their properties, instead of their HTML attributes.
- * It will render the specified template (JSX) into `document.body`.
- */
- template?: () => any;
- /**
- * Sets the mocked `lang` attribute on `<html>`.
- */
- language?: string;
- /**
- * Useful for debugging hydrating components client-side. Sets that the `html` option already includes annotated prerender attributes and comments.
- */
- hydrateClientSide?: boolean;
- /**
- * Useful for debugging hydrating components server-side. The output HTML will also include prerender annotations.
- */
- hydrateServerSide?: boolean;
- /**
- * Sets the mocked `document.referrer`.
- */
- referrer?: string;
- /**
- * Manually set if the mocked document supports Shadow DOM or not. Default is `true`.
- */
- supportsShadowDom?: boolean;
- /**
- * When a component is prerendered it includes HTML annotations, such as `s-id` attributes and `<!-t.0->` comments. This information is used by clientside hydrating. Default is `false`.
- */
- includeAnnotations?: boolean;
- /**
- * Sets the mocked browser's `location.href`.
- */
- url?: string;
- /**
- * Sets the mocked browser's `navigator.userAgent`.
- */
- userAgent?: string;
- /**
- * By default, any changes to component properties and attributes must `page.waitForChanges()` in order to test the updates. As an option, `autoAppluChanges` continuously flushes the queue on the background. Default is `false`.
- */
- autoApplyChanges?: boolean;
- /**
- * By default, styles are not attached to the DOM and they are not reflected in the serialized HTML.
- * Setting this option to `true` will include the component's styles in the serializable output.
- */
- attachStyles?: boolean;
- strictBuild?: boolean;
- }
- export interface TypesImportData {
- [key: string]: TypesMemberNameData[];
- }
- export interface TypesMemberNameData {
- localName: string;
- importName?: string;
- }
- export interface TypesModule {
- isDep: boolean;
- tagName: string;
- tagNameAsPascal: string;
- htmlElementName: string;
- component: string;
- jsx: string;
- element: string;
- }
- export declare type TypeInfo = {
- name: string;
- type: string;
- optional: boolean;
- required: boolean;
- internal: boolean;
- jsdoc?: string;
- }[];
- export interface Hyperscript {
- (sel: any): VNode;
- (sel: Node, data: VNodeData): VNode;
- (sel: any, data: VNodeData): VNode;
- (sel: any, text: string): VNode;
- (sel: any, children: Array<VNode | undefined | null>): VNode;
- (sel: any, data: VNodeData, text: string): VNode;
- (sel: any, data: VNodeData, children: Array<VNode | undefined | null>): VNode;
- (sel: any, data: VNodeData, children: VNode): VNode;
- }
- export declare type ChildType = VNode | number | string;
- export declare type PropsType = VNodeProdData | number | string | null;
- export interface VNodeProdData {
- key?: string | number;
- class?: {
- [className: string]: boolean;
- } | string;
- className?: {
- [className: string]: boolean;
- } | string;
- style?: any;
- [key: string]: any;
- }
- export interface CompilerWorkerContext {
- optimizeCss(inputOpts: OptimizeCssInput): Promise<OptimizeCssOutput>;
- prepareModule(input: string, minifyOpts: any, transpile: boolean, inlineHelpers: boolean): Promise<{
- output: string;
- diagnostics: Diagnostic[];
- sourceMap?: SourceMap;
- }>;
- prerenderWorker(prerenderRequest: PrerenderUrlRequest): Promise<PrerenderUrlResults>;
- transformCssToEsm(input: TransformCssToEsmInput): Promise<TransformCssToEsmOutput>;
- }
- export interface MsgToWorker {
- stencilId: number;
- args: any[];
- }
- export interface MsgFromWorker {
- stencilId?: number;
- stencilRtnValue: any;
- stencilRtnError: string;
- }
- export interface CompilerWorkerTask {
- stencilId?: number;
- inputArgs?: any[];
- resolve: (val: any) => any;
- reject: (msg: string) => any;
- retries?: number;
- }
- export declare type WorkerMsgHandler = (msgToWorker: MsgToWorker) => Promise<any>;
- export interface WorkerTask {
- taskId: number;
- method: string;
- args: any[];
- resolve: (val: any) => any;
- reject: (msg: string) => any;
- retries: number;
- isLongRunningTask: boolean;
- workerKey: string;
- }
- export interface WorkerMessage {
- taskId?: number;
- method?: string;
- args?: any[];
- value?: any;
- error?: string;
- exit?: boolean;
- }
- export declare type WorkerRunner = (methodName: string, args: any[]) => Promise<any>;
- export interface WorkerRunnerOptions {
- isLongRunningTask?: boolean;
- workerKey?: string;
- }
- export interface WorkerContext {
- tsHost?: any;
- tsProgram?: any;
- }
- export interface TranspileModuleResults {
- sourceFilePath: string;
- code: string;
- map: any;
- diagnostics: Diagnostic[];
- moduleFile: Module;
- }
- export interface ValidateTypesResults {
- diagnostics: Diagnostic[];
- dirPaths: string[];
- filePaths: string[];
- }
- export interface TerminalInfo {
- /**
- * Whether this is in CI or not.
- */
- readonly ci: boolean;
- /**
- * Whether the terminal is an interactive TTY or not.
- */
- readonly tty: boolean;
- }
- /**
- * The task to run in order to collect the duration data point.
- */
- export declare type TelemetryCallback = (...args: any[]) => void | Promise<void>;
- /**
- * The model for the data that's tracked.
- */
- export interface TrackableData {
- yarn: boolean;
- component_count?: number;
- arguments: string[];
- targets: string[];
- task: TaskCommand;
- duration_ms: number;
- packages: string[];
- packages_no_versions?: string[];
- os_name: string;
- os_version: string;
- cpu_model: string;
- typescript: string;
- rollup: string;
- system: string;
- system_major?: string;
- build: string;
- stencil: string;
- has_app_pwa_config: boolean;
- }
- /**
- * Used as the object sent to the server. Value is the data tracked.
- */
- export interface Metric {
- name: string;
- timestamp: string;
- source: 'stencil_cli';
- value: TrackableData;
- session_id: string;
- }
- export interface TelemetryConfig {
- 'telemetry.stencil'?: boolean;
- 'tokens.telemetry'?: string;
- }
|