@ngx-formbar/setup 2.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ## 2.0.0-next.0 (2026-03-30)
2
+
3
+ This was a version bump only for @ngx-formbar/setup to align it with other projects, there were no code changes.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @ngx-formbar/setup
2
+
3
+ See the full documentation at [docs.ngx-formbar.net](https://docs.ngx-formbar.net).
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@ngx-formbar/setup",
3
+ "version": "2.0.0-next.0",
4
+ "type": "commonjs",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "dependencies": {
8
+ "tslib": "^2.3.0"
9
+ },
10
+ "peerDependencies": {
11
+ "@angular-devkit/core": ">=19.2.0 <22.0.0",
12
+ "@angular-devkit/schematics": ">=19.2.0 <22.0.0",
13
+ "@schematics/angular": ">=19.2.0 <22.0.0",
14
+ "typescript": ">=5.4.0"
15
+ },
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "license": "MIT",
20
+ "author": {
21
+ "name": "Alexander Pahn",
22
+ "email": "alexander.pahn@proton.me"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/TheNordicOne/ngx-formbar.git"
27
+ },
28
+ "bugs": {
29
+ "url": "https://github.com/TheNordicOne/ngx-formbar/issues"
30
+ }
31
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ export * from './lib/ast';
2
+ export * from './lib/ast/imports';
3
+ export * from './lib/ast/decorators';
4
+ export * from './lib/ast/parse';
5
+ export * from './lib/ast/registrations';
6
+ export * from './lib/ast/types';
7
+ export * from './lib/constants';
8
+ export * from './lib/file';
9
+ export * from './lib/helper';
10
+ export * from './lib/shared-config.type';
package/src/index.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib/ast"), exports);
5
+ tslib_1.__exportStar(require("./lib/ast/imports"), exports);
6
+ tslib_1.__exportStar(require("./lib/ast/decorators"), exports);
7
+ tslib_1.__exportStar(require("./lib/ast/parse"), exports);
8
+ tslib_1.__exportStar(require("./lib/ast/registrations"), exports);
9
+ tslib_1.__exportStar(require("./lib/ast/types"), exports);
10
+ tslib_1.__exportStar(require("./lib/constants"), exports);
11
+ tslib_1.__exportStar(require("./lib/file"), exports);
12
+ tslib_1.__exportStar(require("./lib/helper"), exports);
13
+ tslib_1.__exportStar(require("./lib/shared-config.type"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/setup/src/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,4DAAkC;AAClC,+DAAqC;AACrC,0DAAgC;AAChC,kEAAwC;AACxC,0DAAgC;AAChC,0DAAgC;AAChC,qDAA2B;AAC3B,uDAA6B;AAC7B,mEAAyC"}
@@ -0,0 +1,9 @@
1
+ import { Expression, ObjectLiteralExpression, SourceFile } from 'typescript';
2
+ export declare function isCallee(expr: Expression, callee: string): boolean;
3
+ export declare function getDecoratorObject(sf: SourceFile, decoratorName: string): ObjectLiteralExpression | undefined;
4
+ export declare function decoratorPropInitializerIsIdentifier(sf: SourceFile, decoratorName: string, propName: string, identifierName: string): boolean;
5
+ export declare function getDecoratorArrayProp(sf: SourceFile, decoratorName: string, propName: string): import("typescript").ArrayLiteralExpression | undefined;
6
+ export declare function decoratorArrayPropContainsIdentifier(sf: SourceFile, decoratorName: string, propName: string, identifierName: string): boolean;
7
+ export declare function decoratorArrayPropContainsProviderObject(sf: SourceFile, decoratorName: string, propName: string, tokenName: string): boolean;
8
+ export declare function decoratorHostDirectivesHasInlineDirectiveWithInputs(sf: SourceFile, directiveIdentifier?: string, expectedInputs?: string[]): boolean;
9
+ export declare function componentSelectorEquals(sf: SourceFile, expected: string): boolean;
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isCallee = isCallee;
4
+ exports.getDecoratorObject = getDecoratorObject;
5
+ exports.decoratorPropInitializerIsIdentifier = decoratorPropInitializerIsIdentifier;
6
+ exports.getDecoratorArrayProp = getDecoratorArrayProp;
7
+ exports.decoratorArrayPropContainsIdentifier = decoratorArrayPropContainsIdentifier;
8
+ exports.decoratorArrayPropContainsProviderObject = decoratorArrayPropContainsProviderObject;
9
+ exports.decoratorHostDirectivesHasInlineDirectiveWithInputs = decoratorHostDirectivesHasInlineDirectiveWithInputs;
10
+ exports.componentSelectorEquals = componentSelectorEquals;
11
+ const typescript_1 = require("typescript");
12
+ function isCallee(expr, callee) {
13
+ if ((0, typescript_1.isIdentifier)(expr)) {
14
+ return expr.text === callee;
15
+ }
16
+ if ((0, typescript_1.isPropertyAccessExpression)(expr)) {
17
+ return expr.name.text === callee;
18
+ }
19
+ return false;
20
+ }
21
+ function getDecoratorObject(sf, decoratorName) {
22
+ let found;
23
+ const visit = (node) => {
24
+ if (found) {
25
+ return;
26
+ }
27
+ if ((0, typescript_1.isCallExpression)(node) &&
28
+ isCallee(node.expression, decoratorName) &&
29
+ node.arguments.length > 0) {
30
+ const [firstArg] = node.arguments;
31
+ if ((0, typescript_1.isObjectLiteralExpression)(firstArg)) {
32
+ found = firstArg;
33
+ return;
34
+ }
35
+ }
36
+ node.forEachChild(visit);
37
+ };
38
+ sf.forEachChild(visit);
39
+ return found;
40
+ }
41
+ function decoratorPropInitializerIsIdentifier(sf, decoratorName, propName, identifierName) {
42
+ const obj = getDecoratorObject(sf, decoratorName);
43
+ if (!obj) {
44
+ return false;
45
+ }
46
+ const prop = obj.properties.find((p) => {
47
+ if (!(0, typescript_1.isPropertyAssignment)(p)) {
48
+ return false;
49
+ }
50
+ const n = p.name;
51
+ return (((0, typescript_1.isIdentifier)(n) && n.text === propName) ||
52
+ ((0, typescript_1.isStringLiteral)(n) && n.text === propName));
53
+ });
54
+ if (!prop || !(0, typescript_1.isPropertyAssignment)(prop)) {
55
+ return false;
56
+ }
57
+ return ((0, typescript_1.isIdentifier)(prop.initializer) && prop.initializer.text === identifierName);
58
+ }
59
+ function getDecoratorArrayProp(sf, decoratorName, propName) {
60
+ const obj = getDecoratorObject(sf, decoratorName);
61
+ if (!obj) {
62
+ return undefined;
63
+ }
64
+ const prop = obj.properties.find((p) => {
65
+ if (!(0, typescript_1.isPropertyAssignment)(p)) {
66
+ return false;
67
+ }
68
+ const n = p.name;
69
+ return (((0, typescript_1.isIdentifier)(n) && n.text === propName) ||
70
+ ((0, typescript_1.isStringLiteral)(n) && n.text === propName));
71
+ });
72
+ if (!prop || !(0, typescript_1.isPropertyAssignment)(prop)) {
73
+ return undefined;
74
+ }
75
+ return (0, typescript_1.isArrayLiteralExpression)(prop.initializer)
76
+ ? prop.initializer
77
+ : undefined;
78
+ }
79
+ function decoratorArrayPropContainsIdentifier(sf, decoratorName, propName, identifierName) {
80
+ const arr = getDecoratorArrayProp(sf, decoratorName, propName);
81
+ if (!arr) {
82
+ return false;
83
+ }
84
+ return arr.elements.some((el) => {
85
+ if (!(0, typescript_1.isIdentifier)(el)) {
86
+ return false;
87
+ }
88
+ return el.text === identifierName;
89
+ });
90
+ }
91
+ function decoratorArrayPropContainsProviderObject(sf, decoratorName, propName, tokenName) {
92
+ const arr = getDecoratorArrayProp(sf, decoratorName, propName);
93
+ if (!arr) {
94
+ return false;
95
+ }
96
+ return arr.elements.some((el) => {
97
+ if (!(0, typescript_1.isObjectLiteralExpression)(el)) {
98
+ return false;
99
+ }
100
+ const provideProp = el.properties.find((p) => {
101
+ if (!(0, typescript_1.isPropertyAssignment)(p)) {
102
+ return false;
103
+ }
104
+ const n = p.name;
105
+ const isProvide = ((0, typescript_1.isIdentifier)(n) && n.text === 'provide') ||
106
+ ((0, typescript_1.isStringLiteral)(n) && n.text === 'provide');
107
+ if (!isProvide) {
108
+ return false;
109
+ }
110
+ return (0, typescript_1.isIdentifier)(p.initializer) && p.initializer.text === tokenName;
111
+ });
112
+ return !!provideProp;
113
+ });
114
+ }
115
+ function decoratorHostDirectivesHasInlineDirectiveWithInputs(sf, directiveIdentifier = 'NgxfbControlDirective', expectedInputs = ['content', 'name']) {
116
+ const arr = getDecoratorArrayProp(sf, 'Component', 'hostDirectives');
117
+ if (!arr) {
118
+ return false;
119
+ }
120
+ return arr.elements.some((el) => {
121
+ if (!(0, typescript_1.isObjectLiteralExpression)(el)) {
122
+ return false;
123
+ }
124
+ const directiveProp = el.properties.find((p) => {
125
+ if (!(0, typescript_1.isPropertyAssignment)(p)) {
126
+ return false;
127
+ }
128
+ const n = p.name;
129
+ const isDirectiveKey = ((0, typescript_1.isIdentifier)(n) && n.text === 'directive') ||
130
+ ((0, typescript_1.isStringLiteral)(n) && n.text === 'directive');
131
+ if (!isDirectiveKey) {
132
+ return false;
133
+ }
134
+ return ((0, typescript_1.isIdentifier)(p.initializer) &&
135
+ p.initializer.text === directiveIdentifier);
136
+ });
137
+ if (!directiveProp) {
138
+ return false;
139
+ }
140
+ const inputsProp = el.properties.find((p) => {
141
+ if (!(0, typescript_1.isPropertyAssignment)(p)) {
142
+ return false;
143
+ }
144
+ const n = p.name;
145
+ const isInputsKey = ((0, typescript_1.isIdentifier)(n) && n.text === 'inputs') ||
146
+ ((0, typescript_1.isStringLiteral)(n) && n.text === 'inputs');
147
+ if (!isInputsKey) {
148
+ return false;
149
+ }
150
+ const init = p.initializer;
151
+ if (!(0, typescript_1.isArrayLiteralExpression)(init)) {
152
+ return false;
153
+ }
154
+ const values = init.elements.filter(typescript_1.isStringLiteral).map((s) => s.text);
155
+ return expectedInputs.every((i) => values.includes(i));
156
+ });
157
+ return !!inputsProp;
158
+ });
159
+ }
160
+ function componentSelectorEquals(sf, expected) {
161
+ const obj = getDecoratorObject(sf, 'Component');
162
+ if (!obj) {
163
+ return false;
164
+ }
165
+ const prop = obj.properties.find((p) => {
166
+ if (!(0, typescript_1.isPropertyAssignment)(p)) {
167
+ return false;
168
+ }
169
+ const n = p.name;
170
+ return (((0, typescript_1.isIdentifier)(n) && n.text === 'selector') ||
171
+ ((0, typescript_1.isStringLiteral)(n) && n.text === 'selector'));
172
+ });
173
+ if (!prop || !(0, typescript_1.isPropertyAssignment)(prop)) {
174
+ return false;
175
+ }
176
+ const init = prop.initializer;
177
+ if (!(0, typescript_1.isStringLiteral)(init)) {
178
+ return false;
179
+ }
180
+ return init.text === expected;
181
+ }
182
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../../libs/setup/src/lib/ast/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SourceFile } from 'typescript';
2
+ export declare function hasNamedImport(sf: SourceFile, moduleName: string, imported: string): boolean;
3
+ export declare function importForSymbolUsesCorrectRelativePath(sf: SourceFile, fromFilePath: string, symbolName: string, targetFilePath: string): boolean;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasNamedImport = hasNamedImport;
4
+ exports.importForSymbolUsesCorrectRelativePath = importForSymbolUsesCorrectRelativePath;
5
+ const typescript_1 = require("typescript");
6
+ const core_1 = require("@angular-devkit/core");
7
+ const find_module_1 = require("@schematics/angular/utility/find-module");
8
+ function hasNamedImport(sf, moduleName, imported) {
9
+ let found = false;
10
+ if (moduleName.endsWith('.ts')) {
11
+ moduleName = moduleName.split('.ts')[0];
12
+ }
13
+ sf.forEachChild((n) => {
14
+ var _a;
15
+ if (found) {
16
+ return;
17
+ }
18
+ if (!(0, typescript_1.isImportDeclaration)(n)) {
19
+ return;
20
+ }
21
+ const mod = n.moduleSpecifier;
22
+ if (!(0, typescript_1.isStringLiteral)(mod) || mod.text !== moduleName) {
23
+ return;
24
+ }
25
+ const named = (_a = n.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
26
+ if (!named || !(0, typescript_1.isNamedImports)(named)) {
27
+ return;
28
+ }
29
+ found = named.elements.some((el) => el.name.text === imported);
30
+ });
31
+ return found;
32
+ }
33
+ function importForSymbolUsesCorrectRelativePath(sf, fromFilePath, symbolName, targetFilePath) {
34
+ const fromPath = fromFilePath.startsWith('/')
35
+ ? fromFilePath
36
+ : `/${fromFilePath}`;
37
+ const toPath = targetFilePath.startsWith('/')
38
+ ? targetFilePath
39
+ : `/${targetFilePath}`;
40
+ const expectedRaw = (0, find_module_1.buildRelativePath)(fromPath, toPath);
41
+ let expected = (0, core_1.normalize)(expectedRaw);
42
+ if (expected.endsWith('.ts')) {
43
+ expected = expected.split('.ts')[0];
44
+ }
45
+ let found = false;
46
+ const visit = (node) => {
47
+ var _a;
48
+ if (found)
49
+ return;
50
+ if (!(0, typescript_1.isImportDeclaration)(node)) {
51
+ node.forEachChild(visit);
52
+ return;
53
+ }
54
+ const ms = node.moduleSpecifier;
55
+ if (!(0, typescript_1.isStringLiteral)(ms) || (0, core_1.normalize)(ms.text) !== expected) {
56
+ node.forEachChild(visit);
57
+ return;
58
+ }
59
+ const clause = node.importClause;
60
+ if (!clause) {
61
+ node.forEachChild(visit);
62
+ return;
63
+ }
64
+ if (((_a = clause.name) === null || _a === void 0 ? void 0 : _a.text) === symbolName) {
65
+ found = true;
66
+ return;
67
+ }
68
+ const nb = clause.namedBindings;
69
+ if (!nb) {
70
+ node.forEachChild(visit);
71
+ return;
72
+ }
73
+ if ((0, typescript_1.isNamedImports)(nb)) {
74
+ const hit = nb.elements.some((el) => {
75
+ var _a;
76
+ const exported = ((_a = el.propertyName) !== null && _a !== void 0 ? _a : el.name).text;
77
+ const local = el.name.text;
78
+ return exported === symbolName || local === symbolName;
79
+ });
80
+ if (hit) {
81
+ found = true;
82
+ return;
83
+ }
84
+ }
85
+ if ((0, typescript_1.isNamespaceImport)(nb) && nb.name.text === symbolName) {
86
+ found = true;
87
+ return;
88
+ }
89
+ node.forEachChild(visit);
90
+ };
91
+ sf.forEachChild(visit);
92
+ return found;
93
+ }
94
+ //# sourceMappingURL=imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../../../../libs/setup/src/lib/ast/imports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ export declare function loadSourceFile(tree: Tree, path: string): import("typescript").SourceFile | undefined;
3
+ export declare function parseTS(code: string): import("typescript").SourceFile;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadSourceFile = loadSourceFile;
4
+ exports.parseTS = parseTS;
5
+ const typescript_1 = require("typescript");
6
+ function loadSourceFile(tree, path) {
7
+ const buffer = tree.read(path);
8
+ if (!buffer) {
9
+ return undefined;
10
+ }
11
+ const content = buffer.toString('utf-8');
12
+ return (0, typescript_1.createSourceFile)(path, content, typescript_1.ScriptTarget.Latest, true);
13
+ }
14
+ function parseTS(code) {
15
+ return (0, typescript_1.createSourceFile)('temp.ts', code, typescript_1.ScriptTarget.Latest, true);
16
+ }
17
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../../../libs/setup/src/lib/ast/parse.ts"],"names":[],"mappings":";;AAGA,wCAQC;AAED,0BAEC;AAdD,2CAA4D;AAE5D,SAAgB,cAAc,CAAC,IAAU,EAAE,IAAY;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,IAAA,6BAAgB,EAAC,IAAI,EAAE,OAAO,EAAE,yBAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,IAAA,6BAAgB,EAAC,SAAS,EAAE,IAAI,EAAE,yBAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ import { ArrayLiteralExpression, Node, ObjectLiteralElementLike, ObjectLiteralExpression, SourceFile, VariableDeclaration } from 'typescript';
3
+ import { ReplaceChange } from '@schematics/angular/utility/change';
4
+ export declare function findComponentRegistrationsNode(sourceFile: SourceFile): Node | null;
5
+ export declare function findMapArrayLiteral(mapExpression: Node): ArrayLiteralExpression | null;
6
+ export declare function updateMapEntries(tree: Tree, sourceFile: SourceFile, filePath: string, mapArrayLiteral: ArrayLiteralExpression, key: string, componentClassName: string): ReplaceChange[];
7
+ export declare function findComponentRegistrationsObject(sourceFile: SourceFile): ObjectLiteralExpression | null;
8
+ export declare function addComponentRegistration(tree: Tree, sourceFile: SourceFile, filePath: string, registrationsObject: ObjectLiteralExpression, key: string, componentClassName: string): ReplaceChange[];
9
+ export declare function getProvideFormbarArg(sf: SourceFile): ObjectLiteralExpression | undefined;
10
+ export declare function matchesIdentifierName(p: ObjectLiteralElementLike, key: string, identifierName: string): boolean;
11
+ export declare function registrationNodeHasKey(node: Node, key: string): boolean;
12
+ export declare function registrationNodeUsesIdentifier(node: Node, identifierName: string): boolean;
13
+ export declare function registrationsObjectHasKey(obj: ObjectLiteralExpression, key: string): boolean;
14
+ export declare function registrationsObjectUsesIdentifier(obj: ObjectLiteralExpression, identifierName: string): boolean;
15
+ export declare function componentRegistrationsObjectHasKey(node: Node | null, key: string): boolean;
16
+ export declare function componentRegistrationsObjectUsesIdentifier(node: Node | null, identifierName: string): boolean;
17
+ export declare function provideFormbarComponentRegistrationsHasIdentifier(sf: SourceFile, key: string, identifierName: string): boolean;
18
+ export declare function defineFormbarConfigComponentRegistrationsHasIdentifier(sf: SourceFile, key: string, identifierName: string): boolean;
19
+ export declare function componentRegistrationsMapProviderHasIdentifier(sf: SourceFile, key: string, identifierName: string): boolean;
20
+ export declare function directComponentRegistrationsHasIdentifier(sf: SourceFile, key: string, identifierName: string): boolean;
21
+ export declare function appConfigProvidersComponentRegistrationsMapHasIdentifier(sf: SourceFile, key: string, identifierName: string): boolean;
22
+ export declare function getMapArguments(decl: VariableDeclaration): ArrayLiteralExpression | null;