diff options
author | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-01 21:54:41 +0100 |
---|---|---|
committer | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-01 21:54:41 +0100 |
commit | 6c8128f9fd5a5d0be115806c35a21b3d683df8d6 (patch) | |
tree | f46c2f6b3b9b294ff32bd75c08ccdc9e7a8cc4ef /sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect | |
parent | 2400b84e95913665da6279114168148444b8f9ab (diff) | |
parent | 7d3640f824f46490b47bd95f1c5a16644f712068 (diff) |
Merge branch 'dev' of http://gitlab.pmf.kg.ac.rs/igrannonica/neuronstellar into logo
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect')
53 files changed, 2487 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/LICENSE b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/LICENSE new file mode 100644 index 00000000..8876c32c --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/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-devkit/architect/README.md b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/README.md new file mode 100644 index 00000000..3cfd7516 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/README.md @@ -0,0 +1,3 @@ +# Angular Build Facade + +WIP diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/all-of.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/all-of.d.ts new file mode 100644 index 00000000..1db82959 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/all-of.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 { json } from '@angular-devkit/core'; +import { Schema as OperatorSchema } from './operator-schema'; +declare const _default: import("../src/internal").Builder<json.JsonObject & OperatorSchema>; +export default _default; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/all-of.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/all-of.js new file mode 100644 index 00000000..fd085e6a --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/all-of.js @@ -0,0 +1,48 @@ +"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 }); +const rxjs_1 = require("rxjs"); +const operators_1 = require("rxjs/operators"); +const src_1 = require("../src"); +exports.default = (0, src_1.createBuilder)((options, context) => { + const allRuns = []; + context.reportProgress(0, (options.targets ? options.targets.length : 0) + + (options.builders ? options.builders.length : 0)); + if (options.targets) { + allRuns.push(...options.targets.map(({ target: targetStr, overrides }, i) => { + const [project, target, configuration] = targetStr.split(/:/g, 3); + return context + .scheduleTarget({ project, target, configuration }, overrides || {}) + .then((run) => [i, run]); + })); + } + if (options.builders) { + allRuns.push(...options.builders.map(({ builder, options }, i) => { + return context + .scheduleBuilder(builder, options || {}) + .then((run) => [i, run]); + })); + } + const allResults = allRuns.map(() => null); + let n = 0; + context.reportProgress(n++, allRuns.length); + return (0, rxjs_1.from)(allRuns).pipe((0, operators_1.mergeMap)((runPromise) => (0, rxjs_1.from)(runPromise)), (0, operators_1.mergeMap)(([i, run]) => run.output.pipe((0, operators_1.map)((output) => [i, output]))), (0, operators_1.mergeMap)(([i, output]) => { + allResults[i] = output; + context.reportProgress(n++, allRuns.length); + if (allResults.some((x) => x === null)) { + // Some builders aren't done running yet. + return rxjs_1.EMPTY; + } + else { + return (0, rxjs_1.of)({ + success: allResults.every((x) => (x ? x.success : false)), + }); + } + })); +}); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/builders.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/builders.json new file mode 100644 index 00000000..5bbff828 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/builders.json @@ -0,0 +1,25 @@ +{ + "$schema": "../src/builders-schema.json", + "builders": { + "true": { + "implementation": "./true", + "schema": "./noop-schema.json", + "description": "Always succeed." + }, + "false": { + "implementation": "./false", + "schema": "./noop-schema.json", + "description": "Always fails." + }, + "allOf": { + "implementation": "./all-of", + "schema": "./operator-schema.json", + "description": "A builder that executes many builders in parallel, and succeed if both succeeds." + }, + "concat": { + "implementation": "./concat", + "schema": "./operator-schema.json", + "description": "A builder that executes many builders one after the other, and stops when one fail. It will succeed if all builders succeeds (and return the last output)" + } + } +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/concat.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/concat.d.ts new file mode 100644 index 00000000..1db82959 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/concat.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 { json } from '@angular-devkit/core'; +import { Schema as OperatorSchema } from './operator-schema'; +declare const _default: import("../src/internal").Builder<json.JsonObject & OperatorSchema>; +export default _default; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/concat.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/concat.js new file mode 100644 index 00000000..747fefac --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/concat.js @@ -0,0 +1,45 @@ +"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 }); +const rxjs_1 = require("rxjs"); +const operators_1 = require("rxjs/operators"); +const src_1 = require("../src"); +exports.default = (0, src_1.createBuilder)((options, context) => { + const allRuns = []; + context.reportProgress(0, (options.targets ? options.targets.length : 0) + + (options.builders ? options.builders.length : 0)); + if (options.targets) { + allRuns.push(...options.targets.map(({ target: targetStr, overrides }) => { + const [project, target, configuration] = targetStr.split(/:/g, 3); + return () => context.scheduleTarget({ project, target, configuration }, overrides || {}); + })); + } + if (options.builders) { + allRuns.push(...options.builders.map(({ builder, options }) => { + return () => context.scheduleBuilder(builder, options || {}); + })); + } + let stop = null; + let i = 0; + context.reportProgress(i++, allRuns.length); + return (0, rxjs_1.from)(allRuns).pipe((0, operators_1.concatMap)((fn) => stop + ? (0, rxjs_1.of)(null) + : (0, rxjs_1.from)(fn()).pipe((0, operators_1.switchMap)((run) => (run === null ? (0, rxjs_1.of)(null) : run.output.pipe((0, operators_1.first)()))))), (0, operators_1.map)((output) => { + context.reportProgress(i++, allRuns.length); + if (output === null || stop !== null) { + return stop || { success: false }; + } + else if (output.success === false) { + return (stop = output); + } + else { + return output; + } + }), (0, operators_1.last)()); +}); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/false.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/false.d.ts new file mode 100644 index 00000000..cef2dd8a --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/false.d.ts @@ -0,0 +1,9 @@ +/** + * @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 const _default: import("../src/internal").Builder<import("../../core/src").JsonObject>; +export default _default; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/false.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/false.js new file mode 100644 index 00000000..590e6c17 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/false.js @@ -0,0 +1,14 @@ +"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 }); +const src_1 = require("../src"); +exports.default = (0, src_1.createBuilder)(() => ({ + success: false, + error: 'False builder always errors.', +})); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/noop-schema.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/noop-schema.json new file mode 100644 index 00000000..77dd56a3 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/noop-schema.json @@ -0,0 +1,4 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "type": "object" +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.d.ts new file mode 100644 index 00000000..9bc83751 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.d.ts @@ -0,0 +1,19 @@ +/** + * All input types of builders that perform operations on one or multiple sub-builders. + */ +export interface Schema { + builders?: Builder[]; + targets?: Target[]; +} +export interface Builder { + builder: string; + options?: { + [key: string]: any; + }; +} +export interface Target { + overrides?: { + [key: string]: any; + }; + target: string; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.js new file mode 100644 index 00000000..4fb6d3d1 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.js @@ -0,0 +1,4 @@ +"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 }); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.json new file mode 100644 index 00000000..1de86018 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/operator-schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "description": "All input types of builders that perform operations on one or multiple sub-builders.", + "type": "object", + "properties": { + "builders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "builder": { + "type": "string", + "pattern": ".*:.*" + }, + "options": { + "type": "object" + } + }, + "required": ["builder"] + }, + "minItems": 1 + }, + "targets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "target": { + "type": "string", + "pattern": ".*:.*" + }, + "overrides": { + "type": "object" + } + }, + "required": ["target"] + }, + "minItems": 1 + } + } +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/true.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/true.d.ts new file mode 100644 index 00000000..cef2dd8a --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/true.d.ts @@ -0,0 +1,9 @@ +/** + * @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 const _default: import("../src/internal").Builder<import("../../core/src").JsonObject>; +export default _default; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/true.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/true.js new file mode 100644 index 00000000..32a3fbcc --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/builders/true.js @@ -0,0 +1,11 @@ +"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 }); +const src_1 = require("../src"); +exports.default = (0, src_1.createBuilder)(() => ({ success: true })); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/BUILD.bazel b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/BUILD.bazel new file mode 100644 index 00000000..672e73d7 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/BUILD.bazel @@ -0,0 +1,28 @@ +# Copyright Google Inc. 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 + +load("//tools:defaults.bzl", "ts_library") + +licenses(["notice"]) # MIT + +package(default_visibility = ["//visibility:public"]) + +ts_library( + name = "node", + srcs = glob( + include = ["**/*.ts"], + exclude = ["**/*_spec.ts"], + ), + module_name = "@angular-devkit/architect/node", + module_root = "index.d.ts", + # strict_checks = False, + deps = [ + "//packages/angular_devkit/architect", + "//packages/angular_devkit/core", + "//packages/angular_devkit/core/node", + "@npm//@types/node", + "@npm//rxjs", + ], +) diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/index.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/index.d.ts new file mode 100644 index 00000000..ab719a3f --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/index.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 * from './node-modules-architect-host'; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/index.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/index.js new file mode 100644 index 00000000..95a64785 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/index.js @@ -0,0 +1,20 @@ +"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 __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./node-modules-architect-host"), exports); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/node-modules-architect-host.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/node-modules-architect-host.d.ts new file mode 100644 index 00000000..809a0e72 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/node-modules-architect-host.d.ts @@ -0,0 +1,41 @@ +/** + * @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 { BuilderInfo } from '../src'; +import { Target } from '../src/input-schema'; +import { ArchitectHost, Builder } from '../src/internal'; +export declare type NodeModulesBuilderInfo = BuilderInfo & { + import: string; +}; +export interface WorkspaceHost { + getBuilderName(project: string, target: string): Promise<string>; + getMetadata(project: string): Promise<json.JsonObject>; + getOptions(project: string, target: string, configuration?: string): Promise<json.JsonObject>; + hasTarget(project: string, target: string): Promise<boolean>; + getDefaultConfigurationName(project: string, target: string): Promise<string | undefined>; +} +export declare class WorkspaceNodeModulesArchitectHost implements ArchitectHost<NodeModulesBuilderInfo> { + protected _root: string; + private workspaceHost; + constructor(workspaceHost: WorkspaceHost, _root: string); + constructor(workspace: workspaces.WorkspaceDefinition, _root: string); + getBuilderNameForTarget(target: Target): Promise<string>; + /** + * Resolve a builder. This needs to be a string which will be used in a dynamic `import()` + * clause. This should throw if no builder can be found. The dynamic import will throw if + * it is unsupported. + * @param builderStr The name of the builder to be used. + * @returns All the info needed for the builder itself. + */ + resolveBuilder(builderStr: string): Promise<NodeModulesBuilderInfo>; + getCurrentDirectory(): Promise<string>; + getWorkspaceRoot(): Promise<string>; + getOptionsForTarget(target: Target): Promise<json.JsonObject | null>; + getProjectMetadata(target: Target | string): Promise<json.JsonObject | null>; + loadBuilder(info: NodeModulesBuilderInfo): Promise<Builder>; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/node-modules-architect-host.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/node-modules-architect-host.js new file mode 100644 index 00000000..30fadb54 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/node/node-modules-architect-host.js @@ -0,0 +1,223 @@ +"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.WorkspaceNodeModulesArchitectHost = void 0; +const path = __importStar(require("path")); +const url_1 = require("url"); +const v8_1 = require("v8"); +const internal_1 = require("../src/internal"); +function clone(obj) { + try { + return (0, v8_1.deserialize)((0, v8_1.serialize)(obj)); + } + catch { + return JSON.parse(JSON.stringify(obj)); + } +} +function findProjectTarget(workspace, project, target) { + const projectDefinition = workspace.projects.get(project); + if (!projectDefinition) { + throw new Error(`Project "${project}" does not exist.`); + } + const targetDefinition = projectDefinition.targets.get(target); + if (!targetDefinition) { + throw new Error('Project target does not exist.'); + } + return targetDefinition; +} +class WorkspaceNodeModulesArchitectHost { + constructor(workspaceOrHost, _root) { + this._root = _root; + if ('getBuilderName' in workspaceOrHost) { + this.workspaceHost = workspaceOrHost; + } + else { + this.workspaceHost = { + async getBuilderName(project, target) { + const targetDefinition = findProjectTarget(workspaceOrHost, project, target); + return targetDefinition.builder; + }, + async getOptions(project, target, configuration) { + var _a, _b, _c, _d; + const targetDefinition = findProjectTarget(workspaceOrHost, project, target); + if (configuration === undefined) { + return ((_a = targetDefinition.options) !== null && _a !== void 0 ? _a : {}); + } + if (!((_b = targetDefinition.configurations) === null || _b === void 0 ? void 0 : _b[configuration])) { + throw new Error(`Configuration '${configuration}' is not set in the workspace.`); + } + return ((_d = (_c = targetDefinition.configurations) === null || _c === void 0 ? void 0 : _c[configuration]) !== null && _d !== void 0 ? _d : {}); + }, + async getMetadata(project) { + const projectDefinition = workspaceOrHost.projects.get(project); + if (!projectDefinition) { + throw new Error(`Project "${project}" does not exist.`); + } + return { + root: projectDefinition.root, + sourceRoot: projectDefinition.sourceRoot, + prefix: projectDefinition.prefix, + ...clone(workspaceOrHost.extensions), + ...clone(projectDefinition.extensions), + }; + }, + async hasTarget(project, target) { + var _a; + return !!((_a = workspaceOrHost.projects.get(project)) === null || _a === void 0 ? void 0 : _a.targets.has(target)); + }, + async getDefaultConfigurationName(project, target) { + var _a, _b; + return (_b = (_a = workspaceOrHost.projects.get(project)) === null || _a === void 0 ? void 0 : _a.targets.get(target)) === null || _b === void 0 ? void 0 : _b.defaultConfiguration; + }, + }; + } + } + async getBuilderNameForTarget(target) { + return this.workspaceHost.getBuilderName(target.project, target.target); + } + /** + * Resolve a builder. This needs to be a string which will be used in a dynamic `import()` + * clause. This should throw if no builder can be found. The dynamic import will throw if + * it is unsupported. + * @param builderStr The name of the builder to be used. + * @returns All the info needed for the builder itself. + */ + resolveBuilder(builderStr) { + const [packageName, builderName] = builderStr.split(':', 2); + if (!builderName) { + throw new Error('No builder name specified.'); + } + const packageJsonPath = require.resolve(packageName + '/package.json', { + paths: [this._root], + }); + const packageJson = require(packageJsonPath); + if (!packageJson['builders']) { + throw new Error(`Package ${JSON.stringify(packageName)} has no builders defined.`); + } + const builderJsonPath = path.resolve(path.dirname(packageJsonPath), packageJson['builders']); + const builderJson = require(builderJsonPath); + const builder = builderJson.builders && builderJson.builders[builderName]; + if (!builder) { + throw new Error(`Cannot find builder ${JSON.stringify(builderStr)}.`); + } + const importPath = builder.implementation; + if (!importPath) { + throw new Error('Could not find the implementation for builder ' + builderStr); + } + return Promise.resolve({ + name: builderStr, + builderName, + description: builder['description'], + optionSchema: require(path.resolve(path.dirname(builderJsonPath), builder.schema)), + import: path.resolve(path.dirname(builderJsonPath), importPath), + }); + } + async getCurrentDirectory() { + return process.cwd(); + } + async getWorkspaceRoot() { + return this._root; + } + async getOptionsForTarget(target) { + if (!(await this.workspaceHost.hasTarget(target.project, target.target))) { + return null; + } + let options = await this.workspaceHost.getOptions(target.project, target.target); + const targetConfiguration = target.configuration || + (await this.workspaceHost.getDefaultConfigurationName(target.project, target.target)); + if (targetConfiguration) { + const configurations = targetConfiguration.split(',').map((c) => c.trim()); + for (const configuration of configurations) { + options = { + ...options, + ...(await this.workspaceHost.getOptions(target.project, target.target, configuration)), + }; + } + } + return clone(options); + } + async getProjectMetadata(target) { + const projectName = typeof target === 'string' ? target : target.project; + const metadata = this.workspaceHost.getMetadata(projectName); + return metadata; + } + async loadBuilder(info) { + const builder = await getBuilder(info.import); + if (builder[internal_1.BuilderSymbol]) { + return builder; + } + // Default handling code is for old builders that incorrectly export `default` with non-ESM module + if (builder === null || builder === void 0 ? void 0 : builder.default[internal_1.BuilderSymbol]) { + return builder.default; + } + throw new Error('Builder is not a builder'); + } +} +exports.WorkspaceNodeModulesArchitectHost = WorkspaceNodeModulesArchitectHost; +/** + * This uses a dynamic import to load a module which may be ESM. + * CommonJS code can load ESM code via a dynamic import. Unfortunately, TypeScript + * will currently, unconditionally downlevel dynamic import into a require call. + * require calls cannot load ESM code and will result in a runtime error. To workaround + * this, a Function constructor is used to prevent TypeScript from changing the dynamic import. + * Once TypeScript provides support for keeping the dynamic import this workaround can + * be dropped. + * + * @param modulePath The path of the module to load. + * @returns A Promise that resolves to the dynamically imported module. + */ +function loadEsmModule(modulePath) { + return new Function('modulePath', `return import(modulePath);`)(modulePath); +} +// eslint-disable-next-line @typescript-eslint/no-explicit-any +async function getBuilder(builderPath) { + switch (path.extname(builderPath)) { + case '.mjs': + // Load the ESM configuration file using the TypeScript dynamic import workaround. + // Once TypeScript provides support for keeping the dynamic import this workaround can be + // changed to a direct dynamic import. + return (await loadEsmModule((0, url_1.pathToFileURL)(builderPath))).default; + case '.cjs': + return require(builderPath); + default: + // The file could be either CommonJS or ESM. + // CommonJS is tried first then ESM if loading fails. + try { + return require(builderPath); + } + catch (e) { + if (e.code === 'ERR_REQUIRE_ESM') { + // Load the ESM configuration file using the TypeScript dynamic import workaround. + // Once TypeScript provides support for keeping the dynamic import this workaround can be + // changed to a direct dynamic import. + return (await loadEsmModule((0, url_1.pathToFileURL)(builderPath))).default; + } + throw e; + } + } +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/package.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/package.json new file mode 100644 index 00000000..f3099ad7 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/package.json @@ -0,0 +1,35 @@ +{ + "name": "@angular-devkit/architect", + "version": "0.1302.5", + "description": "Angular Build Facade", + "experimental": true, + "main": "src/index.js", + "typings": "src/index.d.ts", + "dependencies": { + "@angular-devkit/core": "13.2.5", + "rxjs": "6.6.7" + }, + "builders": "./builders/builders.json", + "keywords": [ + "angular", + "Angular CLI", + "devkit", + "sdk", + "Angular DevKit" + ], + "repository": { + "type": "git", + "url": "https://github.com/angular/angular-cli.git" + }, + "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" + }, + "author": "Angular Authors", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular-cli/issues" + }, + "homepage": "https://github.com/angular/angular-cli" +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/api.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/api.d.ts new file mode 100644 index 00000000..dd238a9d --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/api.d.ts @@ -0,0 +1,267 @@ +/** + * @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, experimental, json, logging } from '@angular-devkit/core'; +import { Observable, SubscribableOrPromise } from 'rxjs'; +import { Schema as RealBuilderInput, Target as RealTarget } from './input-schema'; +import { Schema as RealBuilderOutput } from './output-schema'; +import { State as BuilderProgressState, Schema as RealBuilderProgress } from './progress-schema'; +export declare type Target = json.JsonObject & RealTarget; +export { BuilderProgressState }; +export declare type BuilderRegistry = experimental.jobs.Registry<json.JsonObject, BuilderInput, BuilderOutput>; +/** + * An API typed BuilderProgress. The interface generated from the schema is too permissive, + * so this API is the one we show in our API. Please note that not all fields are in there; this + * is in addition to fields in the schema. + */ +export declare type TypedBuilderProgress = { + state: BuilderProgressState.Stopped; +} | { + state: BuilderProgressState.Error; + error: json.JsonValue; +} | { + state: BuilderProgressState.Waiting; + status?: string; +} | { + state: BuilderProgressState.Running; + status?: string; + current: number; + total?: number; +}; +/** + * Declaration of those types as JsonObject compatible. JsonObject is not compatible with + * optional members, so those wouldn't be directly assignable to our internal Json typings. + * Forcing the type to be both a JsonObject and the type from the Schema tells Typescript they + * are compatible (which they are). + * These types should be used everywhere. + */ +export declare type BuilderInput = json.JsonObject & RealBuilderInput; +export declare type BuilderOutput = json.JsonObject & RealBuilderOutput; +export declare type BuilderProgress = json.JsonObject & RealBuilderProgress & TypedBuilderProgress; +/** + * A progress report is what the tooling will receive. It contains the builder info and the target. + * Although these are serializable, they are only exposed through the tooling interface, not the + * builder interface. The watch dog sends BuilderProgress and the Builder has a set of functions + * to manage the state. + */ +export declare type BuilderProgressReport = BuilderProgress & { + target?: Target; + builder: BuilderInfo; +}; +/** + * A Run, which is what is returned by scheduleBuilder or scheduleTarget functions. This should + * be reconstructed across memory boundaries (it's not serializable but all internal information + * are). + */ +export interface BuilderRun { + /** + * Unique amongst runs. This is the same ID as the context generated for the run. It can be + * used to identify multiple unique runs. There is no guarantee that a run is a single output; + * a builder can rebuild on its own and will generate multiple outputs. + */ + id: number; + /** + * The builder information. + */ + info: BuilderInfo; + /** + * The next output from a builder. This is recommended when scheduling a builder and only being + * interested in the result of that single run, not of a watch-mode builder. + */ + result: Promise<BuilderOutput>; + /** + * The output(s) from the builder. A builder can have multiple outputs. + * This always replay the last output when subscribed. + */ + output: Observable<BuilderOutput>; + /** + * The progress report. A progress also contains an ID, which can be different than this run's + * ID (if the builder calls scheduleBuilder or scheduleTarget). + * This will always replay the last progress on new subscriptions. + */ + progress: Observable<BuilderProgressReport>; + /** + * Stop the builder from running. Returns a promise that resolves when the builder is stopped. + * Some builders might not handle stopping properly and should have a timeout here. + */ + stop(): Promise<void>; +} +/** + * Additional optional scheduling options. + */ +export interface ScheduleOptions { + /** + * Logger to pass to the builder. Note that messages will stop being forwarded, and if you want + * to log a builder scheduled from your builder you should forward log events yourself. + */ + logger?: logging.Logger; + /** + * Target to pass to the builder. + */ + target?: Target; +} +/** + * The context received as a second argument in your builder. + */ +export interface BuilderContext { + /** + * Unique amongst contexts. Contexts instances are not guaranteed to be the same (but it could + * be the same context), and all the fields in a context could be the same, yet the builder's + * context could be different. This is the same ID as the corresponding run. + */ + id: number; + /** + * The builder info that called your function. Since the builder info is from the builder.json + * (or the host), it could contain information that is different than expected. + */ + builder: BuilderInfo; + /** + * A logger that appends messages to a log. This could be a separate interface or completely + * ignored. `console.log` could also be completely ignored. + */ + logger: logging.LoggerApi; + /** + * The absolute workspace root of this run. This is a system path and will not be normalized; + * ie. on Windows it will starts with `C:\\` (or whatever drive). + */ + workspaceRoot: string; + /** + * The current directory the user is in. This could be outside the workspace root. This is a + * system path and will not be normalized; ie. on Windows it will starts with `C:\\` (or + * whatever drive). + */ + currentDirectory: string; + /** + * The target that was used to run this builder. + * Target is optional if a builder was ran using `scheduleBuilder()`. + */ + target?: Target; + /** + * Schedule a target in the same workspace. This can be the same target that is being executed + * right now, but targets of the same name are serialized. + * Running the same target and waiting for it to end will result in a deadlocking scenario. + * Targets are considered the same if the project, the target AND the configuration are the same. + * @param target The target to schedule. + * @param overrides A set of options to override the workspace set of options. + * @param scheduleOptions Additional optional scheduling options. + * @return A promise of a run. It will resolve when all the members of the run are available. + */ + scheduleTarget(target: Target, overrides?: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise<BuilderRun>; + /** + * Schedule a builder by its name. This can be the same builder that is being executed. + * @param builderName The name of the builder, ie. its `packageName:builderName` tuple. + * @param options All options to use for the builder (by default empty object). There is no + * additional options added, e.g. from the workspace. + * @param scheduleOptions Additional optional scheduling options. + * @return A promise of a run. It will resolve when all the members of the run are available. + */ + scheduleBuilder(builderName: string, options?: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise<BuilderRun>; + /** + * Resolve and return options for a specified target. If the target isn't defined in the + * workspace this will reject the promise. This object will be read directly from the workspace + * but not validated against the builder of the target. + * @param target The target to resolve the options of. + * @return A non-validated object resolved from the workspace. + */ + getTargetOptions(target: Target): Promise<json.JsonObject>; + getProjectMetadata(projectName: string): Promise<json.JsonObject>; + getProjectMetadata(target: Target): Promise<json.JsonObject>; + /** + * Resolves and return a builder name. The exact format of the name is up to the host, + * so it should not be parsed to gather information (it's free form). This string can be + * used to validate options or schedule a builder directly. + * @param target The target to resolve the builder name. + */ + getBuilderNameForTarget(target: Target): Promise<string>; + /** + * Validates the options against a builder schema. This uses the same methods as the + * scheduleTarget and scheduleBrowser methods to validate and apply defaults to the options. + * It can be generically typed, if you know which interface it is supposed to validate against. + * @param options A generic option object to validate. + * @param builderName The name of a builder to use. This can be gotten for a target by using the + * getBuilderForTarget() method on the context. + */ + validateOptions<T extends json.JsonObject = json.JsonObject>(options: json.JsonObject, builderName: string): Promise<T>; + /** + * Set the builder to running. This should be used if an external event triggered a re-run, + * e.g. a file watched was changed. + */ + reportRunning(): void; + /** + * Update the status string shown on the interface. + * @param status The status to set it to. An empty string can be used to remove the status. + */ + reportStatus(status: string): void; + /** + * Update the progress for this builder run. + * @param current The current progress. This will be between 0 and total. + * @param total A new total to set. By default at the start of a run this is 1. If omitted it + * will use the same value as the last total. + * @param status Update the status string. If omitted the status string is not modified. + */ + reportProgress(current: number, total?: number, status?: string): void; + /** + * API to report analytics. This might be undefined if the feature is unsupported. This might + * not be undefined, but the backend could also not report anything. + */ + readonly analytics: analytics.Analytics; + /** + * Add teardown logic to this Context, so that when it's being stopped it will execute teardown. + */ + addTeardown(teardown: () => Promise<void> | void): void; +} +/** + * An accepted return value from a builder. Can be either an Observable, a Promise or a vector. + */ +export declare type BuilderOutputLike = AsyncIterable<BuilderOutput> | SubscribableOrPromise<BuilderOutput> | BuilderOutput; +export declare function isBuilderOutput(obj: any): obj is BuilderOutput; +export declare function fromAsyncIterable<T>(iterable: AsyncIterable<T>): Observable<T>; +/** + * A builder handler function. The function signature passed to `createBuilder()`. + */ +export interface BuilderHandlerFn<A> { + /** + * Builders are defined by users to perform any kind of task, like building, testing or linting, + * and should use this interface. + * @param input The options (a JsonObject), validated by the schema and received by the + * builder. This can include resolved options from the CLI or the workspace. + * @param context A context that can be used to interact with the Architect framework. + * @return One or many builder output. + */ + (input: A, context: BuilderContext): BuilderOutputLike; +} +/** + * A Builder general information. This is generated by the host and is expanded by the host, but + * the public API contains those fields. + */ +export declare type BuilderInfo = json.JsonObject & { + builderName: string; + description: string; + optionSchema: json.schema.JsonSchema; +}; +/** + * Returns a string of "project:target[:configuration]" for the target object. + */ +export declare function targetStringFromTarget({ project, target, configuration }: Target): string; +/** + * Return a Target tuple from a string. + */ +export declare function targetFromTargetString(str: string): Target; +/** + * Schedule a target, and forget about its run. This will return an observable of outputs, that + * as a a teardown will stop the target from running. This means that the Run object this returns + * should not be shared. + * + * The reason this is not part of the Context interface is to keep the Context as normal form as + * possible. This is really an utility that people would implement in their project. + * + * @param context The context of your current execution. + * @param target The target to schedule. + * @param overrides Overrides that are used in the target. + * @param scheduleOptions Additional scheduling options. + */ +export declare function scheduleTargetAndForget(context: BuilderContext, target: Target, overrides?: json.JsonObject, scheduleOptions?: ScheduleOptions): Observable<BuilderOutput>; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/api.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/api.js new file mode 100644 index 00000000..b780d744 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/api.js @@ -0,0 +1,98 @@ +"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.scheduleTargetAndForget = exports.targetFromTargetString = exports.targetStringFromTarget = exports.fromAsyncIterable = exports.isBuilderOutput = exports.BuilderProgressState = void 0; +const rxjs_1 = require("rxjs"); +const operators_1 = require("rxjs/operators"); +const progress_schema_1 = require("./progress-schema"); +Object.defineProperty(exports, "BuilderProgressState", { enumerable: true, get: function () { return progress_schema_1.State; } }); +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function isBuilderOutput(obj) { + if (!obj || typeof obj.then === 'function' || typeof obj.subscribe === 'function') { + return false; + } + if (typeof obj[Symbol.asyncIterator] === 'function') { + return false; + } + return typeof obj.success === 'boolean'; +} +exports.isBuilderOutput = isBuilderOutput; +function fromAsyncIterable(iterable) { + return new rxjs_1.Observable((subscriber) => { + handleAsyncIterator(subscriber, iterable[Symbol.asyncIterator]()).then(() => subscriber.complete(), (error) => subscriber.error(error)); + }); +} +exports.fromAsyncIterable = fromAsyncIterable; +async function handleAsyncIterator(subscriber, iterator) { + var _a; + const teardown = new Promise((resolve) => subscriber.add(() => resolve())); + try { + while (!subscriber.closed) { + const result = await Promise.race([teardown, iterator.next()]); + if (!result || result.done) { + break; + } + subscriber.next(result.value); + } + } + finally { + await ((_a = iterator.return) === null || _a === void 0 ? void 0 : _a.call(iterator)); + } +} +/** + * Returns a string of "project:target[:configuration]" for the target object. + */ +function targetStringFromTarget({ project, target, configuration }) { + return `${project}:${target}${configuration !== undefined ? ':' + configuration : ''}`; +} +exports.targetStringFromTarget = targetStringFromTarget; +/** + * Return a Target tuple from a string. + */ +function targetFromTargetString(str) { + const tuple = str.split(/:/, 3); + if (tuple.length < 2) { + throw new Error('Invalid target string: ' + JSON.stringify(str)); + } + return { + project: tuple[0], + target: tuple[1], + ...(tuple[2] !== undefined && { configuration: tuple[2] }), + }; +} +exports.targetFromTargetString = targetFromTargetString; +/** + * Schedule a target, and forget about its run. This will return an observable of outputs, that + * as a a teardown will stop the target from running. This means that the Run object this returns + * should not be shared. + * + * The reason this is not part of the Context interface is to keep the Context as normal form as + * possible. This is really an utility that people would implement in their project. + * + * @param context The context of your current execution. + * @param target The target to schedule. + * @param overrides Overrides that are used in the target. + * @param scheduleOptions Additional scheduling options. + */ +function scheduleTargetAndForget(context, target, overrides, scheduleOptions) { + let resolve = null; + const promise = new Promise((r) => (resolve = r)); + context.addTeardown(() => promise); + return (0, rxjs_1.from)(context.scheduleTarget(target, overrides, scheduleOptions)).pipe((0, operators_1.switchMap)((run) => new rxjs_1.Observable((observer) => { + const subscription = run.output.subscribe(observer); + return () => { + subscription.unsubscribe(); + // We can properly ignore the floating promise as it's a "reverse" promise; the teardown + // is waiting for the resolve. + // eslint-disable-next-line @typescript-eslint/no-floating-promises + run.stop().then(resolve); + }; + }))); +} +exports.scheduleTargetAndForget = scheduleTargetAndForget; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/architect.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/architect.d.ts new file mode 100644 index 00000000..eeec89df --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/architect.d.ts @@ -0,0 +1,25 @@ +/** + * @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, experimental, json, logging } from '@angular-devkit/core'; +import { Observable } from 'rxjs'; +import { BuilderRun, Target } from './api'; +import { ArchitectHost } from './internal'; +export interface ScheduleOptions { + logger?: logging.Logger; + analytics?: analytics.Analytics; +} +export declare class Architect { + private _host; + private readonly _scheduler; + private readonly _jobCache; + private readonly _infoCache; + constructor(_host: ArchitectHost, registry?: json.schema.SchemaRegistry, additionalJobRegistry?: experimental.jobs.Registry); + has(name: experimental.jobs.JobName): Observable<boolean>; + scheduleBuilder(name: string, options: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise<BuilderRun>; + scheduleTarget(target: Target, overrides?: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise<BuilderRun>; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/architect.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/architect.js new file mode 100644 index 00000000..93bb5db9 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/architect.js @@ -0,0 +1,283 @@ +"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.Architect = void 0; +const core_1 = require("@angular-devkit/core"); +const rxjs_1 = require("rxjs"); +const operators_1 = require("rxjs/operators"); +const api_1 = require("./api"); +const schedule_by_name_1 = require("./schedule-by-name"); +const inputSchema = require('./input-schema.json'); +const outputSchema = require('./output-schema.json'); +function _createJobHandlerFromBuilderInfo(info, target, host, registry, baseOptions) { + const jobDescription = { + name: target ? `{${(0, api_1.targetStringFromTarget)(target)}}` : info.builderName, + argument: { type: 'object' }, + input: inputSchema, + output: outputSchema, + info, + }; + function handler(argument, context) { + // Add input validation to the inbound bus. + const inboundBusWithInputValidation = context.inboundBus.pipe((0, operators_1.concatMap)((message) => { + if (message.kind === core_1.experimental.jobs.JobInboundMessageKind.Input) { + const v = message.value; + const options = { + ...baseOptions, + ...v.options, + }; + // Validate v against the options schema. + return registry.compile(info.optionSchema).pipe((0, operators_1.concatMap)((validation) => validation(options)), (0, operators_1.map)((validationResult) => { + const { data, success, errors } = validationResult; + if (success) { + return { ...v, options: data }; + } + throw new core_1.json.schema.SchemaValidationException(errors); + }), (0, operators_1.map)((value) => ({ ...message, value }))); + } + else { + return (0, rxjs_1.of)(message); + } + }), + // Using a share replay because the job might be synchronously sending input, but + // asynchronously listening to it. + (0, operators_1.shareReplay)(1)); + // Make an inboundBus that completes instead of erroring out. + // We'll merge the errors into the output instead. + const inboundBus = (0, rxjs_1.onErrorResumeNext)(inboundBusWithInputValidation); + const output = (0, rxjs_1.from)(host.loadBuilder(info)).pipe((0, operators_1.concatMap)((builder) => { + if (builder === null) { + throw new Error(`Cannot load builder for builderInfo ${JSON.stringify(info, null, 2)}`); + } + return builder.handler(argument, { ...context, inboundBus }).pipe((0, operators_1.map)((output) => { + if (output.kind === core_1.experimental.jobs.JobOutboundMessageKind.Output) { + // Add target to it. + return { + ...output, + value: { + ...output.value, + ...(target ? { target } : 0), + }, + }; + } + else { + return output; + } + })); + }), + // Share subscriptions to the output, otherwise the the handler will be re-run. + (0, operators_1.shareReplay)()); + // Separate the errors from the inbound bus into their own observable that completes when the + // builder output does. + const inboundBusErrors = inboundBusWithInputValidation.pipe((0, operators_1.ignoreElements)(), (0, operators_1.takeUntil)((0, rxjs_1.onErrorResumeNext)(output.pipe((0, operators_1.last)())))); + // Return the builder output plus any input errors. + return (0, rxjs_1.merge)(inboundBusErrors, output); + } + return (0, rxjs_1.of)(Object.assign(handler, { jobDescription })); +} +/** + * A JobRegistry that resolves builder targets from the host. + */ +class ArchitectBuilderJobRegistry { + constructor(_host, _registry, _jobCache, _infoCache) { + this._host = _host; + this._registry = _registry; + this._jobCache = _jobCache; + this._infoCache = _infoCache; + } + _resolveBuilder(name) { + const cache = this._infoCache; + if (cache) { + const maybeCache = cache.get(name); + if (maybeCache !== undefined) { + return maybeCache; + } + const info = (0, rxjs_1.from)(this._host.resolveBuilder(name)).pipe((0, operators_1.shareReplay)(1)); + cache.set(name, info); + return info; + } + return (0, rxjs_1.from)(this._host.resolveBuilder(name)); + } + _createBuilder(info, target, options) { + const cache = this._jobCache; + if (target) { + const maybeHit = cache && cache.get((0, api_1.targetStringFromTarget)(target)); + if (maybeHit) { + return maybeHit; + } + } + else { + const maybeHit = cache && cache.get(info.builderName); + if (maybeHit) { + return maybeHit; + } + } + const result = _createJobHandlerFromBuilderInfo(info, target, this._host, this._registry, options || {}); + if (cache) { + if (target) { + cache.set((0, api_1.targetStringFromTarget)(target), result.pipe((0, operators_1.shareReplay)(1))); + } + else { + cache.set(info.builderName, result.pipe((0, operators_1.shareReplay)(1))); + } + } + return result; + } + get(name) { + const m = name.match(/^([^:]+):([^:]+)$/i); + if (!m) { + return (0, rxjs_1.of)(null); + } + return (0, rxjs_1.from)(this._resolveBuilder(name)).pipe((0, operators_1.concatMap)((builderInfo) => (builderInfo ? this._createBuilder(builderInfo) : (0, rxjs_1.of)(null))), (0, operators_1.first)(null, null)); + } +} +/** + * A JobRegistry that resolves targets from the host. + */ +class ArchitectTargetJobRegistry extends ArchitectBuilderJobRegistry { + get(name) { + const m = name.match(/^{([^:]+):([^:]+)(?::([^:]*))?}$/i); + if (!m) { + return (0, rxjs_1.of)(null); + } + const target = { + project: m[1], + target: m[2], + configuration: m[3], + }; + return (0, rxjs_1.from)(Promise.all([ + this._host.getBuilderNameForTarget(target), + this._host.getOptionsForTarget(target), + ])).pipe((0, operators_1.concatMap)(([builderStr, options]) => { + if (builderStr === null || options === null) { + return (0, rxjs_1.of)(null); + } + return this._resolveBuilder(builderStr).pipe((0, operators_1.concatMap)((builderInfo) => { + if (builderInfo === null) { + return (0, rxjs_1.of)(null); + } + return this._createBuilder(builderInfo, target, options); + })); + }), (0, operators_1.first)(null, null)); + } +} +function _getTargetOptionsFactory(host) { + return core_1.experimental.jobs.createJobHandler((target) => { + return host.getOptionsForTarget(target).then((options) => { + if (options === null) { + throw new Error(`Invalid target: ${JSON.stringify(target)}.`); + } + return options; + }); + }, { + name: '..getTargetOptions', + output: { type: 'object' }, + argument: inputSchema.properties.target, + }); +} +function _getProjectMetadataFactory(host) { + return core_1.experimental.jobs.createJobHandler((target) => { + return host.getProjectMetadata(target).then((options) => { + if (options === null) { + throw new Error(`Invalid target: ${JSON.stringify(target)}.`); + } + return options; + }); + }, { + name: '..getProjectMetadata', + output: { type: 'object' }, + argument: { + oneOf: [{ type: 'string' }, inputSchema.properties.target], + }, + }); +} +function _getBuilderNameForTargetFactory(host) { + return core_1.experimental.jobs.createJobHandler(async (target) => { + const builderName = await host.getBuilderNameForTarget(target); + if (!builderName) { + throw new Error(`No builder were found for target ${(0, api_1.targetStringFromTarget)(target)}.`); + } + return builderName; + }, { + name: '..getBuilderNameForTarget', + output: { type: 'string' }, + argument: inputSchema.properties.target, + }); +} +function _validateOptionsFactory(host, registry) { + return core_1.experimental.jobs.createJobHandler(async ([builderName, options]) => { + // Get option schema from the host. + const builderInfo = await host.resolveBuilder(builderName); + if (!builderInfo) { + throw new Error(`No builder info were found for builder ${JSON.stringify(builderName)}.`); + } + return registry + .compile(builderInfo.optionSchema) + .pipe((0, operators_1.concatMap)((validation) => validation(options)), (0, operators_1.switchMap)(({ data, success, errors }) => { + if (success) { + return (0, rxjs_1.of)(data); + } + throw new core_1.json.schema.SchemaValidationException(errors); + })) + .toPromise(); + }, { + name: '..validateOptions', + output: { type: 'object' }, + argument: { + type: 'array', + items: [{ type: 'string' }, { type: 'object' }], + }, + }); +} +class Architect { + constructor(_host, registry = new core_1.json.schema.CoreSchemaRegistry(), additionalJobRegistry) { + this._host = _host; + this._jobCache = new Map(); + this._infoCache = new Map(); + const privateArchitectJobRegistry = new core_1.experimental.jobs.SimpleJobRegistry(); + // Create private jobs. + privateArchitectJobRegistry.register(_getTargetOptionsFactory(_host)); + privateArchitectJobRegistry.register(_getBuilderNameForTargetFactory(_host)); + privateArchitectJobRegistry.register(_validateOptionsFactory(_host, registry)); + privateArchitectJobRegistry.register(_getProjectMetadataFactory(_host)); + const jobRegistry = new core_1.experimental.jobs.FallbackRegistry([ + new ArchitectTargetJobRegistry(_host, registry, this._jobCache, this._infoCache), + new ArchitectBuilderJobRegistry(_host, registry, this._jobCache, this._infoCache), + privateArchitectJobRegistry, + ...(additionalJobRegistry ? [additionalJobRegistry] : []), + ]); + this._scheduler = new core_1.experimental.jobs.SimpleScheduler(jobRegistry, registry); + } + has(name) { + return this._scheduler.has(name); + } + scheduleBuilder(name, options, scheduleOptions = {}) { + // The below will match 'project:target:configuration' + if (!/^[^:]+:[^:]+(:[^:]+)?$/.test(name)) { + throw new Error('Invalid builder name: ' + JSON.stringify(name)); + } + return (0, schedule_by_name_1.scheduleByName)(name, options, { + scheduler: this._scheduler, + logger: scheduleOptions.logger || new core_1.logging.NullLogger(), + currentDirectory: this._host.getCurrentDirectory(), + workspaceRoot: this._host.getWorkspaceRoot(), + analytics: scheduleOptions.analytics, + }); + } + scheduleTarget(target, overrides = {}, scheduleOptions = {}) { + return (0, schedule_by_name_1.scheduleByTarget)(target, overrides, { + scheduler: this._scheduler, + logger: scheduleOptions.logger || new core_1.logging.NullLogger(), + currentDirectory: this._host.getCurrentDirectory(), + workspaceRoot: this._host.getWorkspaceRoot(), + analytics: scheduleOptions.analytics, + }); + } +} +exports.Architect = Architect; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.d.ts new file mode 100644 index 00000000..b9c5b7e4 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.d.ts @@ -0,0 +1,30 @@ +export interface Schema { + /** + * Link to schema. + */ + $schema?: string; + builders: { + [key: string]: Builder; + }; +} +/** + * Target options for Builders. + */ +export interface Builder { + /** + * The builder class module. + */ + class?: string; + /** + * Builder description. + */ + description: string; + /** + * The next generation builder module. + */ + implementation?: string; + /** + * Schema for builder option validation. + */ + schema: string; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.js new file mode 100644 index 00000000..4fb6d3d1 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.js @@ -0,0 +1,4 @@ +"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 }); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.json new file mode 100644 index 00000000..c71ef86e --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/builders-schema.json @@ -0,0 +1,62 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "BuildersSchema", + "title": "Builders schema for validating a list of builders.", + "type": "object", + "properties": { + "$schema": { + "type": "string", + "description": "Link to schema." + }, + "builders": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/builder" + } + } + }, + "required": ["builders"], + "definitions": { + "builder": { + "type": "object", + "description": "Target options for Builders.", + "allOf": [ + { + "properties": { + "schema": { + "type": "string", + "description": "Schema for builder option validation." + }, + "description": { + "type": "string", + "description": "Builder description." + } + }, + "required": ["schema", "description"] + }, + { + "anyOf": [ + { + "properties": { + "implementation": { + "type": "string", + "description": "The next generation builder module." + } + }, + "required": ["implementation"] + }, + { + "properties": { + "class": { + "type": "string", + "description": "The builder class module." + } + }, + "required": ["class"] + } + ] + } + ] + } + } +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/create-builder.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/create-builder.d.ts new file mode 100644 index 00000000..99cf3494 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/create-builder.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 { json } from '@angular-devkit/core'; +import { BuilderHandlerFn, BuilderOutput } from './api'; +import { Builder } from './internal'; +export declare function createBuilder<OptT = json.JsonObject, OutT extends BuilderOutput = BuilderOutput>(fn: BuilderHandlerFn<OptT>): Builder<OptT & json.JsonObject>; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/create-builder.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/create-builder.js new file mode 100644 index 00000000..bcff4656 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/create-builder.js @@ -0,0 +1,200 @@ +"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.createBuilder = void 0; +const core_1 = require("@angular-devkit/core"); +const rxjs_1 = require("rxjs"); +const operators_1 = require("rxjs/operators"); +const api_1 = require("./api"); +const internal_1 = require("./internal"); +const schedule_by_name_1 = require("./schedule-by-name"); +// eslint-disable-next-line max-lines-per-function +function createBuilder(fn) { + const cjh = core_1.experimental.jobs.createJobHandler; + // eslint-disable-next-line max-lines-per-function + const handler = cjh((options, context) => { + const scheduler = context.scheduler; + const progressChannel = context.createChannel('progress'); + const logChannel = context.createChannel('log'); + const analyticsChannel = context.createChannel('analytics'); + let currentState = api_1.BuilderProgressState.Stopped; + const teardownLogics = []; + let tearingDown = false; + let current = 0; + let status = ''; + let total = 1; + function log(entry) { + logChannel.next(entry); + } + function progress(progress, context) { + currentState = progress.state; + if (progress.state === api_1.BuilderProgressState.Running) { + current = progress.current; + total = progress.total !== undefined ? progress.total : total; + if (progress.status === undefined) { + progress.status = status; + } + else { + status = progress.status; + } + } + progressChannel.next({ + ...progress, + ...(context.target && { target: context.target }), + ...(context.builder && { builder: context.builder }), + id: context.id, + }); + } + return new rxjs_1.Observable((observer) => { + const subscriptions = []; + const inputSubscription = context.inboundBus.subscribe((i) => { + switch (i.kind) { + case core_1.experimental.jobs.JobInboundMessageKind.Stop: + // Run teardown logic then complete. + tearingDown = true; + Promise.all(teardownLogics.map((fn) => fn() || Promise.resolve())).then(() => observer.complete(), (err) => observer.error(err)); + break; + case core_1.experimental.jobs.JobInboundMessageKind.Input: + if (!tearingDown) { + onInput(i.value); + } + break; + } + }); + function onInput(i) { + const builder = i.info; + const loggerName = i.target + ? (0, api_1.targetStringFromTarget)(i.target) + : builder.builderName; + const logger = new core_1.logging.Logger(loggerName); + subscriptions.push(logger.subscribe((entry) => log(entry))); + const context = { + builder, + workspaceRoot: i.workspaceRoot, + currentDirectory: i.currentDirectory, + target: i.target, + logger: logger, + id: i.id, + async scheduleTarget(target, overrides = {}, scheduleOptions = {}) { + const run = await (0, schedule_by_name_1.scheduleByTarget)(target, overrides, { + scheduler, + logger: scheduleOptions.logger || logger.createChild(''), + workspaceRoot: i.workspaceRoot, + currentDirectory: i.currentDirectory, + }); + // We don't want to subscribe errors and complete. + subscriptions.push(run.progress.subscribe((event) => progressChannel.next(event))); + return run; + }, + async scheduleBuilder(builderName, options = {}, scheduleOptions = {}) { + const run = await (0, schedule_by_name_1.scheduleByName)(builderName, options, { + scheduler, + target: scheduleOptions.target, + logger: scheduleOptions.logger || logger.createChild(''), + workspaceRoot: i.workspaceRoot, + currentDirectory: i.currentDirectory, + }); + // We don't want to subscribe errors and complete. + subscriptions.push(run.progress.subscribe((event) => progressChannel.next(event))); + return run; + }, + async getTargetOptions(target) { + return scheduler + .schedule('..getTargetOptions', target) + .output.toPromise(); + }, + async getProjectMetadata(target) { + return scheduler + .schedule('..getProjectMetadata', target) + .output.toPromise(); + }, + async getBuilderNameForTarget(target) { + return scheduler + .schedule('..getBuilderNameForTarget', target) + .output.toPromise(); + }, + async validateOptions(options, builderName) { + return scheduler + .schedule('..validateOptions', [ + builderName, + options, + ]) + .output.toPromise(); + }, + reportRunning() { + switch (currentState) { + case api_1.BuilderProgressState.Waiting: + case api_1.BuilderProgressState.Stopped: + progress({ state: api_1.BuilderProgressState.Running, current: 0, total }, context); + break; + } + }, + reportStatus(status) { + switch (currentState) { + case api_1.BuilderProgressState.Running: + progress({ state: currentState, status, current, total }, context); + break; + case api_1.BuilderProgressState.Waiting: + progress({ state: currentState, status }, context); + break; + } + }, + reportProgress(current, total, status) { + switch (currentState) { + case api_1.BuilderProgressState.Running: + progress({ state: currentState, current, total, status }, context); + } + }, + analytics: new core_1.analytics.ForwardingAnalytics((report) => analyticsChannel.next(report)), + addTeardown(teardown) { + teardownLogics.push(teardown); + }, + }; + context.reportRunning(); + let result; + try { + result = fn(i.options, context); + if ((0, api_1.isBuilderOutput)(result)) { + result = (0, rxjs_1.of)(result); + } + else if (!(0, rxjs_1.isObservable)(result) && isAsyncIterable(result)) { + result = (0, api_1.fromAsyncIterable)(result); + } + else { + result = (0, rxjs_1.from)(result); + } + } + catch (e) { + result = (0, rxjs_1.throwError)(e); + } + // Manage some state automatically. + progress({ state: api_1.BuilderProgressState.Running, current: 0, total: 1 }, context); + subscriptions.push(result + .pipe((0, operators_1.tap)(() => { + progress({ state: api_1.BuilderProgressState.Running, current: total }, context); + progress({ state: api_1.BuilderProgressState.Stopped }, context); + })) + .subscribe((message) => observer.next(message), (error) => observer.error(error), () => observer.complete())); + } + return () => { + subscriptions.forEach((x) => x.unsubscribe()); + inputSubscription.unsubscribe(); + }; + }); + }); + return { + handler, + [internal_1.BuilderSymbol]: true, + [internal_1.BuilderVersionSymbol]: require('../package.json').version, + }; +} +exports.createBuilder = createBuilder; +function isAsyncIterable(obj) { + return !!obj && typeof obj[Symbol.asyncIterator] === 'function'; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/index.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/index.d.ts new file mode 100644 index 00000000..dcfbb9d7 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/index.d.ts @@ -0,0 +1,10 @@ +/** + * @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 * from './api'; +export { Architect, ScheduleOptions } from './architect'; +export { createBuilder } from './create-builder'; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/index.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/index.js new file mode 100644 index 00000000..8dbdd392 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/index.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 + */ +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 __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createBuilder = exports.Architect = void 0; +__exportStar(require("./api"), exports); +var architect_1 = require("./architect"); +Object.defineProperty(exports, "Architect", { enumerable: true, get: function () { return architect_1.Architect; } }); +var create_builder_1 = require("./create-builder"); +Object.defineProperty(exports, "createBuilder", { enumerable: true, get: function () { return create_builder_1.createBuilder; } }); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.d.ts new file mode 100644 index 00000000..614d5ed1 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.d.ts @@ -0,0 +1,17 @@ +export interface Schema { + currentDirectory: string; + id: number; + info: { + [key: string]: any; + }; + options?: { + [key: string]: any; + }; + target?: Target; + workspaceRoot: string; +} +export interface Target { + configuration?: string; + project: string; + target: string; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.js new file mode 100644 index 00000000..4fb6d3d1 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.js @@ -0,0 +1,4 @@ +"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 }); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.json new file mode 100644 index 00000000..7559c096 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/input-schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "BuilderInputSchema", + "title": "Input schema for builders.", + "type": "object", + "properties": { + "workspaceRoot": { + "type": "string" + }, + "currentDirectory": { + "type": "string" + }, + "id": { + "type": "number" + }, + "target": { + "type": "object", + "properties": { + "project": { + "type": "string" + }, + "target": { + "type": "string" + }, + "configuration": { + "type": "string" + } + }, + "required": ["project", "target"] + }, + "info": { + "type": "object" + }, + "options": { + "type": "object" + } + }, + "required": ["currentDirectory", "id", "info", "workspaceRoot"] +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/internal.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/internal.d.ts new file mode 100644 index 00000000..c1364fa1 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/internal.d.ts @@ -0,0 +1,66 @@ +/** + * @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 { experimental, json } from '@angular-devkit/core'; +import { BuilderInfo, BuilderInput, BuilderOutput, Target } from './api'; +/** + * BuilderSymbol used for knowing if a function was created using createBuilder(). This is a + * property set on the function that should be `true`. + * Using Symbol.for() as it's a global registry that's the same for all installations of + * Architect (if some libraries depends directly on architect instead of sharing the files). + */ +export declare const BuilderSymbol: unique symbol; +/** + * BuilderVersionSymbol used for knowing which version of the library createBuilder() came from. + * This is to make sure we don't try to use an incompatible builder. + * Using Symbol.for() as it's a global registry that's the same for all installations of + * Architect (if some libraries depends directly on architect instead of sharing the files). + */ +export declare const BuilderVersionSymbol: unique symbol; +/** + * A Specialization of the JobHandler type. This exposes BuilderDescription as the job description + * type. + */ +export declare type BuilderJobHandler<A extends json.JsonObject = json.JsonObject, I extends BuilderInput = BuilderInput, O extends BuilderOutput = BuilderOutput> = experimental.jobs.JobHandler<A, I, O> & { + jobDescription: BuilderDescription; +}; +/** + * A Builder description, which is used internally. Adds the builder info which is the + * metadata attached to a builder in Architect. + */ +export interface BuilderDescription extends experimental.jobs.JobDescription { + info: BuilderInfo; +} +/** + * A Builder instance. Use createBuilder() to create one of these. + */ +export interface Builder<OptionT extends json.JsonObject = json.JsonObject> { + handler: experimental.jobs.JobHandler<json.JsonObject, BuilderInput, BuilderOutput>; + [BuilderSymbol]: true; + [BuilderVersionSymbol]: string; +} +export interface ArchitectHost<BuilderInfoT extends BuilderInfo = BuilderInfo> { + /** + * Get the builder name for a target. + * @param target The target to inspect. + */ + getBuilderNameForTarget(target: Target): Promise<string | null>; + /** + * Resolve a builder. This needs to return a string which will be used in a dynamic `import()` + * clause. This should throw if no builder can be found. The dynamic import will throw if + * it is unsupported. + * @param builderName The name of the builder to be used. + * @returns All the info needed for the builder itself. + */ + resolveBuilder(builderName: string): Promise<BuilderInfoT | null>; + loadBuilder(info: BuilderInfoT): Promise<Builder | null>; + getCurrentDirectory(): Promise<string>; + getWorkspaceRoot(): Promise<string>; + getOptionsForTarget(target: Target): Promise<json.JsonObject | null>; + getProjectMetadata(projectName: string): Promise<json.JsonObject | null>; + getProjectMetadata(target: Target): Promise<json.JsonObject | null>; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/internal.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/internal.js new file mode 100644 index 00000000..f74de953 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/internal.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.BuilderVersionSymbol = exports.BuilderSymbol = void 0; +// Internal types that should not be exported directly. These are used by the host and architect +// itself. Host implementations should import the host.ts file. +/** + * BuilderSymbol used for knowing if a function was created using createBuilder(). This is a + * property set on the function that should be `true`. + * Using Symbol.for() as it's a global registry that's the same for all installations of + * Architect (if some libraries depends directly on architect instead of sharing the files). + */ +exports.BuilderSymbol = Symbol.for('@angular-devkit/architect:builder'); +/** + * BuilderVersionSymbol used for knowing which version of the library createBuilder() came from. + * This is to make sure we don't try to use an incompatible builder. + * Using Symbol.for() as it's a global registry that's the same for all installations of + * Architect (if some libraries depends directly on architect instead of sharing the files). + */ +exports.BuilderVersionSymbol = Symbol.for('@angular-devkit/architect:version'); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.d.ts new file mode 100644 index 00000000..f7431bf8 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.d.ts @@ -0,0 +1,13 @@ +export interface Schema { + error?: string; + info?: { + [key: string]: any; + }; + success: boolean; + target?: Target; +} +export interface Target { + configuration?: string; + project?: string; + target?: string; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.js new file mode 100644 index 00000000..4fb6d3d1 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.js @@ -0,0 +1,4 @@ +"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 }); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.json new file mode 100644 index 00000000..5539068e --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/output-schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "BuilderOutputSchema", + "title": "Output schema for builders.", + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "error": { + "type": "string" + }, + "target": { + "type": "object", + "properties": { + "project": { + "type": "string" + }, + "target": { + "type": "string" + }, + "configuration": { + "type": "string" + } + } + }, + "info": { + "type": "object" + } + }, + "additionalProperties": true, + "required": ["success"] +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.d.ts new file mode 100644 index 00000000..331c42be --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.d.ts @@ -0,0 +1,20 @@ +export interface Schema { + builder: { + [key: string]: any; + }; + current?: number; + error?: any; + id: number; + state: State; + status?: string; + target?: { + [key: string]: any; + }; + total?: number; +} +export declare enum State { + Error = "error", + Running = "running", + Stopped = "stopped", + Waiting = "waiting" +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.js new file mode 100644 index 00000000..e900879e --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.js @@ -0,0 +1,12 @@ +"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.State = void 0; +var State; +(function (State) { + State["Error"] = "error"; + State["Running"] = "running"; + State["Stopped"] = "stopped"; + State["Waiting"] = "waiting"; +})(State = exports.State || (exports.State = {})); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.json new file mode 100644 index 00000000..e782f4ad --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/progress-schema.json @@ -0,0 +1,83 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "BuilderProgressSchema", + "title": "Progress schema for builders.", + "type": "object", + "allOf": [ + { + "type": "object", + "oneOf": [ + { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": ["stopped"] + } + }, + "required": ["state"] + }, + { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": ["waiting"] + }, + "status": { + "type": "string" + } + }, + "required": ["state"] + }, + { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": ["running"] + }, + "current": { + "type": "number", + "minimum": 0 + }, + "total": { + "type": "number", + "minimum": 0 + }, + "status": { + "type": "string" + } + }, + "required": ["state"] + }, + { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": ["error"] + }, + "error": true + }, + "required": ["state"] + } + ] + }, + { + "type": "object", + "properties": { + "builder": { + "type": "object" + }, + "target": { + "type": "object" + }, + "id": { + "type": "number" + } + }, + "required": ["builder", "id"] + } + ] +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/schedule-by-name.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/schedule-by-name.d.ts new file mode 100644 index 00000000..d62ba678 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/schedule-by-name.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, experimental, json, logging } from '@angular-devkit/core'; +import { BuilderRun, Target } from './api'; +export declare function scheduleByName(name: string, buildOptions: json.JsonObject, options: { + target?: Target; + scheduler: experimental.jobs.Scheduler; + logger: logging.LoggerApi; + workspaceRoot: string | Promise<string>; + currentDirectory: string | Promise<string>; + analytics?: analytics.Analytics; +}): Promise<BuilderRun>; +export declare function scheduleByTarget(target: Target, overrides: json.JsonObject, options: { + scheduler: experimental.jobs.Scheduler; + logger: logging.LoggerApi; + workspaceRoot: string | Promise<string>; + currentDirectory: string | Promise<string>; + analytics?: analytics.Analytics; +}): Promise<BuilderRun>; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/schedule-by-name.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/schedule-by-name.js new file mode 100644 index 00000000..b3dbac77 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/schedule-by-name.js @@ -0,0 +1,102 @@ +"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.scheduleByTarget = exports.scheduleByName = void 0; +const core_1 = require("@angular-devkit/core"); +const rxjs_1 = require("rxjs"); +const operators_1 = require("rxjs/operators"); +const api_1 = require("./api"); +const progressSchema = require('./progress-schema.json'); +let _uniqueId = 0; +async function scheduleByName(name, buildOptions, options) { + const childLoggerName = options.target ? `{${(0, api_1.targetStringFromTarget)(options.target)}}` : name; + const logger = options.logger.createChild(childLoggerName); + const job = options.scheduler.schedule(name, {}); + let stateSubscription; + const workspaceRoot = await options.workspaceRoot; + const currentDirectory = await options.currentDirectory; + const description = await job.description.toPromise(); + const info = description.info; + const id = ++_uniqueId; + const message = { + id, + currentDirectory, + workspaceRoot, + info: info, + options: buildOptions, + ...(options.target ? { target: options.target } : {}), + }; + // Wait for the job to be ready. + if (job.state !== core_1.experimental.jobs.JobState.Started) { + stateSubscription = job.outboundBus.subscribe((event) => { + if (event.kind === core_1.experimental.jobs.JobOutboundMessageKind.Start) { + job.input.next(message); + } + }, () => { }); + } + else { + job.input.next(message); + } + const logChannelSub = job.getChannel('log').subscribe((entry) => { + logger.next(entry); + }, () => { }); + const s = job.outboundBus.subscribe({ + error() { }, + complete() { + s.unsubscribe(); + logChannelSub.unsubscribe(); + if (stateSubscription) { + stateSubscription.unsubscribe(); + } + }, + }); + const output = job.output.pipe((0, operators_1.map)((output) => ({ + ...output, + ...(options.target ? { target: options.target } : 0), + info, + })), (0, operators_1.shareReplay)()); + // If there's an analytics object, take the job channel and report it to the analytics. + if (options.analytics) { + const reporter = new core_1.analytics.AnalyticsReporter(options.analytics); + job + .getChannel('analytics') + .subscribe((report) => reporter.report(report)); + } + // Start the builder. + output.pipe((0, operators_1.first)()).subscribe({ + error() { }, + }); + return { + id, + info, + // This is a getter so that it always returns the next output, and not the same one. + get result() { + return output.pipe((0, operators_1.first)()).toPromise(); + }, + output, + progress: job + .getChannel('progress', progressSchema) + .pipe((0, operators_1.shareReplay)(1)), + stop() { + job.stop(); + return job.outboundBus + .pipe((0, operators_1.ignoreElements)(), (0, operators_1.catchError)(() => rxjs_1.EMPTY)) + .toPromise(); + }, + }; +} +exports.scheduleByName = scheduleByName; +async function scheduleByTarget(target, overrides, options) { + return scheduleByName(`{${(0, api_1.targetStringFromTarget)(target)}}`, overrides, { + ...options, + target, + logger: options.logger, + }); +} +exports.scheduleByTarget = scheduleByTarget; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/targets-schema.json b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/targets-schema.json new file mode 100644 index 00000000..912c20ff --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/src/targets-schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "ArchitectTargets", + "title": "Targets schema for validating Architect targets configuration.", + "type": "object", + "description": "A map of available project targets.", + "additionalProperties": { + "$ref": "#/definitions/target" + }, + "required": [], + "definitions": { + "target": { + "type": "object", + "description": "Target options.", + "properties": { + "builder": { + "type": "string", + "description": "The builder used for this package." + }, + "options": { + "$ref": "#/definitions/options" + }, + "configurations": { + "type": "object", + "description": "A map of alternative target options.", + "additionalProperties": { + "$ref": "#/definitions/options" + } + } + }, + "additionalProperties": false, + "required": ["builder", "options"] + }, + "options": { + "type": "object", + "description": "Target options." + } + } +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/BUILD.bazel b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/BUILD.bazel new file mode 100644 index 00000000..1b8dfa63 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/BUILD.bazel @@ -0,0 +1,27 @@ +# Copyright Google Inc. 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 + +load("//tools:defaults.bzl", "ts_library") + +licenses(["notice"]) # MIT + +package(default_visibility = ["//visibility:public"]) + +ts_library( + name = "testing", + srcs = glob( + include = ["**/*.ts"], + exclude = ["**/*_spec.ts"], + ), + module_name = "@angular-devkit/architect/testing", + module_root = "index.d.ts", + deps = [ + "//packages/angular_devkit/architect", + "//packages/angular_devkit/core", + "//packages/angular_devkit/core/node", + "@npm//@types/node", + "@npm//rxjs", + ], +) diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/index.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/index.d.ts new file mode 100644 index 00000000..12e628b9 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/index.d.ts @@ -0,0 +1,9 @@ +/** + * @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 * from './testing-architect-host'; +export * from './test-project-host'; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/index.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/index.js new file mode 100644 index 00000000..6f1f976a --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/index.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 + */ +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 __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./testing-architect-host"), exports); +__exportStar(require("./test-project-host"), exports); diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/test-project-host.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/test-project-host.d.ts new file mode 100644 index 00000000..240029a7 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/test-project-host.d.ts @@ -0,0 +1,33 @@ +/** + * @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 + */ +/// <reference types="node" /> +import { Path, PathFragment, virtualFs } from '@angular-devkit/core'; +import { NodeJsSyncHost } from '@angular-devkit/core/node'; +import { Stats } from 'fs'; +import { Observable } from 'rxjs'; +/** + * @deprecated + */ +export declare class TestProjectHost extends NodeJsSyncHost { + protected _templateRoot: Path; + private _currentRoot; + private _scopedSyncHost; + constructor(_templateRoot: Path); + root(): Path; + scopedSync(): virtualFs.SyncDelegateHost<Stats>; + initialize(): Observable<void>; + restore(): Observable<void>; + writeMultipleFiles(files: { + [path: string]: string | ArrayBufferLike | Buffer; + }): void; + replaceInFile(path: string, match: RegExp | string, replacement: string): void; + appendToFile(path: string, str: string): void; + fileMatchExists(dir: string, regex: RegExp): PathFragment | undefined; + copyFile(from: string, to: string): void; + private findUniqueFolderPath; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/test-project-host.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/test-project-host.js new file mode 100644 index 00000000..f110997a --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/test-project-host.js @@ -0,0 +1,109 @@ +"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.TestProjectHost = void 0; +const core_1 = require("@angular-devkit/core"); +const node_1 = require("@angular-devkit/core/node"); +const rxjs_1 = require("rxjs"); +const operators_1 = require("rxjs/operators"); +/** + * @deprecated + */ +class TestProjectHost extends node_1.NodeJsSyncHost { + constructor(_templateRoot) { + super(); + this._templateRoot = _templateRoot; + this._currentRoot = null; + this._scopedSyncHost = null; + } + root() { + if (this._currentRoot === null) { + throw new Error('TestProjectHost must be initialized before being used.'); + } + return this._currentRoot; + } + scopedSync() { + if (this._currentRoot === null || this._scopedSyncHost === null) { + throw new Error('TestProjectHost must be initialized before being used.'); + } + return this._scopedSyncHost; + } + initialize() { + const recursiveList = (path) => this.list(path).pipe( + // Emit each fragment individually. + (0, operators_1.concatMap)((fragments) => (0, rxjs_1.from)(fragments)), + // Join the path with fragment. + (0, operators_1.map)((fragment) => (0, core_1.join)(path, fragment)), + // Emit directory content paths instead of the directory path. + (0, operators_1.mergeMap)((path) => this.isDirectory(path).pipe((0, operators_1.concatMap)((isDir) => (isDir ? recursiveList(path) : (0, rxjs_1.of)(path)))))); + // Find a unique folder that we can write to to use as current root. + return this.findUniqueFolderPath().pipe( + // Save the path and create a scoped host for it. + (0, operators_1.tap)((newFolderPath) => { + this._currentRoot = newFolderPath; + this._scopedSyncHost = new core_1.virtualFs.SyncDelegateHost(new core_1.virtualFs.ScopedHost(this, this.root())); + }), + // List all files in root. + (0, operators_1.concatMap)(() => recursiveList(this._templateRoot)), + // Copy them over to the current root. + (0, operators_1.concatMap)((from) => { + const to = (0, core_1.join)(this.root(), (0, core_1.relative)(this._templateRoot, from)); + return this.read(from).pipe((0, operators_1.concatMap)((buffer) => this.write(to, buffer))); + }), (0, operators_1.map)(() => { })); + } + restore() { + if (this._currentRoot === null) { + return rxjs_1.EMPTY; + } + // Delete the current root and clear the variables. + // Wait 50ms and retry up to 10 times, to give time for file locks to clear. + return this.exists(this.root()).pipe((0, operators_1.delay)(50), (0, operators_1.concatMap)((exists) => (exists ? this.delete(this.root()) : rxjs_1.EMPTY)), (0, operators_1.retry)(10), (0, operators_1.finalize)(() => { + this._currentRoot = null; + this._scopedSyncHost = null; + })); + } + writeMultipleFiles(files) { + Object.keys(files).forEach((fileName) => { + let content = files[fileName]; + if (typeof content == 'string') { + content = core_1.virtualFs.stringToFileBuffer(content); + } + else if (content instanceof Buffer) { + content = content.buffer.slice(content.byteOffset, content.byteOffset + content.byteLength); + } + this.scopedSync().write((0, core_1.normalize)(fileName), content); + }); + } + replaceInFile(path, match, replacement) { + const content = core_1.virtualFs.fileBufferToString(this.scopedSync().read((0, core_1.normalize)(path))); + this.scopedSync().write((0, core_1.normalize)(path), core_1.virtualFs.stringToFileBuffer(content.replace(match, replacement))); + } + appendToFile(path, str) { + const content = core_1.virtualFs.fileBufferToString(this.scopedSync().read((0, core_1.normalize)(path))); + this.scopedSync().write((0, core_1.normalize)(path), core_1.virtualFs.stringToFileBuffer(content.concat(str))); + } + fileMatchExists(dir, regex) { + const [fileName] = this.scopedSync() + .list((0, core_1.normalize)(dir)) + .filter((name) => name.match(regex)); + return fileName || undefined; + } + copyFile(from, to) { + const content = this.scopedSync().read((0, core_1.normalize)(from)); + this.scopedSync().write((0, core_1.normalize)(to), content); + } + findUniqueFolderPath() { + // 11 character alphanumeric string. + const randomString = Math.random().toString(36).slice(2); + const newFolderName = `test-project-host-${(0, core_1.basename)(this._templateRoot)}-${randomString}`; + const newFolderPath = (0, core_1.join)((0, core_1.dirname)(this._templateRoot), newFolderName); + return this.exists(newFolderPath).pipe((0, operators_1.concatMap)((exists) => (exists ? this.findUniqueFolderPath() : (0, rxjs_1.of)(newFolderPath)))); + } +} +exports.TestProjectHost = TestProjectHost; diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/testing-architect-host.d.ts b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/testing-architect-host.d.ts new file mode 100644 index 00000000..8c0154c5 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/testing-architect-host.d.ts @@ -0,0 +1,42 @@ +/** + * @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 } from '@angular-devkit/core'; +import { BuilderInfo, Target } from '../src'; +import { ArchitectHost, Builder } from '../src/internal'; +export declare class TestingArchitectHost implements ArchitectHost { + workspaceRoot: string; + currentDirectory: string; + private _backendHost; + private _builderImportMap; + private _builderMap; + private _targetMap; + /** + * Can provide a backend host, in case of integration tests. + * @param workspaceRoot The workspace root to use. + * @param currentDirectory The current directory to use. + * @param _backendHost A host to defer calls that aren't resolved here. + */ + constructor(workspaceRoot?: string, currentDirectory?: string, _backendHost?: ArchitectHost | null); + addBuilder(builderName: string, builder: Builder, description?: string, optionSchema?: json.schema.JsonSchema): void; + addBuilderFromPackage(packageName: string): Promise<void>; + addTarget(target: Target, builderName: string, options?: json.JsonObject): void; + getBuilderNameForTarget(target: Target): Promise<string | null>; + /** + * Resolve a builder. This needs to return a string which will be used in a dynamic `import()` + * clause. This should throw if no builder can be found. The dynamic import will throw if + * it is unsupported. + * @param builderName The name of the builder to be used. + * @returns All the info needed for the builder itself. + */ + resolveBuilder(builderName: string): Promise<BuilderInfo | null>; + getCurrentDirectory(): Promise<string>; + getWorkspaceRoot(): Promise<string>; + getOptionsForTarget(target: Target): Promise<json.JsonObject | null>; + getProjectMetadata(target: Target | string): Promise<json.JsonObject | null>; + loadBuilder(info: BuilderInfo): Promise<Builder | null>; +} diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/testing-architect-host.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/testing-architect-host.js new file mode 100644 index 00000000..025fa37a --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/architect/testing/testing-architect-host.js @@ -0,0 +1,119 @@ +"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.TestingArchitectHost = void 0; +const src_1 = require("../src"); +class TestingArchitectHost { + /** + * Can provide a backend host, in case of integration tests. + * @param workspaceRoot The workspace root to use. + * @param currentDirectory The current directory to use. + * @param _backendHost A host to defer calls that aren't resolved here. + */ + constructor(workspaceRoot = '', currentDirectory = workspaceRoot, _backendHost = null) { + this.workspaceRoot = workspaceRoot; + this.currentDirectory = currentDirectory; + this._backendHost = _backendHost; + this._builderImportMap = new Map(); + this._builderMap = new Map(); + this._targetMap = new Map(); + } + addBuilder(builderName, builder, description = 'Testing only builder.', optionSchema = { type: 'object' }) { + this._builderImportMap.set(builderName, builder); + this._builderMap.set(builderName, { builderName, description, optionSchema }); + } + async addBuilderFromPackage(packageName) { + const packageJson = await Promise.resolve().then(() => __importStar(require(packageName + '/package.json'))); + if (!('builders' in packageJson)) { + throw new Error('Invalid package.json, builders key not found.'); + } + if (!packageJson.name) { + throw new Error('Invalid package name'); + } + const builderJsonPath = packageName + '/' + packageJson['builders']; + const builderJson = await Promise.resolve().then(() => __importStar(require(builderJsonPath))); + const builders = builderJson['builders']; + if (!builders) { + throw new Error('Invalid builders.json, builders key not found.'); + } + for (const builderName of Object.keys(builders)) { + const b = builders[builderName]; + // TODO: remove this check as v1 is not supported anymore. + if (!b.implementation) { + continue; + } + const handler = (await Promise.resolve().then(() => __importStar(require(builderJsonPath + '/../' + b.implementation)))).default; + const optionsSchema = await Promise.resolve().then(() => __importStar(require(builderJsonPath + '/../' + b.schema))); + this.addBuilder(`${packageJson.name}:${builderName}`, handler, b.description, optionsSchema); + } + } + addTarget(target, builderName, options = {}) { + this._targetMap.set((0, src_1.targetStringFromTarget)(target), { builderName, options }); + } + async getBuilderNameForTarget(target) { + const name = (0, src_1.targetStringFromTarget)(target); + const maybeTarget = this._targetMap.get(name); + if (!maybeTarget) { + return this._backendHost && this._backendHost.getBuilderNameForTarget(target); + } + return maybeTarget.builderName; + } + /** + * Resolve a builder. This needs to return a string which will be used in a dynamic `import()` + * clause. This should throw if no builder can be found. The dynamic import will throw if + * it is unsupported. + * @param builderName The name of the builder to be used. + * @returns All the info needed for the builder itself. + */ + async resolveBuilder(builderName) { + return (this._builderMap.get(builderName) || + (this._backendHost && this._backendHost.resolveBuilder(builderName))); + } + async getCurrentDirectory() { + return this.currentDirectory; + } + async getWorkspaceRoot() { + return this.workspaceRoot; + } + async getOptionsForTarget(target) { + const name = (0, src_1.targetStringFromTarget)(target); + const maybeTarget = this._targetMap.get(name); + if (!maybeTarget) { + return this._backendHost && this._backendHost.getOptionsForTarget(target); + } + return maybeTarget.options; + } + async getProjectMetadata(target) { + return this._backendHost && this._backendHost.getProjectMetadata(target); + } + async loadBuilder(info) { + return (this._builderImportMap.get(info.builderName) || + (this._backendHost && this._backendHost.loadBuilder(info))); + } +} +exports.TestingArchitectHost = TestingArchitectHost; |