@hydranium/core 1.0.0-next.10
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/LICENSE +21 -0
- package/README.md +100 -0
- package/lib/documents/ast-document-manager.d.ts +243 -0
- package/lib/documents/ast-document-manager.d.ts.map +1 -0
- package/lib/documents/ast-document-manager.js +302 -0
- package/lib/documents/ast-document-manager.js.map +1 -0
- package/lib/documents/client-ids.d.ts +30 -0
- package/lib/documents/client-ids.d.ts.map +1 -0
- package/lib/documents/client-ids.js +30 -0
- package/lib/documents/client-ids.js.map +1 -0
- package/lib/documents/hydranium-text-documents.d.ts +490 -0
- package/lib/documents/hydranium-text-documents.d.ts.map +1 -0
- package/lib/documents/hydranium-text-documents.js +893 -0
- package/lib/documents/hydranium-text-documents.js.map +1 -0
- package/lib/documents/index.d.ts +14 -0
- package/lib/documents/index.d.ts.map +1 -0
- package/lib/documents/index.js +14 -0
- package/lib/documents/index.js.map +1 -0
- package/lib/documents/language-client-text-shadow.d.ts +101 -0
- package/lib/documents/language-client-text-shadow.d.ts.map +1 -0
- package/lib/documents/language-client-text-shadow.js +156 -0
- package/lib/documents/language-client-text-shadow.js.map +1 -0
- package/lib/documents/self-save-registry.d.ts +55 -0
- package/lib/documents/self-save-registry.d.ts.map +1 -0
- package/lib/documents/self-save-registry.js +68 -0
- package/lib/documents/self-save-registry.js.map +1 -0
- package/lib/index.d.ts +38 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +39 -0
- package/lib/index.js.map +1 -0
- package/lib/langium/ast-extension/ast-extension-contribution.d.ts +33 -0
- package/lib/langium/ast-extension/ast-extension-contribution.d.ts.map +1 -0
- package/lib/langium/ast-extension/ast-extension-contribution.js +10 -0
- package/lib/langium/ast-extension/ast-extension-contribution.js.map +1 -0
- package/lib/langium/ast-extension/ast-extension-service.d.ts +212 -0
- package/lib/langium/ast-extension/ast-extension-service.d.ts.map +1 -0
- package/lib/langium/ast-extension/ast-extension-service.js +181 -0
- package/lib/langium/ast-extension/ast-extension-service.js.map +1 -0
- package/lib/langium/ast-extension/ast-node-builder.d.ts +90 -0
- package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -0
- package/lib/langium/ast-extension/ast-node-builder.js +61 -0
- package/lib/langium/ast-extension/ast-node-builder.js.map +1 -0
- package/lib/langium/ast-extension/index.d.ts +12 -0
- package/lib/langium/ast-extension/index.d.ts.map +1 -0
- package/lib/langium/ast-extension/index.js +12 -0
- package/lib/langium/ast-extension/index.js.map +1 -0
- package/lib/langium/bootstrap.d.ts +224 -0
- package/lib/langium/bootstrap.d.ts.map +1 -0
- package/lib/langium/bootstrap.js +512 -0
- package/lib/langium/bootstrap.js.map +1 -0
- package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +77 -0
- package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts.map +1 -0
- package/lib/langium/build-phase-pass/build-phase-pass-service.js +102 -0
- package/lib/langium/build-phase-pass/build-phase-pass-service.js.map +1 -0
- package/lib/langium/build-phase-pass/build-phase-pass.d.ts +106 -0
- package/lib/langium/build-phase-pass/build-phase-pass.d.ts.map +1 -0
- package/lib/langium/build-phase-pass/build-phase-pass.js +43 -0
- package/lib/langium/build-phase-pass/build-phase-pass.js.map +1 -0
- package/lib/langium/build-phase-pass/index.d.ts +11 -0
- package/lib/langium/build-phase-pass/index.d.ts.map +1 -0
- package/lib/langium/build-phase-pass/index.js +11 -0
- package/lib/langium/build-phase-pass/index.js.map +1 -0
- package/lib/langium/config/index.d.ts +10 -0
- package/lib/langium/config/index.d.ts.map +1 -0
- package/lib/langium/config/index.js +10 -0
- package/lib/langium/config/index.js.map +1 -0
- package/lib/langium/config/settings.d.ts +173 -0
- package/lib/langium/config/settings.d.ts.map +1 -0
- package/lib/langium/config/settings.js +196 -0
- package/lib/langium/config/settings.js.map +1 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts +109 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.js +153 -0
- package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -0
- package/lib/langium/diagnostics/index.d.ts +14 -0
- package/lib/langium/diagnostics/index.d.ts.map +1 -0
- package/lib/langium/diagnostics/index.js +19 -0
- package/lib/langium/diagnostics/index.js.map +1 -0
- package/lib/langium/diagnostics/log-file-token.d.ts +16 -0
- package/lib/langium/diagnostics/log-file-token.d.ts.map +1 -0
- package/lib/langium/diagnostics/log-file-token.js +25 -0
- package/lib/langium/diagnostics/log-file-token.js.map +1 -0
- package/lib/langium/diagnostics/log-preamble.d.ts +42 -0
- package/lib/langium/diagnostics/log-preamble.d.ts.map +1 -0
- package/lib/langium/diagnostics/log-preamble.js +57 -0
- package/lib/langium/diagnostics/log-preamble.js.map +1 -0
- package/lib/langium/diagnostics/logger.d.ts +104 -0
- package/lib/langium/diagnostics/logger.d.ts.map +1 -0
- package/lib/langium/diagnostics/logger.js +178 -0
- package/lib/langium/diagnostics/logger.js.map +1 -0
- package/lib/langium/diagnostics/lsp-logger.d.ts +76 -0
- package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -0
- package/lib/langium/diagnostics/lsp-logger.js +223 -0
- package/lib/langium/diagnostics/lsp-logger.js.map +1 -0
- package/lib/langium/diagnostics/server-tracer.d.ts +27 -0
- package/lib/langium/diagnostics/server-tracer.d.ts.map +1 -0
- package/lib/langium/diagnostics/server-tracer.js +66 -0
- package/lib/langium/diagnostics/server-tracer.js.map +1 -0
- package/lib/langium/document-builder/build-pipeline-integration.d.ts +88 -0
- package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -0
- package/lib/langium/document-builder/build-pipeline-integration.js +151 -0
- package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -0
- package/lib/langium/document-builder/document-builder.d.ts +405 -0
- package/lib/langium/document-builder/document-builder.d.ts.map +1 -0
- package/lib/langium/document-builder/document-builder.js +729 -0
- package/lib/langium/document-builder/document-builder.js.map +1 -0
- package/lib/langium/document-builder/index.d.ts +12 -0
- package/lib/langium/document-builder/index.d.ts.map +1 -0
- package/lib/langium/document-builder/index.js +12 -0
- package/lib/langium/document-builder/index.js.map +1 -0
- package/lib/langium/document-builder/labeled-phase-listener.d.ts +21 -0
- package/lib/langium/document-builder/labeled-phase-listener.d.ts.map +1 -0
- package/lib/langium/document-builder/labeled-phase-listener.js +15 -0
- package/lib/langium/document-builder/labeled-phase-listener.js.map +1 -0
- package/lib/langium/documentation/comment-provider.d.ts +31 -0
- package/lib/langium/documentation/comment-provider.d.ts.map +1 -0
- package/lib/langium/documentation/comment-provider.js +36 -0
- package/lib/langium/documentation/comment-provider.js.map +1 -0
- package/lib/langium/documentation/index.d.ts +10 -0
- package/lib/langium/documentation/index.d.ts.map +1 -0
- package/lib/langium/documentation/index.js +10 -0
- package/lib/langium/documentation/index.js.map +1 -0
- package/lib/langium/integration-services.d.ts +200 -0
- package/lib/langium/integration-services.d.ts.map +1 -0
- package/lib/langium/integration-services.js +65 -0
- package/lib/langium/integration-services.js.map +1 -0
- package/lib/langium/integrity/index.d.ts +12 -0
- package/lib/langium/integrity/index.d.ts.map +1 -0
- package/lib/langium/integrity/index.js +12 -0
- package/lib/langium/integrity/index.js.map +1 -0
- package/lib/langium/integrity/integrity-contribution.d.ts +42 -0
- package/lib/langium/integrity/integrity-contribution.d.ts.map +1 -0
- package/lib/langium/integrity/integrity-contribution.js +10 -0
- package/lib/langium/integrity/integrity-contribution.js.map +1 -0
- package/lib/langium/integrity/integrity-rule.d.ts +82 -0
- package/lib/langium/integrity/integrity-rule.d.ts.map +1 -0
- package/lib/langium/integrity/integrity-rule.js +52 -0
- package/lib/langium/integrity/integrity-rule.js.map +1 -0
- package/lib/langium/integrity/integrity-service.d.ts +221 -0
- package/lib/langium/integrity/integrity-service.d.ts.map +1 -0
- package/lib/langium/integrity/integrity-service.js +328 -0
- package/lib/langium/integrity/integrity-service.js.map +1 -0
- package/lib/langium/keys/default-element-key-provider.d.ts +19 -0
- package/lib/langium/keys/default-element-key-provider.d.ts.map +1 -0
- package/lib/langium/keys/default-element-key-provider.js +18 -0
- package/lib/langium/keys/default-element-key-provider.js.map +1 -0
- package/lib/langium/keys/element-key-provider.d.ts +106 -0
- package/lib/langium/keys/element-key-provider.d.ts.map +1 -0
- package/lib/langium/keys/element-key-provider.js +25 -0
- package/lib/langium/keys/element-key-provider.js.map +1 -0
- package/lib/langium/keys/index.d.ts +13 -0
- package/lib/langium/keys/index.d.ts.map +1 -0
- package/lib/langium/keys/index.js +13 -0
- package/lib/langium/keys/index.js.map +1 -0
- package/lib/langium/keys/name-based-key-provider.d.ts +99 -0
- package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -0
- package/lib/langium/keys/name-based-key-provider.js +134 -0
- package/lib/langium/keys/name-based-key-provider.js.map +1 -0
- package/lib/langium/keys/positional-key-provider.d.ts +41 -0
- package/lib/langium/keys/positional-key-provider.d.ts.map +1 -0
- package/lib/langium/keys/positional-key-provider.js +48 -0
- package/lib/langium/keys/positional-key-provider.js.map +1 -0
- package/lib/langium/labeling/index.d.ts +10 -0
- package/lib/langium/labeling/index.d.ts.map +1 -0
- package/lib/langium/labeling/index.js +10 -0
- package/lib/langium/labeling/index.js.map +1 -0
- package/lib/langium/labeling/label-provider.d.ts +79 -0
- package/lib/langium/labeling/label-provider.d.ts.map +1 -0
- package/lib/langium/labeling/label-provider.js +44 -0
- package/lib/langium/labeling/label-provider.js.map +1 -0
- package/lib/langium/language-module.d.ts +281 -0
- package/lib/langium/language-module.d.ts.map +1 -0
- package/lib/langium/language-module.js +103 -0
- package/lib/langium/language-module.js.map +1 -0
- package/lib/langium/language-types.d.ts +85 -0
- package/lib/langium/language-types.d.ts.map +1 -0
- package/lib/langium/language-types.js +173 -0
- package/lib/langium/language-types.js.map +1 -0
- package/lib/langium/model-service/index.d.ts +10 -0
- package/lib/langium/model-service/index.d.ts.map +1 -0
- package/lib/langium/model-service/index.js +10 -0
- package/lib/langium/model-service/index.js.map +1 -0
- package/lib/langium/model-service/model-service.d.ts +598 -0
- package/lib/langium/model-service/model-service.d.ts.map +1 -0
- package/lib/langium/model-service/model-service.js +889 -0
- package/lib/langium/model-service/model-service.js.map +1 -0
- package/lib/langium/module.d.ts +308 -0
- package/lib/langium/module.d.ts.map +1 -0
- package/lib/langium/module.js +165 -0
- package/lib/langium/module.js.map +1 -0
- package/lib/langium/naming/index.d.ts +11 -0
- package/lib/langium/naming/index.d.ts.map +1 -0
- package/lib/langium/naming/index.js +11 -0
- package/lib/langium/naming/index.js.map +1 -0
- package/lib/langium/naming/name-provider.d.ts +360 -0
- package/lib/langium/naming/name-provider.d.ts.map +1 -0
- package/lib/langium/naming/name-provider.js +240 -0
- package/lib/langium/naming/name-provider.js.map +1 -0
- package/lib/langium/naming/name-separator-validation.d.ts +47 -0
- package/lib/langium/naming/name-separator-validation.d.ts.map +1 -0
- package/lib/langium/naming/name-separator-validation.js +61 -0
- package/lib/langium/naming/name-separator-validation.js.map +1 -0
- package/lib/langium/project/abstract-project-manager.d.ts +242 -0
- package/lib/langium/project/abstract-project-manager.d.ts.map +1 -0
- package/lib/langium/project/abstract-project-manager.js +545 -0
- package/lib/langium/project/abstract-project-manager.js.map +1 -0
- package/lib/langium/project/index.d.ts +13 -0
- package/lib/langium/project/index.d.ts.map +1 -0
- package/lib/langium/project/index.js +13 -0
- package/lib/langium/project/index.js.map +1 -0
- package/lib/langium/project/project-change-event.d.ts +64 -0
- package/lib/langium/project/project-change-event.d.ts.map +1 -0
- package/lib/langium/project/project-change-event.js +10 -0
- package/lib/langium/project/project-change-event.js.map +1 -0
- package/lib/langium/project/project-manager.d.ts +196 -0
- package/lib/langium/project/project-manager.d.ts.map +1 -0
- package/lib/langium/project/project-manager.js +10 -0
- package/lib/langium/project/project-manager.js.map +1 -0
- package/lib/langium/project/single-project-manager.d.ts +69 -0
- package/lib/langium/project/single-project-manager.d.ts.map +1 -0
- package/lib/langium/project/single-project-manager.js +104 -0
- package/lib/langium/project/single-project-manager.js.map +1 -0
- package/lib/langium/residency/cst-residency-service.d.ts +214 -0
- package/lib/langium/residency/cst-residency-service.d.ts.map +1 -0
- package/lib/langium/residency/cst-residency-service.js +349 -0
- package/lib/langium/residency/cst-residency-service.js.map +1 -0
- package/lib/langium/residency/index.d.ts +10 -0
- package/lib/langium/residency/index.d.ts.map +1 -0
- package/lib/langium/residency/index.js +10 -0
- package/lib/langium/residency/index.js.map +1 -0
- package/lib/langium/scope/ast-node-description-provider.d.ts +122 -0
- package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -0
- package/lib/langium/scope/ast-node-description-provider.js +115 -0
- package/lib/langium/scope/ast-node-description-provider.js.map +1 -0
- package/lib/langium/scope/hydranium-scope-computation.d.ts +163 -0
- package/lib/langium/scope/hydranium-scope-computation.d.ts.map +1 -0
- package/lib/langium/scope/hydranium-scope-computation.js +220 -0
- package/lib/langium/scope/hydranium-scope-computation.js.map +1 -0
- package/lib/langium/scope/hydranium-scope-provider.d.ts +411 -0
- package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -0
- package/lib/langium/scope/hydranium-scope-provider.js +543 -0
- package/lib/langium/scope/hydranium-scope-provider.js.map +1 -0
- package/lib/langium/scope/index.d.ts +18 -0
- package/lib/langium/scope/index.d.ts.map +1 -0
- package/lib/langium/scope/index.js +18 -0
- package/lib/langium/scope/index.js.map +1 -0
- package/lib/langium/scope/reference-builder.d.ts +125 -0
- package/lib/langium/scope/reference-builder.d.ts.map +1 -0
- package/lib/langium/scope/reference-builder.js +115 -0
- package/lib/langium/scope/reference-builder.js.map +1 -0
- package/lib/langium/scope/reference-candidate-provider.d.ts +228 -0
- package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -0
- package/lib/langium/scope/reference-candidate-provider.js +185 -0
- package/lib/langium/scope/reference-candidate-provider.js.map +1 -0
- package/lib/langium/scope/scope-extension-contribution.d.ts +32 -0
- package/lib/langium/scope/scope-extension-contribution.d.ts.map +1 -0
- package/lib/langium/scope/scope-extension-contribution.js +10 -0
- package/lib/langium/scope/scope-extension-contribution.js.map +1 -0
- package/lib/langium/scope/scope-extension-service.d.ts +149 -0
- package/lib/langium/scope/scope-extension-service.d.ts.map +1 -0
- package/lib/langium/scope/scope-extension-service.js +94 -0
- package/lib/langium/scope/scope-extension-service.js.map +1 -0
- package/lib/langium/scope/scoped-ast-node-description.d.ts +160 -0
- package/lib/langium/scope/scoped-ast-node-description.d.ts.map +1 -0
- package/lib/langium/scope/scoped-ast-node-description.js +98 -0
- package/lib/langium/scope/scoped-ast-node-description.js.map +1 -0
- package/lib/langium/scope/tier-specificity.d.ts +47 -0
- package/lib/langium/scope/tier-specificity.d.ts.map +1 -0
- package/lib/langium/scope/tier-specificity.js +83 -0
- package/lib/langium/scope/tier-specificity.js.map +1 -0
- package/lib/langium/serialization/abstract-serializer.d.ts +316 -0
- package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -0
- package/lib/langium/serialization/abstract-serializer.js +351 -0
- package/lib/langium/serialization/abstract-serializer.js.map +1 -0
- package/lib/langium/serialization/index.d.ts +14 -0
- package/lib/langium/serialization/index.d.ts.map +1 -0
- package/lib/langium/serialization/index.js +14 -0
- package/lib/langium/serialization/index.js.map +1 -0
- package/lib/langium/serialization/json-serializer.d.ts +106 -0
- package/lib/langium/serialization/json-serializer.d.ts.map +1 -0
- package/lib/langium/serialization/json-serializer.js +198 -0
- package/lib/langium/serialization/json-serializer.js.map +1 -0
- package/lib/langium/serialization/serialization-util.d.ts +29 -0
- package/lib/langium/serialization/serialization-util.d.ts.map +1 -0
- package/lib/langium/serialization/serialization-util.js +37 -0
- package/lib/langium/serialization/serialization-util.js.map +1 -0
- package/lib/langium/serialization/serializer.d.ts +66 -0
- package/lib/langium/serialization/serializer.d.ts.map +1 -0
- package/lib/langium/serialization/serializer.js +10 -0
- package/lib/langium/serialization/serializer.js.map +1 -0
- package/lib/langium/serialization/yaml-serializer.d.ts +166 -0
- package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -0
- package/lib/langium/serialization/yaml-serializer.js +228 -0
- package/lib/langium/serialization/yaml-serializer.js.map +1 -0
- package/lib/langium/service-registry.d.ts +220 -0
- package/lib/langium/service-registry.d.ts.map +1 -0
- package/lib/langium/service-registry.js +258 -0
- package/lib/langium/service-registry.js.map +1 -0
- package/lib/langium/shared-services.d.ts +98 -0
- package/lib/langium/shared-services.d.ts.map +1 -0
- package/lib/langium/shared-services.js +30 -0
- package/lib/langium/shared-services.js.map +1 -0
- package/lib/langium/transfer/index.d.ts +10 -0
- package/lib/langium/transfer/index.d.ts.map +1 -0
- package/lib/langium/transfer/index.js +10 -0
- package/lib/langium/transfer/index.js.map +1 -0
- package/lib/langium/transfer/transfer-encoder.d.ts +294 -0
- package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -0
- package/lib/langium/transfer/transfer-encoder.js +328 -0
- package/lib/langium/transfer/transfer-encoder.js.map +1 -0
- package/lib/langium/update-rewrite/index.d.ts +14 -0
- package/lib/langium/update-rewrite/index.d.ts.map +1 -0
- package/lib/langium/update-rewrite/index.js +14 -0
- package/lib/langium/update-rewrite/index.js.map +1 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.d.ts +52 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.d.ts.map +1 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.js +83 -0
- package/lib/langium/update-rewrite/normalize-empty-strings.js.map +1 -0
- package/lib/langium/update-rewrite/semantic-root-rewrite.d.ts +37 -0
- package/lib/langium/update-rewrite/semantic-root-rewrite.d.ts.map +1 -0
- package/lib/langium/update-rewrite/semantic-root-rewrite.js +51 -0
- package/lib/langium/update-rewrite/semantic-root-rewrite.js.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite-contribution.d.ts +42 -0
- package/lib/langium/update-rewrite/update-rewrite-contribution.d.ts.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite-contribution.js +10 -0
- package/lib/langium/update-rewrite/update-rewrite-contribution.js.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite-service.d.ts +89 -0
- package/lib/langium/update-rewrite/update-rewrite-service.d.ts.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite-service.js +75 -0
- package/lib/langium/update-rewrite/update-rewrite-service.js.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite.d.ts +59 -0
- package/lib/langium/update-rewrite/update-rewrite.d.ts.map +1 -0
- package/lib/langium/update-rewrite/update-rewrite.js +10 -0
- package/lib/langium/update-rewrite/update-rewrite.js.map +1 -0
- package/lib/langium/validation/document-validator.d.ts +106 -0
- package/lib/langium/validation/document-validator.d.ts.map +1 -0
- package/lib/langium/validation/document-validator.js +118 -0
- package/lib/langium/validation/document-validator.js.map +1 -0
- package/lib/langium/validation/index.d.ts +12 -0
- package/lib/langium/validation/index.d.ts.map +1 -0
- package/lib/langium/validation/index.js +12 -0
- package/lib/langium/validation/index.js.map +1 -0
- package/lib/langium/validation/validation-contribution-collector.d.ts +34 -0
- package/lib/langium/validation/validation-contribution-collector.d.ts.map +1 -0
- package/lib/langium/validation/validation-contribution-collector.js +51 -0
- package/lib/langium/validation/validation-contribution-collector.js.map +1 -0
- package/lib/langium/validation/validation-contribution.d.ts +36 -0
- package/lib/langium/validation/validation-contribution.d.ts.map +1 -0
- package/lib/langium/validation/validation-contribution.js +10 -0
- package/lib/langium/validation/validation-contribution.js.map +1 -0
- package/lib/langium/workspace/additional-document-contribution.d.ts +68 -0
- package/lib/langium/workspace/additional-document-contribution.d.ts.map +1 -0
- package/lib/langium/workspace/additional-document-contribution.js +23 -0
- package/lib/langium/workspace/additional-document-contribution.js.map +1 -0
- package/lib/langium/workspace/document-uri-policy.d.ts +151 -0
- package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -0
- package/lib/langium/workspace/document-uri-policy.js +121 -0
- package/lib/langium/workspace/document-uri-policy.js.map +1 -0
- package/lib/langium/workspace/file-system-provider.d.ts +30 -0
- package/lib/langium/workspace/file-system-provider.d.ts.map +1 -0
- package/lib/langium/workspace/file-system-provider.js +41 -0
- package/lib/langium/workspace/file-system-provider.js.map +1 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +45 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.js +64 -0
- package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -0
- package/lib/langium/workspace/hydranium-workspace-lock.d.ts +31 -0
- package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -0
- package/lib/langium/workspace/hydranium-workspace-lock.js +33 -0
- package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -0
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts +232 -0
- package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -0
- package/lib/langium/workspace/hydranium-workspace-manager.js +368 -0
- package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -0
- package/lib/langium/workspace/in-memory-file-system-provider.d.ts +127 -0
- package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -0
- package/lib/langium/workspace/in-memory-file-system-provider.js +195 -0
- package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -0
- package/lib/langium/workspace/index-manager.d.ts +142 -0
- package/lib/langium/workspace/index-manager.d.ts.map +1 -0
- package/lib/langium/workspace/index-manager.js +245 -0
- package/lib/langium/workspace/index-manager.js.map +1 -0
- package/lib/langium/workspace/index.d.ts +23 -0
- package/lib/langium/workspace/index.d.ts.map +1 -0
- package/lib/langium/workspace/index.js +23 -0
- package/lib/langium/workspace/index.js.map +1 -0
- package/lib/langium/workspace/initialize-workspace.d.ts +63 -0
- package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -0
- package/lib/langium/workspace/initialize-workspace.js +88 -0
- package/lib/langium/workspace/initialize-workspace.js.map +1 -0
- package/lib/langium/workspace/langium-documents.d.ts +47 -0
- package/lib/langium/workspace/langium-documents.d.ts.map +1 -0
- package/lib/langium/workspace/langium-documents.js +85 -0
- package/lib/langium/workspace/langium-documents.js.map +1 -0
- package/lib/langium/workspace/persistent-file-system-provider.d.ts +207 -0
- package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -0
- package/lib/langium/workspace/persistent-file-system-provider.js +208 -0
- package/lib/langium/workspace/persistent-file-system-provider.js.map +1 -0
- package/lib/langium/workspace/synthetic.d.ts +38 -0
- package/lib/langium/workspace/synthetic.d.ts.map +1 -0
- package/lib/langium/workspace/synthetic.js +58 -0
- package/lib/langium/workspace/synthetic.js.map +1 -0
- package/lib/langium/workspace/virtual-document.d.ts +78 -0
- package/lib/langium/workspace/virtual-document.d.ts.map +1 -0
- package/lib/langium/workspace/virtual-document.js +89 -0
- package/lib/langium/workspace/virtual-document.js.map +1 -0
- package/lib/langium/workspace/write-lock-scope.d.ts +69 -0
- package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -0
- package/lib/langium/workspace/write-lock-scope.js +54 -0
- package/lib/langium/workspace/write-lock-scope.js.map +1 -0
- package/lib/launcher/index.d.ts +10 -0
- package/lib/launcher/index.d.ts.map +1 -0
- package/lib/launcher/index.js +12 -0
- package/lib/launcher/index.js.map +1 -0
- package/lib/launcher/integrated-server.d.ts +28 -0
- package/lib/launcher/integrated-server.d.ts.map +1 -0
- package/lib/launcher/integrated-server.js +10 -0
- package/lib/launcher/integrated-server.js.map +1 -0
- package/lib/lsp/completion/hydranium-completion-provider.d.ts +89 -0
- package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -0
- package/lib/lsp/completion/hydranium-completion-provider.js +123 -0
- package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -0
- package/lib/lsp/hydranium-document-update-handler.d.ts +204 -0
- package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -0
- package/lib/lsp/hydranium-document-update-handler.js +288 -0
- package/lib/lsp/hydranium-document-update-handler.js.map +1 -0
- package/lib/lsp/index.d.ts +23 -0
- package/lib/lsp/index.d.ts.map +1 -0
- package/lib/lsp/index.js +23 -0
- package/lib/lsp/index.js.map +1 -0
- package/lib/lsp/instrument-connection.d.ts +36 -0
- package/lib/lsp/instrument-connection.d.ts.map +1 -0
- package/lib/lsp/instrument-connection.js +62 -0
- package/lib/lsp/instrument-connection.js.map +1 -0
- package/lib/lsp/language-module.d.ts +53 -0
- package/lib/lsp/language-module.d.ts.map +1 -0
- package/lib/lsp/language-module.js +28 -0
- package/lib/lsp/language-module.js.map +1 -0
- package/lib/lsp/semantic-token-provider.d.ts +131 -0
- package/lib/lsp/semantic-token-provider.d.ts.map +1 -0
- package/lib/lsp/semantic-token-provider.js +148 -0
- package/lib/lsp/semantic-token-provider.js.map +1 -0
- package/lib/lsp/shared-module.d.ts +76 -0
- package/lib/lsp/shared-module.d.ts.map +1 -0
- package/lib/lsp/shared-module.js +33 -0
- package/lib/lsp/shared-module.js.map +1 -0
- package/lib/lsp/start-language-server.d.ts +43 -0
- package/lib/lsp/start-language-server.d.ts.map +1 -0
- package/lib/lsp/start-language-server.js +60 -0
- package/lib/lsp/start-language-server.js.map +1 -0
- package/lib/node/ast-ground-truth.d.ts +57 -0
- package/lib/node/ast-ground-truth.d.ts.map +1 -0
- package/lib/node/ast-ground-truth.js +46 -0
- package/lib/node/ast-ground-truth.js.map +1 -0
- package/lib/node/event-loop-monitor.d.ts +40 -0
- package/lib/node/event-loop-monitor.d.ts.map +1 -0
- package/lib/node/event-loop-monitor.js +62 -0
- package/lib/node/event-loop-monitor.js.map +1 -0
- package/lib/node/index.d.ts +29 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +50 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/latency-from-env.d.ts +32 -0
- package/lib/node/latency-from-env.d.ts.map +1 -0
- package/lib/node/latency-from-env.js +36 -0
- package/lib/node/latency-from-env.js.map +1 -0
- package/lib/node/lint-grammar.d.ts +87 -0
- package/lib/node/lint-grammar.d.ts.map +1 -0
- package/lib/node/lint-grammar.js +124 -0
- package/lib/node/lint-grammar.js.map +1 -0
- package/lib/node/log-file-sink.d.ts +22 -0
- package/lib/node/log-file-sink.d.ts.map +1 -0
- package/lib/node/log-file-sink.js +43 -0
- package/lib/node/log-file-sink.js.map +1 -0
- package/lib/node/log-preamble-node.d.ts +28 -0
- package/lib/node/log-preamble-node.d.ts.map +1 -0
- package/lib/node/log-preamble-node.js +55 -0
- package/lib/node/log-preamble-node.js.map +1 -0
- package/lib/node/measure-memory.d.ts +86 -0
- package/lib/node/measure-memory.d.ts.map +1 -0
- package/lib/node/measure-memory.js +128 -0
- package/lib/node/measure-memory.js.map +1 -0
- package/lib/node/memory-monitor.d.ts +42 -0
- package/lib/node/memory-monitor.d.ts.map +1 -0
- package/lib/node/memory-monitor.js +83 -0
- package/lib/node/memory-monitor.js.map +1 -0
- package/lib/node/node-file-system-provider.d.ts +112 -0
- package/lib/node/node-file-system-provider.d.ts.map +1 -0
- package/lib/node/node-file-system-provider.js +230 -0
- package/lib/node/node-file-system-provider.js.map +1 -0
- package/lib/node/process-memory.d.ts +66 -0
- package/lib/node/process-memory.d.ts.map +1 -0
- package/lib/node/process-memory.js +252 -0
- package/lib/node/process-memory.js.map +1 -0
- package/lib/node/profile-capture.d.ts +118 -0
- package/lib/node/profile-capture.d.ts.map +1 -0
- package/lib/node/profile-capture.js +315 -0
- package/lib/node/profile-capture.js.map +1 -0
- package/lib/node/profile-digest.d.ts +49 -0
- package/lib/node/profile-digest.d.ts.map +1 -0
- package/lib/node/profile-digest.js +74 -0
- package/lib/node/profile-digest.js.map +1 -0
- package/lib/node/profiling-run.d.ts +80 -0
- package/lib/node/profiling-run.d.ts.map +1 -0
- package/lib/node/profiling-run.js +183 -0
- package/lib/node/profiling-run.js.map +1 -0
- package/lib/node/reflect-grammar.d.ts +109 -0
- package/lib/node/reflect-grammar.d.ts.map +1 -0
- package/lib/node/reflect-grammar.js +96 -0
- package/lib/node/reflect-grammar.js.map +1 -0
- package/lib/node/server-diagnostics.d.ts +43 -0
- package/lib/node/server-diagnostics.d.ts.map +1 -0
- package/lib/node/server-diagnostics.js +46 -0
- package/lib/node/server-diagnostics.js.map +1 -0
- package/lib/node/server-state-snapshot.d.ts +48 -0
- package/lib/node/server-state-snapshot.d.ts.map +1 -0
- package/lib/node/server-state-snapshot.js +139 -0
- package/lib/node/server-state-snapshot.js.map +1 -0
- package/lib/node/socket-launcher.d.ts +106 -0
- package/lib/node/socket-launcher.d.ts.map +1 -0
- package/lib/node/socket-launcher.js +138 -0
- package/lib/node/socket-launcher.js.map +1 -0
- package/lib/node/stdio-launcher.d.ts +88 -0
- package/lib/node/stdio-launcher.d.ts.map +1 -0
- package/lib/node/stdio-launcher.js +83 -0
- package/lib/node/stdio-launcher.js.map +1 -0
- package/lib/node/validate-workspace.d.ts +80 -0
- package/lib/node/validate-workspace.d.ts.map +1 -0
- package/lib/node/validate-workspace.js +72 -0
- package/lib/node/validate-workspace.js.map +1 -0
- package/lib/node/write-lock-scope-node.d.ts +27 -0
- package/lib/node/write-lock-scope-node.d.ts.map +1 -0
- package/lib/node/write-lock-scope-node.js +38 -0
- package/lib/node/write-lock-scope-node.js.map +1 -0
- package/lib/testing/ast-snapshot.d.ts +38 -0
- package/lib/testing/ast-snapshot.d.ts.map +1 -0
- package/lib/testing/ast-snapshot.js +78 -0
- package/lib/testing/ast-snapshot.js.map +1 -0
- package/lib/testing/document-uri-policy-conformance.d.ts +65 -0
- package/lib/testing/document-uri-policy-conformance.d.ts.map +1 -0
- package/lib/testing/document-uri-policy-conformance.js +69 -0
- package/lib/testing/document-uri-policy-conformance.js.map +1 -0
- package/lib/testing/fake-description.d.ts +35 -0
- package/lib/testing/fake-description.d.ts.map +1 -0
- package/lib/testing/fake-description.js +38 -0
- package/lib/testing/fake-description.js.map +1 -0
- package/lib/testing/fake-document.d.ts +71 -0
- package/lib/testing/fake-document.d.ts.map +1 -0
- package/lib/testing/fake-document.js +85 -0
- package/lib/testing/fake-document.js.map +1 -0
- package/lib/testing/fake-reflection.d.ts +29 -0
- package/lib/testing/fake-reflection.d.ts.map +1 -0
- package/lib/testing/fake-reflection.js +30 -0
- package/lib/testing/fake-reflection.js.map +1 -0
- package/lib/testing/index.d.ts +44 -0
- package/lib/testing/index.d.ts.map +1 -0
- package/lib/testing/index.js +44 -0
- package/lib/testing/index.js.map +1 -0
- package/lib/testing/langium-test-helpers.d.ts +26 -0
- package/lib/testing/langium-test-helpers.d.ts.map +1 -0
- package/lib/testing/langium-test-helpers.js +26 -0
- package/lib/testing/langium-test-helpers.js.map +1 -0
- package/lib/testing/make-noop-language-services.d.ts +39 -0
- package/lib/testing/make-noop-language-services.d.ts.map +1 -0
- package/lib/testing/make-noop-language-services.js +30 -0
- package/lib/testing/make-noop-language-services.js.map +1 -0
- package/lib/testing/make-noop-shared-services.d.ts +61 -0
- package/lib/testing/make-noop-shared-services.d.ts.map +1 -0
- package/lib/testing/make-noop-shared-services.js +49 -0
- package/lib/testing/make-noop-shared-services.js.map +1 -0
- package/lib/testing/make-test-services.d.ts +217 -0
- package/lib/testing/make-test-services.d.ts.map +1 -0
- package/lib/testing/make-test-services.js +128 -0
- package/lib/testing/make-test-services.js.map +1 -0
- package/lib/testing/make-test-tracer.d.ts +67 -0
- package/lib/testing/make-test-tracer.d.ts.map +1 -0
- package/lib/testing/make-test-tracer.js +68 -0
- package/lib/testing/make-test-tracer.js.map +1 -0
- package/lib/testing/node/generated-workspace.d.ts +95 -0
- package/lib/testing/node/generated-workspace.d.ts.map +1 -0
- package/lib/testing/node/generated-workspace.js +134 -0
- package/lib/testing/node/generated-workspace.js.map +1 -0
- package/lib/testing/node/golden-corpus.d.ts +50 -0
- package/lib/testing/node/golden-corpus.d.ts.map +1 -0
- package/lib/testing/node/golden-corpus.js +80 -0
- package/lib/testing/node/golden-corpus.js.map +1 -0
- package/lib/testing/node/index.d.ts +28 -0
- package/lib/testing/node/index.d.ts.map +1 -0
- package/lib/testing/node/index.js +28 -0
- package/lib/testing/node/index.js.map +1 -0
- package/lib/testing/node/lsp-harness.d.ts +139 -0
- package/lib/testing/node/lsp-harness.d.ts.map +1 -0
- package/lib/testing/node/lsp-harness.js +119 -0
- package/lib/testing/node/lsp-harness.js.map +1 -0
- package/lib/testing/node/lsp-server-connection.d.ts +232 -0
- package/lib/testing/node/lsp-server-connection.d.ts.map +1 -0
- package/lib/testing/node/lsp-server-connection.js +304 -0
- package/lib/testing/node/lsp-server-connection.js.map +1 -0
- package/lib/testing/node/scratch-workspace.d.ts +60 -0
- package/lib/testing/node/scratch-workspace.d.ts.map +1 -0
- package/lib/testing/node/scratch-workspace.js +87 -0
- package/lib/testing/node/scratch-workspace.js.map +1 -0
- package/lib/testing/node/spawned-server.d.ts +170 -0
- package/lib/testing/node/spawned-server.d.ts.map +1 -0
- package/lib/testing/node/spawned-server.js +265 -0
- package/lib/testing/node/spawned-server.js.map +1 -0
- package/lib/testing/parse-semantic-root.d.ts +83 -0
- package/lib/testing/parse-semantic-root.d.ts.map +1 -0
- package/lib/testing/parse-semantic-root.js +119 -0
- package/lib/testing/parse-semantic-root.js.map +1 -0
- package/lib/testing/playwright/browser-capture-bridge.d.ts +80 -0
- package/lib/testing/playwright/browser-capture-bridge.d.ts.map +1 -0
- package/lib/testing/playwright/browser-capture-bridge.js +161 -0
- package/lib/testing/playwright/browser-capture-bridge.js.map +1 -0
- package/lib/testing/playwright/e2e-profiling.d.ts +132 -0
- package/lib/testing/playwright/e2e-profiling.d.ts.map +1 -0
- package/lib/testing/playwright/e2e-profiling.js +270 -0
- package/lib/testing/playwright/e2e-profiling.js.map +1 -0
- package/lib/testing/playwright/index.d.ts +13 -0
- package/lib/testing/playwright/index.d.ts.map +1 -0
- package/lib/testing/playwright/index.js +16 -0
- package/lib/testing/playwright/index.js.map +1 -0
- package/lib/testing/playwright/server-log-capture.d.ts +230 -0
- package/lib/testing/playwright/server-log-capture.d.ts.map +1 -0
- package/lib/testing/playwright/server-log-capture.js +336 -0
- package/lib/testing/playwright/server-log-capture.js.map +1 -0
- package/lib/testing/playwright/server-log-fixture.d.ts +36 -0
- package/lib/testing/playwright/server-log-fixture.d.ts.map +1 -0
- package/lib/testing/playwright/server-log-fixture.js +38 -0
- package/lib/testing/playwright/server-log-fixture.js.map +1 -0
- package/lib/testing/playwright/server-log-rename-reporter.d.ts +22 -0
- package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -0
- package/lib/testing/playwright/server-log-rename-reporter.js +26 -0
- package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -0
- package/lib/testing/run-update-pipeline.d.ts +99 -0
- package/lib/testing/run-update-pipeline.d.ts.map +1 -0
- package/lib/testing/run-update-pipeline.js +24 -0
- package/lib/testing/run-update-pipeline.js.map +1 -0
- package/lib/testing/stub-ast-document-manager.d.ts +82 -0
- package/lib/testing/stub-ast-document-manager.d.ts.map +1 -0
- package/lib/testing/stub-ast-document-manager.js +125 -0
- package/lib/testing/stub-ast-document-manager.js.map +1 -0
- package/lib/testing/stub-document-builder.d.ts +99 -0
- package/lib/testing/stub-document-builder.d.ts.map +1 -0
- package/lib/testing/stub-document-builder.js +142 -0
- package/lib/testing/stub-document-builder.js.map +1 -0
- package/lib/testing/stub-hydranium-text-documents.d.ts +125 -0
- package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -0
- package/lib/testing/stub-hydranium-text-documents.js +164 -0
- package/lib/testing/stub-hydranium-text-documents.js.map +1 -0
- package/lib/testing/stub-index-manager.d.ts +40 -0
- package/lib/testing/stub-index-manager.d.ts.map +1 -0
- package/lib/testing/stub-index-manager.js +38 -0
- package/lib/testing/stub-index-manager.js.map +1 -0
- package/lib/testing/stub-langium-documents.d.ts +53 -0
- package/lib/testing/stub-langium-documents.d.ts.map +1 -0
- package/lib/testing/stub-langium-documents.js +62 -0
- package/lib/testing/stub-langium-documents.js.map +1 -0
- package/lib/testing/stub-model-service.d.ts +31 -0
- package/lib/testing/stub-model-service.d.ts.map +1 -0
- package/lib/testing/stub-model-service.js +45 -0
- package/lib/testing/stub-model-service.js.map +1 -0
- package/lib/testing/stub-project-manager.d.ts +43 -0
- package/lib/testing/stub-project-manager.d.ts.map +1 -0
- package/lib/testing/stub-project-manager.js +125 -0
- package/lib/testing/stub-project-manager.js.map +1 -0
- package/lib/testing/stub-self-save-registry.d.ts +31 -0
- package/lib/testing/stub-self-save-registry.d.ts.map +1 -0
- package/lib/testing/stub-self-save-registry.js +23 -0
- package/lib/testing/stub-self-save-registry.js.map +1 -0
- package/lib/testing/stub-service-registry.d.ts +95 -0
- package/lib/testing/stub-service-registry.d.ts.map +1 -0
- package/lib/testing/stub-service-registry.js +108 -0
- package/lib/testing/stub-service-registry.js.map +1 -0
- package/lib/testing/stub-writable-file-system.d.ts +42 -0
- package/lib/testing/stub-writable-file-system.d.ts.map +1 -0
- package/lib/testing/stub-writable-file-system.js +26 -0
- package/lib/testing/stub-writable-file-system.js.map +1 -0
- package/lib/util/connection-liveness.d.ts +25 -0
- package/lib/util/connection-liveness.d.ts.map +1 -0
- package/lib/util/connection-liveness.js +46 -0
- package/lib/util/connection-liveness.js.map +1 -0
- package/lib/util/environment.d.ts +53 -0
- package/lib/util/environment.d.ts.map +1 -0
- package/lib/util/environment.js +78 -0
- package/lib/util/environment.js.map +1 -0
- package/lib/util/index.d.ts +13 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +18 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/registry.d.ts +88 -0
- package/lib/util/registry.d.ts.map +1 -0
- package/lib/util/registry.js +105 -0
- package/lib/util/registry.js.map +1 -0
- package/package.json +134 -0
- package/src/documents/ast-document-manager.ts +455 -0
- package/src/documents/client-ids.ts +33 -0
- package/src/documents/hydranium-text-documents.ts +1142 -0
- package/src/documents/index.ts +14 -0
- package/src/documents/language-client-text-shadow.ts +175 -0
- package/src/documents/self-save-registry.ts +81 -0
- package/src/index.ts +39 -0
- package/src/langium/ast-extension/ast-extension-contribution.ts +35 -0
- package/src/langium/ast-extension/ast-extension-service.ts +311 -0
- package/src/langium/ast-extension/ast-node-builder.ts +125 -0
- package/src/langium/ast-extension/index.ts +12 -0
- package/src/langium/bootstrap.ts +600 -0
- package/src/langium/build-phase-pass/build-phase-pass-service.ts +141 -0
- package/src/langium/build-phase-pass/build-phase-pass.ts +123 -0
- package/src/langium/build-phase-pass/index.ts +11 -0
- package/src/langium/config/index.ts +10 -0
- package/src/langium/config/settings.ts +353 -0
- package/src/langium/diagnostics/hydranium-langium-profiler.ts +187 -0
- package/src/langium/diagnostics/index.ts +19 -0
- package/src/langium/diagnostics/log-file-token.ts +26 -0
- package/src/langium/diagnostics/log-preamble.ts +87 -0
- package/src/langium/diagnostics/logger.ts +246 -0
- package/src/langium/diagnostics/lsp-logger.ts +277 -0
- package/src/langium/diagnostics/server-tracer.ts +73 -0
- package/src/langium/document-builder/build-pipeline-integration.ts +193 -0
- package/src/langium/document-builder/document-builder.ts +839 -0
- package/src/langium/document-builder/index.ts +12 -0
- package/src/langium/document-builder/labeled-phase-listener.ts +26 -0
- package/src/langium/documentation/comment-provider.ts +37 -0
- package/src/langium/documentation/index.ts +10 -0
- package/src/langium/integration-services.ts +281 -0
- package/src/langium/integrity/index.ts +12 -0
- package/src/langium/integrity/integrity-contribution.ts +44 -0
- package/src/langium/integrity/integrity-rule.ts +100 -0
- package/src/langium/integrity/integrity-service.ts +423 -0
- package/src/langium/keys/default-element-key-provider.ts +20 -0
- package/src/langium/keys/element-key-provider.ts +114 -0
- package/src/langium/keys/index.ts +13 -0
- package/src/langium/keys/name-based-key-provider.ts +146 -0
- package/src/langium/keys/positional-key-provider.ts +57 -0
- package/src/langium/labeling/index.ts +10 -0
- package/src/langium/labeling/label-provider.ts +110 -0
- package/src/langium/language-module.ts +367 -0
- package/src/langium/language-types.ts +214 -0
- package/src/langium/model-service/index.ts +10 -0
- package/src/langium/model-service/model-service.ts +1051 -0
- package/src/langium/module.ts +446 -0
- package/src/langium/naming/index.ts +11 -0
- package/src/langium/naming/name-provider.ts +533 -0
- package/src/langium/naming/name-separator-validation.ts +73 -0
- package/src/langium/project/abstract-project-manager.ts +630 -0
- package/src/langium/project/index.ts +13 -0
- package/src/langium/project/project-change-event.ts +66 -0
- package/src/langium/project/project-manager.ts +221 -0
- package/src/langium/project/single-project-manager.ts +126 -0
- package/src/langium/residency/cst-residency-service.ts +412 -0
- package/src/langium/residency/index.ts +10 -0
- package/src/langium/scope/ast-node-description-provider.ts +141 -0
- package/src/langium/scope/hydranium-scope-computation.ts +246 -0
- package/src/langium/scope/hydranium-scope-provider.ts +659 -0
- package/src/langium/scope/index.ts +18 -0
- package/src/langium/scope/reference-builder.ts +194 -0
- package/src/langium/scope/reference-candidate-provider.ts +314 -0
- package/src/langium/scope/scope-extension-contribution.ts +34 -0
- package/src/langium/scope/scope-extension-service.ts +207 -0
- package/src/langium/scope/scoped-ast-node-description.ts +174 -0
- package/src/langium/scope/tier-specificity.ts +89 -0
- package/src/langium/serialization/abstract-serializer.ts +474 -0
- package/src/langium/serialization/index.ts +14 -0
- package/src/langium/serialization/json-serializer.ts +264 -0
- package/src/langium/serialization/serialization-util.ts +40 -0
- package/src/langium/serialization/serializer.ts +68 -0
- package/src/langium/serialization/yaml-serializer.ts +348 -0
- package/src/langium/service-registry.ts +323 -0
- package/src/langium/shared-services.ts +107 -0
- package/src/langium/transfer/index.ts +10 -0
- package/src/langium/transfer/transfer-encoder.ts +434 -0
- package/src/langium/update-rewrite/index.ts +14 -0
- package/src/langium/update-rewrite/normalize-empty-strings.ts +86 -0
- package/src/langium/update-rewrite/semantic-root-rewrite.ts +57 -0
- package/src/langium/update-rewrite/update-rewrite-contribution.ts +44 -0
- package/src/langium/update-rewrite/update-rewrite-service.ts +129 -0
- package/src/langium/update-rewrite/update-rewrite.ts +60 -0
- package/src/langium/validation/document-validator.ts +188 -0
- package/src/langium/validation/index.ts +12 -0
- package/src/langium/validation/validation-contribution-collector.ts +61 -0
- package/src/langium/validation/validation-contribution.ts +38 -0
- package/src/langium/workspace/additional-document-contribution.ts +80 -0
- package/src/langium/workspace/document-uri-policy.ts +187 -0
- package/src/langium/workspace/file-system-provider.ts +52 -0
- package/src/langium/workspace/hydranium-langium-document-factory.ts +78 -0
- package/src/langium/workspace/hydranium-workspace-lock.ts +35 -0
- package/src/langium/workspace/hydranium-workspace-manager.ts +412 -0
- package/src/langium/workspace/in-memory-file-system-provider.ts +241 -0
- package/src/langium/workspace/index-manager.ts +266 -0
- package/src/langium/workspace/index.ts +23 -0
- package/src/langium/workspace/initialize-workspace.ts +102 -0
- package/src/langium/workspace/langium-documents.ts +94 -0
- package/src/langium/workspace/persistent-file-system-provider.ts +287 -0
- package/src/langium/workspace/synthetic.ts +63 -0
- package/src/langium/workspace/virtual-document.ts +94 -0
- package/src/langium/workspace/write-lock-scope.ts +88 -0
- package/src/launcher/index.ts +12 -0
- package/src/launcher/integrated-server.ts +28 -0
- package/src/lsp/completion/hydranium-completion-provider.ts +132 -0
- package/src/lsp/hydranium-document-update-handler.ts +345 -0
- package/src/lsp/index.ts +24 -0
- package/src/lsp/instrument-connection.ts +66 -0
- package/src/lsp/language-module.ts +64 -0
- package/src/lsp/semantic-token-provider.ts +215 -0
- package/src/lsp/shared-module.ts +88 -0
- package/src/lsp/start-language-server.ts +68 -0
- package/src/node/ast-ground-truth.ts +76 -0
- package/src/node/event-loop-monitor.ts +89 -0
- package/src/node/index.ts +53 -0
- package/src/node/latency-from-env.ts +39 -0
- package/src/node/lint-grammar.ts +189 -0
- package/src/node/log-file-sink.ts +43 -0
- package/src/node/log-preamble-node.ts +63 -0
- package/src/node/measure-memory.ts +196 -0
- package/src/node/memory-monitor.ts +103 -0
- package/src/node/node-file-system-provider.ts +252 -0
- package/src/node/process-memory.ts +299 -0
- package/src/node/profile-capture.ts +377 -0
- package/src/node/profile-digest.ts +112 -0
- package/src/node/profiling-run.ts +236 -0
- package/src/node/reflect-grammar.ts +182 -0
- package/src/node/server-diagnostics.ts +63 -0
- package/src/node/server-state-snapshot.ts +192 -0
- package/src/node/socket-launcher.ts +210 -0
- package/src/node/stdio-launcher.ts +150 -0
- package/src/node/validate-workspace.ts +133 -0
- package/src/node/write-lock-scope-node.ts +41 -0
- package/src/testing/ast-snapshot.ts +88 -0
- package/src/testing/document-uri-policy-conformance.ts +104 -0
- package/src/testing/fake-description.ts +52 -0
- package/src/testing/fake-document.ts +120 -0
- package/src/testing/fake-reflection.ts +39 -0
- package/src/testing/index.ts +45 -0
- package/src/testing/langium-test-helpers.ts +26 -0
- package/src/testing/make-noop-language-services.ts +47 -0
- package/src/testing/make-noop-shared-services.ts +78 -0
- package/src/testing/make-test-services.ts +356 -0
- package/src/testing/make-test-tracer.ts +92 -0
- package/src/testing/node/generated-workspace.ts +222 -0
- package/src/testing/node/golden-corpus.ts +114 -0
- package/src/testing/node/index.ts +29 -0
- package/src/testing/node/lsp-harness.ts +230 -0
- package/src/testing/node/lsp-server-connection.ts +575 -0
- package/src/testing/node/scratch-workspace.ts +137 -0
- package/src/testing/node/spawned-server.ts +447 -0
- package/src/testing/parse-semantic-root.ts +150 -0
- package/src/testing/playwright/browser-capture-bridge.ts +258 -0
- package/src/testing/playwright/e2e-profiling.ts +362 -0
- package/src/testing/playwright/index.ts +16 -0
- package/src/testing/playwright/server-log-capture.ts +433 -0
- package/src/testing/playwright/server-log-fixture.ts +57 -0
- package/src/testing/playwright/server-log-rename-reporter.ts +29 -0
- package/src/testing/run-update-pipeline.ts +113 -0
- package/src/testing/stub-ast-document-manager.ts +224 -0
- package/src/testing/stub-document-builder.ts +242 -0
- package/src/testing/stub-hydranium-text-documents.ts +270 -0
- package/src/testing/stub-index-manager.ts +79 -0
- package/src/testing/stub-langium-documents.ts +104 -0
- package/src/testing/stub-model-service.ts +72 -0
- package/src/testing/stub-project-manager.ts +161 -0
- package/src/testing/stub-self-save-registry.ts +43 -0
- package/src/testing/stub-service-registry.ts +192 -0
- package/src/testing/stub-writable-file-system.ts +58 -0
- package/src/util/connection-liveness.ts +47 -0
- package/src/util/environment.ts +88 -0
- package/src/util/index.ts +18 -0
- package/src/util/registry.ts +129 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
/*
|
|
10
|
+
* The opt-in e2e profiling harness — the Playwright-side assembler. A single
|
|
11
|
+
* Playwright run drives the real app, so it is the one place the two dimensions
|
|
12
|
+
* with no headless producer — real RPC/LSP traffic, and the renderer
|
|
13
|
+
* runtime/timeline — get real input.
|
|
14
|
+
*
|
|
15
|
+
* The fixture brackets a scenario: start the server-side capture + the in-page
|
|
16
|
+
* timeline BEFORE the body, then AFTER stop the capture (the server writes its
|
|
17
|
+
* profile files into the shared session dir — local e2e shares the filesystem),
|
|
18
|
+
* pull latency over RPC, bridge the browser state to disk, and assemble ONE
|
|
19
|
+
* manifest indexing everything gathered. The server-RPC calls are adopter hooks
|
|
20
|
+
* (only the adopter knows how to reach its model-service from the page); the
|
|
21
|
+
* browser bridge + manifest assembly are framework-generic. The manifest uses the
|
|
22
|
+
* shared `@hydranium/protocol` `ProfilingManifest` shape so this assembler and the
|
|
23
|
+
* headless `ProfilingRun` produce the same bundle a skill reads.
|
|
24
|
+
*/
|
|
25
|
+
import { PROFILING_SCHEMA_VERSION } from '@hydranium/protocol';
|
|
26
|
+
import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
27
|
+
import { basename, join } from 'node:path';
|
|
28
|
+
import { DEFAULT_LATENCY_ENV } from '../../node/latency-from-env.js';
|
|
29
|
+
import { digestAllocationProfile, digestCpuProfile } from '../../node/profile-digest.js';
|
|
30
|
+
import { bridgeBrowserState, browserRuntimeDelta, captureBrowserHeapSnapshot, captureBrowserRuntimeSample, startBrowserTimeline } from './browser-capture-bridge.js';
|
|
31
|
+
/**
|
|
32
|
+
* Env flag that opts a run into e2e profiling. Its presence (any non-empty value)
|
|
33
|
+
* is the switch — {@link withE2EProfiling} is an inert pass-through when it is
|
|
34
|
+
* unset, so a spec can keep the wrapper permanently and only capture on demand.
|
|
35
|
+
*/
|
|
36
|
+
export const DEFAULT_PROFILE_E2E_ENV = 'HYDRANIUM_PROFILE_E2E';
|
|
37
|
+
/** True when the e2e profiling env flag is set to a non-empty value. */
|
|
38
|
+
export function isE2EProfilingEnabled() {
|
|
39
|
+
return !!process.env[DEFAULT_PROFILE_E2E_ENV];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The environment a SPAWNED server needs for an e2e profiling run to have
|
|
43
|
+
* anything to report — spread into the `env` of whatever launches the server
|
|
44
|
+
* (Playwright's `webServer`, a `spawn`), since a child process inherits only
|
|
45
|
+
* what its launcher hands it.
|
|
46
|
+
*
|
|
47
|
+
* {@link finishE2EProfiling} calls `hooks.getLatency()`, but the collector that
|
|
48
|
+
* answers it is installed by `latencyFromEnv` in the server process and is
|
|
49
|
+
* off unless `HYDRANIUM_LATENCY` is set there. Setting only the profiling flag
|
|
50
|
+
* therefore yields a bundle whose `server-latency.json` is empty — a silent hole
|
|
51
|
+
* rather than a failure.
|
|
52
|
+
*
|
|
53
|
+
* Empty off a run with profiling disabled, so an unconditional spread leaves a
|
|
54
|
+
* normal run's environment untouched. An explicitly-set `HYDRANIUM_LATENCY` is
|
|
55
|
+
* passed through rather than overwritten.
|
|
56
|
+
*/
|
|
57
|
+
export function e2eProfilingServerEnv(env = process.env) {
|
|
58
|
+
const profileFlag = env[DEFAULT_PROFILE_E2E_ENV];
|
|
59
|
+
if (!profileFlag) {
|
|
60
|
+
return {};
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
[DEFAULT_PROFILE_E2E_ENV]: profileFlag,
|
|
64
|
+
[DEFAULT_LATENCY_ENV]: env[DEFAULT_LATENCY_ENV] || '1'
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** The default capture dimensions — every sampled dimension except the heavy `heapSnapshot`. */
|
|
68
|
+
export const DEFAULT_E2E_DIMENSIONS = { cpu: true, allocation: true, gc: true, eventLoopDelay: true };
|
|
69
|
+
/** Map a gathered filename to its manifest artefact kind, or `undefined` to skip it. */
|
|
70
|
+
function artifactKind(file) {
|
|
71
|
+
if (file.endsWith('.cpuprofile')) {
|
|
72
|
+
return 'server-cpu';
|
|
73
|
+
}
|
|
74
|
+
if (file.endsWith('.heapprofile')) {
|
|
75
|
+
return 'server-alloc';
|
|
76
|
+
}
|
|
77
|
+
if (file.endsWith('.heapsnapshot')) {
|
|
78
|
+
// The renderer snapshot (CDP) is kept distinct from the server's `server-heap`
|
|
79
|
+
// so a skill knows which process it belongs to.
|
|
80
|
+
return file.startsWith('browser') ? 'browser-heap' : 'server-heap';
|
|
81
|
+
}
|
|
82
|
+
switch (file) {
|
|
83
|
+
case 'server-latency.json':
|
|
84
|
+
return 'server-latency';
|
|
85
|
+
case 'server.log':
|
|
86
|
+
return 'server-log';
|
|
87
|
+
case 'browser-console.log':
|
|
88
|
+
return 'browser-console';
|
|
89
|
+
case 'browser-runtime.json':
|
|
90
|
+
return 'browser-runtime';
|
|
91
|
+
case 'browser-timeline.json':
|
|
92
|
+
return 'browser-timeline';
|
|
93
|
+
case 'server-summary.json':
|
|
94
|
+
return 'server-summary';
|
|
95
|
+
case 'server-ast.json':
|
|
96
|
+
return 'server-ast';
|
|
97
|
+
case 'server-memory-report.json':
|
|
98
|
+
return 'server-memory-report';
|
|
99
|
+
default:
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Attach a digest pointer to a raw profile artefact: reference an existing
|
|
105
|
+
* `<file>.txt` if present, else emit one beside the profile (matching the headless
|
|
106
|
+
* `ProfilingRun`, so the cpu/allocation skills read the same compact digest). A
|
|
107
|
+
* malformed profile leaves the raw file in the bundle as the fallback.
|
|
108
|
+
*/
|
|
109
|
+
function attachDigest(sessionDir, artifact, files) {
|
|
110
|
+
const digestFile = `${artifact.path}.txt`;
|
|
111
|
+
if (files.includes(digestFile)) {
|
|
112
|
+
artifact.digest = digestFile;
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const emit = artifact.kind === 'server-cpu' ? digestCpuProfile : artifact.kind === 'server-alloc' ? digestAllocationProfile : undefined;
|
|
116
|
+
if (!emit) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const raw = JSON.parse(readFileSync(join(sessionDir, artifact.path), 'utf8'));
|
|
121
|
+
writeFileSync(join(sessionDir, digestFile), emit(raw));
|
|
122
|
+
artifact.digest = digestFile;
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// The raw profile is still in the bundle; a skill can fall back to it.
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Scan a session directory for the gathered profiling artefacts and write a
|
|
130
|
+
* `manifest.json` indexing them — the Playwright process assembles the bundle from
|
|
131
|
+
* the files the fixture gathered. Returns the manifest. Ignores its own
|
|
132
|
+
* `manifest.json` and loose `.txt` digests (referenced from their profile).
|
|
133
|
+
*/
|
|
134
|
+
export function assembleProfilingManifest(sessionDir, options = {}) {
|
|
135
|
+
const files = readdirSync(sessionDir);
|
|
136
|
+
const artifacts = [];
|
|
137
|
+
for (const file of files) {
|
|
138
|
+
const kind = artifactKind(file);
|
|
139
|
+
if (!kind) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
const artifact = { kind, path: file };
|
|
143
|
+
if (kind === 'server-cpu' || kind === 'server-alloc') {
|
|
144
|
+
attachDigest(sessionDir, artifact, files);
|
|
145
|
+
}
|
|
146
|
+
artifacts.push(artifact);
|
|
147
|
+
}
|
|
148
|
+
const manifest = {
|
|
149
|
+
schemaVersion: PROFILING_SCHEMA_VERSION,
|
|
150
|
+
sessionId: basename(sessionDir),
|
|
151
|
+
environment: {
|
|
152
|
+
mode: options.mode ?? 'app',
|
|
153
|
+
container: options.container ?? false,
|
|
154
|
+
commit: options.commit,
|
|
155
|
+
workspace: options.workspace,
|
|
156
|
+
node: process.version,
|
|
157
|
+
windows: options.windows ?? []
|
|
158
|
+
},
|
|
159
|
+
artifacts
|
|
160
|
+
};
|
|
161
|
+
writeFileSync(join(sessionDir, 'manifest.json'), JSON.stringify(manifest, undefined, 2));
|
|
162
|
+
return manifest;
|
|
163
|
+
}
|
|
164
|
+
/** Remove and recreate the session directory so the run starts from a clean, predictable folder. */
|
|
165
|
+
function emptySessionDir(sessionDir) {
|
|
166
|
+
rmSync(sessionDir, { recursive: true, force: true });
|
|
167
|
+
mkdirSync(sessionDir, { recursive: true });
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Begin capture — call BEFORE the scenario body. Starts the server-side sampled
|
|
171
|
+
* profile (adopter hook) and the in-page main-thread timeline, and — when a CDP
|
|
172
|
+
* session is given — takes the pre-scenario renderer-runtime sample so
|
|
173
|
+
* {@link finishE2EProfiling} can report the growth delta.
|
|
174
|
+
*/
|
|
175
|
+
export async function startE2EProfiling(options) {
|
|
176
|
+
// Start from an empty session dir so a reused path (the common e2e case)
|
|
177
|
+
// yields exactly this run's artefacts — no ISO stamp means a prior run's
|
|
178
|
+
// files would otherwise be re-indexed as duplicates by the assembler.
|
|
179
|
+
emptySessionDir(options.sessionDir);
|
|
180
|
+
await options.hooks.startProfiling(options.dimensions ?? DEFAULT_E2E_DIMENSIONS);
|
|
181
|
+
await startBrowserTimeline(options.page);
|
|
182
|
+
const browserRuntimeBefore = options.cdp ? await captureBrowserRuntimeSample(options.cdp) : undefined;
|
|
183
|
+
return { browserRuntimeBefore };
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* End capture — call AFTER the scenario body. Stops the server capture (its files
|
|
187
|
+
* land in the session dir), writes `server-latency.json` from the RPC, bridges the
|
|
188
|
+
* browser state to disk (`browser-timeline.json` + a single source-graded
|
|
189
|
+
* `browser-runtime.json` — the richer two-point CDP read superseding the coarse
|
|
190
|
+
* `page.evaluate` read when a CDP session is given), folds in `server.log` when
|
|
191
|
+
* given, and assembles the manifest. Returns the manifest.
|
|
192
|
+
*/
|
|
193
|
+
export async function finishE2EProfiling(options) {
|
|
194
|
+
await options.hooks.stopProfiling(options.sessionDir);
|
|
195
|
+
const latency = await options.hooks.getLatency();
|
|
196
|
+
writeFileSync(join(options.sessionDir, 'server-latency.json'), JSON.stringify(latency, undefined, 2));
|
|
197
|
+
const state = await bridgeBrowserState(options.page, options.sessionDir);
|
|
198
|
+
// One source-graded browser-runtime report: CDP (two-point counters + delta)
|
|
199
|
+
// supersedes the coarse page.evaluate memory read when a session is given.
|
|
200
|
+
let runtime = state.runtime;
|
|
201
|
+
if (options.cdp) {
|
|
202
|
+
const after = await captureBrowserRuntimeSample(options.cdp);
|
|
203
|
+
// CDP exposes neither the `performance.memory` heap-limit ceiling nor the
|
|
204
|
+
// precise per-type/container renderer total from `measureUserAgentSpecificMemory`;
|
|
205
|
+
// fold both in from the page read so superseding with CDP does not discard the
|
|
206
|
+
// signals CDP cannot produce (the limit is a static ceiling, excluded from the
|
|
207
|
+
// delta by design; totalBytes/breakdown only exist under cross-origin isolation).
|
|
208
|
+
if (after.jsHeapLimitBytes === undefined && state.runtime.after.jsHeapLimitBytes !== undefined) {
|
|
209
|
+
after.jsHeapLimitBytes = state.runtime.after.jsHeapLimitBytes;
|
|
210
|
+
}
|
|
211
|
+
if (after.totalBytes === undefined && state.runtime.after.totalBytes !== undefined) {
|
|
212
|
+
after.totalBytes = state.runtime.after.totalBytes;
|
|
213
|
+
after.breakdown = state.runtime.after.breakdown;
|
|
214
|
+
}
|
|
215
|
+
const before = options.browserRuntimeBefore;
|
|
216
|
+
runtime = before
|
|
217
|
+
? { source: 'cdp-performance', before, after, delta: browserRuntimeDelta(before, after) }
|
|
218
|
+
: { source: 'cdp-performance', after };
|
|
219
|
+
if (options.browserHeapSnapshot) {
|
|
220
|
+
await captureBrowserHeapSnapshot(options.cdp, options.sessionDir);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
writeFileSync(join(options.sessionDir, 'browser-runtime.json'), JSON.stringify(runtime, undefined, 2));
|
|
224
|
+
if (options.serverLogPath && existsSync(options.serverLogPath)) {
|
|
225
|
+
copyFileSync(options.serverLogPath, join(options.sessionDir, 'server.log'));
|
|
226
|
+
}
|
|
227
|
+
if (options.browserLogPath && existsSync(options.browserLogPath)) {
|
|
228
|
+
copyFileSync(options.browserLogPath, join(options.sessionDir, 'browser-console.log'));
|
|
229
|
+
}
|
|
230
|
+
return assembleProfilingManifest(options.sessionDir, { mode: 'app', commit: options.commit, workspace: options.workspace });
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Bracket a scenario with a full profiling capture — the one-call ergonomic. When
|
|
234
|
+
* {@link isE2EProfilingEnabled} is false this is an inert pass-through (runs the
|
|
235
|
+
* scenario, captures nothing, returns `undefined`), so a spec keeps the wrapper
|
|
236
|
+
* permanently and profiles only when the env flag is set. The bundle is still
|
|
237
|
+
* assembled if the scenario throws (a failing run is worth profiling), and the
|
|
238
|
+
* scenario error is re-thrown after.
|
|
239
|
+
*/
|
|
240
|
+
export async function withE2EProfiling(options, scenario) {
|
|
241
|
+
if (!isE2EProfilingEnabled()) {
|
|
242
|
+
await scenario();
|
|
243
|
+
return undefined;
|
|
244
|
+
}
|
|
245
|
+
const started = await startE2EProfiling(options);
|
|
246
|
+
let scenarioError;
|
|
247
|
+
try {
|
|
248
|
+
await scenario();
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
scenarioError = error;
|
|
252
|
+
}
|
|
253
|
+
let manifest;
|
|
254
|
+
try {
|
|
255
|
+
manifest = await finishE2EProfiling({ ...options, browserRuntimeBefore: started.browserRuntimeBefore });
|
|
256
|
+
}
|
|
257
|
+
catch (finishError) {
|
|
258
|
+
// A teardown/assembly failure must never mask the scenario's own failure —
|
|
259
|
+
// the real assertion error is what the test is about; re-throw it in preference.
|
|
260
|
+
if (scenarioError !== undefined) {
|
|
261
|
+
throw scenarioError;
|
|
262
|
+
}
|
|
263
|
+
throw finishError;
|
|
264
|
+
}
|
|
265
|
+
if (scenarioError !== undefined) {
|
|
266
|
+
throw scenarioError;
|
|
267
|
+
}
|
|
268
|
+
return manifest;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=e2e-profiling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e2e-profiling.js","sourceRoot":"","sources":["../../../src/testing/playwright/e2e-profiling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
export * from './e2e-profiling.js';
|
|
10
|
+
export * from './browser-capture-bridge.js';
|
|
11
|
+
export * from './server-log-capture.js';
|
|
12
|
+
export * from './server-log-fixture.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/playwright/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAKlF,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
// Playwright-specific test helpers. Kept in a dedicated subpath (not the main
|
|
10
|
+
// `@hydranium/core/testing` barrel) so importing the framework's unit-test
|
|
11
|
+
// helpers never pulls in `@playwright/test` — which is an OPTIONAL peer here.
|
|
12
|
+
export * from './e2e-profiling.js';
|
|
13
|
+
export * from './browser-capture-bridge.js';
|
|
14
|
+
export * from './server-log-capture.js';
|
|
15
|
+
export * from './server-log-fixture.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/playwright/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
/**
|
|
10
|
+
* Default env var naming the per-test server-log capture directory. Its presence
|
|
11
|
+
* is the opt-in: set it to a directory to enable capture, leave it unset for a
|
|
12
|
+
* normal (no-capture) run. Read by both {@link captureServerLog} and
|
|
13
|
+
* {@link attachServerLog}.
|
|
14
|
+
*/
|
|
15
|
+
export declare const DEFAULT_SERVER_LOG_DIR_ENV = "HYDRANIUM_SERVER_LOG_DIR";
|
|
16
|
+
/**
|
|
17
|
+
* Default env var providing a central {@link AttachServerLogOptions.attachOn}
|
|
18
|
+
* policy (`'failure' | 'always' | 'never'`) for a whole run, so a debugging
|
|
19
|
+
* session can flip it once on the CLI without touching any spec. An explicit
|
|
20
|
+
* `attachOn` option still wins; an unset/invalid value falls back to `'failure'`.
|
|
21
|
+
*/
|
|
22
|
+
export declare const DEFAULT_SERVER_LOG_ATTACH_ENV = "HYDRANIUM_SERVER_LOG_ATTACH";
|
|
23
|
+
/**
|
|
24
|
+
* Default env var naming which browser console levels {@link forwardBrowserConsole}
|
|
25
|
+
* forwards — a comma-separated list (e.g. `error,warning,info`). Lets a run widen or
|
|
26
|
+
* narrow the forwarded set without touching the spec. An explicit `levels` option
|
|
27
|
+
* wins; an unset value falls back to {@link DEFAULT_BROWSER_LOG_LEVELS}.
|
|
28
|
+
*/
|
|
29
|
+
export declare const DEFAULT_BROWSER_LOG_LEVELS_ENV = "HYDRANIUM_BROWSER_LOG_LEVELS";
|
|
30
|
+
/** Console levels {@link forwardBrowserConsole} forwards by default — errors + warnings only (tiny volume). */
|
|
31
|
+
export declare const DEFAULT_BROWSER_LOG_LEVELS: readonly string[];
|
|
32
|
+
/** Valid {@link AttachServerLogOptions.attachOn} values. */
|
|
33
|
+
export type ServerLogAttachOn = 'failure' | 'always' | 'never';
|
|
34
|
+
export interface CaptureServerLogOptions {
|
|
35
|
+
/**
|
|
36
|
+
* Capture directory. When omitted, read from `process.env[`{@link DEFAULT_SERVER_LOG_DIR_ENV}`]`
|
|
37
|
+
* (the opt-in: capture is off — empty env — when that's unset too). When
|
|
38
|
+
* given, it is published back onto that env var so the runner-side halves of
|
|
39
|
+
* the capture see the same directory.
|
|
40
|
+
*/
|
|
41
|
+
dir?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Server log level set on `HYDRANIUM_LOG_LEVEL`. When omitted, respects a
|
|
44
|
+
* pre-set `HYDRANIUM_LOG_LEVEL` env (so a run can pick the level without editing
|
|
45
|
+
* the config), then falls back to `'debug'` (a capture at `'info'` is too thin).
|
|
46
|
+
*/
|
|
47
|
+
level?: string;
|
|
48
|
+
}
|
|
49
|
+
/** A Playwright `reporter` config entry: `[modulePath, options]`. */
|
|
50
|
+
export type ServerLogReporterEntry = [string, ServerLogRenameReporterOptions];
|
|
51
|
+
export interface CaptureServerLogResult {
|
|
52
|
+
/** Spread into the server process's environment (e.g. Playwright `webServer.env`). */
|
|
53
|
+
env: Record<string, string>;
|
|
54
|
+
/** Add to the Playwright `reporter` array to rename per-suite logs to spec names. Absent when capture is off. */
|
|
55
|
+
reporter?: ServerLogReporterEntry;
|
|
56
|
+
}
|
|
57
|
+
export interface ServerLogRenameReporterOptions {
|
|
58
|
+
/** Capture directory holding the `<token>.log` files + `<token>.spec` sidecars. */
|
|
59
|
+
dir: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Build the environment to inject into the server process (e.g. a Playwright
|
|
63
|
+
* `webServer.env`) so it writes one per-workspace log file under the capture dir,
|
|
64
|
+
* plus the reporter entry that renames those files to spec names once the run
|
|
65
|
+
* ends. Returns an **empty env, and no reporter, when no dir is configured**, so a
|
|
66
|
+
* normal run is untouched. The `{workspace}` token is expanded server-side once
|
|
67
|
+
* the workspace is known.
|
|
68
|
+
*
|
|
69
|
+
* **Publishes a resolved `options.dir` onto {@link DEFAULT_SERVER_LOG_DIR_ENV} in
|
|
70
|
+
* the CALLING process, and that mutation is load-bearing rather than a
|
|
71
|
+
* convenience.** The returned env reaches the server child only, while
|
|
72
|
+
* {@link markServerLog} / {@link attachServerLog} — the halves that write the
|
|
73
|
+
* per-test boundary markers and do the attaching — run in the runner process and
|
|
74
|
+
* resolve their directory from that env var, which a fixture typically calls with
|
|
75
|
+
* no options at all. Passing the option without publishing it produces a captured
|
|
76
|
+
* log with no markers in it and nothing attached to the failing test, which is
|
|
77
|
+
* worse than capture being off. A config-time caller runs before any worker forks,
|
|
78
|
+
* so the workers inherit it.
|
|
79
|
+
*/
|
|
80
|
+
export declare function captureServerLog(options?: CaptureServerLogOptions): CaptureServerLogResult;
|
|
81
|
+
/**
|
|
82
|
+
* Structural subset of Playwright's `TestInfo` that {@link attachServerLog}
|
|
83
|
+
* uses — declared locally so this module imports nothing from `@playwright/test`
|
|
84
|
+
* (an optional peer). Matches `TestInfo`'s `title` / `status` / `expectedStatus`
|
|
85
|
+
* / `attach`.
|
|
86
|
+
*/
|
|
87
|
+
export interface ServerLogTestInfo {
|
|
88
|
+
readonly title: string;
|
|
89
|
+
readonly status?: string;
|
|
90
|
+
readonly expectedStatus?: string;
|
|
91
|
+
/** Absolute spec file path (Playwright `TestInfo.file`); used to name the renamed per-suite log. */
|
|
92
|
+
readonly file?: string;
|
|
93
|
+
attach(name: string, options: {
|
|
94
|
+
path: string;
|
|
95
|
+
contentType: string;
|
|
96
|
+
}): Promise<unknown>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Derive a stable, filename-safe per-suite log name from a spec's absolute path:
|
|
100
|
+
* the path below the last `tests/` segment (or the basename), minus the
|
|
101
|
+
* `.spec.ts(x)` suffix, with separators flattened. The server names logs by an
|
|
102
|
+
* opaque workspace token; {@link renameServerLogs} uses this to rename them to
|
|
103
|
+
* spec names once the run ends.
|
|
104
|
+
*
|
|
105
|
+
* `.mts` / `.cts` are stripped too: an ESM Playwright project names its specs
|
|
106
|
+
* `.spec.mts`, and a `.ts`-only strip leaves that inside the log's file name.
|
|
107
|
+
*/
|
|
108
|
+
export declare function serverLogSpecName(file: string): string;
|
|
109
|
+
/**
|
|
110
|
+
* Rename each `<token>.log` (backend) and `<token>.browser.log` (forwarded
|
|
111
|
+
* browser console) to the spec name recorded in its `<token>.spec` sidecar
|
|
112
|
+
* (written by {@link markServerLog}), then delete the sidecar. Colliding names —
|
|
113
|
+
* a spec that opened more than one workspace — get a `-2`, `-3`, … suffix. Token
|
|
114
|
+
* logs without a sidecar are left untouched. Run once, after all server processes
|
|
115
|
+
* have exited (e.g. a reporter's `onEnd`). Best-effort.
|
|
116
|
+
*/
|
|
117
|
+
export declare function renameServerLogs(dir: string): void;
|
|
118
|
+
/**
|
|
119
|
+
* Resolve the per-workspace server-log file the {@link captureServerLog} tee
|
|
120
|
+
* writes for `workspacePath` — the `<token>.log` under the capture dir — or
|
|
121
|
+
* `undefined` when no capture dir is configured (`options.dir` / the default env
|
|
122
|
+
* var both unset). Lets a harness locate the log to fold elsewhere (e.g. the e2e
|
|
123
|
+
* profiling fixture folding `server.log` into a bundle). Does NOT check the file
|
|
124
|
+
* exists — it names where the tee would write.
|
|
125
|
+
*/
|
|
126
|
+
export declare function resolveServerLogPath(workspacePath: string, options?: {
|
|
127
|
+
dir?: string;
|
|
128
|
+
}): string | undefined;
|
|
129
|
+
/**
|
|
130
|
+
* Resolve the per-workspace **browser-console** log file {@link forwardBrowserConsole}
|
|
131
|
+
* writes for `workspacePath` — the `<token>.browser.log` under the capture dir —
|
|
132
|
+
* or `undefined` when no capture dir is configured. The browser console is kept in
|
|
133
|
+
* its OWN file (not interleaved into `server.log`): the two streams use different
|
|
134
|
+
* clocks, so a merged order would misrepresent timing. Does NOT check the file exists.
|
|
135
|
+
*/
|
|
136
|
+
export declare function resolveBrowserConsoleLogPath(workspacePath: string, options?: {
|
|
137
|
+
dir?: string;
|
|
138
|
+
}): string | undefined;
|
|
139
|
+
export interface AttachServerLogOptions {
|
|
140
|
+
/**
|
|
141
|
+
* Capture directory. When omitted, read from `process.env[`{@link DEFAULT_SERVER_LOG_DIR_ENV}`]`;
|
|
142
|
+
* no-op when that's unset too.
|
|
143
|
+
*/
|
|
144
|
+
dir?: string;
|
|
145
|
+
/**
|
|
146
|
+
* When to attach the log to the test — mirrors how `screenshot`/`trace`
|
|
147
|
+
* retention works (a per-artifact policy, NOT Playwright's coarse
|
|
148
|
+
* `preserveOutput`). `'failure'` attaches only on an unexpected outcome;
|
|
149
|
+
* `'always'` attaches every test; `'never'` writes the boundary marker but
|
|
150
|
+
* attaches nothing. When omitted, read from `process.env[`
|
|
151
|
+
* {@link DEFAULT_SERVER_LOG_ATTACH_ENV}`]`, then default `'failure'`. To track
|
|
152
|
+
* the suite's `preserveOutput`, pass it from `test.info().config.preserveOutput`.
|
|
153
|
+
*/
|
|
154
|
+
attachOn?: ServerLogAttachOn;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Write a start-of-test boundary marker to the workspace's (per-suite) server
|
|
158
|
+
* log, so the test's lines follow it in natural reading order. Call from a
|
|
159
|
+
* spec's `beforeEach` (or a fixture's setup) with the test's workspace path.
|
|
160
|
+
* No-op when no capture dir is configured. Best-effort; never throws.
|
|
161
|
+
*/
|
|
162
|
+
export declare function markServerLog(testInfo: ServerLogTestInfo, workspacePath: string, options?: AttachServerLogOptions): void;
|
|
163
|
+
/**
|
|
164
|
+
* Append a raw line to the workspace's (per-suite) server-log file — the same
|
|
165
|
+
* `<token>.log` {@link markServerLog} / {@link attachServerLog} write to. Lets a
|
|
166
|
+
* harness interleave its own observations (e.g. forwarded browser-console lines)
|
|
167
|
+
* into the backend stream so they correlate by timestamp/order. A trailing
|
|
168
|
+
* newline is added if the line lacks one.
|
|
169
|
+
*
|
|
170
|
+
* **No-op when no capture dir is configured** (`opts.dir` / the default env var
|
|
171
|
+
* both unset), so a normal run is untouched. Best-effort; never throws.
|
|
172
|
+
*/
|
|
173
|
+
export declare function appendServerLog(workspacePath: string, line: string, options?: {
|
|
174
|
+
dir?: string;
|
|
175
|
+
}): void;
|
|
176
|
+
/**
|
|
177
|
+
* Structural subset of a Playwright `ConsoleMessage` — declared locally so this
|
|
178
|
+
* module imports nothing from `@playwright/test` (an optional peer).
|
|
179
|
+
*/
|
|
180
|
+
export interface ConsoleMessageLike {
|
|
181
|
+
type(): string;
|
|
182
|
+
text(): string;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Structural subset of a Playwright `Page` used by {@link forwardBrowserConsole}.
|
|
186
|
+
*/
|
|
187
|
+
export interface ConsolePageLike {
|
|
188
|
+
on(event: 'console', listener: (message: ConsoleMessageLike) => void): void;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Forward the browser tab's `error` / `warning` console messages into the
|
|
192
|
+
* workspace's (per-suite) **browser-console** log — `<token>.browser.log`, its own
|
|
193
|
+
* file BESIDE the backend `server.log`, NOT interleaved into it. The two streams
|
|
194
|
+
* use different clocks (the backend logger vs the forwarder's arrival time), so a
|
|
195
|
+
* merged order would misrepresent timing; keeping them separate is honest and a
|
|
196
|
+
* consumer can still merge deliberately by each line's own timestamp. Playwright
|
|
197
|
+
* has both page access and fs access, so no renderer→backend transport is needed.
|
|
198
|
+
* Which levels are forwarded is configurable — `options.levels`, else the
|
|
199
|
+
* comma-separated {@link DEFAULT_BROWSER_LOG_LEVELS_ENV} env, else
|
|
200
|
+
* {@link DEFAULT_BROWSER_LOG_LEVELS} (`error` + `warning`, tiny volume; the
|
|
201
|
+
* production frontend logger strips info/debug/log anyway). Each line keeps the
|
|
202
|
+
* frontend logger's own timestamp (embedded in the text); a `[browser]` tag marks
|
|
203
|
+
* the origin.
|
|
204
|
+
*
|
|
205
|
+
* Call once after the page exists (e.g. right after the Theia app starts), with
|
|
206
|
+
* the test's workspace path. **No-op — and no listener attached — when no capture
|
|
207
|
+
* dir is configured** (`options.dir` / the default env var both unset), so a
|
|
208
|
+
* normal run is untouched. Best-effort; forwarding never throws.
|
|
209
|
+
*/
|
|
210
|
+
export declare function forwardBrowserConsole(page: ConsolePageLike, workspacePath: string, options?: {
|
|
211
|
+
dir?: string;
|
|
212
|
+
levels?: readonly string[];
|
|
213
|
+
}): void;
|
|
214
|
+
/**
|
|
215
|
+
* Per-test server-log capture, called from a spec's `afterEach` with the test's
|
|
216
|
+
* workspace path:
|
|
217
|
+
*
|
|
218
|
+
* - appends an end-of-test **boundary marker** to the workspace's (per-suite)
|
|
219
|
+
* server log, so each test's region is delimited within the shared stream;
|
|
220
|
+
* - attaches that log — and the separate browser-console log, when one exists —
|
|
221
|
+
* to the test, so it shows in the HTML report alongside the trace + screenshot.
|
|
222
|
+
* Which outcomes attach is {@link AttachServerLogOptions.attachOn}, failure-only
|
|
223
|
+
* by default.
|
|
224
|
+
*
|
|
225
|
+
* **No-op when no capture dir is configured** (`options.dir` and the default env
|
|
226
|
+
* var both unset), so a normal run is untouched — no per-spec guard needed.
|
|
227
|
+
* Markers and writes are best-effort; failures never propagate.
|
|
228
|
+
*/
|
|
229
|
+
export declare function attachServerLog(testInfo: ServerLogTestInfo, workspacePath: string, options?: AttachServerLogOptions): Promise<void>;
|
|
230
|
+
//# sourceMappingURL=server-log-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-log-capture.d.ts","sourceRoot":"","sources":["../../../src/testing/playwright/server-log-capture.ts"],"names":[],"mappings":"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"}
|