@ng-doc/builder 22.0.0-beta.2 → 22.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -28
- package/application/index.js +2 -2
- package/application/index.js.map +1 -1
- package/application/schema.json +1 -2
- package/builders.json +23 -13
- package/classes/observable-map.d.ts +1 -0
- package/classes/observable-map.js +14 -3
- package/classes/observable-map.js.map +1 -1
- package/classes/observable-set.js +2 -1
- package/classes/observable-set.js.map +1 -1
- package/dev-server/index.js +5 -3
- package/dev-server/index.js.map +1 -1
- package/engine/builders/api-list/api-list-component.builder.js +4 -4
- package/engine/builders/api-list/api-list-component.builder.js.map +1 -1
- package/engine/builders/api-list/api-page-template.builder.js +2 -2
- package/engine/builders/api-list/api-page-template.builder.js.map +1 -1
- package/engine/builders/global/keywords.builder.d.ts +1 -4
- package/engine/builders/global/keywords.builder.js +5 -9
- package/engine/builders/global/keywords.builder.js.map +1 -1
- package/engine/builders/global/search-indexes.builder.js +1 -1
- package/engine/builders/global/search-indexes.builder.js.map +1 -1
- package/engine/builders/helpers/create-entry-metadata.js +2 -1
- package/engine/builders/helpers/create-entry-metadata.js.map +1 -1
- package/engine/builders/helpers/create-import-path.js.map +1 -1
- package/engine/builders/helpers/get-entry-relative-path.js.map +1 -1
- package/engine/builders/page/demo-assets.builder.js +8 -5
- package/engine/builders/page/demo-assets.builder.js.map +1 -1
- package/engine/builders/page/playground.builder.js +1 -0
- package/engine/builders/page/playground.builder.js.map +1 -1
- package/engine/builders/shared/content.builder.js +3 -3
- package/engine/builders/shared/content.builder.js.map +1 -1
- package/engine/builders/shared/page-component.builder.js +16 -6
- package/engine/builders/shared/page-component.builder.js.map +1 -1
- package/engine/builders/shared/page-wrapper.builder.js +8 -5
- package/engine/builders/shared/page-wrapper.builder.js.map +1 -1
- package/engine/core/operators/distinct-pending.js.map +1 -1
- package/engine/core/operators/factory.js +1 -4
- package/engine/core/operators/factory.js.map +1 -1
- package/engine/core/operators/merge-factory.js +19 -17
- package/engine/core/operators/merge-factory.js.map +1 -1
- package/engine/core/operators/when-builders-done.js.map +1 -1
- package/engine/core/triggers/on-dependencies-change.d.ts +1 -1
- package/engine/core/triggers/on-dependencies-change.js +2 -2
- package/engine/core/triggers/on-dependencies-change.js.map +1 -1
- package/generator/artifacts/index.d.ts +317 -0
- package/generator/bootstrap/bin.d.ts +18 -0
- package/generator/bootstrap/bin.js +7274 -0
- package/generator/bootstrap/candidate-output-committer.d.ts +12 -0
- package/generator/bootstrap/cli.d.ts +42 -0
- package/generator/bootstrap/cli.js +7123 -0
- package/generator/bootstrap/constants.d.ts +4 -0
- package/generator/bootstrap/index.d.ts +111 -0
- package/generator/bootstrap/index.js +5020 -0
- package/generator/bootstrap/prerender-command.d.ts +31 -0
- package/generator/bootstrap/process-tree.d.ts +49 -0
- package/generator/build-metafile.json +11701 -0
- package/generator/build-provenance.json +119 -0
- package/generator/compiler/assemble.d.ts +41 -0
- package/generator/compiler/classify.d.ts +161 -0
- package/generator/compiler/closure-store.d.ts +55 -0
- package/generator/compiler/common.d.ts +32 -0
- package/generator/compiler/describe.d.ts +21 -0
- package/generator/compiler/dry-run.d.ts +108 -0
- package/generator/compiler/fast-start.d.ts +104 -0
- package/generator/compiler/fold.d.ts +116 -0
- package/generator/compiler/index.d.ts +111 -0
- package/generator/compiler/index.js +17759 -0
- package/generator/compiler/link.d.ts +38 -0
- package/generator/compiler/memo.d.ts +44 -0
- package/generator/compiler/plan.d.ts +92 -0
- package/generator/compiler/progress.d.ts +54 -0
- package/generator/compiler/render.d.ts +27 -0
- package/generator/compiler/retention.d.ts +181 -0
- package/generator/compiler/semantic-closure.d.ts +46 -0
- package/generator/compiler/targeted.d.ts +280 -0
- package/generator/content/content-compiler.d.ts +118 -0
- package/generator/content/highlight-cache.d.ts +139 -0
- package/generator/content/html-pipeline.d.ts +170 -0
- package/generator/content/html-pool.d.ts +239 -0
- package/generator/content/html-worker.js +1598 -0
- package/generator/content-module-ids.d.ts +8 -0
- package/generator/contracts.d.ts +1063 -0
- package/generator/contracts.js +15 -0
- package/generator/discovery/index.d.ts +77 -0
- package/generator/graph/index.d.ts +211 -0
- package/generator/graph/unit-index.d.ts +216 -0
- package/generator/kernel/canonical.d.ts +57 -0
- package/generator/kernel/flags.d.ts +49 -0
- package/generator/kernel/footprint.d.ts +88 -0
- package/generator/kernel/observations.d.ts +68 -0
- package/generator/kernel/paths.d.ts +22 -0
- package/generator/kernel/runtime-identity.d.ts +11 -0
- package/generator/outputs/index.d.ts +67 -0
- package/generator/package.json +3 -0
- package/generator/progress/ci.d.ts +22 -0
- package/generator/progress/detect.d.ts +60 -0
- package/generator/progress/events.d.ts +126 -0
- package/generator/progress/format.d.ts +83 -0
- package/generator/progress/gate.d.ts +49 -0
- package/generator/progress/host.d.ts +29 -0
- package/generator/progress/lines.d.ts +42 -0
- package/generator/progress/live.d.ts +115 -0
- package/generator/progress/model.d.ts +85 -0
- package/generator/progress/reporter.d.ts +87 -0
- package/generator/progress/settings.d.ts +60 -0
- package/generator/semantic/angular.d.ts +9 -0
- package/generator/semantic/api-enumeration.d.ts +19 -0
- package/generator/semantic/api-summary.d.ts +33 -0
- package/generator/semantic/dependencies.d.ts +20 -0
- package/generator/semantic/derived-classes.d.ts +58 -0
- package/generator/semantic/documentation-cache.d.ts +23 -0
- package/generator/semantic/fragments.d.ts +28 -0
- package/generator/semantic/owned-roots.d.ts +59 -0
- package/generator/semantic/program-builder.d.ts +55 -0
- package/generator/semantic/program-index.d.ts +124 -0
- package/generator/semantic/program-inputs.d.ts +26 -0
- package/generator/semantic/program-observations.d.ts +158 -0
- package/generator/semantic/program-retention.d.ts +147 -0
- package/generator/semantic/program-state.d.ts +196 -0
- package/generator/semantic/program-verify.d.ts +22 -0
- package/generator/semantic/recorder.d.ts +89 -0
- package/generator/semantic/rendering.d.ts +34 -0
- package/generator/semantic/semantic-closure.d.ts +129 -0
- package/generator/semantic/semantic-service.d.ts +186 -0
- package/generator/semantic/type-text.d.ts +5 -0
- package/generator/session/build-session.d.ts +206 -0
- package/generator/session/input-verification.d.ts +38 -0
- package/generator/session/parcel-event-source.d.ts +22 -0
- package/generator/session/progress.d.ts +72 -0
- package/generator/session/unchanged-saves.d.ts +63 -0
- package/generator/session/watch-inputs.d.ts +6 -0
- package/generator/session/watch-signals.d.ts +10 -0
- package/generator/templates/api/base.html.nunj +26 -0
- package/generator/templates/api/class-declaration.html.nunj +57 -0
- package/generator/templates/api/details/class-declaration.html.nunj +47 -0
- package/generator/templates/api/details/enum-declaration.html.nunj +0 -0
- package/generator/templates/api/details/function-declaration.html.nunj +14 -0
- package/generator/templates/api/details/helpers/decorators.html.nunj +14 -0
- package/generator/templates/api/details/helpers/extends.html.nunj +6 -0
- package/generator/templates/api/details/helpers/selectors.html.nunj +12 -0
- package/generator/templates/api/details/helpers/type-parameters.html.nunj +14 -0
- package/generator/templates/api/details/interface-declaration.html.nunj +27 -0
- package/generator/templates/api/details/type-alias-declaration.html.nunj +14 -0
- package/generator/templates/api/details/variable-declaration.html.nunj +0 -0
- package/generator/templates/api/details.html.nunj +9 -0
- package/generator/templates/api/enum-declaration.html.nunj +12 -0
- package/generator/templates/api/function-declaration.html.nunj +35 -0
- package/generator/templates/api/interface-declaration.html.nunj +37 -0
- package/generator/templates/api/type-alias-declaration.html.nunj +16 -0
- package/generator/templates/api/variable-declaration.html.nunj +8 -0
- package/generator/templates/api-header.html.nunj +11 -0
- package/generator/templates/api-list.ts.nunj +22 -0
- package/generator/templates/api-page-content.html.nunj +1 -0
- package/generator/templates/api-scope.ts.nunj +22 -0
- package/generator/templates/category.ts.nunj +22 -0
- package/generator/templates/code.html.nunj +3 -0
- package/generator/templates/context.ts.nunj +55 -0
- package/generator/templates/demo-assets.ts.nunj +25 -0
- package/generator/templates/helpers/accessor.html.nunj +76 -0
- package/generator/templates/helpers/accessors.html.nunj +7 -0
- package/generator/templates/helpers/badge.html.nunj +4 -0
- package/generator/templates/helpers/call-signature.html.nunj +70 -0
- package/generator/templates/helpers/code.html.nunj +3 -0
- package/generator/templates/helpers/constructor.html.nunj +32 -0
- package/generator/templates/helpers/declaration-modifiers.html.nunj +45 -0
- package/generator/templates/helpers/decorators.html.nunj +11 -0
- package/generator/templates/helpers/members.html.nunj +29 -0
- package/generator/templates/helpers/method.html.nunj +89 -0
- package/generator/templates/helpers/methods.html.nunj +7 -0
- package/generator/templates/helpers/modifier.html.nunj +4 -0
- package/generator/templates/helpers/no-content.html.nunj +3 -0
- package/generator/templates/helpers/overload.html.nunj +57 -0
- package/generator/templates/helpers/parameters.html.nunj +44 -0
- package/generator/templates/helpers/properties.html.nunj +61 -0
- package/generator/templates/helpers/status.html.nunj +33 -0
- package/generator/templates/helpers/tag.html.nunj +4 -0
- package/generator/templates/helpers/type.html.nunj +11 -0
- package/generator/templates/index.ts.nunj +2 -0
- package/generator/templates/page-header.html.nunj +5 -0
- package/generator/templates/page-wrapper.ts.nunj +64 -0
- package/generator/templates/page.ts.nunj +97 -0
- package/generator/templates/parts/examples.html.nunj +11 -0
- package/generator/templates/parts/member-examples.html.nunj +12 -0
- package/generator/templates/parts/member-remarks.html.nunj +8 -0
- package/generator/templates/parts/page-tags.html.nunj +10 -0
- package/generator/templates/parts/remarks.html.nunj +10 -0
- package/generator/templates/parts/see-also.html.nunj +23 -0
- package/generator/templates/parts/usage-notes.html.nunj +8 -0
- package/generator/templates/playgrounds.ts.nunj +63 -0
- package/generator/templates/routes.ts.nunj +49 -0
- package/generator/templates/symbol/decorators.html.nunj +12 -0
- package/generator/templates/symbol/details.html.nunj +62 -0
- package/generator/templates/symbol/extended-by.html.nunj +17 -0
- package/generator/templates/symbol/header.html.nunj +22 -0
- package/generator/templates/symbol/members.html.nunj +301 -0
- package/generator/templates/symbol/page.html.nunj +76 -0
- package/generator/templates/symbol/see-also.html.nunj +16 -0
- package/generator/vite/angular/ANALOG-LICENSE +21 -0
- package/generator/vite/angular/analog-provenance.json +880 -0
- package/generator/vite/angular/index.d.ts +14 -0
- package/generator/vite/angular/index.js +7300 -0
- package/generator/vite/angular-compatibility.d.ts +6 -0
- package/generator/vite/angular-composition.d.ts +68 -0
- package/generator/vite/angular-version.d.ts +38 -0
- package/generator/vite/application-builder.js +331 -0
- package/generator/vite/application-builder.schema.json +46 -0
- package/generator/vite/application.d.ts +91 -0
- package/generator/vite/assets.d.ts +11 -0
- package/generator/vite/bounded-close.d.ts +33 -0
- package/generator/vite/component-updates.d.ts +21 -0
- package/generator/vite/configuration.d.ts +3 -0
- package/generator/vite/dev-server-builder.js +334 -0
- package/generator/vite/dev-server-builder.schema.json +27 -0
- package/generator/vite/dev-styles.d.ts +65 -0
- package/generator/vite/diagnostics.d.ts +4 -0
- package/generator/vite/external-probes.d.ts +40 -0
- package/generator/vite/host-updates.d.ts +145 -0
- package/generator/vite/index.d.ts +13 -0
- package/generator/vite/index.js +11589 -0
- package/generator/vite/lease.d.ts +6 -0
- package/generator/vite/lifecycle.d.ts +119 -0
- package/generator/vite/mime.d.ts +2 -0
- package/generator/vite/missing-paths.d.ts +44 -0
- package/generator/vite/options.d.ts +87 -0
- package/generator/vite/output-watch.d.ts +41 -0
- package/generator/vite/paths.d.ts +7 -0
- package/generator/vite/plugin.d.ts +3 -0
- package/generator/vite/prerender-entry.js +395 -0
- package/generator/vite/prerender-runtime.d.ts +66 -0
- package/generator/vite/prerender.d.ts +27 -0
- package/generator/vite/production.d.ts +66 -0
- package/generator/vite/progress.d.ts +33 -0
- package/generator/vite/restore-theme.js +13 -0
- package/generator/vite/route-inventory.d.ts +24 -0
- package/generator/vite/ssr-renderer-control.d.ts +1 -0
- package/generator/vite/ssr-renderer-entry.js +444 -0
- package/generator/vite/ssr-renderer-protocol.d.ts +101 -0
- package/generator/vite/ssr-renderer.d.ts +74 -0
- package/generator/vite/theme-index.d.ts +13 -0
- package/generator/vite/tsconfig-paths.d.ts +64 -0
- package/generator/vite/vite-event-source.d.ts +198 -0
- package/generator/vite/vite-version.d.ts +26 -0
- package/generator/vite/watch-inputs.d.ts +39 -0
- package/generator/worker/entry.d.ts +1 -0
- package/generator/worker/entry.js +614 -0
- package/generator/worker/index.d.ts +156 -0
- package/generator/worker/index.js +1030 -0
- package/generator/worker/protocol.d.ts +160 -0
- package/helpers/angular/get-component-decorator.js +6 -6
- package/helpers/angular/get-component-decorator.js.map +1 -1
- package/helpers/angular/get-directive-decorator.js +3 -3
- package/helpers/angular/get-directive-decorator.js.map +1 -1
- package/helpers/angular/get-pipe-decorator.js +3 -3
- package/helpers/angular/get-pipe-decorator.js.map +1 -1
- package/helpers/build-indexes.js +5 -2
- package/helpers/build-indexes.js.map +1 -1
- package/helpers/construct-page-keyword.js +2 -1
- package/helpers/construct-page-keyword.js.map +1 -1
- package/helpers/extract-selectors.d.ts +1 -1
- package/helpers/extract-selectors.js +5 -3
- package/helpers/extract-selectors.js.map +1 -1
- package/helpers/filter-useless-members.d.ts +1 -1
- package/helpers/format-code.d.ts +2 -1
- package/helpers/format-code.js +13 -4
- package/helpers/format-code.js.map +1 -1
- package/helpers/import-fresh-esm.js.map +1 -1
- package/helpers/index.d.ts +2 -0
- package/helpers/index.js +2 -0
- package/helpers/index.js.map +1 -1
- package/helpers/keyword-heading-title.d.ts +7 -0
- package/helpers/keyword-heading-title.js +21 -0
- package/helpers/keyword-heading-title.js.map +1 -0
- package/helpers/markdown-to-html.js +3 -3
- package/helpers/markdown-to-html.js.map +1 -1
- package/helpers/navigation-title-order.d.ts +8 -0
- package/helpers/navigation-title-order.js +15 -0
- package/helpers/navigation-title-order.js.map +1 -0
- package/helpers/playground/get-playground-inputs.js +8 -4
- package/helpers/playground/get-playground-inputs.js.map +1 -1
- package/helpers/playground/get-playground-template-inputs.js +2 -1
- package/helpers/playground/get-playground-template-inputs.js.map +1 -1
- package/helpers/presentation.d.ts +7 -7
- package/helpers/presentation.js +23 -23
- package/helpers/presentation.js.map +1 -1
- package/helpers/print.js +32 -5
- package/helpers/print.js.map +1 -1
- package/helpers/process-snippets.d.ts +1 -1
- package/helpers/process-snippets.js +3 -3
- package/helpers/process-snippets.js.map +1 -1
- package/helpers/snippets-from-asset.d.ts +1 -1
- package/helpers/snippets-from-asset.js +2 -2
- package/helpers/snippets-from-asset.js.map +1 -1
- package/helpers/sort-navigation-entities.js +2 -1
- package/helpers/sort-navigation-entities.js.map +1 -1
- package/helpers/stable-generated-id.d.ts +2 -0
- package/helpers/stable-generated-id.js +12 -0
- package/helpers/stable-generated-id.js.map +1 -0
- package/helpers/text-order.d.ts +8 -0
- package/helpers/text-order.js +26 -0
- package/helpers/text-order.js.map +1 -0
- package/helpers/typescript/member/get-inherited-parent.d.ts +1 -1
- package/helpers/typescript/member/get-inherited-parent.js +2 -2
- package/helpers/typescript/member/get-inherited-parent.js.map +1 -1
- package/helpers/typescript/node/sort-by-nodes-name.d.ts +4 -2
- package/helpers/typescript/node/sort-by-nodes-name.js +6 -3
- package/helpers/typescript/node/sort-by-nodes-name.js.map +1 -1
- package/helpers/typescript/property/get-property-assignment.js.map +1 -1
- package/package.json +86 -29
- package/parsers/helpers/number.d.ts +1 -1
- package/parsers/helpers/number.js +2 -2
- package/parsers/helpers/number.js.map +1 -1
- package/parsers/helpers/param-value.d.ts +1 -1
- package/parsers/helpers/param-value.js +2 -2
- package/parsers/helpers/param-value.js.map +1 -1
- package/parsers/helpers/param.js +3 -3
- package/parsers/helpers/param.js.map +1 -1
- package/parsers/parse-code-block-params.d.ts +1 -1
- package/parsers/parse-code-block-params.js +22 -16
- package/parsers/parse-code-block-params.js.map +1 -1
- package/parsers/parse-snippet.js +10 -10
- package/parsers/parse-snippet.js.map +1 -1
- package/schematics/collection.json +34 -23
- package/schematics/migrate-to-vite/analyze.d.ts +76 -0
- package/schematics/migrate-to-vite/analyze.js +816 -0
- package/schematics/migrate-to-vite/analyze.js.map +1 -0
- package/schematics/migrate-to-vite/index.d.ts +9 -0
- package/schematics/migrate-to-vite/index.js +585 -0
- package/schematics/migrate-to-vite/index.js.map +1 -0
- package/schematics/migrate-to-vite/legacy-folder.d.ts +84 -0
- package/schematics/migrate-to-vite/legacy-folder.js +340 -0
- package/schematics/migrate-to-vite/legacy-folder.js.map +1 -0
- package/schematics/migrate-to-vite/report.d.ts +32 -0
- package/schematics/migrate-to-vite/report.js +97 -0
- package/schematics/migrate-to-vite/report.js.map +1 -0
- package/schematics/migrate-to-vite/schema.d.ts +13 -0
- package/schematics/migrate-to-vite/schema.js +3 -0
- package/schematics/migrate-to-vite/schema.js.map +1 -0
- package/schematics/migrate-to-vite/schema.json +31 -0
- package/schematics/migrate-to-vite/setup/dependencies.d.ts +64 -0
- package/schematics/migrate-to-vite/setup/dependencies.js +183 -0
- package/schematics/migrate-to-vite/setup/dependencies.js.map +1 -0
- package/schematics/migrate-to-vite/setup/index.d.ts +6 -0
- package/schematics/migrate-to-vite/setup/index.js +13 -0
- package/schematics/migrate-to-vite/setup/index.js.map +1 -0
- package/schematics/migrate-to-vite/setup/json-file.d.ts +51 -0
- package/schematics/migrate-to-vite/setup/json-file.js +115 -0
- package/schematics/migrate-to-vite/setup/json-file.js.map +1 -0
- package/schematics/migrate-to-vite/setup/source.d.ts +30 -0
- package/schematics/migrate-to-vite/setup/source.js +202 -0
- package/schematics/migrate-to-vite/setup/source.js.map +1 -0
- package/schematics/migrate-to-vite/setup/targets.d.ts +51 -0
- package/schematics/migrate-to-vite/setup/targets.js +48 -0
- package/schematics/migrate-to-vite/setup/targets.js.map +1 -0
- package/schematics/migrate-to-vite/setup/vite-config.d.ts +100 -0
- package/schematics/migrate-to-vite/setup/vite-config.js +175 -0
- package/schematics/migrate-to-vite/setup/vite-config.js.map +1 -0
- package/schematics/migrate-to-vite/setup/workspace.d.ts +100 -0
- package/schematics/migrate-to-vite/setup/workspace.js +225 -0
- package/schematics/migrate-to-vite/setup/workspace.js.map +1 -0
- package/schematics/migrate-to-vite/state.d.ts +65 -0
- package/schematics/migrate-to-vite/state.js +92 -0
- package/schematics/migrate-to-vite/state.js.map +1 -0
- package/schematics/migrate-to-vite/testing/fixtures.d.ts +18 -0
- package/schematics/migrate-to-vite/testing/fixtures.js +279 -0
- package/schematics/migrate-to-vite/testing/fixtures.js.map +1 -0
- package/schematics/migrate-to-vite/update-note.d.ts +6 -0
- package/schematics/migrate-to-vite/update-note.js +23 -0
- package/schematics/migrate-to-vite/update-note.js.map +1 -0
- package/schematics/migration.json +5 -0
- package/schematics/migrations/standalone-pages/index.js +7 -6
- package/schematics/migrations/standalone-pages/index.js.map +1 -1
- package/schematics/vite-setup/index.d.ts +20 -0
- package/schematics/vite-setup/index.js +206 -0
- package/schematics/vite-setup/index.js.map +1 -0
- package/schematics/vite-setup/schema.d.ts +7 -0
- package/schematics/vite-setup/schema.js +3 -0
- package/schematics/vite-setup/schema.js.map +1 -0
- package/schematics/vite-setup/schema.json +19 -0
- package/scripts/restore-theme.js +9 -2
- package/templates/context.ts.nunj +3 -0
- package/templates/helpers/badge.html.nunj +1 -1
- package/templates/helpers/status.html.nunj +4 -8
- package/templates/page-wrapper.ts.nunj +24 -1
- package/templates/page.ts.nunj +25 -0
- package/templates/parts/page-tags.html.nunj +1 -1
- package/templates/playgrounds.ts.nunj +8 -9
- package/templates/routes.ts.nunj +6 -1
- package/templates/symbol/decorators.html.nunj +12 -0
- package/templates/symbol/details.html.nunj +62 -0
- package/templates/symbol/extended-by.html.nunj +17 -0
- package/templates/symbol/header.html.nunj +22 -0
- package/templates/symbol/members.html.nunj +301 -0
- package/templates/symbol/page.html.nunj +76 -0
- package/templates/symbol/see-also.html.nunj +16 -0
- package/engine/.cache/apps/ng-doc/docs/api-documentation/auto-generation/ng-doc.page.mjs +0 -20
- package/engine/.cache/apps/ng-doc/docs/api-documentation/documenting-declarations/ng-doc.page.mjs +0 -20
- package/engine/.cache/apps/ng-doc/docs/api-documentation/rendering-api/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/icons/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/layout/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/page-processors/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/page-skeleton/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/search/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/themes/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/develop/ng-doc.page.mjs +0 -36
- package/engine/.cache/apps/ng-doc/docs/getting-started/configuration/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/getting-started/installation/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/getting-started/migrations/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/getting-started/ssr/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/getting-started/what-is-ng-doc/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/ng-doc.api.mjs +0 -42
- package/engine/.cache/apps/ng-doc/docs/recipes/ignoring-file-lines/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/recipes/performance/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/writing-content/blockquotes/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/code-blocks/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/demo-and-demo-pane/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/writing-content/images-videos-and-embeds/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/keywords/ng-doc.page.mjs +0 -17
- package/engine/.cache/apps/ng-doc/docs/writing-content/mermaid-diagrams/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/nunjucks/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/pages-and-categories/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/playground/ng-doc.page.mjs +0 -33
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
// libs/builder/generator/vite/dev-server-builder.ts
|
|
2
|
+
import { createBuilder } from "@angular-devkit/architect";
|
|
3
|
+
|
|
4
|
+
// libs/builder/generator/vite/builders.ts
|
|
5
|
+
import path2 from "node:path";
|
|
6
|
+
import { Observable } from "rxjs";
|
|
7
|
+
import { createServer as viteCreateServer } from "vite";
|
|
8
|
+
|
|
9
|
+
// libs/builder/generator/vite/production.ts
|
|
10
|
+
import { rm, writeFile } from "node:fs/promises";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
import { build as viteBuild } from "vite";
|
|
13
|
+
|
|
14
|
+
// libs/builder/generator/vite/angular-version.ts
|
|
15
|
+
import { createRequire } from "node:module";
|
|
16
|
+
var TRANSFORM_OPTIONS_ANGULAR = "22.2.0";
|
|
17
|
+
var VERSION = /^(\d+)\.(\d+)\.(\d+)(?:[-+][0-9A-Za-z.+-]*)?$/;
|
|
18
|
+
function parse(version) {
|
|
19
|
+
const match = VERSION.exec(version);
|
|
20
|
+
return match ? [Number(match[1]), Number(match[2]), Number(match[3])] : void 0;
|
|
21
|
+
}
|
|
22
|
+
function usesTransformOptions([major, minor, patch]) {
|
|
23
|
+
const [lowMajor, lowMinor, lowPatch] = parse(TRANSFORM_OPTIONS_ANGULAR);
|
|
24
|
+
if (major !== lowMajor) return major > lowMajor;
|
|
25
|
+
if (minor !== lowMinor) return minor > lowMinor;
|
|
26
|
+
return patch >= lowPatch;
|
|
27
|
+
}
|
|
28
|
+
function isConsistentAngularBuild(compiler, build) {
|
|
29
|
+
const left = parse(compiler);
|
|
30
|
+
const right = parse(build);
|
|
31
|
+
if (!left || !right || left[0] !== right[0]) return false;
|
|
32
|
+
return usesTransformOptions(left) === usesTransformOptions(right);
|
|
33
|
+
}
|
|
34
|
+
function resolveVersion(name) {
|
|
35
|
+
try {
|
|
36
|
+
const manifest = createRequire(import.meta.url)(`${name}/package.json`);
|
|
37
|
+
return typeof manifest.version === "string" ? manifest.version : void 0;
|
|
38
|
+
} catch {
|
|
39
|
+
return void 0;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function resolveAngularCompilerVersion() {
|
|
43
|
+
return resolveVersion("@angular/compiler-cli");
|
|
44
|
+
}
|
|
45
|
+
function resolveAngularBuildVersion() {
|
|
46
|
+
return resolveVersion("@angular/build");
|
|
47
|
+
}
|
|
48
|
+
function assertConsistentAngularBuild(compiler = resolveAngularCompilerVersion(), build = resolveAngularBuildVersion()) {
|
|
49
|
+
if (compiler && build && isConsistentAngularBuild(compiler, build)) return;
|
|
50
|
+
if (!compiler || !build) {
|
|
51
|
+
const missing = !compiler ? "@angular/compiler-cli" : "@angular/build";
|
|
52
|
+
throw new Error(
|
|
53
|
+
`[NGDOC_VITE_ANGULAR_VERSION] The NgDoc Vite engine needs @angular/compiler-cli and @angular/build of the application's Angular 22, but ${missing} is not installed. Install it in the application's devDependencies: npm i -D ${missing}@22.`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
throw new Error(
|
|
57
|
+
`[NGDOC_VITE_ANGULAR_VERSION] NgDoc resolves @angular/compiler-cli ${compiler} and @angular/build ${build}, which belong to different Angular releases: the Vite engine drives @angular/build through the compiler's version, so both must be from before ${TRANSFORM_OPTIONS_ANGULAR} or both from ${TRANSFORM_OPTIONS_ANGULAR} or later. This usually means a second @angular/build was installed for NgDoc: check with \`npm ls @angular/build\`, then install the same Angular version for every @angular/* package (ng update @angular/core@22 @angular/cli@22) and reinstall, or deduplicate @angular/build (npm dedupe, an override or a resolution).`
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// libs/builder/generator/vite/prerender.ts
|
|
62
|
+
import { fork } from "node:child_process";
|
|
63
|
+
import { fileURLToPath } from "node:url";
|
|
64
|
+
function prerenderError(code, message2) {
|
|
65
|
+
return new Error(`[${code}] ${message2}`);
|
|
66
|
+
}
|
|
67
|
+
function heapArguments(execArgv) {
|
|
68
|
+
return execArgv.filter(
|
|
69
|
+
(item) => /^--(?:max-old-space-size|max-semi-space-size|stack-size)=/.test(item)
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
function prerenderNgDoc(options) {
|
|
73
|
+
const request = {
|
|
74
|
+
browserDir: options.browserDir,
|
|
75
|
+
serverEntry: options.serverEntry,
|
|
76
|
+
routes: [...options.routes ?? []],
|
|
77
|
+
discoverRoutes: options.discoverRoutes ?? true,
|
|
78
|
+
...options.routeTimeoutMs === void 0 ? {} : { routeTimeoutMs: options.routeTimeoutMs }
|
|
79
|
+
};
|
|
80
|
+
if (request.routeTimeoutMs !== void 0 && (!Number.isSafeInteger(request.routeTimeoutMs) || request.routeTimeoutMs < 1)) {
|
|
81
|
+
return Promise.reject(
|
|
82
|
+
prerenderError("NGDOC_PRERENDER_OPTION", "routeTimeoutMs must be a positive integer.")
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
return new Promise((resolve, reject) => {
|
|
86
|
+
if (options.signal?.aborted) {
|
|
87
|
+
reject(prerenderError("NGDOC_PRERENDER_ABORTED", "Prerendering was aborted."));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const child = fork(
|
|
91
|
+
fileURLToPath(options.entryUrl ?? new URL("./prerender-entry.js", import.meta.url)),
|
|
92
|
+
[],
|
|
93
|
+
// Keep the host's heap limits (a large site renders many routes in one process), nothing else.
|
|
94
|
+
{ execArgv: heapArguments(process.execArgv), stdio: ["ignore", "inherit", "inherit", "ipc"] }
|
|
95
|
+
);
|
|
96
|
+
let reply;
|
|
97
|
+
const abort = () => child.kill("SIGKILL");
|
|
98
|
+
options.signal?.addEventListener("abort", abort, { once: true });
|
|
99
|
+
child.on("message", (message2) => {
|
|
100
|
+
reply ??= message2;
|
|
101
|
+
});
|
|
102
|
+
child.once("error", (error) => {
|
|
103
|
+
options.signal?.removeEventListener("abort", abort);
|
|
104
|
+
reject(error);
|
|
105
|
+
});
|
|
106
|
+
child.once("exit", (code, signal) => {
|
|
107
|
+
options.signal?.removeEventListener("abort", abort);
|
|
108
|
+
if (options.signal?.aborted) {
|
|
109
|
+
reject(prerenderError("NGDOC_PRERENDER_ABORTED", "Prerendering was aborted."));
|
|
110
|
+
} else if (reply?.type === "result" && code === 0) {
|
|
111
|
+
resolve(reply.report);
|
|
112
|
+
} else if (reply?.type === "error") {
|
|
113
|
+
reject(new Error(reply.message));
|
|
114
|
+
} else {
|
|
115
|
+
reject(
|
|
116
|
+
prerenderError(
|
|
117
|
+
"NGDOC_PRERENDER_EXIT",
|
|
118
|
+
`The prerender process exited without a result (code=${String(code)}, signal=${String(signal)}).`
|
|
119
|
+
)
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
child.send(request, () => {
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// libs/builder/generator/vite/vite-version.ts
|
|
129
|
+
import { version as resolvedViteVersion } from "vite";
|
|
130
|
+
var SUPPORTED_VITE_RANGE = "^8.3.0";
|
|
131
|
+
var SUPPORTED_MAJOR = 8;
|
|
132
|
+
var MINIMUM_MINOR = 3;
|
|
133
|
+
function isSupportedViteVersion(version) {
|
|
134
|
+
const match = /^(\d+)\.(\d+)\.(\d+)(-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/.exec(version);
|
|
135
|
+
if (!match) return false;
|
|
136
|
+
const [major, minor, patch] = [Number(match[1]), Number(match[2]), Number(match[3])];
|
|
137
|
+
if (major !== SUPPORTED_MAJOR || minor < MINIMUM_MINOR) return false;
|
|
138
|
+
return !(match[4] && minor === MINIMUM_MINOR && patch === 0);
|
|
139
|
+
}
|
|
140
|
+
function assertSupportedViteVersion(found = resolvedViteVersion) {
|
|
141
|
+
if (found && isSupportedViteVersion(found)) return;
|
|
142
|
+
throw new Error(
|
|
143
|
+
`[NGDOC_VITE_VERSION] The NgDoc Vite engine requires vite ${SUPPORTED_VITE_RANGE}, but vite ${found || "(unknown version)"} is running. Install a supported release in the application's devDependencies: npm i -D vite@${SUPPORTED_VITE_RANGE}. The legacy builders (@ng-doc/builder:application and dev-server) do not use Vite.`
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// libs/builder/generator/vite/production.ts
|
|
148
|
+
var defaultDependencies = {
|
|
149
|
+
build: viteBuild,
|
|
150
|
+
prerender: prerenderNgDoc
|
|
151
|
+
};
|
|
152
|
+
function generationHandoff() {
|
|
153
|
+
const handoff = { schemaVersion: 1 };
|
|
154
|
+
return { name: "@ng-doc/vite:generation-handoff", api: { ngDocGeneration: handoff } };
|
|
155
|
+
}
|
|
156
|
+
function buildError(code, message2) {
|
|
157
|
+
return new Error(`[${code}] ${message2}`);
|
|
158
|
+
}
|
|
159
|
+
function applicationProbe() {
|
|
160
|
+
let found;
|
|
161
|
+
return {
|
|
162
|
+
plugin: {
|
|
163
|
+
name: "@ng-doc/vite:build-probe",
|
|
164
|
+
configResolved(config) {
|
|
165
|
+
const matches = config.plugins.filter(
|
|
166
|
+
(plugin) => plugin.api?.ngDocApplication?.schemaVersion === 1
|
|
167
|
+
);
|
|
168
|
+
if (matches.length > 1) {
|
|
169
|
+
throw buildError(
|
|
170
|
+
"NGDOC_VITE_APPLICATION",
|
|
171
|
+
"Expected at most one createNgDocApplicationPlugin in the Vite configuration."
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
found = matches[0]?.api.ngDocApplication;
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
api: () => found
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
async function buildNgDocViteApplication(options, dependencies = defaultDependencies) {
|
|
181
|
+
assertSupportedViteVersion();
|
|
182
|
+
assertConsistentAngularBuild();
|
|
183
|
+
const configFile = path.resolve(options.configFile);
|
|
184
|
+
const outputPath = path.resolve(options.outputPath);
|
|
185
|
+
const browser = path.join(outputPath, "browser");
|
|
186
|
+
const serverDirectory = path.join(outputPath, "server");
|
|
187
|
+
const serverEntry = path.join(serverDirectory, "server.mjs");
|
|
188
|
+
const mode = options.mode ?? "production";
|
|
189
|
+
const log = options.log ?? (() => {
|
|
190
|
+
});
|
|
191
|
+
const aborted = () => {
|
|
192
|
+
if (options.signal?.aborted)
|
|
193
|
+
throw buildError("NGDOC_VITE_BUILD_ABORTED", "The build was aborted.");
|
|
194
|
+
};
|
|
195
|
+
const timed = async (label, step) => {
|
|
196
|
+
const started = Date.now();
|
|
197
|
+
const value = await step();
|
|
198
|
+
log(`${label} in ${((Date.now() - started) / 1e3).toFixed(1)} s`);
|
|
199
|
+
return value;
|
|
200
|
+
};
|
|
201
|
+
let ssr = options.ssr;
|
|
202
|
+
const noServer = () => buildError(
|
|
203
|
+
"NGDOC_VITE_SERVER_ENTRY",
|
|
204
|
+
"Prerendering needs the server bundle: build it (ssr) from createNgDocApplicationPlugin with a server entry."
|
|
205
|
+
);
|
|
206
|
+
if (!options.skipBuild && options.prerender === true && options.ssr === false) throw noServer();
|
|
207
|
+
if (!options.skipBuild) {
|
|
208
|
+
const probe = applicationProbe();
|
|
209
|
+
const generation = generationHandoff();
|
|
210
|
+
await timed(
|
|
211
|
+
`Built the browser bundle into ${browser}`,
|
|
212
|
+
() => dependencies.build({
|
|
213
|
+
configFile,
|
|
214
|
+
mode,
|
|
215
|
+
plugins: [probe.plugin, generation],
|
|
216
|
+
build: { outDir: browser, emptyOutDir: true }
|
|
217
|
+
})
|
|
218
|
+
);
|
|
219
|
+
aborted();
|
|
220
|
+
const entry = probe.api()?.serverEntry;
|
|
221
|
+
ssr ??= entry !== void 0;
|
|
222
|
+
if (!ssr) {
|
|
223
|
+
await rm(serverDirectory, { recursive: true, force: true });
|
|
224
|
+
await rm(path.join(outputPath, "prerendered-routes.json"), { force: true });
|
|
225
|
+
if (options.prerender === true) throw noServer();
|
|
226
|
+
} else {
|
|
227
|
+
if (!entry) {
|
|
228
|
+
throw buildError(
|
|
229
|
+
"NGDOC_VITE_SERVER_ENTRY",
|
|
230
|
+
"The server build needs createNgDocApplicationPlugin with a server entry in the Vite configuration."
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
await timed(
|
|
234
|
+
`Built the server bundle into ${serverDirectory}`,
|
|
235
|
+
() => dependencies.build({
|
|
236
|
+
configFile,
|
|
237
|
+
mode,
|
|
238
|
+
plugins: [generation],
|
|
239
|
+
build: {
|
|
240
|
+
ssr: true,
|
|
241
|
+
outDir: serverDirectory,
|
|
242
|
+
emptyOutDir: true,
|
|
243
|
+
rolldownOptions: {
|
|
244
|
+
input: { server: entry },
|
|
245
|
+
output: {
|
|
246
|
+
format: "es",
|
|
247
|
+
entryFileNames: "[name].mjs",
|
|
248
|
+
chunkFileNames: "chunks/[name]-[hash].mjs"
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
})
|
|
253
|
+
);
|
|
254
|
+
aborted();
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
const prerender = options.prerender ?? (options.skipBuild ? true : ssr === true);
|
|
258
|
+
if (!prerender) return { browser, ...ssr ? { server: serverEntry } : {} };
|
|
259
|
+
const report = await timed(
|
|
260
|
+
"Prerendered the routes",
|
|
261
|
+
() => dependencies.prerender({
|
|
262
|
+
browserDir: browser,
|
|
263
|
+
serverEntry,
|
|
264
|
+
routes: options.routes ?? [],
|
|
265
|
+
discoverRoutes: options.discoverRoutes ?? true,
|
|
266
|
+
...options.routeTimeoutMs === void 0 ? {} : { routeTimeoutMs: options.routeTimeoutMs },
|
|
267
|
+
...options.signal ? { signal: options.signal } : {}
|
|
268
|
+
})
|
|
269
|
+
);
|
|
270
|
+
await writeFile(
|
|
271
|
+
path.join(outputPath, "prerendered-routes.json"),
|
|
272
|
+
`${JSON.stringify({ routes: report.routes, excluded: report.excluded }, null, 2)}
|
|
273
|
+
`
|
|
274
|
+
);
|
|
275
|
+
log(`Prerendered ${report.routes.length} route(s) into ${browser}`);
|
|
276
|
+
if (report.errors.length) {
|
|
277
|
+
log(`The application logged ${report.errors.length} error(s) while prerendering:`);
|
|
278
|
+
for (const { route, message: message2 } of report.errors.slice(0, 10)) log(` ${route}: ${message2}`);
|
|
279
|
+
}
|
|
280
|
+
return { browser, server: serverEntry, prerendered: report };
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// libs/builder/generator/vite/builders.ts
|
|
284
|
+
var defaultDependencies2 = {
|
|
285
|
+
build: (options) => buildNgDocViteApplication(options),
|
|
286
|
+
createServer: viteCreateServer
|
|
287
|
+
};
|
|
288
|
+
function message(error) {
|
|
289
|
+
return error instanceof Error ? error.message : String(error);
|
|
290
|
+
}
|
|
291
|
+
function runViteDevServerBuilder(options, context, dependencies = defaultDependencies2) {
|
|
292
|
+
return new Observable((subscriber) => {
|
|
293
|
+
let server;
|
|
294
|
+
let stopped = false;
|
|
295
|
+
const close = () => server?.close().catch((error) => context.logger.error(message(error)));
|
|
296
|
+
void (async () => {
|
|
297
|
+
try {
|
|
298
|
+
server = await dependencies.createServer({
|
|
299
|
+
configFile: path2.resolve(context.workspaceRoot, options.configFile),
|
|
300
|
+
mode: options.mode ?? "development",
|
|
301
|
+
server: {
|
|
302
|
+
...options.host === void 0 ? {} : { host: options.host },
|
|
303
|
+
...options.port === void 0 ? {} : { port: options.port }
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
if (stopped) {
|
|
307
|
+
await close();
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
await server.listen();
|
|
311
|
+
server.printUrls();
|
|
312
|
+
const baseUrl = server.resolvedUrls?.local[0];
|
|
313
|
+
subscriber.next({ success: true, ...baseUrl ? { baseUrl } : {} });
|
|
314
|
+
} catch (error) {
|
|
315
|
+
context.logger.error(message(error));
|
|
316
|
+
await close();
|
|
317
|
+
subscriber.next({ success: false, error: message(error) });
|
|
318
|
+
subscriber.complete();
|
|
319
|
+
}
|
|
320
|
+
})();
|
|
321
|
+
return () => {
|
|
322
|
+
stopped = true;
|
|
323
|
+
void close();
|
|
324
|
+
};
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// libs/builder/generator/vite/dev-server-builder.ts
|
|
329
|
+
var dev_server_builder_default = createBuilder(
|
|
330
|
+
(options, context) => runViteDevServerBuilder(options, context)
|
|
331
|
+
);
|
|
332
|
+
export {
|
|
333
|
+
dev_server_builder_default as default
|
|
334
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"title": "NgDoc Vite development server",
|
|
4
|
+
"description": "Serves an Angular application with the Vite development server and the NgDoc Vite engine.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"configFile": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The Vite configuration file, relative to the workspace root."
|
|
10
|
+
},
|
|
11
|
+
"mode": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The Vite mode.",
|
|
14
|
+
"default": "development"
|
|
15
|
+
},
|
|
16
|
+
"host": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The host to listen on. Defaults to the Vite configuration's server.host."
|
|
19
|
+
},
|
|
20
|
+
"port": {
|
|
21
|
+
"type": "number",
|
|
22
|
+
"description": "The port to listen on. Defaults to the Vite configuration's server.port."
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"required": ["configFile"],
|
|
26
|
+
"additionalProperties": false
|
|
27
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { HtmlTagDescriptor, ViteDevServer } from 'vite';
|
|
2
|
+
/** Timings of the development style gate, in milliseconds. */
|
|
3
|
+
export interface NgDocDevStyleGateTimings {
|
|
4
|
+
/** How long one style sheet may hide content before the gate stops waiting for it. */
|
|
5
|
+
readonly sheet: number;
|
|
6
|
+
/** How long the page must add no component style sheet before the initial load is over. */
|
|
7
|
+
readonly quiet: number;
|
|
8
|
+
/** How long after the script starts the initial load is over, whatever happens. */
|
|
9
|
+
readonly limit: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Returns the inline script that keeps the first paint of a development page from showing
|
|
13
|
+
* components without their styles.
|
|
14
|
+
*
|
|
15
|
+
* With live reload, Analog compiles component styles to external style sheets: Angular adds a
|
|
16
|
+
* `<link rel="stylesheet">` for a component when it first creates it, in the same task as the
|
|
17
|
+
* component's elements. A link added by a script does not block rendering, so the component
|
|
18
|
+
* paints unstyled until its sheet arrives. Production inlines the styles, and server rendering
|
|
19
|
+
* puts them in the page, so neither has the problem.
|
|
20
|
+
*
|
|
21
|
+
* Only the initial load is gated: from the start of the page until it has added no component
|
|
22
|
+
* sheet for `quiet` ms with none pending, until the reader's first input, or until `limit` ms,
|
|
23
|
+
* whichever comes first. During it, the gate hides the body until every component sheet the page
|
|
24
|
+
* adds has loaded (or failed, or waited `sheet` ms), so the first paint is styled, the way the
|
|
25
|
+
* render-blocking styles of a production page are. Angular names a component in its sheet's URL
|
|
26
|
+
* (`?ngcomp`); other sheets are ignored. After the initial load the gate hides nothing: a
|
|
27
|
+
* component created later (a dialog, the search palette) may paint unstyled for a moment in
|
|
28
|
+
* development, but the page never blanks and focus is never moved off a hidden element.
|
|
29
|
+
*
|
|
30
|
+
* It is a string, not a function's source, so no build or coverage tool can rewrite it with
|
|
31
|
+
* helpers the page does not have. The mutation observer runs before the next paint, because
|
|
32
|
+
* Angular adds the link and the elements in one task.
|
|
33
|
+
* @param timings - The timings, in milliseconds.
|
|
34
|
+
* @returns The script.
|
|
35
|
+
*/
|
|
36
|
+
export declare function ngDocDevStyleGate(timings?: NgDocDevStyleGateTimings): string;
|
|
37
|
+
/** The development style gate with its default timings. */
|
|
38
|
+
export declare const NG_DOC_DEV_STYLE_GATE: string;
|
|
39
|
+
/**
|
|
40
|
+
* The index page tags that let the first paint of a development page look like production:
|
|
41
|
+
* the global style sheets inlined in `<head>`, and the component style gate.
|
|
42
|
+
*
|
|
43
|
+
* Vite adds a global style sheet with a script, after the application's modules have loaded, so
|
|
44
|
+
* the first paint has no global styles: no font, layout or theme background (a dark theme paints
|
|
45
|
+
* white first). Each inlined sheet is a `<style data-vite-dev-id>` with the id Vite's client
|
|
46
|
+
* uses for it: the client adopts the element, so the module's own copy replaces its text in
|
|
47
|
+
* place, and hot updates keep working, with no duplicate and no change of order. A sheet that
|
|
48
|
+
* fails to compile is left to the module, which reports the error.
|
|
49
|
+
* @param server - The development server.
|
|
50
|
+
* @param styles - The global style sheets, as absolute paths.
|
|
51
|
+
* @returns The tags to add to `<head>`.
|
|
52
|
+
*/
|
|
53
|
+
export declare function ngDocDevStyleTags(server: ViteDevServer, styles: readonly string[]): Promise<HtmlTagDescriptor[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Reads the id and the CSS out of a style sheet module as Vite serves it in development. The
|
|
56
|
+
* page imports that same module, so transforming it here costs nothing extra; a `?direct`
|
|
57
|
+
* request would add a second module that every edit of the sheet then hot-updates, which makes
|
|
58
|
+
* the client reload the page.
|
|
59
|
+
* @param code - The module's code.
|
|
60
|
+
* @returns The sheet, or `undefined` for code in another shape.
|
|
61
|
+
*/
|
|
62
|
+
export declare function cssModuleSheet(code: string): {
|
|
63
|
+
id: string;
|
|
64
|
+
css: string;
|
|
65
|
+
} | undefined;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BuildResult, Diagnostic } from '../contracts.js';
|
|
2
|
+
export declare function diagnosticText(diagnostic: Diagnostic): string;
|
|
3
|
+
export declare function resultError(result: BuildResult, fallback: string): Error;
|
|
4
|
+
export declare function hostDiagnostic(code: string, message: string): Diagnostic;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { FileChange } from '../contracts.js';
|
|
2
|
+
/**
|
|
3
|
+
* How often a recorded file outside the workspace is re-checked. These are configuration lookups
|
|
4
|
+
* (`.editorconfig`, `.prettierrc*`, `package.json` in the directories above the workspace) and
|
|
5
|
+
* rarely edited, so a change there is noticed within about a second.
|
|
6
|
+
*/
|
|
7
|
+
export declare const EXTERNAL_PROBE_INTERVAL_MS = 1000;
|
|
8
|
+
/**
|
|
9
|
+
* At most this many files outside the workspace are polled. More are handed to the native watcher
|
|
10
|
+
* as before, so a workspace whose inputs mostly live elsewhere never turns into a stat storm.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MAX_EXTERNAL_PROBES = 512;
|
|
13
|
+
/** A file's probe state: its metadata signature, `missing`, or the code of a failed lookup. */
|
|
14
|
+
export declare function probeState(file: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Watches individual files outside the workspace by polling their metadata instead of attaching
|
|
17
|
+
* the shared native watcher to them. chokidar's FSEvents backend watches a missing or extension
|
|
18
|
+
* file through its directory and consolidates nearby streams upwards, so a probe such as
|
|
19
|
+
* `/.editorconfig` or `/package.json` made the Vite process subscribe to every file event on the
|
|
20
|
+
* disk (`/`, `/Users`). A poll costs one `stat` per probe per interval and sees exactly the probed
|
|
21
|
+
* path: its creation, change and removal.
|
|
22
|
+
*
|
|
23
|
+
* The baseline is taken synchronously when a path is added, before the generation that recorded
|
|
24
|
+
* it is published, so a change after that point is reported on the next poll.
|
|
25
|
+
*/
|
|
26
|
+
export declare class ExternalProbeWatcher {
|
|
27
|
+
private readonly emit;
|
|
28
|
+
private readonly intervalMs;
|
|
29
|
+
private readonly states;
|
|
30
|
+
private timer?;
|
|
31
|
+
private polling;
|
|
32
|
+
private disposed;
|
|
33
|
+
constructor(emit: (change: FileChange) => void, intervalMs?: number);
|
|
34
|
+
get size(): number;
|
|
35
|
+
has(file: string): boolean;
|
|
36
|
+
add(files: readonly string[]): void;
|
|
37
|
+
/** One pass over every probe; exported for deterministic tests. */
|
|
38
|
+
poll(): Promise<void>;
|
|
39
|
+
dispose(): void;
|
|
40
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import type { BuildResult, FileChange, OutputManifest } from '../contracts.js';
|
|
2
|
+
type EventType = 'create' | 'update' | 'delete';
|
|
3
|
+
export interface PhysicalState {
|
|
4
|
+
digest?: string;
|
|
5
|
+
version: string;
|
|
6
|
+
}
|
|
7
|
+
export interface HostUpdateTicket {
|
|
8
|
+
readonly ready: Promise<void>;
|
|
9
|
+
readonly token: object;
|
|
10
|
+
}
|
|
11
|
+
export interface InitialCompilationInventory {
|
|
12
|
+
readonly files: ReadonlyArray<{
|
|
13
|
+
path: string;
|
|
14
|
+
digest: string;
|
|
15
|
+
}>;
|
|
16
|
+
isCurrent(): boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function observePhysicalState(file: string, read?: () => string | Promise<string>): Promise<PhysicalState>;
|
|
19
|
+
/** A synchronous metadata-only stamp preserves the event-time identity without starting I/O queues. */
|
|
20
|
+
export declare function observePhysicalVersion(file: string): string | undefined;
|
|
21
|
+
/** Coordinates committed generator versions with Vite's client hot-update pipeline. */
|
|
22
|
+
export declare class HostUpdateCoordinator {
|
|
23
|
+
private readonly notify;
|
|
24
|
+
private readonly fail;
|
|
25
|
+
private outputRoot?;
|
|
26
|
+
private manifest?;
|
|
27
|
+
private announcedManifest?;
|
|
28
|
+
private pendingManifest?;
|
|
29
|
+
private publishedGeneration?;
|
|
30
|
+
private latestAttempt?;
|
|
31
|
+
private readonly attempts;
|
|
32
|
+
private readonly pendingSources;
|
|
33
|
+
private readonly claimedSources;
|
|
34
|
+
private readonly blockers;
|
|
35
|
+
private readonly diagnosticFailures;
|
|
36
|
+
/** How many compiler diagnostics were ever recorded: the mark a pass takes when it starts. */
|
|
37
|
+
private diagnosticRecords;
|
|
38
|
+
/** Each Vite hot update's token, by that event's `read` function (shared by all its hooks). */
|
|
39
|
+
private readonly tokensByEvent;
|
|
40
|
+
private diagnosticChanged;
|
|
41
|
+
private outputDrain;
|
|
42
|
+
private hostDrain;
|
|
43
|
+
private pendingGeneration?;
|
|
44
|
+
private sequence;
|
|
45
|
+
private disposed;
|
|
46
|
+
constructor(notify: () => void, fail: (error: Error) => void);
|
|
47
|
+
seed(outputRoot: string, manifest: OutputManifest): void;
|
|
48
|
+
initialCompilationInventory(): InitialCompilationInventory;
|
|
49
|
+
started(generation: number, changes: FileChange[]): void;
|
|
50
|
+
/**
|
|
51
|
+
* The session discarded these source changes as unchanged saves, so no generation will claim
|
|
52
|
+
* their pending hot updates. They are released unclaimed, as for a file outside the generator's
|
|
53
|
+
* inputs: a plain source completes at once, and a compiler source requests the current reload
|
|
54
|
+
* after its own Angular acknowledgment. A later generation that lists the path claims only
|
|
55
|
+
* hot updates begun after this call.
|
|
56
|
+
*/
|
|
57
|
+
unchanged(changes: FileChange[]): void;
|
|
58
|
+
result(result: BuildResult): void;
|
|
59
|
+
publication(generation: number, status: 'success' | 'failure' | 'skipped' | 'cancelled', error?: Error): void;
|
|
60
|
+
begin(file: string, type: EventType, read: () => string | Promise<string>, relevantSource: boolean): HostUpdateTicket;
|
|
61
|
+
/**
|
|
62
|
+
* Records this exact host hook's compiler acknowledgment without waiting on peer hooks.
|
|
63
|
+
*
|
|
64
|
+
* @param recoverBefore A {@link diagnosticMark} taken when a successful whole-program pass
|
|
65
|
+
* started: every diagnostic recorded before it is repaired too, whatever its hook's order.
|
|
66
|
+
*/
|
|
67
|
+
acknowledge(ticket: HostUpdateTicket, resourceWitness?: boolean, compilerPass?: boolean, recoverBefore?: number): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Whether this coordinator announces the hot update identified by `read` itself: a committed
|
|
70
|
+
* generated output that a generation claimed. Its host hooks settle only once the newest
|
|
71
|
+
* generation is published and every host obligation is drained, and by then `flush()` has sent
|
|
72
|
+
* that generation's reload (or its outputs equal the last announced ones). A native reload for
|
|
73
|
+
* the same output would be a second one.
|
|
74
|
+
*/
|
|
75
|
+
announces(read: object): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* The other TypeScript outputs that the generation of this generated TypeScript update created
|
|
78
|
+
* or changed in place and whose own hot updates have not completed yet. The Angular composition
|
|
79
|
+
* compiles them in this update's pass, so a later report of any of them with the same bytes (a
|
|
80
|
+
* created output reported as changed, a repeated change) takes no pass of its own. Call it after
|
|
81
|
+
* `ticket.ready`, which binds the generation.
|
|
82
|
+
*/
|
|
83
|
+
compilerCompanions(ticket: HostUpdateTicket): string[];
|
|
84
|
+
/**
|
|
85
|
+
* Whether `file` is a generated output: a path below the output root of the published
|
|
86
|
+
* generation. Nothing is generated before the first publication or after disposal.
|
|
87
|
+
* @param file An absolute path.
|
|
88
|
+
*/
|
|
89
|
+
generated(file: string): boolean;
|
|
90
|
+
/** A failed compiler candidate is observed, but never acknowledged as successful. */
|
|
91
|
+
diagnostic(ticket: HostUpdateTicket, error: Error): void;
|
|
92
|
+
diagnosticError(): Error | undefined;
|
|
93
|
+
/** The diagnostics recorded so far; a pass that starts now can repair exactly these. */
|
|
94
|
+
diagnosticMark(): number;
|
|
95
|
+
private recoverDiagnostics;
|
|
96
|
+
/** Waits for the current accepted publication and all peer host acknowledgments. */
|
|
97
|
+
settle(ticket: HostUpdateTicket): Promise<void>;
|
|
98
|
+
/** Waits for the candidate's atomic commit boundary, including a failure that kept last-good. */
|
|
99
|
+
committed(ticket: HostUpdateTicket): Promise<void>;
|
|
100
|
+
complete(ticket: HostUpdateTicket): Promise<void>;
|
|
101
|
+
published(result: Extract<BuildResult, {
|
|
102
|
+
status: 'success';
|
|
103
|
+
}>, recovered: boolean): void;
|
|
104
|
+
dispose(): void;
|
|
105
|
+
blockerCount(): number;
|
|
106
|
+
private defineExpected;
|
|
107
|
+
private prepareGenerated;
|
|
108
|
+
private findMatchingAttempt;
|
|
109
|
+
/**
|
|
110
|
+
* Binds a report of an output whose expectation its generation already completed, while the
|
|
111
|
+
* file is still the one that generation wrote. Vite's own reload for it would be a second one
|
|
112
|
+
* (the adapter reloaded for that generation), and it obliges no further compiler pass.
|
|
113
|
+
* @param token A generated output's report that matched no open expectation.
|
|
114
|
+
*/
|
|
115
|
+
private bindRepeat;
|
|
116
|
+
private prepareSource;
|
|
117
|
+
private attachExpected;
|
|
118
|
+
private matches;
|
|
119
|
+
private resolveShapes;
|
|
120
|
+
private claimSource;
|
|
121
|
+
/**
|
|
122
|
+
* A claimed source that only a compiler pass can witness (a created or deleted TypeScript
|
|
123
|
+
* source, a resource without its own witness) waits for its generation's compiled update of a
|
|
124
|
+
* generated TypeScript output: that pass reads the program with the source in it. A generation
|
|
125
|
+
* that rewrites no such output (a category without pages, a new component file no page imports
|
|
126
|
+
* yet, an edit whose outputs are data modules only) never takes that pass, so once its result is
|
|
127
|
+
* known and every such update of it has completed, its sources are released; otherwise the edit
|
|
128
|
+
* never settled (`NGDOC_VITE_HOST_TIMEOUT`).
|
|
129
|
+
*/
|
|
130
|
+
private releaseUnwitnessedSources;
|
|
131
|
+
private supersedeOlderPath;
|
|
132
|
+
private supersedeOlderSource;
|
|
133
|
+
private sourceBlocker;
|
|
134
|
+
private addBlocker;
|
|
135
|
+
private clearBlocker;
|
|
136
|
+
private hasOutputBlockers;
|
|
137
|
+
private flush;
|
|
138
|
+
private queueCurrentReload;
|
|
139
|
+
private awaitCurrentPublication;
|
|
140
|
+
private awaitWithoutDiagnostic;
|
|
141
|
+
private delta;
|
|
142
|
+
private prune;
|
|
143
|
+
private withTimeout;
|
|
144
|
+
}
|
|
145
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
import type { NgDocVitePluginOptions } from './options.js';
|
|
3
|
+
export type { NgDocVitePluginOptions } from './options.js';
|
|
4
|
+
/** Physical-output Vite integration which owns the supplied complete Analog Angular plugin array. */
|
|
5
|
+
export declare function createNgDocVitePlugin(options: NgDocVitePluginOptions): Plugin[];
|
|
6
|
+
export type { NgDocViteApplicationOptions, NgDocViteAssetPattern } from './application.js';
|
|
7
|
+
export { createNgDocApplicationPlugin, NG_DOC_BROWSER_ENTRY, NG_DOC_SERVER_ENTRY, } from './application.js';
|
|
8
|
+
export type { NgDocExcludedRoute, NgDocPrerenderOptions, NgDocPrerenderReport, NgDocPrerenderRoute, } from './prerender.js';
|
|
9
|
+
export { prerenderNgDoc } from './prerender.js';
|
|
10
|
+
export type { NgDocViteBuildOptions, NgDocViteBuildResult } from './production.js';
|
|
11
|
+
export { buildNgDocViteApplication } from './production.js';
|
|
12
|
+
export type { NgDocSsrJsonValue, NgDocSsrRequest, NgDocViteSsrRenderer } from './ssr-renderer.js';
|
|
13
|
+
export { getNgDocViteSsrRenderer } from './ssr-renderer.js';
|