aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/@angular/cli
diff options
context:
space:
mode:
authorNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
committerNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
commit291803c31f829fe0d32bb3207bc11def95a7408c (patch)
treec7d43107d79291b19d8c9eceefbe91c9f9a52acf /sandbox/testAppNevena/Front/node_modules/@angular/cli
parent1fa69862057db4db53cfda5be9c24b4228ef63f7 (diff)
Urađena test aplikacija. Povezan front i back.
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/@angular/cli')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/LICENSE21
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/README.md5
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/bootstrap.js21
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/ng.js58
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/package.json3
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/postinstall/analytics-prompt.js27
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/postinstall/script.js16
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands.json20
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add-impl.d.ts21
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add-impl.js339
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.d.ts42
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.json54
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.md10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-impl.d.ts13
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-impl.js80
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-long.md8
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.d.ts46
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.js31
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.json37
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-impl.d.ts14
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-impl.js21
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-long.md18
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.d.ts38
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.json16
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-impl.d.ts15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-impl.js167
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-long.md13
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.d.ts34
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.json43
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/definitions.json71
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-impl.d.ts15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-impl.js36
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-long.md22
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.d.ts30
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.json34
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc-impl.d.ts13
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc-impl.js71
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.d.ts39
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.js14
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.json46
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-impl.d.ts16
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-impl.js36
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-long.md4
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.d.ts37
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.json17
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg-impl.d.ts12
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg-impl.js31
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.d.ts14
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.json12
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n-impl.d.ts14
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n-impl.js32
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.d.ts37
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.json17
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate-impl.d.ts18
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate-impl.js89
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.d.ts37
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.json31
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-impl.d.ts12
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-impl.js26
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-long.md7
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.d.ts17
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.json13
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-impl.d.ts16
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-impl.js69
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-long.md20
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.d.ts29
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.json36
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new-impl.d.ts16
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new-impl.js37
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.d.ts41
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.json34
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.md16
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-impl.d.ts13
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-impl.js22
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-long.md16
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.d.ts30
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.json36
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve-impl.d.ts15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve-impl.js24
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.d.ts37
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.json17
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-impl.d.ts15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-impl.js22
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-long.md2
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.d.ts37
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.json17
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-impl.d.ts38
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-impl.js748
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-long.md22
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.d.ts65
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.json84
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version-impl.d.ts17
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version-impl.js179
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.d.ts17
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.js10
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.json13
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/cli/index.d.ts12
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/cli/index.js110
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/schema.json2845
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/workspace-schema.d.ts710
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/workspace-schema.js76
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/init.d.ts8
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/init.js128
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics-collector.d.ts29
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics-collector.js235
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics.d.ts58
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics.js358
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/architect-command.d.ts35
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/architect-command.js388
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command-runner.d.ts24
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command-runner.js241
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command.d.ts34
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command.js143
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/interface.d.ts196
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/interface.js31
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/parser.d.ts39
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/parser.js349
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-command.d.ts55
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-command.js485
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-engine-host.d.ts15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-engine-host.js172
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/version.d.ts15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/models/version.js25
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/package.json67
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/collection.json9
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/index.d.ts11
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/index.js698
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.d.ts50
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.js15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.json64
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/src/typings.d.ts24
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/src/typings.js8
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/INITIAL_COMMIT_MESSAGE.txt8
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/color.d.ts11
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/color.js66
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/config.d.ts30
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/config.js410
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/find-up.d.ts8
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/find-up.js49
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/install-package.d.ts16
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/install-package.js193
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-file.d.ts23
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-file.js97
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-schema.d.ts17
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-schema.js245
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/log-file.d.ts13
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/log-file.js28
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-json.d.ts249
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-json.js9
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-manager.d.ts15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-manager.js83
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-metadata.d.ts76
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-metadata.js250
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-tree.d.ts32
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-tree.js81
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/project.d.ts8
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/project.js73
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/prompt.d.ts8
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/prompt.js46
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/spinner.d.ts20
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/spinner.js54
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/tty.d.ts8
-rw-r--r--sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/tty.js23
178 files changed, 14122 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/LICENSE b/sandbox/testAppNevena/Front/node_modules/@angular/cli/LICENSE
new file mode 100644
index 00000000..8876c32c
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/LICENSE
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2017 Google, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/README.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/README.md
new file mode 100644
index 00000000..07b498c7
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/README.md
@@ -0,0 +1,5 @@
+# Angular CLI - The CLI tool for Angular.
+
+The sources for this package are in the [Angular CLI](https://github.com/angular/angular-cli) repository. Please file issues and pull requests against that repository.
+
+Usage information and reference details can be found in repository [README](../../../README.md) file.
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/bootstrap.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/bootstrap.js
new file mode 100644
index 00000000..75e454ee
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/bootstrap.js
@@ -0,0 +1,21 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+/**
+ * @fileoverview
+ *
+ * This file is used to bootstrap the CLI process by dynamically importing the main initialization code.
+ * This is done to allow the main bin file (`ng`) to remain CommonJS so that older versions of Node.js
+ * can be checked and validated prior to the execution of the CLI. This separate bootstrap file is
+ * needed to allow the use of a dynamic import expression without crashing older versions of Node.js that
+ * do not support dynamic import expressions and would otherwise throw a syntax error. This bootstrap file
+ * is required from the main bin file only after the Node.js version is determined to be in the supported
+ * range.
+ */
+
+import('../lib/init.js');
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/ng.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/ng.js
new file mode 100644
index 00000000..c9012412
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/ng.js
@@ -0,0 +1,58 @@
+#!/usr/bin/env node
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+/* eslint-disable no-console */
+/* eslint-disable import/no-unassigned-import */
+'use strict';
+
+// Provide a title to the process in `ps`.
+// Due to an obscure Mac bug, do not start this title with any symbol.
+try {
+ process.title = 'ng ' + Array.from(process.argv).slice(2).join(' ');
+} catch (_) {
+ // If an error happened above, use the most basic title.
+ process.title = 'ng';
+}
+
+// This node version check ensures that extremely old versions of node are not used.
+// These may not support ES2015 features such as const/let/async/await/etc.
+// These would then crash with a hard to diagnose error message.
+var version = process.versions.node.split('.').map((part) => Number(part));
+if (version[0] % 2 === 1 && version[0] > 16) {
+ // Allow new odd numbered releases with a warning (currently v17+)
+ console.warn(
+ 'Node.js version ' +
+ process.version +
+ ' detected.\n' +
+ 'Odd numbered Node.js versions will not enter LTS status and should not be used for production.' +
+ ' For more information, please see https://nodejs.org/en/about/releases/.',
+ );
+
+ require('./bootstrap');
+} else if (
+ version[0] < 12 ||
+ version[0] === 13 ||
+ version[0] === 15 ||
+ (version[0] === 12 && version[1] < 20) ||
+ (version[0] === 14 && version[1] < 15) ||
+ (version[0] === 16 && version[1] < 10)
+) {
+ // Error and exit if less than 12.20 or 13.x or less than 14.15 or 15.x or less than 16.10
+ console.error(
+ 'Node.js version ' +
+ process.version +
+ ' detected.\n' +
+ 'The Angular CLI requires a minimum Node.js version of either v12.20, v14.15, or v16.10.\n\n' +
+ 'Please update your Node.js version or visit https://nodejs.org/ for additional instructions.\n',
+ );
+
+ process.exitCode = 3;
+} else {
+ require('./bootstrap');
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/package.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/package.json
new file mode 100644
index 00000000..5bbefffb
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "commonjs"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/postinstall/analytics-prompt.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/postinstall/analytics-prompt.js
new file mode 100644
index 00000000..d9e0b487
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/postinstall/analytics-prompt.js
@@ -0,0 +1,27 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+'use strict';
+// This file is ES5 because it needs to be executed as is.
+
+if ('NG_CLI_ANALYTICS' in process.env) {
+ return;
+}
+
+try {
+ var analytics = require('../../models/analytics');
+
+ analytics
+ .hasGlobalAnalyticsConfiguration()
+ .then((hasGlobalConfig) => {
+ if (!hasGlobalConfig) {
+ return analytics.promptGlobalAnalytics();
+ }
+ })
+ .catch(() => {});
+} catch (_) {}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/postinstall/script.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/postinstall/script.js
new file mode 100644
index 00000000..cbca1295
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/bin/postinstall/script.js
@@ -0,0 +1,16 @@
+#!/usr/bin/env node
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+'use strict';
+
+// These should not fail but if they do they should not block installation of the package
+try {
+ // eslint-disable-next-line import/no-unassigned-import
+ require('./analytics-prompt');
+} catch (_) {}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands.json
new file mode 100644
index 00000000..0b65947a
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands.json
@@ -0,0 +1,20 @@
+{
+ "add": "./commands/add.json",
+ "analytics": "./commands/analytics.json",
+ "build": "./commands/build.json",
+ "config": "./commands/config.json",
+ "deploy": "./commands/deploy.json",
+ "doc": "./commands/doc.json",
+ "e2e": "./commands/e2e.json",
+ "extract-i18n": "./commands/extract-i18n.json",
+ "make-this-awesome": "./commands/easter-egg.json",
+ "generate": "./commands/generate.json",
+ "help": "./commands/help.json",
+ "lint": "./commands/lint.json",
+ "new": "./commands/new.json",
+ "run": "./commands/run.json",
+ "serve": "./commands/serve.json",
+ "test": "./commands/test.json",
+ "update": "./commands/update.json",
+ "version": "./commands/version.json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add-impl.d.ts
new file mode 100644
index 00000000..541117ce
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add-impl.d.ts
@@ -0,0 +1,21 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Arguments } from '../models/interface';
+import { SchematicCommand } from '../models/schematic-command';
+import { Schema as AddCommandSchema } from './add';
+export declare class AddCommand extends SchematicCommand<AddCommandSchema> {
+ readonly allowPrivateSchematics = true;
+ initialize(options: AddCommandSchema & Arguments): Promise<void>;
+ run(options: AddCommandSchema & Arguments): Promise<number | void>;
+ private isProjectVersionValid;
+ reportAnalytics(paths: string[], options: AddCommandSchema & Arguments, dimensions?: (boolean | number | string)[], metrics?: (boolean | number | string)[]): Promise<void>;
+ private isPackageInstalled;
+ private executeSchematic;
+ private findProjectVersion;
+ private hasMismatchedPeer;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add-impl.js
new file mode 100644
index 00000000..aa9f5e05
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add-impl.js
@@ -0,0 +1,339 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AddCommand = void 0;
+const core_1 = require("@angular-devkit/core");
+const tools_1 = require("@angular-devkit/schematics/tools");
+const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
+const path_1 = require("path");
+const semver_1 = require("semver");
+const workspace_schema_1 = require("../lib/config/workspace-schema");
+const analytics_1 = require("../models/analytics");
+const schematic_command_1 = require("../models/schematic-command");
+const color_1 = require("../utilities/color");
+const install_package_1 = require("../utilities/install-package");
+const package_manager_1 = require("../utilities/package-manager");
+const package_metadata_1 = require("../utilities/package-metadata");
+const prompt_1 = require("../utilities/prompt");
+const spinner_1 = require("../utilities/spinner");
+const tty_1 = require("../utilities/tty");
+/**
+ * The set of packages that should have certain versions excluded from consideration
+ * when attempting to find a compatible version for a package.
+ * The key is a package name and the value is a SemVer range of versions to exclude.
+ */
+const packageVersionExclusions = {
+ // @angular/localize@9.x versions do not have peer dependencies setup
+ '@angular/localize': '9.x',
+};
+class AddCommand extends schematic_command_1.SchematicCommand {
+ constructor() {
+ super(...arguments);
+ this.allowPrivateSchematics = true;
+ }
+ async initialize(options) {
+ if (options.registry) {
+ return super.initialize({ ...options, packageRegistry: options.registry });
+ }
+ else {
+ return super.initialize(options);
+ }
+ }
+ // eslint-disable-next-line max-lines-per-function
+ async run(options) {
+ var _a;
+ await (0, package_manager_1.ensureCompatibleNpm)(this.context.root);
+ if (!options.collection) {
+ this.logger.fatal(`The "ng add" command requires a name argument to be specified eg. ` +
+ `${color_1.colors.yellow('ng add [name] ')}. For more details, use "ng help".`);
+ return 1;
+ }
+ let packageIdentifier;
+ try {
+ packageIdentifier = (0, npm_package_arg_1.default)(options.collection);
+ }
+ catch (e) {
+ this.logger.error(e.message);
+ return 1;
+ }
+ if (packageIdentifier.name &&
+ packageIdentifier.registry &&
+ this.isPackageInstalled(packageIdentifier.name)) {
+ const validVersion = await this.isProjectVersionValid(packageIdentifier);
+ if (validVersion) {
+ // Already installed so just run schematic
+ this.logger.info('Skipping installation: Package already installed');
+ return this.executeSchematic(packageIdentifier.name, options['--']);
+ }
+ }
+ const spinner = new spinner_1.Spinner();
+ spinner.start('Determining package manager...');
+ const packageManager = await (0, package_manager_1.getPackageManager)(this.context.root);
+ const usingYarn = packageManager === workspace_schema_1.PackageManager.Yarn;
+ spinner.info(`Using package manager: ${color_1.colors.grey(packageManager)}`);
+ if (packageIdentifier.name && packageIdentifier.type === 'tag' && !packageIdentifier.rawSpec) {
+ // only package name provided; search for viable version
+ // plus special cases for packages that did not have peer deps setup
+ spinner.start('Searching for compatible package version...');
+ let packageMetadata;
+ try {
+ packageMetadata = await (0, package_metadata_1.fetchPackageMetadata)(packageIdentifier.name, this.logger, {
+ registry: options.registry,
+ usingYarn,
+ verbose: options.verbose,
+ });
+ }
+ catch (e) {
+ spinner.fail('Unable to load package information from registry: ' + e.message);
+ return 1;
+ }
+ // Start with the version tagged as `latest` if it exists
+ const latestManifest = packageMetadata.tags['latest'];
+ if (latestManifest) {
+ packageIdentifier = npm_package_arg_1.default.resolve(latestManifest.name, latestManifest.version);
+ }
+ // Adjust the version based on name and peer dependencies
+ if (latestManifest && Object.keys(latestManifest.peerDependencies).length === 0) {
+ if (latestManifest.name === '@angular/pwa') {
+ const version = await this.findProjectVersion('@angular/cli');
+ const semverOptions = { includePrerelease: true };
+ if (version &&
+ (((0, semver_1.validRange)(version) && (0, semver_1.intersects)(version, '7', semverOptions)) ||
+ ((0, semver_1.valid)(version) && (0, semver_1.satisfies)(version, '7', semverOptions)))) {
+ packageIdentifier = npm_package_arg_1.default.resolve('@angular/pwa', '0.12');
+ }
+ }
+ spinner.succeed(`Found compatible package version: ${color_1.colors.grey(packageIdentifier.toString())}.`);
+ }
+ else if (!latestManifest || (await this.hasMismatchedPeer(latestManifest))) {
+ // 'latest' is invalid so search for most recent matching package
+ const versionExclusions = packageVersionExclusions[packageMetadata.name];
+ const versionManifests = Object.values(packageMetadata.versions).filter((value) => {
+ // Prerelease versions are not stable and should not be considered by default
+ if ((0, semver_1.prerelease)(value.version)) {
+ return false;
+ }
+ // Deprecated versions should not be used or considered
+ if (value.deprecated) {
+ return false;
+ }
+ // Excluded package versions should not be considered
+ if (versionExclusions && (0, semver_1.satisfies)(value.version, versionExclusions)) {
+ return false;
+ }
+ return true;
+ });
+ versionManifests.sort((a, b) => (0, semver_1.rcompare)(a.version, b.version, true));
+ let newIdentifier;
+ for (const versionManifest of versionManifests) {
+ if (!(await this.hasMismatchedPeer(versionManifest))) {
+ newIdentifier = npm_package_arg_1.default.resolve(versionManifest.name, versionManifest.version);
+ break;
+ }
+ }
+ if (!newIdentifier) {
+ spinner.warn("Unable to find compatible package. Using 'latest' tag.");
+ }
+ else {
+ packageIdentifier = newIdentifier;
+ spinner.succeed(`Found compatible package version: ${color_1.colors.grey(packageIdentifier.toString())}.`);
+ }
+ }
+ else {
+ spinner.succeed(`Found compatible package version: ${color_1.colors.grey(packageIdentifier.toString())}.`);
+ }
+ }
+ let collectionName = packageIdentifier.name;
+ let savePackage;
+ try {
+ spinner.start('Loading package information from registry...');
+ const manifest = await (0, package_metadata_1.fetchPackageManifest)(packageIdentifier.toString(), this.logger, {
+ registry: options.registry,
+ verbose: options.verbose,
+ usingYarn,
+ });
+ savePackage = (_a = manifest['ng-add']) === null || _a === void 0 ? void 0 : _a.save;
+ collectionName = manifest.name;
+ if (await this.hasMismatchedPeer(manifest)) {
+ spinner.warn('Package has unmet peer dependencies. Adding the package may not succeed.');
+ }
+ else {
+ spinner.succeed(`Package information loaded.`);
+ }
+ }
+ catch (e) {
+ spinner.fail(`Unable to fetch package information for '${packageIdentifier}': ${e.message}`);
+ return 1;
+ }
+ if (!options.skipConfirmation) {
+ const confirmationResponse = await (0, prompt_1.askConfirmation)(`\nThe package ${color_1.colors.blue(packageIdentifier.raw)} will be installed and executed.\n` +
+ 'Would you like to proceed?', true, false);
+ if (!confirmationResponse) {
+ if (!(0, tty_1.isTTY)()) {
+ this.logger.error('No terminal detected. ' +
+ `'--skip-confirmation' can be used to bypass installation confirmation. ` +
+ `Ensure package name is correct prior to '--skip-confirmation' option usage.`);
+ }
+ this.logger.error('Command aborted.');
+ return 1;
+ }
+ }
+ if (savePackage === false) {
+ // Temporary packages are located in a different directory
+ // Hence we need to resolve them using the temp path
+ const { status, tempNodeModules } = await (0, install_package_1.installTempPackage)(packageIdentifier.raw, packageManager, options.registry ? [`--registry="${options.registry}"`] : undefined);
+ const resolvedCollectionPath = require.resolve((0, path_1.join)(collectionName, 'package.json'), {
+ paths: [tempNodeModules],
+ });
+ if (status !== 0) {
+ return status;
+ }
+ collectionName = (0, path_1.dirname)(resolvedCollectionPath);
+ }
+ else {
+ const status = await (0, install_package_1.installPackage)(packageIdentifier.raw, packageManager, savePackage, options.registry ? [`--registry="${options.registry}"`] : undefined);
+ if (status !== 0) {
+ return status;
+ }
+ }
+ return this.executeSchematic(collectionName, options['--']);
+ }
+ async isProjectVersionValid(packageIdentifier) {
+ if (!packageIdentifier.name) {
+ return false;
+ }
+ let validVersion = false;
+ const installedVersion = await this.findProjectVersion(packageIdentifier.name);
+ if (installedVersion) {
+ if (packageIdentifier.type === 'range' && packageIdentifier.fetchSpec) {
+ validVersion = (0, semver_1.satisfies)(installedVersion, packageIdentifier.fetchSpec);
+ }
+ else if (packageIdentifier.type === 'version') {
+ const v1 = (0, semver_1.valid)(packageIdentifier.fetchSpec);
+ const v2 = (0, semver_1.valid)(installedVersion);
+ validVersion = v1 !== null && v1 === v2;
+ }
+ else if (!packageIdentifier.rawSpec) {
+ validVersion = true;
+ }
+ }
+ return validVersion;
+ }
+ async reportAnalytics(paths, options, dimensions = [], metrics = []) {
+ const collection = options.collection;
+ // Add the collection if it's safe listed.
+ if (collection && (0, analytics_1.isPackageNameSafeForAnalytics)(collection)) {
+ dimensions[core_1.analytics.NgCliAnalyticsDimensions.NgAddCollection] = collection;
+ }
+ else {
+ delete dimensions[core_1.analytics.NgCliAnalyticsDimensions.NgAddCollection];
+ }
+ return super.reportAnalytics(paths, options, dimensions, metrics);
+ }
+ isPackageInstalled(name) {
+ try {
+ require.resolve((0, path_1.join)(name, 'package.json'), { paths: [this.context.root] });
+ return true;
+ }
+ catch (e) {
+ if (e.code !== 'MODULE_NOT_FOUND') {
+ throw e;
+ }
+ }
+ return false;
+ }
+ async executeSchematic(collectionName, options = []) {
+ const runOptions = {
+ schematicOptions: options,
+ collectionName,
+ schematicName: 'ng-add',
+ dryRun: false,
+ force: false,
+ };
+ try {
+ return await this.runSchematic(runOptions);
+ }
+ catch (e) {
+ if (e instanceof tools_1.NodePackageDoesNotSupportSchematics) {
+ this.logger.error(core_1.tags.oneLine `
+ The package that you are trying to add does not support schematics. You can try using
+ a different version of the package or contact the package author to add ng-add support.
+ `);
+ return 1;
+ }
+ throw e;
+ }
+ }
+ async findProjectVersion(name) {
+ let installedPackage;
+ try {
+ installedPackage = require.resolve((0, path_1.join)(name, 'package.json'), {
+ paths: [this.context.root],
+ });
+ }
+ catch { }
+ if (installedPackage) {
+ try {
+ const installed = await (0, package_metadata_1.fetchPackageManifest)((0, path_1.dirname)(installedPackage), this.logger);
+ return installed.version;
+ }
+ catch { }
+ }
+ let projectManifest;
+ try {
+ projectManifest = await (0, package_metadata_1.fetchPackageManifest)(this.context.root, this.logger);
+ }
+ catch { }
+ if (projectManifest) {
+ const version = projectManifest.dependencies[name] || projectManifest.devDependencies[name];
+ if (version) {
+ return version;
+ }
+ }
+ return null;
+ }
+ async hasMismatchedPeer(manifest) {
+ for (const peer in manifest.peerDependencies) {
+ let peerIdentifier;
+ try {
+ peerIdentifier = npm_package_arg_1.default.resolve(peer, manifest.peerDependencies[peer]);
+ }
+ catch {
+ this.logger.warn(`Invalid peer dependency ${peer} found in package.`);
+ continue;
+ }
+ if (peerIdentifier.type === 'version' || peerIdentifier.type === 'range') {
+ try {
+ const version = await this.findProjectVersion(peer);
+ if (!version) {
+ continue;
+ }
+ const options = { includePrerelease: true };
+ if (!(0, semver_1.intersects)(version, peerIdentifier.rawSpec, options) &&
+ !(0, semver_1.satisfies)(version, peerIdentifier.rawSpec, options)) {
+ return true;
+ }
+ }
+ catch {
+ // Not found or invalid so ignore
+ continue;
+ }
+ }
+ else {
+ // type === 'tag' | 'file' | 'directory' | 'remote' | 'git'
+ // Cannot accurately compare these as the tag/location may have changed since install
+ }
+ }
+ return false;
+ }
+}
+exports.AddCommand = AddCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.d.ts
new file mode 100644
index 00000000..a360f489
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.d.ts
@@ -0,0 +1,42 @@
+/**
+ * Adds support for an external library to your project.
+ */
+export interface Schema {
+ /**
+ * The package to be added.
+ */
+ collection?: string;
+ /**
+ * Disable interactive input prompts for options with a default.
+ */
+ defaults?: boolean;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Enable interactive input prompts.
+ */
+ interactive?: boolean;
+ /**
+ * The NPM registry to use.
+ */
+ registry?: string;
+ /**
+ * Skip asking a confirmation prompt before installing and executing the package. Ensure
+ * package name is correct prior to using this option.
+ */
+ skipConfirmation?: boolean;
+ /**
+ * Display additional details about internal operations during execution.
+ */
+ verbose?: boolean;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.json
new file mode 100644
index 00000000..99cd82d8
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.json
@@ -0,0 +1,54 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/add.json",
+ "description": "Adds support for an external library to your project.",
+ "$longDescription": "./add.md",
+
+ "$scope": "in",
+ "$impl": "./add-impl#AddCommand",
+
+ "type": "object",
+ "allOf": [
+ {
+ "properties": {
+ "collection": {
+ "type": "string",
+ "description": "The package to be added.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ },
+ "registry": {
+ "description": "The NPM registry to use.",
+ "type": "string",
+ "oneOf": [
+ {
+ "format": "uri"
+ },
+ {
+ "format": "hostname"
+ }
+ ]
+ },
+ "verbose": {
+ "description": "Display additional details about internal operations during execution.",
+ "type": "boolean",
+ "default": false
+ },
+ "skipConfirmation": {
+ "description": "Skip asking a confirmation prompt before installing and executing the package. Ensure package name is correct prior to using this option.",
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "required": []
+ },
+ {
+ "$ref": "./definitions.json#/definitions/interactive"
+ },
+ {
+ "$ref": "./definitions.json#/definitions/base"
+ }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.md
new file mode 100644
index 00000000..09cd2e23
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/add.md
@@ -0,0 +1,10 @@
+Adds the npm package for a published library to your workspace, and configures
+the project in the current working directory (or the default project if you are
+not in a project directory) to use that library, as specified by the library's schematic.
+For example, adding `@angular/pwa` configures your project for PWA support:
+
+```bash
+ng add @angular/pwa
+```
+
+The default project is the value of `defaultProject` in `angular.json`.
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-impl.d.ts
new file mode 100644
index 00000000..3c9ba9b0
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-impl.d.ts
@@ -0,0 +1,13 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Command } from '../models/command';
+import { Arguments } from '../models/interface';
+import { Schema as AnalyticsCommandSchema } from './analytics';
+export declare class AnalyticsCommand extends Command<AnalyticsCommandSchema> {
+ run(options: AnalyticsCommandSchema & Arguments): Promise<0 | 1 | 2 | 3 | 4>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-impl.js
new file mode 100644
index 00000000..9384ee63
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-impl.js
@@ -0,0 +1,80 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AnalyticsCommand = void 0;
+const analytics_1 = require("../models/analytics");
+const command_1 = require("../models/command");
+const analytics_2 = require("./analytics");
+class AnalyticsCommand extends command_1.Command {
+ async run(options) {
+ // Our parser does not support positional enums (won't report invalid parameters). Do the
+ // validation manually.
+ // TODO(hansl): fix parser to better support positionals. This would be a breaking change.
+ if (options.settingOrProject === undefined) {
+ if (options['--']) {
+ // The user passed positional arguments but they didn't validate.
+ this.logger.error(`Argument ${JSON.stringify(options['--'][0])} is invalid.`);
+ this.logger.error(`Please provide one of the following value: on, off, ci or project.`);
+ return 1;
+ }
+ else {
+ // No argument were passed.
+ await this.printHelp();
+ return 2;
+ }
+ }
+ else if (options.settingOrProject == analytics_2.SettingOrProject.Project &&
+ options.projectSetting === undefined) {
+ this.logger.error(`Argument ${JSON.stringify(options.settingOrProject)} requires a second ` +
+ `argument of one of the following value: on, off.`);
+ return 2;
+ }
+ try {
+ switch (options.settingOrProject) {
+ case analytics_2.SettingOrProject.Off:
+ (0, analytics_1.setAnalyticsConfig)('global', false);
+ break;
+ case analytics_2.SettingOrProject.On:
+ (0, analytics_1.setAnalyticsConfig)('global', true);
+ break;
+ case analytics_2.SettingOrProject.Ci:
+ (0, analytics_1.setAnalyticsConfig)('global', 'ci');
+ break;
+ case analytics_2.SettingOrProject.Project:
+ switch (options.projectSetting) {
+ case analytics_2.ProjectSetting.Off:
+ (0, analytics_1.setAnalyticsConfig)('local', false);
+ break;
+ case analytics_2.ProjectSetting.On:
+ (0, analytics_1.setAnalyticsConfig)('local', true);
+ break;
+ case analytics_2.ProjectSetting.Prompt:
+ await (0, analytics_1.promptProjectAnalytics)(true);
+ break;
+ default:
+ await this.printHelp();
+ return 3;
+ }
+ break;
+ case analytics_2.SettingOrProject.Prompt:
+ await (0, analytics_1.promptGlobalAnalytics)(true);
+ break;
+ default:
+ await this.printHelp();
+ return 4;
+ }
+ }
+ catch (err) {
+ this.logger.fatal(err.message);
+ return 1;
+ }
+ return 0;
+ }
+}
+exports.AnalyticsCommand = AnalyticsCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-long.md
new file mode 100644
index 00000000..87b9925d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics-long.md
@@ -0,0 +1,8 @@
+The value of _settingOrProject_ is one of the following.
+
+- "on" : Enables analytics gathering and reporting for the user.
+- "off" : Disables analytics gathering and reporting for the user.
+- "ci" : Enables analytics and configures reporting for use with Continuous Integration,
+ which uses a common CI user.
+- "prompt" : Prompts the user to set the status interactively.
+- "project" : Sets the default status for the project to the _projectSetting_ value, which can be any of the other values. The _projectSetting_ argument is ignored for all other values of _settingOrProject_.
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.d.ts
new file mode 100644
index 00000000..8195548e
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.d.ts
@@ -0,0 +1,46 @@
+/**
+ * Configures the gathering of Angular CLI usage metrics. See
+ * https://angular.io/cli/usage-analytics-gathering.
+ */
+export interface Schema {
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Sets the default analytics enablement status for the project.
+ */
+ projectSetting?: ProjectSetting;
+ /**
+ * Directly enables or disables all usage analytics for the user, or prompts the user to set
+ * the status interactively, or sets the default status for the project.
+ */
+ settingOrProject: SettingOrProject;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
+/**
+ * Sets the default analytics enablement status for the project.
+ */
+export declare enum ProjectSetting {
+ Off = "off",
+ On = "on",
+ Prompt = "prompt"
+}
+/**
+ * Directly enables or disables all usage analytics for the user, or prompts the user to set
+ * the status interactively, or sets the default status for the project.
+ */
+export declare enum SettingOrProject {
+ Ci = "ci",
+ Off = "off",
+ On = "on",
+ Project = "project",
+ Prompt = "prompt"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.js
new file mode 100644
index 00000000..44ff9963
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.js
@@ -0,0 +1,31 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SettingOrProject = exports.ProjectSetting = exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
+/**
+ * Sets the default analytics enablement status for the project.
+ */
+var ProjectSetting;
+(function (ProjectSetting) {
+ ProjectSetting["Off"] = "off";
+ ProjectSetting["On"] = "on";
+ ProjectSetting["Prompt"] = "prompt";
+})(ProjectSetting = exports.ProjectSetting || (exports.ProjectSetting = {}));
+/**
+ * Directly enables or disables all usage analytics for the user, or prompts the user to set
+ * the status interactively, or sets the default status for the project.
+ */
+var SettingOrProject;
+(function (SettingOrProject) {
+ SettingOrProject["Ci"] = "ci";
+ SettingOrProject["Off"] = "off";
+ SettingOrProject["On"] = "on";
+ SettingOrProject["Project"] = "project";
+ SettingOrProject["Prompt"] = "prompt";
+})(SettingOrProject = exports.SettingOrProject || (exports.SettingOrProject = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.json
new file mode 100644
index 00000000..ee2612b2
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/analytics.json
@@ -0,0 +1,37 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/analytics.json",
+ "description": "Configures the gathering of Angular CLI usage metrics. See https://angular.io/cli/usage-analytics-gathering.",
+ "$longDescription": "./analytics-long.md",
+
+ "$aliases": [],
+ "$scope": "all",
+ "$type": "native",
+ "$impl": "./analytics-impl#AnalyticsCommand",
+
+ "type": "object",
+ "allOf": [
+ {
+ "properties": {
+ "settingOrProject": {
+ "enum": ["on", "off", "ci", "project", "prompt"],
+ "description": "Directly enables or disables all usage analytics for the user, or prompts the user to set the status interactively, or sets the default status for the project.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ },
+ "projectSetting": {
+ "enum": ["on", "off", "prompt"],
+ "description": "Sets the default analytics enablement status for the project.",
+ "$default": {
+ "$source": "argv",
+ "index": 1
+ }
+ }
+ },
+ "required": ["settingOrProject"]
+ },
+ { "$ref": "./definitions.json#/definitions/base" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-impl.d.ts
new file mode 100644
index 00000000..731100fb
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-impl.d.ts
@@ -0,0 +1,14 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ArchitectCommand, ArchitectCommandOptions } from '../models/architect-command';
+import { Arguments } from '../models/interface';
+import { Schema as BuildCommandSchema } from './build';
+export declare class BuildCommand extends ArchitectCommand<BuildCommandSchema> {
+ readonly target = "build";
+ run(options: ArchitectCommandOptions & Arguments): Promise<number>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-impl.js
new file mode 100644
index 00000000..636d5edb
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-impl.js
@@ -0,0 +1,21 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.BuildCommand = void 0;
+const architect_command_1 = require("../models/architect-command");
+class BuildCommand extends architect_command_1.ArchitectCommand {
+ constructor() {
+ super(...arguments);
+ this.target = 'build';
+ }
+ async run(options) {
+ return this.runArchitectTarget(options);
+ }
+}
+exports.BuildCommand = BuildCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-long.md
new file mode 100644
index 00000000..57bf9a16
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build-long.md
@@ -0,0 +1,18 @@
+The command can be used to build a project of type "application" or "library".
+When used to build a library, a different builder is invoked, and only the `ts-config`, `configuration`, and `watch` options are applied.
+All other options apply only to building applications.
+
+The application builder uses the [webpack](https://webpack.js.org/) build tool, with default configuration options specified in the workspace configuration file (`angular.json`) or with a named alternative configuration.
+A "development" configuration is created by default when you use the CLI to create the project, and you can use that configuration by specifying the `--configuration development`.
+
+The configuration options generally correspond to the command options.
+You can override individual configuration defaults by specifying the corresponding options on the command line.
+The command can accept option names given in either dash-case or camelCase.
+Note that in the configuration file, you must specify names in camelCase.
+
+Some additional options can only be set through the configuration file,
+either by direct editing or with the `ng config` command.
+These include `assets`, `styles`, and `scripts` objects that provide runtime-global resources to include in the project.
+Resources in CSS, such as images and fonts, are automatically written and fingerprinted at the root of the output folder.
+
+For further details, see [Workspace Configuration](guide/workspace-config).
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.d.ts
new file mode 100644
index 00000000..8f6e1596
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.d.ts
@@ -0,0 +1,38 @@
+/**
+ * Compiles an Angular app into an output directory named dist/ at the given output path.
+ * Must be executed from within a workspace directory.
+ */
+export interface Schema {
+ /**
+ * One or more named builder configurations as a comma-separated list as specified in the
+ * "configurations" section of angular.json.
+ * The builder uses the named configurations to run the given target.
+ * For more information, see
+ * https://angular.io/guide/workspace-config#alternate-build-configurations.
+ * Setting this explicitly overrides the "--prod" flag.
+ */
+ configuration?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Shorthand for "--configuration=production".
+ * Set the build configuration to the production target.
+ * By default, the production target is set up in the workspace configuration such that all
+ * builds make use of bundling, limited tree-shaking, and also limited dead code elimination.
+ */
+ prod?: boolean;
+ /**
+ * The name of the project to build. Can be an application or a library.
+ */
+ project?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.json
new file mode 100644
index 00000000..df9d93b8
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/build.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/build.json",
+ "description": "Compiles an Angular app into an output directory named dist/ at the given output path. Must be executed from within a workspace directory.",
+ "$longDescription": "./build-long.md",
+
+ "$aliases": ["b"],
+ "$scope": "in",
+ "$type": "architect",
+ "$impl": "./build-impl#BuildCommand",
+
+ "allOf": [
+ { "$ref": "./definitions.json#/definitions/architect" },
+ { "$ref": "./definitions.json#/definitions/base" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-impl.d.ts
new file mode 100644
index 00000000..9e64b156
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-impl.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Command } from '../models/command';
+import { Arguments } from '../models/interface';
+import { Schema as ConfigCommandSchema } from './config';
+export declare class ConfigCommand extends Command<ConfigCommandSchema> {
+ run(options: ConfigCommandSchema & Arguments): Promise<0 | 1>;
+ private get;
+ private set;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-impl.js
new file mode 100644
index 00000000..9c8b75ba
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-impl.js
@@ -0,0 +1,167 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ConfigCommand = void 0;
+const core_1 = require("@angular-devkit/core");
+const uuid_1 = require("uuid");
+const command_1 = require("../models/command");
+const interface_1 = require("../models/interface");
+const config_1 = require("../utilities/config");
+const json_file_1 = require("../utilities/json-file");
+const validCliPaths = new Map([
+ ['cli.warnings.versionMismatch', undefined],
+ ['cli.defaultCollection', undefined],
+ ['cli.packageManager', undefined],
+ ['cli.analytics', undefined],
+ ['cli.analyticsSharing.tracking', undefined],
+ ['cli.analyticsSharing.uuid', (v) => (v === '' ? (0, uuid_1.v4)() : `${v}`)],
+ ['cli.cache.enabled', undefined],
+ ['cli.cache.environment', undefined],
+ ['cli.cache.path', undefined],
+]);
+/**
+ * Splits a JSON path string into fragments. Fragments can be used to get the value referenced
+ * by the path. For example, a path of "a[3].foo.bar[2]" would give you a fragment array of
+ * ["a", 3, "foo", "bar", 2].
+ * @param path The JSON string to parse.
+ * @returns {(string|number)[]} The fragments for the string.
+ * @private
+ */
+function parseJsonPath(path) {
+ const fragments = (path || '').split(/\./g);
+ const result = [];
+ while (fragments.length > 0) {
+ const fragment = fragments.shift();
+ if (fragment == undefined) {
+ break;
+ }
+ const match = fragment.match(/([^[]+)((\[.*\])*)/);
+ if (!match) {
+ throw new Error('Invalid JSON path.');
+ }
+ result.push(match[1]);
+ if (match[2]) {
+ const indices = match[2]
+ .slice(1, -1)
+ .split('][')
+ .map((x) => (/^\d$/.test(x) ? +x : x.replace(/"|'/g, '')));
+ result.push(...indices);
+ }
+ }
+ return result.filter((fragment) => fragment != null);
+}
+function normalizeValue(value) {
+ const valueString = `${value}`.trim();
+ switch (valueString) {
+ case 'true':
+ return true;
+ case 'false':
+ return false;
+ case 'null':
+ return null;
+ case 'undefined':
+ return undefined;
+ }
+ if (isFinite(+valueString)) {
+ return +valueString;
+ }
+ try {
+ // We use `JSON.parse` instead of `parseJson` because the latter will parse UUIDs
+ // and convert them into a numberic entities.
+ // Example: 73b61974-182c-48e4-b4c6-30ddf08c5c98 -> 73.
+ // These values should never contain comments, therefore using `JSON.parse` is safe.
+ return JSON.parse(valueString);
+ }
+ catch {
+ return value;
+ }
+}
+class ConfigCommand extends command_1.Command {
+ async run(options) {
+ const level = options.global ? 'global' : 'local';
+ if (!options.global) {
+ await this.validateScope(interface_1.CommandScope.InProject);
+ }
+ let [config] = (0, config_1.getWorkspaceRaw)(level);
+ if (options.global && !config) {
+ try {
+ if ((0, config_1.migrateLegacyGlobalConfig)()) {
+ config = (0, config_1.getWorkspaceRaw)(level)[0];
+ this.logger.info(core_1.tags.oneLine `
+ We found a global configuration that was used in Angular CLI 1.
+ It has been automatically migrated.`);
+ }
+ }
+ catch { }
+ }
+ if (options.value == undefined) {
+ if (!config) {
+ this.logger.error('No config found.');
+ return 1;
+ }
+ return this.get(config, options);
+ }
+ else {
+ return this.set(options);
+ }
+ }
+ get(jsonFile, options) {
+ let value;
+ if (options.jsonPath) {
+ value = jsonFile.get(parseJsonPath(options.jsonPath));
+ }
+ else {
+ value = jsonFile.content;
+ }
+ if (value === undefined) {
+ this.logger.error('Value cannot be found.');
+ return 1;
+ }
+ else if (typeof value === 'string') {
+ this.logger.info(value);
+ }
+ else {
+ this.logger.info(JSON.stringify(value, null, 2));
+ }
+ return 0;
+ }
+ async set(options) {
+ var _a, _b, _c;
+ if (!((_a = options.jsonPath) === null || _a === void 0 ? void 0 : _a.trim())) {
+ throw new Error('Invalid Path.');
+ }
+ if (options.global &&
+ !options.jsonPath.startsWith('schematics.') &&
+ !validCliPaths.has(options.jsonPath)) {
+ throw new Error('Invalid Path.');
+ }
+ const [config, configPath] = (0, config_1.getWorkspaceRaw)(options.global ? 'global' : 'local');
+ if (!config || !configPath) {
+ this.logger.error('Confguration file cannot be found.');
+ return 1;
+ }
+ const jsonPath = parseJsonPath(options.jsonPath);
+ const value = (_c = (_b = validCliPaths.get(options.jsonPath)) === null || _b === void 0 ? void 0 : _b(options.value)) !== null && _c !== void 0 ? _c : options.value;
+ const modified = config.modify(jsonPath, normalizeValue(value));
+ if (!modified) {
+ this.logger.error('Value cannot be found.');
+ return 1;
+ }
+ try {
+ await (0, config_1.validateWorkspace)((0, json_file_1.parseJson)(config.content));
+ }
+ catch (error) {
+ this.logger.fatal(error.message);
+ return 1;
+ }
+ config.save();
+ return 0;
+ }
+}
+exports.ConfigCommand = ConfigCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-long.md
new file mode 100644
index 00000000..7f44f63b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config-long.md
@@ -0,0 +1,13 @@
+A workspace has a single CLI configuration file, `angular.json`, at the top level.
+The `projects` object contains a configuration object for each project in the workspace.
+
+You can edit the configuration directly in a code editor,
+or indirectly on the command line using this command.
+
+The configurable property names match command option names,
+except that in the configuration file, all names must use camelCase,
+while on the command line options can be given in either camelCase or dash-case.
+
+For further details, see [Workspace Configuration](guide/workspace-config).
+
+For configuration of CLI usage analytics, see [Gathering an Viewing CLI Usage Analytics](./usage-analytics-gathering).
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.d.ts
new file mode 100644
index 00000000..d2c6dac0
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.d.ts
@@ -0,0 +1,34 @@
+/**
+ * Retrieves or sets Angular configuration values in the angular.json file for the workspace.
+ */
+export interface Schema {
+ /**
+ * Access the global configuration in the caller's home directory.
+ */
+ global?: boolean;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * The configuration key to set or query, in JSON path format. For example:
+ * "a[3].foo.bar[2]". If no new value is provided, returns the current value of this key.
+ */
+ jsonPath?: string;
+ /**
+ * If provided, a new value for the given configuration key.
+ */
+ value?: Value;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
+/**
+ * If provided, a new value for the given configuration key.
+ */
+export declare type Value = boolean | number | string;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.json
new file mode 100644
index 00000000..bec13fca
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/config.json
@@ -0,0 +1,43 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/config.json",
+ "description": "Retrieves or sets Angular configuration values in the angular.json file for the workspace.",
+ "$longDescription": "",
+
+ "$aliases": [],
+ "$scope": "all",
+ "$type": "native",
+ "$impl": "./config-impl#ConfigCommand",
+
+ "type": "object",
+ "allOf": [
+ {
+ "properties": {
+ "jsonPath": {
+ "type": "string",
+ "description": "The configuration key to set or query, in JSON path format. For example: \"a[3].foo.bar[2]\". If no new value is provided, returns the current value of this key.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ },
+ "value": {
+ "type": ["string", "number", "boolean"],
+ "description": "If provided, a new value for the given configuration key.",
+ "$default": {
+ "$source": "argv",
+ "index": 1
+ }
+ },
+ "global": {
+ "type": "boolean",
+ "description": "Access the global configuration in the caller's home directory.",
+ "default": false,
+ "aliases": ["g"]
+ }
+ },
+ "required": []
+ },
+ { "$ref": "./definitions.json#/definitions/base" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/definitions.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/definitions.json
new file mode 100644
index 00000000..a1835534
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/definitions.json
@@ -0,0 +1,71 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/definitions.json",
+
+ "definitions": {
+ "architect": {
+ "properties": {
+ "project": {
+ "type": "string",
+ "description": "The name of the project to build. Can be an application or a library.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ },
+ "configuration": {
+ "description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section of angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations.\nSetting this explicitly overrides the \"--prod\" flag.",
+ "type": "string",
+ "aliases": ["c"]
+ },
+ "prod": {
+ "description": "Shorthand for \"--configuration=production\".\nSet the build configuration to the production target.\nBy default, the production target is set up in the workspace configuration such that all builds make use of bundling, limited tree-shaking, and also limited dead code elimination.",
+ "type": "boolean",
+ "x-deprecated": "Use `--configuration production` instead."
+ }
+ }
+ },
+ "base": {
+ "type": "object",
+ "properties": {
+ "help": {
+ "enum": [true, false, "json", "JSON"],
+ "description": "Shows a help message for this command in the console.",
+ "default": false
+ }
+ }
+ },
+ "schematic": {
+ "type": "object",
+ "properties": {
+ "dryRun": {
+ "type": "boolean",
+ "default": false,
+ "aliases": ["d"],
+ "description": "Run through and reports activity without writing out results."
+ },
+ "force": {
+ "type": "boolean",
+ "default": false,
+ "aliases": ["f"],
+ "description": "Force overwriting of existing files."
+ }
+ }
+ },
+ "interactive": {
+ "type": "object",
+ "properties": {
+ "interactive": {
+ "type": "boolean",
+ "default": "true",
+ "description": "Enable interactive input prompts."
+ },
+ "defaults": {
+ "type": "boolean",
+ "default": "false",
+ "description": "Disable interactive input prompts for options with a default."
+ }
+ }
+ }
+ }
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-impl.d.ts
new file mode 100644
index 00000000..692791a2
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-impl.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ArchitectCommand } from '../models/architect-command';
+import { Arguments } from '../models/interface';
+import { Schema as DeployCommandSchema } from './deploy';
+export declare class DeployCommand extends ArchitectCommand<DeployCommandSchema> {
+ readonly target = "deploy";
+ readonly missingTargetError = "\nCannot find \"deploy\" target for the specified project.\n\nYou should add a package that implements deployment capabilities for your\nfavorite platform.\n\nFor example:\n ng add @angular/fire\n ng add @azure/ng-deploy\n\nFind more packages on npm https://www.npmjs.com/search?q=ng%20deploy\n";
+ initialize(options: DeployCommandSchema & Arguments): Promise<number | void>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-impl.js
new file mode 100644
index 00000000..9ac6d501
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-impl.js
@@ -0,0 +1,36 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DeployCommand = void 0;
+const architect_command_1 = require("../models/architect-command");
+const BuilderMissing = `
+Cannot find "deploy" target for the specified project.
+
+You should add a package that implements deployment capabilities for your
+favorite platform.
+
+For example:
+ ng add @angular/fire
+ ng add @azure/ng-deploy
+
+Find more packages on npm https://www.npmjs.com/search?q=ng%20deploy
+`;
+class DeployCommand extends architect_command_1.ArchitectCommand {
+ constructor() {
+ super(...arguments);
+ this.target = 'deploy';
+ this.missingTargetError = BuilderMissing;
+ }
+ async initialize(options) {
+ if (!options.help) {
+ return super.initialize(options);
+ }
+ }
+}
+exports.DeployCommand = DeployCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-long.md
new file mode 100644
index 00000000..9d13ad2a
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy-long.md
@@ -0,0 +1,22 @@
+The command takes an optional project name, as specified in the `projects` section of the `angular.json` workspace configuration file.
+When a project name is not supplied, executes the `deploy` builder for the default project.
+
+To use the `ng deploy` command, use `ng add` to add a package that implements deployment capabilities to your favorite platform.
+Adding the package automatically updates your workspace configuration, adding a deployment
+[CLI builder](guide/cli-builder).
+For example:
+
+```json
+"projects": {
+ "my-project": {
+ ...
+ "architect": {
+ ...
+ "deploy": {
+ "builder": "@angular/fire:deploy",
+ "options": {}
+ }
+ }
+ }
+}
+```
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.d.ts
new file mode 100644
index 00000000..311cbe30
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.d.ts
@@ -0,0 +1,30 @@
+/**
+ * Invokes the deploy builder for a specified project or for the default project in the
+ * workspace.
+ */
+export interface Schema {
+ /**
+ * One or more named builder configurations as a comma-separated list as specified in the
+ * "configurations" section of angular.json.
+ * The builder uses the named configurations to run the given target.
+ * For more information, see
+ * https://angular.io/guide/workspace-config#alternate-build-configurations.
+ */
+ configuration?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * The name of the project to deploy.
+ */
+ project?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.json
new file mode 100644
index 00000000..cc7c860d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/deploy.json
@@ -0,0 +1,34 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/deploy.json",
+ "description": "Invokes the deploy builder for a specified project or for the default project in the workspace.",
+ "$longDescription": "./deploy-long.md",
+
+ "$scope": "in",
+ "$type": "architect",
+ "$impl": "./deploy-impl#DeployCommand",
+
+ "allOf": [
+ {
+ "properties": {
+ "project": {
+ "type": "string",
+ "description": "The name of the project to deploy.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ },
+ "configuration": {
+ "description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section of angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations.",
+ "type": "string",
+ "aliases": ["c"]
+ }
+ },
+ "required": []
+ },
+ {
+ "$ref": "./definitions.json#/definitions/base"
+ }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc-impl.d.ts
new file mode 100644
index 00000000..a075e997
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc-impl.d.ts
@@ -0,0 +1,13 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Command } from '../models/command';
+import { Arguments } from '../models/interface';
+import { Schema as DocCommandSchema } from './doc';
+export declare class DocCommand extends Command<DocCommandSchema> {
+ run(options: DocCommandSchema & Arguments): Promise<0 | undefined>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc-impl.js
new file mode 100644
index 00000000..ec9c1289
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc-impl.js
@@ -0,0 +1,71 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DocCommand = void 0;
+const open_1 = __importDefault(require("open"));
+const command_1 = require("../models/command");
+class DocCommand extends command_1.Command {
+ async run(options) {
+ if (!options.keyword) {
+ this.logger.error('You should specify a keyword, for instance, `ng doc ActivatedRoute`.');
+ return 0;
+ }
+ let domain = 'angular.io';
+ if (options.version) {
+ // version can either be a string containing "next"
+ if (options.version == 'next') {
+ domain = 'next.angular.io';
+ // or a number where version must be a valid Angular version (i.e. not 0, 1 or 3)
+ }
+ else if (!isNaN(+options.version) && ![0, 1, 3].includes(+options.version)) {
+ domain = `v${options.version}.angular.io`;
+ }
+ else {
+ this.logger.error('Version should either be a number (2, 4, 5, 6...) or "next"');
+ return 0;
+ }
+ }
+ else {
+ // we try to get the current Angular version of the project
+ // and use it if we can find it
+ try {
+ /* eslint-disable-next-line import/no-extraneous-dependencies */
+ const currentNgVersion = (await Promise.resolve().then(() => __importStar(require('@angular/core')))).VERSION.major;
+ domain = `v${currentNgVersion}.angular.io`;
+ }
+ catch { }
+ }
+ await (0, open_1.default)(options.search
+ ? `https://${domain}/api?query=${options.keyword}`
+ : `https://${domain}/docs?search=${options.keyword}`);
+ }
+}
+exports.DocCommand = DocCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.d.ts
new file mode 100644
index 00000000..d827a504
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.d.ts
@@ -0,0 +1,39 @@
+/**
+ * Opens the official Angular documentation (angular.io) in a browser, and searches for a
+ * given keyword.
+ */
+export interface Schema {
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * The keyword to search for, as provided in the search bar in angular.io.
+ */
+ keyword?: string;
+ /**
+ * Search all of angular.io. Otherwise, searches only API reference documentation.
+ */
+ search?: boolean;
+ /**
+ * Contains the version of Angular to use for the documentation. If not provided, the
+ * command uses your current Angular core version.
+ */
+ version?: VersionUnion;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
+/**
+ * Contains the version of Angular to use for the documentation. If not provided, the
+ * command uses your current Angular core version.
+ */
+export declare type VersionUnion = number | VersionEnum;
+export declare enum VersionEnum {
+ Next = "next"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.js
new file mode 100644
index 00000000..c05374a6
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.js
@@ -0,0 +1,14 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VersionEnum = exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
+var VersionEnum;
+(function (VersionEnum) {
+ VersionEnum["Next"] = "next";
+})(VersionEnum = exports.VersionEnum || (exports.VersionEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.json
new file mode 100644
index 00000000..bb01549c
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/doc.json
@@ -0,0 +1,46 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/doc.json",
+ "description": "Opens the official Angular documentation (angular.io) in a browser, and searches for a given keyword.",
+ "$longDescription": "",
+
+ "$aliases": ["d"],
+ "$type": "native",
+ "$impl": "./doc-impl#DocCommand",
+
+ "type": "object",
+ "allOf": [
+ {
+ "properties": {
+ "keyword": {
+ "type": "string",
+ "description": "The keyword to search for, as provided in the search bar in angular.io.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ },
+ "search": {
+ "aliases": ["s"],
+ "type": "boolean",
+ "default": false,
+ "description": "Search all of angular.io. Otherwise, searches only API reference documentation."
+ },
+ "version": {
+ "oneOf": [
+ {
+ "type": "number",
+ "minimum": 4
+ },
+ {
+ "enum": [2, "next"]
+ }
+ ],
+ "description": "Contains the version of Angular to use for the documentation. If not provided, the command uses your current Angular core version."
+ }
+ },
+ "required": []
+ },
+ { "$ref": "./definitions.json#/definitions/base" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-impl.d.ts
new file mode 100644
index 00000000..fc56351f
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-impl.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ArchitectCommand } from '../models/architect-command';
+import { Arguments } from '../models/interface';
+import { Schema as E2eCommandSchema } from './e2e';
+export declare class E2eCommand extends ArchitectCommand<E2eCommandSchema> {
+ readonly target = "e2e";
+ readonly multiTarget = true;
+ readonly missingTargetError = "\nCannot find \"e2e\" target for the specified project.\n\nYou should add a package that implements end-to-end testing capabilities.\n\nFor example:\n Cypress: ng add @cypress/schematic\n Nightwatch: ng add @nightwatch/schematics\n WebdriverIO: ng add @wdio/schematics\n\nMore options will be added to the list as they become available.\n";
+ initialize(options: E2eCommandSchema & Arguments): Promise<number | void>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-impl.js
new file mode 100644
index 00000000..9dacef0c
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-impl.js
@@ -0,0 +1,36 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.E2eCommand = void 0;
+const architect_command_1 = require("../models/architect-command");
+class E2eCommand extends architect_command_1.ArchitectCommand {
+ constructor() {
+ super(...arguments);
+ this.target = 'e2e';
+ this.multiTarget = true;
+ this.missingTargetError = `
+Cannot find "e2e" target for the specified project.
+
+You should add a package that implements end-to-end testing capabilities.
+
+For example:
+ Cypress: ng add @cypress/schematic
+ Nightwatch: ng add @nightwatch/schematics
+ WebdriverIO: ng add @wdio/schematics
+
+More options will be added to the list as they become available.
+`;
+ }
+ async initialize(options) {
+ if (!options.help) {
+ return super.initialize(options);
+ }
+ }
+}
+exports.E2eCommand = E2eCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-long.md
new file mode 100644
index 00000000..26363135
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e-long.md
@@ -0,0 +1,4 @@
+The command takes an optional project name, as specified in the `projects` section of the `angular.json` workspace configuration file.
+When a project name is not supplied, executes the `e2e` builder for the default project.
+
+To use the `ng e2e` command, use `ng add` to add a package that implements end-to-end testing capabilities. Adding the package automatically updates your workspace configuration, adding an `e2e` [CLI builder](guide/cli-builder).
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.d.ts
new file mode 100644
index 00000000..6238b817
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.d.ts
@@ -0,0 +1,37 @@
+/**
+ * Builds and serves an Angular app, then runs end-to-end tests.
+ */
+export interface Schema {
+ /**
+ * One or more named builder configurations as a comma-separated list as specified in the
+ * "configurations" section of angular.json.
+ * The builder uses the named configurations to run the given target.
+ * For more information, see
+ * https://angular.io/guide/workspace-config#alternate-build-configurations.
+ * Setting this explicitly overrides the "--prod" flag.
+ */
+ configuration?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Shorthand for "--configuration=production".
+ * Set the build configuration to the production target.
+ * By default, the production target is set up in the workspace configuration such that all
+ * builds make use of bundling, limited tree-shaking, and also limited dead code elimination.
+ */
+ prod?: boolean;
+ /**
+ * The name of the project to build. Can be an application or a library.
+ */
+ project?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.json
new file mode 100644
index 00000000..a8c8cccc
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/e2e.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/e2e.json",
+ "description": "Builds and serves an Angular app, then runs end-to-end tests.",
+ "$longDescription": "./e2e-long.md",
+
+ "$aliases": ["e"],
+ "$scope": "in",
+ "$type": "architect",
+ "$impl": "./e2e-impl#E2eCommand",
+
+ "type": "object",
+ "allOf": [
+ { "$ref": "./definitions.json#/definitions/architect" },
+ { "$ref": "./definitions.json#/definitions/base" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg-impl.d.ts
new file mode 100644
index 00000000..714ca1e9
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg-impl.d.ts
@@ -0,0 +1,12 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Command } from '../models/command';
+import { Schema as AwesomeCommandSchema } from './easter-egg';
+export declare class AwesomeCommand extends Command<AwesomeCommandSchema> {
+ run(): Promise<void>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg-impl.js
new file mode 100644
index 00000000..eca816a6
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg-impl.js
@@ -0,0 +1,31 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AwesomeCommand = void 0;
+const command_1 = require("../models/command");
+const color_1 = require("../utilities/color");
+function pickOne(of) {
+ return of[Math.floor(Math.random() * of.length)];
+}
+class AwesomeCommand extends command_1.Command {
+ async run() {
+ const phrase = pickOne([
+ `You're on it, there's nothing for me to do!`,
+ `Let's take a look... nope, it's all good!`,
+ `You're doing fine.`,
+ `You're already doing great.`,
+ `Nothing to do; already awesome. Exiting.`,
+ `Error 418: As Awesome As Can Get.`,
+ `I spy with my little eye a great developer!`,
+ `Noop... already awesome.`,
+ ]);
+ this.logger.info(color_1.colors.green(phrase));
+ }
+}
+exports.AwesomeCommand = AwesomeCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.d.ts
new file mode 100644
index 00000000..11f5a3f8
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.d.ts
@@ -0,0 +1,14 @@
+export interface Schema {
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.json
new file mode 100644
index 00000000..79d9e1bb
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/easter-egg.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/easter-egg.json",
+ "description": "",
+ "$longDescription": "",
+ "$hidden": true,
+
+ "$impl": "./easter-egg-impl#AwesomeCommand",
+
+ "type": "object",
+ "allOf": [{ "$ref": "./definitions.json#/definitions/base" }]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n-impl.d.ts
new file mode 100644
index 00000000..bd8bcce8
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n-impl.d.ts
@@ -0,0 +1,14 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ArchitectCommand } from '../models/architect-command';
+import { Arguments } from '../models/interface';
+import { Schema as ExtractI18nCommandSchema } from './extract-i18n';
+export declare class ExtractI18nCommand extends ArchitectCommand<ExtractI18nCommandSchema> {
+ readonly target = "extract-i18n";
+ run(options: ExtractI18nCommandSchema & Arguments): Promise<number>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n-impl.js
new file mode 100644
index 00000000..5f712df2
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n-impl.js
@@ -0,0 +1,32 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ExtractI18nCommand = void 0;
+const architect_command_1 = require("../models/architect-command");
+class ExtractI18nCommand extends architect_command_1.ArchitectCommand {
+ constructor() {
+ super(...arguments);
+ this.target = 'extract-i18n';
+ }
+ async run(options) {
+ const version = process.version.substr(1).split('.');
+ if (Number(version[0]) === 12 && Number(version[1]) === 0) {
+ this.logger.error('Due to a defect in Node.js 12.0, the command is not supported on this Node.js version. ' +
+ 'Please upgrade to Node.js 12.1 or later.');
+ return 1;
+ }
+ const commandName = process.argv[2];
+ if (['xi18n', 'i18n-extract'].includes(commandName)) {
+ this.logger.warn(`Warning: "ng ${commandName}" has been deprecated and will be removed in a future major version. ` +
+ 'Please use "ng extract-i18n" instead.');
+ }
+ return this.runArchitectTarget(options);
+ }
+}
+exports.ExtractI18nCommand = ExtractI18nCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.d.ts
new file mode 100644
index 00000000..68c64b56
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.d.ts
@@ -0,0 +1,37 @@
+/**
+ * Extracts i18n messages from source code.
+ */
+export interface Schema {
+ /**
+ * One or more named builder configurations as a comma-separated list as specified in the
+ * "configurations" section of angular.json.
+ * The builder uses the named configurations to run the given target.
+ * For more information, see
+ * https://angular.io/guide/workspace-config#alternate-build-configurations.
+ * Setting this explicitly overrides the "--prod" flag.
+ */
+ configuration?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Shorthand for "--configuration=production".
+ * Set the build configuration to the production target.
+ * By default, the production target is set up in the workspace configuration such that all
+ * builds make use of bundling, limited tree-shaking, and also limited dead code elimination.
+ */
+ prod?: boolean;
+ /**
+ * The name of the project to build. Can be an application or a library.
+ */
+ project?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.json
new file mode 100644
index 00000000..2010fa89
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/extract-i18n.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/extract-i18n.json",
+ "description": "Extracts i18n messages from source code.",
+ "$longDescription": "",
+
+ "$aliases": ["i18n-extract", "xi18n"],
+ "$scope": "in",
+ "$type": "architect",
+ "$impl": "./extract-i18n-impl#ExtractI18nCommand",
+
+ "type": "object",
+ "allOf": [
+ { "$ref": "./definitions.json#/definitions/architect" },
+ { "$ref": "./definitions.json#/definitions/base" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate-impl.d.ts
new file mode 100644
index 00000000..a21d6bf0
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate-impl.d.ts
@@ -0,0 +1,18 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Arguments } from '../models/interface';
+import { SchematicCommand } from '../models/schematic-command';
+import { Schema as GenerateCommandSchema } from './generate';
+export declare class GenerateCommand extends SchematicCommand<GenerateCommandSchema> {
+ longSchematicName: string | undefined;
+ initialize(options: GenerateCommandSchema & Arguments): Promise<void>;
+ run(options: GenerateCommandSchema & Arguments): Promise<number | void>;
+ reportAnalytics(paths: string[], options: GenerateCommandSchema & Arguments): Promise<void>;
+ private parseSchematicInfo;
+ printHelp(): Promise<number>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate-impl.js
new file mode 100644
index 00000000..9179df19
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate-impl.js
@@ -0,0 +1,89 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.GenerateCommand = void 0;
+const schematic_command_1 = require("../models/schematic-command");
+const color_1 = require("../utilities/color");
+const json_schema_1 = require("../utilities/json-schema");
+class GenerateCommand extends schematic_command_1.SchematicCommand {
+ async initialize(options) {
+ // Fill up the schematics property of the command description.
+ const [collectionName, schematicName] = await this.parseSchematicInfo(options);
+ this.collectionName = collectionName;
+ this.schematicName = schematicName;
+ await super.initialize(options);
+ const collection = this.getCollection(collectionName);
+ const subcommands = {};
+ const schematicNames = schematicName ? [schematicName] : collection.listSchematicNames();
+ // Sort as a courtesy for the user.
+ schematicNames.sort();
+ for (const name of schematicNames) {
+ const schematic = this.getSchematic(collection, name, true);
+ this.longSchematicName = schematic.description.name;
+ let subcommand;
+ if (schematic.description.schemaJson) {
+ subcommand = await (0, json_schema_1.parseJsonSchemaToSubCommandDescription)(name, schematic.description.path, this._workflow.registry, schematic.description.schemaJson);
+ }
+ else {
+ continue;
+ }
+ if ((await this.getDefaultSchematicCollection()) == collectionName) {
+ subcommands[name] = subcommand;
+ }
+ else {
+ subcommands[`${collectionName}:${name}`] = subcommand;
+ }
+ }
+ this.description.options.forEach((option) => {
+ if (option.name == 'schematic') {
+ option.subcommands = subcommands;
+ }
+ });
+ }
+ async run(options) {
+ if (!this.schematicName || !this.collectionName) {
+ return this.printHelp();
+ }
+ return this.runSchematic({
+ collectionName: this.collectionName,
+ schematicName: this.schematicName,
+ schematicOptions: options['--'] || [],
+ debug: !!options.debug || false,
+ dryRun: !!options.dryRun || false,
+ force: !!options.force || false,
+ });
+ }
+ async reportAnalytics(paths, options) {
+ if (!this.collectionName || !this.schematicName) {
+ return;
+ }
+ const escapedSchematicName = (this.longSchematicName || this.schematicName).replace(/\//g, '_');
+ return super.reportAnalytics(['generate', this.collectionName.replace(/\//g, '_'), escapedSchematicName], options);
+ }
+ async parseSchematicInfo(options) {
+ let collectionName = await this.getDefaultSchematicCollection();
+ let schematicName = options.schematic;
+ if (schematicName && schematicName.includes(':')) {
+ [collectionName, schematicName] = schematicName.split(':', 2);
+ }
+ return [collectionName, schematicName];
+ }
+ async printHelp() {
+ await super.printHelp();
+ this.logger.info('');
+ // Find the generate subcommand.
+ const subcommand = this.description.options.filter((x) => x.subcommands)[0];
+ if (Object.keys((subcommand && subcommand.subcommands) || {}).length == 1) {
+ this.logger.info(`\nTo see help for a schematic run:`);
+ this.logger.info(color_1.colors.cyan(` ng generate <schematic> --help`));
+ }
+ return 0;
+ }
+}
+exports.GenerateCommand = GenerateCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.d.ts
new file mode 100644
index 00000000..f58c9514
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.d.ts
@@ -0,0 +1,37 @@
+/**
+ * Generates and/or modifies files based on a schematic.
+ */
+export interface Schema {
+ /**
+ * Disable interactive input prompts for options with a default.
+ */
+ defaults?: boolean;
+ /**
+ * Run through and reports activity without writing out results.
+ */
+ dryRun?: boolean;
+ /**
+ * Force overwriting of existing files.
+ */
+ force?: boolean;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Enable interactive input prompts.
+ */
+ interactive?: boolean;
+ /**
+ * The schematic or collection:schematic to generate.
+ */
+ schematic?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.json
new file mode 100644
index 00000000..53228340
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/generate.json
@@ -0,0 +1,31 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/generate.json",
+ "description": "Generates and/or modifies files based on a schematic.",
+ "$longDescription": "",
+
+ "$aliases": ["g"],
+ "$scope": "in",
+ "$type": "schematics",
+ "$impl": "./generate-impl#GenerateCommand",
+
+ "allOf": [
+ {
+ "type": "object",
+ "properties": {
+ "schematic": {
+ "type": "string",
+ "description": "The schematic or collection:schematic to generate.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ }
+ },
+ "required": []
+ },
+ { "$ref": "./definitions.json#/definitions/base" },
+ { "$ref": "./definitions.json#/definitions/schematic" },
+ { "$ref": "./definitions.json#/definitions/interactive" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-impl.d.ts
new file mode 100644
index 00000000..1c3f2ce2
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-impl.d.ts
@@ -0,0 +1,12 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Command } from '../models/command';
+import { Schema as HelpCommandSchema } from './help';
+export declare class HelpCommand extends Command<HelpCommandSchema> {
+ run(): Promise<void>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-impl.js
new file mode 100644
index 00000000..b8a8db5d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-impl.js
@@ -0,0 +1,26 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpCommand = void 0;
+const command_1 = require("../models/command");
+const color_1 = require("../utilities/color");
+class HelpCommand extends command_1.Command {
+ async run() {
+ this.logger.info(`Available Commands:`);
+ for (const cmd of Object.values(await command_1.Command.commandMap())) {
+ if (cmd.hidden) {
+ continue;
+ }
+ const aliasInfo = cmd.aliases.length > 0 ? ` (${cmd.aliases.join(', ')})` : '';
+ this.logger.info(` ${color_1.colors.cyan(cmd.name)}${aliasInfo} ${cmd.description}`);
+ }
+ this.logger.info(`\nFor more detailed help run "ng [command name] --help"`);
+ }
+}
+exports.HelpCommand = HelpCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-long.md
new file mode 100644
index 00000000..cc4b790f
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help-long.md
@@ -0,0 +1,7 @@
+For help with individual commands, use the `--help` or `-h` option with the command.
+
+For example,
+
+```sh
+ng help serve
+```
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.d.ts
new file mode 100644
index 00000000..4df6abf4
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.d.ts
@@ -0,0 +1,17 @@
+/**
+ * Lists available commands and their short descriptions.
+ */
+export interface Schema {
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.json
new file mode 100644
index 00000000..a6513118
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/help.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/help.json",
+ "description": "Lists available commands and their short descriptions.",
+ "$longDescription": "./help-long.md",
+
+ "$scope": "all",
+ "$aliases": [],
+ "$impl": "./help-impl#HelpCommand",
+
+ "type": "object",
+ "allOf": [{ "$ref": "./definitions.json#/definitions/base" }]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-impl.d.ts
new file mode 100644
index 00000000..69ff5904
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-impl.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ArchitectCommand } from '../models/architect-command';
+import { Arguments } from '../models/interface';
+import { Schema as LintCommandSchema } from './lint';
+export declare class LintCommand extends ArchitectCommand<LintCommandSchema> {
+ readonly target = "lint";
+ readonly multiTarget = true;
+ initialize(options: LintCommandSchema & Arguments): Promise<number | void>;
+ onMissingTarget(): Promise<void | number>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-impl.js
new file mode 100644
index 00000000..115a643c
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-impl.js
@@ -0,0 +1,69 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LintCommand = void 0;
+const child_process_1 = require("child_process");
+const path = __importStar(require("path"));
+const architect_command_1 = require("../models/architect-command");
+const prompt_1 = require("../utilities/prompt");
+const MissingBuilder = `
+Cannot find "lint" target for the specified project.
+
+You should add a package that implements linting capabilities.
+
+For example:
+ ng add @angular-eslint/schematics
+`;
+class LintCommand extends architect_command_1.ArchitectCommand {
+ constructor() {
+ super(...arguments);
+ this.target = 'lint';
+ this.multiTarget = true;
+ }
+ async initialize(options) {
+ if (!options.help) {
+ return super.initialize(options);
+ }
+ }
+ async onMissingTarget() {
+ this.logger.warn(MissingBuilder);
+ const shouldAdd = await (0, prompt_1.askConfirmation)('Would you like to add ESLint now?', true, false);
+ if (shouldAdd) {
+ // Run `ng add @angular-eslint/schematics`
+ const binPath = path.resolve(__dirname, '../bin/ng.js');
+ const { status, error } = (0, child_process_1.spawnSync)(process.execPath, [binPath, 'add', '@angular-eslint/schematics'], {
+ stdio: 'inherit',
+ });
+ if (error) {
+ throw error;
+ }
+ return status !== null && status !== void 0 ? status : 0;
+ }
+ }
+}
+exports.LintCommand = LintCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-long.md
new file mode 100644
index 00000000..1c912b24
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint-long.md
@@ -0,0 +1,20 @@
+The command takes an optional project name, as specified in the `projects` section of the `angular.json` workspace configuration file.
+When a project name is not supplied, executes the `lint` builder for all projects.
+
+To use the `ng lint` command, use `ng add` to add a package that implements linting capabilities. Adding the package automatically updates your workspace configuration, adding a lint [CLI builder](guide/cli-builder).
+For example:
+
+```json
+"projects": {
+ "my-project": {
+ ...
+ "architect": {
+ ...
+ "lint": {
+ "builder": "@angular-eslint/builder:lint",
+ "options": {}
+ }
+ }
+ }
+}
+```
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.d.ts
new file mode 100644
index 00000000..91fc6534
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.d.ts
@@ -0,0 +1,29 @@
+/**
+ * Runs linting tools on Angular app code in a given project folder.
+ */
+export interface Schema {
+ /**
+ * One or more named builder configurations as a comma-separated list as specified in the
+ * "configurations" section of angular.json.
+ * The builder uses the named configurations to run the given target.
+ * For more information, see
+ * https://angular.io/guide/workspace-config#alternate-build-configurations.
+ */
+ configuration?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * The name of the project to lint.
+ */
+ project?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.json
new file mode 100644
index 00000000..824632e7
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/lint.json
@@ -0,0 +1,36 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/lint.json",
+ "description": "Runs linting tools on Angular app code in a given project folder.",
+ "$longDescription": "./lint-long.md",
+
+ "$aliases": ["l"],
+ "$scope": "in",
+ "$type": "architect",
+ "$impl": "./lint-impl#LintCommand",
+
+ "type": "object",
+ "allOf": [
+ {
+ "properties": {
+ "project": {
+ "type": "string",
+ "description": "The name of the project to lint.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ },
+ "configuration": {
+ "description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section of angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations.",
+ "type": "string",
+ "aliases": ["c"]
+ }
+ },
+ "required": []
+ },
+ {
+ "$ref": "./definitions.json#/definitions/base"
+ }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new-impl.d.ts
new file mode 100644
index 00000000..098d8782
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new-impl.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Arguments } from '../models/interface';
+import { SchematicCommand } from '../models/schematic-command';
+import { Schema as NewCommandSchema } from './new';
+export declare class NewCommand extends SchematicCommand<NewCommandSchema> {
+ readonly allowMissingWorkspace = true;
+ schematicName: string;
+ initialize(options: NewCommandSchema & Arguments): Promise<void>;
+ run(options: NewCommandSchema & Arguments): Promise<number | void>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new-impl.js
new file mode 100644
index 00000000..d52bc537
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new-impl.js
@@ -0,0 +1,37 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.NewCommand = void 0;
+const schematic_command_1 = require("../models/schematic-command");
+const version_1 = require("../models/version");
+class NewCommand extends schematic_command_1.SchematicCommand {
+ constructor() {
+ super(...arguments);
+ this.allowMissingWorkspace = true;
+ this.schematicName = 'ng-new';
+ }
+ async initialize(options) {
+ this.collectionName = options.collection || (await this.getDefaultSchematicCollection());
+ return super.initialize(options);
+ }
+ async run(options) {
+ // Register the version of the CLI in the registry.
+ const version = version_1.VERSION.full;
+ this._workflow.registry.addSmartDefaultProvider('ng-cli-version', () => version);
+ return this.runSchematic({
+ collectionName: this.collectionName,
+ schematicName: this.schematicName,
+ schematicOptions: options['--'] || [],
+ debug: !!options.debug,
+ dryRun: !!options.dryRun,
+ force: !!options.force,
+ });
+ }
+}
+exports.NewCommand = NewCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.d.ts
new file mode 100644
index 00000000..091234f0
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.d.ts
@@ -0,0 +1,41 @@
+/**
+ * Creates a new workspace and an initial Angular application.
+ */
+export interface Schema {
+ /**
+ * A collection of schematics to use in generating the initial application.
+ */
+ collection?: string;
+ /**
+ * Disable interactive input prompts for options with a default.
+ */
+ defaults?: boolean;
+ /**
+ * Run through and reports activity without writing out results.
+ */
+ dryRun?: boolean;
+ /**
+ * Force overwriting of existing files.
+ */
+ force?: boolean;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Enable interactive input prompts.
+ */
+ interactive?: boolean;
+ /**
+ * Add more details to output logging.
+ */
+ verbose?: boolean;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.json
new file mode 100644
index 00000000..90efa760
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.json
@@ -0,0 +1,34 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/new.json",
+ "description": "Creates a new workspace and an initial Angular application.",
+ "$longDescription": "./new.md",
+
+ "$aliases": ["n"],
+ "$scope": "out",
+ "$type": "schematic",
+ "$impl": "./new-impl#NewCommand",
+
+ "type": "object",
+ "allOf": [
+ {
+ "properties": {
+ "collection": {
+ "type": "string",
+ "aliases": ["c"],
+ "description": "A collection of schematics to use in generating the initial application."
+ },
+ "verbose": {
+ "type": "boolean",
+ "default": false,
+ "aliases": ["v"],
+ "description": "Add more details to output logging."
+ }
+ },
+ "required": []
+ },
+ { "$ref": "./definitions.json#/definitions/base" },
+ { "$ref": "./definitions.json#/definitions/schematic" },
+ { "$ref": "./definitions.json#/definitions/interactive" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.md
new file mode 100644
index 00000000..135e1b2c
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/new.md
@@ -0,0 +1,16 @@
+Creates and initializes a new Angular application that is the default project for a new workspace.
+
+Provides interactive prompts for optional configuration, such as adding routing support.
+All prompts can safely be allowed to default.
+
+- The new workspace folder is given the specified project name, and contains configuration files at the top level.
+
+- By default, the files for a new initial application (with the same name as the workspace) are placed in the `src/` subfolder.
+
+- The new application's configuration appears in the `projects` section of the `angular.json` workspace configuration file, under its project name.
+
+- Subsequent applications that you generate in the workspace reside in the `projects/` subfolder.
+
+If you plan to have multiple applications in the workspace, you can create an empty workspace by setting the `--create-application` option to false.
+You can then use `ng generate application` to create an initial application.
+This allows a workspace name different from the initial app name, and ensures that all applications reside in the `/projects` subfolder, matching the structure of the configuration file.
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-impl.d.ts
new file mode 100644
index 00000000..8d96da65
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-impl.d.ts
@@ -0,0 +1,13 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ArchitectCommand, ArchitectCommandOptions } from '../models/architect-command';
+import { Arguments } from '../models/interface';
+import { Schema as RunCommandSchema } from './run';
+export declare class RunCommand extends ArchitectCommand<RunCommandSchema> {
+ run(options: ArchitectCommandOptions & Arguments): Promise<number>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-impl.js
new file mode 100644
index 00000000..706c432a
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-impl.js
@@ -0,0 +1,22 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.RunCommand = void 0;
+const architect_command_1 = require("../models/architect-command");
+class RunCommand extends architect_command_1.ArchitectCommand {
+ async run(options) {
+ if (options.target) {
+ return this.runArchitectTarget(options);
+ }
+ else {
+ throw new Error('Invalid architect target.');
+ }
+ }
+}
+exports.RunCommand = RunCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-long.md
new file mode 100644
index 00000000..65a307fc
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run-long.md
@@ -0,0 +1,16 @@
+Architect is the tool that the CLI uses to perform complex tasks such as compilation, according to provided configurations.
+The CLI commands run Architect targets such as `build`, `serve`, `test`, and `lint`.
+Each named target has a default configuration, specified by an "options" object,
+and an optional set of named alternate configurations in the "configurations" object.
+
+For example, the "serve" target for a newly generated app has a predefined
+alternate configuration named "production".
+
+You can define new targets and their configuration options in the "architect" section
+of the `angular.json` file.
+If you do so, you can run them from the command line using the `ng run` command.
+Execute the command using the following format.
+
+```
+ng run project:target[:configuration]
+```
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.d.ts
new file mode 100644
index 00000000..d3c2c32f
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.d.ts
@@ -0,0 +1,30 @@
+/**
+ * Runs an Architect target with an optional custom builder configuration defined in your
+ * project.
+ */
+export interface Schema {
+ /**
+ * One or more named builder configurations as a comma-separated list as specified in the
+ * "configurations" section of angular.json.
+ * The builder uses the named configurations to run the given target.
+ * For more information, see
+ * https://angular.io/guide/workspace-config#alternate-build-configurations.
+ */
+ configuration?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * The Architect target to run.
+ */
+ target?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.json
new file mode 100644
index 00000000..f4e2287d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/run.json
@@ -0,0 +1,36 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/run.json",
+ "description": "Runs an Architect target with an optional custom builder configuration defined in your project.",
+ "$longDescription": "./run-long.md",
+
+ "$aliases": [],
+ "$scope": "in",
+ "$type": "architect",
+ "$impl": "./run-impl#RunCommand",
+
+ "type": "object",
+ "allOf": [
+ {
+ "properties": {
+ "target": {
+ "type": "string",
+ "description": "The Architect target to run.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ }
+ },
+ "configuration": {
+ "description": "One or more named builder configurations as a comma-separated list as specified in the \"configurations\" section of angular.json.\nThe builder uses the named configurations to run the given target.\nFor more information, see https://angular.io/guide/workspace-config#alternate-build-configurations.",
+ "type": "string",
+ "aliases": ["c"]
+ }
+ },
+ "required": []
+ },
+ {
+ "$ref": "./definitions.json#/definitions/base"
+ }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve-impl.d.ts
new file mode 100644
index 00000000..2b49dd24
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve-impl.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ArchitectCommand, ArchitectCommandOptions } from '../models/architect-command';
+import { Arguments } from '../models/interface';
+import { Schema as ServeCommandSchema } from './serve';
+export declare class ServeCommand extends ArchitectCommand<ServeCommandSchema> {
+ readonly target = "serve";
+ validate(): boolean;
+ run(options: ArchitectCommandOptions & Arguments): Promise<number>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve-impl.js
new file mode 100644
index 00000000..3258a324
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve-impl.js
@@ -0,0 +1,24 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ServeCommand = void 0;
+const architect_command_1 = require("../models/architect-command");
+class ServeCommand extends architect_command_1.ArchitectCommand {
+ constructor() {
+ super(...arguments);
+ this.target = 'serve';
+ }
+ validate() {
+ return true;
+ }
+ async run(options) {
+ return this.runArchitectTarget(options);
+ }
+}
+exports.ServeCommand = ServeCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.d.ts
new file mode 100644
index 00000000..aa1c3817
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.d.ts
@@ -0,0 +1,37 @@
+/**
+ * Builds and serves your app, rebuilding on file changes.
+ */
+export interface Schema {
+ /**
+ * One or more named builder configurations as a comma-separated list as specified in the
+ * "configurations" section of angular.json.
+ * The builder uses the named configurations to run the given target.
+ * For more information, see
+ * https://angular.io/guide/workspace-config#alternate-build-configurations.
+ * Setting this explicitly overrides the "--prod" flag.
+ */
+ configuration?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Shorthand for "--configuration=production".
+ * Set the build configuration to the production target.
+ * By default, the production target is set up in the workspace configuration such that all
+ * builds make use of bundling, limited tree-shaking, and also limited dead code elimination.
+ */
+ prod?: boolean;
+ /**
+ * The name of the project to build. Can be an application or a library.
+ */
+ project?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.json
new file mode 100644
index 00000000..efc7ba40
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/serve.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/serve.json",
+ "description": "Builds and serves your app, rebuilding on file changes.",
+ "$longDescription": "",
+
+ "$aliases": ["s"],
+ "$scope": "in",
+ "$type": "architect",
+ "$impl": "./serve-impl#ServeCommand",
+
+ "type": "object",
+ "allOf": [
+ { "$ref": "./definitions.json#/definitions/architect" },
+ { "$ref": "./definitions.json#/definitions/base" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-impl.d.ts
new file mode 100644
index 00000000..dbe640e6
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-impl.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { ArchitectCommand, ArchitectCommandOptions } from '../models/architect-command';
+import { Arguments } from '../models/interface';
+import { Schema as TestCommandSchema } from './test';
+export declare class TestCommand extends ArchitectCommand<TestCommandSchema> {
+ readonly target = "test";
+ readonly multiTarget = true;
+ run(options: ArchitectCommandOptions & Arguments): Promise<number>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-impl.js
new file mode 100644
index 00000000..4072b4c9
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-impl.js
@@ -0,0 +1,22 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.TestCommand = void 0;
+const architect_command_1 = require("../models/architect-command");
+class TestCommand extends architect_command_1.ArchitectCommand {
+ constructor() {
+ super(...arguments);
+ this.target = 'test';
+ this.multiTarget = true;
+ }
+ async run(options) {
+ return this.runArchitectTarget(options);
+ }
+}
+exports.TestCommand = TestCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-long.md
new file mode 100644
index 00000000..25086c17
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test-long.md
@@ -0,0 +1,2 @@
+Takes the name of the project, as specified in the `projects` section of the `angular.json` workspace configuration file.
+When a project name is not supplied, it will execute for all projects.
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.d.ts
new file mode 100644
index 00000000..50d2d6b3
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.d.ts
@@ -0,0 +1,37 @@
+/**
+ * Runs unit tests in a project.
+ */
+export interface Schema {
+ /**
+ * One or more named builder configurations as a comma-separated list as specified in the
+ * "configurations" section of angular.json.
+ * The builder uses the named configurations to run the given target.
+ * For more information, see
+ * https://angular.io/guide/workspace-config#alternate-build-configurations.
+ * Setting this explicitly overrides the "--prod" flag.
+ */
+ configuration?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Shorthand for "--configuration=production".
+ * Set the build configuration to the production target.
+ * By default, the production target is set up in the workspace configuration such that all
+ * builds make use of bundling, limited tree-shaking, and also limited dead code elimination.
+ */
+ prod?: boolean;
+ /**
+ * The name of the project to build. Can be an application or a library.
+ */
+ project?: string;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.json
new file mode 100644
index 00000000..5fb4ce01
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/test.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/test.json",
+ "description": "Runs unit tests in a project.",
+ "$longDescription": "./test-long.md",
+
+ "$aliases": ["t"],
+ "$scope": "in",
+ "$type": "architect",
+ "$impl": "./test-impl#TestCommand",
+
+ "type": "object",
+ "allOf": [
+ { "$ref": "./definitions.json#/definitions/architect" },
+ { "$ref": "./definitions.json#/definitions/base" }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-impl.d.ts
new file mode 100644
index 00000000..533ad38d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-impl.d.ts
@@ -0,0 +1,38 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Command } from '../models/command';
+import { Arguments } from '../models/interface';
+import { Schema as UpdateCommandSchema } from './update';
+export declare class UpdateCommand extends Command<UpdateCommandSchema> {
+ readonly allowMissingWorkspace = true;
+ private workflow;
+ private packageManager;
+ initialize(options: UpdateCommandSchema & Arguments): Promise<void>;
+ private executeSchematic;
+ /**
+ * @return Whether or not the migration was performed successfully.
+ */
+ private executeMigration;
+ /**
+ * @return Whether or not the migrations were performed successfully.
+ */
+ private executeMigrations;
+ private executePackageMigrations;
+ run(options: UpdateCommandSchema & Arguments): Promise<number>;
+ /**
+ * @return Whether or not the commit was successful.
+ */
+ private commit;
+ private checkCleanGit;
+ /**
+ * Checks if the current installed CLI version is older or newer than a compatible version.
+ * @returns the version to install or null when there is no update to install.
+ */
+ private checkCLIVersion;
+ private getCLIUpdateRunnerVersion;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-impl.js
new file mode 100644
index 00000000..b7c20c31
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-impl.js
@@ -0,0 +1,748 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.UpdateCommand = void 0;
+const schematics_1 = require("@angular-devkit/schematics");
+const tools_1 = require("@angular-devkit/schematics/tools");
+const child_process_1 = require("child_process");
+const fs = __importStar(require("fs"));
+const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
+const npm_pick_manifest_1 = __importDefault(require("npm-pick-manifest"));
+const path = __importStar(require("path"));
+const semver = __importStar(require("semver"));
+const workspace_schema_1 = require("../lib/config/workspace-schema");
+const command_1 = require("../models/command");
+const schematic_engine_host_1 = require("../models/schematic-engine-host");
+const version_1 = require("../models/version");
+const color_1 = require("../utilities/color");
+const install_package_1 = require("../utilities/install-package");
+const log_file_1 = require("../utilities/log-file");
+const package_manager_1 = require("../utilities/package-manager");
+const package_metadata_1 = require("../utilities/package-metadata");
+const package_tree_1 = require("../utilities/package-tree");
+const UPDATE_SCHEMATIC_COLLECTION = path.join(__dirname, '../src/commands/update/schematic/collection.json');
+/**
+ * Disable CLI version mismatch checks and forces usage of the invoked CLI
+ * instead of invoking the local installed version.
+ */
+const disableVersionCheckEnv = process.env['NG_DISABLE_VERSION_CHECK'];
+const disableVersionCheck = disableVersionCheckEnv !== undefined &&
+ disableVersionCheckEnv !== '0' &&
+ disableVersionCheckEnv.toLowerCase() !== 'false';
+const ANGULAR_PACKAGES_REGEXP = /^@(?:angular|nguniversal)\//;
+class UpdateCommand extends command_1.Command {
+ constructor() {
+ super(...arguments);
+ this.allowMissingWorkspace = true;
+ this.packageManager = workspace_schema_1.PackageManager.Npm;
+ }
+ async initialize(options) {
+ this.packageManager = await (0, package_manager_1.getPackageManager)(this.context.root);
+ this.workflow = new tools_1.NodeWorkflow(this.context.root, {
+ packageManager: this.packageManager,
+ packageManagerForce: options.force,
+ // __dirname -> favor @schematics/update from this package
+ // Otherwise, use packages from the active workspace (migrations)
+ resolvePaths: [__dirname, this.context.root],
+ schemaValidation: true,
+ engineHostCreator: (options) => new schematic_engine_host_1.SchematicEngineHost(options.resolvePaths),
+ });
+ }
+ async executeSchematic(collection, schematic, options = {}) {
+ let error = false;
+ let logs = [];
+ const files = new Set();
+ const reporterSubscription = this.workflow.reporter.subscribe((event) => {
+ // Strip leading slash to prevent confusion.
+ const eventPath = event.path.startsWith('/') ? event.path.substr(1) : event.path;
+ switch (event.kind) {
+ case 'error':
+ error = true;
+ const desc = event.description == 'alreadyExist' ? 'already exists' : 'does not exist.';
+ this.logger.error(`ERROR! ${eventPath} ${desc}.`);
+ break;
+ case 'update':
+ logs.push(`${color_1.colors.cyan('UPDATE')} ${eventPath} (${event.content.length} bytes)`);
+ files.add(eventPath);
+ break;
+ case 'create':
+ logs.push(`${color_1.colors.green('CREATE')} ${eventPath} (${event.content.length} bytes)`);
+ files.add(eventPath);
+ break;
+ case 'delete':
+ logs.push(`${color_1.colors.yellow('DELETE')} ${eventPath}`);
+ files.add(eventPath);
+ break;
+ case 'rename':
+ const eventToPath = event.to.startsWith('/') ? event.to.substr(1) : event.to;
+ logs.push(`${color_1.colors.blue('RENAME')} ${eventPath} => ${eventToPath}`);
+ files.add(eventPath);
+ break;
+ }
+ });
+ const lifecycleSubscription = this.workflow.lifeCycle.subscribe((event) => {
+ if (event.kind == 'end' || event.kind == 'post-tasks-start') {
+ if (!error) {
+ // Output the logging queue, no error happened.
+ logs.forEach((log) => this.logger.info(` ${log}`));
+ logs = [];
+ }
+ }
+ });
+ // TODO: Allow passing a schematic instance directly
+ try {
+ await this.workflow
+ .execute({
+ collection,
+ schematic,
+ options,
+ logger: this.logger,
+ })
+ .toPromise();
+ reporterSubscription.unsubscribe();
+ lifecycleSubscription.unsubscribe();
+ return { success: !error, files };
+ }
+ catch (e) {
+ if (e instanceof schematics_1.UnsuccessfulWorkflowExecution) {
+ this.logger.error(`${color_1.colors.symbols.cross} Migration failed. See above for further details.\n`);
+ }
+ else {
+ const logPath = (0, log_file_1.writeErrorToLogFile)(e);
+ this.logger.fatal(`${color_1.colors.symbols.cross} Migration failed: ${e.message}\n` +
+ ` See "${logPath}" for further details.\n`);
+ }
+ return { success: false, files };
+ }
+ }
+ /**
+ * @return Whether or not the migration was performed successfully.
+ */
+ async executeMigration(packageName, collectionPath, migrationName, commit) {
+ const collection = this.workflow.engine.createCollection(collectionPath);
+ const name = collection.listSchematicNames().find((name) => name === migrationName);
+ if (!name) {
+ this.logger.error(`Cannot find migration '${migrationName}' in '${packageName}'.`);
+ return false;
+ }
+ const schematic = this.workflow.engine.createSchematic(name, collection);
+ this.logger.info(color_1.colors.cyan(`** Executing '${migrationName}' of package '${packageName}' **\n`));
+ return this.executePackageMigrations([schematic.description], packageName, commit);
+ }
+ /**
+ * @return Whether or not the migrations were performed successfully.
+ */
+ async executeMigrations(packageName, collectionPath, from, to, commit) {
+ const collection = this.workflow.engine.createCollection(collectionPath);
+ const migrationRange = new semver.Range('>' + (semver.prerelease(from) ? from.split('-')[0] + '-0' : from) + ' <=' + to.split('-')[0]);
+ const migrations = [];
+ for (const name of collection.listSchematicNames()) {
+ const schematic = this.workflow.engine.createSchematic(name, collection);
+ const description = schematic.description;
+ description.version = coerceVersionNumber(description.version) || undefined;
+ if (!description.version) {
+ continue;
+ }
+ if (semver.satisfies(description.version, migrationRange, { includePrerelease: true })) {
+ migrations.push(description);
+ }
+ }
+ migrations.sort((a, b) => semver.compare(a.version, b.version) || a.name.localeCompare(b.name));
+ if (migrations.length === 0) {
+ return true;
+ }
+ this.logger.info(color_1.colors.cyan(`** Executing migrations of package '${packageName}' **\n`));
+ return this.executePackageMigrations(migrations, packageName, commit);
+ }
+ async executePackageMigrations(migrations, packageName, commit = false) {
+ for (const migration of migrations) {
+ const [title, ...description] = migration.description.split('. ');
+ this.logger.info(color_1.colors.cyan(color_1.colors.symbols.pointer) +
+ ' ' +
+ color_1.colors.bold(title.endsWith('.') ? title : title + '.'));
+ if (description.length) {
+ this.logger.info(' ' + description.join('.\n '));
+ }
+ const result = await this.executeSchematic(migration.collection.name, migration.name);
+ if (!result.success) {
+ return false;
+ }
+ this.logger.info(' Migration completed.');
+ // Commit migration
+ if (commit) {
+ const commitPrefix = `${packageName} migration - ${migration.name}`;
+ const commitMessage = migration.description
+ ? `${commitPrefix}\n\n${migration.description}`
+ : commitPrefix;
+ const committed = this.commit(commitMessage);
+ if (!committed) {
+ // Failed to commit, something went wrong. Abort the update.
+ return false;
+ }
+ }
+ this.logger.info(''); // Extra trailing newline.
+ }
+ return true;
+ }
+ // eslint-disable-next-line max-lines-per-function
+ async run(options) {
+ var _a;
+ await (0, package_manager_1.ensureCompatibleNpm)(this.context.root);
+ // Check if the current installed CLI version is older than the latest compatible version.
+ if (!disableVersionCheck) {
+ const cliVersionToInstall = await this.checkCLIVersion(options['--'], options.verbose, options.next);
+ if (cliVersionToInstall) {
+ this.logger.warn('The installed Angular CLI version is outdated.\n' +
+ `Installing a temporary Angular CLI versioned ${cliVersionToInstall} to perform the update.`);
+ return (0, install_package_1.runTempPackageBin)(`@angular/cli@${cliVersionToInstall}`, this.packageManager, process.argv.slice(2));
+ }
+ }
+ const logVerbose = (message) => {
+ if (options.verbose) {
+ this.logger.info(message);
+ }
+ };
+ if (options.all) {
+ const updateCmd = this.packageManager === workspace_schema_1.PackageManager.Yarn
+ ? `'yarn upgrade-interactive' or 'yarn upgrade'`
+ : `'${this.packageManager} update'`;
+ this.logger.warn(`
+ '--all' functionality has been removed as updating multiple packages at once is not recommended.
+ To update packages which don’t provide 'ng update' capabilities in your workspace 'package.json' use ${updateCmd} instead.
+ Run the package manager update command after updating packages which provide 'ng update' capabilities.
+ `);
+ return 0;
+ }
+ const packages = [];
+ for (const request of options['--'] || []) {
+ try {
+ const packageIdentifier = (0, npm_package_arg_1.default)(request);
+ // only registry identifiers are supported
+ if (!packageIdentifier.registry) {
+ this.logger.error(`Package '${request}' is not a registry package identifer.`);
+ return 1;
+ }
+ if (packages.some((v) => v.name === packageIdentifier.name)) {
+ this.logger.error(`Duplicate package '${packageIdentifier.name}' specified.`);
+ return 1;
+ }
+ if (options.migrateOnly && packageIdentifier.rawSpec) {
+ this.logger.warn('Package specifier has no effect when using "migrate-only" option.');
+ }
+ // If next option is used and no specifier supplied, use next tag
+ if (options.next && !packageIdentifier.rawSpec) {
+ packageIdentifier.fetchSpec = 'next';
+ }
+ packages.push(packageIdentifier);
+ }
+ catch (e) {
+ this.logger.error(e.message);
+ return 1;
+ }
+ }
+ if (!options.migrateOnly && (options.from || options.to)) {
+ this.logger.error('Can only use "from" or "to" options with "migrate-only" option.');
+ return 1;
+ }
+ // If not asking for status then check for a clean git repository.
+ // This allows the user to easily reset any changes from the update.
+ if (packages.length && !this.checkCleanGit()) {
+ if (options.allowDirty) {
+ this.logger.warn('Repository is not clean. Update changes will be mixed with pre-existing changes.');
+ }
+ else {
+ this.logger.error('Repository is not clean. Please commit or stash any changes before updating.');
+ return 2;
+ }
+ }
+ this.logger.info(`Using package manager: '${this.packageManager}'`);
+ this.logger.info('Collecting installed dependencies...');
+ const rootDependencies = await (0, package_tree_1.getProjectDependencies)(this.context.root);
+ this.logger.info(`Found ${rootDependencies.size} dependencies.`);
+ if (packages.length === 0) {
+ // Show status
+ const { success } = await this.executeSchematic(UPDATE_SCHEMATIC_COLLECTION, 'update', {
+ force: options.force || false,
+ next: options.next || false,
+ verbose: options.verbose || false,
+ packageManager: this.packageManager,
+ packages: [],
+ });
+ return success ? 0 : 1;
+ }
+ if (options.migrateOnly) {
+ if (!options.from && typeof options.migrateOnly !== 'string') {
+ this.logger.error('"from" option is required when using the "migrate-only" option without a migration name.');
+ return 1;
+ }
+ else if (packages.length !== 1) {
+ this.logger.error('A single package must be specified when using the "migrate-only" option.');
+ return 1;
+ }
+ if (options.next) {
+ this.logger.warn('"next" option has no effect when using "migrate-only" option.');
+ }
+ const packageName = packages[0].name;
+ const packageDependency = rootDependencies.get(packageName);
+ let packagePath = packageDependency === null || packageDependency === void 0 ? void 0 : packageDependency.path;
+ let packageNode = packageDependency === null || packageDependency === void 0 ? void 0 : packageDependency.package;
+ if (packageDependency && !packageNode) {
+ this.logger.error('Package found in package.json but is not installed.');
+ return 1;
+ }
+ else if (!packageDependency) {
+ // Allow running migrations on transitively installed dependencies
+ // There can technically be nested multiple versions
+ // TODO: If multiple, this should find all versions and ask which one to use
+ const packageJson = (0, package_tree_1.findPackageJson)(this.context.root, packageName);
+ if (packageJson) {
+ packagePath = path.dirname(packageJson);
+ packageNode = await (0, package_tree_1.readPackageJson)(packageJson);
+ }
+ }
+ if (!packageNode || !packagePath) {
+ this.logger.error('Package is not installed.');
+ return 1;
+ }
+ const updateMetadata = packageNode['ng-update'];
+ let migrations = updateMetadata === null || updateMetadata === void 0 ? void 0 : updateMetadata.migrations;
+ if (migrations === undefined) {
+ this.logger.error('Package does not provide migrations.');
+ return 1;
+ }
+ else if (typeof migrations !== 'string') {
+ this.logger.error('Package contains a malformed migrations field.');
+ return 1;
+ }
+ else if (path.posix.isAbsolute(migrations) || path.win32.isAbsolute(migrations)) {
+ this.logger.error('Package contains an invalid migrations field. Absolute paths are not permitted.');
+ return 1;
+ }
+ // Normalize slashes
+ migrations = migrations.replace(/\\/g, '/');
+ if (migrations.startsWith('../')) {
+ this.logger.error('Package contains an invalid migrations field. Paths outside the package root are not permitted.');
+ return 1;
+ }
+ // Check if it is a package-local location
+ const localMigrations = path.join(packagePath, migrations);
+ if (fs.existsSync(localMigrations)) {
+ migrations = localMigrations;
+ }
+ else {
+ // Try to resolve from package location.
+ // This avoids issues with package hoisting.
+ try {
+ migrations = require.resolve(migrations, { paths: [packagePath] });
+ }
+ catch (e) {
+ if (e.code === 'MODULE_NOT_FOUND') {
+ this.logger.error('Migrations for package were not found.');
+ }
+ else {
+ this.logger.error(`Unable to resolve migrations for package. [${e.message}]`);
+ }
+ return 1;
+ }
+ }
+ let result;
+ if (typeof options.migrateOnly == 'string') {
+ result = await this.executeMigration(packageName, migrations, options.migrateOnly, options.createCommits);
+ }
+ else {
+ const from = coerceVersionNumber(options.from);
+ if (!from) {
+ this.logger.error(`"from" value [${options.from}] is not a valid version.`);
+ return 1;
+ }
+ result = await this.executeMigrations(packageName, migrations, from, options.to || packageNode.version, options.createCommits);
+ }
+ return result ? 0 : 1;
+ }
+ const requests = [];
+ // Validate packages actually are part of the workspace
+ for (const pkg of packages) {
+ const node = rootDependencies.get(pkg.name);
+ if (!(node === null || node === void 0 ? void 0 : node.package)) {
+ this.logger.error(`Package '${pkg.name}' is not a dependency.`);
+ return 1;
+ }
+ // If a specific version is requested and matches the installed version, skip.
+ if (pkg.type === 'version' && node.package.version === pkg.fetchSpec) {
+ this.logger.info(`Package '${pkg.name}' is already at '${pkg.fetchSpec}'.`);
+ continue;
+ }
+ requests.push({ identifier: pkg, node });
+ }
+ if (requests.length === 0) {
+ return 0;
+ }
+ const packagesToUpdate = [];
+ this.logger.info('Fetching dependency metadata from registry...');
+ for (const { identifier: requestIdentifier, node } of requests) {
+ const packageName = requestIdentifier.name;
+ let metadata;
+ try {
+ // Metadata requests are internally cached; multiple requests for same name
+ // does not result in additional network traffic
+ metadata = await (0, package_metadata_1.fetchPackageMetadata)(packageName, this.logger, {
+ verbose: options.verbose,
+ });
+ }
+ catch (e) {
+ this.logger.error(`Error fetching metadata for '${packageName}': ` + e.message);
+ return 1;
+ }
+ // Try to find a package version based on the user requested package specifier
+ // registry specifier types are either version, range, or tag
+ let manifest;
+ if (requestIdentifier.type === 'version' ||
+ requestIdentifier.type === 'range' ||
+ requestIdentifier.type === 'tag') {
+ try {
+ manifest = (0, npm_pick_manifest_1.default)(metadata, requestIdentifier.fetchSpec);
+ }
+ catch (e) {
+ if (e.code === 'ETARGET') {
+ // If not found and next was used and user did not provide a specifier, try latest.
+ // Package may not have a next tag.
+ if (requestIdentifier.type === 'tag' &&
+ requestIdentifier.fetchSpec === 'next' &&
+ !requestIdentifier.rawSpec) {
+ try {
+ manifest = (0, npm_pick_manifest_1.default)(metadata, 'latest');
+ }
+ catch (e) {
+ if (e.code !== 'ETARGET' && e.code !== 'ENOVERSIONS') {
+ throw e;
+ }
+ }
+ }
+ }
+ else if (e.code !== 'ENOVERSIONS') {
+ throw e;
+ }
+ }
+ }
+ if (!manifest) {
+ this.logger.error(`Package specified by '${requestIdentifier.raw}' does not exist within the registry.`);
+ return 1;
+ }
+ if (manifest.version === ((_a = node.package) === null || _a === void 0 ? void 0 : _a.version)) {
+ this.logger.info(`Package '${packageName}' is already up to date.`);
+ continue;
+ }
+ if (node.package && ANGULAR_PACKAGES_REGEXP.test(node.package.name)) {
+ const { name, version } = node.package;
+ const toBeInstalledMajorVersion = +manifest.version.split('.')[0];
+ const currentMajorVersion = +version.split('.')[0];
+ if (toBeInstalledMajorVersion - currentMajorVersion > 1) {
+ // Only allow updating a single version at a time.
+ if (currentMajorVersion < 6) {
+ // Before version 6, the major versions were not always sequential.
+ // Example @angular/core skipped version 3, @angular/cli skipped versions 2-5.
+ this.logger.error(`Updating multiple major versions of '${name}' at once is not supported. Please migrate each major version individually.\n` +
+ `For more information about the update process, see https://update.angular.io/.`);
+ }
+ else {
+ const nextMajorVersionFromCurrent = currentMajorVersion + 1;
+ this.logger.error(`Updating multiple major versions of '${name}' at once is not supported. Please migrate each major version individually.\n` +
+ `Run 'ng update ${name}@${nextMajorVersionFromCurrent}' in your workspace directory ` +
+ `to update to latest '${nextMajorVersionFromCurrent}.x' version of '${name}'.\n\n` +
+ `For more information about the update process, see https://update.angular.io/?v=${currentMajorVersion}.0-${nextMajorVersionFromCurrent}.0`);
+ }
+ return 1;
+ }
+ }
+ packagesToUpdate.push(requestIdentifier.toString());
+ }
+ if (packagesToUpdate.length === 0) {
+ return 0;
+ }
+ const { success } = await this.executeSchematic(UPDATE_SCHEMATIC_COLLECTION, 'update', {
+ verbose: options.verbose || false,
+ force: options.force || false,
+ next: !!options.next,
+ packageManager: this.packageManager,
+ packages: packagesToUpdate,
+ });
+ if (success) {
+ try {
+ // Remove existing node modules directory to provide a stronger guarantee that packages
+ // will be hoisted into the correct locations.
+ // The below should be removed and replaced with just `rm` when support for Node.Js 12 is removed.
+ const { rm, rmdir } = fs.promises;
+ if (rm) {
+ await rm(path.join(this.context.root, 'node_modules'), {
+ force: true,
+ recursive: true,
+ maxRetries: 3,
+ });
+ }
+ else {
+ await rmdir(path.join(this.context.root, 'node_modules'), {
+ recursive: true,
+ maxRetries: 3,
+ });
+ }
+ }
+ catch { }
+ const result = await (0, install_package_1.installAllPackages)(this.packageManager, options.force ? ['--force'] : [], this.context.root);
+ if (result !== 0) {
+ return result;
+ }
+ }
+ if (success && options.createCommits) {
+ const committed = this.commit(`Angular CLI update for packages - ${packagesToUpdate.join(', ')}`);
+ if (!committed) {
+ return 1;
+ }
+ }
+ // This is a temporary workaround to allow data to be passed back from the update schematic
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const migrations = global.externalMigrations;
+ if (success && migrations) {
+ for (const migration of migrations) {
+ // Resolve the package from the workspace root, as otherwise it will be resolved from the temp
+ // installed CLI version.
+ let packagePath;
+ logVerbose(`Resolving migration package '${migration.package}' from '${this.context.root}'...`);
+ try {
+ try {
+ packagePath = path.dirname(
+ // This may fail if the `package.json` is not exported as an entry point
+ require.resolve(path.join(migration.package, 'package.json'), {
+ paths: [this.context.root],
+ }));
+ }
+ catch (e) {
+ if (e.code === 'MODULE_NOT_FOUND') {
+ // Fallback to trying to resolve the package's main entry point
+ packagePath = require.resolve(migration.package, { paths: [this.context.root] });
+ }
+ else {
+ throw e;
+ }
+ }
+ }
+ catch (e) {
+ if (e.code === 'MODULE_NOT_FOUND') {
+ logVerbose(e.toString());
+ this.logger.error(`Migrations for package (${migration.package}) were not found.` +
+ ' The package could not be found in the workspace.');
+ }
+ else {
+ this.logger.error(`Unable to resolve migrations for package (${migration.package}). [${e.message}]`);
+ }
+ return 1;
+ }
+ let migrations;
+ // Check if it is a package-local location
+ const localMigrations = path.join(packagePath, migration.collection);
+ if (fs.existsSync(localMigrations)) {
+ migrations = localMigrations;
+ }
+ else {
+ // Try to resolve from package location.
+ // This avoids issues with package hoisting.
+ try {
+ migrations = require.resolve(migration.collection, { paths: [packagePath] });
+ }
+ catch (e) {
+ if (e.code === 'MODULE_NOT_FOUND') {
+ this.logger.error(`Migrations for package (${migration.package}) were not found.`);
+ }
+ else {
+ this.logger.error(`Unable to resolve migrations for package (${migration.package}). [${e.message}]`);
+ }
+ return 1;
+ }
+ }
+ const result = await this.executeMigrations(migration.package, migrations, migration.from, migration.to, options.createCommits);
+ if (!result) {
+ return 0;
+ }
+ }
+ }
+ return success ? 0 : 1;
+ }
+ /**
+ * @return Whether or not the commit was successful.
+ */
+ commit(message) {
+ // Check if a commit is needed.
+ let commitNeeded;
+ try {
+ commitNeeded = hasChangesToCommit();
+ }
+ catch (err) {
+ this.logger.error(` Failed to read Git tree:\n${err.stderr}`);
+ return false;
+ }
+ if (!commitNeeded) {
+ this.logger.info(' No changes to commit after migration.');
+ return true;
+ }
+ // Commit changes and abort on error.
+ try {
+ createCommit(message);
+ }
+ catch (err) {
+ this.logger.error(`Failed to commit update (${message}):\n${err.stderr}`);
+ return false;
+ }
+ // Notify user of the commit.
+ const hash = findCurrentGitSha();
+ const shortMessage = message.split('\n')[0];
+ if (hash) {
+ this.logger.info(` Committed migration step (${getShortHash(hash)}): ${shortMessage}.`);
+ }
+ else {
+ // Commit was successful, but reading the hash was not. Something weird happened,
+ // but nothing that would stop the update. Just log the weirdness and continue.
+ this.logger.info(` Committed migration step: ${shortMessage}.`);
+ this.logger.warn(' Failed to look up hash of most recent commit, continuing anyways.');
+ }
+ return true;
+ }
+ checkCleanGit() {
+ try {
+ const topLevel = (0, child_process_1.execSync)('git rev-parse --show-toplevel', {
+ encoding: 'utf8',
+ stdio: 'pipe',
+ });
+ const result = (0, child_process_1.execSync)('git status --porcelain', { encoding: 'utf8', stdio: 'pipe' });
+ if (result.trim().length === 0) {
+ return true;
+ }
+ // Only files inside the workspace root are relevant
+ for (const entry of result.split('\n')) {
+ const relativeEntry = path.relative(path.resolve(this.context.root), path.resolve(topLevel.trim(), entry.slice(3).trim()));
+ if (!relativeEntry.startsWith('..') && !path.isAbsolute(relativeEntry)) {
+ return false;
+ }
+ }
+ }
+ catch { }
+ return true;
+ }
+ /**
+ * Checks if the current installed CLI version is older or newer than a compatible version.
+ * @returns the version to install or null when there is no update to install.
+ */
+ async checkCLIVersion(packagesToUpdate, verbose = false, next = false) {
+ const { version } = await (0, package_metadata_1.fetchPackageManifest)(`@angular/cli@${this.getCLIUpdateRunnerVersion(packagesToUpdate, next)}`, this.logger, {
+ verbose,
+ usingYarn: this.packageManager === workspace_schema_1.PackageManager.Yarn,
+ });
+ return version_1.VERSION.full === version ? null : version;
+ }
+ getCLIUpdateRunnerVersion(packagesToUpdate, next) {
+ var _a, _b;
+ if (next) {
+ return 'next';
+ }
+ const updatingAngularPackage = packagesToUpdate === null || packagesToUpdate === void 0 ? void 0 : packagesToUpdate.find((r) => ANGULAR_PACKAGES_REGEXP.test(r));
+ if (updatingAngularPackage) {
+ // If we are updating any Angular package we can update the CLI to the target version because
+ // migrations for @angular/core@13 can be executed using Angular/cli@13.
+ // This is same behaviour as `npx @angular/cli@13 update @angular/core@13`.
+ // `@angular/cli@13` -> ['', 'angular/cli', '13']
+ // `@angular/cli` -> ['', 'angular/cli']
+ const tempVersion = coerceVersionNumber(updatingAngularPackage.split('@')[2]);
+ return (_b = (_a = semver.parse(tempVersion)) === null || _a === void 0 ? void 0 : _a.major) !== null && _b !== void 0 ? _b : 'latest';
+ }
+ // When not updating an Angular package we cannot determine which schematic runtime the migration should to be executed in.
+ // Typically, we can assume that the `@angular/cli` was updated previously.
+ // Example: Angular official packages are typically updated prior to NGRX etc...
+ // Therefore, we only update to the latest patch version of the installed major version of the Angular CLI.
+ // This is important because we might end up in a scenario where locally Angular v12 is installed, updating NGRX from 11 to 12.
+ // We end up using Angular ClI v13 to run the migrations if we run the migrations using the CLI installed major version + 1 logic.
+ return version_1.VERSION.major;
+ }
+}
+exports.UpdateCommand = UpdateCommand;
+/**
+ * @return Whether or not the working directory has Git changes to commit.
+ */
+function hasChangesToCommit() {
+ // List all modified files not covered by .gitignore.
+ const files = (0, child_process_1.execSync)('git ls-files -m -d -o --exclude-standard').toString();
+ // If any files are returned, then there must be something to commit.
+ return files !== '';
+}
+/**
+ * Precondition: Must have pending changes to commit, they do not need to be staged.
+ * Postcondition: The Git working tree is committed and the repo is clean.
+ * @param message The commit message to use.
+ */
+function createCommit(message) {
+ // Stage entire working tree for commit.
+ (0, child_process_1.execSync)('git add -A', { encoding: 'utf8', stdio: 'pipe' });
+ // Commit with the message passed via stdin to avoid bash escaping issues.
+ (0, child_process_1.execSync)('git commit --no-verify -F -', { encoding: 'utf8', stdio: 'pipe', input: message });
+}
+/**
+ * @return The Git SHA hash of the HEAD commit. Returns null if unable to retrieve the hash.
+ */
+function findCurrentGitSha() {
+ try {
+ const hash = (0, child_process_1.execSync)('git rev-parse HEAD', { encoding: 'utf8', stdio: 'pipe' });
+ return hash.trim();
+ }
+ catch {
+ return null;
+ }
+}
+function getShortHash(commitHash) {
+ return commitHash.slice(0, 9);
+}
+function coerceVersionNumber(version) {
+ if (!version) {
+ return null;
+ }
+ if (!version.match(/^\d{1,30}\.\d{1,30}\.\d{1,30}/)) {
+ const match = version.match(/^\d{1,30}(\.\d{1,30})*/);
+ if (!match) {
+ return null;
+ }
+ if (!match[1]) {
+ version = version.substr(0, match[0].length) + '.0.0' + version.substr(match[0].length);
+ }
+ else if (!match[2]) {
+ version = version.substr(0, match[0].length) + '.0' + version.substr(match[0].length);
+ }
+ else {
+ return null;
+ }
+ }
+ return semver.valid(version);
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-long.md b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-long.md
new file mode 100644
index 00000000..72df66ce
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update-long.md
@@ -0,0 +1,22 @@
+Perform a basic update to the current stable release of the core framework and CLI by running the following command.
+
+```
+ng update @angular/cli @angular/core
+```
+
+To update to the next beta or pre-release version, use the `--next` option.
+
+To update from one major version to another, use the format
+
+```
+ng update @angular/cli@^<major_version> @angular/core@^<major_version>
+```
+
+We recommend that you always update to the latest patch version, as it contains fixes we released since the initial major release.
+For example, use the following command to take the latest 10.x.x version and use that to update.
+
+```
+ng update @angular/cli@^10 @angular/core@^10
+```
+
+For detailed information and guidance on updating your application, see the interactive [Angular Update Guide](https://update.angular.io/).
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.d.ts
new file mode 100644
index 00000000..832c0100
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.d.ts
@@ -0,0 +1,65 @@
+/**
+ * Updates your application and its dependencies. See https://update.angular.io/
+ */
+export interface Schema {
+ /**
+ * Whether to update all packages in package.json.
+ */
+ all?: boolean;
+ /**
+ * Whether to allow updating when the repository contains modified or untracked files.
+ */
+ allowDirty?: boolean;
+ /**
+ * Create source control commits for updates and migrations.
+ */
+ createCommits?: boolean;
+ /**
+ * Ignore peer dependency version mismatches. Passes the `--force` flag to the package
+ * manager when installing packages.
+ */
+ force?: boolean;
+ /**
+ * Version from which to migrate from. Only available with a single package being updated,
+ * and only on migration only.
+ */
+ from?: string;
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+ /**
+ * Only perform a migration, do not update the installed version.
+ */
+ migrateOnly?: MigrateOnly;
+ /**
+ * Use the prerelease version, including beta and RCs.
+ */
+ next?: boolean;
+ /**
+ * The names of package(s) to update.
+ */
+ packages?: string[];
+ /**
+ * Version up to which to apply migrations. Only available with a single package being
+ * updated, and only on migrations only. Requires from to be specified. Default to the
+ * installed version detected.
+ */
+ to?: string;
+ /**
+ * Display additional details about internal operations during execution.
+ */
+ verbose?: boolean;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
+/**
+ * Only perform a migration, do not update the installed version.
+ */
+export declare type MigrateOnly = boolean | string;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.json
new file mode 100644
index 00000000..7de5a193
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/update.json
@@ -0,0 +1,84 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/update.json",
+ "description": "Updates your application and its dependencies. See https://update.angular.io/",
+ "$longDescription": "./update-long.md",
+
+ "$scope": "all",
+ "$aliases": [],
+ "$type": "schematics",
+ "$impl": "./update-impl#UpdateCommand",
+
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "./definitions.json#/definitions/base"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "packages": {
+ "description": "The names of package(s) to update.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "$default": {
+ "$source": "argv"
+ }
+ },
+ "force": {
+ "description": "Ignore peer dependency version mismatches. Passes the `--force` flag to the package manager when installing packages.",
+ "default": false,
+ "type": "boolean"
+ },
+ "all": {
+ "description": "Whether to update all packages in package.json.",
+ "default": false,
+ "type": "boolean",
+ "x-deprecated": true
+ },
+ "next": {
+ "description": "Use the prerelease version, including beta and RCs.",
+ "default": false,
+ "type": "boolean"
+ },
+ "migrateOnly": {
+ "description": "Only perform a migration, do not update the installed version.",
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string",
+ "description": "The name of the migration to run."
+ }
+ ]
+ },
+ "from": {
+ "description": "Version from which to migrate from. Only available with a single package being updated, and only on migration only.",
+ "type": "string"
+ },
+ "to": {
+ "description": "Version up to which to apply migrations. Only available with a single package being updated, and only on migrations only. Requires from to be specified. Default to the installed version detected.",
+ "type": "string"
+ },
+ "allowDirty": {
+ "description": "Whether to allow updating when the repository contains modified or untracked files.",
+ "type": "boolean"
+ },
+ "verbose": {
+ "description": "Display additional details about internal operations during execution.",
+ "type": "boolean",
+ "default": false
+ },
+ "createCommits": {
+ "description": "Create source control commits for updates and migrations.",
+ "type": "boolean",
+ "default": false,
+ "aliases": ["C"]
+ }
+ }
+ }
+ ]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version-impl.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version-impl.d.ts
new file mode 100644
index 00000000..655d2d2e
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version-impl.d.ts
@@ -0,0 +1,17 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Command } from '../models/command';
+import { Schema as VersionCommandSchema } from './version';
+export declare class VersionCommand extends Command<VersionCommandSchema> {
+ static aliases: string[];
+ private readonly localRequire;
+ private readonly workspaceRequire;
+ run(): Promise<void>;
+ private getVersion;
+ private getPackageManager;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version-impl.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version-impl.js
new file mode 100644
index 00000000..5823936f
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version-impl.js
@@ -0,0 +1,179 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VersionCommand = void 0;
+const child_process_1 = require("child_process");
+const module_1 = __importDefault(require("module"));
+const command_1 = require("../models/command");
+const color_1 = require("../utilities/color");
+const package_manager_1 = require("../utilities/package-manager");
+/**
+ * Major versions of Node.js that are officially supported by Angular.
+ */
+const SUPPORTED_NODE_MAJORS = [12, 14, 16];
+class VersionCommand extends command_1.Command {
+ constructor() {
+ super(...arguments);
+ this.localRequire = module_1.default.createRequire(__filename);
+ // Trailing slash is used to allow the path to be treated as a directory
+ this.workspaceRequire = module_1.default.createRequire(this.context.root + '/');
+ }
+ async run() {
+ const cliPackage = this.localRequire('../package.json');
+ let workspacePackage;
+ try {
+ workspacePackage = this.workspaceRequire('./package.json');
+ }
+ catch { }
+ const [nodeMajor] = process.versions.node.split('.').map((part) => Number(part));
+ const unsupportedNodeVersion = !SUPPORTED_NODE_MAJORS.includes(nodeMajor);
+ const patterns = [
+ /^@angular\/.*/,
+ /^@angular-devkit\/.*/,
+ /^@bazel\/.*/,
+ /^@ngtools\/.*/,
+ /^@nguniversal\/.*/,
+ /^@schematics\/.*/,
+ /^rxjs$/,
+ /^typescript$/,
+ /^ng-packagr$/,
+ /^webpack$/,
+ ];
+ const packageNames = [
+ ...Object.keys(cliPackage.dependencies || {}),
+ ...Object.keys(cliPackage.devDependencies || {}),
+ ...Object.keys((workspacePackage === null || workspacePackage === void 0 ? void 0 : workspacePackage.dependencies) || {}),
+ ...Object.keys((workspacePackage === null || workspacePackage === void 0 ? void 0 : workspacePackage.devDependencies) || {}),
+ ];
+ const versions = packageNames
+ .filter((x) => patterns.some((p) => p.test(x)))
+ .reduce((acc, name) => {
+ if (name in acc) {
+ return acc;
+ }
+ acc[name] = this.getVersion(name);
+ return acc;
+ }, {});
+ const ngCliVersion = cliPackage.version;
+ let angularCoreVersion = '';
+ const angularSameAsCore = [];
+ if (workspacePackage) {
+ // Filter all angular versions that are the same as core.
+ angularCoreVersion = versions['@angular/core'];
+ if (angularCoreVersion) {
+ for (const angularPackage of Object.keys(versions)) {
+ if (versions[angularPackage] == angularCoreVersion &&
+ angularPackage.startsWith('@angular/')) {
+ angularSameAsCore.push(angularPackage.replace(/^@angular\//, ''));
+ delete versions[angularPackage];
+ }
+ }
+ // Make sure we list them in alphabetical order.
+ angularSameAsCore.sort();
+ }
+ }
+ const namePad = ' '.repeat(Object.keys(versions).sort((a, b) => b.length - a.length)[0].length + 3);
+ const asciiArt = `
+ _ _ ____ _ ___
+ / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
+ / △ \\ | '_ \\ / _\` | | | | |/ _\` | '__| | | | | | |
+ / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |
+ /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|
+ |___/
+ `
+ .split('\n')
+ .map((x) => color_1.colors.red(x))
+ .join('\n');
+ this.logger.info(asciiArt);
+ this.logger.info(`
+ Angular CLI: ${ngCliVersion}
+ Node: ${process.versions.node}${unsupportedNodeVersion ? ' (Unsupported)' : ''}
+ Package Manager: ${await this.getPackageManager()}
+ OS: ${process.platform} ${process.arch}
+
+ Angular: ${angularCoreVersion}
+ ... ${angularSameAsCore
+ .reduce((acc, name) => {
+ // Perform a simple word wrap around 60.
+ if (acc.length == 0) {
+ return [name];
+ }
+ const line = acc[acc.length - 1] + ', ' + name;
+ if (line.length > 60) {
+ acc.push(name);
+ }
+ else {
+ acc[acc.length - 1] = line;
+ }
+ return acc;
+ }, [])
+ .join('\n... ')}
+
+ Package${namePad.slice(7)}Version
+ -------${namePad.replace(/ /g, '-')}------------------
+ ${Object.keys(versions)
+ .map((module) => `${module}${namePad.slice(module.length)}${versions[module]}`)
+ .sort()
+ .join('\n')}
+ `.replace(/^ {6}/gm, ''));
+ if (unsupportedNodeVersion) {
+ this.logger.warn(`Warning: The current version of Node (${process.versions.node}) is not supported by Angular.`);
+ }
+ }
+ getVersion(moduleName) {
+ let packageInfo;
+ let cliOnly = false;
+ // Try to find the package in the workspace
+ try {
+ packageInfo = this.workspaceRequire(`${moduleName}/package.json`);
+ }
+ catch { }
+ // If not found, try to find within the CLI
+ if (!packageInfo) {
+ try {
+ packageInfo = this.localRequire(`${moduleName}/package.json`);
+ cliOnly = true;
+ }
+ catch { }
+ }
+ let version;
+ // If found, attempt to get the version
+ if (packageInfo) {
+ try {
+ version = packageInfo.version + (cliOnly ? ' (cli-only)' : '');
+ }
+ catch { }
+ }
+ return version || '<error>';
+ }
+ async getPackageManager() {
+ try {
+ const manager = await (0, package_manager_1.getPackageManager)(this.context.root);
+ const version = (0, child_process_1.execSync)(`${manager} --version`, {
+ encoding: 'utf8',
+ stdio: ['ignore', 'pipe', 'ignore'],
+ env: {
+ ...process.env,
+ // NPM updater notifier will prevents the child process from closing until it timeout after 3 minutes.
+ NO_UPDATE_NOTIFIER: '1',
+ NPM_CONFIG_UPDATE_NOTIFIER: 'false',
+ },
+ }).trim();
+ return `${manager} ${version}`;
+ }
+ catch {
+ return '<error>';
+ }
+ }
+}
+exports.VersionCommand = VersionCommand;
+VersionCommand.aliases = ['v'];
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.d.ts
new file mode 100644
index 00000000..bdbbd3af
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.d.ts
@@ -0,0 +1,17 @@
+/**
+ * Outputs Angular CLI version.
+ */
+export interface Schema {
+ /**
+ * Shows a help message for this command in the console.
+ */
+ help?: HelpUnion;
+}
+/**
+ * Shows a help message for this command in the console.
+ */
+export declare type HelpUnion = boolean | HelpEnum;
+export declare enum HelpEnum {
+ HelpJson = "JSON",
+ Json = "json"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.js
new file mode 100644
index 00000000..a772dc7b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HelpEnum = void 0;
+var HelpEnum;
+(function (HelpEnum) {
+ HelpEnum["HelpJson"] = "JSON";
+ HelpEnum["Json"] = "json";
+})(HelpEnum = exports.HelpEnum || (exports.HelpEnum = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.json
new file mode 100644
index 00000000..8f4c3ff1
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/commands/version.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://commands/version.json",
+ "description": "Outputs Angular CLI version.",
+ "$longDescription": "",
+
+ "$aliases": ["v"],
+ "$scope": "all",
+ "$impl": "./version-impl#VersionCommand",
+
+ "type": "object",
+ "allOf": [{ "$ref": "./definitions.json#/definitions/base" }]
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/cli/index.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/cli/index.d.ts
new file mode 100644
index 00000000..f24b23c4
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/cli/index.d.ts
@@ -0,0 +1,12 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export { VERSION, Version } from '../../models/version';
+export default function (options: {
+ testing?: boolean;
+ cliArgs: string[];
+}): Promise<number>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/cli/index.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/cli/index.js
new file mode 100644
index 00000000..9126dce7
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/cli/index.js
@@ -0,0 +1,110 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Version = exports.VERSION = void 0;
+const node_1 = require("@angular-devkit/core/node");
+const util_1 = require("util");
+const command_runner_1 = require("../../models/command-runner");
+const color_1 = require("../../utilities/color");
+const config_1 = require("../../utilities/config");
+const log_file_1 = require("../../utilities/log-file");
+const project_1 = require("../../utilities/project");
+var version_1 = require("../../models/version");
+Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_1.VERSION; } });
+Object.defineProperty(exports, "Version", { enumerable: true, get: function () { return version_1.Version; } });
+const debugEnv = process.env['NG_DEBUG'];
+const isDebug = debugEnv !== undefined && debugEnv !== '0' && debugEnv.toLowerCase() !== 'false';
+/* eslint-disable no-console */
+async function default_1(options) {
+ // This node version check ensures that the requirements of the project instance of the CLI are met
+ const version = process.versions.node.split('.').map((part) => Number(part));
+ if (version[0] < 12 || (version[0] === 12 && version[1] < 20)) {
+ process.stderr.write(`Node.js version ${process.version} detected.\n` +
+ 'The Angular CLI requires a minimum v12.20.\n\n' +
+ 'Please update your Node.js version or visit https://nodejs.org/ for additional instructions.\n');
+ return 3;
+ }
+ const logger = (0, node_1.createConsoleLogger)(isDebug, process.stdout, process.stderr, {
+ info: (s) => (color_1.colors.enabled ? s : (0, color_1.removeColor)(s)),
+ debug: (s) => (color_1.colors.enabled ? s : (0, color_1.removeColor)(s)),
+ warn: (s) => (color_1.colors.enabled ? color_1.colors.bold.yellow(s) : (0, color_1.removeColor)(s)),
+ error: (s) => (color_1.colors.enabled ? color_1.colors.bold.red(s) : (0, color_1.removeColor)(s)),
+ fatal: (s) => (color_1.colors.enabled ? color_1.colors.bold.red(s) : (0, color_1.removeColor)(s)),
+ });
+ // Redirect console to logger
+ console.info = console.log = function (...args) {
+ logger.info((0, util_1.format)(...args));
+ };
+ console.warn = function (...args) {
+ logger.warn((0, util_1.format)(...args));
+ };
+ console.error = function (...args) {
+ logger.error((0, util_1.format)(...args));
+ };
+ let workspace;
+ const workspaceFile = (0, project_1.findWorkspaceFile)();
+ if (workspaceFile === null) {
+ const [, localPath] = (0, config_1.getWorkspaceRaw)('local');
+ if (localPath !== null) {
+ logger.fatal(`An invalid configuration file was found ['${localPath}'].` +
+ ' Please delete the file before running the command.');
+ return 1;
+ }
+ }
+ else {
+ try {
+ workspace = await config_1.AngularWorkspace.load(workspaceFile);
+ }
+ catch (e) {
+ logger.fatal(`Unable to read workspace file '${workspaceFile}': ${e.message}`);
+ return 1;
+ }
+ }
+ try {
+ const maybeExitCode = await (0, command_runner_1.runCommand)(options.cliArgs, logger, workspace);
+ if (typeof maybeExitCode === 'number') {
+ console.assert(Number.isInteger(maybeExitCode));
+ return maybeExitCode;
+ }
+ return 0;
+ }
+ catch (err) {
+ if (err instanceof Error) {
+ try {
+ const logPath = (0, log_file_1.writeErrorToLogFile)(err);
+ logger.fatal(`An unhandled exception occurred: ${err.message}\n` +
+ `See "${logPath}" for further details.`);
+ }
+ catch (e) {
+ logger.fatal(`An unhandled exception occurred: ${err.message}\n` +
+ `Fatal error writing debug log file: ${e.message}`);
+ if (err.stack) {
+ logger.fatal(err.stack);
+ }
+ }
+ return 127;
+ }
+ else if (typeof err === 'string') {
+ logger.fatal(err);
+ }
+ else if (typeof err === 'number') {
+ // Log nothing.
+ }
+ else {
+ logger.fatal('An unexpected error occurred: ' + JSON.stringify(err));
+ }
+ if (options.testing) {
+ // eslint-disable-next-line no-debugger
+ debugger;
+ throw err;
+ }
+ return 1;
+ }
+}
+exports.default = default_1;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/schema.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/schema.json
new file mode 100644
index 00000000..7d0c7fd2
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/schema.json
@@ -0,0 +1,2845 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "ng-cli://config/schema.json",
+ "title": "Angular CLI Workspace Configuration",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": "string"
+ },
+ "version": {
+ "$ref": "#/definitions/fileVersion"
+ },
+ "cli": {
+ "$ref": "#/definitions/cliOptions"
+ },
+ "schematics": {
+ "$ref": "#/definitions/schematicOptions"
+ },
+ "newProjectRoot": {
+ "type": "string",
+ "description": "Path where new projects will be created."
+ },
+ "defaultProject": {
+ "type": "string",
+ "description": "Default project name used in commands."
+ },
+ "projects": {
+ "type": "object",
+ "patternProperties": {
+ "^(?:@[a-zA-Z0-9_-]+/)?[a-zA-Z0-9_-]+$": {
+ "$ref": "#/definitions/project"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "version"
+ ],
+ "definitions": {
+ "cliOptions": {
+ "type": "object",
+ "properties": {
+ "defaultCollection": {
+ "description": "The default schematics collection to use.",
+ "type": "string"
+ },
+ "packageManager": {
+ "description": "Specify which package manager tool to use.",
+ "type": "string",
+ "enum": [
+ "npm",
+ "cnpm",
+ "yarn",
+ "pnpm"
+ ]
+ },
+ "warnings": {
+ "description": "Control CLI specific console warnings",
+ "type": "object",
+ "properties": {
+ "versionMismatch": {
+ "description": "Show a warning when the global version is newer than the local one.",
+ "type": "boolean"
+ }
+ }
+ },
+ "analytics": {
+ "type": [
+ "boolean",
+ "string"
+ ],
+ "description": "Share anonymous usage data with the Angular Team at Google."
+ },
+ "analyticsSharing": {
+ "type": "object",
+ "properties": {
+ "tracking": {
+ "description": "Analytics sharing info tracking ID.",
+ "type": "string",
+ "pattern": "^(GA|UA)?-\\d+-\\d+$"
+ },
+ "uuid": {
+ "description": "Analytics sharing info universally unique identifier.",
+ "type": "string",
+ "format": "uuid"
+ }
+ }
+ },
+ "cache": {
+ "description": "Control disk cache.",
+ "type": "object",
+ "properties": {
+ "environment": {
+ "description": "Configure in which environment disk cache is enabled.",
+ "type": "string",
+ "enum": [
+ "local",
+ "ci",
+ "all"
+ ]
+ },
+ "enabled": {
+ "description": "Configure whether disk caching is enabled.",
+ "type": "boolean"
+ },
+ "path": {
+ "description": "Cache base path.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "schematicOptions": {
+ "type": "object",
+ "properties": {
+ "@schematics/angular:application": {
+ "$ref": "#/definitions/SchematicsAngularApplicationSchema"
+ },
+ "@schematics/angular:class": {
+ "$ref": "#/definitions/SchematicsAngularClassSchema"
+ },
+ "@schematics/angular:component": {
+ "$ref": "#/definitions/SchematicsAngularComponentSchema"
+ },
+ "@schematics/angular:directive": {
+ "$ref": "#/definitions/SchematicsAngularDirectiveSchema"
+ },
+ "@schematics/angular:enum": {
+ "$ref": "#/definitions/SchematicsAngularEnumSchema"
+ },
+ "@schematics/angular:guard": {
+ "$ref": "#/definitions/SchematicsAngularGuardSchema"
+ },
+ "@schematics/angular:interceptor": {
+ "$ref": "#/definitions/SchematicsAngularInterceptorSchema"
+ },
+ "@schematics/angular:interface": {
+ "$ref": "#/definitions/SchematicsAngularInterfaceSchema"
+ },
+ "@schematics/angular:library": {
+ "$ref": "#/definitions/SchematicsAngularLibrarySchema"
+ },
+ "@schematics/angular:pipe": {
+ "$ref": "#/definitions/SchematicsAngularPipeSchema"
+ },
+ "@schematics/angular:ng-new": {
+ "$ref": "#/definitions/SchematicsAngularNgNewSchema"
+ },
+ "@schematics/angular:resolver": {
+ "$ref": "#/definitions/SchematicsAngularResolverSchema"
+ },
+ "@schematics/angular:service": {
+ "$ref": "#/definitions/SchematicsAngularServiceSchema"
+ },
+ "@schematics/angular:web-worker": {
+ "$ref": "#/definitions/SchematicsAngularWebWorkerSchema"
+ }
+ },
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "fileVersion": {
+ "type": "integer",
+ "description": "File format version",
+ "minimum": 1
+ },
+ "project": {
+ "type": "object",
+ "properties": {
+ "cli": {
+ "defaultCollection": {
+ "description": "The default schematics collection to use.",
+ "type": "string"
+ }
+ },
+ "schematics": {
+ "$ref": "#/definitions/schematicOptions"
+ },
+ "prefix": {
+ "type": "string",
+ "format": "html-selector",
+ "description": "The prefix to apply to generated selectors."
+ },
+ "root": {
+ "type": "string",
+ "description": "Root of the project files."
+ },
+ "i18n": {
+ "$ref": "#/definitions/project/definitions/i18n"
+ },
+ "sourceRoot": {
+ "type": "string",
+ "description": "The root of the source files, assets and index.html file structure."
+ },
+ "projectType": {
+ "type": "string",
+ "description": "Project type.",
+ "enum": [
+ "application",
+ "library"
+ ]
+ },
+ "architect": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/project/definitions/target"
+ }
+ },
+ "targets": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/project/definitions/target"
+ }
+ }
+ },
+ "required": [
+ "root",
+ "projectType"
+ ],
+ "anyOf": [
+ {
+ "required": [
+ "architect"
+ ],
+ "not": {
+ "required": [
+ "targets"
+ ]
+ }
+ },
+ {
+ "required": [
+ "targets"
+ ],
+ "not": {
+ "required": [
+ "architect"
+ ]
+ }
+ },
+ {
+ "not": {
+ "required": [
+ "targets",
+ "architect"
+ ]
+ }
+ }
+ ],
+ "additionalProperties": false,
+ "patternProperties": {
+ "^[a-z]{1,3}-.*": {}
+ },
+ "definitions": {
+ "i18n": {
+ "description": "Project i18n options",
+ "type": "object",
+ "properties": {
+ "sourceLocale": {
+ "oneOf": [
+ {
+ "type": "string",
+ "description": "Specifies the source locale of the application.",
+ "default": "en-US",
+ "$comment": "IETF BCP 47 language tag (simplified)",
+ "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
+ },
+ {
+ "type": "object",
+ "description": "Localization options to use for the source locale",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Specifies the locale code of the source locale",
+ "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
+ },
+ "baseHref": {
+ "type": "string",
+ "description": "HTML base HREF to use for the locale (defaults to the locale code)"
+ }
+ },
+ "additionalProperties": false
+ }
+ ]
+ },
+ "locales": {
+ "type": "object",
+ "additionalProperties": false,
+ "patternProperties": {
+ "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$": {
+ "oneOf": [
+ {
+ "type": "string",
+ "description": "Localization file to use for i18n"
+ },
+ {
+ "type": "array",
+ "description": "Localization files to use for i18n",
+ "items": {
+ "type": "string",
+ "uniqueItems": true
+ }
+ },
+ {
+ "type": "object",
+ "description": "Localization options to use for the locale",
+ "properties": {
+ "translation": {
+ "oneOf": [
+ {
+ "type": "string",
+ "description": "Localization file to use for i18n"
+ },
+ {
+ "type": "array",
+ "description": "Localization files to use for i18n",
+ "items": {
+ "type": "string",
+ "uniqueItems": true
+ }
+ }
+ ]
+ },
+ "baseHref": {
+ "type": "string",
+ "description": "HTML base HREF to use for the locale (defaults to the locale code)"
+ }
+ },
+ "additionalProperties": false
+ }
+ ]
+ }
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "target": {
+ "oneOf": [
+ {
+ "$comment": "Extendable target with custom builder",
+ "type": "object",
+ "properties": {
+ "builder": {
+ "type": "string",
+ "description": "The builder used for this package.",
+ "not": {
+ "enum": [
+ "@angular-devkit/build-angular:app-shell",
+ "@angular-devkit/build-angular:browser",
+ "@angular-devkit/build-angular:dev-server",
+ "@angular-devkit/build-angular:extract-i18n",
+ "@angular-devkit/build-angular:karma",
+ "@angular-devkit/build-angular:protractor",
+ "@angular-devkit/build-angular:server",
+ "@angular-devkit/build-angular:ng-packagr"
+ ]
+ }
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "type": "object"
+ },
+ "configurations": {
+ "type": "object",
+ "description": "A map of alternative target options.",
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "builder"
+ ]
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "builder": {
+ "const": "@angular-devkit/build-angular:app-shell"
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersAppShellSchema"
+ },
+ "configurations": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersAppShellSchema"
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "builder": {
+ "const": "@angular-devkit/build-angular:browser"
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema"
+ },
+ "configurations": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema"
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "builder": {
+ "const": "@angular-devkit/build-angular:dev-server"
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersDevServerSchema"
+ },
+ "configurations": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersDevServerSchema"
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "builder": {
+ "const": "@angular-devkit/build-angular:extract-i18n"
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersExtractI18nSchema"
+ },
+ "configurations": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersExtractI18nSchema"
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "builder": {
+ "const": "@angular-devkit/build-angular:karma"
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersKarmaSchema"
+ },
+ "configurations": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersKarmaSchema"
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "builder": {
+ "const": "@angular-devkit/build-angular:protractor"
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersProtractorSchema"
+ },
+ "configurations": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersProtractorSchema"
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "builder": {
+ "const": "@angular-devkit/build-angular:server"
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersServerSchema"
+ },
+ "configurations": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersServerSchema"
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "builder": {
+ "const": "@angular-devkit/build-angular:ng-packagr"
+ },
+ "defaultConfiguration": {
+ "type": "string",
+ "description": "A default named configuration to use when a target configuration is not provided."
+ },
+ "options": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersNgPackagrSchema"
+ },
+ "configurations": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersNgPackagrSchema"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "global": {
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": "string",
+ "format": "uri"
+ },
+ "version": {
+ "$ref": "#/definitions/fileVersion"
+ },
+ "cli": {
+ "$ref": "#/definitions/cliOptions"
+ },
+ "schematics": {
+ "$ref": "#/definitions/schematicOptions"
+ }
+ },
+ "required": [
+ "version"
+ ]
+ },
+ "SchematicsAngularApplicationSchema": {
+ "title": "Angular Application Options Schema",
+ "type": "object",
+ "description": "Generates a new basic app definition in the \"projects\" subfolder of the workspace.",
+ "additionalProperties": false,
+ "properties": {
+ "projectRoot": {
+ "description": "The root directory of the new app.",
+ "type": "string",
+ "visible": false
+ },
+ "name": {
+ "description": "The name of the new app.",
+ "type": "string",
+ "pattern": "^(?:@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*/)?[a-zA-Z0-9-~][a-zA-Z0-9-._~]*$",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the application?"
+ },
+ "inlineStyle": {
+ "description": "Include styles inline in the root component.ts file. Only CSS styles can be included inline. Default is false, meaning that an external styles file is created and referenced in the root component.ts file.",
+ "type": "boolean",
+ "alias": "s",
+ "x-user-analytics": 9
+ },
+ "inlineTemplate": {
+ "description": "Include template inline in the root component.ts file. Default is false, meaning that an external template file is created and referenced in the root component.ts file. ",
+ "type": "boolean",
+ "alias": "t",
+ "x-user-analytics": 10
+ },
+ "viewEncapsulation": {
+ "description": "The view encapsulation strategy to use in the new application.",
+ "enum": [
+ "Emulated",
+ "None",
+ "ShadowDom"
+ ],
+ "type": "string",
+ "x-user-analytics": 11
+ },
+ "routing": {
+ "type": "boolean",
+ "description": "Create a routing NgModule.",
+ "default": false,
+ "x-prompt": "Would you like to add Angular routing?",
+ "x-user-analytics": 17
+ },
+ "prefix": {
+ "type": "string",
+ "format": "html-selector",
+ "description": "A prefix to apply to generated selectors.",
+ "default": "app",
+ "alias": "p"
+ },
+ "style": {
+ "description": "The file extension or preprocessor to use for style files.",
+ "type": "string",
+ "default": "css",
+ "enum": [
+ "css",
+ "scss",
+ "sass",
+ "less"
+ ],
+ "x-prompt": {
+ "message": "Which stylesheet format would you like to use?",
+ "type": "list",
+ "items": [
+ {
+ "value": "css",
+ "label": "CSS"
+ },
+ {
+ "value": "scss",
+ "label": "SCSS [ https://sass-lang.com/documentation/syntax#scss ]"
+ },
+ {
+ "value": "sass",
+ "label": "Sass [ https://sass-lang.com/documentation/syntax#the-indented-syntax ]"
+ },
+ {
+ "value": "less",
+ "label": "Less [ http://lesscss.org ]"
+ }
+ ]
+ },
+ "x-user-analytics": 5
+ },
+ "skipTests": {
+ "description": "Do not create \"spec.ts\" test files for the application.",
+ "type": "boolean",
+ "default": false,
+ "alias": "S",
+ "x-user-analytics": 12
+ },
+ "skipPackageJson": {
+ "type": "boolean",
+ "default": false,
+ "description": "Do not add dependencies to the \"package.json\" file."
+ },
+ "minimal": {
+ "description": "Create a bare-bones project without any testing frameworks. (Use for learning purposes only.)",
+ "type": "boolean",
+ "default": false,
+ "x-user-analytics": 14
+ },
+ "skipInstall": {
+ "description": "Skip installing dependency packages.",
+ "type": "boolean",
+ "default": false
+ },
+ "strict": {
+ "description": "Creates an application with stricter bundle budgets settings.",
+ "type": "boolean",
+ "default": true,
+ "x-user-analytics": 7
+ }
+ }
+ },
+ "SchematicsAngularClassSchema": {
+ "title": "Angular Class Options Schema",
+ "type": "object",
+ "description": "Creates a new, generic class definition in the given or default project.",
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the new class.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the class?"
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the class, relative to the workspace root.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "skipTests": {
+ "type": "boolean",
+ "description": "Do not create \"spec.ts\" test files for the new class.",
+ "default": false,
+ "x-user-analytics": 12
+ },
+ "type": {
+ "type": "string",
+ "description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\".",
+ "default": ""
+ }
+ }
+ },
+ "SchematicsAngularComponentSchema": {
+ "title": "Angular Component Options Schema",
+ "type": "object",
+ "description": "Creates a new, generic component definition in the given or default project.",
+ "additionalProperties": false,
+ "properties": {
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the component file, relative to the current workspace. Default is a folder with the same name as the component in the project root.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the component.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the component?"
+ },
+ "displayBlock": {
+ "description": "Specifies if the style will contain `:host { display: block; }`.",
+ "type": "boolean",
+ "default": false,
+ "alias": "b"
+ },
+ "inlineStyle": {
+ "description": "Include styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file.",
+ "type": "boolean",
+ "default": false,
+ "alias": "s",
+ "x-user-analytics": 9
+ },
+ "inlineTemplate": {
+ "description": "Include template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file.",
+ "type": "boolean",
+ "default": false,
+ "alias": "t",
+ "x-user-analytics": 10
+ },
+ "viewEncapsulation": {
+ "description": "The view encapsulation strategy to use in the new component.",
+ "enum": [
+ "Emulated",
+ "None",
+ "ShadowDom"
+ ],
+ "type": "string",
+ "alias": "v",
+ "x-user-analytics": 11
+ },
+ "changeDetection": {
+ "description": "The change detection strategy to use in the new component.",
+ "enum": [
+ "Default",
+ "OnPush"
+ ],
+ "type": "string",
+ "default": "Default",
+ "alias": "c"
+ },
+ "prefix": {
+ "type": "string",
+ "description": "The prefix to apply to the generated component selector.",
+ "alias": "p",
+ "oneOf": [
+ {
+ "maxLength": 0
+ },
+ {
+ "minLength": 1,
+ "format": "html-selector"
+ }
+ ]
+ },
+ "style": {
+ "description": "The file extension or preprocessor to use for style files, or 'none' to skip generating the style file.",
+ "type": "string",
+ "default": "css",
+ "enum": [
+ "css",
+ "scss",
+ "sass",
+ "less",
+ "none"
+ ],
+ "x-user-analytics": 5
+ },
+ "type": {
+ "type": "string",
+ "description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\".",
+ "default": "Component"
+ },
+ "skipTests": {
+ "type": "boolean",
+ "description": "Do not create \"spec.ts\" test files for the new component.",
+ "default": false,
+ "x-user-analytics": 12
+ },
+ "flat": {
+ "type": "boolean",
+ "description": "Create the new files at the top level of the current project.",
+ "default": false
+ },
+ "skipImport": {
+ "type": "boolean",
+ "description": "Do not import this component into the owning NgModule.",
+ "default": false,
+ "x-user-analytics": 18
+ },
+ "selector": {
+ "type": "string",
+ "format": "html-selector",
+ "description": "The HTML selector to use for this component."
+ },
+ "skipSelector": {
+ "type": "boolean",
+ "default": false,
+ "description": "Specifies if the component should have a selector or not."
+ },
+ "module": {
+ "type": "string",
+ "description": "The declaring NgModule.",
+ "alias": "m"
+ },
+ "export": {
+ "type": "boolean",
+ "default": false,
+ "description": "The declaring NgModule exports this component.",
+ "x-user-analytics": 19
+ }
+ }
+ },
+ "SchematicsAngularDirectiveSchema": {
+ "title": "Angular Directive Options Schema",
+ "type": "object",
+ "description": "Creates a new, generic directive definition in the given or default project.",
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the new directive.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the directive?"
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the interface that defines the directive, relative to the workspace root.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "prefix": {
+ "type": "string",
+ "description": "A prefix to apply to generated selectors.",
+ "alias": "p",
+ "oneOf": [
+ {
+ "maxLength": 0
+ },
+ {
+ "minLength": 1,
+ "format": "html-selector"
+ }
+ ]
+ },
+ "skipTests": {
+ "type": "boolean",
+ "description": "Do not create \"spec.ts\" test files for the new class.",
+ "default": false,
+ "x-user-analytics": 12
+ },
+ "skipImport": {
+ "type": "boolean",
+ "description": "Do not import this directive into the owning NgModule.",
+ "default": false,
+ "x-user-analytics": 18
+ },
+ "selector": {
+ "type": "string",
+ "format": "html-selector",
+ "description": "The HTML selector to use for this directive."
+ },
+ "flat": {
+ "type": "boolean",
+ "description": "When true (the default), creates the new files at the top level of the current project.",
+ "default": true
+ },
+ "module": {
+ "type": "string",
+ "description": "The declaring NgModule.",
+ "alias": "m"
+ },
+ "export": {
+ "type": "boolean",
+ "default": false,
+ "description": "The declaring NgModule exports this directive.",
+ "x-user-analytics": 19
+ }
+ }
+ },
+ "SchematicsAngularEnumSchema": {
+ "title": "Angular Enum Options Schema",
+ "type": "object",
+ "description": "Generates a new, generic enum definition for the given or default project.",
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the enum.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the enum?"
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the enum definition, relative to the current workspace.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project in which to create the enum. Default is the configured default project for the workspace.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\"."
+ }
+ }
+ },
+ "SchematicsAngularGuardSchema": {
+ "title": "Angular Guard Options Schema",
+ "type": "object",
+ "description": "Generates a new, generic route guard definition in the given or default project.",
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the new route guard.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the guard?"
+ },
+ "skipTests": {
+ "type": "boolean",
+ "description": "Do not create \"spec.ts\" test files for the new guard.",
+ "default": false,
+ "x-user-analytics": 12
+ },
+ "flat": {
+ "type": "boolean",
+ "description": "When true (the default), creates the new files at the top level of the current project.",
+ "default": true
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the interface that defines the guard, relative to the current workspace.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "implements": {
+ "type": "array",
+ "description": "Specifies which interfaces to implement.",
+ "uniqueItems": true,
+ "minItems": 1,
+ "items": {
+ "enum": [
+ "CanActivate",
+ "CanActivateChild",
+ "CanDeactivate",
+ "CanLoad"
+ ],
+ "type": "string"
+ },
+ "default": [
+ "CanActivate"
+ ],
+ "x-prompt": "Which interfaces would you like to implement?"
+ }
+ }
+ },
+ "SchematicsAngularInterceptorSchema": {
+ "title": "Angular Interceptor Options Schema",
+ "type": "object",
+ "additionalProperties": false,
+ "description": "Creates a new, generic interceptor definition in the given or default project.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the interceptor.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the interceptor?"
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the interceptor, relative to the workspace root.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "flat": {
+ "type": "boolean",
+ "default": true,
+ "description": "When true (the default), creates files at the top level of the project."
+ },
+ "skipTests": {
+ "type": "boolean",
+ "description": "Do not create \"spec.ts\" test files for the new interceptor.",
+ "default": false,
+ "x-user-analytics": 12
+ }
+ }
+ },
+ "SchematicsAngularInterfaceSchema": {
+ "title": "Angular Interface Options Schema",
+ "type": "object",
+ "additionalProperties": false,
+ "description": "Creates a new, generic interface definition in the given or default project.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the interface.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the interface?"
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the interface, relative to the workspace root.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "prefix": {
+ "type": "string",
+ "default": "",
+ "description": "A prefix to apply to generated selectors."
+ },
+ "type": {
+ "type": "string",
+ "description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\".",
+ "$default": {
+ "$source": "argv",
+ "index": 1
+ }
+ }
+ }
+ },
+ "SchematicsAngularLibrarySchema": {
+ "title": "Library Options Schema",
+ "type": "object",
+ "description": "Creates a new, generic library project in the current workspace.",
+ "long-description": "./library-long.md",
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the library.",
+ "pattern": "^(?:@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*/)?[a-zA-Z0-9-~][a-zA-Z0-9-._~]*$",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the library?"
+ },
+ "entryFile": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the library's public API file, relative to the workspace root.",
+ "default": "public-api"
+ },
+ "prefix": {
+ "type": "string",
+ "format": "html-selector",
+ "description": "A prefix to apply to generated selectors.",
+ "default": "lib",
+ "alias": "p"
+ },
+ "skipPackageJson": {
+ "type": "boolean",
+ "default": false,
+ "description": "Do not add dependencies to the \"package.json\" file. "
+ },
+ "skipInstall": {
+ "description": "Do not install dependency packages.",
+ "type": "boolean",
+ "default": false
+ },
+ "skipTsConfig": {
+ "type": "boolean",
+ "default": false,
+ "description": "Do not update \"tsconfig.json\" to add a path mapping for the new library. The path mapping is needed to use the library in an app, but can be disabled here to simplify development."
+ }
+ }
+ },
+ "SchematicsAngularPipeSchema": {
+ "title": "Angular Pipe Options Schema",
+ "type": "object",
+ "additionalProperties": false,
+ "description": "Creates a new, generic pipe definition in the given or default project.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the pipe.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the pipe?"
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the pipe, relative to the workspace root.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "flat": {
+ "type": "boolean",
+ "default": true,
+ "description": "When true (the default) creates files at the top level of the project."
+ },
+ "skipTests": {
+ "type": "boolean",
+ "description": "Do not create \"spec.ts\" test files for the new pipe.",
+ "default": false,
+ "x-user-analytics": 12
+ },
+ "skipImport": {
+ "type": "boolean",
+ "default": false,
+ "description": "Do not import this pipe into the owning NgModule.",
+ "x-user-analytics": 18
+ },
+ "module": {
+ "type": "string",
+ "description": "The declaring NgModule.",
+ "alias": "m"
+ },
+ "export": {
+ "type": "boolean",
+ "default": false,
+ "description": "The declaring NgModule exports this pipe.",
+ "x-user-analytics": 19
+ }
+ }
+ },
+ "SchematicsAngularNgNewSchema": {
+ "title": "Angular Ng New Options Schema",
+ "type": "object",
+ "description": "Creates a new project by combining the workspace and application schematics.",
+ "additionalProperties": false,
+ "properties": {
+ "directory": {
+ "type": "string",
+ "description": "The directory name to create the workspace in."
+ },
+ "name": {
+ "description": "The name of the new workspace and initial project.",
+ "type": "string",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the new workspace and initial project?"
+ },
+ "skipInstall": {
+ "description": "Do not install dependency packages.",
+ "type": "boolean",
+ "default": false
+ },
+ "linkCli": {
+ "description": "Link the CLI to the global version (internal development only).",
+ "type": "boolean",
+ "default": false,
+ "visible": false
+ },
+ "skipGit": {
+ "description": "Do not initialize a git repository.",
+ "type": "boolean",
+ "default": false,
+ "alias": "g"
+ },
+ "commit": {
+ "description": "Initial git repository commit information.",
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "default": true
+ },
+ "newProjectRoot": {
+ "description": "The path where new projects will be created, relative to the new workspace root.",
+ "type": "string",
+ "default": "projects"
+ },
+ "inlineStyle": {
+ "description": "Include styles inline in the component TS file. By default, an external styles file is created and referenced in the component TypeScript file.",
+ "type": "boolean",
+ "alias": "s",
+ "x-user-analytics": 9
+ },
+ "inlineTemplate": {
+ "description": "Include template inline in the component TS file. By default, an external template file is created and referenced in the component TypeScript file.",
+ "type": "boolean",
+ "alias": "t",
+ "x-user-analytics": 10
+ },
+ "viewEncapsulation": {
+ "description": "The view encapsulation strategy to use in the initial project.",
+ "enum": [
+ "Emulated",
+ "None",
+ "ShadowDom"
+ ],
+ "type": "string",
+ "x-user-analytics": 11
+ },
+ "version": {
+ "type": "string",
+ "description": "The version of the Angular CLI to use.",
+ "visible": false,
+ "$default": {
+ "$source": "ng-cli-version"
+ }
+ },
+ "routing": {
+ "type": "boolean",
+ "description": "Generate a routing module for the initial project.",
+ "x-user-analytics": 17
+ },
+ "prefix": {
+ "type": "string",
+ "format": "html-selector",
+ "description": "The prefix to apply to generated selectors for the initial project.",
+ "minLength": 1,
+ "default": "app",
+ "alias": "p"
+ },
+ "style": {
+ "description": "The file extension or preprocessor to use for style files.",
+ "type": "string",
+ "enum": [
+ "css",
+ "scss",
+ "sass",
+ "less"
+ ],
+ "x-user-analytics": 5
+ },
+ "skipTests": {
+ "description": "Do not generate \"spec.ts\" test files for the new project.",
+ "type": "boolean",
+ "default": false,
+ "alias": "S",
+ "x-user-analytics": 12
+ },
+ "createApplication": {
+ "description": "Create a new initial application project in the 'src' folder of the new workspace. When false, creates an empty workspace with no initial application. You can then use the generate application command so that all applications are created in the projects folder.",
+ "type": "boolean",
+ "default": true
+ },
+ "minimal": {
+ "description": "Create a workspace without any testing frameworks. (Use for learning purposes only.)",
+ "type": "boolean",
+ "default": false,
+ "x-user-analytics": 14
+ },
+ "strict": {
+ "description": "Creates a workspace with stricter type checking and stricter bundle budgets settings. This setting helps improve maintainability and catch bugs ahead of time. For more information, see https://angular.io/guide/strict-mode",
+ "type": "boolean",
+ "default": true,
+ "x-user-analytics": 7
+ },
+ "packageManager": {
+ "description": "The package manager used to install dependencies.",
+ "type": "string",
+ "enum": [
+ "npm",
+ "yarn",
+ "pnpm",
+ "cnpm"
+ ]
+ }
+ }
+ },
+ "SchematicsAngularResolverSchema": {
+ "title": "Angular resolver Options Schema",
+ "type": "object",
+ "additionalProperties": false,
+ "description": "Generates a new, generic resolver definition in the given or default project.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the new resolver.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the resolver?"
+ },
+ "skipTests": {
+ "type": "boolean",
+ "description": "Do not create \"spec.ts\" test files for the new resolver.",
+ "default": false,
+ "x-user-analytics": 12
+ },
+ "flat": {
+ "type": "boolean",
+ "description": "When true (the default), creates the new files at the top level of the current project.",
+ "default": true
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the interface that defines the resolver, relative to the current workspace.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ }
+ }
+ },
+ "SchematicsAngularServiceSchema": {
+ "title": "Angular Service Options Schema",
+ "type": "object",
+ "additionalProperties": false,
+ "description": "Creates a new, generic service definition in the given or default project.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the service.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the service?"
+ },
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the service, relative to the workspace root.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "flat": {
+ "type": "boolean",
+ "default": true,
+ "description": "When true (the default), creates files at the top level of the project."
+ },
+ "skipTests": {
+ "type": "boolean",
+ "description": "Do not create \"spec.ts\" test files for the new service.",
+ "default": false,
+ "x-user-analytics": 12
+ }
+ }
+ },
+ "SchematicsAngularWebWorkerSchema": {
+ "title": "Angular Web Worker Options Schema",
+ "type": "object",
+ "additionalProperties": false,
+ "description": "Creates a new, generic web worker definition in the given or default project.",
+ "properties": {
+ "path": {
+ "type": "string",
+ "format": "path",
+ "description": "The path at which to create the worker file, relative to the current workspace.",
+ "visible": false
+ },
+ "project": {
+ "type": "string",
+ "description": "The name of the project.",
+ "$default": {
+ "$source": "projectName"
+ }
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the worker.",
+ "$default": {
+ "$source": "argv",
+ "index": 0
+ },
+ "x-prompt": "What name would you like to use for the worker?"
+ },
+ "snippet": {
+ "type": "boolean",
+ "default": true,
+ "description": "Add a worker creation snippet in a sibling file of the same name."
+ }
+ }
+ },
+ "AngularDevkitBuildAngularBuildersAppShellSchema": {
+ "title": "App Shell Target",
+ "description": "App Shell target options for Build Facade.",
+ "type": "object",
+ "properties": {
+ "browserTarget": {
+ "type": "string",
+ "description": "A browser builder target use for rendering the app shell in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
+ "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
+ },
+ "serverTarget": {
+ "type": "string",
+ "description": "A server builder target use for rendering the app shell in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
+ "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
+ },
+ "appModuleBundle": {
+ "type": "string",
+ "description": "Script that exports the Server AppModule to render. This should be the main JavaScript outputted by the server target. By default we will resolve the outputPath of the serverTarget and find a bundle named 'main' in it (whether or not there's a hash tag)."
+ },
+ "route": {
+ "type": "string",
+ "description": "The route to render.",
+ "default": "/"
+ },
+ "inputIndexPath": {
+ "type": "string",
+ "description": "The input path for the index.html file. By default uses the output index.html of the browser target."
+ },
+ "outputIndexPath": {
+ "type": "string",
+ "description": "The output path of the index.html file. By default will overwrite the input file."
+ }
+ },
+ "additionalProperties": false
+ },
+ "AngularDevkitBuildAngularBuildersBrowserSchema": {
+ "title": "Webpack browser schema for Build Facade.",
+ "description": "Browser target options",
+ "type": "object",
+ "properties": {
+ "assets": {
+ "type": "array",
+ "description": "List of static application assets.",
+ "default": [],
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema/definitions/assetPattern"
+ }
+ },
+ "main": {
+ "type": "string",
+ "description": "The full path for the main entry point to the app, relative to the current workspace."
+ },
+ "polyfills": {
+ "type": "string",
+ "description": "The full path for the polyfills file, relative to the current workspace."
+ },
+ "tsConfig": {
+ "type": "string",
+ "description": "The full path for the TypeScript configuration file, relative to the current workspace."
+ },
+ "scripts": {
+ "description": "Global scripts to be included in the build.",
+ "type": "array",
+ "default": [],
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema/definitions/extraEntryPoint"
+ }
+ },
+ "styles": {
+ "description": "Global styles to be included in the build.",
+ "type": "array",
+ "default": [],
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema/definitions/extraEntryPoint"
+ }
+ },
+ "inlineStyleLanguage": {
+ "description": "The stylesheet language to use for the application's inline component styles.",
+ "type": "string",
+ "default": "css",
+ "enum": [
+ "css",
+ "less",
+ "sass",
+ "scss"
+ ]
+ },
+ "stylePreprocessorOptions": {
+ "description": "Options to pass to style preprocessors.",
+ "type": "object",
+ "properties": {
+ "includePaths": {
+ "description": "Paths to include. Paths will be resolved to workspace root.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false
+ },
+ "optimization": {
+ "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.",
+ "x-user-analytics": 16,
+ "default": true,
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "scripts": {
+ "type": "boolean",
+ "description": "Enables optimization of the scripts output.",
+ "default": true
+ },
+ "styles": {
+ "description": "Enables optimization of the styles output.",
+ "default": true,
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "minify": {
+ "type": "boolean",
+ "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.",
+ "default": true
+ },
+ "inlineCritical": {
+ "type": "boolean",
+ "description": "Extract and inline critical CSS definitions to improve first paint time.",
+ "default": true
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "fonts": {
+ "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.",
+ "default": true,
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "inline": {
+ "type": "boolean",
+ "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.",
+ "default": true
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "fileReplacements": {
+ "description": "Replace compilation source files with other compilation source files in the build.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema/definitions/fileReplacement"
+ },
+ "default": []
+ },
+ "outputPath": {
+ "type": "string",
+ "description": "The full path for the new output directory, relative to the current workspace.\n\nBy default, writes output to a folder named dist/ in the current project."
+ },
+ "resourcesOutputPath": {
+ "type": "string",
+ "description": "The path where style resources will be placed, relative to outputPath.",
+ "default": ""
+ },
+ "aot": {
+ "type": "boolean",
+ "description": "Build using Ahead of Time compilation.",
+ "x-user-analytics": 13,
+ "default": true
+ },
+ "sourceMap": {
+ "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.",
+ "default": false,
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "scripts": {
+ "type": "boolean",
+ "description": "Output source maps for all scripts.",
+ "default": true
+ },
+ "styles": {
+ "type": "boolean",
+ "description": "Output source maps for all styles.",
+ "default": true
+ },
+ "hidden": {
+ "type": "boolean",
+ "description": "Output source maps used for error reporting tools.",
+ "default": false
+ },
+ "vendor": {
+ "type": "boolean",
+ "description": "Resolve vendor packages source maps.",
+ "default": false
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "vendorChunk": {
+ "type": "boolean",
+ "description": "Generate a seperate bundle containing only vendor libraries. This option should only used for development.",
+ "default": false
+ },
+ "commonChunk": {
+ "type": "boolean",
+ "description": "Generate a seperate bundle containing code used across multiple bundles.",
+ "default": true
+ },
+ "baseHref": {
+ "type": "string",
+ "description": "Base url for the application being built."
+ },
+ "deployUrl": {
+ "type": "string",
+ "description": "URL where files will be deployed.",
+ "x-deprecated": "Use \"baseHref\" option, \"APP_BASE_HREF\" DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url."
+ },
+ "verbose": {
+ "type": "boolean",
+ "description": "Adds more details to output logging.",
+ "default": false
+ },
+ "progress": {
+ "type": "boolean",
+ "description": "Log progress to the console while building.",
+ "default": true
+ },
+ "i18nMissingTranslation": {
+ "type": "string",
+ "description": "How to handle missing translations for i18n.",
+ "enum": [
+ "warning",
+ "error",
+ "ignore"
+ ],
+ "default": "warning"
+ },
+ "i18nDuplicateTranslation": {
+ "type": "string",
+ "description": "How to handle duplicate translations for i18n.",
+ "enum": [
+ "warning",
+ "error",
+ "ignore"
+ ],
+ "default": "warning"
+ },
+ "localize": {
+ "description": "Translate the bundles in one or more locales.",
+ "oneOf": [
+ {
+ "type": "boolean",
+ "description": "Translate all locales."
+ },
+ {
+ "type": "array",
+ "description": "List of locales ID's to translate.",
+ "minItems": 1,
+ "items": {
+ "type": "string",
+ "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
+ }
+ }
+ ]
+ },
+ "watch": {
+ "type": "boolean",
+ "description": "Run build when files change.",
+ "default": false
+ },
+ "outputHashing": {
+ "type": "string",
+ "description": "Define the output filename cache-busting hashing mode.",
+ "default": "none",
+ "enum": [
+ "none",
+ "all",
+ "media",
+ "bundles"
+ ]
+ },
+ "poll": {
+ "type": "number",
+ "description": "Enable and define the file watching poll time period in milliseconds."
+ },
+ "deleteOutputPath": {
+ "type": "boolean",
+ "description": "Delete the output path before building.",
+ "default": true
+ },
+ "preserveSymlinks": {
+ "type": "boolean",
+ "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
+ },
+ "extractLicenses": {
+ "type": "boolean",
+ "description": "Extract all licenses in a separate file.",
+ "default": true
+ },
+ "showCircularDependencies": {
+ "type": "boolean",
+ "description": "Show circular dependency warnings on builds.",
+ "default": false,
+ "x-deprecated": "The recommended method to detect circular dependencies in project code is to use either a lint rule or other external tooling."
+ },
+ "buildOptimizer": {
+ "type": "boolean",
+ "description": "Enables '@angular-devkit/build-optimizer' optimizations when using the 'aot' option.",
+ "default": true
+ },
+ "namedChunks": {
+ "type": "boolean",
+ "description": "Use file name for lazy loaded chunks.",
+ "default": false
+ },
+ "subresourceIntegrity": {
+ "type": "boolean",
+ "description": "Enables the use of subresource integrity validation.",
+ "default": false
+ },
+ "serviceWorker": {
+ "type": "boolean",
+ "description": "Generates a service worker config for production builds.",
+ "default": false
+ },
+ "ngswConfigPath": {
+ "type": "string",
+ "description": "Path to ngsw-config.json."
+ },
+ "index": {
+ "description": "Configures the generation of the application's HTML index.",
+ "oneOf": [
+ {
+ "type": "string",
+ "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path."
+ },
+ {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "input": {
+ "type": "string",
+ "minLength": 1,
+ "description": "The path of a file to use for the application's generated HTML index."
+ },
+ "output": {
+ "type": "string",
+ "minLength": 1,
+ "default": "index.html",
+ "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path."
+ }
+ }
+ }
+ ]
+ },
+ "statsJson": {
+ "type": "boolean",
+ "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.",
+ "default": false
+ },
+ "budgets": {
+ "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersBrowserSchema/definitions/budget"
+ },
+ "default": []
+ },
+ "webWorkerTsConfig": {
+ "type": "string",
+ "description": "TypeScript configuration for Web Worker modules."
+ },
+ "crossOrigin": {
+ "type": "string",
+ "description": "Define the crossorigin attribute setting of elements that provide CORS support.",
+ "default": "none",
+ "enum": [
+ "none",
+ "anonymous",
+ "use-credentials"
+ ]
+ },
+ "allowedCommonJsDependencies": {
+ "description": "A list of CommonJS packages that are allowed to be used without a build time warning.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false,
+ "definitions": {
+ "assetPattern": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "followSymlinks": {
+ "type": "boolean",
+ "default": false,
+ "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched."
+ },
+ "glob": {
+ "type": "string",
+ "description": "The pattern to match."
+ },
+ "input": {
+ "type": "string",
+ "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
+ },
+ "ignore": {
+ "description": "An array of globs to ignore.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "output": {
+ "type": "string",
+ "description": "Absolute path within the output."
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "fileReplacement": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "src": {
+ "type": "string",
+ "pattern": "\\.(([cm]?j|t)sx?|json)$"
+ },
+ "replaceWith": {
+ "type": "string",
+ "pattern": "\\.(([cm]?j|t)sx?|json)$"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "object",
+ "properties": {
+ "replace": {
+ "type": "string",
+ "pattern": "\\.(([cm]?j|t)sx?|json)$"
+ },
+ "with": {
+ "type": "string",
+ "pattern": "\\.(([cm]?j|t)sx?|json)$"
+ }
+ },
+ "additionalProperties": false
+ }
+ ]
+ },
+ "extraEntryPoint": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "input": {
+ "type": "string",
+ "description": "The file to include."
+ },
+ "bundleName": {
+ "type": "string",
+ "pattern": "^[\\w\\-.]*$",
+ "description": "The bundle name for this extra entry point."
+ },
+ "inject": {
+ "type": "boolean",
+ "description": "If the bundle will be referenced in the HTML file.",
+ "default": true
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "string",
+ "description": "The file to include."
+ }
+ ]
+ },
+ "budget": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "The type of budget.",
+ "enum": [
+ "all",
+ "allScript",
+ "any",
+ "anyScript",
+ "anyComponentStyle",
+ "bundle",
+ "initial"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the bundle."
+ },
+ "baseline": {
+ "type": "string",
+ "description": "The baseline size for comparison."
+ },
+ "maximumWarning": {
+ "type": "string",
+ "description": "The maximum threshold for warning relative to the baseline."
+ },
+ "maximumError": {
+ "type": "string",
+ "description": "The maximum threshold for error relative to the baseline."
+ },
+ "minimumWarning": {
+ "type": "string",
+ "description": "The minimum threshold for warning relative to the baseline."
+ },
+ "minimumError": {
+ "type": "string",
+ "description": "The minimum threshold for error relative to the baseline."
+ },
+ "warning": {
+ "type": "string",
+ "description": "The threshold for warning relative to the baseline (min & max)."
+ },
+ "error": {
+ "type": "string",
+ "description": "The threshold for error relative to the baseline (min & max)."
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "AngularDevkitBuildAngularBuildersDevServerSchema": {
+ "title": "Dev Server Target",
+ "description": "Dev Server target options for Build Facade.",
+ "type": "object",
+ "properties": {
+ "browserTarget": {
+ "type": "string",
+ "description": "A browser builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
+ "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
+ },
+ "port": {
+ "type": "number",
+ "description": "Port to listen on.",
+ "default": 4200
+ },
+ "host": {
+ "type": "string",
+ "description": "Host to listen on.",
+ "default": "localhost"
+ },
+ "proxyConfig": {
+ "type": "string",
+ "description": "Proxy configuration file. For more information, see https://angular.io/guide/build#proxying-to-a-backend-server."
+ },
+ "ssl": {
+ "type": "boolean",
+ "description": "Serve using HTTPS.",
+ "default": false
+ },
+ "sslKey": {
+ "type": "string",
+ "description": "SSL key to use for serving HTTPS."
+ },
+ "sslCert": {
+ "type": "string",
+ "description": "SSL certificate to use for serving HTTPS."
+ },
+ "headers": {
+ "type": "object",
+ "description": "Custom HTTP headers to be added to all responses.",
+ "propertyNames": {
+ "pattern": "^[-_A-Za-z0-9]+$"
+ },
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "open": {
+ "type": "boolean",
+ "description": "Opens the url in default browser.",
+ "default": false,
+ "alias": "o"
+ },
+ "verbose": {
+ "type": "boolean",
+ "description": "Adds more details to output logging."
+ },
+ "liveReload": {
+ "type": "boolean",
+ "description": "Whether to reload the page on change, using live-reload.",
+ "default": true
+ },
+ "publicHost": {
+ "type": "string",
+ "description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies."
+ },
+ "allowedHosts": {
+ "type": "array",
+ "description": "List of hosts that are allowed to access the dev server.",
+ "default": [],
+ "items": {
+ "type": "string"
+ }
+ },
+ "servePath": {
+ "type": "string",
+ "description": "The pathname where the app will be served."
+ },
+ "disableHostCheck": {
+ "type": "boolean",
+ "description": "Don't verify connected clients are part of allowed hosts.",
+ "default": false
+ },
+ "hmr": {
+ "type": "boolean",
+ "description": "Enable hot module replacement.",
+ "default": false
+ },
+ "watch": {
+ "type": "boolean",
+ "description": "Rebuild on change.",
+ "default": true
+ },
+ "poll": {
+ "type": "number",
+ "description": "Enable and define the file watching poll time period in milliseconds."
+ }
+ },
+ "additionalProperties": false
+ },
+ "AngularDevkitBuildAngularBuildersExtractI18nSchema": {
+ "title": "Extract i18n Target",
+ "description": "Extract i18n target options for Build Facade.",
+ "type": "object",
+ "properties": {
+ "browserTarget": {
+ "type": "string",
+ "description": "A browser builder target to extract i18n messages in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
+ "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
+ },
+ "format": {
+ "type": "string",
+ "description": "Output format for the generated file.",
+ "default": "xlf",
+ "enum": [
+ "xmb",
+ "xlf",
+ "xlif",
+ "xliff",
+ "xlf2",
+ "xliff2",
+ "json",
+ "arb",
+ "legacy-migrate"
+ ]
+ },
+ "progress": {
+ "type": "boolean",
+ "description": "Log progress to the console.",
+ "default": true
+ },
+ "outputPath": {
+ "type": "string",
+ "description": "Path where output will be placed."
+ },
+ "outFile": {
+ "type": "string",
+ "description": "Name of the file to output."
+ }
+ },
+ "additionalProperties": false
+ },
+ "AngularDevkitBuildAngularBuildersKarmaSchema": {
+ "title": "Karma Target",
+ "description": "Karma target options for Build Facade.",
+ "type": "object",
+ "properties": {
+ "main": {
+ "type": "string",
+ "description": "The name of the main entry-point file."
+ },
+ "tsConfig": {
+ "type": "string",
+ "description": "The name of the TypeScript configuration file."
+ },
+ "karmaConfig": {
+ "type": "string",
+ "description": "The name of the Karma configuration file."
+ },
+ "polyfills": {
+ "type": "string",
+ "description": "The name of the polyfills file."
+ },
+ "assets": {
+ "type": "array",
+ "description": "List of static application assets.",
+ "default": [],
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersKarmaSchema/definitions/assetPattern"
+ }
+ },
+ "scripts": {
+ "description": "Global scripts to be included in the build.",
+ "type": "array",
+ "default": [],
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersKarmaSchema/definitions/extraEntryPoint"
+ }
+ },
+ "styles": {
+ "description": "Global styles to be included in the build.",
+ "type": "array",
+ "default": [],
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersKarmaSchema/definitions/extraEntryPoint"
+ }
+ },
+ "inlineStyleLanguage": {
+ "description": "The stylesheet language to use for the application's inline component styles.",
+ "type": "string",
+ "default": "css",
+ "enum": [
+ "css",
+ "less",
+ "sass",
+ "scss"
+ ]
+ },
+ "stylePreprocessorOptions": {
+ "description": "Options to pass to style preprocessors",
+ "type": "object",
+ "properties": {
+ "includePaths": {
+ "description": "Paths to include. Paths will be resolved to workspace root.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Globs of files to include, relative to workspace or project root. \nThere are 2 special cases:\n - when a path to directory is provided, all spec files ending \".spec.@(ts|tsx)\" will be included\n - when a path to a file is provided, and a matching spec file exists it will be included instead."
+ },
+ "sourceMap": {
+ "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.",
+ "default": true,
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "scripts": {
+ "type": "boolean",
+ "description": "Output source maps for all scripts.",
+ "default": true
+ },
+ "styles": {
+ "type": "boolean",
+ "description": "Output source maps for all styles.",
+ "default": true
+ },
+ "vendor": {
+ "type": "boolean",
+ "description": "Resolve vendor packages source maps.",
+ "default": false
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "progress": {
+ "type": "boolean",
+ "description": "Log progress to the console while building.",
+ "default": true
+ },
+ "watch": {
+ "type": "boolean",
+ "description": "Run build when files change."
+ },
+ "poll": {
+ "type": "number",
+ "description": "Enable and define the file watching poll time period in milliseconds."
+ },
+ "preserveSymlinks": {
+ "type": "boolean",
+ "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
+ },
+ "browsers": {
+ "type": "string",
+ "description": "Override which browsers tests are run against."
+ },
+ "codeCoverage": {
+ "type": "boolean",
+ "description": "Output a code coverage report.",
+ "default": false
+ },
+ "codeCoverageExclude": {
+ "type": "array",
+ "description": "Globs to exclude from code coverage.",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "fileReplacements": {
+ "description": "Replace compilation source files with other compilation source files in the build.",
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "src": {
+ "type": "string"
+ },
+ "replaceWith": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "object",
+ "properties": {
+ "replace": {
+ "type": "string"
+ },
+ "with": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ ]
+ },
+ "default": []
+ },
+ "reporters": {
+ "type": "array",
+ "description": "Karma reporters to use. Directly passed to the karma runner.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "webWorkerTsConfig": {
+ "type": "string",
+ "description": "TypeScript configuration for Web Worker modules."
+ }
+ },
+ "additionalProperties": false,
+ "definitions": {
+ "assetPattern": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "glob": {
+ "type": "string",
+ "description": "The pattern to match."
+ },
+ "input": {
+ "type": "string",
+ "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
+ },
+ "output": {
+ "type": "string",
+ "description": "Absolute path within the output."
+ },
+ "ignore": {
+ "description": "An array of globs to ignore.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "extraEntryPoint": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "input": {
+ "type": "string",
+ "description": "The file to include."
+ },
+ "bundleName": {
+ "type": "string",
+ "pattern": "^[\\w\\-.]*$",
+ "description": "The bundle name for this extra entry point."
+ },
+ "inject": {
+ "type": "boolean",
+ "description": "If the bundle will be referenced in the HTML file.",
+ "default": true
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "string",
+ "description": "The file to include."
+ }
+ ]
+ }
+ }
+ },
+ "AngularDevkitBuildAngularBuildersProtractorSchema": {
+ "title": "Protractor Target",
+ "description": "Protractor target options for Build Facade.",
+ "type": "object",
+ "properties": {
+ "protractorConfig": {
+ "type": "string",
+ "description": "The name of the Protractor configuration file."
+ },
+ "devServerTarget": {
+ "type": "string",
+ "description": "A dev-server builder target to run tests against in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
+ "pattern": "^([^:\\s]+:[^:\\s]+(:[^\\s]+)?)?$"
+ },
+ "grep": {
+ "type": "string",
+ "description": "Execute specs whose names match the pattern, which is internally compiled to a RegExp."
+ },
+ "invertGrep": {
+ "type": "boolean",
+ "description": "Invert the selection specified by the 'grep' option.",
+ "default": false
+ },
+ "specs": {
+ "type": "array",
+ "description": "Override specs in the protractor config.",
+ "default": [],
+ "items": {
+ "type": "string",
+ "description": "Spec name."
+ }
+ },
+ "suite": {
+ "type": "string",
+ "description": "Override suite in the protractor config."
+ },
+ "webdriverUpdate": {
+ "type": "boolean",
+ "description": "Try to update webdriver.",
+ "default": true
+ },
+ "port": {
+ "type": "number",
+ "description": "The port to use to serve the application."
+ },
+ "host": {
+ "type": "string",
+ "description": "Host to listen on."
+ },
+ "baseUrl": {
+ "type": "string",
+ "description": "Base URL for protractor to connect to."
+ }
+ },
+ "additionalProperties": false
+ },
+ "AngularDevkitBuildAngularBuildersServerSchema": {
+ "title": "Universal Target",
+ "type": "object",
+ "properties": {
+ "main": {
+ "type": "string",
+ "description": "The name of the main entry-point file."
+ },
+ "tsConfig": {
+ "type": "string",
+ "default": "tsconfig.app.json",
+ "description": "The name of the TypeScript configuration file."
+ },
+ "inlineStyleLanguage": {
+ "description": "The stylesheet language to use for the application's inline component styles.",
+ "type": "string",
+ "default": "css",
+ "enum": [
+ "css",
+ "less",
+ "sass",
+ "scss"
+ ]
+ },
+ "stylePreprocessorOptions": {
+ "description": "Options to pass to style preprocessors",
+ "type": "object",
+ "properties": {
+ "includePaths": {
+ "description": "Paths to include. Paths will be resolved to workspace root.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false
+ },
+ "optimization": {
+ "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking and dead-code elimination. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.",
+ "x-user-analytics": 16,
+ "default": true,
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "scripts": {
+ "type": "boolean",
+ "description": "Enables optimization of the scripts output.",
+ "default": true
+ },
+ "styles": {
+ "type": "boolean",
+ "description": "Enables optimization of the styles output.",
+ "default": true
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "fileReplacements": {
+ "description": "Replace compilation source files with other compilation source files in the build.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AngularDevkitBuildAngularBuildersServerSchema/definitions/fileReplacement"
+ },
+ "default": []
+ },
+ "outputPath": {
+ "type": "string",
+ "description": "Path where output will be placed."
+ },
+ "resourcesOutputPath": {
+ "type": "string",
+ "description": "The path where style resources will be placed, relative to outputPath.",
+ "default": ""
+ },
+ "sourceMap": {
+ "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.",
+ "default": false,
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "scripts": {
+ "type": "boolean",
+ "description": "Output source maps for all scripts.",
+ "default": true
+ },
+ "styles": {
+ "type": "boolean",
+ "description": "Output source maps for all styles.",
+ "default": true
+ },
+ "hidden": {
+ "type": "boolean",
+ "description": "Output source maps used for error reporting tools.",
+ "default": false
+ },
+ "vendor": {
+ "type": "boolean",
+ "description": "Resolve vendor packages source maps.",
+ "default": false
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "deployUrl": {
+ "type": "string",
+ "description": "URL where files will be deployed.",
+ "x-deprecated": "Use \"baseHref\" browser builder option, \"APP_BASE_HREF\" DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url."
+ },
+ "verbose": {
+ "type": "boolean",
+ "description": "Adds more details to output logging.",
+ "default": false
+ },
+ "progress": {
+ "type": "boolean",
+ "description": "Log progress to the console while building.",
+ "default": true
+ },
+ "i18nMissingTranslation": {
+ "type": "string",
+ "description": "How to handle missing translations for i18n.",
+ "enum": [
+ "warning",
+ "error",
+ "ignore"
+ ],
+ "default": "warning"
+ },
+ "i18nDuplicateTranslation": {
+ "type": "string",
+ "description": "How to handle duplicate translations for i18n.",
+ "enum": [
+ "warning",
+ "error",
+ "ignore"
+ ],
+ "default": "warning"
+ },
+ "localize": {
+ "description": "Translate the bundles in one or more locales.",
+ "oneOf": [
+ {
+ "type": "boolean",
+ "description": "Translate all locales."
+ },
+ {
+ "type": "array",
+ "description": "List of locales ID's to translate.",
+ "minItems": 1,
+ "items": {
+ "type": "string",
+ "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
+ }
+ }
+ ]
+ },
+ "outputHashing": {
+ "type": "string",
+ "description": "Define the output filename cache-busting hashing mode.",
+ "default": "none",
+ "enum": [
+ "none",
+ "all",
+ "media",
+ "bundles"
+ ]
+ },
+ "deleteOutputPath": {
+ "type": "boolean",
+ "description": "Delete the output path before building.",
+ "default": true
+ },
+ "preserveSymlinks": {
+ "type": "boolean",
+ "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
+ },
+ "extractLicenses": {
+ "type": "boolean",
+ "description": "Extract all licenses in a separate file, in the case of production builds only.",
+ "default": true
+ },
+ "showCircularDependencies": {
+ "type": "boolean",
+ "description": "Show circular dependency warnings on builds.",
+ "default": false,
+ "x-deprecated": "The recommended method to detect circular dependencies in project code is to use either a lint rule or other external tooling."
+ },
+ "namedChunks": {
+ "type": "boolean",
+ "description": "Use file name for lazy loaded chunks.",
+ "default": false
+ },
+ "bundleDependencies": {
+ "description": "Which external dependencies to bundle into the bundle. By default, all of node_modules will be bundled.",
+ "default": true,
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "none",
+ "all"
+ ]
+ }
+ ]
+ },
+ "externalDependencies": {
+ "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "statsJson": {
+ "type": "boolean",
+ "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.",
+ "default": false
+ },
+ "watch": {
+ "type": "boolean",
+ "description": "Run build when files change.",
+ "default": false
+ },
+ "poll": {
+ "type": "number",
+ "description": "Enable and define the file watching poll time period in milliseconds."
+ }
+ },
+ "additionalProperties": false,
+ "definitions": {
+ "fileReplacement": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "src": {
+ "type": "string",
+ "pattern": "\\.(([cm]?j|t)sx?|json)$"
+ },
+ "replaceWith": {
+ "type": "string",
+ "pattern": "\\.(([cm]?j|t)sx?|json)$"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "object",
+ "properties": {
+ "replace": {
+ "type": "string",
+ "pattern": "\\.(([cm]?j|t)sx?|json)$"
+ },
+ "with": {
+ "type": "string",
+ "pattern": "\\.(([cm]?j|t)sx?|json)$"
+ }
+ },
+ "additionalProperties": false
+ }
+ ]
+ }
+ }
+ },
+ "AngularDevkitBuildAngularBuildersNgPackagrSchema": {
+ "title": "ng-packagr Target",
+ "description": "ng-packagr target options for Build Architect. Use to build library projects.",
+ "type": "object",
+ "properties": {
+ "project": {
+ "type": "string",
+ "description": "The file path for the ng-packagr configuration file, relative to the current workspace."
+ },
+ "tsConfig": {
+ "type": "string",
+ "description": "The full path for the TypeScript configuration file, relative to the current workspace."
+ },
+ "watch": {
+ "type": "boolean",
+ "description": "Run build when files change.",
+ "default": false
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+} \ No newline at end of file
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/workspace-schema.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/workspace-schema.d.ts
new file mode 100644
index 00000000..47f03d72
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/workspace-schema.d.ts
@@ -0,0 +1,710 @@
+export interface Schema {
+ $schema?: string;
+ cli?: CliOptions;
+ /**
+ * Default project name used in commands.
+ */
+ defaultProject?: string;
+ /**
+ * Path where new projects will be created.
+ */
+ newProjectRoot?: string;
+ projects?: Projects;
+ schematics?: SchematicOptions;
+ version: number;
+}
+export interface CliOptions {
+ /**
+ * Share anonymous usage data with the Angular Team at Google.
+ */
+ analytics?: Analytics;
+ analyticsSharing?: AnalyticsSharing;
+ /**
+ * Control disk cache.
+ */
+ cache?: Cache;
+ /**
+ * The default schematics collection to use.
+ */
+ defaultCollection?: string;
+ /**
+ * Specify which package manager tool to use.
+ */
+ packageManager?: PackageManager;
+ /**
+ * Control CLI specific console warnings
+ */
+ warnings?: Warnings;
+}
+/**
+ * Share anonymous usage data with the Angular Team at Google.
+ */
+export declare type Analytics = boolean | string;
+export interface AnalyticsSharing {
+ /**
+ * Analytics sharing info tracking ID.
+ */
+ tracking?: string;
+ /**
+ * Analytics sharing info universally unique identifier.
+ */
+ uuid?: string;
+}
+/**
+ * Control disk cache.
+ */
+export interface Cache {
+ /**
+ * Configure whether disk caching is enabled.
+ */
+ enabled?: boolean;
+ /**
+ * Configure in which environment disk cache is enabled.
+ */
+ environment?: Environment;
+ /**
+ * Cache base path.
+ */
+ path?: string;
+}
+/**
+ * Configure in which environment disk cache is enabled.
+ */
+export declare enum Environment {
+ All = "all",
+ Ci = "ci",
+ Local = "local"
+}
+/**
+ * Specify which package manager tool to use.
+ *
+ * The package manager used to install dependencies.
+ */
+export declare enum PackageManager {
+ Cnpm = "cnpm",
+ Npm = "npm",
+ Pnpm = "pnpm",
+ Yarn = "yarn"
+}
+/**
+ * Control CLI specific console warnings
+ */
+export interface Warnings {
+ /**
+ * Show a warning when the global version is newer than the local one.
+ */
+ versionMismatch?: boolean;
+}
+export interface Projects {
+}
+export interface SchematicOptions {
+ "@schematics/angular:application"?: AngularApplicationOptionsSchema;
+ "@schematics/angular:class"?: AngularClassOptionsSchema;
+ "@schematics/angular:component"?: AngularComponentOptionsSchema;
+ "@schematics/angular:directive"?: AngularDirectiveOptionsSchema;
+ "@schematics/angular:enum"?: AngularEnumOptionsSchema;
+ "@schematics/angular:guard"?: AngularGuardOptionsSchema;
+ "@schematics/angular:interceptor"?: AngularInterceptorOptionsSchema;
+ "@schematics/angular:interface"?: AngularInterfaceOptionsSchema;
+ "@schematics/angular:library"?: LibraryOptionsSchema;
+ "@schematics/angular:ng-new"?: AngularNgNewOptionsSchema;
+ "@schematics/angular:pipe"?: AngularPipeOptionsSchema;
+ "@schematics/angular:resolver"?: AngularResolverOptionsSchema;
+ "@schematics/angular:service"?: AngularServiceOptionsSchema;
+ "@schematics/angular:web-worker"?: AngularWebWorkerOptionsSchema;
+}
+/**
+ * Generates a new basic app definition in the "projects" subfolder of the workspace.
+ */
+export interface AngularApplicationOptionsSchema {
+ /**
+ * Include styles inline in the root component.ts file. Only CSS styles can be included
+ * inline. Default is false, meaning that an external styles file is created and referenced
+ * in the root component.ts file.
+ */
+ inlineStyle?: boolean;
+ /**
+ * Include template inline in the root component.ts file. Default is false, meaning that an
+ * external template file is created and referenced in the root component.ts file.
+ */
+ inlineTemplate?: boolean;
+ /**
+ * Create a bare-bones project without any testing frameworks. (Use for learning purposes
+ * only.)
+ */
+ minimal?: boolean;
+ /**
+ * The name of the new app.
+ */
+ name: string;
+ /**
+ * A prefix to apply to generated selectors.
+ */
+ prefix?: string;
+ /**
+ * The root directory of the new app.
+ */
+ projectRoot?: string;
+ /**
+ * Create a routing NgModule.
+ */
+ routing?: boolean;
+ /**
+ * Skip installing dependency packages.
+ */
+ skipInstall?: boolean;
+ /**
+ * Do not add dependencies to the "package.json" file.
+ */
+ skipPackageJson?: boolean;
+ /**
+ * Do not create "spec.ts" test files for the application.
+ */
+ skipTests?: boolean;
+ /**
+ * Creates an application with stricter bundle budgets settings.
+ */
+ strict?: boolean;
+ /**
+ * The file extension or preprocessor to use for style files.
+ */
+ style?: SchematicsAngularApplicationStyle;
+ /**
+ * The view encapsulation strategy to use in the new application.
+ */
+ viewEncapsulation?: ViewEncapsulation;
+}
+/**
+ * The file extension or preprocessor to use for style files.
+ */
+export declare enum SchematicsAngularApplicationStyle {
+ Css = "css",
+ Less = "less",
+ Sass = "sass",
+ Scss = "scss"
+}
+/**
+ * The view encapsulation strategy to use in the new application.
+ *
+ * The view encapsulation strategy to use in the new component.
+ *
+ * The view encapsulation strategy to use in the initial project.
+ */
+export declare enum ViewEncapsulation {
+ Emulated = "Emulated",
+ None = "None",
+ ShadowDom = "ShadowDom"
+}
+/**
+ * Creates a new, generic class definition in the given or default project.
+ */
+export interface AngularClassOptionsSchema {
+ /**
+ * The name of the new class.
+ */
+ name: string;
+ /**
+ * The path at which to create the class, relative to the workspace root.
+ */
+ path?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * Do not create "spec.ts" test files for the new class.
+ */
+ skipTests?: boolean;
+ /**
+ * Adds a developer-defined type to the filename, in the format "name.type.ts".
+ */
+ type?: string;
+}
+/**
+ * Creates a new, generic component definition in the given or default project.
+ */
+export interface AngularComponentOptionsSchema {
+ /**
+ * The change detection strategy to use in the new component.
+ */
+ changeDetection?: ChangeDetection;
+ /**
+ * Specifies if the style will contain `:host { display: block; }`.
+ */
+ displayBlock?: boolean;
+ /**
+ * The declaring NgModule exports this component.
+ */
+ export?: boolean;
+ /**
+ * Create the new files at the top level of the current project.
+ */
+ flat?: boolean;
+ /**
+ * Include styles inline in the component.ts file. Only CSS styles can be included inline.
+ * By default, an external styles file is created and referenced in the component.ts file.
+ */
+ inlineStyle?: boolean;
+ /**
+ * Include template inline in the component.ts file. By default, an external template file
+ * is created and referenced in the component.ts file.
+ */
+ inlineTemplate?: boolean;
+ /**
+ * The declaring NgModule.
+ */
+ module?: string;
+ /**
+ * The name of the component.
+ */
+ name: string;
+ /**
+ * The path at which to create the component file, relative to the current workspace.
+ * Default is a folder with the same name as the component in the project root.
+ */
+ path?: string;
+ /**
+ * The prefix to apply to the generated component selector.
+ */
+ prefix?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * The HTML selector to use for this component.
+ */
+ selector?: string;
+ /**
+ * Do not import this component into the owning NgModule.
+ */
+ skipImport?: boolean;
+ /**
+ * Specifies if the component should have a selector or not.
+ */
+ skipSelector?: boolean;
+ /**
+ * Do not create "spec.ts" test files for the new component.
+ */
+ skipTests?: boolean;
+ /**
+ * The file extension or preprocessor to use for style files, or 'none' to skip generating
+ * the style file.
+ */
+ style?: SchematicsAngularComponentStyle;
+ /**
+ * Adds a developer-defined type to the filename, in the format "name.type.ts".
+ */
+ type?: string;
+ /**
+ * The view encapsulation strategy to use in the new component.
+ */
+ viewEncapsulation?: ViewEncapsulation;
+}
+/**
+ * The change detection strategy to use in the new component.
+ */
+export declare enum ChangeDetection {
+ Default = "Default",
+ OnPush = "OnPush"
+}
+/**
+ * The file extension or preprocessor to use for style files, or 'none' to skip generating
+ * the style file.
+ */
+export declare enum SchematicsAngularComponentStyle {
+ Css = "css",
+ Less = "less",
+ None = "none",
+ Sass = "sass",
+ Scss = "scss"
+}
+/**
+ * Creates a new, generic directive definition in the given or default project.
+ */
+export interface AngularDirectiveOptionsSchema {
+ /**
+ * The declaring NgModule exports this directive.
+ */
+ export?: boolean;
+ /**
+ * When true (the default), creates the new files at the top level of the current project.
+ */
+ flat?: boolean;
+ /**
+ * The declaring NgModule.
+ */
+ module?: string;
+ /**
+ * The name of the new directive.
+ */
+ name: string;
+ /**
+ * The path at which to create the interface that defines the directive, relative to the
+ * workspace root.
+ */
+ path?: string;
+ /**
+ * A prefix to apply to generated selectors.
+ */
+ prefix?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * The HTML selector to use for this directive.
+ */
+ selector?: string;
+ /**
+ * Do not import this directive into the owning NgModule.
+ */
+ skipImport?: boolean;
+ /**
+ * Do not create "spec.ts" test files for the new class.
+ */
+ skipTests?: boolean;
+}
+/**
+ * Generates a new, generic enum definition for the given or default project.
+ */
+export interface AngularEnumOptionsSchema {
+ /**
+ * The name of the enum.
+ */
+ name: string;
+ /**
+ * The path at which to create the enum definition, relative to the current workspace.
+ */
+ path?: string;
+ /**
+ * The name of the project in which to create the enum. Default is the configured default
+ * project for the workspace.
+ */
+ project?: string;
+ /**
+ * Adds a developer-defined type to the filename, in the format "name.type.ts".
+ */
+ type?: string;
+}
+/**
+ * Generates a new, generic route guard definition in the given or default project.
+ */
+export interface AngularGuardOptionsSchema {
+ /**
+ * When true (the default), creates the new files at the top level of the current project.
+ */
+ flat?: boolean;
+ /**
+ * Specifies which interfaces to implement.
+ */
+ implements?: Implement[];
+ /**
+ * The name of the new route guard.
+ */
+ name: string;
+ /**
+ * The path at which to create the interface that defines the guard, relative to the current
+ * workspace.
+ */
+ path?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * Do not create "spec.ts" test files for the new guard.
+ */
+ skipTests?: boolean;
+}
+export declare enum Implement {
+ CanActivate = "CanActivate",
+ CanActivateChild = "CanActivateChild",
+ CanDeactivate = "CanDeactivate",
+ CanLoad = "CanLoad"
+}
+/**
+ * Creates a new, generic interceptor definition in the given or default project.
+ */
+export interface AngularInterceptorOptionsSchema {
+ /**
+ * When true (the default), creates files at the top level of the project.
+ */
+ flat?: boolean;
+ /**
+ * The name of the interceptor.
+ */
+ name: string;
+ /**
+ * The path at which to create the interceptor, relative to the workspace root.
+ */
+ path?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * Do not create "spec.ts" test files for the new interceptor.
+ */
+ skipTests?: boolean;
+}
+/**
+ * Creates a new, generic interface definition in the given or default project.
+ */
+export interface AngularInterfaceOptionsSchema {
+ /**
+ * The name of the interface.
+ */
+ name: string;
+ /**
+ * The path at which to create the interface, relative to the workspace root.
+ */
+ path?: string;
+ /**
+ * A prefix to apply to generated selectors.
+ */
+ prefix?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * Adds a developer-defined type to the filename, in the format "name.type.ts".
+ */
+ type?: string;
+}
+/**
+ * Creates a new, generic library project in the current workspace.
+ */
+export interface LibraryOptionsSchema {
+ /**
+ * The path at which to create the library's public API file, relative to the workspace root.
+ */
+ entryFile?: string;
+ /**
+ * The name of the library.
+ */
+ name: string;
+ /**
+ * A prefix to apply to generated selectors.
+ */
+ prefix?: string;
+ /**
+ * Do not install dependency packages.
+ */
+ skipInstall?: boolean;
+ /**
+ * Do not add dependencies to the "package.json" file.
+ */
+ skipPackageJson?: boolean;
+ /**
+ * Do not update "tsconfig.json" to add a path mapping for the new library. The path mapping
+ * is needed to use the library in an app, but can be disabled here to simplify development.
+ */
+ skipTsConfig?: boolean;
+}
+/**
+ * Creates a new project by combining the workspace and application schematics.
+ */
+export interface AngularNgNewOptionsSchema {
+ /**
+ * Initial git repository commit information.
+ */
+ commit?: CommitUnion;
+ /**
+ * Create a new initial application project in the 'src' folder of the new workspace. When
+ * false, creates an empty workspace with no initial application. You can then use the
+ * generate application command so that all applications are created in the projects folder.
+ */
+ createApplication?: boolean;
+ /**
+ * The directory name to create the workspace in.
+ */
+ directory?: string;
+ /**
+ * Include styles inline in the component TS file. By default, an external styles file is
+ * created and referenced in the component TypeScript file.
+ */
+ inlineStyle?: boolean;
+ /**
+ * Include template inline in the component TS file. By default, an external template file
+ * is created and referenced in the component TypeScript file.
+ */
+ inlineTemplate?: boolean;
+ /**
+ * Link the CLI to the global version (internal development only).
+ */
+ linkCli?: boolean;
+ /**
+ * Create a workspace without any testing frameworks. (Use for learning purposes only.)
+ */
+ minimal?: boolean;
+ /**
+ * The name of the new workspace and initial project.
+ */
+ name: string;
+ /**
+ * The path where new projects will be created, relative to the new workspace root.
+ */
+ newProjectRoot?: string;
+ /**
+ * The package manager used to install dependencies.
+ */
+ packageManager?: PackageManager;
+ /**
+ * The prefix to apply to generated selectors for the initial project.
+ */
+ prefix?: string;
+ /**
+ * Generate a routing module for the initial project.
+ */
+ routing?: boolean;
+ /**
+ * Do not initialize a git repository.
+ */
+ skipGit?: boolean;
+ /**
+ * Do not install dependency packages.
+ */
+ skipInstall?: boolean;
+ /**
+ * Do not generate "spec.ts" test files for the new project.
+ */
+ skipTests?: boolean;
+ /**
+ * Creates a workspace with stricter type checking and stricter bundle budgets settings.
+ * This setting helps improve maintainability and catch bugs ahead of time. For more
+ * information, see https://angular.io/guide/strict-mode
+ */
+ strict?: boolean;
+ /**
+ * The file extension or preprocessor to use for style files.
+ */
+ style?: SchematicsAngularApplicationStyle;
+ /**
+ * The version of the Angular CLI to use.
+ */
+ version: string;
+ /**
+ * The view encapsulation strategy to use in the initial project.
+ */
+ viewEncapsulation?: ViewEncapsulation;
+}
+/**
+ * Initial git repository commit information.
+ */
+export declare type CommitUnion = boolean | CommitObject;
+export interface CommitObject {
+ email: string;
+ message?: string;
+ name: string;
+}
+/**
+ * Creates a new, generic pipe definition in the given or default project.
+ */
+export interface AngularPipeOptionsSchema {
+ /**
+ * The declaring NgModule exports this pipe.
+ */
+ export?: boolean;
+ /**
+ * When true (the default) creates files at the top level of the project.
+ */
+ flat?: boolean;
+ /**
+ * The declaring NgModule.
+ */
+ module?: string;
+ /**
+ * The name of the pipe.
+ */
+ name: string;
+ /**
+ * The path at which to create the pipe, relative to the workspace root.
+ */
+ path?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * Do not import this pipe into the owning NgModule.
+ */
+ skipImport?: boolean;
+ /**
+ * Do not create "spec.ts" test files for the new pipe.
+ */
+ skipTests?: boolean;
+}
+/**
+ * Generates a new, generic resolver definition in the given or default project.
+ */
+export interface AngularResolverOptionsSchema {
+ /**
+ * When true (the default), creates the new files at the top level of the current project.
+ */
+ flat?: boolean;
+ /**
+ * The name of the new resolver.
+ */
+ name: string;
+ /**
+ * The path at which to create the interface that defines the resolver, relative to the
+ * current workspace.
+ */
+ path?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * Do not create "spec.ts" test files for the new resolver.
+ */
+ skipTests?: boolean;
+}
+/**
+ * Creates a new, generic service definition in the given or default project.
+ */
+export interface AngularServiceOptionsSchema {
+ /**
+ * When true (the default), creates files at the top level of the project.
+ */
+ flat?: boolean;
+ /**
+ * The name of the service.
+ */
+ name: string;
+ /**
+ * The path at which to create the service, relative to the workspace root.
+ */
+ path?: string;
+ /**
+ * The name of the project.
+ */
+ project?: string;
+ /**
+ * Do not create "spec.ts" test files for the new service.
+ */
+ skipTests?: boolean;
+}
+/**
+ * Creates a new, generic web worker definition in the given or default project.
+ */
+export interface AngularWebWorkerOptionsSchema {
+ /**
+ * The name of the worker.
+ */
+ name: string;
+ /**
+ * The path at which to create the worker file, relative to the current workspace.
+ */
+ path?: string;
+ /**
+ * The name of the project.
+ */
+ project: string;
+ /**
+ * Add a worker creation snippet in a sibling file of the same name.
+ */
+ snippet?: boolean;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/workspace-schema.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/workspace-schema.js
new file mode 100644
index 00000000..24e1142c
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/config/workspace-schema.js
@@ -0,0 +1,76 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Implement = exports.SchematicsAngularComponentStyle = exports.ChangeDetection = exports.ViewEncapsulation = exports.SchematicsAngularApplicationStyle = exports.PackageManager = exports.Environment = void 0;
+/**
+ * Configure in which environment disk cache is enabled.
+ */
+var Environment;
+(function (Environment) {
+ Environment["All"] = "all";
+ Environment["Ci"] = "ci";
+ Environment["Local"] = "local";
+})(Environment = exports.Environment || (exports.Environment = {}));
+/**
+ * Specify which package manager tool to use.
+ *
+ * The package manager used to install dependencies.
+ */
+var PackageManager;
+(function (PackageManager) {
+ PackageManager["Cnpm"] = "cnpm";
+ PackageManager["Npm"] = "npm";
+ PackageManager["Pnpm"] = "pnpm";
+ PackageManager["Yarn"] = "yarn";
+})(PackageManager = exports.PackageManager || (exports.PackageManager = {}));
+/**
+ * The file extension or preprocessor to use for style files.
+ */
+var SchematicsAngularApplicationStyle;
+(function (SchematicsAngularApplicationStyle) {
+ SchematicsAngularApplicationStyle["Css"] = "css";
+ SchematicsAngularApplicationStyle["Less"] = "less";
+ SchematicsAngularApplicationStyle["Sass"] = "sass";
+ SchematicsAngularApplicationStyle["Scss"] = "scss";
+})(SchematicsAngularApplicationStyle = exports.SchematicsAngularApplicationStyle || (exports.SchematicsAngularApplicationStyle = {}));
+/**
+ * The view encapsulation strategy to use in the new application.
+ *
+ * The view encapsulation strategy to use in the new component.
+ *
+ * The view encapsulation strategy to use in the initial project.
+ */
+var ViewEncapsulation;
+(function (ViewEncapsulation) {
+ ViewEncapsulation["Emulated"] = "Emulated";
+ ViewEncapsulation["None"] = "None";
+ ViewEncapsulation["ShadowDom"] = "ShadowDom";
+})(ViewEncapsulation = exports.ViewEncapsulation || (exports.ViewEncapsulation = {}));
+/**
+ * The change detection strategy to use in the new component.
+ */
+var ChangeDetection;
+(function (ChangeDetection) {
+ ChangeDetection["Default"] = "Default";
+ ChangeDetection["OnPush"] = "OnPush";
+})(ChangeDetection = exports.ChangeDetection || (exports.ChangeDetection = {}));
+/**
+ * The file extension or preprocessor to use for style files, or 'none' to skip generating
+ * the style file.
+ */
+var SchematicsAngularComponentStyle;
+(function (SchematicsAngularComponentStyle) {
+ SchematicsAngularComponentStyle["Css"] = "css";
+ SchematicsAngularComponentStyle["Less"] = "less";
+ SchematicsAngularComponentStyle["None"] = "none";
+ SchematicsAngularComponentStyle["Sass"] = "sass";
+ SchematicsAngularComponentStyle["Scss"] = "scss";
+})(SchematicsAngularComponentStyle = exports.SchematicsAngularComponentStyle || (exports.SchematicsAngularComponentStyle = {}));
+var Implement;
+(function (Implement) {
+ Implement["CanActivate"] = "CanActivate";
+ Implement["CanActivateChild"] = "CanActivateChild";
+ Implement["CanDeactivate"] = "CanDeactivate";
+ Implement["CanLoad"] = "CanLoad";
+})(Implement = exports.Implement || (exports.Implement = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/init.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/init.d.ts
new file mode 100644
index 00000000..8df63e62
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/init.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import 'symbol-observable';
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/init.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/init.js
new file mode 100644
index 00000000..0733b1d1
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/lib/init.js
@@ -0,0 +1,128 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+require("symbol-observable");
+// symbol polyfill must go first
+const fs_1 = require("fs");
+const path = __importStar(require("path"));
+const semver_1 = require("semver");
+const version_1 = require("../models/version");
+const color_1 = require("../utilities/color");
+const config_1 = require("../utilities/config");
+(async () => {
+ var _a;
+ /**
+ * Disable Browserslist old data warning as otherwise with every release we'd need to update this dependency
+ * which is cumbersome considering we pin versions and the warning is not user actionable.
+ * `Browserslist: caniuse-lite is outdated. Please run next command `npm update`
+ * See: https://github.com/browserslist/browserslist/blob/819c4337456996d19db6ba953014579329e9c6e1/node.js#L324
+ */
+ process.env.BROWSERSLIST_IGNORE_OLD_DATA = '1';
+ const disableVersionCheckEnv = process.env['NG_DISABLE_VERSION_CHECK'];
+ /**
+ * Disable CLI version mismatch checks and forces usage of the invoked CLI
+ * instead of invoking the local installed version.
+ */
+ const disableVersionCheck = disableVersionCheckEnv !== undefined &&
+ disableVersionCheckEnv !== '0' &&
+ disableVersionCheckEnv.toLowerCase() !== 'false';
+ if (disableVersionCheck) {
+ return (await Promise.resolve().then(() => __importStar(require('./cli')))).default;
+ }
+ let cli;
+ try {
+ // No error implies a projectLocalCli, which will load whatever
+ // version of ng-cli you have installed in a local package.json
+ const projectLocalCli = require.resolve('@angular/cli', { paths: [process.cwd()] });
+ cli = await Promise.resolve().then(() => __importStar(require(projectLocalCli)));
+ const globalVersion = new semver_1.SemVer(version_1.VERSION.full);
+ // Older versions might not have the VERSION export
+ let localVersion = (_a = cli.VERSION) === null || _a === void 0 ? void 0 : _a.full;
+ if (!localVersion) {
+ try {
+ const localPackageJson = await fs_1.promises.readFile(path.join(path.dirname(projectLocalCli), '../../package.json'), 'utf-8');
+ localVersion = JSON.parse(localPackageJson).version;
+ }
+ catch (error) {
+ // eslint-disable-next-line no-console
+ console.error('Version mismatch check skipped. Unable to retrieve local version: ' + error);
+ }
+ }
+ let isGlobalGreater = false;
+ try {
+ isGlobalGreater = !!localVersion && globalVersion.compare(localVersion) > 0;
+ }
+ catch (error) {
+ // eslint-disable-next-line no-console
+ console.error('Version mismatch check skipped. Unable to compare local version: ' + error);
+ }
+ if (isGlobalGreater) {
+ // If using the update command and the global version is greater, use the newer update command
+ // This allows improvements in update to be used in older versions that do not have bootstrapping
+ if (process.argv[2] === 'update' &&
+ cli.VERSION &&
+ cli.VERSION.major - globalVersion.major <= 1) {
+ cli = await Promise.resolve().then(() => __importStar(require('./cli')));
+ }
+ else if (await (0, config_1.isWarningEnabled)('versionMismatch')) {
+ // Otherwise, use local version and warn if global is newer than local
+ const warning = `Your global Angular CLI version (${globalVersion}) is greater than your local ` +
+ `version (${localVersion}). The local Angular CLI version is used.\n\n` +
+ 'To disable this warning use "ng config -g cli.warnings.versionMismatch false".';
+ // eslint-disable-next-line no-console
+ console.error(color_1.colors.yellow(warning));
+ }
+ }
+ }
+ catch {
+ // If there is an error, resolve could not find the ng-cli
+ // library from a package.json. Instead, include it from a relative
+ // path to this script file (which is likely a globally installed
+ // npm package). Most common cause for hitting this is `ng new`
+ cli = await Promise.resolve().then(() => __importStar(require('./cli')));
+ }
+ if ('default' in cli) {
+ cli = cli['default'];
+ }
+ return cli;
+})()
+ .then((cli) => {
+ return cli({
+ cliArgs: process.argv.slice(2),
+ inputStream: process.stdin,
+ outputStream: process.stdout,
+ });
+})
+ .then((exitCode) => {
+ process.exit(exitCode);
+})
+ .catch((err) => {
+ // eslint-disable-next-line no-console
+ console.error('Unknown error: ' + err.toString());
+ process.exit(127);
+});
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics-collector.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics-collector.d.ts
new file mode 100644
index 00000000..ff547922
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics-collector.d.ts
@@ -0,0 +1,29 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { analytics } from '@angular-devkit/core';
+/**
+ * See: https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide
+ */
+export declare class AnalyticsCollector implements analytics.Analytics {
+ private trackingEventsQueue;
+ private readonly parameters;
+ private readonly analyticsLogDebug;
+ constructor(trackingId: string, userId: string);
+ event(ec: string, ea: string, options?: analytics.EventOptions): void;
+ pageview(dp: string, options?: analytics.PageviewOptions): void;
+ timing(utc: string, utv: string, utt: string | number, options?: analytics.TimingOptions): void;
+ screenview(cd: string, an: string, options?: analytics.ScreenviewOptions): void;
+ flush(): Promise<void>;
+ private addToQueue;
+ private send;
+ /**
+ * Creates the dimension and metrics variables to add to the queue.
+ * @private
+ */
+ private customVariables;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics-collector.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics-collector.js
new file mode 100644
index 00000000..4c1b817d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics-collector.js
@@ -0,0 +1,235 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AnalyticsCollector = void 0;
+const core_1 = require("@angular-devkit/core");
+const child_process_1 = require("child_process");
+const debug_1 = __importDefault(require("debug"));
+const https = __importStar(require("https"));
+const os = __importStar(require("os"));
+const querystring = __importStar(require("querystring"));
+const version_1 = require("./version");
+/**
+ * See: https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide
+ */
+class AnalyticsCollector {
+ constructor(trackingId, userId) {
+ this.trackingEventsQueue = [];
+ this.parameters = {};
+ this.analyticsLogDebug = (0, debug_1.default)('ng:analytics:log');
+ // API Version
+ this.parameters['v'] = '1';
+ // User ID
+ this.parameters['cid'] = userId;
+ // Tracking
+ this.parameters['tid'] = trackingId;
+ this.parameters['ds'] = 'cli';
+ this.parameters['ua'] = _buildUserAgentString();
+ this.parameters['ul'] = _getLanguage();
+ // @angular/cli with version.
+ this.parameters['an'] = '@angular/cli';
+ this.parameters['av'] = version_1.VERSION.full;
+ // We use the application ID for the Node version. This should be "node v12.10.0".
+ const nodeVersion = `node ${process.version}`;
+ this.parameters['aid'] = nodeVersion;
+ // Custom dimentions
+ // We set custom metrics for values we care about.
+ this.parameters['cd' + core_1.analytics.NgCliAnalyticsDimensions.CpuCount] = os.cpus().length;
+ // Get the first CPU's speed. It's very rare to have multiple CPUs of different speed (in most
+ // non-ARM configurations anyway), so that's all we care about.
+ this.parameters['cd' + core_1.analytics.NgCliAnalyticsDimensions.CpuSpeed] = Math.floor(os.cpus()[0].speed);
+ this.parameters['cd' + core_1.analytics.NgCliAnalyticsDimensions.RamInGigabytes] = Math.round(os.totalmem() / (1024 * 1024 * 1024));
+ this.parameters['cd' + core_1.analytics.NgCliAnalyticsDimensions.NodeVersion] = nodeVersion;
+ }
+ event(ec, ea, options = {}) {
+ const { label: el, value: ev, metrics, dimensions } = options;
+ this.addToQueue('event', { ec, ea, el, ev, metrics, dimensions });
+ }
+ pageview(dp, options = {}) {
+ const { hostname: dh, title: dt, metrics, dimensions } = options;
+ this.addToQueue('pageview', { dp, dh, dt, metrics, dimensions });
+ }
+ timing(utc, utv, utt, options = {}) {
+ const { label: utl, metrics, dimensions } = options;
+ this.addToQueue('timing', { utc, utv, utt, utl, metrics, dimensions });
+ }
+ screenview(cd, an, options = {}) {
+ const { appVersion: av, appId: aid, appInstallerId: aiid, metrics, dimensions } = options;
+ this.addToQueue('screenview', { cd, an, av, aid, aiid, metrics, dimensions });
+ }
+ async flush() {
+ const pending = this.trackingEventsQueue.length;
+ this.analyticsLogDebug(`flush queue size: ${pending}`);
+ if (!pending) {
+ return;
+ }
+ // The below is needed so that if flush is called multiple times,
+ // we don't report the same event multiple times.
+ const pendingTrackingEvents = this.trackingEventsQueue;
+ this.trackingEventsQueue = [];
+ try {
+ await this.send(pendingTrackingEvents);
+ }
+ catch (error) {
+ // Failure to report analytics shouldn't crash the CLI.
+ this.analyticsLogDebug('send error: %j', error);
+ }
+ }
+ addToQueue(eventType, parameters) {
+ const { metrics, dimensions, ...restParameters } = parameters;
+ const data = {
+ ...this.parameters,
+ ...restParameters,
+ ...this.customVariables({ metrics, dimensions }),
+ t: eventType,
+ };
+ this.analyticsLogDebug('add event to queue: %j', data);
+ this.trackingEventsQueue.push(data);
+ }
+ async send(data) {
+ this.analyticsLogDebug('send event: %j', data);
+ return new Promise((resolve, reject) => {
+ const request = https.request({
+ host: 'www.google-analytics.com',
+ method: 'POST',
+ path: data.length > 1 ? '/batch' : '/collect',
+ }, (response) => {
+ if (response.statusCode !== 200) {
+ reject(new Error(`Analytics reporting failed with status code: ${response.statusCode}.`));
+ return;
+ }
+ });
+ request.on('error', reject);
+ const queryParameters = data.map((p) => querystring.stringify(p)).join('\n');
+ request.write(queryParameters);
+ request.end(resolve);
+ });
+ }
+ /**
+ * Creates the dimension and metrics variables to add to the queue.
+ * @private
+ */
+ customVariables(options) {
+ const additionals = {};
+ const { dimensions, metrics } = options;
+ dimensions === null || dimensions === void 0 ? void 0 : dimensions.forEach((v, i) => (additionals[`cd${i}`] = v));
+ metrics === null || metrics === void 0 ? void 0 : metrics.forEach((v, i) => (additionals[`cm${i}`] = v));
+ return additionals;
+ }
+}
+exports.AnalyticsCollector = AnalyticsCollector;
+// These are just approximations of UA strings. We just try to fool Google Analytics to give us the
+// data we want.
+// See https://developers.whatismybrowser.com/useragents/
+const osVersionMap = {
+ darwin: {
+ '1.3.1': '10_0_4',
+ '1.4.1': '10_1_0',
+ '5.1': '10_1_1',
+ '5.2': '10_1_5',
+ '6.0.1': '10_2',
+ '6.8': '10_2_8',
+ '7.0': '10_3_0',
+ '7.9': '10_3_9',
+ '8.0': '10_4_0',
+ '8.11': '10_4_11',
+ '9.0': '10_5_0',
+ '9.8': '10_5_8',
+ '10.0': '10_6_0',
+ '10.8': '10_6_8',
+ // We stop here because we try to math out the version for anything greater than 10, and it
+ // works. Those versions are standardized using a calculation now.
+ },
+ win32: {
+ '6.3.9600': 'Windows 8.1',
+ '6.2.9200': 'Windows 8',
+ '6.1.7601': 'Windows 7 SP1',
+ '6.1.7600': 'Windows 7',
+ '6.0.6002': 'Windows Vista SP2',
+ '6.0.6000': 'Windows Vista',
+ '5.1.2600': 'Windows XP',
+ },
+};
+/**
+ * Build a fake User Agent string. This gets sent to Analytics so it shows the proper OS version.
+ * @private
+ */
+function _buildUserAgentString() {
+ switch (os.platform()) {
+ case 'darwin': {
+ let v = osVersionMap.darwin[os.release()];
+ if (!v) {
+ // Remove 4 to tie Darwin version to OSX version, add other info.
+ const x = parseFloat(os.release());
+ if (x > 10) {
+ v = `10_` + (x - 4).toString().replace('.', '_');
+ }
+ }
+ const cpuModel = os.cpus()[0].model.match(/^[a-z]+/i);
+ const cpu = cpuModel ? cpuModel[0] : os.cpus()[0].model;
+ return `(Macintosh; ${cpu} Mac OS X ${v || os.release()})`;
+ }
+ case 'win32':
+ return `(Windows NT ${os.release()})`;
+ case 'linux':
+ return `(X11; Linux i686; ${os.release()}; ${os.cpus()[0].model})`;
+ default:
+ return os.platform() + ' ' + os.release();
+ }
+}
+/**
+ * Get a language code.
+ * @private
+ */
+function _getLanguage() {
+ // Note: Windows does not expose the configured language by default.
+ return (process.env.LANG || // Default Unix env variable.
+ process.env.LC_CTYPE || // For C libraries. Sometimes the above isn't set.
+ process.env.LANGSPEC || // For Windows, sometimes this will be set (not always).
+ _getWindowsLanguageCode() ||
+ '??'); // ¯\_(ツ)_/¯
+}
+/**
+ * Attempt to get the Windows Language Code string.
+ * @private
+ */
+function _getWindowsLanguageCode() {
+ if (!os.platform().startsWith('win')) {
+ return undefined;
+ }
+ try {
+ // This is true on Windows XP, 7, 8 and 10 AFAIK. Would return empty string or fail if it
+ // doesn't work.
+ return (0, child_process_1.execSync)('wmic.exe os get locale').toString().trim();
+ }
+ catch { }
+ return undefined;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics.d.ts
new file mode 100644
index 00000000..1a16fdab
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics.d.ts
@@ -0,0 +1,58 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { AnalyticsCollector } from './analytics-collector';
+export declare const AnalyticsProperties: {
+ AngularCliProd: string;
+ AngularCliStaging: string;
+ readonly AngularCliDefault: string;
+};
+/**
+ * This is the ultimate safelist for checking if a package name is safe to report to analytics.
+ */
+export declare const analyticsPackageSafelist: (string | RegExp)[];
+export declare function isPackageNameSafeForAnalytics(name: string): boolean;
+/**
+ * Set analytics settings. This does not work if the user is not inside a project.
+ * @param level Which config to use. "global" for user-level, and "local" for project-level.
+ * @param value Either a user ID, true to generate a new User ID, or false to disable analytics.
+ */
+export declare function setAnalyticsConfig(level: 'global' | 'local', value: string | boolean): void;
+/**
+ * Prompt the user for usage gathering permission.
+ * @param force Whether to ask regardless of whether or not the user is using an interactive shell.
+ * @return Whether or not the user was shown a prompt.
+ */
+export declare function promptGlobalAnalytics(force?: boolean): Promise<boolean>;
+/**
+ * Prompt the user for usage gathering permission for the local project. Fails if there is no
+ * local workspace.
+ * @param force Whether to ask regardless of whether or not the user is using an interactive shell.
+ * @return Whether or not the user was shown a prompt.
+ */
+export declare function promptProjectAnalytics(force?: boolean): Promise<boolean>;
+export declare function hasGlobalAnalyticsConfiguration(): Promise<boolean>;
+/**
+ * Get the global analytics object for the user. This returns an instance of UniversalAnalytics,
+ * or undefined if analytics are disabled.
+ *
+ * If any problem happens, it is considered the user has been opting out of analytics.
+ */
+export declare function getGlobalAnalytics(): Promise<AnalyticsCollector | undefined>;
+export declare function hasWorkspaceAnalyticsConfiguration(): Promise<boolean>;
+/**
+ * Get the workspace analytics object for the user. This returns an instance of AnalyticsCollector,
+ * or undefined if analytics are disabled.
+ *
+ * If any problem happens, it is considered the user has been opting out of analytics.
+ */
+export declare function getWorkspaceAnalytics(): Promise<AnalyticsCollector | undefined>;
+/**
+ * Return the usage analytics sharing setting, which is either a property string (GA-XXXXXXX-XX),
+ * or undefined if no sharing.
+ */
+export declare function getSharedAnalytics(): Promise<AnalyticsCollector | undefined>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics.js
new file mode 100644
index 00000000..826a90d8
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/analytics.js
@@ -0,0 +1,358 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getSharedAnalytics = exports.getWorkspaceAnalytics = exports.hasWorkspaceAnalyticsConfiguration = exports.getGlobalAnalytics = exports.hasGlobalAnalyticsConfiguration = exports.promptProjectAnalytics = exports.promptGlobalAnalytics = exports.setAnalyticsConfig = exports.isPackageNameSafeForAnalytics = exports.analyticsPackageSafelist = exports.AnalyticsProperties = void 0;
+const core_1 = require("@angular-devkit/core");
+const debug_1 = __importDefault(require("debug"));
+const inquirer = __importStar(require("inquirer"));
+const uuid_1 = require("uuid");
+const version_1 = require("../models/version");
+const color_1 = require("../utilities/color");
+const config_1 = require("../utilities/config");
+const tty_1 = require("../utilities/tty");
+const analytics_collector_1 = require("./analytics-collector");
+/* eslint-disable no-console */
+const analyticsDebug = (0, debug_1.default)('ng:analytics'); // Generate analytics, including settings and users.
+let _defaultAngularCliPropertyCache;
+exports.AnalyticsProperties = {
+ AngularCliProd: 'UA-8594346-29',
+ AngularCliStaging: 'UA-8594346-32',
+ get AngularCliDefault() {
+ if (_defaultAngularCliPropertyCache) {
+ return _defaultAngularCliPropertyCache;
+ }
+ const v = version_1.VERSION.full;
+ // The logic is if it's a full version then we should use the prod GA property.
+ if (/^\d+\.\d+\.\d+$/.test(v) && v !== '0.0.0') {
+ _defaultAngularCliPropertyCache = exports.AnalyticsProperties.AngularCliProd;
+ }
+ else {
+ _defaultAngularCliPropertyCache = exports.AnalyticsProperties.AngularCliStaging;
+ }
+ return _defaultAngularCliPropertyCache;
+ },
+};
+/**
+ * This is the ultimate safelist for checking if a package name is safe to report to analytics.
+ */
+exports.analyticsPackageSafelist = [
+ /^@angular\//,
+ /^@angular-devkit\//,
+ /^@ngtools\//,
+ '@schematics/angular',
+];
+function isPackageNameSafeForAnalytics(name) {
+ return exports.analyticsPackageSafelist.some((pattern) => {
+ if (typeof pattern == 'string') {
+ return pattern === name;
+ }
+ else {
+ return pattern.test(name);
+ }
+ });
+}
+exports.isPackageNameSafeForAnalytics = isPackageNameSafeForAnalytics;
+/**
+ * Set analytics settings. This does not work if the user is not inside a project.
+ * @param level Which config to use. "global" for user-level, and "local" for project-level.
+ * @param value Either a user ID, true to generate a new User ID, or false to disable analytics.
+ */
+function setAnalyticsConfig(level, value) {
+ analyticsDebug('setting %s level analytics to: %s', level, value);
+ const [config, configPath] = (0, config_1.getWorkspaceRaw)(level);
+ if (!config || !configPath) {
+ throw new Error(`Could not find ${level} workspace.`);
+ }
+ const cli = config.get(['cli']);
+ if (cli !== undefined && !core_1.json.isJsonObject(cli)) {
+ throw new Error(`Invalid config found at ${configPath}. CLI should be an object.`);
+ }
+ if (value === true) {
+ value = (0, uuid_1.v4)();
+ }
+ config.modify(['cli', 'analytics'], value);
+ config.save();
+ analyticsDebug('done');
+}
+exports.setAnalyticsConfig = setAnalyticsConfig;
+/**
+ * Prompt the user for usage gathering permission.
+ * @param force Whether to ask regardless of whether or not the user is using an interactive shell.
+ * @return Whether or not the user was shown a prompt.
+ */
+async function promptGlobalAnalytics(force = false) {
+ analyticsDebug('prompting global analytics.');
+ if (force || (0, tty_1.isTTY)()) {
+ const answers = await inquirer.prompt([
+ {
+ type: 'confirm',
+ name: 'analytics',
+ message: core_1.tags.stripIndents `
+ Would you like to share anonymous usage data with the Angular Team at Google under
+ Google’s Privacy Policy at https://policies.google.com/privacy? For more details and
+ how to change this setting, see https://angular.io/analytics.
+ `,
+ default: false,
+ },
+ ]);
+ setAnalyticsConfig('global', answers.analytics);
+ if (answers.analytics) {
+ console.log('');
+ console.log(core_1.tags.stripIndent `
+ Thank you for sharing anonymous usage data. If you change your mind, the following
+ command will disable this feature entirely:
+
+ ${color_1.colors.yellow('ng analytics off')}
+ `);
+ console.log('');
+ // Send back a ping with the user `optin`.
+ const ua = new analytics_collector_1.AnalyticsCollector(exports.AnalyticsProperties.AngularCliDefault, 'optin');
+ ua.pageview('/telemetry/optin');
+ await ua.flush();
+ }
+ else {
+ // Send back a ping with the user `optout`. This is the only thing we send.
+ const ua = new analytics_collector_1.AnalyticsCollector(exports.AnalyticsProperties.AngularCliDefault, 'optout');
+ ua.pageview('/telemetry/optout');
+ await ua.flush();
+ }
+ return true;
+ }
+ else {
+ analyticsDebug('Either STDOUT or STDIN are not TTY and we skipped the prompt.');
+ }
+ return false;
+}
+exports.promptGlobalAnalytics = promptGlobalAnalytics;
+/**
+ * Prompt the user for usage gathering permission for the local project. Fails if there is no
+ * local workspace.
+ * @param force Whether to ask regardless of whether or not the user is using an interactive shell.
+ * @return Whether or not the user was shown a prompt.
+ */
+async function promptProjectAnalytics(force = false) {
+ analyticsDebug('prompting user');
+ const [config, configPath] = (0, config_1.getWorkspaceRaw)('local');
+ if (!config || !configPath) {
+ throw new Error(`Could not find a local workspace. Are you in a project?`);
+ }
+ if (force || (0, tty_1.isTTY)()) {
+ const answers = await inquirer.prompt([
+ {
+ type: 'confirm',
+ name: 'analytics',
+ message: core_1.tags.stripIndents `
+ Would you like to share anonymous usage data about this project with the Angular Team at
+ Google under Google’s Privacy Policy at https://policies.google.com/privacy? For more
+ details and how to change this setting, see https://angular.io/analytics.
+
+ `,
+ default: false,
+ },
+ ]);
+ setAnalyticsConfig('local', answers.analytics);
+ if (answers.analytics) {
+ console.log('');
+ console.log(core_1.tags.stripIndent `
+ Thank you for sharing anonymous usage data. Should you change your mind, the following
+ command will disable this feature entirely:
+
+ ${color_1.colors.yellow('ng analytics project off')}
+ `);
+ console.log('');
+ // Send back a ping with the user `optin`.
+ const ua = new analytics_collector_1.AnalyticsCollector(exports.AnalyticsProperties.AngularCliDefault, 'optin');
+ ua.pageview('/telemetry/project/optin');
+ await ua.flush();
+ }
+ else {
+ // Send back a ping with the user `optout`. This is the only thing we send.
+ const ua = new analytics_collector_1.AnalyticsCollector(exports.AnalyticsProperties.AngularCliDefault, 'optout');
+ ua.pageview('/telemetry/project/optout');
+ await ua.flush();
+ }
+ return true;
+ }
+ return false;
+}
+exports.promptProjectAnalytics = promptProjectAnalytics;
+async function hasGlobalAnalyticsConfiguration() {
+ try {
+ const globalWorkspace = await (0, config_1.getWorkspace)('global');
+ const analyticsConfig = globalWorkspace && globalWorkspace.getCli() && globalWorkspace.getCli()['analytics'];
+ if (analyticsConfig !== null && analyticsConfig !== undefined) {
+ return true;
+ }
+ }
+ catch { }
+ return false;
+}
+exports.hasGlobalAnalyticsConfiguration = hasGlobalAnalyticsConfiguration;
+/**
+ * Get the global analytics object for the user. This returns an instance of UniversalAnalytics,
+ * or undefined if analytics are disabled.
+ *
+ * If any problem happens, it is considered the user has been opting out of analytics.
+ */
+async function getGlobalAnalytics() {
+ analyticsDebug('getGlobalAnalytics');
+ const propertyId = exports.AnalyticsProperties.AngularCliDefault;
+ if ('NG_CLI_ANALYTICS' in process.env) {
+ if (process.env['NG_CLI_ANALYTICS'] == 'false' || process.env['NG_CLI_ANALYTICS'] == '') {
+ analyticsDebug('NG_CLI_ANALYTICS is false');
+ return undefined;
+ }
+ if (process.env['NG_CLI_ANALYTICS'] === 'ci') {
+ analyticsDebug('Running in CI mode');
+ return new analytics_collector_1.AnalyticsCollector(propertyId, 'ci');
+ }
+ }
+ // If anything happens we just keep the NOOP analytics.
+ try {
+ const globalWorkspace = await (0, config_1.getWorkspace)('global');
+ const analyticsConfig = globalWorkspace && globalWorkspace.getCli() && globalWorkspace.getCli()['analytics'];
+ analyticsDebug('Client Analytics config found: %j', analyticsConfig);
+ if (analyticsConfig === false) {
+ analyticsDebug('Analytics disabled. Ignoring all analytics.');
+ return undefined;
+ }
+ else if (analyticsConfig === undefined || analyticsConfig === null) {
+ analyticsDebug('Analytics settings not found. Ignoring all analytics.');
+ // globalWorkspace can be null if there is no file. analyticsConfig would be null in this
+ // case. Since there is no file, the user hasn't answered and the expected return value is
+ // undefined.
+ return undefined;
+ }
+ else {
+ let uid = undefined;
+ if (typeof analyticsConfig == 'string') {
+ uid = analyticsConfig;
+ }
+ else if (typeof analyticsConfig == 'object' && typeof analyticsConfig['uid'] == 'string') {
+ uid = analyticsConfig['uid'];
+ }
+ analyticsDebug('client id: %j', uid);
+ if (uid == undefined) {
+ return undefined;
+ }
+ return new analytics_collector_1.AnalyticsCollector(propertyId, uid);
+ }
+ }
+ catch (err) {
+ analyticsDebug('Error happened during reading of analytics config: %s', err.message);
+ return undefined;
+ }
+}
+exports.getGlobalAnalytics = getGlobalAnalytics;
+async function hasWorkspaceAnalyticsConfiguration() {
+ try {
+ const globalWorkspace = await (0, config_1.getWorkspace)('local');
+ const analyticsConfig = globalWorkspace && globalWorkspace.getCli() && globalWorkspace.getCli()['analytics'];
+ if (analyticsConfig !== undefined) {
+ return true;
+ }
+ }
+ catch { }
+ return false;
+}
+exports.hasWorkspaceAnalyticsConfiguration = hasWorkspaceAnalyticsConfiguration;
+/**
+ * Get the workspace analytics object for the user. This returns an instance of AnalyticsCollector,
+ * or undefined if analytics are disabled.
+ *
+ * If any problem happens, it is considered the user has been opting out of analytics.
+ */
+async function getWorkspaceAnalytics() {
+ analyticsDebug('getWorkspaceAnalytics');
+ try {
+ const globalWorkspace = await (0, config_1.getWorkspace)('local');
+ const analyticsConfig = globalWorkspace === null || globalWorkspace === void 0 ? void 0 : globalWorkspace.getCli()['analytics'];
+ analyticsDebug('Workspace Analytics config found: %j', analyticsConfig);
+ if (analyticsConfig === false) {
+ analyticsDebug('Analytics disabled. Ignoring all analytics.');
+ return undefined;
+ }
+ else if (analyticsConfig === undefined || analyticsConfig === null) {
+ analyticsDebug('Analytics settings not found. Ignoring all analytics.');
+ return undefined;
+ }
+ else {
+ let uid = undefined;
+ if (typeof analyticsConfig == 'string') {
+ uid = analyticsConfig;
+ }
+ else if (typeof analyticsConfig == 'object' && typeof analyticsConfig['uid'] == 'string') {
+ uid = analyticsConfig['uid'];
+ }
+ analyticsDebug('client id: %j', uid);
+ if (uid == undefined) {
+ return undefined;
+ }
+ return new analytics_collector_1.AnalyticsCollector(exports.AnalyticsProperties.AngularCliDefault, uid);
+ }
+ }
+ catch (err) {
+ analyticsDebug('Error happened during reading of analytics config: %s', err.message);
+ return undefined;
+ }
+}
+exports.getWorkspaceAnalytics = getWorkspaceAnalytics;
+/**
+ * Return the usage analytics sharing setting, which is either a property string (GA-XXXXXXX-XX),
+ * or undefined if no sharing.
+ */
+async function getSharedAnalytics() {
+ analyticsDebug('getSharedAnalytics');
+ const envVarName = 'NG_CLI_ANALYTICS_SHARE';
+ if (envVarName in process.env) {
+ if (process.env[envVarName] == 'false' || process.env[envVarName] == '') {
+ analyticsDebug('NG_CLI_ANALYTICS is false');
+ return undefined;
+ }
+ }
+ // If anything happens we just keep the NOOP analytics.
+ try {
+ const globalWorkspace = await (0, config_1.getWorkspace)('global');
+ const analyticsConfig = globalWorkspace === null || globalWorkspace === void 0 ? void 0 : globalWorkspace.getCli()['analyticsSharing'];
+ if (!analyticsConfig || !analyticsConfig.tracking || !analyticsConfig.uuid) {
+ return undefined;
+ }
+ else {
+ analyticsDebug('Analytics sharing info: %j', analyticsConfig);
+ return new analytics_collector_1.AnalyticsCollector(analyticsConfig.tracking, analyticsConfig.uuid);
+ }
+ }
+ catch (err) {
+ analyticsDebug('Error happened during reading of analytics sharing config: %s', err.message);
+ return undefined;
+ }
+}
+exports.getSharedAnalytics = getSharedAnalytics;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/architect-command.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/architect-command.d.ts
new file mode 100644
index 00000000..5342db86
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/architect-command.d.ts
@@ -0,0 +1,35 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Architect, Target } from '@angular-devkit/architect';
+import { WorkspaceNodeModulesArchitectHost } from '@angular-devkit/architect/node';
+import { json } from '@angular-devkit/core';
+import { BaseCommandOptions, Command } from './command';
+import { Arguments } from './interface';
+export interface ArchitectCommandOptions extends BaseCommandOptions {
+ project?: string;
+ configuration?: string;
+ prod?: boolean;
+ target?: string;
+}
+export declare abstract class ArchitectCommand<T extends ArchitectCommandOptions = ArchitectCommandOptions> extends Command<T> {
+ protected _architect: Architect;
+ protected _architectHost: WorkspaceNodeModulesArchitectHost;
+ protected _registry: json.schema.SchemaRegistry;
+ protected readonly useReportAnalytics = false;
+ protected multiTarget: boolean;
+ target: string | undefined;
+ missingTargetError: string | undefined;
+ protected onMissingTarget(projectName?: string): Promise<void | number>;
+ initialize(options: T & Arguments): Promise<number | void>;
+ private warnOnMissingNodeModules;
+ run(options: ArchitectCommandOptions & Arguments): Promise<number>;
+ protected runSingleTarget(target: Target, targetOptions: string[]): Promise<0 | 1>;
+ protected runArchitectTarget(options: ArchitectCommandOptions & Arguments): Promise<number>;
+ private getProjectNamesByTarget;
+ private _makeTargetSpecifier;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/architect-command.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/architect-command.js
new file mode 100644
index 00000000..a3d73ace
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/architect-command.js
@@ -0,0 +1,388 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ArchitectCommand = void 0;
+const architect_1 = require("@angular-devkit/architect");
+const node_1 = require("@angular-devkit/architect/node");
+const core_1 = require("@angular-devkit/core");
+const fs_1 = require("fs");
+const path = __importStar(require("path"));
+const json_schema_1 = require("../utilities/json-schema");
+const package_manager_1 = require("../utilities/package-manager");
+const analytics_1 = require("./analytics");
+const command_1 = require("./command");
+const parser_1 = require("./parser");
+class ArchitectCommand extends command_1.Command {
+ constructor() {
+ super(...arguments);
+ this.useReportAnalytics = false;
+ // If this command supports running multiple targets.
+ this.multiTarget = false;
+ }
+ async onMissingTarget(projectName) {
+ if (this.missingTargetError) {
+ this.logger.fatal(this.missingTargetError);
+ return 1;
+ }
+ if (projectName) {
+ this.logger.fatal(`Project '${projectName}' does not support the '${this.target}' target.`);
+ }
+ else {
+ this.logger.fatal(`No projects support the '${this.target}' target.`);
+ }
+ return 1;
+ }
+ // eslint-disable-next-line max-lines-per-function
+ async initialize(options) {
+ this._registry = new core_1.json.schema.CoreSchemaRegistry();
+ this._registry.addPostTransform(core_1.json.schema.transforms.addUndefinedDefaults);
+ this._registry.useXDeprecatedProvider((msg) => this.logger.warn(msg));
+ if (!this.workspace) {
+ this.logger.fatal('A workspace is required for this command.');
+ return 1;
+ }
+ this._architectHost = new node_1.WorkspaceNodeModulesArchitectHost(this.workspace, this.workspace.basePath);
+ this._architect = new architect_1.Architect(this._architectHost, this._registry);
+ if (!this.target) {
+ if (options.help) {
+ // This is a special case where we just return.
+ return;
+ }
+ const specifier = this._makeTargetSpecifier(options);
+ if (!specifier.project || !specifier.target) {
+ this.logger.fatal('Cannot determine project or target for command.');
+ return 1;
+ }
+ return;
+ }
+ let projectName = options.project;
+ if (projectName && !this.workspace.projects.has(projectName)) {
+ this.logger.fatal(`Project '${projectName}' does not exist.`);
+ return 1;
+ }
+ const commandLeftovers = options['--'];
+ const targetProjectNames = [];
+ for (const [name, project] of this.workspace.projects) {
+ if (project.targets.has(this.target)) {
+ targetProjectNames.push(name);
+ }
+ }
+ if (projectName && !targetProjectNames.includes(projectName)) {
+ return await this.onMissingTarget(projectName);
+ }
+ if (targetProjectNames.length === 0) {
+ return await this.onMissingTarget();
+ }
+ if (!projectName && commandLeftovers && commandLeftovers.length > 0) {
+ const builderNames = new Set();
+ const leftoverMap = new Map();
+ let potentialProjectNames = new Set(targetProjectNames);
+ for (const name of targetProjectNames) {
+ const builderName = await this._architectHost.getBuilderNameForTarget({
+ project: name,
+ target: this.target,
+ });
+ if (this.multiTarget) {
+ builderNames.add(builderName);
+ }
+ let builderDesc;
+ try {
+ builderDesc = await this._architectHost.resolveBuilder(builderName);
+ }
+ catch (e) {
+ if (e.code === 'MODULE_NOT_FOUND') {
+ await this.warnOnMissingNodeModules(this.workspace.basePath);
+ this.logger.fatal(`Could not find the '${builderName}' builder's node package.`);
+ return 1;
+ }
+ throw e;
+ }
+ const optionDefs = await (0, json_schema_1.parseJsonSchemaToOptions)(this._registry, builderDesc.optionSchema);
+ const parsedOptions = (0, parser_1.parseArguments)([...commandLeftovers], optionDefs);
+ const builderLeftovers = parsedOptions['--'] || [];
+ leftoverMap.set(name, { optionDefs, parsedOptions });
+ potentialProjectNames = new Set(builderLeftovers.filter((x) => potentialProjectNames.has(x)));
+ }
+ if (potentialProjectNames.size === 1) {
+ projectName = [...potentialProjectNames][0];
+ // remove the project name from the leftovers
+ const optionInfo = leftoverMap.get(projectName);
+ if (optionInfo) {
+ const locations = [];
+ let i = 0;
+ while (i < commandLeftovers.length) {
+ i = commandLeftovers.indexOf(projectName, i + 1);
+ if (i === -1) {
+ break;
+ }
+ locations.push(i);
+ }
+ delete optionInfo.parsedOptions['--'];
+ for (const location of locations) {
+ const tempLeftovers = [...commandLeftovers];
+ tempLeftovers.splice(location, 1);
+ const tempArgs = (0, parser_1.parseArguments)([...tempLeftovers], optionInfo.optionDefs);
+ delete tempArgs['--'];
+ if (JSON.stringify(optionInfo.parsedOptions) === JSON.stringify(tempArgs)) {
+ options['--'] = tempLeftovers;
+ break;
+ }
+ }
+ }
+ }
+ if (!projectName && this.multiTarget && builderNames.size > 1) {
+ this.logger.fatal(core_1.tags.oneLine `
+ Architect commands with command line overrides cannot target different builders. The
+ '${this.target}' target would run on projects ${targetProjectNames.join()} which have the
+ following builders: ${'\n ' + [...builderNames].join('\n ')}
+ `);
+ return 1;
+ }
+ }
+ if (!projectName && !this.multiTarget) {
+ const defaultProjectName = this.workspace.extensions['defaultProject'];
+ if (targetProjectNames.length === 1) {
+ projectName = targetProjectNames[0];
+ }
+ else if (defaultProjectName && targetProjectNames.includes(defaultProjectName)) {
+ projectName = defaultProjectName;
+ }
+ else if (options.help) {
+ // This is a special case where we just return.
+ return;
+ }
+ else {
+ this.logger.fatal(this.missingTargetError || 'Cannot determine project or target for command.');
+ return 1;
+ }
+ }
+ options.project = projectName;
+ const builderConf = await this._architectHost.getBuilderNameForTarget({
+ project: projectName || (targetProjectNames.length > 0 ? targetProjectNames[0] : ''),
+ target: this.target,
+ });
+ let builderDesc;
+ try {
+ builderDesc = await this._architectHost.resolveBuilder(builderConf);
+ }
+ catch (e) {
+ if (e.code === 'MODULE_NOT_FOUND') {
+ await this.warnOnMissingNodeModules(this.workspace.basePath);
+ this.logger.fatal(`Could not find the '${builderConf}' builder's node package.`);
+ return 1;
+ }
+ throw e;
+ }
+ this.description.options.push(...(await (0, json_schema_1.parseJsonSchemaToOptions)(this._registry, builderDesc.optionSchema)));
+ // Update options to remove analytics from options if the builder isn't safelisted.
+ for (const o of this.description.options) {
+ if (o.userAnalytics && !(0, analytics_1.isPackageNameSafeForAnalytics)(builderConf)) {
+ o.userAnalytics = undefined;
+ }
+ }
+ }
+ async warnOnMissingNodeModules(basePath) {
+ // Check for a `node_modules` directory (npm, yarn non-PnP, etc.)
+ if ((0, fs_1.existsSync)(path.resolve(basePath, 'node_modules'))) {
+ return;
+ }
+ // Check for yarn PnP files
+ if ((0, fs_1.existsSync)(path.resolve(basePath, '.pnp.js')) ||
+ (0, fs_1.existsSync)(path.resolve(basePath, '.pnp.cjs')) ||
+ (0, fs_1.existsSync)(path.resolve(basePath, '.pnp.mjs'))) {
+ return;
+ }
+ const packageManager = await (0, package_manager_1.getPackageManager)(basePath);
+ let installSuggestion = 'Try installing with ';
+ switch (packageManager) {
+ case 'npm':
+ installSuggestion += `'npm install'`;
+ break;
+ case 'yarn':
+ installSuggestion += `'yarn'`;
+ break;
+ default:
+ installSuggestion += `the project's package manager`;
+ break;
+ }
+ this.logger.warn(`Node packages may not be installed. ${installSuggestion}.`);
+ }
+ async run(options) {
+ return await this.runArchitectTarget(options);
+ }
+ async runSingleTarget(target, targetOptions) {
+ // We need to build the builderSpec twice because architect does not understand
+ // overrides separately (getting the configuration builds the whole project, including
+ // overrides).
+ const builderConf = await this._architectHost.getBuilderNameForTarget(target);
+ let builderDesc;
+ try {
+ builderDesc = await this._architectHost.resolveBuilder(builderConf);
+ }
+ catch (e) {
+ if (e.code === 'MODULE_NOT_FOUND') {
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ await this.warnOnMissingNodeModules(this.workspace.basePath);
+ this.logger.fatal(`Could not find the '${builderConf}' builder's node package.`);
+ return 1;
+ }
+ throw e;
+ }
+ const targetOptionArray = await (0, json_schema_1.parseJsonSchemaToOptions)(this._registry, builderDesc.optionSchema);
+ const overrides = (0, parser_1.parseArguments)(targetOptions, targetOptionArray, this.logger);
+ const allowAdditionalProperties = typeof builderDesc.optionSchema === 'object' && builderDesc.optionSchema.additionalProperties;
+ if (overrides['--'] && !allowAdditionalProperties) {
+ (overrides['--'] || []).forEach((additional) => {
+ this.logger.fatal(`Unknown option: '${additional.split(/=/)[0]}'`);
+ });
+ return 1;
+ }
+ await this.reportAnalytics([this.description.name], {
+ ...(await this._architectHost.getOptionsForTarget(target)),
+ ...overrides,
+ });
+ const run = await this._architect.scheduleTarget(target, overrides, {
+ logger: this.logger,
+ analytics: (0, analytics_1.isPackageNameSafeForAnalytics)(builderConf) ? this.analytics : undefined,
+ });
+ const { error, success } = await run.output.toPromise();
+ await run.stop();
+ if (error) {
+ this.logger.error(error);
+ }
+ return success ? 0 : 1;
+ }
+ async runArchitectTarget(options) {
+ var _a;
+ const extra = options['--'] || [];
+ try {
+ const targetSpec = this._makeTargetSpecifier(options);
+ if (!targetSpec.project && this.target) {
+ // This runs each target sequentially.
+ // Running them in parallel would jumble the log messages.
+ let result = 0;
+ for (const project of this.getProjectNamesByTarget(this.target)) {
+ result |= await this.runSingleTarget({ ...targetSpec, project }, extra);
+ }
+ return result;
+ }
+ else {
+ return await this.runSingleTarget(targetSpec, extra);
+ }
+ }
+ catch (e) {
+ if (e instanceof core_1.schema.SchemaValidationException) {
+ const newErrors = [];
+ for (const schemaError of e.errors) {
+ if (schemaError.keyword === 'additionalProperties') {
+ const unknownProperty = (_a = schemaError.params) === null || _a === void 0 ? void 0 : _a.additionalProperty;
+ if (unknownProperty in options) {
+ const dashes = unknownProperty.length === 1 ? '-' : '--';
+ this.logger.fatal(`Unknown option: '${dashes}${unknownProperty}'`);
+ continue;
+ }
+ }
+ newErrors.push(schemaError);
+ }
+ if (newErrors.length > 0) {
+ this.logger.error(new core_1.schema.SchemaValidationException(newErrors).message);
+ }
+ return 1;
+ }
+ else {
+ throw e;
+ }
+ }
+ }
+ getProjectNamesByTarget(targetName) {
+ const allProjectsForTargetName = [];
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ for (const [name, project] of this.workspace.projects) {
+ if (project.targets.has(targetName)) {
+ allProjectsForTargetName.push(name);
+ }
+ }
+ if (this.multiTarget) {
+ // For multi target commands, we always list all projects that have the target.
+ return allProjectsForTargetName;
+ }
+ else {
+ // For single target commands, we try the default project first,
+ // then the full list if it has a single project, then error out.
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ const maybeDefaultProject = this.workspace.extensions['defaultProject'];
+ if (maybeDefaultProject && allProjectsForTargetName.includes(maybeDefaultProject)) {
+ return [maybeDefaultProject];
+ }
+ if (allProjectsForTargetName.length === 1) {
+ return allProjectsForTargetName;
+ }
+ throw new Error(`Could not determine a single project for the '${targetName}' target.`);
+ }
+ }
+ _makeTargetSpecifier(commandOptions) {
+ var _a, _b, _c;
+ let project, target, configuration;
+ if (commandOptions.target) {
+ [project, target, configuration] = commandOptions.target.split(':');
+ if (commandOptions.configuration) {
+ configuration = commandOptions.configuration;
+ }
+ }
+ else {
+ project = commandOptions.project;
+ target = this.target;
+ if (commandOptions.prod) {
+ const defaultConfig = project &&
+ target &&
+ ((_c = (_b = (_a = this.workspace) === null || _a === void 0 ? void 0 : _a.projects.get(project)) === null || _b === void 0 ? void 0 : _b.targets.get(target)) === null || _c === void 0 ? void 0 : _c.defaultConfiguration);
+ this.logger.warn(defaultConfig === 'production'
+ ? 'Option "--prod" is deprecated: No need to use this option as this builder defaults to configuration "production".'
+ : 'Option "--prod" is deprecated: Use "--configuration production" instead.');
+ // The --prod flag will always be the first configuration, available to be overwritten
+ // by following configurations.
+ configuration = 'production';
+ }
+ if (commandOptions.configuration) {
+ configuration = `${configuration ? `${configuration},` : ''}${commandOptions.configuration}`;
+ }
+ }
+ if (!project) {
+ project = '';
+ }
+ if (!target) {
+ target = '';
+ }
+ return {
+ project,
+ configuration: configuration || '',
+ target,
+ };
+ }
+}
+exports.ArchitectCommand = ArchitectCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command-runner.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command-runner.d.ts
new file mode 100644
index 00000000..4600d055
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command-runner.d.ts
@@ -0,0 +1,24 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { analytics, logging } from '@angular-devkit/core';
+import { AngularWorkspace } from '../utilities/config';
+export interface CommandMapOptions {
+ [key: string]: string;
+}
+/**
+ * Run a command.
+ * @param args Raw unparsed arguments.
+ * @param logger The logger to use.
+ * @param workspace Workspace information.
+ * @param commands The map of supported commands.
+ * @param options Additional options.
+ */
+export declare function runCommand(args: string[], logger: logging.Logger, workspace: AngularWorkspace | undefined, commands?: CommandMapOptions, options?: {
+ analytics?: analytics.Analytics;
+ currentDirectory: string;
+}): Promise<number | void>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command-runner.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command-runner.js
new file mode 100644
index 00000000..d252dcfb
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command-runner.js
@@ -0,0 +1,241 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.runCommand = void 0;
+const core_1 = require("@angular-devkit/core");
+const fs_1 = require("fs");
+const path_1 = require("path");
+const json_file_1 = require("../utilities/json-file");
+const json_schema_1 = require("../utilities/json-schema");
+const analytics_1 = require("./analytics");
+const command_1 = require("./command");
+const parser = __importStar(require("./parser"));
+// NOTE: Update commands.json if changing this. It's still deep imported in one CI validation
+const standardCommands = {
+ 'add': '../commands/add.json',
+ 'analytics': '../commands/analytics.json',
+ 'build': '../commands/build.json',
+ 'deploy': '../commands/deploy.json',
+ 'config': '../commands/config.json',
+ 'doc': '../commands/doc.json',
+ 'e2e': '../commands/e2e.json',
+ 'extract-i18n': '../commands/extract-i18n.json',
+ 'make-this-awesome': '../commands/easter-egg.json',
+ 'generate': '../commands/generate.json',
+ 'help': '../commands/help.json',
+ 'lint': '../commands/lint.json',
+ 'new': '../commands/new.json',
+ 'run': '../commands/run.json',
+ 'serve': '../commands/serve.json',
+ 'test': '../commands/test.json',
+ 'update': '../commands/update.json',
+ 'version': '../commands/version.json',
+};
+/**
+ * Create the analytics instance.
+ * @private
+ */
+async function _createAnalytics(workspace, skipPrompt = false) {
+ let config = await (0, analytics_1.getGlobalAnalytics)();
+ // If in workspace and global analytics is enabled, defer to workspace level
+ if (workspace && config) {
+ const skipAnalytics = skipPrompt ||
+ (process.env['NG_CLI_ANALYTICS'] &&
+ (process.env['NG_CLI_ANALYTICS'].toLowerCase() === 'false' ||
+ process.env['NG_CLI_ANALYTICS'] === '0'));
+ // TODO: This should honor the `no-interactive` option.
+ // It is currently not an `ng` option but rather only an option for specific commands.
+ // The concept of `ng`-wide options are needed to cleanly handle this.
+ if (!skipAnalytics && !(await (0, analytics_1.hasWorkspaceAnalyticsConfiguration)())) {
+ await (0, analytics_1.promptProjectAnalytics)();
+ }
+ config = await (0, analytics_1.getWorkspaceAnalytics)();
+ }
+ const maybeSharedAnalytics = await (0, analytics_1.getSharedAnalytics)();
+ if (config && maybeSharedAnalytics) {
+ return new core_1.analytics.MultiAnalytics([config, maybeSharedAnalytics]);
+ }
+ else if (config) {
+ return config;
+ }
+ else if (maybeSharedAnalytics) {
+ return maybeSharedAnalytics;
+ }
+ else {
+ return new core_1.analytics.NoopAnalytics();
+ }
+}
+async function loadCommandDescription(name, path, registry) {
+ const schemaPath = (0, path_1.resolve)(__dirname, path);
+ const schema = (0, json_file_1.readAndParseJson)(schemaPath);
+ if (!(0, core_1.isJsonObject)(schema)) {
+ throw new Error('Invalid command JSON loaded from ' + JSON.stringify(schemaPath));
+ }
+ return (0, json_schema_1.parseJsonSchemaToCommandDescription)(name, schemaPath, registry, schema);
+}
+/**
+ * Run a command.
+ * @param args Raw unparsed arguments.
+ * @param logger The logger to use.
+ * @param workspace Workspace information.
+ * @param commands The map of supported commands.
+ * @param options Additional options.
+ */
+async function runCommand(args, logger, workspace, commands = standardCommands, options = {
+ currentDirectory: process.cwd(),
+}) {
+ var _a;
+ // This registry is exclusively used for flattening schemas, and not for validating.
+ const registry = new core_1.schema.CoreSchemaRegistry([]);
+ registry.registerUriHandler((uri) => {
+ if (uri.startsWith('ng-cli://')) {
+ const content = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', uri.substr('ng-cli://'.length)), 'utf-8');
+ return Promise.resolve(JSON.parse(content));
+ }
+ else {
+ return null;
+ }
+ });
+ let commandName = undefined;
+ for (let i = 0; i < args.length; i++) {
+ const arg = args[i];
+ if (!arg.startsWith('-')) {
+ commandName = arg;
+ args.splice(i, 1);
+ break;
+ }
+ }
+ let description = null;
+ // if no commands were found, use `help`.
+ if (!commandName) {
+ if (args.length === 1 && args[0] === '--version') {
+ commandName = 'version';
+ }
+ else {
+ commandName = 'help';
+ }
+ if (!(commandName in commands)) {
+ logger.error(core_1.tags.stripIndent `
+ The "${commandName}" command seems to be disabled.
+ This is an issue with the CLI itself. If you see this comment, please report it and
+ provide your repository.
+ `);
+ return 1;
+ }
+ }
+ if (commandName in commands) {
+ description = await loadCommandDescription(commandName, commands[commandName], registry);
+ }
+ else {
+ const commandNames = Object.keys(commands);
+ // Optimize loading for common aliases
+ if (commandName.length === 1) {
+ commandNames.sort((a, b) => {
+ const aMatch = a[0] === commandName;
+ const bMatch = b[0] === commandName;
+ if (aMatch && !bMatch) {
+ return -1;
+ }
+ else if (!aMatch && bMatch) {
+ return 1;
+ }
+ else {
+ return 0;
+ }
+ });
+ }
+ for (const name of commandNames) {
+ const aliasDesc = await loadCommandDescription(name, commands[name], registry);
+ const aliases = aliasDesc.aliases;
+ if (aliases && aliases.some((alias) => alias === commandName)) {
+ commandName = name;
+ description = aliasDesc;
+ break;
+ }
+ }
+ }
+ if (!description) {
+ const commandsDistance = {};
+ const name = commandName;
+ const allCommands = Object.keys(commands).sort((a, b) => {
+ if (!(a in commandsDistance)) {
+ commandsDistance[a] = core_1.strings.levenshtein(a, name);
+ }
+ if (!(b in commandsDistance)) {
+ commandsDistance[b] = core_1.strings.levenshtein(b, name);
+ }
+ return commandsDistance[a] - commandsDistance[b];
+ });
+ logger.error(core_1.tags.stripIndent `
+ The specified command ("${commandName}") is invalid. For a list of available options,
+ run "ng help".
+
+ Did you mean "${allCommands[0]}"?
+ `);
+ return 1;
+ }
+ try {
+ const parsedOptions = parser.parseArguments(args, description.options, logger);
+ command_1.Command.setCommandMap(async () => {
+ const map = {};
+ for (const [name, path] of Object.entries(commands)) {
+ map[name] = await loadCommandDescription(name, path, registry);
+ }
+ return map;
+ });
+ const analytics = options.analytics || (await _createAnalytics(!!workspace, description.name === 'update'));
+ const context = {
+ workspace,
+ analytics,
+ currentDirectory: options.currentDirectory,
+ root: (_a = workspace === null || workspace === void 0 ? void 0 : workspace.basePath) !== null && _a !== void 0 ? _a : options.currentDirectory,
+ };
+ const command = new description.impl(context, description, logger);
+ // Flush on an interval (if the event loop is waiting).
+ let analyticsFlushPromise = Promise.resolve();
+ const analyticsFlushInterval = setInterval(() => {
+ analyticsFlushPromise = analyticsFlushPromise.then(() => analytics.flush());
+ }, 1000);
+ const result = await command.validateAndRun(parsedOptions);
+ // Flush one last time.
+ clearInterval(analyticsFlushInterval);
+ await analyticsFlushPromise.then(() => analytics.flush());
+ return result;
+ }
+ catch (e) {
+ if (e instanceof parser.ParseArgumentException) {
+ logger.fatal('Cannot parse arguments. See below for the reasons.');
+ logger.fatal(' ' + e.comments.join('\n '));
+ return 1;
+ }
+ else {
+ throw e;
+ }
+ }
+}
+exports.runCommand = runCommand;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command.d.ts
new file mode 100644
index 00000000..cb3338c2
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command.d.ts
@@ -0,0 +1,34 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { analytics, logging } from '@angular-devkit/core';
+import { AngularWorkspace } from '../utilities/config';
+import { Arguments, CommandContext, CommandDescription, CommandDescriptionMap, CommandScope, Option } from './interface';
+export interface BaseCommandOptions {
+ help?: boolean | string;
+}
+export declare abstract class Command<T extends BaseCommandOptions = BaseCommandOptions> {
+ protected readonly context: CommandContext;
+ readonly description: CommandDescription;
+ protected readonly logger: logging.Logger;
+ protected allowMissingWorkspace: boolean;
+ protected useReportAnalytics: boolean;
+ readonly workspace?: AngularWorkspace;
+ readonly analytics: analytics.Analytics;
+ protected static commandMap: () => Promise<CommandDescriptionMap>;
+ static setCommandMap(map: () => Promise<CommandDescriptionMap>): void;
+ constructor(context: CommandContext, description: CommandDescription, logger: logging.Logger);
+ initialize(options: T & Arguments): Promise<number | void>;
+ printHelp(): Promise<number>;
+ printJsonHelp(): Promise<number>;
+ protected printHelpUsage(): Promise<void>;
+ protected printHelpOptions(options?: Option[]): Promise<void>;
+ validateScope(scope?: CommandScope): Promise<void>;
+ reportAnalytics(paths: string[], options: Arguments, dimensions?: (boolean | number | string)[], metrics?: (boolean | number | string)[]): Promise<void>;
+ abstract run(options: T & Arguments): Promise<number | void>;
+ validateAndRun(options: T & Arguments): Promise<number | void>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command.js
new file mode 100644
index 00000000..9b0809fe
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/command.js
@@ -0,0 +1,143 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Command = void 0;
+const core_1 = require("@angular-devkit/core");
+const color_1 = require("../utilities/color");
+const interface_1 = require("./interface");
+class Command {
+ constructor(context, description, logger) {
+ this.context = context;
+ this.description = description;
+ this.logger = logger;
+ this.allowMissingWorkspace = false;
+ this.useReportAnalytics = true;
+ this.workspace = context.workspace;
+ this.analytics = context.analytics || new core_1.analytics.NoopAnalytics();
+ }
+ static setCommandMap(map) {
+ this.commandMap = map;
+ }
+ async initialize(options) { }
+ async printHelp() {
+ await this.printHelpUsage();
+ await this.printHelpOptions();
+ return 0;
+ }
+ async printJsonHelp() {
+ const replacer = (key, value) => key === 'name' ? core_1.strings.dasherize(value) : value;
+ this.logger.info(JSON.stringify(this.description, replacer, 2));
+ return 0;
+ }
+ async printHelpUsage() {
+ this.logger.info(this.description.description);
+ const name = this.description.name;
+ const args = this.description.options.filter((x) => x.positional !== undefined);
+ const opts = this.description.options.filter((x) => x.positional === undefined);
+ const argDisplay = args && args.length > 0 ? ' ' + args.map((a) => `<${a.name}>`).join(' ') : '';
+ const optionsDisplay = opts && opts.length > 0 ? ` [options]` : ``;
+ this.logger.info(`usage: ng ${name}${argDisplay}${optionsDisplay}`);
+ this.logger.info('');
+ }
+ async printHelpOptions(options = this.description.options) {
+ const args = options.filter((opt) => opt.positional !== undefined);
+ const opts = options.filter((opt) => opt.positional === undefined);
+ const formatDescription = (description) => ` ${description.replace(/\n/g, '\n ')}`;
+ if (args.length > 0) {
+ this.logger.info(`arguments:`);
+ args.forEach((o) => {
+ this.logger.info(` ${color_1.colors.cyan(o.name)}`);
+ if (o.description) {
+ this.logger.info(formatDescription(o.description));
+ }
+ });
+ }
+ if (options.length > 0) {
+ if (args.length > 0) {
+ this.logger.info('');
+ }
+ this.logger.info(`options:`);
+ opts
+ .filter((o) => !o.hidden)
+ .sort((a, b) => a.name.localeCompare(b.name))
+ .forEach((o) => {
+ const aliases = o.aliases && o.aliases.length > 0
+ ? '(' + o.aliases.map((a) => `-${a}`).join(' ') + ')'
+ : '';
+ this.logger.info(` ${color_1.colors.cyan('--' + core_1.strings.dasherize(o.name))} ${aliases}`);
+ if (o.description) {
+ this.logger.info(formatDescription(o.description));
+ }
+ });
+ }
+ }
+ async validateScope(scope) {
+ switch (scope === undefined ? this.description.scope : scope) {
+ case interface_1.CommandScope.OutProject:
+ if (this.workspace) {
+ this.logger.fatal(core_1.tags.oneLine `
+ The ${this.description.name} command requires to be run outside of a project, but a
+ project definition was found at "${this.workspace.filePath}".
+ `);
+ // eslint-disable-next-line no-throw-literal
+ throw 1;
+ }
+ break;
+ case interface_1.CommandScope.InProject:
+ if (!this.workspace) {
+ this.logger.fatal(core_1.tags.oneLine `
+ The ${this.description.name} command requires to be run in an Angular project, but a
+ project definition could not be found.
+ `);
+ // eslint-disable-next-line no-throw-literal
+ throw 1;
+ }
+ break;
+ case interface_1.CommandScope.Everywhere:
+ // Can't miss this.
+ break;
+ }
+ }
+ async reportAnalytics(paths, options, dimensions = [], metrics = []) {
+ for (const option of this.description.options) {
+ const ua = option.userAnalytics;
+ const v = options[option.name];
+ if (v !== undefined && !Array.isArray(v) && ua) {
+ dimensions[ua] = v;
+ }
+ }
+ this.analytics.pageview('/command/' + paths.join('/'), { dimensions, metrics });
+ }
+ async validateAndRun(options) {
+ if (!(options.help === true || options.help === 'json' || options.help === 'JSON')) {
+ await this.validateScope();
+ }
+ let result = await this.initialize(options);
+ if (typeof result === 'number' && result !== 0) {
+ return result;
+ }
+ if (options.help === true) {
+ return this.printHelp();
+ }
+ else if (options.help === 'json' || options.help === 'JSON') {
+ return this.printJsonHelp();
+ }
+ else {
+ const startTime = +new Date();
+ if (this.useReportAnalytics) {
+ await this.reportAnalytics([this.description.name], options);
+ }
+ result = await this.run(options);
+ const endTime = +new Date();
+ this.analytics.timing(this.description.name, 'duration', endTime - startTime);
+ return result;
+ }
+ }
+}
+exports.Command = Command;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/interface.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/interface.d.ts
new file mode 100644
index 00000000..02bd8ccc
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/interface.d.ts
@@ -0,0 +1,196 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { analytics, json, logging } from '@angular-devkit/core';
+import { AngularWorkspace } from '../utilities/config';
+/**
+ * Value type of arguments.
+ */
+export declare type Value = number | string | boolean | (number | string | boolean)[];
+/**
+ * An object representing parsed arguments from the command line.
+ */
+export interface Arguments {
+ [argName: string]: Value | undefined;
+ /**
+ * Extra arguments that were not parsed. Will be omitted if all arguments were parsed.
+ */
+ '--'?: string[];
+}
+/**
+ * The base interface for Command, understood by the command runner.
+ */
+export interface CommandInterface<T extends Arguments = Arguments> {
+ printHelp(options: T): Promise<number>;
+ printJsonHelp(options: T): Promise<number>;
+ validateAndRun(options: T): Promise<number>;
+}
+/**
+ * Command constructor.
+ */
+export interface CommandConstructor {
+ new (context: CommandContext, description: CommandDescription, logger: logging.Logger): CommandInterface;
+}
+/**
+ * A command runner context.
+ */
+export interface CommandContext {
+ currentDirectory: string;
+ root: string;
+ workspace?: AngularWorkspace;
+ analytics?: analytics.Analytics;
+}
+/**
+ * Value types of an Option.
+ */
+export declare enum OptionType {
+ Any = "any",
+ Array = "array",
+ Boolean = "boolean",
+ Number = "number",
+ String = "string"
+}
+/**
+ * An option description. This is exposed when using `ng --help=json`.
+ */
+export interface Option {
+ /**
+ * The name of the option.
+ */
+ name: string;
+ /**
+ * A short description of the option.
+ */
+ description: string;
+ /**
+ * The type of option value. If multiple types exist, this type will be the first one, and the
+ * types array will contain all types accepted.
+ */
+ type: OptionType;
+ /**
+ * {@see type}
+ */
+ types?: OptionType[];
+ /**
+ * If this field is set, only values contained in this field are valid. This array can be mixed
+ * types (strings, numbers, boolean). For example, if this field is "enum: ['hello', true]",
+ * then "type" will be either string or boolean, types will be at least both, and the values
+ * accepted will only be either 'hello' or true (not false or any other string).
+ * This mean that prefixing with `no-` will not work on this field.
+ */
+ enum?: Value[];
+ /**
+ * If this option maps to a subcommand in the parent command, will contain all the subcommands
+ * supported. There is a maximum of 1 subcommand Option per command, and the type of this
+ * option will always be "string" (no other types). The value of this option will map into
+ * this map and return the extra information.
+ */
+ subcommands?: {
+ [name: string]: SubCommandDescription;
+ };
+ /**
+ * Aliases supported by this option.
+ */
+ aliases: string[];
+ /**
+ * Whether this option is required or not.
+ */
+ required?: boolean;
+ /**
+ * Format field of this option.
+ */
+ format?: string;
+ /**
+ * Whether this option should be hidden from the help output. It will still show up in JSON help.
+ */
+ hidden?: boolean;
+ /**
+ * Default value of this option.
+ */
+ default?: string | number | boolean;
+ /**
+ * If this option can be used as an argument, the position of the argument. Otherwise omitted.
+ */
+ positional?: number;
+ /**
+ * Smart default object.
+ */
+ $default?: OptionSmartDefault;
+ /**
+ * Whether or not to report this option to the Angular Team, and which custom field to use.
+ * If this is falsey, do not report this option.
+ */
+ userAnalytics?: number;
+ /**
+ * Deprecation. If this flag is not false a warning will be shown on the console. Either `true`
+ * or a string to show the user as a notice.
+ */
+ deprecated?: boolean | string;
+}
+/**
+ * Scope of the command.
+ */
+export declare enum CommandScope {
+ InProject = "in",
+ OutProject = "out",
+ Everywhere = "all",
+ Default = "in"
+}
+/**
+ * A description of a command and its options.
+ */
+export interface SubCommandDescription {
+ /**
+ * The name of the subcommand.
+ */
+ name: string;
+ /**
+ * Short description (1-2 lines) of this sub command.
+ */
+ description: string;
+ /**
+ * A long description of the sub command, in Markdown format.
+ */
+ longDescription?: string;
+ /**
+ * Additional notes about usage of this sub command, in Markdown format.
+ */
+ usageNotes?: string;
+ /**
+ * List of all supported options.
+ */
+ options: Option[];
+ /**
+ * Aliases supported for this sub command.
+ */
+ aliases: string[];
+}
+/**
+ * A description of a command, its metadata.
+ */
+export interface CommandDescription extends SubCommandDescription {
+ /**
+ * Scope of the command, whether it can be executed in a project, outside of a project or
+ * anywhere.
+ */
+ scope: CommandScope;
+ /**
+ * Whether this command should be hidden from a list of all commands.
+ */
+ hidden: boolean;
+ /**
+ * The constructor of the command, which should be extending the abstract Command<> class.
+ */
+ impl: CommandConstructor;
+}
+export interface OptionSmartDefault {
+ $source: string;
+ [key: string]: json.JsonValue;
+}
+export interface CommandDescriptionMap {
+ [key: string]: CommandDescription;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/interface.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/interface.js
new file mode 100644
index 00000000..86ed64ad
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/interface.js
@@ -0,0 +1,31 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.CommandScope = exports.OptionType = void 0;
+/**
+ * Value types of an Option.
+ */
+var OptionType;
+(function (OptionType) {
+ OptionType["Any"] = "any";
+ OptionType["Array"] = "array";
+ OptionType["Boolean"] = "boolean";
+ OptionType["Number"] = "number";
+ OptionType["String"] = "string";
+})(OptionType = exports.OptionType || (exports.OptionType = {}));
+/**
+ * Scope of the command.
+ */
+var CommandScope;
+(function (CommandScope) {
+ CommandScope["InProject"] = "in";
+ CommandScope["OutProject"] = "out";
+ CommandScope["Everywhere"] = "all";
+ CommandScope["Default"] = "in";
+})(CommandScope = exports.CommandScope || (exports.CommandScope = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/parser.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/parser.d.ts
new file mode 100644
index 00000000..3a7016ec
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/parser.d.ts
@@ -0,0 +1,39 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { BaseException, logging } from '@angular-devkit/core';
+import { Arguments, Option } from './interface';
+export declare class ParseArgumentException extends BaseException {
+ readonly comments: string[];
+ readonly parsed: Arguments;
+ readonly ignored: string[];
+ constructor(comments: string[], parsed: Arguments, ignored: string[]);
+}
+/**
+ * Parse the arguments in a consistent way, but without having any option definition. This tries
+ * to assess what the user wants in a free form. For example, using `--name=false` will set the
+ * name properties to a boolean type.
+ * This should only be used when there's no schema available or if a schema is "true" (anything is
+ * valid).
+ *
+ * @param args Argument list to parse.
+ * @returns An object that contains a property per flags from the args.
+ */
+export declare function parseFreeFormArguments(args: string[]): Arguments;
+/**
+ * Parse the arguments in a consistent way, from a list of standardized options.
+ * The result object will have a key per option name, with the `_` key reserved for positional
+ * arguments, and `--` will contain everything that did not match. Any key that don't have an
+ * option will be pushed back in `--` and removed from the object. If you need to validate that
+ * there's no additionalProperties, you need to check the `--` key.
+ *
+ * @param args The argument array to parse.
+ * @param options List of supported options. {@see Option}.
+ * @param logger Logger to use to warn users.
+ * @returns An object that contains a property per option.
+ */
+export declare function parseArguments(args: string[], options: Option[] | null, logger?: logging.Logger): Arguments;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/parser.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/parser.js
new file mode 100644
index 00000000..c8b26070
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/parser.js
@@ -0,0 +1,349 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.parseArguments = exports.parseFreeFormArguments = exports.ParseArgumentException = void 0;
+const core_1 = require("@angular-devkit/core");
+const interface_1 = require("./interface");
+class ParseArgumentException extends core_1.BaseException {
+ constructor(comments, parsed, ignored) {
+ super(`One or more errors occurred while parsing arguments:\n ${comments.join('\n ')}`);
+ this.comments = comments;
+ this.parsed = parsed;
+ this.ignored = ignored;
+ }
+}
+exports.ParseArgumentException = ParseArgumentException;
+function _coerceType(str, type, v) {
+ switch (type) {
+ case interface_1.OptionType.Any:
+ if (Array.isArray(v)) {
+ return v.concat(str || '');
+ }
+ return _coerceType(str, interface_1.OptionType.Boolean, v) !== undefined
+ ? _coerceType(str, interface_1.OptionType.Boolean, v)
+ : _coerceType(str, interface_1.OptionType.Number, v) !== undefined
+ ? _coerceType(str, interface_1.OptionType.Number, v)
+ : _coerceType(str, interface_1.OptionType.String, v);
+ case interface_1.OptionType.String:
+ return str || '';
+ case interface_1.OptionType.Boolean:
+ switch (str) {
+ case 'false':
+ return false;
+ case undefined:
+ case '':
+ case 'true':
+ return true;
+ default:
+ return undefined;
+ }
+ case interface_1.OptionType.Number:
+ if (str === undefined) {
+ return 0;
+ }
+ else if (str === '') {
+ return undefined;
+ }
+ else if (Number.isFinite(+str)) {
+ return +str;
+ }
+ else {
+ return undefined;
+ }
+ case interface_1.OptionType.Array:
+ return Array.isArray(v)
+ ? v.concat(str || '')
+ : v === undefined
+ ? [str || '']
+ : [v + '', str || ''];
+ default:
+ return undefined;
+ }
+}
+function _coerce(str, o, v) {
+ if (!o) {
+ return _coerceType(str, interface_1.OptionType.Any, v);
+ }
+ else {
+ const types = o.types || [o.type];
+ // Try all the types one by one and pick the first one that returns a value contained in the
+ // enum. If there's no enum, just return the first one that matches.
+ for (const type of types) {
+ const maybeResult = _coerceType(str, type, v);
+ if (maybeResult !== undefined && (!o.enum || o.enum.includes(maybeResult))) {
+ return maybeResult;
+ }
+ }
+ return undefined;
+ }
+}
+function _getOptionFromName(name, options) {
+ const camelName = /(-|_)/.test(name) ? core_1.strings.camelize(name) : name;
+ for (const option of options) {
+ if (option.name === name || option.name === camelName) {
+ return option;
+ }
+ if (option.aliases.some((x) => x === name || x === camelName)) {
+ return option;
+ }
+ }
+ return undefined;
+}
+function _removeLeadingDashes(key) {
+ const from = key.startsWith('--') ? 2 : key.startsWith('-') ? 1 : 0;
+ return key.substr(from);
+}
+function _assignOption(arg, nextArg, { options, parsedOptions, leftovers, ignored, errors, warnings, }) {
+ const from = arg.startsWith('--') ? 2 : 1;
+ let consumedNextArg = false;
+ let key = arg.substr(from);
+ let option = null;
+ let value = '';
+ const i = arg.indexOf('=');
+ // If flag is --no-abc AND there's no equal sign.
+ if (i == -1) {
+ if (key.startsWith('no')) {
+ // Only use this key if the option matching the rest is a boolean.
+ const from = key.startsWith('no-') ? 3 : 2;
+ const maybeOption = _getOptionFromName(core_1.strings.camelize(key.substr(from)), options);
+ if (maybeOption && maybeOption.type == 'boolean') {
+ value = 'false';
+ option = maybeOption;
+ }
+ }
+ if (option === null) {
+ // Set it to true if it's a boolean and the next argument doesn't match true/false.
+ const maybeOption = _getOptionFromName(key, options);
+ if (maybeOption) {
+ value = nextArg;
+ let shouldShift = true;
+ if (value && value.startsWith('-') && _coerce(undefined, maybeOption) !== undefined) {
+ // Verify if not having a value results in a correct parse, if so don't shift.
+ shouldShift = false;
+ }
+ // Only absorb it if it leads to a better value.
+ if (shouldShift && _coerce(value, maybeOption) !== undefined) {
+ consumedNextArg = true;
+ }
+ else {
+ value = '';
+ }
+ option = maybeOption;
+ }
+ }
+ }
+ else {
+ key = arg.substring(0, i);
+ option = _getOptionFromName(_removeLeadingDashes(key), options) || null;
+ if (option) {
+ value = arg.substring(i + 1);
+ }
+ }
+ if (option === null) {
+ if (nextArg && !nextArg.startsWith('-')) {
+ leftovers.push(arg, nextArg);
+ consumedNextArg = true;
+ }
+ else {
+ leftovers.push(arg);
+ }
+ }
+ else {
+ const v = _coerce(value, option, parsedOptions[option.name]);
+ if (v !== undefined) {
+ if (parsedOptions[option.name] !== v) {
+ if (parsedOptions[option.name] !== undefined && option.type !== interface_1.OptionType.Array) {
+ warnings.push(`Option ${JSON.stringify(option.name)} was already specified with value ` +
+ `${JSON.stringify(parsedOptions[option.name])}. The new value ${JSON.stringify(v)} ` +
+ `will override it.`);
+ }
+ parsedOptions[option.name] = v;
+ }
+ }
+ else {
+ let error = `Argument ${key} could not be parsed using value ${JSON.stringify(value)}.`;
+ if (option.enum) {
+ error += ` Valid values are: ${option.enum.map((x) => JSON.stringify(x)).join(', ')}.`;
+ }
+ else {
+ error += `Valid type(s) is: ${(option.types || [option.type]).join(', ')}`;
+ }
+ errors.push(error);
+ ignored.push(arg);
+ }
+ if (/^[a-z]+[A-Z]/.test(key)) {
+ warnings.push('Support for camel case arguments has been deprecated and will be removed in a future major version.\n' +
+ `Use '--${core_1.strings.dasherize(key)}' instead of '--${key}'.`);
+ }
+ }
+ return consumedNextArg;
+}
+/**
+ * Parse the arguments in a consistent way, but without having any option definition. This tries
+ * to assess what the user wants in a free form. For example, using `--name=false` will set the
+ * name properties to a boolean type.
+ * This should only be used when there's no schema available or if a schema is "true" (anything is
+ * valid).
+ *
+ * @param args Argument list to parse.
+ * @returns An object that contains a property per flags from the args.
+ */
+function parseFreeFormArguments(args) {
+ const parsedOptions = {};
+ const leftovers = [];
+ for (let arg = args.shift(); arg !== undefined; arg = args.shift()) {
+ if (arg == '--') {
+ leftovers.push(...args);
+ break;
+ }
+ if (arg.startsWith('--')) {
+ const eqSign = arg.indexOf('=');
+ let name;
+ let value;
+ if (eqSign !== -1) {
+ name = arg.substring(2, eqSign);
+ value = arg.substring(eqSign + 1);
+ }
+ else {
+ name = arg.substr(2);
+ value = args.shift();
+ }
+ const v = _coerce(value, null, parsedOptions[name]);
+ if (v !== undefined) {
+ parsedOptions[name] = v;
+ }
+ }
+ else if (arg.startsWith('-')) {
+ arg.split('').forEach((x) => (parsedOptions[x] = true));
+ }
+ else {
+ leftovers.push(arg);
+ }
+ }
+ if (leftovers.length) {
+ parsedOptions['--'] = leftovers;
+ }
+ return parsedOptions;
+}
+exports.parseFreeFormArguments = parseFreeFormArguments;
+/**
+ * Parse the arguments in a consistent way, from a list of standardized options.
+ * The result object will have a key per option name, with the `_` key reserved for positional
+ * arguments, and `--` will contain everything that did not match. Any key that don't have an
+ * option will be pushed back in `--` and removed from the object. If you need to validate that
+ * there's no additionalProperties, you need to check the `--` key.
+ *
+ * @param args The argument array to parse.
+ * @param options List of supported options. {@see Option}.
+ * @param logger Logger to use to warn users.
+ * @returns An object that contains a property per option.
+ */
+function parseArguments(args, options, logger) {
+ if (options === null) {
+ options = [];
+ }
+ const leftovers = [];
+ const positionals = [];
+ const parsedOptions = {};
+ const ignored = [];
+ const errors = [];
+ const warnings = [];
+ const state = { options, parsedOptions, positionals, leftovers, ignored, errors, warnings };
+ for (let argIndex = 0; argIndex < args.length; argIndex++) {
+ const arg = args[argIndex];
+ let consumedNextArg = false;
+ if (arg == '--') {
+ // If we find a --, we're done.
+ leftovers.push(...args.slice(argIndex + 1));
+ break;
+ }
+ if (arg.startsWith('--')) {
+ consumedNextArg = _assignOption(arg, args[argIndex + 1], state);
+ }
+ else if (arg.startsWith('-')) {
+ // Argument is of form -abcdef. Starts at 1 because we skip the `-`.
+ for (let i = 1; i < arg.length; i++) {
+ const flag = arg[i];
+ // If the next character is an '=', treat it as a long flag.
+ if (arg[i + 1] == '=') {
+ const f = '-' + flag + arg.slice(i + 1);
+ consumedNextArg = _assignOption(f, args[argIndex + 1], state);
+ break;
+ }
+ // Treat the last flag as `--a` (as if full flag but just one letter). We do this in
+ // the loop because it saves us a check to see if the arg is just `-`.
+ if (i == arg.length - 1) {
+ const arg = '-' + flag;
+ consumedNextArg = _assignOption(arg, args[argIndex + 1], state);
+ }
+ else {
+ const maybeOption = _getOptionFromName(flag, options);
+ if (maybeOption) {
+ const v = _coerce(undefined, maybeOption, parsedOptions[maybeOption.name]);
+ if (v !== undefined) {
+ parsedOptions[maybeOption.name] = v;
+ }
+ }
+ }
+ }
+ }
+ else {
+ positionals.push(arg);
+ }
+ if (consumedNextArg) {
+ argIndex++;
+ }
+ }
+ // Deal with positionals.
+ // TODO(hansl): this is by far the most complex piece of code in this file. Try to refactor it
+ // simpler.
+ if (positionals.length > 0) {
+ let pos = 0;
+ for (let i = 0; i < positionals.length;) {
+ let found = false;
+ let incrementPos = false;
+ let incrementI = true;
+ // We do this with a found flag because more than 1 option could have the same positional.
+ for (const option of options) {
+ // If any option has this positional and no value, AND fit the type, we need to remove it.
+ if (option.positional === pos) {
+ const coercedValue = _coerce(positionals[i], option, parsedOptions[option.name]);
+ if (parsedOptions[option.name] === undefined && coercedValue !== undefined) {
+ parsedOptions[option.name] = coercedValue;
+ found = true;
+ }
+ else {
+ incrementI = false;
+ }
+ incrementPos = true;
+ }
+ }
+ if (found) {
+ positionals.splice(i--, 1);
+ }
+ if (incrementPos) {
+ pos++;
+ }
+ if (incrementI) {
+ i++;
+ }
+ }
+ }
+ if (positionals.length > 0 || leftovers.length > 0) {
+ parsedOptions['--'] = [...positionals, ...leftovers];
+ }
+ if (warnings.length > 0 && logger) {
+ warnings.forEach((message) => logger.warn(message));
+ }
+ if (errors.length > 0) {
+ throw new ParseArgumentException(errors, parsedOptions, ignored);
+ }
+ return parsedOptions;
+}
+exports.parseArguments = parseArguments;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-command.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-command.d.ts
new file mode 100644
index 00000000..267b8fc2
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-command.d.ts
@@ -0,0 +1,55 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { logging } from '@angular-devkit/core';
+import { workflow } from '@angular-devkit/schematics';
+import { FileSystemCollection, FileSystemEngine, FileSystemSchematic, NodeWorkflow } from '@angular-devkit/schematics/tools';
+import { BaseCommandOptions, Command } from './command';
+import { Arguments, CommandContext, CommandDescription, Option } from './interface';
+export interface BaseSchematicSchema {
+ debug?: boolean;
+ dryRun?: boolean;
+ force?: boolean;
+ interactive?: boolean;
+ defaults?: boolean;
+ packageRegistry?: string;
+}
+export interface RunSchematicOptions extends BaseSchematicSchema {
+ collectionName: string;
+ schematicName: string;
+ additionalOptions?: {
+ [key: string]: {};
+ };
+ schematicOptions?: string[];
+ showNothingDone?: boolean;
+}
+export declare class UnknownCollectionError extends Error {
+ constructor(collectionName: string);
+}
+export declare abstract class SchematicCommand<T extends BaseSchematicSchema & BaseCommandOptions> extends Command<T> {
+ protected readonly allowPrivateSchematics: boolean;
+ protected readonly useReportAnalytics = false;
+ protected _workflow: NodeWorkflow;
+ protected defaultCollectionName: string;
+ protected collectionName: string;
+ protected schematicName?: string;
+ constructor(context: CommandContext, description: CommandDescription, logger: logging.Logger);
+ initialize(options: T & Arguments): Promise<void>;
+ printHelp(): Promise<number>;
+ printHelpUsage(): Promise<void>;
+ protected getEngine(): FileSystemEngine;
+ protected getCollection(collectionName: string): FileSystemCollection;
+ protected getSchematic(collection: FileSystemCollection, schematicName: string, allowPrivate?: boolean): FileSystemSchematic;
+ protected setPathOptions(options: Option[], workingDir: string): {
+ [name: string]: string;
+ };
+ protected createWorkflow(options: BaseSchematicSchema): Promise<workflow.BaseWorkflow>;
+ protected getDefaultSchematicCollection(): Promise<string>;
+ protected runSchematic(options: RunSchematicOptions): Promise<number | void>;
+ protected parseFreeFormArguments(schematicOptions: string[]): Promise<Arguments>;
+ protected parseArguments(schematicOptions: string[], options: Option[] | null): Promise<Arguments>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-command.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-command.js
new file mode 100644
index 00000000..63b87165
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-command.js
@@ -0,0 +1,485 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SchematicCommand = exports.UnknownCollectionError = void 0;
+const core_1 = require("@angular-devkit/core");
+const schematics_1 = require("@angular-devkit/schematics");
+const tools_1 = require("@angular-devkit/schematics/tools");
+const inquirer = __importStar(require("inquirer"));
+const systemPath = __importStar(require("path"));
+const color_1 = require("../utilities/color");
+const config_1 = require("../utilities/config");
+const json_schema_1 = require("../utilities/json-schema");
+const package_manager_1 = require("../utilities/package-manager");
+const tty_1 = require("../utilities/tty");
+const analytics_1 = require("./analytics");
+const command_1 = require("./command");
+const parser_1 = require("./parser");
+const schematic_engine_host_1 = require("./schematic-engine-host");
+class UnknownCollectionError extends Error {
+ constructor(collectionName) {
+ super(`Invalid collection (${collectionName}).`);
+ }
+}
+exports.UnknownCollectionError = UnknownCollectionError;
+class SchematicCommand extends command_1.Command {
+ constructor(context, description, logger) {
+ super(context, description, logger);
+ this.allowPrivateSchematics = false;
+ this.useReportAnalytics = false;
+ this.defaultCollectionName = '@schematics/angular';
+ this.collectionName = this.defaultCollectionName;
+ }
+ async initialize(options) {
+ await this.createWorkflow(options);
+ if (this.schematicName) {
+ // Set the options.
+ const collection = this.getCollection(this.collectionName);
+ const schematic = this.getSchematic(collection, this.schematicName, true);
+ const options = await (0, json_schema_1.parseJsonSchemaToOptions)(this._workflow.registry, schematic.description.schemaJson || {});
+ this.description.description = schematic.description.description;
+ this.description.options.push(...options.filter((x) => !x.hidden));
+ // Remove any user analytics from schematics that are NOT part of our safelist.
+ for (const o of this.description.options) {
+ if (o.userAnalytics && !(0, analytics_1.isPackageNameSafeForAnalytics)(this.collectionName)) {
+ o.userAnalytics = undefined;
+ }
+ }
+ }
+ }
+ async printHelp() {
+ await super.printHelp();
+ this.logger.info('');
+ const subCommandOption = this.description.options.filter((x) => x.subcommands)[0];
+ if (!subCommandOption || !subCommandOption.subcommands) {
+ return 0;
+ }
+ const schematicNames = Object.keys(subCommandOption.subcommands);
+ if (schematicNames.length > 1) {
+ this.logger.info('Available Schematics:');
+ const namesPerCollection = {};
+ schematicNames.forEach((name) => {
+ let [collectionName, schematicName] = name.split(/:/, 2);
+ if (!schematicName) {
+ schematicName = collectionName;
+ collectionName = this.collectionName;
+ }
+ if (!namesPerCollection[collectionName]) {
+ namesPerCollection[collectionName] = [];
+ }
+ namesPerCollection[collectionName].push(schematicName);
+ });
+ const defaultCollection = await this.getDefaultSchematicCollection();
+ Object.keys(namesPerCollection).forEach((collectionName) => {
+ const isDefault = defaultCollection == collectionName;
+ this.logger.info(` Collection "${collectionName}"${isDefault ? ' (default)' : ''}:`);
+ namesPerCollection[collectionName].forEach((schematicName) => {
+ this.logger.info(` ${schematicName}`);
+ });
+ });
+ }
+ return 0;
+ }
+ async printHelpUsage() {
+ const subCommandOption = this.description.options.filter((x) => x.subcommands)[0];
+ if (!subCommandOption || !subCommandOption.subcommands) {
+ return;
+ }
+ const schematicNames = Object.keys(subCommandOption.subcommands);
+ if (schematicNames.length == 1) {
+ this.logger.info(this.description.description);
+ const opts = this.description.options.filter((x) => x.positional === undefined);
+ const [collectionName, schematicName] = schematicNames[0].split(/:/)[0];
+ // Display <collectionName:schematicName> if this is not the default collectionName,
+ // otherwise just show the schematicName.
+ const displayName = collectionName == (await this.getDefaultSchematicCollection())
+ ? schematicName
+ : schematicNames[0];
+ const schematicOptions = subCommandOption.subcommands[schematicNames[0]].options;
+ const schematicArgs = schematicOptions.filter((x) => x.positional !== undefined);
+ const argDisplay = schematicArgs.length > 0
+ ? ' ' + schematicArgs.map((a) => `<${core_1.strings.dasherize(a.name)}>`).join(' ')
+ : '';
+ this.logger.info(core_1.tags.oneLine `
+ usage: ng ${this.description.name} ${displayName}${argDisplay}
+ ${opts.length > 0 ? `[options]` : ``}
+ `);
+ this.logger.info('');
+ }
+ else {
+ await super.printHelpUsage();
+ }
+ }
+ getEngine() {
+ return this._workflow.engine;
+ }
+ getCollection(collectionName) {
+ const engine = this.getEngine();
+ const collection = engine.createCollection(collectionName);
+ if (collection === null) {
+ throw new UnknownCollectionError(collectionName);
+ }
+ return collection;
+ }
+ getSchematic(collection, schematicName, allowPrivate) {
+ return collection.createSchematic(schematicName, allowPrivate);
+ }
+ setPathOptions(options, workingDir) {
+ if (workingDir === '') {
+ return {};
+ }
+ return options
+ .filter((o) => o.format === 'path')
+ .map((o) => o.name)
+ .reduce((acc, curr) => {
+ acc[curr] = workingDir;
+ return acc;
+ }, {});
+ }
+ /*
+ * Runtime hook to allow specifying customized workflow
+ */
+ async createWorkflow(options) {
+ if (this._workflow) {
+ return this._workflow;
+ }
+ const { force, dryRun } = options;
+ const root = this.context.root;
+ const workflow = new tools_1.NodeWorkflow(root, {
+ force,
+ dryRun,
+ packageManager: await (0, package_manager_1.getPackageManager)(root),
+ packageRegistry: options.packageRegistry,
+ // A schema registry is required to allow customizing addUndefinedDefaults
+ registry: new core_1.schema.CoreSchemaRegistry(schematics_1.formats.standardFormats),
+ resolvePaths: this.workspace
+ ? // Workspace
+ this.collectionName === this.defaultCollectionName
+ ? // Favor __dirname for @schematics/angular to use the build-in version
+ [__dirname, process.cwd(), root]
+ : [process.cwd(), root, __dirname]
+ : // Global
+ [__dirname, process.cwd()],
+ schemaValidation: true,
+ optionTransforms: [
+ // Add configuration file defaults
+ async (schematic, current) => {
+ const projectName = typeof current.project === 'string'
+ ? current.project
+ : getProjectName();
+ return {
+ ...(await (0, config_1.getSchematicDefaults)(schematic.collection.name, schematic.name, projectName)),
+ ...current,
+ };
+ },
+ ],
+ engineHostCreator: (options) => new schematic_engine_host_1.SchematicEngineHost(options.resolvePaths),
+ });
+ const getProjectName = () => {
+ if (this.workspace) {
+ const projectNames = getProjectsByPath(this.workspace, process.cwd(), this.workspace.basePath);
+ if (projectNames.length === 1) {
+ return projectNames[0];
+ }
+ else {
+ if (projectNames.length > 1) {
+ this.logger.warn(core_1.tags.oneLine `
+ Two or more projects are using identical roots.
+ Unable to determine project using current working directory.
+ Using default workspace project instead.
+ `);
+ }
+ const defaultProjectName = this.workspace.extensions['defaultProject'];
+ if (typeof defaultProjectName === 'string' && defaultProjectName) {
+ return defaultProjectName;
+ }
+ }
+ }
+ return undefined;
+ };
+ workflow.registry.addPostTransform(core_1.schema.transforms.addUndefinedDefaults);
+ workflow.registry.addSmartDefaultProvider('projectName', getProjectName);
+ workflow.registry.useXDeprecatedProvider((msg) => this.logger.warn(msg));
+ let shouldReportAnalytics = true;
+ workflow.engineHost.registerOptionsTransform(async (_, options) => {
+ if (shouldReportAnalytics) {
+ shouldReportAnalytics = false;
+ await this.reportAnalytics([this.description.name], options);
+ }
+ return options;
+ });
+ if (options.interactive !== false && (0, tty_1.isTTY)()) {
+ workflow.registry.usePromptProvider((definitions) => {
+ const questions = definitions
+ .filter((definition) => !options.defaults || definition.default === undefined)
+ .map((definition) => {
+ var _a;
+ const question = {
+ name: definition.id,
+ message: definition.message,
+ default: definition.default,
+ };
+ const validator = definition.validator;
+ if (validator) {
+ question.validate = (input) => validator(input);
+ // Filter allows transformation of the value prior to validation
+ question.filter = async (input) => {
+ for (const type of definition.propertyTypes) {
+ let value;
+ switch (type) {
+ case 'string':
+ value = String(input);
+ break;
+ case 'integer':
+ case 'number':
+ value = Number(input);
+ break;
+ default:
+ value = input;
+ break;
+ }
+ // Can be a string if validation fails
+ const isValid = (await validator(value)) === true;
+ if (isValid) {
+ return value;
+ }
+ }
+ return input;
+ };
+ }
+ switch (definition.type) {
+ case 'confirmation':
+ question.type = 'confirm';
+ break;
+ case 'list':
+ question.type = definition.multiselect ? 'checkbox' : 'list';
+ question.choices = (_a = definition.items) === null || _a === void 0 ? void 0 : _a.map((item) => {
+ return typeof item == 'string'
+ ? item
+ : {
+ name: item.label,
+ value: item.value,
+ };
+ });
+ break;
+ default:
+ question.type = definition.type;
+ break;
+ }
+ return question;
+ });
+ return inquirer.prompt(questions);
+ });
+ }
+ return (this._workflow = workflow);
+ }
+ async getDefaultSchematicCollection() {
+ let workspace = await (0, config_1.getWorkspace)('local');
+ if (workspace) {
+ const project = (0, config_1.getProjectByCwd)(workspace);
+ if (project && workspace.getProjectCli(project)) {
+ const value = workspace.getProjectCli(project)['defaultCollection'];
+ if (typeof value == 'string') {
+ return value;
+ }
+ }
+ if (workspace.getCli()) {
+ const value = workspace.getCli()['defaultCollection'];
+ if (typeof value == 'string') {
+ return value;
+ }
+ }
+ }
+ workspace = await (0, config_1.getWorkspace)('global');
+ if (workspace && workspace.getCli()) {
+ const value = workspace.getCli()['defaultCollection'];
+ if (typeof value == 'string') {
+ return value;
+ }
+ }
+ return this.defaultCollectionName;
+ }
+ async runSchematic(options) {
+ const { schematicOptions, debug, dryRun } = options;
+ let { collectionName, schematicName } = options;
+ let nothingDone = true;
+ let loggingQueue = [];
+ let error = false;
+ const workflow = this._workflow;
+ const workingDir = (0, core_1.normalize)(systemPath.relative(this.context.root, process.cwd()));
+ // Get the option object from the schematic schema.
+ const schematic = this.getSchematic(this.getCollection(collectionName), schematicName, this.allowPrivateSchematics);
+ // Update the schematic and collection name in case they're not the same as the ones we
+ // received in our options, e.g. after alias resolution or extension.
+ collectionName = schematic.collection.description.name;
+ schematicName = schematic.description.name;
+ // Set the options of format "path".
+ let o = null;
+ let args;
+ if (!schematic.description.schemaJson) {
+ args = await this.parseFreeFormArguments(schematicOptions || []);
+ }
+ else {
+ o = await (0, json_schema_1.parseJsonSchemaToOptions)(workflow.registry, schematic.description.schemaJson);
+ args = await this.parseArguments(schematicOptions || [], o);
+ }
+ const allowAdditionalProperties = typeof schematic.description.schemaJson === 'object' &&
+ schematic.description.schemaJson.additionalProperties;
+ if (args['--'] && !allowAdditionalProperties) {
+ args['--'].forEach((additional) => {
+ this.logger.fatal(`Unknown option: '${additional.split(/=/)[0]}'`);
+ });
+ return 1;
+ }
+ const pathOptions = o ? this.setPathOptions(o, workingDir) : {};
+ const input = {
+ ...pathOptions,
+ ...args,
+ ...options.additionalOptions,
+ };
+ workflow.reporter.subscribe((event) => {
+ nothingDone = false;
+ // Strip leading slash to prevent confusion.
+ const eventPath = event.path.startsWith('/') ? event.path.substr(1) : event.path;
+ switch (event.kind) {
+ case 'error':
+ error = true;
+ const desc = event.description == 'alreadyExist' ? 'already exists' : 'does not exist.';
+ this.logger.warn(`ERROR! ${eventPath} ${desc}.`);
+ break;
+ case 'update':
+ loggingQueue.push(core_1.tags.oneLine `
+ ${color_1.colors.cyan('UPDATE')} ${eventPath} (${event.content.length} bytes)
+ `);
+ break;
+ case 'create':
+ loggingQueue.push(core_1.tags.oneLine `
+ ${color_1.colors.green('CREATE')} ${eventPath} (${event.content.length} bytes)
+ `);
+ break;
+ case 'delete':
+ loggingQueue.push(`${color_1.colors.yellow('DELETE')} ${eventPath}`);
+ break;
+ case 'rename':
+ const eventToPath = event.to.startsWith('/') ? event.to.substr(1) : event.to;
+ loggingQueue.push(`${color_1.colors.blue('RENAME')} ${eventPath} => ${eventToPath}`);
+ break;
+ }
+ });
+ workflow.lifeCycle.subscribe((event) => {
+ if (event.kind == 'end' || event.kind == 'post-tasks-start') {
+ if (!error) {
+ // Output the logging queue, no error happened.
+ loggingQueue.forEach((log) => this.logger.info(log));
+ }
+ loggingQueue = [];
+ error = false;
+ }
+ });
+ // Temporary compatibility check for NPM 7
+ if (collectionName === '@schematics/angular' && schematicName === 'ng-new') {
+ if (!input.skipInstall &&
+ (input.packageManager === undefined || input.packageManager === 'npm')) {
+ await (0, package_manager_1.ensureCompatibleNpm)(this.context.root);
+ }
+ }
+ return new Promise((resolve) => {
+ workflow
+ .execute({
+ collection: collectionName,
+ schematic: schematicName,
+ options: input,
+ debug: debug,
+ logger: this.logger,
+ allowPrivate: this.allowPrivateSchematics,
+ })
+ .subscribe({
+ error: (err) => {
+ // In case the workflow was not successful, show an appropriate error message.
+ if (err instanceof schematics_1.UnsuccessfulWorkflowExecution) {
+ // "See above" because we already printed the error.
+ this.logger.fatal('The Schematic workflow failed. See above.');
+ }
+ else if (debug) {
+ this.logger.fatal(`An error occurred:\n${err.message}\n${err.stack}`);
+ }
+ else {
+ this.logger.fatal(err.message);
+ }
+ resolve(1);
+ },
+ complete: () => {
+ const showNothingDone = !(options.showNothingDone === false);
+ if (nothingDone && showNothingDone) {
+ this.logger.info('Nothing to be done.');
+ }
+ if (dryRun) {
+ this.logger.warn(`\nNOTE: The "dryRun" flag means no changes were made.`);
+ }
+ resolve();
+ },
+ });
+ });
+ }
+ async parseFreeFormArguments(schematicOptions) {
+ return (0, parser_1.parseFreeFormArguments)(schematicOptions);
+ }
+ async parseArguments(schematicOptions, options) {
+ return (0, parser_1.parseArguments)(schematicOptions, options, this.logger);
+ }
+}
+exports.SchematicCommand = SchematicCommand;
+function getProjectsByPath(workspace, path, root) {
+ if (workspace.projects.size === 1) {
+ return Array.from(workspace.projects.keys());
+ }
+ const isInside = (base, potential) => {
+ const absoluteBase = systemPath.resolve(root, base);
+ const absolutePotential = systemPath.resolve(root, potential);
+ const relativePotential = systemPath.relative(absoluteBase, absolutePotential);
+ if (!relativePotential.startsWith('..') && !systemPath.isAbsolute(relativePotential)) {
+ return true;
+ }
+ return false;
+ };
+ const projects = Array.from(workspace.projects.entries())
+ .map(([name, project]) => [systemPath.resolve(root, project.root), name])
+ .filter((tuple) => isInside(tuple[0], path))
+ // Sort tuples by depth, with the deeper ones first. Since the first member is a path and
+ // we filtered all invalid paths, the longest will be the deepest (and in case of equality
+ // the sort is stable and the first declared project will win).
+ .sort((a, b) => b[0].length - a[0].length);
+ if (projects.length === 1) {
+ return [projects[0][1]];
+ }
+ else if (projects.length > 1) {
+ const firstPath = projects[0][0];
+ return projects.filter((v) => v[0] === firstPath).map((v) => v[1]);
+ }
+ return [];
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-engine-host.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-engine-host.d.ts
new file mode 100644
index 00000000..74cd1e83
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-engine-host.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { RuleFactory } from '@angular-devkit/schematics';
+import { NodeModulesEngineHost } from '@angular-devkit/schematics/tools';
+export declare class SchematicEngineHost extends NodeModulesEngineHost {
+ protected _resolveReferenceString(refString: string, parentPath: string): {
+ ref: RuleFactory<{}>;
+ path: string;
+ } | null;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-engine-host.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-engine-host.js
new file mode 100644
index 00000000..ed950e2b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/schematic-engine-host.js
@@ -0,0 +1,172 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SchematicEngineHost = void 0;
+const schematics_1 = require("@angular-devkit/schematics");
+const tools_1 = require("@angular-devkit/schematics/tools");
+const fs_1 = require("fs");
+const jsonc_parser_1 = require("jsonc-parser");
+const module_1 = __importDefault(require("module"));
+const path_1 = require("path");
+const vm_1 = require("vm");
+/**
+ * Environment variable to control schematic package redirection
+ * Default: Angular schematics only
+ */
+const schematicRedirectVariable = (_a = process.env['NG_SCHEMATIC_REDIRECT']) === null || _a === void 0 ? void 0 : _a.toLowerCase();
+function shouldWrapSchematic(schematicFile) {
+ // Check environment variable if present
+ if (schematicRedirectVariable !== undefined) {
+ switch (schematicRedirectVariable) {
+ case '0':
+ case 'false':
+ case 'off':
+ case 'none':
+ return false;
+ case 'all':
+ return true;
+ }
+ }
+ const normalizedSchematicFile = schematicFile.replace(/\\/g, '/');
+ // Never wrap the internal update schematic when executed directly
+ // It communicates with the update command via `global`
+ // But we still want to redirect schematics located in `@angular/cli/node_modules`.
+ if (normalizedSchematicFile.includes('node_modules/@angular/cli/') &&
+ !normalizedSchematicFile.includes('node_modules/@angular/cli/node_modules/')) {
+ return false;
+ }
+ // Default is only first-party Angular schematic packages
+ // Angular schematics are safe to use in the wrapped VM context
+ return /\/node_modules\/@(?:angular|schematics|nguniversal)\//.test(normalizedSchematicFile);
+}
+class SchematicEngineHost extends tools_1.NodeModulesEngineHost {
+ _resolveReferenceString(refString, parentPath) {
+ const [path, name] = refString.split('#', 2);
+ // Mimic behavior of ExportStringRef class used in default behavior
+ const fullPath = path[0] === '.' ? (0, path_1.resolve)(parentPath !== null && parentPath !== void 0 ? parentPath : process.cwd(), path) : path;
+ const schematicFile = require.resolve(fullPath, { paths: [parentPath] });
+ if (shouldWrapSchematic(schematicFile)) {
+ const schematicPath = (0, path_1.dirname)(schematicFile);
+ const moduleCache = new Map();
+ const factoryInitializer = wrap(schematicFile, schematicPath, moduleCache, name || 'default');
+ const factory = factoryInitializer();
+ if (!factory || typeof factory !== 'function') {
+ return null;
+ }
+ return { ref: factory, path: schematicPath };
+ }
+ // All other schematics use default behavior
+ return super._resolveReferenceString(refString, parentPath);
+ }
+}
+exports.SchematicEngineHost = SchematicEngineHost;
+/**
+ * Minimal shim modules for legacy deep imports of `@schematics/angular`
+ */
+const legacyModules = {
+ '@schematics/angular/utility/config': {
+ getWorkspace(host) {
+ const path = '/.angular.json';
+ const data = host.read(path);
+ if (!data) {
+ throw new schematics_1.SchematicsException(`Could not find (${path})`);
+ }
+ return (0, jsonc_parser_1.parse)(data.toString(), [], { allowTrailingComma: true });
+ },
+ },
+ '@schematics/angular/utility/project': {
+ buildDefaultPath(project) {
+ const root = project.sourceRoot ? `/${project.sourceRoot}/` : `/${project.root}/src/`;
+ return `${root}${project.projectType === 'application' ? 'app' : 'lib'}`;
+ },
+ },
+};
+/**
+ * Wrap a JavaScript file in a VM context to allow specific Angular dependencies to be redirected.
+ * This VM setup is ONLY intended to redirect dependencies.
+ *
+ * @param schematicFile A JavaScript schematic file path that should be wrapped.
+ * @param schematicDirectory A directory that will be used as the location of the JavaScript file.
+ * @param moduleCache A map to use for caching repeat module usage and proper `instanceof` support.
+ * @param exportName An optional name of a specific export to return. Otherwise, return all exports.
+ */
+function wrap(schematicFile, schematicDirectory, moduleCache, exportName) {
+ const hostRequire = module_1.default.createRequire(__filename);
+ const schematicRequire = module_1.default.createRequire(schematicFile);
+ const customRequire = function (id) {
+ if (legacyModules[id]) {
+ // Provide compatibility modules for older versions of @angular/cdk
+ return legacyModules[id];
+ }
+ else if (id.startsWith('@angular-devkit/') || id.startsWith('@schematics/')) {
+ // Files should not redirect `@angular/core` and instead use the direct
+ // dependency if available. This allows old major version migrations to continue to function
+ // even though the latest major version may have breaking changes in `@angular/core`.
+ if (id.startsWith('@angular-devkit/core')) {
+ try {
+ return schematicRequire(id);
+ }
+ catch (e) {
+ if (e.code !== 'MODULE_NOT_FOUND') {
+ throw e;
+ }
+ }
+ }
+ // Resolve from inside the `@angular/cli` project
+ return hostRequire(id);
+ }
+ else if (id.startsWith('.') || id.startsWith('@angular/cdk')) {
+ // Wrap relative files inside the schematic collection
+ // Also wrap `@angular/cdk`, it contains helper utilities that import core schematic packages
+ // Resolve from the original file
+ const modulePath = schematicRequire.resolve(id);
+ // Use cached module if available
+ const cachedModule = moduleCache.get(modulePath);
+ if (cachedModule) {
+ return cachedModule;
+ }
+ // Do not wrap vendored third-party packages or JSON files
+ if (!/[/\\]node_modules[/\\]@schematics[/\\]angular[/\\]third_party[/\\]/.test(modulePath) &&
+ !modulePath.endsWith('.json')) {
+ // Wrap module and save in cache
+ const wrappedModule = wrap(modulePath, (0, path_1.dirname)(modulePath), moduleCache)();
+ moduleCache.set(modulePath, wrappedModule);
+ return wrappedModule;
+ }
+ }
+ // All others are required directly from the original file
+ return schematicRequire(id);
+ };
+ // Setup a wrapper function to capture the module's exports
+ const schematicCode = (0, fs_1.readFileSync)(schematicFile, 'utf8');
+ // `module` is required due to @angular/localize ng-add being in UMD format
+ const headerCode = '(function() {\nvar exports = {};\nvar module = { exports };\n';
+ const footerCode = exportName ? `\nreturn exports['${exportName}'];});` : '\nreturn exports;});';
+ const script = new vm_1.Script(headerCode + schematicCode + footerCode, {
+ filename: schematicFile,
+ lineOffset: 3,
+ });
+ const context = {
+ __dirname: schematicDirectory,
+ __filename: schematicFile,
+ Buffer,
+ console,
+ process,
+ get global() {
+ return this;
+ },
+ require: customRequire,
+ };
+ const exportsFactory = script.runInNewContext(context);
+ return exportsFactory;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/version.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/version.d.ts
new file mode 100644
index 00000000..28b8e68d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/version.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export declare class Version {
+ readonly full: string;
+ readonly major: string;
+ readonly minor: string;
+ readonly patch: string;
+ constructor(full: string);
+}
+export declare const VERSION: Version;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/version.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/version.js
new file mode 100644
index 00000000..cf4f8991
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/models/version.js
@@ -0,0 +1,25 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VERSION = exports.Version = void 0;
+const fs_1 = require("fs");
+const path_1 = require("path");
+// Same structure as used in framework packages
+class Version {
+ constructor(full) {
+ this.full = full;
+ this.major = full.split('.')[0];
+ this.minor = full.split('.')[1];
+ this.patch = full.split('.').slice(2).join('.');
+ }
+}
+exports.Version = Version;
+// TODO: Convert this to use build-time version stamping after flipping the build script to use bazel
+// export const VERSION = new Version('0.0.0-PLACEHOLDER');
+exports.VERSION = new Version(JSON.parse((0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '../package.json'), 'utf-8')).version);
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/package.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/package.json
new file mode 100644
index 00000000..50d80454
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/package.json
@@ -0,0 +1,67 @@
+{
+ "name": "@angular/cli",
+ "version": "13.2.5",
+ "description": "CLI tool for Angular",
+ "main": "lib/cli/index.js",
+ "bin": {
+ "ng": "./bin/ng.js"
+ },
+ "keywords": [
+ "angular",
+ "Angular CLI",
+ "devkit",
+ "sdk",
+ "Angular DevKit",
+ "angular-cli"
+ ],
+ "scripts": {
+ "postinstall": "node ./bin/postinstall/script.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/angular/angular-cli.git"
+ },
+ "author": "Angular Authors",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/angular/angular-cli/issues"
+ },
+ "homepage": "https://github.com/angular/angular-cli",
+ "dependencies": {
+ "@angular-devkit/architect": "0.1302.5",
+ "@angular-devkit/core": "13.2.5",
+ "@angular-devkit/schematics": "13.2.5",
+ "@schematics/angular": "13.2.5",
+ "@yarnpkg/lockfile": "1.1.0",
+ "ansi-colors": "4.1.1",
+ "debug": "4.3.3",
+ "ini": "2.0.0",
+ "inquirer": "8.2.0",
+ "jsonc-parser": "3.0.0",
+ "npm-package-arg": "8.1.5",
+ "npm-pick-manifest": "6.1.1",
+ "open": "8.4.0",
+ "ora": "5.4.1",
+ "pacote": "12.0.3",
+ "resolve": "1.22.0",
+ "semver": "7.3.5",
+ "symbol-observable": "4.0.0",
+ "uuid": "8.3.2"
+ },
+ "ng-update": {
+ "migrations": "@schematics/angular/migrations/migration-collection.json",
+ "packageGroup": {
+ "@angular/cli": "13.2.5",
+ "@angular-devkit/architect": "0.1302.5",
+ "@angular-devkit/build-angular": "13.2.5",
+ "@angular-devkit/build-webpack": "0.1302.5",
+ "@angular-devkit/core": "13.2.5",
+ "@angular-devkit/schematics": "13.2.5"
+ }
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.15.0 || >=16.10.0",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+ "yarn": ">= 1.13.0"
+ }
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/collection.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/collection.json
new file mode 100644
index 00000000..ee719791
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/collection.json
@@ -0,0 +1,9 @@
+{
+ "schematics": {
+ "update": {
+ "factory": "./index",
+ "schema": "./schema.json",
+ "description": "Update one or multiple packages to versions, updating peer dependencies along the way."
+ }
+ }
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/index.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/index.d.ts
new file mode 100644
index 00000000..facaffb8
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/index.d.ts
@@ -0,0 +1,11 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Rule } from '@angular-devkit/schematics';
+import { Schema as UpdateSchema } from './schema';
+export declare function angularMajorCompatGuarantee(range: string): string;
+export default function (options: UpdateSchema): Rule;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/index.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/index.js
new file mode 100644
index 00000000..655755ad
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/index.js
@@ -0,0 +1,698 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.angularMajorCompatGuarantee = void 0;
+const core_1 = require("@angular-devkit/core");
+const schematics_1 = require("@angular-devkit/schematics");
+const npa = __importStar(require("npm-package-arg"));
+const semver = __importStar(require("semver"));
+const package_metadata_1 = require("../../../../utilities/package-metadata");
+// Angular guarantees that a major is compatible with its following major (so packages that depend
+// on Angular 5 are also compatible with Angular 6). This is, in code, represented by verifying
+// that all other packages that have a peer dependency of `"@angular/core": "^5.0.0"` actually
+// supports 6.0, by adding that compatibility to the range, so it is `^5.0.0 || ^6.0.0`.
+// We export it to allow for testing.
+function angularMajorCompatGuarantee(range) {
+ let newRange = semver.validRange(range);
+ if (!newRange) {
+ return range;
+ }
+ let major = 1;
+ while (!semver.gtr(major + '.0.0', newRange)) {
+ major++;
+ if (major >= 99) {
+ // Use original range if it supports a major this high
+ // Range is most likely unbounded (e.g., >=5.0.0)
+ return newRange;
+ }
+ }
+ // Add the major version as compatible with the angular compatible, with all minors. This is
+ // already one major above the greatest supported, because we increment `major` before checking.
+ // We add minors like this because a minor beta is still compatible with a minor non-beta.
+ newRange = range;
+ for (let minor = 0; minor < 20; minor++) {
+ newRange += ` || ^${major}.${minor}.0-alpha.0 `;
+ }
+ return semver.validRange(newRange) || range;
+}
+exports.angularMajorCompatGuarantee = angularMajorCompatGuarantee;
+// This is a map of packageGroupName to range extending function. If it isn't found, the range is
+// kept the same.
+const knownPeerCompatibleList = {
+ '@angular/core': angularMajorCompatGuarantee,
+};
+function _updatePeerVersion(infoMap, name, range) {
+ // Resolve packageGroupName.
+ const maybePackageInfo = infoMap.get(name);
+ if (!maybePackageInfo) {
+ return range;
+ }
+ if (maybePackageInfo.target) {
+ name = maybePackageInfo.target.updateMetadata.packageGroupName || name;
+ }
+ else {
+ name = maybePackageInfo.installed.updateMetadata.packageGroupName || name;
+ }
+ const maybeTransform = knownPeerCompatibleList[name];
+ if (maybeTransform) {
+ if (typeof maybeTransform == 'function') {
+ return maybeTransform(range);
+ }
+ else {
+ return maybeTransform;
+ }
+ }
+ return range;
+}
+function _validateForwardPeerDependencies(name, infoMap, peers, peersMeta, logger, next) {
+ let validationFailed = false;
+ for (const [peer, range] of Object.entries(peers)) {
+ logger.debug(`Checking forward peer ${peer}...`);
+ const maybePeerInfo = infoMap.get(peer);
+ const isOptional = peersMeta[peer] && !!peersMeta[peer].optional;
+ if (!maybePeerInfo) {
+ if (!isOptional) {
+ logger.warn([
+ `Package ${JSON.stringify(name)} has a missing peer dependency of`,
+ `${JSON.stringify(peer)} @ ${JSON.stringify(range)}.`,
+ ].join(' '));
+ }
+ continue;
+ }
+ const peerVersion = maybePeerInfo.target && maybePeerInfo.target.packageJson.version
+ ? maybePeerInfo.target.packageJson.version
+ : maybePeerInfo.installed.version;
+ logger.debug(` Range intersects(${range}, ${peerVersion})...`);
+ if (!semver.satisfies(peerVersion, range, { includePrerelease: next || undefined })) {
+ logger.error([
+ `Package ${JSON.stringify(name)} has an incompatible peer dependency to`,
+ `${JSON.stringify(peer)} (requires ${JSON.stringify(range)},`,
+ `would install ${JSON.stringify(peerVersion)})`,
+ ].join(' '));
+ validationFailed = true;
+ continue;
+ }
+ }
+ return validationFailed;
+}
+function _validateReversePeerDependencies(name, version, infoMap, logger, next) {
+ for (const [installed, installedInfo] of infoMap.entries()) {
+ const installedLogger = logger.createChild(installed);
+ installedLogger.debug(`${installed}...`);
+ const peers = (installedInfo.target || installedInfo.installed).packageJson.peerDependencies;
+ for (const [peer, range] of Object.entries(peers || {})) {
+ if (peer != name) {
+ // Only check peers to the packages we're updating. We don't care about peers
+ // that are unmet but we have no effect on.
+ continue;
+ }
+ // Ignore peerDependency mismatches for these packages.
+ // They are deprecated and removed via a migration.
+ const ignoredPackages = [
+ 'codelyzer',
+ '@schematics/update',
+ '@angular-devkit/build-ng-packagr',
+ 'tsickle',
+ ];
+ if (ignoredPackages.includes(installed)) {
+ continue;
+ }
+ // Override the peer version range if it's known as a compatible.
+ const extendedRange = _updatePeerVersion(infoMap, peer, range);
+ if (!semver.satisfies(version, extendedRange, { includePrerelease: next || undefined })) {
+ logger.error([
+ `Package ${JSON.stringify(installed)} has an incompatible peer dependency to`,
+ `${JSON.stringify(name)} (requires`,
+ `${JSON.stringify(range)}${extendedRange == range ? '' : ' (extended)'},`,
+ `would install ${JSON.stringify(version)}).`,
+ ].join(' '));
+ return true;
+ }
+ }
+ }
+ return false;
+}
+function _validateUpdatePackages(infoMap, force, next, logger) {
+ logger.debug('Updating the following packages:');
+ infoMap.forEach((info) => {
+ if (info.target) {
+ logger.debug(` ${info.name} => ${info.target.version}`);
+ }
+ });
+ let peerErrors = false;
+ infoMap.forEach((info) => {
+ const { name, target } = info;
+ if (!target) {
+ return;
+ }
+ const pkgLogger = logger.createChild(name);
+ logger.debug(`${name}...`);
+ const { peerDependencies = {}, peerDependenciesMeta = {} } = target.packageJson;
+ peerErrors =
+ _validateForwardPeerDependencies(name, infoMap, peerDependencies, peerDependenciesMeta, pkgLogger, next) || peerErrors;
+ peerErrors =
+ _validateReversePeerDependencies(name, target.version, infoMap, pkgLogger, next) ||
+ peerErrors;
+ });
+ if (!force && peerErrors) {
+ throw new schematics_1.SchematicsException(core_1.tags.stripIndents `Incompatible peer dependencies found.
+ Peer dependency warnings when installing dependencies means that those dependencies might not work correctly together.
+ You can use the '--force' option to ignore incompatible peer dependencies and instead address these warnings later.`);
+ }
+}
+function _performUpdate(tree, context, infoMap, logger, migrateOnly) {
+ const packageJsonContent = tree.read('/package.json');
+ if (!packageJsonContent) {
+ throw new schematics_1.SchematicsException('Could not find a package.json. Are you in a Node project?');
+ }
+ let packageJson;
+ try {
+ packageJson = JSON.parse(packageJsonContent.toString());
+ }
+ catch (e) {
+ throw new schematics_1.SchematicsException('package.json could not be parsed: ' + e.message);
+ }
+ const updateDependency = (deps, name, newVersion) => {
+ const oldVersion = deps[name];
+ // We only respect caret and tilde ranges on update.
+ const execResult = /^[\^~]/.exec(oldVersion);
+ deps[name] = `${execResult ? execResult[0] : ''}${newVersion}`;
+ };
+ const toInstall = [...infoMap.values()]
+ .map((x) => [x.name, x.target, x.installed])
+ .filter(([name, target, installed]) => {
+ return !!name && !!target && !!installed;
+ });
+ toInstall.forEach(([name, target, installed]) => {
+ logger.info(`Updating package.json with dependency ${name} ` +
+ `@ ${JSON.stringify(target.version)} (was ${JSON.stringify(installed.version)})...`);
+ if (packageJson.dependencies && packageJson.dependencies[name]) {
+ updateDependency(packageJson.dependencies, name, target.version);
+ if (packageJson.devDependencies && packageJson.devDependencies[name]) {
+ delete packageJson.devDependencies[name];
+ }
+ if (packageJson.peerDependencies && packageJson.peerDependencies[name]) {
+ delete packageJson.peerDependencies[name];
+ }
+ }
+ else if (packageJson.devDependencies && packageJson.devDependencies[name]) {
+ updateDependency(packageJson.devDependencies, name, target.version);
+ if (packageJson.peerDependencies && packageJson.peerDependencies[name]) {
+ delete packageJson.peerDependencies[name];
+ }
+ }
+ else if (packageJson.peerDependencies && packageJson.peerDependencies[name]) {
+ updateDependency(packageJson.peerDependencies, name, target.version);
+ }
+ else {
+ logger.warn(`Package ${name} was not found in dependencies.`);
+ }
+ });
+ const newContent = JSON.stringify(packageJson, null, 2);
+ if (packageJsonContent.toString() != newContent || migrateOnly) {
+ if (!migrateOnly) {
+ tree.overwrite('/package.json', JSON.stringify(packageJson, null, 2));
+ }
+ const externalMigrations = [];
+ // Run the migrate schematics with the list of packages to use. The collection contains
+ // version information and we need to do this post installation. Please note that the
+ // migration COULD fail and leave side effects on disk.
+ // Run the schematics task of those packages.
+ toInstall.forEach(([name, target, installed]) => {
+ if (!target.updateMetadata.migrations) {
+ return;
+ }
+ externalMigrations.push({
+ package: name,
+ collection: target.updateMetadata.migrations,
+ from: installed.version,
+ to: target.version,
+ });
+ return;
+ });
+ if (externalMigrations.length > 0) {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ global.externalMigrations = externalMigrations;
+ }
+ }
+}
+function _getUpdateMetadata(packageJson, logger) {
+ const metadata = packageJson['ng-update'];
+ const result = {
+ packageGroup: {},
+ requirements: {},
+ };
+ if (!metadata || typeof metadata != 'object' || Array.isArray(metadata)) {
+ return result;
+ }
+ if (metadata['packageGroup']) {
+ const packageGroup = metadata['packageGroup'];
+ // Verify that packageGroup is an array of strings or an map of versions. This is not an error
+ // but we still warn the user and ignore the packageGroup keys.
+ if (Array.isArray(packageGroup) && packageGroup.every((x) => typeof x == 'string')) {
+ result.packageGroup = packageGroup.reduce((group, name) => {
+ group[name] = packageJson.version;
+ return group;
+ }, result.packageGroup);
+ }
+ else if (typeof packageGroup == 'object' &&
+ packageGroup &&
+ Object.values(packageGroup).every((x) => typeof x == 'string')) {
+ result.packageGroup = packageGroup;
+ }
+ else {
+ logger.warn(`packageGroup metadata of package ${packageJson.name} is malformed. Ignoring.`);
+ }
+ result.packageGroupName = Object.keys(result.packageGroup)[0];
+ }
+ if (typeof metadata['packageGroupName'] == 'string') {
+ result.packageGroupName = metadata['packageGroupName'];
+ }
+ if (metadata['requirements']) {
+ const requirements = metadata['requirements'];
+ // Verify that requirements are
+ if (typeof requirements != 'object' ||
+ Array.isArray(requirements) ||
+ Object.keys(requirements).some((name) => typeof requirements[name] != 'string')) {
+ logger.warn(`requirements metadata of package ${packageJson.name} is malformed. Ignoring.`);
+ }
+ else {
+ result.requirements = requirements;
+ }
+ }
+ if (metadata['migrations']) {
+ const migrations = metadata['migrations'];
+ if (typeof migrations != 'string') {
+ logger.warn(`migrations metadata of package ${packageJson.name} is malformed. Ignoring.`);
+ }
+ else {
+ result.migrations = migrations;
+ }
+ }
+ return result;
+}
+function _usageMessage(options, infoMap, logger) {
+ const packageGroups = new Map();
+ const packagesToUpdate = [...infoMap.entries()]
+ .map(([name, info]) => {
+ var _a, _b;
+ let tag = options.next
+ ? info.npmPackageJson['dist-tags']['next']
+ ? 'next'
+ : 'latest'
+ : 'latest';
+ let version = info.npmPackageJson['dist-tags'][tag];
+ let target = info.npmPackageJson.versions[version];
+ const versionDiff = semver.diff(info.installed.version, version);
+ if (versionDiff !== 'patch' &&
+ versionDiff !== 'minor' &&
+ /^@(?:angular|nguniversal)\//.test(name)) {
+ const installedMajorVersion = (_a = semver.parse(info.installed.version)) === null || _a === void 0 ? void 0 : _a.major;
+ const toInstallMajorVersion = (_b = semver.parse(version)) === null || _b === void 0 ? void 0 : _b.major;
+ if (installedMajorVersion !== undefined &&
+ toInstallMajorVersion !== undefined &&
+ installedMajorVersion < toInstallMajorVersion - 1) {
+ const nextMajorVersion = `${installedMajorVersion + 1}.`;
+ const nextMajorVersions = Object.keys(info.npmPackageJson.versions)
+ .filter((v) => v.startsWith(nextMajorVersion))
+ .sort((a, b) => (a > b ? -1 : 1));
+ if (nextMajorVersions.length) {
+ version = nextMajorVersions[0];
+ target = info.npmPackageJson.versions[version];
+ tag = '';
+ }
+ }
+ }
+ return {
+ name,
+ info,
+ version,
+ tag,
+ target,
+ };
+ })
+ .filter(({ info, version, target }) => (target === null || target === void 0 ? void 0 : target['ng-update']) && semver.compare(info.installed.version, version) < 0)
+ .map(({ name, info, version, tag, target }) => {
+ var _a;
+ // Look for packageGroup.
+ const packageGroup = target['ng-update']['packageGroup'];
+ if (packageGroup) {
+ const packageGroupName = target['ng-update']['packageGroupName'] || packageGroup[0];
+ if (packageGroupName) {
+ if (packageGroups.has(name)) {
+ return null;
+ }
+ packageGroup.forEach((x) => packageGroups.set(x, packageGroupName));
+ packageGroups.set(packageGroupName, packageGroupName);
+ name = packageGroupName;
+ }
+ }
+ let command = `ng update ${name}`;
+ if (!tag) {
+ command += `@${((_a = semver.parse(version)) === null || _a === void 0 ? void 0 : _a.major) || version}`;
+ }
+ else if (tag == 'next') {
+ command += ' --next';
+ }
+ return [name, `${info.installed.version} -> ${version} `, command];
+ })
+ .filter((x) => x !== null)
+ .sort((a, b) => (a && b ? a[0].localeCompare(b[0]) : 0));
+ if (packagesToUpdate.length == 0) {
+ logger.info('We analyzed your package.json and everything seems to be in order. Good work!');
+ return;
+ }
+ logger.info('We analyzed your package.json, there are some packages to update:\n');
+ // Find the largest name to know the padding needed.
+ let namePad = Math.max(...[...infoMap.keys()].map((x) => x.length)) + 2;
+ if (!Number.isFinite(namePad)) {
+ namePad = 30;
+ }
+ const pads = [namePad, 25, 0];
+ logger.info(' ' + ['Name', 'Version', 'Command to update'].map((x, i) => x.padEnd(pads[i])).join(''));
+ logger.info(' ' + '-'.repeat(pads.reduce((s, x) => (s += x), 0) + 20));
+ packagesToUpdate.forEach((fields) => {
+ if (!fields) {
+ return;
+ }
+ logger.info(' ' + fields.map((x, i) => x.padEnd(pads[i])).join(''));
+ });
+ logger.info(`\nThere might be additional packages which don't provide 'ng update' capabilities that are outdated.\n` +
+ `You can update the additional packages by running the update command of your package manager.`);
+ return;
+}
+function _buildPackageInfo(tree, packages, allDependencies, npmPackageJson, logger) {
+ const name = npmPackageJson.name;
+ const packageJsonRange = allDependencies.get(name);
+ if (!packageJsonRange) {
+ throw new schematics_1.SchematicsException(`Package ${JSON.stringify(name)} was not found in package.json.`);
+ }
+ // Find out the currently installed version. Either from the package.json or the node_modules/
+ // TODO: figure out a way to read package-lock.json and/or yarn.lock.
+ let installedVersion;
+ const packageContent = tree.read(`/node_modules/${name}/package.json`);
+ if (packageContent) {
+ const content = JSON.parse(packageContent.toString());
+ installedVersion = content.version;
+ }
+ if (!installedVersion) {
+ // Find the version from NPM that fits the range to max.
+ installedVersion = semver.maxSatisfying(Object.keys(npmPackageJson.versions), packageJsonRange);
+ }
+ if (!installedVersion) {
+ throw new schematics_1.SchematicsException(`An unexpected error happened; could not determine version for package ${name}.`);
+ }
+ const installedPackageJson = npmPackageJson.versions[installedVersion] || packageContent;
+ if (!installedPackageJson) {
+ throw new schematics_1.SchematicsException(`An unexpected error happened; package ${name} has no version ${installedVersion}.`);
+ }
+ let targetVersion = packages.get(name);
+ if (targetVersion) {
+ if (npmPackageJson['dist-tags'][targetVersion]) {
+ targetVersion = npmPackageJson['dist-tags'][targetVersion];
+ }
+ else if (targetVersion == 'next') {
+ targetVersion = npmPackageJson['dist-tags']['latest'];
+ }
+ else {
+ targetVersion = semver.maxSatisfying(Object.keys(npmPackageJson.versions), targetVersion);
+ }
+ }
+ if (targetVersion && semver.lte(targetVersion, installedVersion)) {
+ logger.debug(`Package ${name} already satisfied by package.json (${packageJsonRange}).`);
+ targetVersion = undefined;
+ }
+ const target = targetVersion
+ ? {
+ version: targetVersion,
+ packageJson: npmPackageJson.versions[targetVersion],
+ updateMetadata: _getUpdateMetadata(npmPackageJson.versions[targetVersion], logger),
+ }
+ : undefined;
+ // Check if there's an installed version.
+ return {
+ name,
+ npmPackageJson,
+ installed: {
+ version: installedVersion,
+ packageJson: installedPackageJson,
+ updateMetadata: _getUpdateMetadata(installedPackageJson, logger),
+ },
+ target,
+ packageJsonRange,
+ };
+}
+function _buildPackageList(options, projectDeps, logger) {
+ // Parse the packages options to set the targeted version.
+ const packages = new Map();
+ const commandLinePackages = options.packages && options.packages.length > 0 ? options.packages : [];
+ for (const pkg of commandLinePackages) {
+ // Split the version asked on command line.
+ const m = pkg.match(/^((?:@[^/]{1,100}\/)?[^@]{1,100})(?:@(.{1,100}))?$/);
+ if (!m) {
+ logger.warn(`Invalid package argument: ${JSON.stringify(pkg)}. Skipping.`);
+ continue;
+ }
+ const [, npmName, maybeVersion] = m;
+ const version = projectDeps.get(npmName);
+ if (!version) {
+ logger.warn(`Package not installed: ${JSON.stringify(npmName)}. Skipping.`);
+ continue;
+ }
+ packages.set(npmName, (maybeVersion || (options.next ? 'next' : 'latest')));
+ }
+ return packages;
+}
+function _addPackageGroup(tree, packages, allDependencies, npmPackageJson, logger) {
+ const maybePackage = packages.get(npmPackageJson.name);
+ if (!maybePackage) {
+ return;
+ }
+ const info = _buildPackageInfo(tree, packages, allDependencies, npmPackageJson, logger);
+ const version = (info.target && info.target.version) ||
+ npmPackageJson['dist-tags'][maybePackage] ||
+ maybePackage;
+ if (!npmPackageJson.versions[version]) {
+ return;
+ }
+ const ngUpdateMetadata = npmPackageJson.versions[version]['ng-update'];
+ if (!ngUpdateMetadata) {
+ return;
+ }
+ let packageGroup = ngUpdateMetadata['packageGroup'];
+ if (!packageGroup) {
+ return;
+ }
+ if (Array.isArray(packageGroup) && !packageGroup.some((x) => typeof x != 'string')) {
+ packageGroup = packageGroup.reduce((acc, curr) => {
+ acc[curr] = maybePackage;
+ return acc;
+ }, {});
+ }
+ // Only need to check if it's an object because we set it right the time before.
+ if (typeof packageGroup != 'object' ||
+ packageGroup === null ||
+ Object.values(packageGroup).some((v) => typeof v != 'string')) {
+ logger.warn(`packageGroup metadata of package ${npmPackageJson.name} is malformed.`);
+ return;
+ }
+ Object.keys(packageGroup)
+ .filter((name) => !packages.has(name)) // Don't override names from the command line.
+ .filter((name) => allDependencies.has(name)) // Remove packages that aren't installed.
+ .forEach((name) => {
+ packages.set(name, packageGroup[name]);
+ });
+}
+/**
+ * Add peer dependencies of packages on the command line to the list of packages to update.
+ * We don't do verification of the versions here as this will be done by a later step (and can
+ * be ignored by the --force flag).
+ * @private
+ */
+function _addPeerDependencies(tree, packages, allDependencies, npmPackageJson, npmPackageJsonMap, logger) {
+ const maybePackage = packages.get(npmPackageJson.name);
+ if (!maybePackage) {
+ return;
+ }
+ const info = _buildPackageInfo(tree, packages, allDependencies, npmPackageJson, logger);
+ const version = (info.target && info.target.version) ||
+ npmPackageJson['dist-tags'][maybePackage] ||
+ maybePackage;
+ if (!npmPackageJson.versions[version]) {
+ return;
+ }
+ const packageJson = npmPackageJson.versions[version];
+ const error = false;
+ for (const [peer, range] of Object.entries(packageJson.peerDependencies || {})) {
+ if (packages.has(peer)) {
+ continue;
+ }
+ const peerPackageJson = npmPackageJsonMap.get(peer);
+ if (peerPackageJson) {
+ const peerInfo = _buildPackageInfo(tree, packages, allDependencies, peerPackageJson, logger);
+ if (semver.satisfies(peerInfo.installed.version, range)) {
+ continue;
+ }
+ }
+ packages.set(peer, range);
+ }
+ if (error) {
+ throw new schematics_1.SchematicsException('An error occured, see above.');
+ }
+}
+function _getAllDependencies(tree) {
+ const packageJsonContent = tree.read('/package.json');
+ if (!packageJsonContent) {
+ throw new schematics_1.SchematicsException('Could not find a package.json. Are you in a Node project?');
+ }
+ let packageJson;
+ try {
+ packageJson = JSON.parse(packageJsonContent.toString());
+ }
+ catch (e) {
+ throw new schematics_1.SchematicsException('package.json could not be parsed: ' + e.message);
+ }
+ return [
+ ...Object.entries(packageJson.peerDependencies || {}),
+ ...Object.entries(packageJson.devDependencies || {}),
+ ...Object.entries(packageJson.dependencies || {}),
+ ];
+}
+function _formatVersion(version) {
+ if (version === undefined) {
+ return undefined;
+ }
+ if (!version.match(/^\d{1,30}\.\d{1,30}\.\d{1,30}/)) {
+ version += '.0';
+ }
+ if (!version.match(/^\d{1,30}\.\d{1,30}\.\d{1,30}/)) {
+ version += '.0';
+ }
+ if (!semver.valid(version)) {
+ throw new schematics_1.SchematicsException(`Invalid migration version: ${JSON.stringify(version)}`);
+ }
+ return version;
+}
+/**
+ * Returns whether or not the given package specifier (the value string in a
+ * `package.json` dependency) is hosted in the NPM registry.
+ * @throws When the specifier cannot be parsed.
+ */
+function isPkgFromRegistry(name, specifier) {
+ const result = npa.resolve(name, specifier);
+ return !!result.registry;
+}
+function default_1(options) {
+ if (!options.packages) {
+ // We cannot just return this because we need to fetch the packages from NPM still for the
+ // help/guide to show.
+ options.packages = [];
+ }
+ else {
+ // We split every packages by commas to allow people to pass in multiple and make it an array.
+ options.packages = options.packages.reduce((acc, curr) => {
+ return acc.concat(curr.split(','));
+ }, []);
+ }
+ if (options.migrateOnly && options.from) {
+ if (options.packages.length !== 1) {
+ throw new schematics_1.SchematicsException('--from requires that only a single package be passed.');
+ }
+ }
+ options.from = _formatVersion(options.from);
+ options.to = _formatVersion(options.to);
+ const usingYarn = options.packageManager === 'yarn';
+ return async (tree, context) => {
+ const logger = context.logger;
+ const npmDeps = new Map(_getAllDependencies(tree).filter(([name, specifier]) => {
+ try {
+ return isPkgFromRegistry(name, specifier);
+ }
+ catch {
+ logger.warn(`Package ${name} was not found on the registry. Skipping.`);
+ return false;
+ }
+ }));
+ const packages = _buildPackageList(options, npmDeps, logger);
+ // Grab all package.json from the npm repository. This requires a lot of HTTP calls so we
+ // try to parallelize as many as possible.
+ const allPackageMetadata = await Promise.all(Array.from(npmDeps.keys()).map((depName) => (0, package_metadata_1.getNpmPackageJson)(depName, logger, {
+ registry: options.registry,
+ usingYarn,
+ verbose: options.verbose,
+ })));
+ // Build a map of all dependencies and their packageJson.
+ const npmPackageJsonMap = allPackageMetadata.reduce((acc, npmPackageJson) => {
+ // If the package was not found on the registry. It could be private, so we will just
+ // ignore. If the package was part of the list, we will error out, but will simply ignore
+ // if it's either not requested (so just part of package.json. silently) or if it's a
+ // `--all` situation. There is an edge case here where a public package peer depends on a
+ // private one, but it's rare enough.
+ if (!npmPackageJson.name) {
+ if (npmPackageJson.requestedName && packages.has(npmPackageJson.requestedName)) {
+ throw new schematics_1.SchematicsException(`Package ${JSON.stringify(npmPackageJson.requestedName)} was not found on the ` +
+ 'registry. Cannot continue as this may be an error.');
+ }
+ }
+ else {
+ // If a name is present, it is assumed to be fully populated
+ acc.set(npmPackageJson.name, npmPackageJson);
+ }
+ return acc;
+ }, new Map());
+ // Augment the command line package list with packageGroups and forward peer dependencies.
+ // Each added package may uncover new package groups and peer dependencies, so we must
+ // repeat this process until the package list stabilizes.
+ let lastPackagesSize;
+ do {
+ lastPackagesSize = packages.size;
+ npmPackageJsonMap.forEach((npmPackageJson) => {
+ _addPackageGroup(tree, packages, npmDeps, npmPackageJson, logger);
+ _addPeerDependencies(tree, packages, npmDeps, npmPackageJson, npmPackageJsonMap, logger);
+ });
+ } while (packages.size > lastPackagesSize);
+ // Build the PackageInfo for each module.
+ const packageInfoMap = new Map();
+ npmPackageJsonMap.forEach((npmPackageJson) => {
+ packageInfoMap.set(npmPackageJson.name, _buildPackageInfo(tree, packages, npmDeps, npmPackageJson, logger));
+ });
+ // Now that we have all the information, check the flags.
+ if (packages.size > 0) {
+ if (options.migrateOnly && options.from && options.packages) {
+ return;
+ }
+ const sublog = new core_1.logging.LevelCapLogger('validation', logger.createChild(''), 'warn');
+ _validateUpdatePackages(packageInfoMap, !!options.force, !!options.next, sublog);
+ _performUpdate(tree, context, packageInfoMap, logger, !!options.migrateOnly);
+ }
+ else {
+ _usageMessage(options, packageInfoMap, logger);
+ }
+ };
+}
+exports.default = default_1;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.d.ts
new file mode 100644
index 00000000..f24e60c1
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.d.ts
@@ -0,0 +1,50 @@
+export interface Schema {
+ /**
+ * When false (the default), reports an error if installed packages are incompatible with
+ * the update.
+ */
+ force?: boolean;
+ /**
+ * When using `--migrateOnly` for a single package, the version of that package from which
+ * to migrate.
+ */
+ from?: string;
+ /**
+ * Perform a migration, but do not update the installed version.
+ */
+ migrateOnly?: boolean;
+ /**
+ * Update to the latest version, including beta and RCs.
+ */
+ next?: boolean;
+ /**
+ * The preferred package manager configuration files to use for registry settings.
+ */
+ packageManager?: PackageManager;
+ /**
+ * The package or packages to update.
+ */
+ packages?: string[];
+ /**
+ * The npm registry to use.
+ */
+ registry?: string;
+ /**
+ * When using `--migrateOnly` for a single package, the version of that package to which to
+ * migrate.
+ */
+ to?: string;
+ /**
+ * Display additional details during the update process.
+ */
+ verbose?: boolean;
+}
+/**
+ * The preferred package manager configuration files to use for registry settings.
+ */
+export declare enum PackageManager {
+ Cnpm = "cnpm",
+ Npm = "npm",
+ Pnpm = "pnpm",
+ Yarn = "yarn"
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.js
new file mode 100644
index 00000000..3243c590
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.js
@@ -0,0 +1,15 @@
+"use strict";
+// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
+// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.PackageManager = void 0;
+/**
+ * The preferred package manager configuration files to use for registry settings.
+ */
+var PackageManager;
+(function (PackageManager) {
+ PackageManager["Cnpm"] = "cnpm";
+ PackageManager["Npm"] = "npm";
+ PackageManager["Pnpm"] = "pnpm";
+ PackageManager["Yarn"] = "yarn";
+})(PackageManager = exports.PackageManager || (exports.PackageManager = {}));
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.json b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.json
new file mode 100644
index 00000000..9811d1a3
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/commands/update/schematic/schema.json
@@ -0,0 +1,64 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "$id": "SchematicsUpdateSchema",
+ "title": "Schematic Options Schema",
+ "type": "object",
+ "properties": {
+ "packages": {
+ "description": "The package or packages to update.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "$default": {
+ "$source": "argv"
+ }
+ },
+ "force": {
+ "description": "When false (the default), reports an error if installed packages are incompatible with the update.",
+ "default": false,
+ "type": "boolean"
+ },
+ "next": {
+ "description": "Update to the latest version, including beta and RCs.",
+ "default": false,
+ "type": "boolean"
+ },
+ "migrateOnly": {
+ "description": "Perform a migration, but do not update the installed version.",
+ "default": false,
+ "type": "boolean"
+ },
+ "from": {
+ "description": "When using `--migrateOnly` for a single package, the version of that package from which to migrate.",
+ "type": "string"
+ },
+ "to": {
+ "description": "When using `--migrateOnly` for a single package, the version of that package to which to migrate.",
+ "type": "string"
+ },
+ "registry": {
+ "description": "The npm registry to use.",
+ "type": "string",
+ "oneOf": [
+ {
+ "format": "uri"
+ },
+ {
+ "format": "hostname"
+ }
+ ]
+ },
+ "verbose": {
+ "description": "Display additional details during the update process.",
+ "type": "boolean"
+ },
+ "packageManager": {
+ "description": "The preferred package manager configuration files to use for registry settings.",
+ "type": "string",
+ "default": "npm",
+ "enum": ["npm", "yarn", "cnpm", "pnpm"]
+ }
+ },
+ "required": []
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/typings.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/typings.d.ts
new file mode 100644
index 00000000..0bda311e
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/typings.d.ts
@@ -0,0 +1,24 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+declare module '@yarnpkg/lockfile' {
+ function parse(data: string): Record<string, any>;
+}
+declare module 'ini' {
+ function parse(data: string): Record<string, any>;
+}
+declare module 'npm-pick-manifest' {
+ function pickManifest(metadata: import('../utilities/package-metadata').PackageMetadata, selector: string): import('../utilities/package-metadata').PackageManifest;
+ export = pickManifest;
+}
+declare module 'pacote' {
+ function manifest(specifier: string, options: Record<string, unknown>): Promise<{
+ name: string;
+ version: string;
+ }>;
+ function packument(specifier: string, options: Record<string, unknown>): Promise<import('../utilities/package-metadata').NpmRepositoryPackageJson>;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/typings.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/typings.js
new file mode 100644
index 00000000..a9f10dad
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/src/typings.js
@@ -0,0 +1,8 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/INITIAL_COMMIT_MESSAGE.txt b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/INITIAL_COMMIT_MESSAGE.txt
new file mode 100644
index 00000000..2f0b94d3
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/INITIAL_COMMIT_MESSAGE.txt
@@ -0,0 +1,8 @@
+chore: initial commit from @angular/cli
+
+ _ _ ____ _ ___
+ / \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
+ / △ \ | '_ \ / _\` | | | | |/ _\` | '__| | | | | | |
+ / ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
+/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
+ |___/
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/color.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/color.d.ts
new file mode 100644
index 00000000..b9aa88ac
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/color.d.ts
@@ -0,0 +1,11 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import * as ansiColors from 'ansi-colors';
+export declare function removeColor(text: string): string;
+declare const colors: typeof ansiColors;
+export { colors };
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/color.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/color.js
new file mode 100644
index 00000000..583ab6dd
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/color.js
@@ -0,0 +1,66 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colors = exports.removeColor = void 0;
+const ansiColors = __importStar(require("ansi-colors"));
+const tty_1 = require("tty");
+function supportColor() {
+ if (process.env.FORCE_COLOR !== undefined) {
+ // 2 colors: FORCE_COLOR = 0 (Disables colors), depth 1
+ // 16 colors: FORCE_COLOR = 1, depth 4
+ // 256 colors: FORCE_COLOR = 2, depth 8
+ // 16,777,216 colors: FORCE_COLOR = 3, depth 16
+ // See: https://nodejs.org/dist/latest-v12.x/docs/api/tty.html#tty_writestream_getcolordepth_env
+ // and https://github.com/nodejs/node/blob/b9f36062d7b5c5039498e98d2f2c180dca2a7065/lib/internal/tty.js#L106;
+ switch (process.env.FORCE_COLOR) {
+ case '':
+ case 'true':
+ case '1':
+ case '2':
+ case '3':
+ return true;
+ default:
+ return false;
+ }
+ }
+ if (process.stdout instanceof tty_1.WriteStream) {
+ return process.stdout.getColorDepth() > 1;
+ }
+ return false;
+}
+function removeColor(text) {
+ // This has been created because when colors.enabled is false unstyle doesn't work
+ // see: https://github.com/doowb/ansi-colors/blob/a4794363369d7b4d1872d248fc43a12761640d8e/index.js#L38
+ return text.replace(ansiColors.ansiRegex, '');
+}
+exports.removeColor = removeColor;
+// Create a separate instance to prevent unintended global changes to the color configuration
+// Create function is not defined in the typings. See: https://github.com/doowb/ansi-colors/pull/44
+const colors = ansiColors.create();
+exports.colors = colors;
+colors.enabled = supportColor();
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/config.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/config.d.ts
new file mode 100644
index 00000000..6620e91d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/config.d.ts
@@ -0,0 +1,30 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { json, workspaces } from '@angular-devkit/core';
+import { JSONFile } from './json-file';
+export declare const workspaceSchemaPath: string;
+export declare class AngularWorkspace {
+ private workspace;
+ readonly filePath: string;
+ readonly basePath: string;
+ constructor(workspace: workspaces.WorkspaceDefinition, filePath: string);
+ get extensions(): Record<string, json.JsonValue | undefined>;
+ get projects(): workspaces.ProjectDefinitionCollection;
+ getCli(): Record<string, any>;
+ getProjectCli(projectName: string): Record<string, any>;
+ static load(workspaceFilePath: string): Promise<AngularWorkspace>;
+}
+export declare function getWorkspace(level?: 'local' | 'global'): Promise<AngularWorkspace | null>;
+export declare function createGlobalSettings(): string;
+export declare function getWorkspaceRaw(level?: 'local' | 'global'): [JSONFile | null, string | null];
+export declare function validateWorkspace(data: json.JsonObject): Promise<void>;
+export declare function getProjectByCwd(workspace: AngularWorkspace): string | null;
+export declare function getConfiguredPackageManager(): Promise<string | null>;
+export declare function migrateLegacyGlobalConfig(): boolean;
+export declare function getSchematicDefaults(collection: string, schematic: string, project?: string | null): Promise<{}>;
+export declare function isWarningEnabled(warning: string): Promise<boolean>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/config.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/config.js
new file mode 100644
index 00000000..bbc692f7
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/config.js
@@ -0,0 +1,410 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isWarningEnabled = exports.getSchematicDefaults = exports.migrateLegacyGlobalConfig = exports.getConfiguredPackageManager = exports.getProjectByCwd = exports.validateWorkspace = exports.getWorkspaceRaw = exports.createGlobalSettings = exports.getWorkspace = exports.AngularWorkspace = exports.workspaceSchemaPath = void 0;
+const core_1 = require("@angular-devkit/core");
+const fs_1 = require("fs");
+const os = __importStar(require("os"));
+const path = __importStar(require("path"));
+const find_up_1 = require("./find-up");
+const json_file_1 = require("./json-file");
+function isJsonObject(value) {
+ return value !== undefined && core_1.json.isJsonObject(value);
+}
+function createWorkspaceHost() {
+ return {
+ async readFile(path) {
+ return (0, fs_1.readFileSync)(path, 'utf-8');
+ },
+ async writeFile(path, data) {
+ (0, fs_1.writeFileSync)(path, data);
+ },
+ async isDirectory(path) {
+ try {
+ return (0, fs_1.statSync)(path).isDirectory();
+ }
+ catch {
+ return false;
+ }
+ },
+ async isFile(path) {
+ try {
+ return (0, fs_1.statSync)(path).isFile();
+ }
+ catch {
+ return false;
+ }
+ },
+ };
+}
+function getSchemaLocation() {
+ return path.join(__dirname, '../lib/config/schema.json');
+}
+exports.workspaceSchemaPath = getSchemaLocation();
+const configNames = ['angular.json', '.angular.json'];
+const globalFileName = '.angular-config.json';
+function xdgConfigHome(home, configFile) {
+ // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
+ const xdgConfigHome = process.env['XDG_CONFIG_HOME'] || path.join(home, '.config');
+ const xdgAngularHome = path.join(xdgConfigHome, 'angular');
+ return configFile ? path.join(xdgAngularHome, configFile) : xdgAngularHome;
+}
+function xdgConfigHomeOld(home) {
+ // Check the configuration files in the old location that should be:
+ // - $XDG_CONFIG_HOME/.angular-config.json (if XDG_CONFIG_HOME is set)
+ // - $HOME/.config/angular/.angular-config.json (otherwise)
+ const p = process.env['XDG_CONFIG_HOME'] || path.join(home, '.config', 'angular');
+ return path.join(p, '.angular-config.json');
+}
+function projectFilePath(projectPath) {
+ // Find the configuration, either where specified, in the Angular CLI project
+ // (if it's in node_modules) or from the current process.
+ return ((projectPath && (0, find_up_1.findUp)(configNames, projectPath)) ||
+ (0, find_up_1.findUp)(configNames, process.cwd()) ||
+ (0, find_up_1.findUp)(configNames, __dirname));
+}
+function globalFilePath() {
+ const home = os.homedir();
+ if (!home) {
+ return null;
+ }
+ // follow XDG Base Directory spec
+ // note that createGlobalSettings() will continue creating
+ // global file in home directory, with this user will have
+ // choice to move change its location to meet XDG convention
+ const xdgConfig = xdgConfigHome(home, 'config.json');
+ if ((0, fs_1.existsSync)(xdgConfig)) {
+ return xdgConfig;
+ }
+ // NOTE: This check is for the old configuration location, for more
+ // information see https://github.com/angular/angular-cli/pull/20556
+ const xdgConfigOld = xdgConfigHomeOld(home);
+ if ((0, fs_1.existsSync)(xdgConfigOld)) {
+ /* eslint-disable no-console */
+ console.warn(`Old configuration location detected: ${xdgConfigOld}\n` +
+ `Please move the file to the new location ~/.config/angular/config.json`);
+ return xdgConfigOld;
+ }
+ const p = path.join(home, globalFileName);
+ if ((0, fs_1.existsSync)(p)) {
+ return p;
+ }
+ return null;
+}
+class AngularWorkspace {
+ constructor(workspace, filePath) {
+ this.workspace = workspace;
+ this.filePath = filePath;
+ this.basePath = path.dirname(filePath);
+ }
+ get extensions() {
+ return this.workspace.extensions;
+ }
+ get projects() {
+ return this.workspace.projects;
+ }
+ // Temporary helper functions to support refactoring
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ getCli() {
+ return this.workspace.extensions['cli'] || {};
+ }
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ getProjectCli(projectName) {
+ const project = this.workspace.projects.get(projectName);
+ return (project === null || project === void 0 ? void 0 : project.extensions['cli']) || {};
+ }
+ static async load(workspaceFilePath) {
+ const oldConfigFileNames = ['.angular-cli.json', 'angular-cli.json'];
+ if (oldConfigFileNames.includes(path.basename(workspaceFilePath))) {
+ // 1.x file format
+ // Create an empty workspace to allow update to be used
+ return new AngularWorkspace({ extensions: {}, projects: new core_1.workspaces.ProjectDefinitionCollection() }, workspaceFilePath);
+ }
+ const result = await core_1.workspaces.readWorkspace(workspaceFilePath, createWorkspaceHost(), core_1.workspaces.WorkspaceFormat.JSON);
+ return new AngularWorkspace(result.workspace, workspaceFilePath);
+ }
+}
+exports.AngularWorkspace = AngularWorkspace;
+const cachedWorkspaces = new Map();
+async function getWorkspace(level = 'local') {
+ const cached = cachedWorkspaces.get(level);
+ if (cached !== undefined) {
+ return cached;
+ }
+ const configPath = level === 'local' ? projectFilePath() : globalFilePath();
+ if (!configPath) {
+ cachedWorkspaces.set(level, null);
+ return null;
+ }
+ try {
+ const workspace = await AngularWorkspace.load(configPath);
+ cachedWorkspaces.set(level, workspace);
+ return workspace;
+ }
+ catch (error) {
+ throw new Error(`Workspace config file cannot be loaded: ${configPath}` +
+ `\n${error instanceof Error ? error.message : error}`);
+ }
+}
+exports.getWorkspace = getWorkspace;
+function createGlobalSettings() {
+ const home = os.homedir();
+ if (!home) {
+ throw new Error('No home directory found.');
+ }
+ const globalPath = path.join(home, globalFileName);
+ (0, fs_1.writeFileSync)(globalPath, JSON.stringify({ version: 1 }));
+ return globalPath;
+}
+exports.createGlobalSettings = createGlobalSettings;
+function getWorkspaceRaw(level = 'local') {
+ let configPath = level === 'local' ? projectFilePath() : globalFilePath();
+ if (!configPath) {
+ if (level === 'global') {
+ configPath = createGlobalSettings();
+ }
+ else {
+ return [null, null];
+ }
+ }
+ return [new json_file_1.JSONFile(configPath), configPath];
+}
+exports.getWorkspaceRaw = getWorkspaceRaw;
+async function validateWorkspace(data) {
+ const schema = (0, json_file_1.readAndParseJson)(path.join(__dirname, '../lib/config/schema.json'));
+ const { formats } = await Promise.resolve().then(() => __importStar(require('@angular-devkit/schematics')));
+ const registry = new core_1.json.schema.CoreSchemaRegistry(formats.standardFormats);
+ const validator = await registry.compile(schema).toPromise();
+ const { success, errors } = await validator(data).toPromise();
+ if (!success) {
+ throw new core_1.json.schema.SchemaValidationException(errors);
+ }
+}
+exports.validateWorkspace = validateWorkspace;
+function findProjectByPath(workspace, location) {
+ const isInside = (base, potential) => {
+ const absoluteBase = path.resolve(workspace.basePath, base);
+ const absolutePotential = path.resolve(workspace.basePath, potential);
+ const relativePotential = path.relative(absoluteBase, absolutePotential);
+ if (!relativePotential.startsWith('..') && !path.isAbsolute(relativePotential)) {
+ return true;
+ }
+ return false;
+ };
+ const projects = Array.from(workspace.projects)
+ .map(([name, project]) => [project.root, name])
+ .filter((tuple) => isInside(tuple[0], location))
+ // Sort tuples by depth, with the deeper ones first. Since the first member is a path and
+ // we filtered all invalid paths, the longest will be the deepest (and in case of equality
+ // the sort is stable and the first declared project will win).
+ .sort((a, b) => b[0].length - a[0].length);
+ if (projects.length === 0) {
+ return null;
+ }
+ else if (projects.length > 1) {
+ const found = new Set();
+ const sameRoots = projects.filter((v) => {
+ if (!found.has(v[0])) {
+ found.add(v[0]);
+ return false;
+ }
+ return true;
+ });
+ if (sameRoots.length > 0) {
+ // Ambiguous location - cannot determine a project
+ return null;
+ }
+ }
+ return projects[0][1];
+}
+function getProjectByCwd(workspace) {
+ if (workspace.projects.size === 1) {
+ // If there is only one project, return that one.
+ return Array.from(workspace.projects.keys())[0];
+ }
+ const project = findProjectByPath(workspace, process.cwd());
+ if (project) {
+ return project;
+ }
+ const defaultProject = workspace.extensions['defaultProject'];
+ if (defaultProject && typeof defaultProject === 'string') {
+ // If there is a default project name, return it.
+ return defaultProject;
+ }
+ return null;
+}
+exports.getProjectByCwd = getProjectByCwd;
+async function getConfiguredPackageManager() {
+ var _a;
+ const getPackageManager = (source) => {
+ if (isJsonObject(source)) {
+ const value = source['packageManager'];
+ if (value && typeof value === 'string') {
+ return value;
+ }
+ }
+ };
+ let result;
+ const workspace = await getWorkspace('local');
+ if (workspace) {
+ const project = getProjectByCwd(workspace);
+ if (project) {
+ result = getPackageManager((_a = workspace.projects.get(project)) === null || _a === void 0 ? void 0 : _a.extensions['cli']);
+ }
+ result = result !== null && result !== void 0 ? result : getPackageManager(workspace.extensions['cli']);
+ }
+ if (result === undefined) {
+ const globalOptions = await getWorkspace('global');
+ result = getPackageManager(globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.extensions['cli']);
+ if (!workspace && !globalOptions) {
+ // Only check legacy if updated workspace is not found
+ result = getLegacyPackageManager();
+ }
+ }
+ // Default to null
+ return result !== null && result !== void 0 ? result : null;
+}
+exports.getConfiguredPackageManager = getConfiguredPackageManager;
+function migrateLegacyGlobalConfig() {
+ const homeDir = os.homedir();
+ if (homeDir) {
+ const legacyGlobalConfigPath = path.join(homeDir, '.angular-cli.json');
+ if ((0, fs_1.existsSync)(legacyGlobalConfigPath)) {
+ const legacy = (0, json_file_1.readAndParseJson)(legacyGlobalConfigPath);
+ if (!isJsonObject(legacy)) {
+ return false;
+ }
+ const cli = {};
+ if (legacy.packageManager &&
+ typeof legacy.packageManager == 'string' &&
+ legacy.packageManager !== 'default') {
+ cli['packageManager'] = legacy.packageManager;
+ }
+ if (isJsonObject(legacy.defaults) &&
+ isJsonObject(legacy.defaults.schematics) &&
+ typeof legacy.defaults.schematics.collection == 'string') {
+ cli['defaultCollection'] = legacy.defaults.schematics.collection;
+ }
+ if (isJsonObject(legacy.warnings)) {
+ const warnings = {};
+ if (typeof legacy.warnings.versionMismatch == 'boolean') {
+ warnings['versionMismatch'] = legacy.warnings.versionMismatch;
+ }
+ if (Object.getOwnPropertyNames(warnings).length > 0) {
+ cli['warnings'] = warnings;
+ }
+ }
+ if (Object.getOwnPropertyNames(cli).length > 0) {
+ const globalPath = path.join(homeDir, globalFileName);
+ (0, fs_1.writeFileSync)(globalPath, JSON.stringify({ version: 1, cli }, null, 2));
+ return true;
+ }
+ }
+ }
+ return false;
+}
+exports.migrateLegacyGlobalConfig = migrateLegacyGlobalConfig;
+// Fallback, check for packageManager in config file in v1.* global config.
+function getLegacyPackageManager() {
+ const homeDir = os.homedir();
+ if (homeDir) {
+ const legacyGlobalConfigPath = path.join(homeDir, '.angular-cli.json');
+ if ((0, fs_1.existsSync)(legacyGlobalConfigPath)) {
+ const legacy = (0, json_file_1.readAndParseJson)(legacyGlobalConfigPath);
+ if (!isJsonObject(legacy)) {
+ return null;
+ }
+ if (legacy.packageManager &&
+ typeof legacy.packageManager === 'string' &&
+ legacy.packageManager !== 'default') {
+ return legacy.packageManager;
+ }
+ }
+ }
+ return null;
+}
+async function getSchematicDefaults(collection, schematic, project) {
+ var _a;
+ const result = {};
+ const mergeOptions = (source) => {
+ if (isJsonObject(source)) {
+ // Merge options from the qualified name
+ Object.assign(result, source[`${collection}:${schematic}`]);
+ // Merge options from nested collection schematics
+ const collectionOptions = source[collection];
+ if (isJsonObject(collectionOptions)) {
+ Object.assign(result, collectionOptions[schematic]);
+ }
+ }
+ };
+ // Global level schematic options
+ const globalOptions = await getWorkspace('global');
+ mergeOptions(globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.extensions['schematics']);
+ const workspace = await getWorkspace('local');
+ if (workspace) {
+ // Workspace level schematic options
+ mergeOptions(workspace.extensions['schematics']);
+ project = project || getProjectByCwd(workspace);
+ if (project) {
+ // Project level schematic options
+ mergeOptions((_a = workspace.projects.get(project)) === null || _a === void 0 ? void 0 : _a.extensions['schematics']);
+ }
+ }
+ return result;
+}
+exports.getSchematicDefaults = getSchematicDefaults;
+async function isWarningEnabled(warning) {
+ var _a;
+ const getWarning = (source) => {
+ if (isJsonObject(source)) {
+ const warnings = source['warnings'];
+ if (isJsonObject(warnings)) {
+ const value = warnings[warning];
+ if (typeof value == 'boolean') {
+ return value;
+ }
+ }
+ }
+ };
+ let result;
+ const workspace = await getWorkspace('local');
+ if (workspace) {
+ const project = getProjectByCwd(workspace);
+ if (project) {
+ result = getWarning((_a = workspace.projects.get(project)) === null || _a === void 0 ? void 0 : _a.extensions['cli']);
+ }
+ result = result !== null && result !== void 0 ? result : getWarning(workspace.extensions['cli']);
+ }
+ if (result === undefined) {
+ const globalOptions = await getWorkspace('global');
+ result = getWarning(globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.extensions['cli']);
+ }
+ // All warnings are enabled by default
+ return result !== null && result !== void 0 ? result : true;
+}
+exports.isWarningEnabled = isWarningEnabled;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/find-up.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/find-up.d.ts
new file mode 100644
index 00000000..e859cc93
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/find-up.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export declare function findUp(names: string | string[], from: string): string | null;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/find-up.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/find-up.js
new file mode 100644
index 00000000..876653a3
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/find-up.js
@@ -0,0 +1,49 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findUp = void 0;
+const fs_1 = require("fs");
+const path = __importStar(require("path"));
+function findUp(names, from) {
+ if (!Array.isArray(names)) {
+ names = [names];
+ }
+ const root = path.parse(from).root;
+ let currentDir = from;
+ while (currentDir && currentDir !== root) {
+ for (const name of names) {
+ const p = path.join(currentDir, name);
+ if ((0, fs_1.existsSync)(p)) {
+ return p;
+ }
+ }
+ currentDir = path.dirname(currentDir);
+ }
+ return null;
+}
+exports.findUp = findUp;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/install-package.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/install-package.d.ts
new file mode 100644
index 00000000..4095b578
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/install-package.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { PackageManager } from '../lib/config/workspace-schema';
+import { NgAddSaveDepedency } from '../utilities/package-metadata';
+export declare function installAllPackages(packageManager?: PackageManager, extraArgs?: string[], cwd?: string): Promise<1 | 0>;
+export declare function installPackage(packageName: string, packageManager?: PackageManager, save?: Exclude<NgAddSaveDepedency, false>, extraArgs?: string[], cwd?: string): Promise<1 | 0>;
+export declare function installTempPackage(packageName: string, packageManager?: PackageManager, extraArgs?: string[]): Promise<{
+ status: 1 | 0;
+ tempNodeModules: string;
+}>;
+export declare function runTempPackageBin(packageName: string, packageManager?: PackageManager, args?: string[]): Promise<number>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/install-package.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/install-package.js
new file mode 100644
index 00000000..c1fa3b86
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/install-package.js
@@ -0,0 +1,193 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.runTempPackageBin = exports.installTempPackage = exports.installPackage = exports.installAllPackages = void 0;
+const child_process_1 = require("child_process");
+const fs_1 = require("fs");
+const os_1 = require("os");
+const path_1 = require("path");
+const workspace_schema_1 = require("../lib/config/workspace-schema");
+const spinner_1 = require("./spinner");
+async function installAllPackages(packageManager = workspace_schema_1.PackageManager.Npm, extraArgs = [], cwd = process.cwd()) {
+ const packageManagerArgs = getPackageManagerArguments(packageManager);
+ const installArgs = [];
+ if (packageManagerArgs.installAll) {
+ installArgs.push(packageManagerArgs.installAll);
+ }
+ installArgs.push(packageManagerArgs.silent);
+ const spinner = new spinner_1.Spinner();
+ spinner.start('Installing packages...');
+ const bufferedOutput = [];
+ return new Promise((resolve, reject) => {
+ var _a, _b;
+ const childProcess = (0, child_process_1.spawn)(packageManager, [...installArgs, ...extraArgs], {
+ stdio: 'pipe',
+ shell: true,
+ cwd,
+ }).on('close', (code) => {
+ if (code === 0) {
+ spinner.succeed('Packages successfully installed.');
+ resolve(0);
+ }
+ else {
+ spinner.stop();
+ bufferedOutput.forEach(({ stream, data }) => stream.write(data));
+ spinner.fail('Package install failed, see above.');
+ reject(1);
+ }
+ });
+ (_a = childProcess.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (data) => bufferedOutput.push({ stream: process.stdout, data: data }));
+ (_b = childProcess.stderr) === null || _b === void 0 ? void 0 : _b.on('data', (data) => bufferedOutput.push({ stream: process.stderr, data: data }));
+ });
+}
+exports.installAllPackages = installAllPackages;
+async function installPackage(packageName, packageManager = workspace_schema_1.PackageManager.Npm, save = true, extraArgs = [], cwd = process.cwd()) {
+ const packageManagerArgs = getPackageManagerArguments(packageManager);
+ const installArgs = [
+ packageManagerArgs.install,
+ packageName,
+ packageManagerArgs.silent,
+ ];
+ const spinner = new spinner_1.Spinner();
+ spinner.start('Installing package...');
+ if (save === 'devDependencies') {
+ installArgs.push(packageManagerArgs.saveDev);
+ }
+ const bufferedOutput = [];
+ return new Promise((resolve, reject) => {
+ var _a, _b;
+ const childProcess = (0, child_process_1.spawn)(packageManager, [...installArgs, ...extraArgs], {
+ stdio: 'pipe',
+ shell: true,
+ cwd,
+ }).on('close', (code) => {
+ if (code === 0) {
+ spinner.succeed('Package successfully installed.');
+ resolve(0);
+ }
+ else {
+ spinner.stop();
+ bufferedOutput.forEach(({ stream, data }) => stream.write(data));
+ spinner.fail('Package install failed, see above.');
+ reject(1);
+ }
+ });
+ (_a = childProcess.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (data) => bufferedOutput.push({ stream: process.stdout, data: data }));
+ (_b = childProcess.stderr) === null || _b === void 0 ? void 0 : _b.on('data', (data) => bufferedOutput.push({ stream: process.stderr, data: data }));
+ });
+}
+exports.installPackage = installPackage;
+async function installTempPackage(packageName, packageManager = workspace_schema_1.PackageManager.Npm, extraArgs) {
+ const tempPath = (0, fs_1.mkdtempSync)((0, path_1.join)((0, fs_1.realpathSync)((0, os_1.tmpdir)()), 'angular-cli-packages-'));
+ // clean up temp directory on process exit
+ process.on('exit', () => {
+ try {
+ (0, fs_1.rmdirSync)(tempPath, { recursive: true, maxRetries: 3 });
+ }
+ catch { }
+ });
+ // NPM will warn when a `package.json` is not found in the install directory
+ // Example:
+ // npm WARN enoent ENOENT: no such file or directory, open '/tmp/.ng-temp-packages-84Qi7y/package.json'
+ // npm WARN .ng-temp-packages-84Qi7y No description
+ // npm WARN .ng-temp-packages-84Qi7y No repository field.
+ // npm WARN .ng-temp-packages-84Qi7y No license field.
+ // While we can use `npm init -y` we will end up needing to update the 'package.json' anyways
+ // because of missing fields.
+ (0, fs_1.writeFileSync)((0, path_1.join)(tempPath, 'package.json'), JSON.stringify({
+ name: 'temp-cli-install',
+ description: 'temp-cli-install',
+ repository: 'temp-cli-install',
+ license: 'MIT',
+ }));
+ // setup prefix/global modules path
+ const packageManagerArgs = getPackageManagerArguments(packageManager);
+ const tempNodeModules = (0, path_1.join)(tempPath, 'node_modules');
+ // Yarn will not append 'node_modules' to the path
+ const prefixPath = packageManager === workspace_schema_1.PackageManager.Yarn ? tempNodeModules : tempPath;
+ const installArgs = [
+ ...(extraArgs || []),
+ `${packageManagerArgs.prefix}="${prefixPath}"`,
+ packageManagerArgs.noLockfile,
+ ];
+ return {
+ status: await installPackage(packageName, packageManager, true, installArgs, tempPath),
+ tempNodeModules,
+ };
+}
+exports.installTempPackage = installTempPackage;
+async function runTempPackageBin(packageName, packageManager = workspace_schema_1.PackageManager.Npm, args = []) {
+ const { status: code, tempNodeModules } = await installTempPackage(packageName, packageManager);
+ if (code !== 0) {
+ return code;
+ }
+ // Remove version/tag etc... from package name
+ // Ex: @angular/cli@latest -> @angular/cli
+ const packageNameNoVersion = packageName.substring(0, packageName.lastIndexOf('@'));
+ const pkgLocation = (0, path_1.join)(tempNodeModules, packageNameNoVersion);
+ const packageJsonPath = (0, path_1.join)(pkgLocation, 'package.json');
+ // Get a binary location for this package
+ let binPath;
+ if ((0, fs_1.existsSync)(packageJsonPath)) {
+ const content = (0, fs_1.readFileSync)(packageJsonPath, 'utf-8');
+ if (content) {
+ const { bin = {} } = JSON.parse(content);
+ const binKeys = Object.keys(bin);
+ if (binKeys.length) {
+ binPath = (0, path_1.resolve)(pkgLocation, bin[binKeys[0]]);
+ }
+ }
+ }
+ if (!binPath) {
+ throw new Error(`Cannot locate bin for temporary package: ${packageNameNoVersion}.`);
+ }
+ const { status, error } = (0, child_process_1.spawnSync)(process.execPath, [binPath, ...args], {
+ stdio: 'inherit',
+ env: {
+ ...process.env,
+ NG_DISABLE_VERSION_CHECK: 'true',
+ NG_CLI_ANALYTICS: 'false',
+ },
+ });
+ if (status === null && error) {
+ throw error;
+ }
+ return status || 0;
+}
+exports.runTempPackageBin = runTempPackageBin;
+function getPackageManagerArguments(packageManager) {
+ switch (packageManager) {
+ case workspace_schema_1.PackageManager.Yarn:
+ return {
+ silent: '--silent',
+ saveDev: '--dev',
+ install: 'add',
+ prefix: '--modules-folder',
+ noLockfile: '--no-lockfile',
+ };
+ case workspace_schema_1.PackageManager.Pnpm:
+ return {
+ silent: '--silent',
+ saveDev: '--save-dev',
+ install: 'add',
+ installAll: 'install',
+ prefix: '--prefix',
+ noLockfile: '--no-lockfile',
+ };
+ default:
+ return {
+ silent: '--quiet',
+ saveDev: '--save-dev',
+ install: 'install',
+ installAll: 'install',
+ prefix: '--prefix',
+ noLockfile: '--no-package-lock',
+ };
+ }
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-file.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-file.d.ts
new file mode 100644
index 00000000..32c32685
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-file.d.ts
@@ -0,0 +1,23 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { JsonValue } from '@angular-devkit/core';
+export declare type InsertionIndex = (properties: string[]) => number;
+export declare type JSONPath = (string | number)[];
+/** @internal */
+export declare class JSONFile {
+ private readonly path;
+ content: string;
+ constructor(path: string);
+ private _jsonAst;
+ private get JsonAst();
+ get(jsonPath: JSONPath): unknown;
+ modify(jsonPath: JSONPath, value: JsonValue | undefined, insertInOrder?: InsertionIndex | false): boolean;
+ save(): void;
+}
+export declare function readAndParseJson(path: string): any;
+export declare function parseJson(content: string): any;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-file.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-file.js
new file mode 100644
index 00000000..9752771e
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-file.js
@@ -0,0 +1,97 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.parseJson = exports.readAndParseJson = exports.JSONFile = void 0;
+const fs_1 = require("fs");
+const jsonc_parser_1 = require("jsonc-parser");
+/** @internal */
+class JSONFile {
+ constructor(path) {
+ this.path = path;
+ const buffer = (0, fs_1.readFileSync)(this.path);
+ if (buffer) {
+ this.content = buffer.toString();
+ }
+ else {
+ throw new Error(`Could not read '${path}'.`);
+ }
+ }
+ get JsonAst() {
+ if (this._jsonAst) {
+ return this._jsonAst;
+ }
+ const errors = [];
+ this._jsonAst = (0, jsonc_parser_1.parseTree)(this.content, errors, { allowTrailingComma: true });
+ if (errors.length) {
+ formatError(this.path, errors);
+ }
+ return this._jsonAst;
+ }
+ get(jsonPath) {
+ const jsonAstNode = this.JsonAst;
+ if (!jsonAstNode) {
+ return undefined;
+ }
+ if (jsonPath.length === 0) {
+ return (0, jsonc_parser_1.getNodeValue)(jsonAstNode);
+ }
+ const node = (0, jsonc_parser_1.findNodeAtLocation)(jsonAstNode, jsonPath);
+ return node === undefined ? undefined : (0, jsonc_parser_1.getNodeValue)(node);
+ }
+ modify(jsonPath, value, insertInOrder) {
+ if (value === undefined && this.get(jsonPath) === undefined) {
+ // Cannot remove a value which doesn't exist.
+ return false;
+ }
+ let getInsertionIndex;
+ if (insertInOrder === undefined) {
+ const property = jsonPath.slice(-1)[0];
+ getInsertionIndex = (properties) => [...properties, property].sort().findIndex((p) => p === property);
+ }
+ else if (insertInOrder !== false) {
+ getInsertionIndex = insertInOrder;
+ }
+ const edits = (0, jsonc_parser_1.modify)(this.content, jsonPath, value, {
+ getInsertionIndex,
+ formattingOptions: {
+ insertSpaces: true,
+ tabSize: 2,
+ },
+ });
+ if (edits.length === 0) {
+ return false;
+ }
+ this.content = (0, jsonc_parser_1.applyEdits)(this.content, edits);
+ this._jsonAst = undefined;
+ return true;
+ }
+ save() {
+ (0, fs_1.writeFileSync)(this.path, this.content);
+ }
+}
+exports.JSONFile = JSONFile;
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+function readAndParseJson(path) {
+ const errors = [];
+ const content = (0, jsonc_parser_1.parse)((0, fs_1.readFileSync)(path, 'utf-8'), errors, { allowTrailingComma: true });
+ if (errors.length) {
+ formatError(path, errors);
+ }
+ return content;
+}
+exports.readAndParseJson = readAndParseJson;
+function formatError(path, errors) {
+ const { error, offset } = errors[0];
+ throw new Error(`Failed to parse "${path}" as JSON AST Object. ${(0, jsonc_parser_1.printParseErrorCode)(error)} at location: ${offset}.`);
+}
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+function parseJson(content) {
+ return (0, jsonc_parser_1.parse)(content, undefined, { allowTrailingComma: true });
+}
+exports.parseJson = parseJson;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-schema.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-schema.d.ts
new file mode 100644
index 00000000..8b75df91
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-schema.d.ts
@@ -0,0 +1,17 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { BaseException, json } from '@angular-devkit/core';
+import { CommandDescription, Option, SubCommandDescription } from '../models/interface';
+export declare class CommandJsonPathException extends BaseException {
+ readonly path: string;
+ readonly name: string;
+ constructor(path: string, name: string);
+}
+export declare function parseJsonSchemaToSubCommandDescription(name: string, jsonPath: string, registry: json.schema.SchemaRegistry, schema: json.JsonObject): Promise<SubCommandDescription>;
+export declare function parseJsonSchemaToCommandDescription(name: string, jsonPath: string, registry: json.schema.SchemaRegistry, schema: json.JsonObject): Promise<CommandDescription>;
+export declare function parseJsonSchemaToOptions(registry: json.schema.SchemaRegistry, schema: json.JsonObject): Promise<Option[]>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-schema.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-schema.js
new file mode 100644
index 00000000..bd24ee1e
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/json-schema.js
@@ -0,0 +1,245 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.parseJsonSchemaToOptions = exports.parseJsonSchemaToCommandDescription = exports.parseJsonSchemaToSubCommandDescription = exports.CommandJsonPathException = void 0;
+const core_1 = require("@angular-devkit/core");
+const tools_1 = require("@angular-devkit/schematics/tools");
+const fs_1 = require("fs");
+const path_1 = require("path");
+const interface_1 = require("../models/interface");
+class CommandJsonPathException extends core_1.BaseException {
+ constructor(path, name) {
+ super(`File ${path} was not found while constructing the subcommand ${name}.`);
+ this.path = path;
+ this.name = name;
+ }
+}
+exports.CommandJsonPathException = CommandJsonPathException;
+function _getEnumFromValue(value, enumeration, defaultValue) {
+ if (typeof value !== 'string') {
+ return defaultValue;
+ }
+ if (Object.values(enumeration).includes(value)) {
+ return value;
+ }
+ return defaultValue;
+}
+async function parseJsonSchemaToSubCommandDescription(name, jsonPath, registry, schema) {
+ const options = await parseJsonSchemaToOptions(registry, schema);
+ const aliases = [];
+ if (core_1.json.isJsonArray(schema.$aliases)) {
+ schema.$aliases.forEach((value) => {
+ if (typeof value == 'string') {
+ aliases.push(value);
+ }
+ });
+ }
+ if (core_1.json.isJsonArray(schema.aliases)) {
+ schema.aliases.forEach((value) => {
+ if (typeof value == 'string') {
+ aliases.push(value);
+ }
+ });
+ }
+ if (typeof schema.alias == 'string') {
+ aliases.push(schema.alias);
+ }
+ let longDescription = '';
+ if (typeof schema.$longDescription == 'string' && schema.$longDescription) {
+ const ldPath = (0, path_1.resolve)((0, path_1.dirname)(jsonPath), schema.$longDescription);
+ try {
+ longDescription = (0, fs_1.readFileSync)(ldPath, 'utf-8');
+ }
+ catch (e) {
+ throw new CommandJsonPathException(ldPath, name);
+ }
+ }
+ let usageNotes = '';
+ if (typeof schema.$usageNotes == 'string' && schema.$usageNotes) {
+ const unPath = (0, path_1.resolve)((0, path_1.dirname)(jsonPath), schema.$usageNotes);
+ try {
+ usageNotes = (0, fs_1.readFileSync)(unPath, 'utf-8');
+ }
+ catch (e) {
+ throw new CommandJsonPathException(unPath, name);
+ }
+ }
+ const description = '' + (schema.description === undefined ? '' : schema.description);
+ return {
+ name,
+ description,
+ ...(longDescription ? { longDescription } : {}),
+ ...(usageNotes ? { usageNotes } : {}),
+ options,
+ aliases,
+ };
+}
+exports.parseJsonSchemaToSubCommandDescription = parseJsonSchemaToSubCommandDescription;
+async function parseJsonSchemaToCommandDescription(name, jsonPath, registry, schema) {
+ const subcommand = await parseJsonSchemaToSubCommandDescription(name, jsonPath, registry, schema);
+ // Before doing any work, let's validate the implementation.
+ if (typeof schema.$impl != 'string') {
+ throw new Error(`Command ${name} has an invalid implementation.`);
+ }
+ const ref = new tools_1.ExportStringRef(schema.$impl, (0, path_1.dirname)(jsonPath));
+ const impl = ref.ref;
+ if (impl === undefined || typeof impl !== 'function') {
+ throw new Error(`Command ${name} has an invalid implementation.`);
+ }
+ const scope = _getEnumFromValue(schema.$scope, interface_1.CommandScope, interface_1.CommandScope.Default);
+ const hidden = !!schema.$hidden;
+ return {
+ ...subcommand,
+ scope,
+ hidden,
+ impl,
+ };
+}
+exports.parseJsonSchemaToCommandDescription = parseJsonSchemaToCommandDescription;
+async function parseJsonSchemaToOptions(registry, schema) {
+ const options = [];
+ function visitor(current, pointer, parentSchema) {
+ if (!parentSchema) {
+ // Ignore root.
+ return;
+ }
+ else if (pointer.split(/\/(?:properties|items|definitions)\//g).length > 2) {
+ // Ignore subitems (objects or arrays).
+ return;
+ }
+ else if (core_1.json.isJsonArray(current)) {
+ return;
+ }
+ if (pointer.indexOf('/not/') != -1) {
+ // We don't support anyOf/not.
+ throw new Error('The "not" keyword is not supported in JSON Schema.');
+ }
+ const ptr = core_1.json.schema.parseJsonPointer(pointer);
+ const name = ptr[ptr.length - 1];
+ if (ptr[ptr.length - 2] != 'properties') {
+ // Skip any non-property items.
+ return;
+ }
+ const typeSet = core_1.json.schema.getTypesOfSchema(current);
+ if (typeSet.size == 0) {
+ throw new Error('Cannot find type of schema.');
+ }
+ // We only support number, string or boolean (or array of those), so remove everything else.
+ const types = [...typeSet]
+ .filter((x) => {
+ switch (x) {
+ case 'boolean':
+ case 'number':
+ case 'string':
+ return true;
+ case 'array':
+ // Only include arrays if they're boolean, string or number.
+ if (core_1.json.isJsonObject(current.items) &&
+ typeof current.items.type == 'string' &&
+ ['boolean', 'number', 'string'].includes(current.items.type)) {
+ return true;
+ }
+ return false;
+ default:
+ return false;
+ }
+ })
+ .map((x) => _getEnumFromValue(x, interface_1.OptionType, interface_1.OptionType.String));
+ if (types.length == 0) {
+ // This means it's not usable on the command line. e.g. an Object.
+ return;
+ }
+ // Only keep enum values we support (booleans, numbers and strings).
+ const enumValues = ((core_1.json.isJsonArray(current.enum) && current.enum) || []).filter((x) => {
+ switch (typeof x) {
+ case 'boolean':
+ case 'number':
+ case 'string':
+ return true;
+ default:
+ return false;
+ }
+ });
+ let defaultValue = undefined;
+ if (current.default !== undefined) {
+ switch (types[0]) {
+ case 'string':
+ if (typeof current.default == 'string') {
+ defaultValue = current.default;
+ }
+ break;
+ case 'number':
+ if (typeof current.default == 'number') {
+ defaultValue = current.default;
+ }
+ break;
+ case 'boolean':
+ if (typeof current.default == 'boolean') {
+ defaultValue = current.default;
+ }
+ break;
+ }
+ }
+ const type = types[0];
+ const $default = current.$default;
+ const $defaultIndex = core_1.json.isJsonObject($default) && $default['$source'] == 'argv' ? $default['index'] : undefined;
+ const positional = typeof $defaultIndex == 'number' ? $defaultIndex : undefined;
+ const required = core_1.json.isJsonArray(current.required)
+ ? current.required.indexOf(name) != -1
+ : false;
+ const aliases = core_1.json.isJsonArray(current.aliases)
+ ? [...current.aliases].map((x) => '' + x)
+ : current.alias
+ ? ['' + current.alias]
+ : [];
+ const format = typeof current.format == 'string' ? current.format : undefined;
+ const visible = current.visible === undefined || current.visible === true;
+ const hidden = !!current.hidden || !visible;
+ const xUserAnalytics = current['x-user-analytics'];
+ const userAnalytics = typeof xUserAnalytics == 'number' ? xUserAnalytics : undefined;
+ // Deprecated is set only if it's true or a string.
+ const xDeprecated = current['x-deprecated'];
+ const deprecated = xDeprecated === true || typeof xDeprecated === 'string' ? xDeprecated : undefined;
+ const option = {
+ name,
+ description: '' + (current.description === undefined ? '' : current.description),
+ ...(types.length == 1 ? { type } : { type, types }),
+ ...(defaultValue !== undefined ? { default: defaultValue } : {}),
+ ...(enumValues && enumValues.length > 0 ? { enum: enumValues } : {}),
+ required,
+ aliases,
+ ...(format !== undefined ? { format } : {}),
+ hidden,
+ ...(userAnalytics ? { userAnalytics } : {}),
+ ...(deprecated !== undefined ? { deprecated } : {}),
+ ...(positional !== undefined ? { positional } : {}),
+ };
+ options.push(option);
+ }
+ const flattenedSchema = await registry.flatten(schema).toPromise();
+ core_1.json.schema.visitJsonSchema(flattenedSchema, visitor);
+ // Sort by positional.
+ return options.sort((a, b) => {
+ if (a.positional) {
+ if (b.positional) {
+ return a.positional - b.positional;
+ }
+ else {
+ return 1;
+ }
+ }
+ else if (b.positional) {
+ return -1;
+ }
+ else {
+ return 0;
+ }
+ });
+}
+exports.parseJsonSchemaToOptions = parseJsonSchemaToOptions;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/log-file.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/log-file.d.ts
new file mode 100644
index 00000000..91f0bebd
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/log-file.d.ts
@@ -0,0 +1,13 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/**
+ * Writes an Error to a temporary log file.
+ * If this method is called multiple times from the same process the same log file will be used.
+ * @returns The path of the generated log file.
+ */
+export declare function writeErrorToLogFile(error: Error): string;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/log-file.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/log-file.js
new file mode 100644
index 00000000..174255f3
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/log-file.js
@@ -0,0 +1,28 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.writeErrorToLogFile = void 0;
+const fs_1 = require("fs");
+const os_1 = require("os");
+const path_1 = require("path");
+let logPath;
+/**
+ * Writes an Error to a temporary log file.
+ * If this method is called multiple times from the same process the same log file will be used.
+ * @returns The path of the generated log file.
+ */
+function writeErrorToLogFile(error) {
+ if (!logPath) {
+ const tempDirectory = (0, fs_1.mkdtempSync)((0, fs_1.realpathSync)((0, os_1.tmpdir)()) + '/ng-');
+ logPath = (0, path_1.normalize)(tempDirectory + '/angular-errors.log');
+ }
+ (0, fs_1.appendFileSync)(logPath, '[error] ' + (error.stack || error) + '\n\n');
+ return logPath;
+}
+exports.writeErrorToLogFile = writeErrorToLogFile;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-json.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-json.d.ts
new file mode 100644
index 00000000..2f45d6a4
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-json.d.ts
@@ -0,0 +1,249 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+/**
+ * This file was automatically generated by json-schema-to-typescript.
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
+ * and run json-schema-to-typescript to regenerate this file.
+ */
+export declare type JsonSchemaForNpmPackageJsonFiles = CoreProperties & JspmDefinition & ({
+ bundleDependencies?: BundledDependency;
+ [k: string]: any;
+} | {
+ bundledDependencies?: BundledDependency;
+ [k: string]: any;
+}) & {
+ [k: string]: any;
+};
+/**
+ * A person who has been involved in creating or maintaining this package
+ */
+export declare type Person = {
+ [k: string]: any;
+} | string;
+/**
+ * Run AFTER the package is published
+ */
+export declare type ScriptsPublishAfter = string;
+/**
+ * Run AFTER the package is installed
+ */
+export declare type ScriptsInstallAfter = string;
+/**
+ * Run BEFORE the package is uninstalled
+ */
+export declare type ScriptsUninstallBefore = string;
+/**
+ * Run BEFORE bump the package version
+ */
+export declare type ScriptsVersionBefore = string;
+/**
+ * Run by the 'npm test' command
+ */
+export declare type ScriptsTest = string;
+/**
+ * Run by the 'npm stop' command
+ */
+export declare type ScriptsStop = string;
+/**
+ * Run by the 'npm start' command
+ */
+export declare type ScriptsStart = string;
+/**
+ * Run by the 'npm restart' command. Note: 'npm restart' will run the stop and start scripts if no restart script is provided.
+ */
+export declare type ScriptsRestart = string;
+/**
+ * Array of package names that will be bundled when publishing the package.
+ */
+export declare type BundledDependency = string[];
+export interface CoreProperties {
+ /**
+ * The name of the package.
+ */
+ name?: string;
+ /**
+ * Version must be parseable by node-semver, which is bundled with npm as a dependency.
+ */
+ version?: string;
+ /**
+ * This helps people discover your package, as it's listed in 'npm search'.
+ */
+ description?: string;
+ /**
+ * This helps people discover your package as it's listed in 'npm search'.
+ */
+ keywords?: string[];
+ /**
+ * The url to the project homepage.
+ */
+ homepage?: string;
+ /**
+ * The url to your project's issue tracker and / or the email address to which issues should be reported. These are helpful for people who encounter issues with your package.
+ */
+ bugs?: {
+ [k: string]: any;
+ } | string;
+ /**
+ * You should specify a license for your package so that people know how they are permitted to use it, and any restrictions you're placing on it.
+ */
+ license?: string;
+ /**
+ * You should specify a license for your package so that people know how they are permitted to use it, and any restrictions you're placing on it.
+ */
+ licenses?: {
+ type?: string;
+ url?: string;
+ [k: string]: any;
+ }[];
+ author?: Person;
+ /**
+ * A list of people who contributed to this package.
+ */
+ contributors?: Person[];
+ /**
+ * A list of people who maintains this package.
+ */
+ maintainers?: Person[];
+ /**
+ * The 'files' field is an array of files to include in your project. If you name a folder in the array, then it will also include the files inside that folder.
+ */
+ files?: string[];
+ /**
+ * The main field is a module ID that is the primary entry point to your program.
+ */
+ main?: string;
+ bin?: string | {
+ [k: string]: any;
+ };
+ /**
+ * Specify either a single file or an array of filenames to put in place for the man program to find.
+ */
+ man?: string[];
+ directories?: {
+ /**
+ * If you specify a 'bin' directory, then all the files in that folder will be used as the 'bin' hash.
+ */
+ bin?: string;
+ /**
+ * Put markdown files in here. Eventually, these will be displayed nicely, maybe, someday.
+ */
+ doc?: string;
+ /**
+ * Put example scripts in here. Someday, it might be exposed in some clever way.
+ */
+ example?: string;
+ /**
+ * Tell people where the bulk of your library is. Nothing special is done with the lib folder in any way, but it's useful meta info.
+ */
+ lib?: string;
+ /**
+ * A folder that is full of man pages. Sugar to generate a 'man' array by walking the folder.
+ */
+ man?: string;
+ test?: string;
+ [k: string]: any;
+ };
+ /**
+ * Specify the place where your code lives. This is helpful for people who want to contribute.
+ */
+ repository?: {
+ [k: string]: any;
+ } | string;
+ /**
+ * The 'scripts' member is an object hash of script commands that are run at various times in the lifecycle of your package. The key is the lifecycle event, and the value is the command to run at that point.
+ */
+ scripts?: {
+ /**
+ * Run BEFORE the package is published (Also run on local npm install without any arguments)
+ */
+ prepublish?: string;
+ publish?: ScriptsPublishAfter;
+ postpublish?: ScriptsPublishAfter;
+ /**
+ * Run BEFORE the package is installed
+ */
+ preinstall?: string;
+ install?: ScriptsInstallAfter;
+ postinstall?: ScriptsInstallAfter;
+ preuninstall?: ScriptsUninstallBefore;
+ uninstall?: ScriptsUninstallBefore;
+ /**
+ * Run AFTER the package is uninstalled
+ */
+ postuninstall?: string;
+ preversion?: ScriptsVersionBefore;
+ version?: ScriptsVersionBefore;
+ /**
+ * Run AFTER bump the package version
+ */
+ postversion?: string;
+ pretest?: ScriptsTest;
+ test?: ScriptsTest;
+ posttest?: ScriptsTest;
+ prestop?: ScriptsStop;
+ stop?: ScriptsStop;
+ poststop?: ScriptsStop;
+ prestart?: ScriptsStart;
+ start?: ScriptsStart;
+ poststart?: ScriptsStart;
+ prerestart?: ScriptsRestart;
+ restart?: ScriptsRestart;
+ postrestart?: ScriptsRestart;
+ [k: string]: string | undefined;
+ };
+ /**
+ * A 'config' hash can be used to set configuration parameters used in package scripts that persist across upgrades.
+ */
+ config?: {
+ [k: string]: any;
+ };
+ dependencies?: Dependency;
+ devDependencies?: Dependency;
+ optionalDependencies?: Dependency;
+ peerDependencies?: Dependency;
+ engines?: {
+ [k: string]: string;
+ };
+ engineStrict?: boolean;
+ /**
+ * You can specify which operating systems your module will run on
+ */
+ os?: string[];
+ /**
+ * If your code only runs on certain cpu architectures, you can specify which ones.
+ */
+ cpu?: string[];
+ /**
+ * If your package is primarily a command-line application that should be installed globally, then set this value to true to provide a warning if it is installed locally.
+ */
+ preferGlobal?: boolean;
+ /**
+ * If set to true, then npm will refuse to publish it.
+ */
+ private?: boolean;
+ publishConfig?: {
+ [k: string]: any;
+ };
+ dist?: {
+ shasum?: string;
+ tarball?: string;
+ [k: string]: any;
+ };
+ readme?: string;
+ [k: string]: any;
+}
+/**
+ * Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.
+ */
+export interface Dependency {
+ [k: string]: string;
+}
+export interface JspmDefinition {
+ jspm?: CoreProperties;
+ [k: string]: any;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-json.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-json.js
new file mode 100644
index 00000000..b599b96d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-json.js
@@ -0,0 +1,9 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-manager.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-manager.d.ts
new file mode 100644
index 00000000..7a10bc78
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-manager.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { PackageManager } from '../lib/config/workspace-schema';
+export declare function supportsYarn(): boolean;
+export declare function supportsNpm(): boolean;
+export declare function getPackageManager(root: string): Promise<PackageManager>;
+/**
+ * Checks if the npm version is a supported 7.x version. If not, display a warning.
+ */
+export declare function ensureCompatibleNpm(root: string): Promise<void>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-manager.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-manager.js
new file mode 100644
index 00000000..5bd7fd34
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-manager.js
@@ -0,0 +1,83 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ensureCompatibleNpm = exports.getPackageManager = exports.supportsNpm = exports.supportsYarn = void 0;
+const child_process_1 = require("child_process");
+const fs_1 = require("fs");
+const path_1 = require("path");
+const semver_1 = require("semver");
+const workspace_schema_1 = require("../lib/config/workspace-schema");
+const config_1 = require("./config");
+function supports(name) {
+ try {
+ (0, child_process_1.execSync)(`${name} --version`, { stdio: 'ignore' });
+ return true;
+ }
+ catch {
+ return false;
+ }
+}
+function supportsYarn() {
+ return supports('yarn');
+}
+exports.supportsYarn = supportsYarn;
+function supportsNpm() {
+ return supports('npm');
+}
+exports.supportsNpm = supportsNpm;
+async function getPackageManager(root) {
+ let packageManager = (await (0, config_1.getConfiguredPackageManager)());
+ if (packageManager) {
+ return packageManager;
+ }
+ const hasYarn = supportsYarn();
+ const hasYarnLock = (0, fs_1.existsSync)((0, path_1.join)(root, 'yarn.lock'));
+ const hasNpm = supportsNpm();
+ const hasNpmLock = (0, fs_1.existsSync)((0, path_1.join)(root, 'package-lock.json'));
+ if (hasYarn && hasYarnLock && !hasNpmLock) {
+ packageManager = workspace_schema_1.PackageManager.Yarn;
+ }
+ else if (hasNpm && hasNpmLock && !hasYarnLock) {
+ packageManager = workspace_schema_1.PackageManager.Npm;
+ }
+ else if (hasYarn && !hasNpm) {
+ packageManager = workspace_schema_1.PackageManager.Yarn;
+ }
+ else if (hasNpm && !hasYarn) {
+ packageManager = workspace_schema_1.PackageManager.Npm;
+ }
+ // TODO: This should eventually inform the user of ambiguous package manager usage.
+ // Potentially with a prompt to choose and optionally set as the default.
+ return packageManager || workspace_schema_1.PackageManager.Npm;
+}
+exports.getPackageManager = getPackageManager;
+/**
+ * Checks if the npm version is a supported 7.x version. If not, display a warning.
+ */
+async function ensureCompatibleNpm(root) {
+ if ((await getPackageManager(root)) !== workspace_schema_1.PackageManager.Npm) {
+ return;
+ }
+ try {
+ const versionText = (0, child_process_1.execSync)('npm --version', { encoding: 'utf8', stdio: 'pipe' }).trim();
+ const version = (0, semver_1.valid)(versionText);
+ if (!version) {
+ return;
+ }
+ if ((0, semver_1.satisfies)(version, '>=7 <7.5.6')) {
+ // eslint-disable-next-line no-console
+ console.warn(`npm version ${version} detected.` +
+ ' When using npm 7 with the Angular CLI, npm version 7.5.6 or higher is recommended.');
+ }
+ }
+ catch {
+ // npm is not installed
+ }
+}
+exports.ensureCompatibleNpm = ensureCompatibleNpm;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-metadata.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-metadata.d.ts
new file mode 100644
index 00000000..bb1b7fb7
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-metadata.d.ts
@@ -0,0 +1,76 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { logging } from '@angular-devkit/core';
+import { JsonSchemaForNpmPackageJsonFiles } from './package-json';
+export interface NpmRepositoryPackageJson {
+ name: string;
+ requestedName: string;
+ description: string;
+ 'dist-tags': {
+ [name: string]: string;
+ };
+ versions: {
+ [version: string]: JsonSchemaForNpmPackageJsonFiles;
+ };
+ time: {
+ modified: string;
+ created: string;
+ [version: string]: string;
+ };
+}
+export declare type NgAddSaveDepedency = 'dependencies' | 'devDependencies' | boolean;
+export interface PackageIdentifier {
+ type: 'git' | 'tag' | 'version' | 'range' | 'file' | 'directory' | 'remote';
+ name: string;
+ scope: string | null;
+ registry: boolean;
+ raw: string;
+ fetchSpec: string;
+ rawSpec: string;
+}
+export interface PackageManifest {
+ name: string;
+ version: string;
+ license?: string;
+ private?: boolean;
+ deprecated?: boolean;
+ dependencies: Record<string, string>;
+ devDependencies: Record<string, string>;
+ peerDependencies: Record<string, string>;
+ optionalDependencies: Record<string, string>;
+ 'ng-add'?: {
+ save?: NgAddSaveDepedency;
+ };
+ 'ng-update'?: {
+ migrations: string;
+ packageGroup: Record<string, string>;
+ };
+}
+export interface PackageMetadata {
+ name: string;
+ tags: {
+ [tag: string]: PackageManifest | undefined;
+ };
+ versions: Record<string, PackageManifest>;
+ 'dist-tags'?: unknown;
+}
+export declare function fetchPackageMetadata(name: string, logger: logging.LoggerApi, options?: {
+ registry?: string;
+ usingYarn?: boolean;
+ verbose?: boolean;
+}): Promise<PackageMetadata>;
+export declare function fetchPackageManifest(name: string, logger: logging.LoggerApi, options?: {
+ registry?: string;
+ usingYarn?: boolean;
+ verbose?: boolean;
+}): Promise<PackageManifest>;
+export declare function getNpmPackageJson(packageName: string, logger: logging.LoggerApi, options?: {
+ registry?: string;
+ usingYarn?: boolean;
+ verbose?: boolean;
+}): Promise<Partial<NpmRepositoryPackageJson>>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-metadata.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-metadata.js
new file mode 100644
index 00000000..a6053c6b
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-metadata.js
@@ -0,0 +1,250 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getNpmPackageJson = exports.fetchPackageManifest = exports.fetchPackageMetadata = void 0;
+const lockfile = __importStar(require("@yarnpkg/lockfile"));
+const fs_1 = require("fs");
+const ini = __importStar(require("ini"));
+const os_1 = require("os");
+const pacote = __importStar(require("pacote"));
+const path = __importStar(require("path"));
+const npmPackageJsonCache = new Map();
+let npmrc;
+function ensureNpmrc(logger, usingYarn, verbose) {
+ if (!npmrc) {
+ try {
+ npmrc = readOptions(logger, false, verbose);
+ }
+ catch { }
+ if (usingYarn) {
+ try {
+ npmrc = { ...npmrc, ...readOptions(logger, true, verbose) };
+ }
+ catch { }
+ }
+ }
+}
+function readOptions(logger, yarn = false, showPotentials = false) {
+ const cwd = process.cwd();
+ const baseFilename = yarn ? 'yarnrc' : 'npmrc';
+ const dotFilename = '.' + baseFilename;
+ let globalPrefix;
+ if (process.env.PREFIX) {
+ globalPrefix = process.env.PREFIX;
+ }
+ else {
+ globalPrefix = path.dirname(process.execPath);
+ if (process.platform !== 'win32') {
+ globalPrefix = path.dirname(globalPrefix);
+ }
+ }
+ const defaultConfigLocations = [
+ (!yarn && process.env.NPM_CONFIG_GLOBALCONFIG) || path.join(globalPrefix, 'etc', baseFilename),
+ (!yarn && process.env.NPM_CONFIG_USERCONFIG) || path.join((0, os_1.homedir)(), dotFilename),
+ ];
+ const projectConfigLocations = [path.join(cwd, dotFilename)];
+ if (yarn) {
+ const root = path.parse(cwd).root;
+ for (let curDir = path.dirname(cwd); curDir && curDir !== root; curDir = path.dirname(curDir)) {
+ projectConfigLocations.unshift(path.join(curDir, dotFilename));
+ }
+ }
+ if (showPotentials) {
+ logger.info(`Locating potential ${baseFilename} files:`);
+ }
+ let rcOptions = {};
+ for (const location of [...defaultConfigLocations, ...projectConfigLocations]) {
+ if ((0, fs_1.existsSync)(location)) {
+ if (showPotentials) {
+ logger.info(`Trying '${location}'...found.`);
+ }
+ const data = (0, fs_1.readFileSync)(location, 'utf8');
+ // Normalize RC options that are needed by 'npm-registry-fetch'.
+ // See: https://github.com/npm/npm-registry-fetch/blob/ebddbe78a5f67118c1f7af2e02c8a22bcaf9e850/index.js#L99-L126
+ const rcConfig = yarn ? lockfile.parse(data) : ini.parse(data);
+ rcOptions = normalizeOptions(rcConfig, location, rcOptions);
+ }
+ }
+ const envVariablesOptions = {};
+ for (const [key, value] of Object.entries(process.env)) {
+ if (!value) {
+ continue;
+ }
+ let normalizedName = key.toLowerCase();
+ if (normalizedName.startsWith('npm_config_')) {
+ normalizedName = normalizedName.substring(11);
+ }
+ else if (yarn && normalizedName.startsWith('yarn_')) {
+ normalizedName = normalizedName.substring(5);
+ }
+ else {
+ continue;
+ }
+ normalizedName = normalizedName.replace(/(?!^)_/g, '-'); // don't replace _ at the start of the key.s
+ envVariablesOptions[normalizedName] = value;
+ }
+ return normalizeOptions(envVariablesOptions, undefined, rcOptions);
+}
+function normalizeOptions(rawOptions, location = process.cwd(), existingNormalizedOptions = {}) {
+ var _a;
+ const options = { ...existingNormalizedOptions };
+ for (const [key, value] of Object.entries(rawOptions)) {
+ let substitutedValue = value;
+ // Substitute any environment variable references.
+ if (typeof value === 'string') {
+ substitutedValue = value.replace(/\$\{([^}]+)\}/, (_, name) => process.env[name] || '');
+ }
+ switch (key) {
+ // Unless auth options are scope with the registry url it appears that npm-registry-fetch ignores them,
+ // even though they are documented.
+ // https://github.com/npm/npm-registry-fetch/blob/8954f61d8d703e5eb7f3d93c9b40488f8b1b62ac/README.md
+ // https://github.com/npm/npm-registry-fetch/blob/8954f61d8d703e5eb7f3d93c9b40488f8b1b62ac/auth.js#L45-L91
+ case '_authToken':
+ case 'token':
+ case 'username':
+ case 'password':
+ case '_auth':
+ case 'auth':
+ (_a = options['forceAuth']) !== null && _a !== void 0 ? _a : (options['forceAuth'] = {});
+ options['forceAuth'][key] = substitutedValue;
+ break;
+ case 'noproxy':
+ case 'no-proxy':
+ options['noProxy'] = substitutedValue;
+ break;
+ case 'maxsockets':
+ options['maxSockets'] = substitutedValue;
+ break;
+ case 'https-proxy':
+ case 'proxy':
+ options['proxy'] = substitutedValue;
+ break;
+ case 'strict-ssl':
+ options['strictSSL'] = substitutedValue;
+ break;
+ case 'local-address':
+ options['localAddress'] = substitutedValue;
+ break;
+ case 'cafile':
+ if (typeof substitutedValue === 'string') {
+ const cafile = path.resolve(path.dirname(location), substitutedValue);
+ try {
+ options['ca'] = (0, fs_1.readFileSync)(cafile, 'utf8').replace(/\r?\n/g, '\n');
+ }
+ catch { }
+ }
+ break;
+ default:
+ options[key] = substitutedValue;
+ break;
+ }
+ }
+ return options;
+}
+function normalizeManifest(rawManifest) {
+ // TODO: Fully normalize and sanitize
+ return {
+ dependencies: {},
+ devDependencies: {},
+ peerDependencies: {},
+ optionalDependencies: {},
+ ...rawManifest,
+ };
+}
+async function fetchPackageMetadata(name, logger, options) {
+ const { usingYarn, verbose, registry } = {
+ registry: undefined,
+ usingYarn: false,
+ verbose: false,
+ ...options,
+ };
+ ensureNpmrc(logger, usingYarn, verbose);
+ const response = await pacote.packument(name, {
+ fullMetadata: true,
+ ...npmrc,
+ ...(registry ? { registry } : {}),
+ });
+ // Normalize the response
+ const metadata = {
+ name: response.name,
+ tags: {},
+ versions: {},
+ };
+ if (response.versions) {
+ for (const [version, manifest] of Object.entries(response.versions)) {
+ metadata.versions[version] = normalizeManifest(manifest);
+ }
+ }
+ if (response['dist-tags']) {
+ // Store this for use with other npm utility packages
+ metadata['dist-tags'] = response['dist-tags'];
+ for (const [tag, version] of Object.entries(response['dist-tags'])) {
+ const manifest = metadata.versions[version];
+ if (manifest) {
+ metadata.tags[tag] = manifest;
+ }
+ else if (verbose) {
+ logger.warn(`Package ${metadata.name} has invalid version metadata for '${tag}'.`);
+ }
+ }
+ }
+ return metadata;
+}
+exports.fetchPackageMetadata = fetchPackageMetadata;
+async function fetchPackageManifest(name, logger, options = {}) {
+ const { usingYarn = false, verbose = false, registry } = options;
+ ensureNpmrc(logger, usingYarn, verbose);
+ const response = await pacote.manifest(name, {
+ fullMetadata: true,
+ ...npmrc,
+ ...(registry ? { registry } : {}),
+ });
+ return normalizeManifest(response);
+}
+exports.fetchPackageManifest = fetchPackageManifest;
+function getNpmPackageJson(packageName, logger, options = {}) {
+ const cachedResponse = npmPackageJsonCache.get(packageName);
+ if (cachedResponse) {
+ return cachedResponse;
+ }
+ const { usingYarn = false, verbose = false, registry } = options;
+ ensureNpmrc(logger, usingYarn, verbose);
+ const resultPromise = pacote.packument(packageName, {
+ fullMetadata: true,
+ ...npmrc,
+ ...(registry ? { registry } : {}),
+ });
+ // TODO: find some way to test this
+ const response = resultPromise.catch((err) => {
+ logger.warn(err.message || err);
+ return { requestedName: packageName };
+ });
+ npmPackageJsonCache.set(packageName, response);
+ return response;
+}
+exports.getNpmPackageJson = getNpmPackageJson;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-tree.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-tree.d.ts
new file mode 100644
index 00000000..433a0d72
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-tree.d.ts
@@ -0,0 +1,32 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { NgAddSaveDepedency } from './package-metadata';
+interface PackageJson {
+ name: string;
+ version: string;
+ dependencies?: Record<string, string>;
+ devDependencies?: Record<string, string>;
+ peerDependencies?: Record<string, string>;
+ optionalDependencies?: Record<string, string>;
+ 'ng-update'?: {
+ migrations?: string;
+ };
+ 'ng-add'?: {
+ save?: NgAddSaveDepedency;
+ };
+}
+export interface PackageTreeNode {
+ name: string;
+ version: string;
+ path: string;
+ package: PackageJson | undefined;
+}
+export declare function readPackageJson(packageJsonPath: string): Promise<PackageJson | undefined>;
+export declare function findPackageJson(workspaceDir: string, packageName: string): string | undefined;
+export declare function getProjectDependencies(dir: string): Promise<Map<string, PackageTreeNode>>;
+export {};
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-tree.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-tree.js
new file mode 100644
index 00000000..c381491f
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/package-tree.js
@@ -0,0 +1,81 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getProjectDependencies = exports.findPackageJson = exports.readPackageJson = void 0;
+const fs = __importStar(require("fs"));
+const path_1 = require("path");
+const resolve = __importStar(require("resolve"));
+function getAllDependencies(pkg) {
+ return new Set([
+ ...Object.entries(pkg.dependencies || []),
+ ...Object.entries(pkg.devDependencies || []),
+ ...Object.entries(pkg.peerDependencies || []),
+ ...Object.entries(pkg.optionalDependencies || []),
+ ]);
+}
+async function readPackageJson(packageJsonPath) {
+ try {
+ return JSON.parse((await fs.promises.readFile(packageJsonPath)).toString());
+ }
+ catch {
+ return undefined;
+ }
+}
+exports.readPackageJson = readPackageJson;
+function findPackageJson(workspaceDir, packageName) {
+ try {
+ // avoid require.resolve here, see: https://github.com/angular/angular-cli/pull/18610#issuecomment-681980185
+ const packageJsonPath = resolve.sync(`${packageName}/package.json`, { basedir: workspaceDir });
+ return packageJsonPath;
+ }
+ catch {
+ return undefined;
+ }
+}
+exports.findPackageJson = findPackageJson;
+async function getProjectDependencies(dir) {
+ const pkg = await readPackageJson((0, path_1.join)(dir, 'package.json'));
+ if (!pkg) {
+ throw new Error('Could not find package.json');
+ }
+ const results = new Map();
+ for (const [name, version] of getAllDependencies(pkg)) {
+ const packageJsonPath = findPackageJson(dir, name);
+ if (!packageJsonPath) {
+ continue;
+ }
+ results.set(name, {
+ name,
+ version,
+ path: (0, path_1.dirname)(packageJsonPath),
+ package: await readPackageJson(packageJsonPath),
+ });
+ }
+ return results;
+}
+exports.getProjectDependencies = getProjectDependencies;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/project.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/project.d.ts
new file mode 100644
index 00000000..8c3b4725
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/project.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export declare function findWorkspaceFile(currentDirectory?: string): string | null;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/project.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/project.js
new file mode 100644
index 00000000..27ec1ca6
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/project.js
@@ -0,0 +1,73 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findWorkspaceFile = void 0;
+const core_1 = require("@angular-devkit/core");
+const fs = __importStar(require("fs"));
+const os = __importStar(require("os"));
+const path = __importStar(require("path"));
+const find_up_1 = require("./find-up");
+function findWorkspaceFile(currentDirectory = process.cwd()) {
+ const possibleConfigFiles = [
+ 'angular.json',
+ '.angular.json',
+ 'angular-cli.json',
+ '.angular-cli.json',
+ ];
+ const configFilePath = (0, find_up_1.findUp)(possibleConfigFiles, currentDirectory);
+ if (configFilePath === null) {
+ return null;
+ }
+ const possibleDir = path.dirname(configFilePath);
+ const homedir = os.homedir();
+ if ((0, core_1.normalize)(possibleDir) === (0, core_1.normalize)(homedir)) {
+ const packageJsonPath = path.join(possibleDir, 'package.json');
+ try {
+ const packageJsonText = fs.readFileSync(packageJsonPath, 'utf-8');
+ const packageJson = JSON.parse(packageJsonText);
+ if (!containsCliDep(packageJson)) {
+ // No CLI dependency
+ return null;
+ }
+ }
+ catch {
+ // No or invalid package.json
+ return null;
+ }
+ }
+ return configFilePath;
+}
+exports.findWorkspaceFile = findWorkspaceFile;
+function containsCliDep(obj) {
+ var _a, _b;
+ const pkgName = '@angular/cli';
+ if (!obj) {
+ return false;
+ }
+ return !!(((_a = obj.dependencies) === null || _a === void 0 ? void 0 : _a[pkgName]) || ((_b = obj.devDependencies) === null || _b === void 0 ? void 0 : _b[pkgName]));
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/prompt.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/prompt.d.ts
new file mode 100644
index 00000000..39f3c789
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/prompt.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export declare function askConfirmation(message: string, defaultResponse: boolean, noTTYResponse?: boolean): Promise<boolean>;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/prompt.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/prompt.js
new file mode 100644
index 00000000..1ea868ba
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/prompt.js
@@ -0,0 +1,46 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.askConfirmation = void 0;
+const inquirer = __importStar(require("inquirer"));
+const tty_1 = require("./tty");
+async function askConfirmation(message, defaultResponse, noTTYResponse) {
+ if (!(0, tty_1.isTTY)()) {
+ return noTTYResponse !== null && noTTYResponse !== void 0 ? noTTYResponse : defaultResponse;
+ }
+ const question = {
+ type: 'confirm',
+ name: 'confirmation',
+ prefix: '',
+ message,
+ default: defaultResponse,
+ };
+ const answers = await inquirer.prompt([question]);
+ return answers['confirmation'];
+}
+exports.askConfirmation = askConfirmation;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/spinner.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/spinner.d.ts
new file mode 100644
index 00000000..5eede116
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/spinner.d.ts
@@ -0,0 +1,20 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export declare class Spinner {
+ private readonly spinner;
+ /** When false, only fail messages will be displayed. */
+ enabled: boolean;
+ constructor(text?: string);
+ set text(text: string);
+ succeed(text?: string): void;
+ info(text?: string): void;
+ fail(text?: string): void;
+ warn(text?: string): void;
+ stop(): void;
+ start(text?: string): void;
+}
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/spinner.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/spinner.js
new file mode 100644
index 00000000..64074fad
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/spinner.js
@@ -0,0 +1,54 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Spinner = void 0;
+const ora_1 = __importDefault(require("ora"));
+const color_1 = require("./color");
+class Spinner {
+ constructor(text) {
+ /** When false, only fail messages will be displayed. */
+ this.enabled = true;
+ this.spinner = (0, ora_1.default)({
+ text,
+ // The below 2 options are needed because otherwise CTRL+C will be delayed
+ // when the underlying process is sync.
+ hideCursor: false,
+ discardStdin: false,
+ });
+ }
+ set text(text) {
+ this.spinner.text = text;
+ }
+ succeed(text) {
+ if (this.enabled) {
+ this.spinner.succeed(text);
+ }
+ }
+ info(text) {
+ this.spinner.info(text);
+ }
+ fail(text) {
+ this.spinner.fail(text && color_1.colors.redBright(text));
+ }
+ warn(text) {
+ this.spinner.warn(text && color_1.colors.yellowBright(text));
+ }
+ stop() {
+ this.spinner.stop();
+ }
+ start(text) {
+ if (this.enabled) {
+ this.spinner.start(text);
+ }
+ }
+}
+exports.Spinner = Spinner;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/tty.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/tty.d.ts
new file mode 100644
index 00000000..c38ca880
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/tty.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+export declare function isTTY(): boolean;
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/tty.js b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/tty.js
new file mode 100644
index 00000000..70ea8d5d
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/@angular/cli/utilities/tty.js
@@ -0,0 +1,23 @@
+"use strict";
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isTTY = void 0;
+function _isTruthy(value) {
+ // Returns true if value is a string that is anything but 0 or false.
+ return value !== undefined && value !== '0' && value.toUpperCase() !== 'FALSE';
+}
+function isTTY() {
+ // If we force TTY, we always return true.
+ const force = process.env['NG_FORCE_TTY'];
+ if (force !== undefined) {
+ return _isTruthy(force);
+ }
+ return !!process.stdout.isTTY && !_isTruthy(process.env['CI']);
+}
+exports.isTTY = isTTY;