@angular/cdk 20.0.0-next.1 → 20.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/_adev_assets/cdk_testing.json +1 -0
- package/_adev_assets/cdk_testing_protractor.json +1 -0
- package/_adev_assets/cdk_testing_selenium_webdriver.json +1 -0
- package/_adev_assets/cdk_testing_testbed.json +1 -0
- package/a11y/index.d.ts +11 -11
- package/{a11y-module.d-7d03e079.d.ts → a11y-module.d-DBHGyKoh.d.ts} +4 -3
- package/a11y-prebuilt.css +1 -1
- package/accordion/index.d.ts +1 -1
- package/{activedescendant-key-manager.d-11921e3a.d.ts → activedescendant-key-manager.d-Bjic5obv.d.ts} +3 -2
- package/bidi/index.d.ts +1 -1
- package/{bidi-module.d-f8648621.d.ts → bidi-module.d-IN1Vp56w.d.ts} +8 -4
- package/clipboard/index.d.ts +2 -1
- package/coercion/index.d.ts +3 -2
- package/collections/index.d.ts +9 -8
- package/{data-source.d-7cab2c9d.d.ts → data-source.d-Bblv7Zvh.d.ts} +2 -1
- package/dialog/index.d.ts +26 -19
- package/drag-drop/index.d.ts +14 -6
- package/fesm2022/{a11y-module-e6996d20.mjs → a11y-module-DpEjWNCj.mjs} +32 -33
- package/fesm2022/a11y-module-DpEjWNCj.mjs.map +1 -0
- package/fesm2022/a11y.mjs +35 -36
- package/fesm2022/a11y.mjs.map +1 -1
- package/fesm2022/accordion.mjs +12 -12
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/{activedescendant-key-manager-1351a9d3.mjs → activedescendant-key-manager-DC3-fwQI.mjs} +2 -2
- package/fesm2022/activedescendant-key-manager-DC3-fwQI.mjs.map +1 -0
- package/fesm2022/{array-ee3b4bab.mjs → array-I1yfCXUO.mjs} +1 -1
- package/fesm2022/array-I1yfCXUO.mjs.map +1 -0
- package/fesm2022/bidi.mjs +77 -4
- package/fesm2022/bidi.mjs.map +1 -1
- package/fesm2022/{breakpoints-observer-d4584b66.mjs → breakpoints-observer-DpQzdtrE.mjs} +9 -9
- package/fesm2022/breakpoints-observer-DpQzdtrE.mjs.map +1 -0
- package/fesm2022/cdk.mjs +1 -1
- package/fesm2022/cdk.mjs.map +1 -1
- package/fesm2022/clipboard.mjs +11 -12
- package/fesm2022/clipboard.mjs.map +1 -1
- package/fesm2022/coercion/private.mjs +14 -2
- package/fesm2022/coercion/private.mjs.map +1 -1
- package/fesm2022/coercion.mjs +3 -3
- package/fesm2022/coercion.mjs.map +1 -1
- package/fesm2022/collections.mjs +5 -5
- package/fesm2022/{css-pixel-value-286c9a60.mjs → css-pixel-value-C_HEqLhI.mjs} +1 -1
- package/fesm2022/css-pixel-value-C_HEqLhI.mjs.map +1 -0
- package/fesm2022/{data-source-5320b6fd.mjs → data-source-D34wiQZj.mjs} +1 -1
- package/fesm2022/data-source-D34wiQZj.mjs.map +1 -0
- package/fesm2022/dialog.mjs +88 -71
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/{directionality-7ea26429.mjs → directionality-Ck5Uc9Se.mjs} +13 -8
- package/fesm2022/directionality-Ck5Uc9Se.mjs.map +1 -0
- package/fesm2022/{dispose-view-repeater-strategy-b11b87ea.mjs → dispose-view-repeater-strategy-D_JReLI1.mjs} +2 -2
- package/fesm2022/dispose-view-repeater-strategy-D_JReLI1.mjs.map +1 -0
- package/fesm2022/drag-drop.mjs +125 -60
- package/fesm2022/drag-drop.mjs.map +1 -1
- package/fesm2022/{element-705567fe.mjs → element-x4z00URv.mjs} +2 -2
- package/fesm2022/element-x4z00URv.mjs.map +1 -0
- package/fesm2022/{fake-event-detection-7055b1bd.mjs → fake-event-detection-DWOdFTFz.mjs} +1 -1
- package/fesm2022/fake-event-detection-DWOdFTFz.mjs.map +1 -0
- package/fesm2022/{focus-key-manager-58d29acd.mjs → focus-key-manager-C1rAQJ5z.mjs} +2 -2
- package/fesm2022/focus-key-manager-C1rAQJ5z.mjs.map +1 -0
- package/fesm2022/{focus-monitor-cebaa0d1.mjs → focus-monitor-DKFfep8Q.mjs} +21 -23
- package/fesm2022/focus-monitor-DKFfep8Q.mjs.map +1 -0
- package/fesm2022/{id-generator-fba495fb.mjs → id-generator-BwB8lolC.mjs} +4 -4
- package/fesm2022/id-generator-BwB8lolC.mjs.map +1 -0
- package/fesm2022/{keycodes-107cd3e4.mjs → keycodes-CpHkExLC.mjs} +2 -2
- package/fesm2022/keycodes-CpHkExLC.mjs.map +1 -0
- package/fesm2022/keycodes.mjs +14 -2
- package/fesm2022/keycodes.mjs.map +1 -1
- package/fesm2022/layout.mjs +7 -7
- package/fesm2022/layout.mjs.map +1 -1
- package/fesm2022/{list-key-manager-c7b5cefb.mjs → list-key-manager-CyOIXo8P.mjs} +4 -4
- package/fesm2022/list-key-manager-CyOIXo8P.mjs.map +1 -0
- package/fesm2022/listbox.mjs +20 -20
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +85 -90
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/observers/private.mjs +3 -3
- package/fesm2022/observers/private.mjs.map +1 -1
- package/fesm2022/observers.mjs +209 -5
- package/fesm2022/observers.mjs.map +1 -1
- package/fesm2022/{overlay-module-863b82c9.mjs → overlay-module-BaGhSGqO.mjs} +204 -171
- package/fesm2022/overlay-module-BaGhSGqO.mjs.map +1 -0
- package/fesm2022/overlay.mjs +23 -24
- package/fesm2022/overlay.mjs.map +1 -1
- package/fesm2022/{passive-listeners-c0bdc49f.mjs → passive-listeners-esHZRgIN.mjs} +1 -1
- package/fesm2022/passive-listeners-esHZRgIN.mjs.map +1 -0
- package/fesm2022/{platform-1be098b0.mjs → platform-CPg0IbDW.mjs} +4 -4
- package/fesm2022/platform-CPg0IbDW.mjs.map +1 -0
- package/fesm2022/platform.mjs +9 -10
- package/fesm2022/platform.mjs.map +1 -1
- package/fesm2022/portal.mjs +613 -3
- package/fesm2022/portal.mjs.map +1 -1
- package/fesm2022/private.mjs +18 -3
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/{recycle-view-repeater-strategy-c1712813.mjs → recycle-view-repeater-strategy-DoWdPqVw.mjs} +2 -2
- package/fesm2022/recycle-view-repeater-strategy-DoWdPqVw.mjs.map +1 -0
- package/fesm2022/{scrolling-61955dd1.mjs → scrolling-BkvA05C8.mjs} +1 -1
- package/fesm2022/scrolling-BkvA05C8.mjs.map +1 -0
- package/fesm2022/scrolling.mjs +1462 -11
- package/fesm2022/scrolling.mjs.map +1 -1
- package/fesm2022/{selection-model-30243dba.mjs → selection-model-BCgC8uEN.mjs} +1 -1
- package/fesm2022/selection-model-BCgC8uEN.mjs.map +1 -0
- package/fesm2022/{shadow-dom-9f403d00.mjs → shadow-dom-B0oHn41l.mjs} +2 -2
- package/fesm2022/shadow-dom-B0oHn41l.mjs.map +1 -0
- package/fesm2022/stepper.mjs +43 -38
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/{style-loader-e14dc585.mjs → style-loader-BDEAZOey.mjs} +4 -4
- package/fesm2022/style-loader-BDEAZOey.mjs.map +1 -0
- package/fesm2022/table.mjs +170 -226
- package/fesm2022/table.mjs.map +1 -1
- package/fesm2022/{test-environment-34eef1ee.mjs → test-environment-CT0XxPyp.mjs} +1 -1
- package/fesm2022/test-environment-CT0XxPyp.mjs.map +1 -0
- package/fesm2022/testing/selenium-webdriver.mjs +1 -1
- package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
- package/fesm2022/testing/testbed.mjs +2 -2
- package/fesm2022/testing/testbed.mjs.map +1 -1
- package/fesm2022/testing.mjs +697 -2
- package/fesm2022/testing.mjs.map +1 -1
- package/fesm2022/text-field.mjs +27 -24
- package/fesm2022/text-field.mjs.map +1 -1
- package/fesm2022/{tree-key-manager-2f20c79c.mjs → tree-key-manager-KnCoIkIC.mjs} +3 -3
- package/fesm2022/tree-key-manager-KnCoIkIC.mjs.map +1 -0
- package/fesm2022/tree.mjs +47 -35
- package/fesm2022/tree.mjs.map +1 -1
- package/fesm2022/{typeahead-11ae39bd.mjs → typeahead-9ZW4Dtsf.mjs} +2 -2
- package/fesm2022/typeahead-9ZW4Dtsf.mjs.map +1 -0
- package/fesm2022/{unique-selection-dispatcher-1d6f91d8.mjs → unique-selection-dispatcher-Cag6cZJ2.mjs} +4 -4
- package/fesm2022/unique-selection-dispatcher-Cag6cZJ2.mjs.map +1 -0
- package/{focus-key-manager.d-415a6958.d.ts → focus-key-manager.d-BIKDy8oD.d.ts} +4 -3
- package/{focus-monitor.d-810a02e6.d.ts → focus-monitor.d-CvvJeQRc.d.ts} +2 -1
- package/{harness-environment.d-4d615248.d.ts → harness-environment.d-BatBdODN.d.ts} +2 -1
- package/keycodes/index.d.ts +2 -1
- package/layout/index.d.ts +2 -1
- package/{list-key-manager.d-72e9a2e7.d.ts → list-key-manager.d-BlK3jyRn.d.ts} +2 -1
- package/listbox/index.d.ts +5 -4
- package/menu/index.d.ts +16 -18
- package/{number-property.d-ce316715.d.ts → number-property.d-CJVxXUcb.d.ts} +2 -1
- package/observers/index.d.ts +84 -4
- package/overlay/_index.scss +7 -1
- package/overlay/index.d.ts +77 -80
- package/{overlay-module.d-5d06db8a.d.ts → overlay-module.d-BiAhhk6g.d.ts} +23 -12
- package/overlay-prebuilt.css +1 -1
- package/package.json +2 -4
- package/platform/index.d.ts +2 -17
- package/portal/index.d.ts +3 -3
- package/{portal-directives.d-d345bd53.d.ts → portal-directives.d-DbeNrI5D.d.ts} +2 -1
- package/private/index.d.ts +1 -1
- package/schematics/index.js +1 -1
- package/schematics/index.js.map +1 -0
- package/schematics/ng-add/index.js +11 -19
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.js +1 -1
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-generate/drag-drop/index.js +15 -6
- package/schematics/ng-generate/drag-drop/index.js.map +1 -0
- package/schematics/ng-generate/drag-drop/schema.js +1 -1
- package/schematics/ng-generate/drag-drop/schema.js.map +1 -0
- package/schematics/ng-update/data/attribute-selectors.js +1 -1
- package/schematics/ng-update/data/attribute-selectors.js.map +1 -0
- package/schematics/ng-update/data/class-names.js +1 -1
- package/schematics/ng-update/data/class-names.js.map +1 -0
- package/schematics/ng-update/data/constructor-checks.js +1 -1
- package/schematics/ng-update/data/constructor-checks.js.map +1 -0
- package/schematics/ng-update/data/css-selectors.js +1 -1
- package/schematics/ng-update/data/css-selectors.js.map +1 -0
- package/schematics/ng-update/data/css-tokens.js +1 -1
- package/schematics/ng-update/data/css-tokens.js.map +1 -0
- package/schematics/ng-update/data/element-selectors.js +1 -1
- package/schematics/ng-update/data/element-selectors.js.map +1 -0
- package/schematics/ng-update/data/index.js +1 -1
- package/schematics/ng-update/data/index.js.map +1 -0
- package/schematics/ng-update/data/input-names.js +1 -1
- package/schematics/ng-update/data/input-names.js.map +1 -0
- package/schematics/ng-update/data/method-call-checks.js +1 -1
- package/schematics/ng-update/data/method-call-checks.js.map +1 -0
- package/schematics/ng-update/data/output-names.js +1 -1
- package/schematics/ng-update/data/output-names.js.map +1 -0
- package/schematics/ng-update/data/property-names.js +1 -1
- package/schematics/ng-update/data/property-names.js.map +1 -0
- package/schematics/ng-update/data/symbol-removal.js +1 -1
- package/schematics/ng-update/data/symbol-removal.js.map +1 -0
- package/schematics/ng-update/devkit-file-system.js +2 -3
- package/schematics/ng-update/devkit-file-system.js.map +1 -0
- package/schematics/ng-update/devkit-migration-rule.js +13 -4
- package/schematics/ng-update/devkit-migration-rule.js.map +1 -0
- package/schematics/ng-update/devkit-migration.d.ts +2 -2
- package/schematics/ng-update/devkit-migration.js +1 -1
- package/schematics/ng-update/devkit-migration.js.map +1 -0
- package/schematics/ng-update/find-stylesheets.js +1 -1
- package/schematics/ng-update/find-stylesheets.js.map +1 -0
- package/schematics/ng-update/html-parsing/angular.js +2 -2
- package/schematics/ng-update/html-parsing/angular.js.map +1 -0
- package/schematics/ng-update/html-parsing/elements.js +3 -2
- package/schematics/ng-update/html-parsing/elements.js.map +1 -0
- package/schematics/ng-update/index.js +1 -1
- package/schematics/ng-update/index.js.map +1 -0
- package/schematics/ng-update/migrations/attribute-selectors.js +8 -5
- package/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
- package/schematics/ng-update/migrations/class-inheritance.js +11 -8
- package/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
- package/schematics/ng-update/migrations/class-names.js +15 -12
- package/schematics/ng-update/migrations/class-names.js.map +1 -0
- package/schematics/ng-update/migrations/constructor-signature.js +10 -7
- package/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
- package/schematics/ng-update/migrations/css-selectors.js +8 -5
- package/schematics/ng-update/migrations/css-selectors.js.map +1 -0
- package/schematics/ng-update/migrations/css-tokens.js +8 -5
- package/schematics/ng-update/migrations/css-tokens.js.map +1 -0
- package/schematics/ng-update/migrations/element-selectors.js +8 -5
- package/schematics/ng-update/migrations/element-selectors.js.map +1 -0
- package/schematics/ng-update/migrations/input-names.js +8 -5
- package/schematics/ng-update/migrations/input-names.js.map +1 -0
- package/schematics/ng-update/migrations/method-call-arguments.js +8 -5
- package/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
- package/schematics/ng-update/migrations/misc-template.js +6 -3
- package/schematics/ng-update/migrations/misc-template.js.map +1 -0
- package/schematics/ng-update/migrations/output-names.js +8 -5
- package/schematics/ng-update/migrations/output-names.js.map +1 -0
- package/schematics/ng-update/migrations/property-names.js +8 -5
- package/schematics/ng-update/migrations/property-names.js.map +1 -0
- package/schematics/ng-update/migrations/symbol-removal.js +10 -6
- package/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
- package/schematics/ng-update/public-api.js +1 -1
- package/schematics/ng-update/public-api.js.map +1 -0
- package/schematics/ng-update/typescript/base-types.js +1 -1
- package/schematics/ng-update/typescript/base-types.js.map +1 -0
- package/schematics/ng-update/typescript/imports.js +1 -1
- package/schematics/ng-update/typescript/imports.js.map +1 -0
- package/schematics/ng-update/typescript/literal.js +1 -1
- package/schematics/ng-update/typescript/literal.js.map +1 -0
- package/schematics/ng-update/typescript/module-specifiers.js +1 -1
- package/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
- package/schematics/ng-update/upgrade-data.js +1 -1
- package/schematics/ng-update/upgrade-data.js.map +1 -0
- package/schematics/paths.js +1 -1
- package/schematics/paths.js.map +1 -0
- package/schematics/update-tool/component-resource-collector.js +3 -5
- package/schematics/update-tool/component-resource-collector.js.map +1 -0
- package/schematics/update-tool/file-system.js +1 -1
- package/schematics/update-tool/file-system.js.map +1 -0
- package/schematics/update-tool/index.js +2 -8
- package/schematics/update-tool/index.js.map +1 -0
- package/schematics/update-tool/logger.js +1 -1
- package/schematics/update-tool/logger.js.map +1 -0
- package/schematics/update-tool/migration.js +3 -10
- package/schematics/update-tool/migration.js.map +1 -0
- package/schematics/update-tool/public-api.js +1 -1
- package/schematics/update-tool/public-api.js.map +1 -0
- package/schematics/update-tool/target-version.js +1 -1
- package/schematics/update-tool/target-version.js.map +1 -0
- package/schematics/update-tool/update-recorder.js +1 -1
- package/schematics/update-tool/update-recorder.js.map +1 -0
- package/schematics/update-tool/utils/decorators.js +1 -1
- package/schematics/update-tool/utils/decorators.js.map +1 -0
- package/schematics/update-tool/utils/diagnostics.js +1 -1
- package/schematics/update-tool/utils/diagnostics.js.map +1 -0
- package/schematics/update-tool/utils/functions.js +1 -1
- package/schematics/update-tool/utils/functions.js.map +1 -0
- package/schematics/update-tool/utils/imports.js +1 -1
- package/schematics/update-tool/utils/imports.js.map +1 -0
- package/schematics/update-tool/utils/line-mappings.js +1 -1
- package/schematics/update-tool/utils/line-mappings.js.map +1 -0
- package/schematics/update-tool/utils/parse-tsconfig.js +1 -1
- package/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
- package/schematics/update-tool/utils/property-name.js +1 -1
- package/schematics/update-tool/utils/property-name.js.map +1 -0
- package/schematics/update-tool/utils/virtual-host.js +2 -3
- package/schematics/update-tool/utils/virtual-host.js.map +1 -0
- package/schematics/update-tool/version-changes.js +1 -1
- package/schematics/update-tool/version-changes.js.map +1 -0
- package/schematics/utils/ast/ng-module-imports.js +1 -1
- package/schematics/utils/ast/ng-module-imports.js.map +1 -0
- package/schematics/utils/ast.d.ts +2 -2
- package/schematics/utils/ast.js +23 -12
- package/schematics/utils/ast.js.map +1 -0
- package/schematics/utils/build-component.js +22 -17
- package/schematics/utils/build-component.js.map +1 -0
- package/schematics/utils/get-project.d.ts +2 -2
- package/schematics/utils/get-project.js +1 -1
- package/schematics/utils/get-project.js.map +1 -0
- package/schematics/utils/html-manipulation.js +1 -1
- package/schematics/utils/html-manipulation.js.map +1 -0
- package/schematics/utils/index.js +1 -1
- package/schematics/utils/index.js.map +1 -0
- package/schematics/utils/parse5-element.js +1 -1
- package/schematics/utils/parse5-element.js.map +1 -0
- package/schematics/utils/project-index-file.d.ts +6 -3
- package/schematics/utils/project-index-file.js +30 -7
- package/schematics/utils/project-index-file.js.map +1 -0
- package/schematics/utils/project-main-file.d.ts +3 -2
- package/schematics/utils/project-main-file.js +1 -1
- package/schematics/utils/project-main-file.js.map +1 -0
- package/schematics/utils/project-style-file.d.ts +2 -2
- package/schematics/utils/project-style-file.js +1 -1
- package/schematics/utils/project-style-file.js.map +1 -0
- package/schematics/utils/project-targets.d.ts +5 -4
- package/schematics/utils/project-targets.js +15 -8
- package/schematics/utils/project-targets.js.map +1 -0
- package/schematics/utils/project-tsconfig-paths.d.ts +3 -3
- package/schematics/utils/project-tsconfig-paths.js +26 -14
- package/schematics/utils/project-tsconfig-paths.js.map +1 -0
- package/schematics/utils/schematic-options.d.ts +2 -2
- package/schematics/utils/schematic-options.js +27 -15
- package/schematics/utils/schematic-options.js.map +1 -0
- package/scrolling/index.d.ts +62 -7
- package/{scrolling-module.d-a08a462d.d.ts → scrolling-module.d-DP0Qb7T9.d.ts} +5 -4
- package/{selection-model.d-1a70542c.d.ts → selection-model.d-DNgOONDg.d.ts} +2 -1
- package/stepper/index.d.ts +6 -5
- package/table/index.d.ts +9 -197
- package/testing/index.d.ts +3 -2
- package/testing/selenium-webdriver/index.d.ts +3 -2
- package/testing/testbed/index.d.ts +3 -2
- package/text-field/index.d.ts +5 -2
- package/text-field-prebuilt.css +1 -1
- package/tree/index.d.ts +7 -4
- package/{tree-key-manager-strategy.d-603161dd.d.ts → tree-key-manager-strategy.d-XB6M79l-.d.ts} +1 -1
- package/{unique-selection-dispatcher.d-7993b9f5.d.ts → unique-selection-dispatcher.d-DSFqf1MM.d.ts} +2 -1
- package/{view-repeater.d-79039e1f.d.ts → view-repeater.d-BKljR8u8.d.ts} +2 -1
- package/fesm2022/a11y-module-e6996d20.mjs.map +0 -1
- package/fesm2022/activedescendant-key-manager-1351a9d3.mjs.map +0 -1
- package/fesm2022/array-ee3b4bab.mjs.map +0 -1
- package/fesm2022/backwards-compatibility-bcbe473e.mjs +0 -25
- package/fesm2022/backwards-compatibility-bcbe473e.mjs.map +0 -1
- package/fesm2022/bidi-module-0726b65c.mjs +0 -78
- package/fesm2022/bidi-module-0726b65c.mjs.map +0 -1
- package/fesm2022/breakpoints-observer-d4584b66.mjs.map +0 -1
- package/fesm2022/css-pixel-value-286c9a60.mjs.map +0 -1
- package/fesm2022/data-source-5320b6fd.mjs.map +0 -1
- package/fesm2022/directionality-7ea26429.mjs.map +0 -1
- package/fesm2022/dispose-view-repeater-strategy-b11b87ea.mjs.map +0 -1
- package/fesm2022/element-705567fe.mjs.map +0 -1
- package/fesm2022/fake-event-detection-7055b1bd.mjs.map +0 -1
- package/fesm2022/focus-key-manager-58d29acd.mjs.map +0 -1
- package/fesm2022/focus-monitor-cebaa0d1.mjs.map +0 -1
- package/fesm2022/id-generator-fba495fb.mjs.map +0 -1
- package/fesm2022/keycodes-107cd3e4.mjs.map +0 -1
- package/fesm2022/list-key-manager-c7b5cefb.mjs.map +0 -1
- package/fesm2022/modifiers-33a5859e.mjs +0 -13
- package/fesm2022/modifiers-33a5859e.mjs.map +0 -1
- package/fesm2022/observable-97c0792c.mjs +0 -15
- package/fesm2022/observable-97c0792c.mjs.map +0 -1
- package/fesm2022/observe-content-d2a6b5a0.mjs +0 -210
- package/fesm2022/observe-content-d2a6b5a0.mjs.map +0 -1
- package/fesm2022/overlay-module-863b82c9.mjs.map +0 -1
- package/fesm2022/passive-listeners-c0bdc49f.mjs.map +0 -1
- package/fesm2022/platform-1be098b0.mjs.map +0 -1
- package/fesm2022/portal-directives-c88fea11.mjs +0 -615
- package/fesm2022/portal-directives-c88fea11.mjs.map +0 -1
- package/fesm2022/recycle-view-repeater-strategy-c1712813.mjs.map +0 -1
- package/fesm2022/scrolling-61955dd1.mjs.map +0 -1
- package/fesm2022/scrolling-module-aa9eeac5.mjs +0 -1463
- package/fesm2022/scrolling-module-aa9eeac5.mjs.map +0 -1
- package/fesm2022/selection-model-30243dba.mjs.map +0 -1
- package/fesm2022/shadow-dom-9f403d00.mjs.map +0 -1
- package/fesm2022/style-loader-e14dc585.mjs.map +0 -1
- package/fesm2022/test-environment-34eef1ee.mjs.map +0 -1
- package/fesm2022/text-filtering-b60ba8a2.mjs +0 -698
- package/fesm2022/text-filtering-b60ba8a2.mjs.map +0 -1
- package/fesm2022/tree-key-manager-2f20c79c.mjs.map +0 -1
- package/fesm2022/typeahead-11ae39bd.mjs.map +0 -1
- package/fesm2022/unique-selection-dispatcher-1d6f91d8.mjs.map +0 -1
- package/fesm2022/visually-hidden-83aea4a0.mjs +0 -18
- package/fesm2022/visually-hidden-83aea4a0.mjs.map +0 -1
- package/observe-content.d-c08bc882.d.ts +0 -84
- package/schematics/index.mjs +0 -37
- package/schematics/ng-add/index.mjs +0 -39
- package/schematics/ng-add/package-config.d.ts +0 -12
- package/schematics/ng-add/package-config.js +0 -51
- package/schematics/ng-add/package-config.mjs +0 -51
- package/schematics/ng-add/schema.mjs +0 -10
- package/schematics/ng-generate/drag-drop/index.mjs +0 -33
- package/schematics/ng-generate/drag-drop/schema.mjs +0 -10
- package/schematics/ng-update/data/attribute-selectors.mjs +0 -12
- package/schematics/ng-update/data/class-names.mjs +0 -12
- package/schematics/ng-update/data/constructor-checks.mjs +0 -17
- package/schematics/ng-update/data/css-selectors.mjs +0 -12
- package/schematics/ng-update/data/css-tokens.mjs +0 -12
- package/schematics/ng-update/data/element-selectors.mjs +0 -12
- package/schematics/ng-update/data/index.mjs +0 -35
- package/schematics/ng-update/data/input-names.mjs +0 -12
- package/schematics/ng-update/data/method-call-checks.mjs +0 -12
- package/schematics/ng-update/data/output-names.mjs +0 -12
- package/schematics/ng-update/data/property-names.mjs +0 -12
- package/schematics/ng-update/data/symbol-removal.mjs +0 -12
- package/schematics/ng-update/devkit-file-system.mjs +0 -84
- package/schematics/ng-update/devkit-migration-rule.mjs +0 -133
- package/schematics/ng-update/devkit-migration.mjs +0 -20
- package/schematics/ng-update/find-stylesheets.mjs +0 -41
- package/schematics/ng-update/html-parsing/angular.mjs +0 -51
- package/schematics/ng-update/html-parsing/elements.mjs +0 -62
- package/schematics/ng-update/index.mjs +0 -29
- package/schematics/ng-update/migrations/attribute-selectors.mjs +0 -68
- package/schematics/ng-update/migrations/class-inheritance.mjs +0 -55
- package/schematics/ng-update/migrations/class-names.mjs +0 -88
- package/schematics/ng-update/migrations/constructor-signature.mjs +0 -136
- package/schematics/ng-update/migrations/css-selectors.mjs +0 -72
- package/schematics/ng-update/migrations/css-tokens.mjs +0 -80
- package/schematics/ng-update/migrations/element-selectors.mjs +0 -63
- package/schematics/ng-update/migrations/input-names.mjs +0 -56
- package/schematics/ng-update/migrations/method-call-arguments.mjs +0 -59
- package/schematics/ng-update/migrations/misc-template.mjs +0 -22
- package/schematics/ng-update/migrations/output-names.mjs +0 -43
- package/schematics/ng-update/migrations/property-names.mjs +0 -57
- package/schematics/ng-update/migrations/symbol-removal.mjs +0 -43
- package/schematics/ng-update/public-api.mjs +0 -36
- package/schematics/ng-update/typescript/base-types.mjs +0 -23
- package/schematics/ng-update/typescript/imports.mjs +0 -53
- package/schematics/ng-update/typescript/literal.mjs +0 -32
- package/schematics/ng-update/typescript/module-specifiers.mjs +0 -35
- package/schematics/ng-update/upgrade-data.mjs +0 -40
- package/schematics/paths.mjs +0 -16
- package/schematics/schematics.externs.js +0 -0
- package/schematics/tsconfig.json +0 -29
- package/schematics/update-tool/component-resource-collector.mjs +0 -166
- package/schematics/update-tool/file-system.mjs +0 -18
- package/schematics/update-tool/index.mjs +0 -178
- package/schematics/update-tool/logger.mjs +0 -18
- package/schematics/update-tool/migration.mjs +0 -77
- package/schematics/update-tool/public-api.mjs +0 -33
- package/schematics/update-tool/target-version.mjs +0 -27
- package/schematics/update-tool/update-recorder.mjs +0 -10
- package/schematics/update-tool/update-tool.externs.js +0 -0
- package/schematics/update-tool/utils/decorators.mjs +0 -41
- package/schematics/update-tool/utils/diagnostics.mjs +0 -18
- package/schematics/update-tool/utils/functions.mjs +0 -20
- package/schematics/update-tool/utils/imports.mjs +0 -110
- package/schematics/update-tool/utils/line-mappings.mjs +0 -75
- package/schematics/update-tool/utils/parse-tsconfig.mjs +0 -45
- package/schematics/update-tool/utils/property-name.mjs +0 -27
- package/schematics/update-tool/utils/virtual-host.mjs +0 -72
- package/schematics/update-tool/version-changes.mjs +0 -38
- package/schematics/utils/ast/ng-module-imports.mjs +0 -82
- package/schematics/utils/ast.mjs +0 -68
- package/schematics/utils/build-component.mjs +0 -183
- package/schematics/utils/get-project.mjs +0 -28
- package/schematics/utils/html-manipulation.mjs +0 -91
- package/schematics/utils/index.mjs +0 -36
- package/schematics/utils/parse5-element.mjs +0 -30
- package/schematics/utils/project-index-file.mjs +0 -20
- package/schematics/utils/project-main-file.mjs +0 -25
- package/schematics/utils/project-style-file.mjs +0 -42
- package/schematics/utils/project-targets.mjs +0 -39
- package/schematics/utils/project-tsconfig-paths.mjs +0 -34
- package/schematics/utils/schematic-options.mjs +0 -77
- package/viewport-ruler.d-f3d3e82f.d.ts +0 -57
- /package/{platform.d-0a5b4792.d.ts → platform.d-B3vREl3q.d.ts} +0 -0
- /package/{style-loader.d-19baab84.d.ts → style-loader.d-BXZfQZTF.d.ts} +0 -0
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.getLineAndCharacterFromPosition = getLineAndCharacterFromPosition;
|
|
11
|
-
exports.computeLineStartsMap = computeLineStartsMap;
|
|
12
|
-
/*
|
|
13
|
-
* Line mapping utilities which can be used to retrieve line and character based
|
|
14
|
-
* on an absolute character position in a given file. This functionality is similar
|
|
15
|
-
* to TypeScript's "ts.getLineAndCharacterFromPosition" utility, but we cannot leverage
|
|
16
|
-
* their logic for line mappings as it's internal and we need to generate line mappings
|
|
17
|
-
* for non-TypeScript files such as HTML templates or stylesheets.
|
|
18
|
-
*
|
|
19
|
-
* Line and character can be retrieved by splitting a given source text based on
|
|
20
|
-
* line breaks into line start entries. Later when a specific position is requested,
|
|
21
|
-
* the closest line-start position is determined based on the given position.
|
|
22
|
-
*/
|
|
23
|
-
const LF_CHAR = 10;
|
|
24
|
-
const CR_CHAR = 13;
|
|
25
|
-
const LINE_SEP_CHAR = 8232;
|
|
26
|
-
const PARAGRAPH_CHAR = 8233;
|
|
27
|
-
/** Gets the line and character for the given position from the line starts map. */
|
|
28
|
-
function getLineAndCharacterFromPosition(lineStartsMap, position) {
|
|
29
|
-
const lineIndex = findClosestLineStartPosition(lineStartsMap, position);
|
|
30
|
-
return { character: position - lineStartsMap[lineIndex], line: lineIndex };
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Computes the line start map of the given text. This can be used in order to
|
|
34
|
-
* retrieve the line and character of a given text position index.
|
|
35
|
-
*/
|
|
36
|
-
function computeLineStartsMap(text) {
|
|
37
|
-
const result = [0];
|
|
38
|
-
let pos = 0;
|
|
39
|
-
while (pos < text.length) {
|
|
40
|
-
const char = text.charCodeAt(pos++);
|
|
41
|
-
// Handles the "CRLF" line break. In that case we peek the character
|
|
42
|
-
// after the "CR" and check if it is a line feed.
|
|
43
|
-
if (char === CR_CHAR) {
|
|
44
|
-
if (text.charCodeAt(pos) === LF_CHAR) {
|
|
45
|
-
pos++;
|
|
46
|
-
}
|
|
47
|
-
result.push(pos);
|
|
48
|
-
}
|
|
49
|
-
else if (char === LF_CHAR || char === LINE_SEP_CHAR || char === PARAGRAPH_CHAR) {
|
|
50
|
-
result.push(pos);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
result.push(pos);
|
|
54
|
-
return result;
|
|
55
|
-
}
|
|
56
|
-
/** Finds the closest line start for the given position. */
|
|
57
|
-
function findClosestLineStartPosition(linesMap, position, low = 0, high = linesMap.length - 1) {
|
|
58
|
-
while (low <= high) {
|
|
59
|
-
const pivotIndex = Math.floor((low + high) / 2);
|
|
60
|
-
const pivotEl = linesMap[pivotIndex];
|
|
61
|
-
if (pivotEl === position) {
|
|
62
|
-
return pivotIndex;
|
|
63
|
-
}
|
|
64
|
-
else if (position > pivotEl) {
|
|
65
|
-
low = pivotIndex + 1;
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
high = pivotIndex - 1;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// In case there was no exact match, return the closest "lower" line index. We also
|
|
72
|
-
// subtract the index by one because want the index of the previous line start.
|
|
73
|
-
return low - 1;
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1tYXBwaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC91dGlscy9saW5lLW1hcHBpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBeUJILDBFQUdDO0FBTUQsb0RBa0JDO0FBbEREOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDbkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztBQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFPNUIsbUZBQW1GO0FBQ25GLFNBQWdCLCtCQUErQixDQUFDLGFBQXVCLEVBQUUsUUFBZ0I7SUFDdkYsTUFBTSxTQUFTLEdBQUcsNEJBQTRCLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsTUFBTSxNQUFNLEdBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDWixPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLG9FQUFvRTtRQUNwRSxpREFBaUQ7UUFDakQsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNyQyxHQUFHLEVBQUUsQ0FBQztZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxLQUFLLGFBQWEsSUFBSSxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7WUFDakYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxTQUFTLDRCQUE0QixDQUNuQyxRQUFhLEVBQ2IsUUFBVyxFQUNYLEdBQUcsR0FBRyxDQUFDLEVBQ1AsSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztJQUUxQixPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyQyxJQUFJLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO2FBQU0sSUFBSSxRQUFRLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDOUIsR0FBRyxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELG1GQUFtRjtJQUNuRiwrRUFBK0U7SUFDL0UsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbi8qXG4gKiBMaW5lIG1hcHBpbmcgdXRpbGl0aWVzIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJldHJpZXZlIGxpbmUgYW5kIGNoYXJhY3RlciBiYXNlZFxuICogb24gYW4gYWJzb2x1dGUgY2hhcmFjdGVyIHBvc2l0aW9uIGluIGEgZ2l2ZW4gZmlsZS4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHNpbWlsYXJcbiAqIHRvIFR5cGVTY3JpcHQncyBcInRzLmdldExpbmVBbmRDaGFyYWN0ZXJGcm9tUG9zaXRpb25cIiB1dGlsaXR5LCBidXQgd2UgY2Fubm90IGxldmVyYWdlXG4gKiB0aGVpciBsb2dpYyBmb3IgbGluZSBtYXBwaW5ncyBhcyBpdCdzIGludGVybmFsIGFuZCB3ZSBuZWVkIHRvIGdlbmVyYXRlIGxpbmUgbWFwcGluZ3NcbiAqIGZvciBub24tVHlwZVNjcmlwdCBmaWxlcyBzdWNoIGFzIEhUTUwgdGVtcGxhdGVzIG9yIHN0eWxlc2hlZXRzLlxuICpcbiAqIExpbmUgYW5kIGNoYXJhY3RlciBjYW4gYmUgcmV0cmlldmVkIGJ5IHNwbGl0dGluZyBhIGdpdmVuIHNvdXJjZSB0ZXh0IGJhc2VkIG9uXG4gKiBsaW5lIGJyZWFrcyBpbnRvIGxpbmUgc3RhcnQgZW50cmllcy4gTGF0ZXIgd2hlbiBhIHNwZWNpZmljIHBvc2l0aW9uIGlzIHJlcXVlc3RlZCxcbiAqIHRoZSBjbG9zZXN0IGxpbmUtc3RhcnQgcG9zaXRpb24gaXMgZGV0ZXJtaW5lZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gcG9zaXRpb24uXG4gKi9cblxuY29uc3QgTEZfQ0hBUiA9IDEwO1xuY29uc3QgQ1JfQ0hBUiA9IDEzO1xuY29uc3QgTElORV9TRVBfQ0hBUiA9IDgyMzI7XG5jb25zdCBQQVJBR1JBUEhfQ0hBUiA9IDgyMzM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGluZUFuZENoYXJhY3RlciB7XG4gIGNoYXJhY3RlcjogbnVtYmVyO1xuICBsaW5lOiBudW1iZXI7XG59XG5cbi8qKiBHZXRzIHRoZSBsaW5lIGFuZCBjaGFyYWN0ZXIgZm9yIHRoZSBnaXZlbiBwb3NpdGlvbiBmcm9tIHRoZSBsaW5lIHN0YXJ0cyBtYXAuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGluZUFuZENoYXJhY3RlckZyb21Qb3NpdGlvbihsaW5lU3RhcnRzTWFwOiBudW1iZXJbXSwgcG9zaXRpb246IG51bWJlcikge1xuICBjb25zdCBsaW5lSW5kZXggPSBmaW5kQ2xvc2VzdExpbmVTdGFydFBvc2l0aW9uKGxpbmVTdGFydHNNYXAsIHBvc2l0aW9uKTtcbiAgcmV0dXJuIHtjaGFyYWN0ZXI6IHBvc2l0aW9uIC0gbGluZVN0YXJ0c01hcFtsaW5lSW5kZXhdLCBsaW5lOiBsaW5lSW5kZXh9O1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBsaW5lIHN0YXJ0IG1hcCBvZiB0aGUgZ2l2ZW4gdGV4dC4gVGhpcyBjYW4gYmUgdXNlZCBpbiBvcmRlciB0b1xuICogcmV0cmlldmUgdGhlIGxpbmUgYW5kIGNoYXJhY3RlciBvZiBhIGdpdmVuIHRleHQgcG9zaXRpb24gaW5kZXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTGluZVN0YXJ0c01hcCh0ZXh0OiBzdHJpbmcpOiBudW1iZXJbXSB7XG4gIGNvbnN0IHJlc3VsdDogbnVtYmVyW10gPSBbMF07XG4gIGxldCBwb3MgPSAwO1xuICB3aGlsZSAocG9zIDwgdGV4dC5sZW5ndGgpIHtcbiAgICBjb25zdCBjaGFyID0gdGV4dC5jaGFyQ29kZUF0KHBvcysrKTtcbiAgICAvLyBIYW5kbGVzIHRoZSBcIkNSTEZcIiBsaW5lIGJyZWFrLiBJbiB0aGF0IGNhc2Ugd2UgcGVlayB0aGUgY2hhcmFjdGVyXG4gICAgLy8gYWZ0ZXIgdGhlIFwiQ1JcIiBhbmQgY2hlY2sgaWYgaXQgaXMgYSBsaW5lIGZlZWQuXG4gICAgaWYgKGNoYXIgPT09IENSX0NIQVIpIHtcbiAgICAgIGlmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gTEZfQ0hBUikge1xuICAgICAgICBwb3MrKztcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKHBvcyk7XG4gICAgfSBlbHNlIGlmIChjaGFyID09PSBMRl9DSEFSIHx8IGNoYXIgPT09IExJTkVfU0VQX0NIQVIgfHwgY2hhciA9PT0gUEFSQUdSQVBIX0NIQVIpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHBvcyk7XG4gICAgfVxuICB9XG4gIHJlc3VsdC5wdXNoKHBvcyk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBGaW5kcyB0aGUgY2xvc2VzdCBsaW5lIHN0YXJ0IGZvciB0aGUgZ2l2ZW4gcG9zaXRpb24uICovXG5mdW5jdGlvbiBmaW5kQ2xvc2VzdExpbmVTdGFydFBvc2l0aW9uPFQ+KFxuICBsaW5lc01hcDogVFtdLFxuICBwb3NpdGlvbjogVCxcbiAgbG93ID0gMCxcbiAgaGlnaCA9IGxpbmVzTWFwLmxlbmd0aCAtIDEsXG4pIHtcbiAgd2hpbGUgKGxvdyA8PSBoaWdoKSB7XG4gICAgY29uc3QgcGl2b3RJbmRleCA9IE1hdGguZmxvb3IoKGxvdyArIGhpZ2gpIC8gMik7XG4gICAgY29uc3QgcGl2b3RFbCA9IGxpbmVzTWFwW3Bpdm90SW5kZXhdO1xuXG4gICAgaWYgKHBpdm90RWwgPT09IHBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gcGl2b3RJbmRleDtcbiAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID4gcGl2b3RFbCkge1xuICAgICAgbG93ID0gcGl2b3RJbmRleCArIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpZ2ggPSBwaXZvdEluZGV4IC0gMTtcbiAgICB9XG4gIH1cblxuICAvLyBJbiBjYXNlIHRoZXJlIHdhcyBubyBleGFjdCBtYXRjaCwgcmV0dXJuIHRoZSBjbG9zZXN0IFwibG93ZXJcIiBsaW5lIGluZGV4LiBXZSBhbHNvXG4gIC8vIHN1YnRyYWN0IHRoZSBpbmRleCBieSBvbmUgYmVjYXVzZSB3YW50IHRoZSBpbmRleCBvZiB0aGUgcHJldmlvdXMgbGluZSBzdGFydC5cbiAgcmV0dXJuIGxvdyAtIDE7XG59XG4iXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.TsconfigParseError = void 0;
|
|
11
|
-
exports.parseTsconfigFile = parseTsconfigFile;
|
|
12
|
-
const ts = require("typescript");
|
|
13
|
-
const virtual_host_1 = require("./virtual-host");
|
|
14
|
-
const path_1 = require("path");
|
|
15
|
-
const diagnostics_1 = require("./diagnostics");
|
|
16
|
-
/** Code of the error raised by TypeScript when a tsconfig doesn't match any files. */
|
|
17
|
-
const NO_INPUTS_ERROR_CODE = 18003;
|
|
18
|
-
/** Class capturing a tsconfig parse error. */
|
|
19
|
-
class TsconfigParseError extends Error {
|
|
20
|
-
}
|
|
21
|
-
exports.TsconfigParseError = TsconfigParseError;
|
|
22
|
-
/**
|
|
23
|
-
* Attempts to parse the specified tsconfig file.
|
|
24
|
-
*
|
|
25
|
-
* @throws {TsconfigParseError} If the tsconfig could not be read or parsed.
|
|
26
|
-
*/
|
|
27
|
-
function parseTsconfigFile(tsconfigPath, fileSystem) {
|
|
28
|
-
if (!fileSystem.fileExists(tsconfigPath)) {
|
|
29
|
-
throw new TsconfigParseError(`Tsconfig cannot not be read: ${tsconfigPath}`);
|
|
30
|
-
}
|
|
31
|
-
const { config, error } = ts.readConfigFile(tsconfigPath, p => fileSystem.read(fileSystem.resolve(p)));
|
|
32
|
-
// If there is a config reading error, we never attempt to parse the config.
|
|
33
|
-
if (error) {
|
|
34
|
-
throw new TsconfigParseError((0, diagnostics_1.formatDiagnostics)([error], fileSystem));
|
|
35
|
-
}
|
|
36
|
-
const parsed = ts.parseJsonConfigFileContent(config, new virtual_host_1.FileSystemHost(fileSystem), (0, path_1.dirname)(tsconfigPath), {});
|
|
37
|
-
// Skip the "No inputs found..." error since we don't want to interrupt the migration if a
|
|
38
|
-
// tsconfig doesn't match a file. This will result in an empty `Program` which is still valid.
|
|
39
|
-
const errors = parsed.errors.filter(diag => diag.code !== NO_INPUTS_ERROR_CODE);
|
|
40
|
-
if (errors.length) {
|
|
41
|
-
throw new TsconfigParseError((0, diagnostics_1.formatDiagnostics)(errors, fileSystem));
|
|
42
|
-
}
|
|
43
|
-
return parsed;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdHNjb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXBkYXRlLXRvb2wvdXRpbHMvcGFyc2UtdHNjb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBbUJILDhDQWtDQztBQW5ERCxpQ0FBaUM7QUFFakMsaURBQThDO0FBQzlDLCtCQUE2QjtBQUM3QiwrQ0FBZ0Q7QUFFaEQsc0ZBQXNGO0FBQ3RGLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBRW5DLDhDQUE4QztBQUM5QyxNQUFhLGtCQUFtQixTQUFRLEtBQUs7Q0FBRztBQUFoRCxnREFBZ0Q7QUFFaEQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUMvQixZQUEyQixFQUMzQixVQUFzQjtJQUV0QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxnQ0FBZ0MsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsTUFBTSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUN2QyxZQUFZLEVBQ1osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FDN0MsQ0FBQztJQUVGLDRFQUE0RTtJQUM1RSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLGtCQUFrQixDQUFDLElBQUEsK0JBQWlCLEVBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQzFDLE1BQU0sRUFDTixJQUFJLDZCQUFjLENBQUMsVUFBVSxDQUFDLEVBQzlCLElBQUEsY0FBTyxFQUFDLFlBQVksQ0FBQyxFQUNyQixFQUFFLENBQ0gsQ0FBQztJQUVGLDBGQUEwRjtJQUMxRiw4RkFBOEY7SUFDOUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLENBQUM7SUFFaEYsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLGtCQUFrQixDQUFDLElBQUEsK0JBQWlCLEVBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtGaWxlU3lzdGVtLCBXb3Jrc3BhY2VQYXRofSBmcm9tICcuLi9maWxlLXN5c3RlbSc7XG5pbXBvcnQge0ZpbGVTeXN0ZW1Ib3N0fSBmcm9tICcuL3ZpcnR1YWwtaG9zdCc7XG5pbXBvcnQge2Rpcm5hbWV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtmb3JtYXREaWFnbm9zdGljc30gZnJvbSAnLi9kaWFnbm9zdGljcyc7XG5cbi8qKiBDb2RlIG9mIHRoZSBlcnJvciByYWlzZWQgYnkgVHlwZVNjcmlwdCB3aGVuIGEgdHNjb25maWcgZG9lc24ndCBtYXRjaCBhbnkgZmlsZXMuICovXG5jb25zdCBOT19JTlBVVFNfRVJST1JfQ09ERSA9IDE4MDAzO1xuXG4vKiogQ2xhc3MgY2FwdHVyaW5nIGEgdHNjb25maWcgcGFyc2UgZXJyb3IuICovXG5leHBvcnQgY2xhc3MgVHNjb25maWdQYXJzZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cblxuLyoqXG4gKiBBdHRlbXB0cyB0byBwYXJzZSB0aGUgc3BlY2lmaWVkIHRzY29uZmlnIGZpbGUuXG4gKlxuICogQHRocm93cyB7VHNjb25maWdQYXJzZUVycm9yfSBJZiB0aGUgdHNjb25maWcgY291bGQgbm90IGJlIHJlYWQgb3IgcGFyc2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUc2NvbmZpZ0ZpbGUoXG4gIHRzY29uZmlnUGF0aDogV29ya3NwYWNlUGF0aCxcbiAgZmlsZVN5c3RlbTogRmlsZVN5c3RlbSxcbik6IHRzLlBhcnNlZENvbW1hbmRMaW5lIHtcbiAgaWYgKCFmaWxlU3lzdGVtLmZpbGVFeGlzdHModHNjb25maWdQYXRoKSkge1xuICAgIHRocm93IG5ldyBUc2NvbmZpZ1BhcnNlRXJyb3IoYFRzY29uZmlnIGNhbm5vdCBub3QgYmUgcmVhZDogJHt0c2NvbmZpZ1BhdGh9YCk7XG4gIH1cblxuICBjb25zdCB7Y29uZmlnLCBlcnJvcn0gPSB0cy5yZWFkQ29uZmlnRmlsZShcbiAgICB0c2NvbmZpZ1BhdGgsXG4gICAgcCA9PiBmaWxlU3lzdGVtLnJlYWQoZmlsZVN5c3RlbS5yZXNvbHZlKHApKSEsXG4gICk7XG5cbiAgLy8gSWYgdGhlcmUgaXMgYSBjb25maWcgcmVhZGluZyBlcnJvciwgd2UgbmV2ZXIgYXR0ZW1wdCB0byBwYXJzZSB0aGUgY29uZmlnLlxuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgVHNjb25maWdQYXJzZUVycm9yKGZvcm1hdERpYWdub3N0aWNzKFtlcnJvcl0sIGZpbGVTeXN0ZW0pKTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZCA9IHRzLnBhcnNlSnNvbkNvbmZpZ0ZpbGVDb250ZW50KFxuICAgIGNvbmZpZyxcbiAgICBuZXcgRmlsZVN5c3RlbUhvc3QoZmlsZVN5c3RlbSksXG4gICAgZGlybmFtZSh0c2NvbmZpZ1BhdGgpLFxuICAgIHt9LFxuICApO1xuXG4gIC8vIFNraXAgdGhlIFwiTm8gaW5wdXRzIGZvdW5kLi4uXCIgZXJyb3Igc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBpbnRlcnJ1cHQgdGhlIG1pZ3JhdGlvbiBpZiBhXG4gIC8vIHRzY29uZmlnIGRvZXNuJ3QgbWF0Y2ggYSBmaWxlLiBUaGlzIHdpbGwgcmVzdWx0IGluIGFuIGVtcHR5IGBQcm9ncmFtYCB3aGljaCBpcyBzdGlsbCB2YWxpZC5cbiAgY29uc3QgZXJyb3JzID0gcGFyc2VkLmVycm9ycy5maWx0ZXIoZGlhZyA9PiBkaWFnLmNvZGUgIT09IE5PX0lOUFVUU19FUlJPUl9DT0RFKTtcblxuICBpZiAoZXJyb3JzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBUc2NvbmZpZ1BhcnNlRXJyb3IoZm9ybWF0RGlhZ25vc3RpY3MoZXJyb3JzLCBmaWxlU3lzdGVtKSk7XG4gIH1cblxuICByZXR1cm4gcGFyc2VkO1xufVxuIl19
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.getPropertyNameText = getPropertyNameText;
|
|
11
|
-
exports.hasPropertyNameText = hasPropertyNameText;
|
|
12
|
-
const ts = require("typescript");
|
|
13
|
-
/**
|
|
14
|
-
* Gets the text of the given property name. Returns null if the property
|
|
15
|
-
* name couldn't be determined statically.
|
|
16
|
-
*/
|
|
17
|
-
function getPropertyNameText(node) {
|
|
18
|
-
if (ts.isIdentifier(node) || ts.isStringLiteralLike(node)) {
|
|
19
|
-
return node.text;
|
|
20
|
-
}
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
/** Checks whether the given property name has a text. */
|
|
24
|
-
function hasPropertyNameText(node) {
|
|
25
|
-
return ts.isStringLiteral(node) || ts.isNumericLiteral(node) || ts.isIdentifier(node);
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91cGRhdGUtdG9vbC91dGlscy9wcm9wZXJ0eS1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBV0gsa0RBS0M7QUFHRCxrREFFQztBQW5CRCxpQ0FBaUM7QUFLakM7OztHQUdHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsSUFBcUI7SUFDdkQsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQseURBQXlEO0FBQ3pELFNBQWdCLG1CQUFtQixDQUFDLElBQXFCO0lBQ3ZELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuLyoqIFR5cGUgdGhhdCBkZXNjcmliZXMgYSBwcm9wZXJ0eSBuYW1lIHdpdGggYW4gb2J0YWluYWJsZSB0ZXh0LiAqL1xudHlwZSBQcm9wZXJ0eU5hbWVXaXRoVGV4dCA9IEV4Y2x1ZGU8dHMuUHJvcGVydHlOYW1lLCB0cy5Db21wdXRlZFByb3BlcnR5TmFtZT47XG5cbi8qKlxuICogR2V0cyB0aGUgdGV4dCBvZiB0aGUgZ2l2ZW4gcHJvcGVydHkgbmFtZS4gUmV0dXJucyBudWxsIGlmIHRoZSBwcm9wZXJ0eVxuICogbmFtZSBjb3VsZG4ndCBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wZXJ0eU5hbWVUZXh0KG5vZGU6IHRzLlByb3BlcnR5TmFtZSk6IHN0cmluZyB8IG51bGwge1xuICBpZiAodHMuaXNJZGVudGlmaWVyKG5vZGUpIHx8IHRzLmlzU3RyaW5nTGl0ZXJhbExpa2Uobm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZS50ZXh0O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnR5IG5hbWUgaGFzIGEgdGV4dC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcm9wZXJ0eU5hbWVUZXh0KG5vZGU6IHRzLlByb3BlcnR5TmFtZSk6IG5vZGUgaXMgUHJvcGVydHlOYW1lV2l0aFRleHQge1xuICByZXR1cm4gdHMuaXNTdHJpbmdMaXRlcmFsKG5vZGUpIHx8IHRzLmlzTnVtZXJpY0xpdGVyYWwobm9kZSkgfHwgdHMuaXNJZGVudGlmaWVyKG5vZGUpO1xufVxuIl19
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.FileSystemHost = void 0;
|
|
11
|
-
exports.createFileSystemCompilerHost = createFileSystemCompilerHost;
|
|
12
|
-
exports.createFormatDiagnosticHost = createFormatDiagnosticHost;
|
|
13
|
-
const ts = require("typescript");
|
|
14
|
-
/**
|
|
15
|
-
* Implementation of a TypeScript parse config host that relies fully on
|
|
16
|
-
* a given virtual file system.
|
|
17
|
-
*/
|
|
18
|
-
class FileSystemHost {
|
|
19
|
-
_fileSystem;
|
|
20
|
-
useCaseSensitiveFileNames = ts.sys.useCaseSensitiveFileNames;
|
|
21
|
-
constructor(_fileSystem) {
|
|
22
|
-
this._fileSystem = _fileSystem;
|
|
23
|
-
}
|
|
24
|
-
fileExists(path) {
|
|
25
|
-
return this._fileSystem.fileExists(this._fileSystem.resolve(path));
|
|
26
|
-
}
|
|
27
|
-
readFile(path) {
|
|
28
|
-
const content = this._fileSystem.read(this._fileSystem.resolve(path));
|
|
29
|
-
if (content === null) {
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
|
-
// Strip BOM as otherwise TSC methods (e.g. "getWidth") will return an offset which
|
|
33
|
-
// which breaks the CLI UpdateRecorder. https://github.com/angular/angular/pull/30719
|
|
34
|
-
return content.replace(/^\uFEFF/, '');
|
|
35
|
-
}
|
|
36
|
-
readDirectory(rootDir, extensions, excludes, includes, depth) {
|
|
37
|
-
if (ts.matchFiles === undefined) {
|
|
38
|
-
throw Error('Unable to read directory in virtual file system host. This means that ' +
|
|
39
|
-
'TypeScript changed its file matching internals.\n\nPlease consider downgrading your ' +
|
|
40
|
-
'TypeScript version, and report an issue in the Angular Components repository.');
|
|
41
|
-
}
|
|
42
|
-
return ts.matchFiles(rootDir, extensions, extensions, includes, this.useCaseSensitiveFileNames, '/', depth, p => this._getFileSystemEntries(p), p => this._fileSystem.resolve(p), p => this._fileSystem.directoryExists(this._fileSystem.resolve(p)));
|
|
43
|
-
}
|
|
44
|
-
_getFileSystemEntries(path) {
|
|
45
|
-
return this._fileSystem.readDirectory(this._fileSystem.resolve(path));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.FileSystemHost = FileSystemHost;
|
|
49
|
-
/**
|
|
50
|
-
* Creates a TypeScript compiler host that fully relies fully on the given
|
|
51
|
-
* virtual file system. i.e. no interactions with the working directory.
|
|
52
|
-
*/
|
|
53
|
-
function createFileSystemCompilerHost(options, fileSystem) {
|
|
54
|
-
const host = ts.createCompilerHost(options, true);
|
|
55
|
-
const virtualHost = new FileSystemHost(fileSystem);
|
|
56
|
-
host.readFile = virtualHost.readFile.bind(virtualHost);
|
|
57
|
-
host.readDirectory = virtualHost.readDirectory.bind(virtualHost);
|
|
58
|
-
host.fileExists = virtualHost.fileExists.bind(virtualHost);
|
|
59
|
-
host.directoryExists = dirPath => fileSystem.directoryExists(fileSystem.resolve(dirPath));
|
|
60
|
-
host.getCurrentDirectory = () => '/';
|
|
61
|
-
host.getCanonicalFileName = p => fileSystem.resolve(p);
|
|
62
|
-
return host;
|
|
63
|
-
}
|
|
64
|
-
/** Creates a format diagnostic host that works with the given file system. */
|
|
65
|
-
function createFormatDiagnosticHost(fileSystem) {
|
|
66
|
-
return {
|
|
67
|
-
getCanonicalFileName: p => fileSystem.resolve(p),
|
|
68
|
-
getCurrentDirectory: () => '/',
|
|
69
|
-
getNewLine: () => '\n',
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL3V0aWxzL3ZpcnR1YWwtaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUE4Rkgsb0VBZUM7QUFHRCxnRUFNQztBQXBIRCxpQ0FBaUM7QUFnQ2pDOzs7R0FHRztBQUNILE1BQWEsY0FBYztJQUdMO0lBRnBCLHlCQUF5QixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUM7SUFFN0QsWUFBb0IsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFBRyxDQUFDO0lBRS9DLFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNyQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsbUZBQW1GO1FBQ25GLHFGQUFxRjtRQUNyRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhLENBQ1gsT0FBZSxFQUNmLFVBQW9CLEVBQ3BCLFFBQThCLEVBQzlCLFFBQWtCLEVBQ2xCLEtBQWM7UUFFZCxJQUFJLEVBQUUsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEMsTUFBTSxLQUFLLENBQ1Qsd0VBQXdFO2dCQUN0RSxzRkFBc0Y7Z0JBQ3RGLCtFQUErRSxDQUNsRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FDbEIsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsR0FBRyxFQUNILEtBQUssRUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQVk7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQWxERCx3Q0FrREM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiw0QkFBNEIsQ0FDMUMsT0FBMkIsRUFDM0IsVUFBc0I7SUFFdEIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVuRCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakUsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNyQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELDhFQUE4RTtBQUM5RSxTQUFnQiwwQkFBMEIsQ0FBQyxVQUFzQjtJQUMvRCxPQUFPO1FBQ0wsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoRCxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHO1FBQzlCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO0tBQ3ZCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7RmlsZVN5c3RlbX0gZnJvbSAnLi4vZmlsZS1zeXN0ZW0nO1xuXG4vLyBXZSB1c2UgVHlwZVNjcmlwdCdzIG5hdGl2ZSBgdHMubWF0Y2hGaWxlc2AgdXRpbGl0eSBmb3IgdGhlIHZpcnR1YWwgZmlsZSBzeXN0ZW1cbi8vIGhvc3RzLCBhcyB0aGF0IGZ1bmN0aW9uIGltcGxlbWVudHMgY29tcGxleCBsb2dpYyBmb3IgbWF0Y2hpbmcgZmlsZXMgd2l0aCByZXNwZWN0XG4vLyB0byByb290IGRpcmVjdG9yeSwgZXh0ZW5zaW9ucywgZXhjbHVkZXMsIGluY2x1ZGVzIGV0Yy4gVGhlIGZ1bmN0aW9uIGlzIGN1cnJlbnRseVxuLy8gaW50ZXJuYWwgYnV0IHdlIGNhbiB1c2UgaXQgYXMgdGhlIEFQSSBtb3N0IGxpa2VseSB3aWxsIG5vdCBjaGFuZ2UgYW55IHRpbWUgc29vbixcbi8vIG5vciBkb2VzIGl0IHNlZW0gbGlrZSB0aGlzIGlzIGJlaW5nIG1hZGUgcHVibGljIGFueSB0aW1lIHNvb24uXG4vLyBSZWxhdGVkIGlzc3VlIGZvciB0cmFja2luZzogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8xMzc5My5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9ibG9iL2IzOTdkMWZkNGFiZDBlZGVmODVhZGYwYWZkOTFjMDMwYmIwYjQ5NTUvc3JjL2NvbXBpbGVyL3V0aWxpdGllcy50cyNMNjE5MlxuZGVjbGFyZSBtb2R1bGUgJ3R5cGVzY3JpcHQnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBGaWxlU3lzdGVtRW50cmllcyB7XG4gICAgcmVhZG9ubHkgZmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IGRpcmVjdG9yaWVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBtYXRjaEZpbGVzOlxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCAoKFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIGV4dGVuc2lvbnM6IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgICAgICBleGNsdWRlczogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gICAgICAgIGluY2x1ZGVzOiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAgICAgdXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lczogYm9vbGVhbixcbiAgICAgICAgY3VycmVudERpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBkZXB0aDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgICAgICBnZXRGaWxlU3lzdGVtRW50cmllczogKHBhdGg6IHN0cmluZykgPT4gRmlsZVN5c3RlbUVudHJpZXMsXG4gICAgICAgIHJlYWxwYXRoOiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIGRpcmVjdG9yeUV4aXN0czogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgICAgICkgPT4gc3RyaW5nW10pO1xufVxuXG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIGEgVHlwZVNjcmlwdCBwYXJzZSBjb25maWcgaG9zdCB0aGF0IHJlbGllcyBmdWxseSBvblxuICogYSBnaXZlbiB2aXJ0dWFsIGZpbGUgc3lzdGVtLlxuICovXG5leHBvcnQgY2xhc3MgRmlsZVN5c3RlbUhvc3QgaW1wbGVtZW50cyB0cy5QYXJzZUNvbmZpZ0hvc3Qge1xuICB1c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzID0gdHMuc3lzLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmlsZVN5c3RlbTogRmlsZVN5c3RlbSkge31cblxuICBmaWxlRXhpc3RzKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9maWxlU3lzdGVtLmZpbGVFeGlzdHModGhpcy5fZmlsZVN5c3RlbS5yZXNvbHZlKHBhdGgpKTtcbiAgfVxuXG4gIHJlYWRGaWxlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuX2ZpbGVTeXN0ZW0ucmVhZCh0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUocGF0aCkpO1xuICAgIGlmIChjb250ZW50ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvLyBTdHJpcCBCT00gYXMgb3RoZXJ3aXNlIFRTQyBtZXRob2RzIChlLmcuIFwiZ2V0V2lkdGhcIikgd2lsbCByZXR1cm4gYW4gb2Zmc2V0IHdoaWNoXG4gICAgLy8gd2hpY2ggYnJlYWtzIHRoZSBDTEkgVXBkYXRlUmVjb3JkZXIuIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvcHVsbC8zMDcxOVxuICAgIHJldHVybiBjb250ZW50LnJlcGxhY2UoL15cXHVGRUZGLywgJycpO1xuICB9XG5cbiAgcmVhZERpcmVjdG9yeShcbiAgICByb290RGlyOiBzdHJpbmcsXG4gICAgZXh0ZW5zaW9uczogc3RyaW5nW10sXG4gICAgZXhjbHVkZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIGluY2x1ZGVzOiBzdHJpbmdbXSxcbiAgICBkZXB0aD86IG51bWJlcixcbiAgKTogc3RyaW5nW10ge1xuICAgIGlmICh0cy5tYXRjaEZpbGVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAnVW5hYmxlIHRvIHJlYWQgZGlyZWN0b3J5IGluIHZpcnR1YWwgZmlsZSBzeXN0ZW0gaG9zdC4gVGhpcyBtZWFucyB0aGF0ICcgK1xuICAgICAgICAgICdUeXBlU2NyaXB0IGNoYW5nZWQgaXRzIGZpbGUgbWF0Y2hpbmcgaW50ZXJuYWxzLlxcblxcblBsZWFzZSBjb25zaWRlciBkb3duZ3JhZGluZyB5b3VyICcgK1xuICAgICAgICAgICdUeXBlU2NyaXB0IHZlcnNpb24sIGFuZCByZXBvcnQgYW4gaXNzdWUgaW4gdGhlIEFuZ3VsYXIgQ29tcG9uZW50cyByZXBvc2l0b3J5LicsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHMubWF0Y2hGaWxlcyhcbiAgICAgIHJvb3REaXIsXG4gICAgICBleHRlbnNpb25zLFxuICAgICAgZXh0ZW5zaW9ucyxcbiAgICAgIGluY2x1ZGVzLFxuICAgICAgdGhpcy51c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzLFxuICAgICAgJy8nLFxuICAgICAgZGVwdGgsXG4gICAgICBwID0+IHRoaXMuX2dldEZpbGVTeXN0ZW1FbnRyaWVzKHApLFxuICAgICAgcCA9PiB0aGlzLl9maWxlU3lzdGVtLnJlc29sdmUocCksXG4gICAgICBwID0+IHRoaXMuX2ZpbGVTeXN0ZW0uZGlyZWN0b3J5RXhpc3RzKHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShwKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpbGVTeXN0ZW1FbnRyaWVzKHBhdGg6IHN0cmluZyk6IHRzLkZpbGVTeXN0ZW1FbnRyaWVzIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZVN5c3RlbS5yZWFkRGlyZWN0b3J5KHRoaXMuX2ZpbGVTeXN0ZW0ucmVzb2x2ZShwYXRoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgVHlwZVNjcmlwdCBjb21waWxlciBob3N0IHRoYXQgZnVsbHkgcmVsaWVzIGZ1bGx5IG9uIHRoZSBnaXZlblxuICogdmlydHVhbCBmaWxlIHN5c3RlbS4gaS5lLiBubyBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWxlU3lzdGVtQ29tcGlsZXJIb3N0KFxuICBvcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMsXG4gIGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sXG4pOiB0cy5Db21waWxlckhvc3Qge1xuICBjb25zdCBob3N0ID0gdHMuY3JlYXRlQ29tcGlsZXJIb3N0KG9wdGlvbnMsIHRydWUpO1xuICBjb25zdCB2aXJ0dWFsSG9zdCA9IG5ldyBGaWxlU3lzdGVtSG9zdChmaWxlU3lzdGVtKTtcblxuICBob3N0LnJlYWRGaWxlID0gdmlydHVhbEhvc3QucmVhZEZpbGUuYmluZCh2aXJ0dWFsSG9zdCk7XG4gIGhvc3QucmVhZERpcmVjdG9yeSA9IHZpcnR1YWxIb3N0LnJlYWREaXJlY3RvcnkuYmluZCh2aXJ0dWFsSG9zdCk7XG4gIGhvc3QuZmlsZUV4aXN0cyA9IHZpcnR1YWxIb3N0LmZpbGVFeGlzdHMuYmluZCh2aXJ0dWFsSG9zdCk7XG4gIGhvc3QuZGlyZWN0b3J5RXhpc3RzID0gZGlyUGF0aCA9PiBmaWxlU3lzdGVtLmRpcmVjdG9yeUV4aXN0cyhmaWxlU3lzdGVtLnJlc29sdmUoZGlyUGF0aCkpO1xuICBob3N0LmdldEN1cnJlbnREaXJlY3RvcnkgPSAoKSA9PiAnLyc7XG4gIGhvc3QuZ2V0Q2Fub25pY2FsRmlsZU5hbWUgPSBwID0+IGZpbGVTeXN0ZW0ucmVzb2x2ZShwKTtcblxuICByZXR1cm4gaG9zdDtcbn1cblxuLyoqIENyZWF0ZXMgYSBmb3JtYXQgZGlhZ25vc3RpYyBob3N0IHRoYXQgd29ya3Mgd2l0aCB0aGUgZ2l2ZW4gZmlsZSBzeXN0ZW0uICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWF0RGlhZ25vc3RpY0hvc3QoZmlsZVN5c3RlbTogRmlsZVN5c3RlbSk6IHRzLkZvcm1hdERpYWdub3N0aWNzSG9zdCB7XG4gIHJldHVybiB7XG4gICAgZ2V0Q2Fub25pY2FsRmlsZU5hbWU6IHAgPT4gZmlsZVN5c3RlbS5yZXNvbHZlKHApLFxuICAgIGdldEN1cnJlbnREaXJlY3Rvcnk6ICgpID0+ICcvJyxcbiAgICBnZXROZXdMaW5lOiAoKSA9PiAnXFxuJyxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.getChangesForTarget = getChangesForTarget;
|
|
11
|
-
exports.getAllChanges = getAllChanges;
|
|
12
|
-
const target_version_1 = require("./target-version");
|
|
13
|
-
/**
|
|
14
|
-
* Gets the changes for a given target version from the specified version changes object.
|
|
15
|
-
*
|
|
16
|
-
* For readability and a good overview of breaking changes, the version change data always
|
|
17
|
-
* includes the related Pull Request link. Since this data is not needed when performing the
|
|
18
|
-
* upgrade, this unused data can be removed and the changes data can be flattened into an
|
|
19
|
-
* easy iterable array.
|
|
20
|
-
*/
|
|
21
|
-
function getChangesForTarget(target, data) {
|
|
22
|
-
if (!data) {
|
|
23
|
-
const version = target_version_1.TargetVersion[target];
|
|
24
|
-
throw new Error(`No data could be found for target version: ${version}`);
|
|
25
|
-
}
|
|
26
|
-
return (data[target] || []).reduce((result, prData) => result.concat(prData.changes), []);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Gets all changes from the specified version changes object. This is helpful in case a migration
|
|
30
|
-
* rule does not distinguish data based on the target version, but for readability the
|
|
31
|
-
* upgrade data is separated for each target version.
|
|
32
|
-
*/
|
|
33
|
-
function getAllChanges(data) {
|
|
34
|
-
return Object.keys(data)
|
|
35
|
-
.map(targetVersion => getChangesForTarget(targetVersion, data))
|
|
36
|
-
.reduce((result, versionData) => result.concat(versionData), []);
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1jaGFuZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3VwZGF0ZS10b29sL3ZlcnNpb24tY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQXdCSCxrREFPQztBQU9ELHNDQUlDO0FBeENELHFEQUErQztBQWMvQzs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUksTUFBcUIsRUFBRSxJQUF1QjtJQUNuRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLE9BQU8sR0FBSSw4QkFBd0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFDO0FBQ25HLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFJLElBQXVCO0lBQ3RELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDckIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsYUFBOEIsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMvRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7VGFyZ2V0VmVyc2lvbn0gZnJvbSAnLi90YXJnZXQtdmVyc2lvbic7XG5cbmV4cG9ydCB0eXBlIFZlcnNpb25DaGFuZ2VzPFQ+ID0ge1xuICBbdGFyZ2V0IGluIFRhcmdldFZlcnNpb25dPzogUmVhZGFibGVDaGFuZ2U8VD5bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlYWRhYmxlQ2hhbmdlPFQ+ID0ge1xuICBwcjogc3RyaW5nO1xuICBjaGFuZ2VzOiBUW107XG59O1xuXG4vKiogQ29uZGl0aW9uYWwgdHlwZSB0aGF0IHVud3JhcHMgdGhlIHZhbHVlIG9mIGEgdmVyc2lvbiBjaGFuZ2VzIHR5cGUuICovXG5leHBvcnQgdHlwZSBWYWx1ZU9mQ2hhbmdlczxUPiA9IFQgZXh0ZW5kcyBWZXJzaW9uQ2hhbmdlczxpbmZlciBYPiA/IFggOiBudWxsO1xuXG4vKipcbiAqIEdldHMgdGhlIGNoYW5nZXMgZm9yIGEgZ2l2ZW4gdGFyZ2V0IHZlcnNpb24gZnJvbSB0aGUgc3BlY2lmaWVkIHZlcnNpb24gY2hhbmdlcyBvYmplY3QuXG4gKlxuICogRm9yIHJlYWRhYmlsaXR5IGFuZCBhIGdvb2Qgb3ZlcnZpZXcgb2YgYnJlYWtpbmcgY2hhbmdlcywgdGhlIHZlcnNpb24gY2hhbmdlIGRhdGEgYWx3YXlzXG4gKiBpbmNsdWRlcyB0aGUgcmVsYXRlZCBQdWxsIFJlcXVlc3QgbGluay4gU2luY2UgdGhpcyBkYXRhIGlzIG5vdCBuZWVkZWQgd2hlbiBwZXJmb3JtaW5nIHRoZVxuICogdXBncmFkZSwgdGhpcyB1bnVzZWQgZGF0YSBjYW4gYmUgcmVtb3ZlZCBhbmQgdGhlIGNoYW5nZXMgZGF0YSBjYW4gYmUgZmxhdHRlbmVkIGludG8gYW5cbiAqIGVhc3kgaXRlcmFibGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGFuZ2VzRm9yVGFyZ2V0PFQ+KHRhcmdldDogVGFyZ2V0VmVyc2lvbiwgZGF0YTogVmVyc2lvbkNoYW5nZXM8VD4pOiBUW10ge1xuICBpZiAoIWRhdGEpIHtcbiAgICBjb25zdCB2ZXJzaW9uID0gKFRhcmdldFZlcnNpb24gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPilbdGFyZ2V0XTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGRhdGEgY291bGQgYmUgZm91bmQgZm9yIHRhcmdldCB2ZXJzaW9uOiAke3ZlcnNpb259YCk7XG4gIH1cblxuICByZXR1cm4gKGRhdGFbdGFyZ2V0XSB8fCBbXSkucmVkdWNlKChyZXN1bHQsIHByRGF0YSkgPT4gcmVzdWx0LmNvbmNhdChwckRhdGEuY2hhbmdlcyksIFtdIGFzIFRbXSk7XG59XG5cbi8qKlxuICogR2V0cyBhbGwgY2hhbmdlcyBmcm9tIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBjaGFuZ2VzIG9iamVjdC4gVGhpcyBpcyBoZWxwZnVsIGluIGNhc2UgYSBtaWdyYXRpb25cbiAqIHJ1bGUgZG9lcyBub3QgZGlzdGluZ3Vpc2ggZGF0YSBiYXNlZCBvbiB0aGUgdGFyZ2V0IHZlcnNpb24sIGJ1dCBmb3IgcmVhZGFiaWxpdHkgdGhlXG4gKiB1cGdyYWRlIGRhdGEgaXMgc2VwYXJhdGVkIGZvciBlYWNoIHRhcmdldCB2ZXJzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsQ2hhbmdlczxUPihkYXRhOiBWZXJzaW9uQ2hhbmdlczxUPik6IFRbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhkYXRhKVxuICAgIC5tYXAodGFyZ2V0VmVyc2lvbiA9PiBnZXRDaGFuZ2VzRm9yVGFyZ2V0KHRhcmdldFZlcnNpb24gYXMgVGFyZ2V0VmVyc2lvbiwgZGF0YSkpXG4gICAgLnJlZHVjZSgocmVzdWx0LCB2ZXJzaW9uRGF0YSkgPT4gcmVzdWx0LmNvbmNhdCh2ZXJzaW9uRGF0YSksIFtdKTtcbn1cbiJdfQ==
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.hasNgModuleImport = hasNgModuleImport;
|
|
11
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
12
|
-
const ts = require("typescript");
|
|
13
|
-
/**
|
|
14
|
-
* Whether the Angular module in the given path imports the specified module class name.
|
|
15
|
-
*/
|
|
16
|
-
function hasNgModuleImport(tree, modulePath, className) {
|
|
17
|
-
const moduleFileContent = tree.read(modulePath);
|
|
18
|
-
if (!moduleFileContent) {
|
|
19
|
-
throw new schematics_1.SchematicsException(`Could not read Angular module file: ${modulePath}`);
|
|
20
|
-
}
|
|
21
|
-
const parsedFile = ts.createSourceFile(modulePath, moduleFileContent.toString(), ts.ScriptTarget.Latest, true);
|
|
22
|
-
const ngModuleMetadata = findNgModuleMetadata(parsedFile);
|
|
23
|
-
if (!ngModuleMetadata) {
|
|
24
|
-
throw new schematics_1.SchematicsException(`Could not find NgModule declaration inside: "${modulePath}"`);
|
|
25
|
-
}
|
|
26
|
-
for (let property of ngModuleMetadata.properties) {
|
|
27
|
-
if (!ts.isPropertyAssignment(property) ||
|
|
28
|
-
property.name.getText() !== 'imports' ||
|
|
29
|
-
!ts.isArrayLiteralExpression(property.initializer)) {
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
if (property.initializer.elements.some(element => element.getText() === className)) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Resolves the last identifier that is part of the given expression. This helps resolving
|
|
40
|
-
* identifiers of nested property access expressions (e.g. myNamespace.core.NgModule).
|
|
41
|
-
*/
|
|
42
|
-
function resolveIdentifierOfExpression(expression) {
|
|
43
|
-
if (ts.isIdentifier(expression)) {
|
|
44
|
-
return expression;
|
|
45
|
-
}
|
|
46
|
-
else if (ts.isPropertyAccessExpression(expression) && ts.isIdentifier(expression.name)) {
|
|
47
|
-
return expression.name;
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Finds a NgModule declaration within the specified TypeScript node and returns the
|
|
53
|
-
* corresponding metadata for it. This function searches breadth first because
|
|
54
|
-
* NgModule's are usually not nested within other expressions or declarations.
|
|
55
|
-
*/
|
|
56
|
-
function findNgModuleMetadata(rootNode) {
|
|
57
|
-
// Add immediate child nodes of the root node to the queue.
|
|
58
|
-
const nodeQueue = [...rootNode.getChildren()];
|
|
59
|
-
while (nodeQueue.length) {
|
|
60
|
-
const node = nodeQueue.shift();
|
|
61
|
-
if (ts.isDecorator(node) &&
|
|
62
|
-
ts.isCallExpression(node.expression) &&
|
|
63
|
-
isNgModuleCallExpression(node.expression)) {
|
|
64
|
-
return node.expression.arguments[0];
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
nodeQueue.push(...node.getChildren());
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
/** Whether the specified call expression is referring to a NgModule definition. */
|
|
73
|
-
function isNgModuleCallExpression(callExpression) {
|
|
74
|
-
if (!callExpression.arguments.length ||
|
|
75
|
-
!ts.isObjectLiteralExpression(callExpression.arguments[0])) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
// The `NgModule` call expression name is never referring to a `PrivateIdentifier`.
|
|
79
|
-
const decoratorIdentifier = resolveIdentifierOfExpression(callExpression.expression);
|
|
80
|
-
return decoratorIdentifier ? decoratorIdentifier.text === 'NgModule' : false;
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbW9kdWxlLWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvYXN0L25nLW1vZHVsZS1pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBUUgsOENBa0NDO0FBeENELDJEQUFxRTtBQUNyRSxpQ0FBaUM7QUFFakM7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFVLEVBQUUsVUFBa0IsRUFBRSxTQUFpQjtJQUNqRixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLGdDQUFtQixDQUFDLHVDQUF1QyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQ3BDLFVBQVUsRUFDVixpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsRUFDNUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQ3RCLElBQUksQ0FDTCxDQUFDO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksZ0NBQW1CLENBQUMsZ0RBQWdELFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELEtBQUssSUFBSSxRQUFRLElBQUksZ0JBQWlCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEQsSUFDRSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7WUFDbEMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxTQUFTO1lBQ3JDLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDbEQsQ0FBQztZQUNELFNBQVM7UUFDWCxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNuRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyw2QkFBNkIsQ0FBQyxVQUF5QjtJQUM5RCxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO1NBQU0sSUFBSSxFQUFFLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6RixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLG9CQUFvQixDQUFDLFFBQWlCO0lBQzdDLDJEQUEyRDtJQUMzRCxNQUFNLFNBQVMsR0FBYyxDQUFDLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFekQsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRyxDQUFDO1FBRWhDLElBQ0UsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDcEMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUN6QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQStCLENBQUM7UUFDcEUsQ0FBQzthQUFNLENBQUM7WUFDTixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxtRkFBbUY7QUFDbkYsU0FBUyx3QkFBd0IsQ0FBQyxjQUFpQztJQUNqRSxJQUNFLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNO1FBQ2hDLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDMUQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELG1GQUFtRjtJQUNuRixNQUFNLG1CQUFtQixHQUFHLDZCQUE2QixDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRixPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDL0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtTY2hlbWF0aWNzRXhjZXB0aW9uLCBUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBBbmd1bGFyIG1vZHVsZSBpbiB0aGUgZ2l2ZW4gcGF0aCBpbXBvcnRzIHRoZSBzcGVjaWZpZWQgbW9kdWxlIGNsYXNzIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNOZ01vZHVsZUltcG9ydCh0cmVlOiBUcmVlLCBtb2R1bGVQYXRoOiBzdHJpbmcsIGNsYXNzTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IG1vZHVsZUZpbGVDb250ZW50ID0gdHJlZS5yZWFkKG1vZHVsZVBhdGgpO1xuXG4gIGlmICghbW9kdWxlRmlsZUNvbnRlbnQpIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihgQ291bGQgbm90IHJlYWQgQW5ndWxhciBtb2R1bGUgZmlsZTogJHttb2R1bGVQYXRofWApO1xuICB9XG5cbiAgY29uc3QgcGFyc2VkRmlsZSA9IHRzLmNyZWF0ZVNvdXJjZUZpbGUoXG4gICAgbW9kdWxlUGF0aCxcbiAgICBtb2R1bGVGaWxlQ29udGVudC50b1N0cmluZygpLFxuICAgIHRzLlNjcmlwdFRhcmdldC5MYXRlc3QsXG4gICAgdHJ1ZSxcbiAgKTtcbiAgY29uc3QgbmdNb2R1bGVNZXRhZGF0YSA9IGZpbmROZ01vZHVsZU1ldGFkYXRhKHBhcnNlZEZpbGUpO1xuXG4gIGlmICghbmdNb2R1bGVNZXRhZGF0YSkge1xuICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKGBDb3VsZCBub3QgZmluZCBOZ01vZHVsZSBkZWNsYXJhdGlvbiBpbnNpZGU6IFwiJHttb2R1bGVQYXRofVwiYCk7XG4gIH1cblxuICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBuZ01vZHVsZU1ldGFkYXRhIS5wcm9wZXJ0aWVzKSB7XG4gICAgaWYgKFxuICAgICAgIXRzLmlzUHJvcGVydHlBc3NpZ25tZW50KHByb3BlcnR5KSB8fFxuICAgICAgcHJvcGVydHkubmFtZS5nZXRUZXh0KCkgIT09ICdpbXBvcnRzJyB8fFxuICAgICAgIXRzLmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbihwcm9wZXJ0eS5pbml0aWFsaXplcilcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChwcm9wZXJ0eS5pbml0aWFsaXplci5lbGVtZW50cy5zb21lKGVsZW1lbnQgPT4gZWxlbWVudC5nZXRUZXh0KCkgPT09IGNsYXNzTmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgbGFzdCBpZGVudGlmaWVyIHRoYXQgaXMgcGFydCBvZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbi4gVGhpcyBoZWxwcyByZXNvbHZpbmdcbiAqIGlkZW50aWZpZXJzIG9mIG5lc3RlZCBwcm9wZXJ0eSBhY2Nlc3MgZXhwcmVzc2lvbnMgKGUuZy4gbXlOYW1lc3BhY2UuY29yZS5OZ01vZHVsZSkuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVJZGVudGlmaWVyT2ZFeHByZXNzaW9uKGV4cHJlc3Npb246IHRzLkV4cHJlc3Npb24pOiB0cy5JZGVudGlmaWVyIHwgbnVsbCB7XG4gIGlmICh0cy5pc0lkZW50aWZpZXIoZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgfSBlbHNlIGlmICh0cy5pc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihleHByZXNzaW9uKSAmJiB0cy5pc0lkZW50aWZpZXIoZXhwcmVzc2lvbi5uYW1lKSkge1xuICAgIHJldHVybiBleHByZXNzaW9uLm5hbWU7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogRmluZHMgYSBOZ01vZHVsZSBkZWNsYXJhdGlvbiB3aXRoaW4gdGhlIHNwZWNpZmllZCBUeXBlU2NyaXB0IG5vZGUgYW5kIHJldHVybnMgdGhlXG4gKiBjb3JyZXNwb25kaW5nIG1ldGFkYXRhIGZvciBpdC4gVGhpcyBmdW5jdGlvbiBzZWFyY2hlcyBicmVhZHRoIGZpcnN0IGJlY2F1c2VcbiAqIE5nTW9kdWxlJ3MgYXJlIHVzdWFsbHkgbm90IG5lc3RlZCB3aXRoaW4gb3RoZXIgZXhwcmVzc2lvbnMgb3IgZGVjbGFyYXRpb25zLlxuICovXG5mdW5jdGlvbiBmaW5kTmdNb2R1bGVNZXRhZGF0YShyb290Tm9kZTogdHMuTm9kZSk6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uIHwgbnVsbCB7XG4gIC8vIEFkZCBpbW1lZGlhdGUgY2hpbGQgbm9kZXMgb2YgdGhlIHJvb3Qgbm9kZSB0byB0aGUgcXVldWUuXG4gIGNvbnN0IG5vZGVRdWV1ZTogdHMuTm9kZVtdID0gWy4uLnJvb3ROb2RlLmdldENoaWxkcmVuKCldO1xuXG4gIHdoaWxlIChub2RlUXVldWUubGVuZ3RoKSB7XG4gICAgY29uc3Qgbm9kZSA9IG5vZGVRdWV1ZS5zaGlmdCgpITtcblxuICAgIGlmIChcbiAgICAgIHRzLmlzRGVjb3JhdG9yKG5vZGUpICYmXG4gICAgICB0cy5pc0NhbGxFeHByZXNzaW9uKG5vZGUuZXhwcmVzc2lvbikgJiZcbiAgICAgIGlzTmdNb2R1bGVDYWxsRXhwcmVzc2lvbihub2RlLmV4cHJlc3Npb24pXG4gICAgKSB7XG4gICAgICByZXR1cm4gbm9kZS5leHByZXNzaW9uLmFyZ3VtZW50c1swXSBhcyB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZVF1ZXVlLnB1c2goLi4ubm9kZS5nZXRDaGlsZHJlbigpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqIFdoZXRoZXIgdGhlIHNwZWNpZmllZCBjYWxsIGV4cHJlc3Npb24gaXMgcmVmZXJyaW5nIHRvIGEgTmdNb2R1bGUgZGVmaW5pdGlvbi4gKi9cbmZ1bmN0aW9uIGlzTmdNb2R1bGVDYWxsRXhwcmVzc2lvbihjYWxsRXhwcmVzc2lvbjogdHMuQ2FsbEV4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgaWYgKFxuICAgICFjYWxsRXhwcmVzc2lvbi5hcmd1bWVudHMubGVuZ3RoIHx8XG4gICAgIXRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24oY2FsbEV4cHJlc3Npb24uYXJndW1lbnRzWzBdKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBUaGUgYE5nTW9kdWxlYCBjYWxsIGV4cHJlc3Npb24gbmFtZSBpcyBuZXZlciByZWZlcnJpbmcgdG8gYSBgUHJpdmF0ZUlkZW50aWZpZXJgLlxuICBjb25zdCBkZWNvcmF0b3JJZGVudGlmaWVyID0gcmVzb2x2ZUlkZW50aWZpZXJPZkV4cHJlc3Npb24oY2FsbEV4cHJlc3Npb24uZXhwcmVzc2lvbik7XG4gIHJldHVybiBkZWNvcmF0b3JJZGVudGlmaWVyID8gZGVjb3JhdG9ySWRlbnRpZmllci50ZXh0ID09PSAnTmdNb2R1bGUnIDogZmFsc2U7XG59XG4iXX0=
|
package/schematics/utils/ast.mjs
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.parseSourceFile = parseSourceFile;
|
|
11
|
-
exports.addModuleImportToRootModule = addModuleImportToRootModule;
|
|
12
|
-
exports.addModuleImportToModule = addModuleImportToModule;
|
|
13
|
-
exports.findModuleFromOptions = findModuleFromOptions;
|
|
14
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
15
|
-
const change_1 = require("@schematics/angular/utility/change");
|
|
16
|
-
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
17
|
-
const find_module_1 = require("@schematics/angular/utility/find-module");
|
|
18
|
-
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
19
|
-
const ng_ast_utils_1 = require("@schematics/angular/utility/ng-ast-utils");
|
|
20
|
-
const ts = require("typescript");
|
|
21
|
-
const project_main_file_1 = require("./project-main-file");
|
|
22
|
-
/** Reads file given path and returns TypeScript source file. */
|
|
23
|
-
function parseSourceFile(host, path) {
|
|
24
|
-
const buffer = host.read(path);
|
|
25
|
-
if (!buffer) {
|
|
26
|
-
throw new schematics_1.SchematicsException(`Could not find file for path: ${path}`);
|
|
27
|
-
}
|
|
28
|
-
return ts.createSourceFile(path, buffer.toString(), ts.ScriptTarget.Latest, true);
|
|
29
|
-
}
|
|
30
|
-
/** Import and add module to root app module. */
|
|
31
|
-
function addModuleImportToRootModule(host, moduleName, src, project) {
|
|
32
|
-
const modulePath = (0, ng_ast_utils_1.getAppModulePath)(host, (0, project_main_file_1.getProjectMainFile)(project));
|
|
33
|
-
addModuleImportToModule(host, modulePath, moduleName, src);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Import and add module to specific module path.
|
|
37
|
-
* @param host the tree we are updating
|
|
38
|
-
* @param modulePath src location of the module to import
|
|
39
|
-
* @param moduleName name of module to import
|
|
40
|
-
* @param src src location to import
|
|
41
|
-
*/
|
|
42
|
-
function addModuleImportToModule(host, modulePath, moduleName, src) {
|
|
43
|
-
const moduleSource = parseSourceFile(host, modulePath);
|
|
44
|
-
if (!moduleSource) {
|
|
45
|
-
throw new schematics_1.SchematicsException(`Module not found: ${modulePath}`);
|
|
46
|
-
}
|
|
47
|
-
const changes = (0, ast_utils_1.addImportToModule)(moduleSource, modulePath, moduleName, src);
|
|
48
|
-
const recorder = host.beginUpdate(modulePath);
|
|
49
|
-
changes.forEach(change => {
|
|
50
|
-
if (change instanceof change_1.InsertChange) {
|
|
51
|
-
recorder.insertLeft(change.pos, change.toAdd);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
host.commitUpdate(recorder);
|
|
55
|
-
}
|
|
56
|
-
/** Wraps the internal find module from options with undefined path handling */
|
|
57
|
-
async function findModuleFromOptions(host, options) {
|
|
58
|
-
const workspace = await (0, workspace_1.getWorkspace)(host);
|
|
59
|
-
if (!options.project) {
|
|
60
|
-
options.project = Array.from(workspace.projects.keys())[0];
|
|
61
|
-
}
|
|
62
|
-
const project = workspace.projects.get(options.project);
|
|
63
|
-
if (options.path === undefined) {
|
|
64
|
-
options.path = `/${project.root}/src/app`;
|
|
65
|
-
}
|
|
66
|
-
return (0, find_module_1.findModuleFromOptions)(host, options);
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3V0aWxzL2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQWNILDBDQU1DO0FBR0Qsa0VBUUM7QUFTRCwwREFzQkM7QUFHRCxzREFpQkM7QUFoRkQsMkRBQXFFO0FBRXJFLCtEQUFnRTtBQUNoRSxxRUFBbUU7QUFDbkUseUVBQW9HO0FBQ3BHLHFFQUF3RTtBQUN4RSwyRUFBMEU7QUFFMUUsaUNBQWlDO0FBQ2pDLDJEQUF1RDtBQUV2RCxnRUFBZ0U7QUFDaEUsU0FBZ0IsZUFBZSxDQUFDLElBQVUsRUFBRSxJQUFZO0lBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLGdDQUFtQixDQUFDLGlDQUFpQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFFRCxnREFBZ0Q7QUFDaEQsU0FBZ0IsMkJBQTJCLENBQ3pDLElBQVUsRUFDVixVQUFrQixFQUNsQixHQUFXLEVBQ1gsT0FBcUM7SUFFckMsTUFBTSxVQUFVLEdBQUcsSUFBQSwrQkFBZ0IsRUFBQyxJQUFJLEVBQUUsSUFBQSxzQ0FBa0IsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLHVCQUF1QixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQix1QkFBdUIsQ0FDckMsSUFBVSxFQUNWLFVBQWtCLEVBQ2xCLFVBQWtCLEVBQ2xCLEdBQVc7SUFFWCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXZELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksZ0NBQW1CLENBQUMscUJBQXFCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLElBQUEsNkJBQWlCLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU5QyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3ZCLElBQUksTUFBTSxZQUFZLHFCQUFZLEVBQUUsQ0FBQztZQUNuQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELGdGQUFnRjtBQUN6RSxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLElBQVUsRUFDVixPQUF5QjtJQUV6QixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsd0JBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztJQUUzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUUsQ0FBQztJQUV6RCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLFVBQVUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTyxJQUFBLG1DQUFrQixFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1NjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7U2NoZW1hIGFzIENvbXBvbmVudE9wdGlvbnN9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvY29tcG9uZW50L3NjaGVtYSc7XG5pbXBvcnQge0luc2VydENoYW5nZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L2NoYW5nZSc7XG5pbXBvcnQge2dldFdvcmtzcGFjZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L3dvcmtzcGFjZSc7XG5pbXBvcnQge2ZpbmRNb2R1bGVGcm9tT3B0aW9ucyBhcyBpbnRlcm5hbEZpbmRNb2R1bGV9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS9maW5kLW1vZHVsZSc7XG5pbXBvcnQge2FkZEltcG9ydFRvTW9kdWxlfSBmcm9tICdAc2NoZW1hdGljcy9hbmd1bGFyL3V0aWxpdHkvYXN0LXV0aWxzJztcbmltcG9ydCB7Z2V0QXBwTW9kdWxlUGF0aH0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L25nLWFzdC11dGlscyc7XG5pbXBvcnQge3dvcmtzcGFjZXN9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtnZXRQcm9qZWN0TWFpbkZpbGV9IGZyb20gJy4vcHJvamVjdC1tYWluLWZpbGUnO1xuXG4vKiogUmVhZHMgZmlsZSBnaXZlbiBwYXRoIGFuZCByZXR1cm5zIFR5cGVTY3JpcHQgc291cmNlIGZpbGUuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTb3VyY2VGaWxlKGhvc3Q6IFRyZWUsIHBhdGg6IHN0cmluZyk6IHRzLlNvdXJjZUZpbGUge1xuICBjb25zdCBidWZmZXIgPSBob3N0LnJlYWQocGF0aCk7XG4gIGlmICghYnVmZmVyKSB7XG4gICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oYENvdWxkIG5vdCBmaW5kIGZpbGUgZm9yIHBhdGg6ICR7cGF0aH1gKTtcbiAgfVxuICByZXR1cm4gdHMuY3JlYXRlU291cmNlRmlsZShwYXRoLCBidWZmZXIudG9TdHJpbmcoKSwgdHMuU2NyaXB0VGFyZ2V0LkxhdGVzdCwgdHJ1ZSk7XG59XG5cbi8qKiBJbXBvcnQgYW5kIGFkZCBtb2R1bGUgdG8gcm9vdCBhcHAgbW9kdWxlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1vZHVsZUltcG9ydFRvUm9vdE1vZHVsZShcbiAgaG9zdDogVHJlZSxcbiAgbW9kdWxlTmFtZTogc3RyaW5nLFxuICBzcmM6IHN0cmluZyxcbiAgcHJvamVjdDogd29ya3NwYWNlcy5Qcm9qZWN0RGVmaW5pdGlvbixcbikge1xuICBjb25zdCBtb2R1bGVQYXRoID0gZ2V0QXBwTW9kdWxlUGF0aChob3N0LCBnZXRQcm9qZWN0TWFpbkZpbGUocHJvamVjdCkpO1xuICBhZGRNb2R1bGVJbXBvcnRUb01vZHVsZShob3N0LCBtb2R1bGVQYXRoLCBtb2R1bGVOYW1lLCBzcmMpO1xufVxuXG4vKipcbiAqIEltcG9ydCBhbmQgYWRkIG1vZHVsZSB0byBzcGVjaWZpYyBtb2R1bGUgcGF0aC5cbiAqIEBwYXJhbSBob3N0IHRoZSB0cmVlIHdlIGFyZSB1cGRhdGluZ1xuICogQHBhcmFtIG1vZHVsZVBhdGggc3JjIGxvY2F0aW9uIG9mIHRoZSBtb2R1bGUgdG8gaW1wb3J0XG4gKiBAcGFyYW0gbW9kdWxlTmFtZSBuYW1lIG9mIG1vZHVsZSB0byBpbXBvcnRcbiAqIEBwYXJhbSBzcmMgc3JjIGxvY2F0aW9uIHRvIGltcG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTW9kdWxlSW1wb3J0VG9Nb2R1bGUoXG4gIGhvc3Q6IFRyZWUsXG4gIG1vZHVsZVBhdGg6IHN0cmluZyxcbiAgbW9kdWxlTmFtZTogc3RyaW5nLFxuICBzcmM6IHN0cmluZyxcbikge1xuICBjb25zdCBtb2R1bGVTb3VyY2UgPSBwYXJzZVNvdXJjZUZpbGUoaG9zdCwgbW9kdWxlUGF0aCk7XG5cbiAgaWYgKCFtb2R1bGVTb3VyY2UpIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihgTW9kdWxlIG5vdCBmb3VuZDogJHttb2R1bGVQYXRofWApO1xuICB9XG5cbiAgY29uc3QgY2hhbmdlcyA9IGFkZEltcG9ydFRvTW9kdWxlKG1vZHVsZVNvdXJjZSwgbW9kdWxlUGF0aCwgbW9kdWxlTmFtZSwgc3JjKTtcbiAgY29uc3QgcmVjb3JkZXIgPSBob3N0LmJlZ2luVXBkYXRlKG1vZHVsZVBhdGgpO1xuXG4gIGNoYW5nZXMuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgIGlmIChjaGFuZ2UgaW5zdGFuY2VvZiBJbnNlcnRDaGFuZ2UpIHtcbiAgICAgIHJlY29yZGVyLmluc2VydExlZnQoY2hhbmdlLnBvcywgY2hhbmdlLnRvQWRkKTtcbiAgICB9XG4gIH0pO1xuXG4gIGhvc3QuY29tbWl0VXBkYXRlKHJlY29yZGVyKTtcbn1cblxuLyoqIFdyYXBzIHRoZSBpbnRlcm5hbCBmaW5kIG1vZHVsZSBmcm9tIG9wdGlvbnMgd2l0aCB1bmRlZmluZWQgcGF0aCBoYW5kbGluZyAgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kTW9kdWxlRnJvbU9wdGlvbnMoXG4gIGhvc3Q6IFRyZWUsXG4gIG9wdGlvbnM6IENvbXBvbmVudE9wdGlvbnMsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCB3b3Jrc3BhY2UgPSBhd2FpdCBnZXRXb3Jrc3BhY2UoaG9zdCk7XG5cbiAgaWYgKCFvcHRpb25zLnByb2plY3QpIHtcbiAgICBvcHRpb25zLnByb2plY3QgPSBBcnJheS5mcm9tKHdvcmtzcGFjZS5wcm9qZWN0cy5rZXlzKCkpWzBdO1xuICB9XG5cbiAgY29uc3QgcHJvamVjdCA9IHdvcmtzcGFjZS5wcm9qZWN0cy5nZXQob3B0aW9ucy5wcm9qZWN0KSE7XG5cbiAgaWYgKG9wdGlvbnMucGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgb3B0aW9ucy5wYXRoID0gYC8ke3Byb2plY3Qucm9vdH0vc3JjL2FwcGA7XG4gIH1cblxuICByZXR1cm4gaW50ZXJuYWxGaW5kTW9kdWxlKGhvc3QsIG9wdGlvbnMpO1xufVxuIl19
|