angular-three-plugin 4.0.0-next.20

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/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # plugin
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build plugin` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test plugin` to execute the unit tests via [Jest](https://jestjs.io).
@@ -0,0 +1,16 @@
1
+ {
2
+ "generators": {
3
+ "init": {
4
+ "factory": "./src/generators/init/init",
5
+ "schema": "./src/generators/init/schema.json",
6
+ "description": "init generator"
7
+ }
8
+ },
9
+ "schematics": {
10
+ "init": {
11
+ "factory": "./src/generators/init/compat",
12
+ "schema": "./src/generators/init/schema.json",
13
+ "description": "init generator"
14
+ }
15
+ }
16
+ }
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "angular-three-plugin",
3
+ "version": "4.0.0-next.20",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "types": "./src/index.d.ts",
10
+ "dependencies": {
11
+ "@nx/devkit": "^20.0.0",
12
+ "nx": "^20.0.0",
13
+ "ts-morph": "^25.0.0",
14
+ "tslib": "^2.3.0"
15
+ },
16
+ "generators": "./generators.json",
17
+ "schematics": "./generators.json",
18
+ "nx-migrations": {
19
+ "migrations": "./migrations.json",
20
+ "packageGroup": [
21
+ "angular-three-soba",
22
+ "angular-three-postprocessing",
23
+ "angular-three-cannon",
24
+ "angular-three-rapier"
25
+ ]
26
+ },
27
+ "ng-update": {
28
+ "migrations": "./migrations.json",
29
+ "packageGroup": [
30
+ "angular-three-soba",
31
+ "angular-three-postprocessing",
32
+ "angular-three-cannon",
33
+ "angular-three-rapier"
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: (generatorOptions: import("./init").InitGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const init_1 = require("./init");
5
+ exports.default = (0, devkit_1.convertNxGenerator)(init_1.default);
6
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/init/compat.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,iCAAmC;AAEnC,kBAAe,IAAA,2BAAkB,EAAC,cAAa,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, viewChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';
2
+ import { extend, injectBeforeRender } from 'angular-three';
3
+ import { Mesh, BoxGeometry, MeshBasicMaterial } from 'three';
4
+
5
+ @Component({
6
+ selector: 'app-scene-graph',
7
+ template: `
8
+ <ngt-mesh #mesh>
9
+ <ngt-box-geometry />
10
+ <ngt-mesh-basic-material color="hotpink" />
11
+ </ngt-mesh>
12
+ `,
13
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
14
+ changeDetection: ChangeDetectionStrategy.OnPush,
15
+ })
16
+ export class SceneGraph {
17
+ private meshRef = viewChild.required<ElementRef<Mesh>>('mesh');
18
+
19
+ constructor() {
20
+ extend({ Mesh, BoxGeometry, MeshBasicMaterial });
21
+
22
+ injectBeforeRender(({ delta }) => {
23
+ const mesh = this.meshRef().nativeElement;
24
+ mesh.rotation.x += delta;
25
+ mesh.rotation.y += delta;
26
+ })
27
+ }
28
+ }
29
+
@@ -0,0 +1,6 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export interface InitGeneratorSchema {
3
+ sceneGraph: 'append' | 'replace' | 'generate-only' | 'none';
4
+ }
5
+ export declare function initGenerator(tree: Tree, options: InitGeneratorSchema): Promise<() => void>;
6
+ export default initGenerator;
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initGenerator = initGenerator;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const enquirer_1 = require("enquirer");
6
+ const node_path_1 = require("node:path");
7
+ const ts_morph_1 = require("ts-morph");
8
+ const utils_1 = require("../../utils");
9
+ const versions_1 = require("../../versions");
10
+ const utils_2 = require("./utils");
11
+ // TODO: (chau) add tests when there are better testing strategy for prompt
12
+ async function initGenerator(tree, options) {
13
+ devkit_1.logger.log('[NGT] Initializing Angular Three...');
14
+ const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
15
+ let version = packageJson['dependencies']?.['angular-three'] || packageJson['devDependencies']?.['angular-three'];
16
+ if (version) {
17
+ devkit_1.logger.info(`[NGT] Angular Three is already installed: ${version}.`);
18
+ return;
19
+ }
20
+ (0, devkit_1.addDependenciesToPackageJson)(tree, { 'angular-three': version, three: versions_1.THREE_VERSION, ngxtension: versions_1.NGXTENSION_VERSION }, { '@types/three': versions_1.THREE_TYPE_VERSION });
21
+ devkit_1.logger.info('[NGT] Turning on skipLibCheck...');
22
+ const baseTsConfigPath = tree.exists('tsconfig.base.json') ? 'tsconfig.base.json' : 'tsconfig.json';
23
+ (0, devkit_1.updateJson)(tree, baseTsConfigPath, (json) => {
24
+ if (!('skipLibCheck' in json.compilerOptions) || json.compilerOptions?.skipLibCheck === false) {
25
+ json.compilerOptions.skipLibCheck = true;
26
+ }
27
+ return json;
28
+ });
29
+ (0, utils_1.addMetadataJson)(tree, 'angular-three/metadata.json');
30
+ const tsProject = new ts_morph_1.Project({
31
+ useInMemoryFileSystem: true,
32
+ skipAddingFilesFromTsConfig: true,
33
+ skipLoadingLibFiles: true,
34
+ });
35
+ const projects = (0, devkit_1.getProjects)(tree);
36
+ const applications = {};
37
+ for (const project of projects.values()) {
38
+ if (!project.sourceRoot || project.projectType !== 'application')
39
+ continue;
40
+ applications[project.name] = project;
41
+ }
42
+ const { appName } = await (0, enquirer_1.prompt)({
43
+ type: 'select',
44
+ message: 'Which application to continue with the set up?',
45
+ name: 'appName',
46
+ choices: Object.keys(applications),
47
+ });
48
+ const app = applications[appName];
49
+ const mainTsPath = (0, node_path_1.join)(app.sourceRoot, 'main.ts');
50
+ if (!tree.exists(mainTsPath)) {
51
+ devkit_1.logger.info(`[NGT] Could not locate main.ts for ${app}`);
52
+ return await (0, utils_2.stopSetup)(tree, `Could not locate main.ts for ${app}`);
53
+ }
54
+ const mainTsContent = tree.read(mainTsPath, 'utf8');
55
+ if (!mainTsContent.includes('bootstrapApplication')) {
56
+ return await (0, utils_2.stopSetup)(tree, `Could not locate bootstrapApplication in ${mainTsPath}`);
57
+ }
58
+ const mainSourceFile = tsProject.createSourceFile(mainTsPath, mainTsContent, {
59
+ overwrite: true,
60
+ scriptKind: ts_morph_1.ScriptKind.TS,
61
+ });
62
+ const expressionStatement = mainSourceFile.getStatement((statement) => ts_morph_1.Node.isExpressionStatement(statement));
63
+ let maybeBootstrapCall = expressionStatement.getExpression();
64
+ let foundBootstrapCall = false;
65
+ while (!foundBootstrapCall) {
66
+ const expression = 'getExpression' in maybeBootstrapCall && typeof maybeBootstrapCall['getExpression'] === 'function'
67
+ ? maybeBootstrapCall.getExpression()
68
+ : null;
69
+ if (!expression) {
70
+ return await (0, utils_2.stopSetup)(tree, `Could not locate bootstrapApplication in ${mainTsPath}`);
71
+ }
72
+ if (ts_morph_1.Node.isCallExpression(maybeBootstrapCall) &&
73
+ ts_morph_1.Node.isIdentifier(expression) &&
74
+ expression.getText() === 'bootstrapApplication') {
75
+ foundBootstrapCall = true;
76
+ break;
77
+ }
78
+ maybeBootstrapCall = expression;
79
+ }
80
+ const bootstrapCall = maybeBootstrapCall;
81
+ const [_, configArgument] = bootstrapCall.getArguments();
82
+ if (!configArgument) {
83
+ return await (0, utils_2.stopSetup)(tree, `Could not locate config argument for bootstrapApplication in ${mainTsPath}`);
84
+ }
85
+ // if configArgument is a external ApplicationConfig
86
+ if (ts_morph_1.Node.isIdentifier(configArgument)) {
87
+ if (configArgument.getText() !== 'appConfig') {
88
+ return await (0, utils_2.stopSetup)(tree, `Non-default config in ${mainTsPath} as second argument to bootstrapApplication is not appConfig. Please add "provideNgtRenderer()" to your bootstrapApplication configuration`);
89
+ }
90
+ // find the appConfig import
91
+ const appConfigImport = mainSourceFile.getImportDeclaration((importDeclaration) => {
92
+ return importDeclaration.getModuleSpecifierValue() === './app/app.config';
93
+ });
94
+ if (!appConfigImport) {
95
+ return await (0, utils_2.stopSetup)(tree, `Non-default config in ${mainTsPath} as external config import path is not ./app/app.config. Please add "provideNgtRenderer()" to your bootstrapApplication configuration`);
96
+ }
97
+ const appConfigPath = (0, node_path_1.join)(app.sourceRoot, 'app', 'app.config.ts');
98
+ if (!tree.exists(appConfigPath)) {
99
+ return await (0, utils_2.stopSetup)(tree, `Could not locate app.config.ts for ${app}`);
100
+ }
101
+ const appConfigContent = tree.read(appConfigPath, 'utf8');
102
+ const appConfigSourceFile = tsProject.createSourceFile(appConfigPath, appConfigContent, {
103
+ overwrite: true,
104
+ scriptKind: ts_morph_1.ScriptKind.TS,
105
+ });
106
+ const appConfigVariable = appConfigSourceFile.getVariableDeclaration('appConfig');
107
+ if (!appConfigVariable) {
108
+ return await (0, utils_2.stopSetup)(tree, `Could not locate appConfig variable in ${appConfigPath}`);
109
+ }
110
+ const configObject = appConfigVariable.getInitializer();
111
+ if (!configObject || !ts_morph_1.Node.isObjectLiteralExpression(configObject)) {
112
+ return await (0, utils_2.stopSetup)(tree, `Could not locate appConfig object in ${appConfigPath}`);
113
+ }
114
+ const endSetup = await (0, utils_2.handleAppConfig)(tree, configObject, appConfigSourceFile);
115
+ if (endSetup) {
116
+ return await endSetup();
117
+ }
118
+ }
119
+ if (ts_morph_1.Node.isObjectLiteralExpression(configArgument)) {
120
+ const endSetup = await (0, utils_2.handleAppConfig)(tree, configArgument, mainSourceFile);
121
+ if (endSetup) {
122
+ return await endSetup();
123
+ }
124
+ }
125
+ if (options.sceneGraph === 'none') {
126
+ return await (0, utils_2.finishSetup)(tree);
127
+ }
128
+ const { path: sceneGraphPath } = await (0, enquirer_1.prompt)({
129
+ type: 'input',
130
+ name: 'path',
131
+ message: `Where to generate the SceneGraph component (from ${app.sourceRoot}) ?`,
132
+ result(value) {
133
+ if (value.endsWith('.ts')) {
134
+ value = value.slice(0, -3);
135
+ }
136
+ return (0, node_path_1.join)(app.sourceRoot, value);
137
+ },
138
+ validate(value) {
139
+ if (tree.exists(value + '.ts')) {
140
+ return `${value}.ts already exists.`;
141
+ }
142
+ return true;
143
+ },
144
+ });
145
+ (0, devkit_1.generateFiles)(tree, (0, node_path_1.join)(__dirname, 'files'), sceneGraphPath, { tmpl: '' });
146
+ if (options.sceneGraph === 'generate-only') {
147
+ return await (0, utils_2.finishSetup)(tree);
148
+ }
149
+ const { componentPath } = await (0, enquirer_1.prompt)({
150
+ type: 'input',
151
+ message: `Enter the path to the component (from ${app.sourceRoot})`,
152
+ name: 'componentPath',
153
+ validate(value) {
154
+ if (!value.endsWith('.ts') || !tree.exists(value)) {
155
+ return `[NGT] Please use the path to the component TS file.`;
156
+ }
157
+ return true;
158
+ },
159
+ result(value) {
160
+ return (0, node_path_1.join)(app.sourceRoot, value);
161
+ },
162
+ });
163
+ const componentContent = tree.read(componentPath, 'utf-8');
164
+ const componentSourceFile = tsProject.createSourceFile(componentPath, componentContent, {
165
+ overwrite: true,
166
+ scriptKind: ts_morph_1.ScriptKind.TS,
167
+ });
168
+ const decorators = componentSourceFile.getChildrenOfKind(ts_morph_1.SyntaxKind.Decorator);
169
+ const componentDecorators = decorators.filter((decorator) => decorator.getName() === 'Component');
170
+ if (componentDecorators.length !== 1) {
171
+ return await (0, utils_2.stopSetup)(tree, `There are no Component or more than one Component in ${componentPath}`);
172
+ }
173
+ // standalone is true or not exist
174
+ const isStandalone = componentContent.includes(`standalone: true`) || !componentContent.includes('standalone');
175
+ if (!isStandalone) {
176
+ return await (0, utils_2.stopSetup)(tree, `Component at ${componentPath} must be a standalone component.`);
177
+ }
178
+ const componentDecorator = componentDecorators[0];
179
+ const componentMetadata = componentDecorator.getArguments()[0];
180
+ const templateUrlMetadata = componentMetadata.getFirstChild((node) => {
181
+ return ts_morph_1.Node.isPropertyAssignment(node) && node.getName() === 'templateUrl';
182
+ });
183
+ if (templateUrlMetadata) {
184
+ const templateUrl = templateUrlMetadata.getInitializer().getText();
185
+ const templateUrlPath = (0, node_path_1.join)(componentPath, templateUrl);
186
+ const templateContent = tree.read(templateUrlPath, 'utf-8');
187
+ tree.write(templateUrlPath, options.sceneGraph === 'replace'
188
+ ? `<ngt-canvas>
189
+ <app-scene-graph *canvasContent />
190
+ </ngt-canvas>`
191
+ : `${templateContent}
192
+ <ngt-canvas>
193
+ <app-scene-graph *canvasContent />
194
+ </ngt-canvas>`);
195
+ }
196
+ else {
197
+ const templateMetadata = componentMetadata.getFirstChild((node) => {
198
+ return ts_morph_1.Node.isPropertyAssignment(node) && node.getName() === 'template';
199
+ });
200
+ templateMetadata.setInitializer((writer) => {
201
+ if (options.sceneGraph === 'append') {
202
+ writer.write(templateMetadata.getInitializer().getText());
203
+ writer.newLineIfLastNot();
204
+ }
205
+ writer.writeLine('<ngt-canvas>');
206
+ writer.withIndentationLevel(2, () => {
207
+ writer.writeLine('<app-scene-graph *canvasContent />');
208
+ });
209
+ writer.writeLine(`</ngt-canvas>`);
210
+ writer.newLineIfLastNot();
211
+ });
212
+ }
213
+ // update import statements
214
+ componentSourceFile.addImportDeclarations([
215
+ { moduleSpecifier: 'angular-three/dom', namedImports: ['NgtCanvas'] },
216
+ { moduleSpecifier: (0, node_path_1.relative)(componentPath, sceneGraphPath), namedImports: ['SceneGraph'] },
217
+ ]);
218
+ // update imports array
219
+ const importsMetadata = componentMetadata.getFirstChild((node) => {
220
+ return ts_morph_1.Node.isPropertyAssignment(node) && node.getName() === 'imports';
221
+ });
222
+ if (importsMetadata) {
223
+ const currentImportsExpression = importsMetadata.getInitializer();
224
+ currentImportsExpression.addElements(['NgtCanvas', 'SceneGraph']);
225
+ }
226
+ else {
227
+ componentMetadata.addPropertyAssignment({
228
+ name: 'imports',
229
+ initializer: `['NgtCanvas', 'SceneGraph']`,
230
+ });
231
+ }
232
+ await componentSourceFile.save();
233
+ return await (0, utils_2.finishSetup)(tree);
234
+ }
235
+ exports.default = initGenerator;
236
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/init/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ {
2
+ "cli": "nx",
3
+ "$id": "Init",
4
+ "title": "Init Angular Three",
5
+ "type": "object",
6
+ "properties": {
7
+ "sceneGraph": {
8
+ "type": "string",
9
+ "description": "Generate a getting started SceneGraph component",
10
+ "enum": ["append", "replace", "generate-only", "none"],
11
+ "default": "generate-only",
12
+ "alias": "sg",
13
+ "x-prompt": {
14
+ "message": "How would you like to generate a SceneGraph component?",
15
+ "type": "list",
16
+ "items": [
17
+ {
18
+ "value": "append",
19
+ "label": "Append to parent component template"
20
+ },
21
+ {
22
+ "value": "replace",
23
+ "label": "Replace parent component template"
24
+ },
25
+ {
26
+ "value": "generate-only",
27
+ "label": "Generate a SceneGraph component but do not write to template"
28
+ },
29
+ {
30
+ "none": "none",
31
+ "label": "Do not generate a SceneGraph component"
32
+ }
33
+ ]
34
+ }
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,5 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { ObjectLiteralExpression, SourceFile } from 'ts-morph';
3
+ export declare function stopSetup(tree: Tree, message: string): Promise<() => void>;
4
+ export declare function finishSetup(tree: Tree): Promise<() => void>;
5
+ export declare function handleAppConfig(tree: Tree, config: ObjectLiteralExpression, sf: SourceFile): Promise<void | (() => Promise<() => void>)>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stopSetup = stopSetup;
4
+ exports.finishSetup = finishSetup;
5
+ exports.handleAppConfig = handleAppConfig;
6
+ const devkit_1 = require("@nx/devkit");
7
+ const ts_morph_1 = require("ts-morph");
8
+ async function stopSetup(tree, message) {
9
+ devkit_1.logger.info(`[NGT] ${message}. Stopping setup`);
10
+ return await finishSetup(tree);
11
+ }
12
+ async function finishSetup(tree) {
13
+ await (0, devkit_1.formatFiles)(tree);
14
+ return () => {
15
+ (0, devkit_1.installPackagesTask)(tree);
16
+ };
17
+ }
18
+ async function handleAppConfig(tree, config, sf) {
19
+ // add angular-three/dom import
20
+ sf.addImportDeclaration({ moduleSpecifier: 'angular-three/dom', namedImports: ['provideNgtRenderer'] });
21
+ const providersProperty = config.getProperty((property) => {
22
+ return ts_morph_1.Node.isPropertyAssignment(property) && property.getName() === 'providers';
23
+ });
24
+ if (!providersProperty) {
25
+ config.addPropertyAssignment({
26
+ name: 'providers',
27
+ initializer: `[provideNgtRenderer()]`,
28
+ });
29
+ return await sf.save();
30
+ }
31
+ const providersArray = providersProperty.getInitializerIfKind(ts_morph_1.SyntaxKind.ArrayLiteralExpression);
32
+ if (!providersArray) {
33
+ return async () => await stopSetup(tree, `Could not locate providers array`);
34
+ }
35
+ providersArray.addElement('provideNgtRenderer()');
36
+ return await sf.save();
37
+ }
38
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/init/utils.ts"],"names":[],"mappings":";;AAGA,8BAGC;AAED,kCAKC;AAED,0CAyBC;AAxCD,uCAA4E;AAC5E,uCAAqG;AAE9F,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAAe;IAC1D,eAAM,CAAC,IAAI,CAAC,SAAS,OAAO,kBAAkB,CAAC,CAAC;IAChD,OAAO,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,IAAU;IAC3C,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACX,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,IAAU,EAAE,MAA+B,EAAE,EAAc;IAChG,+BAA+B;IAC/B,EAAE,CAAC,oBAAoB,CAAC,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAExG,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAkC,EAAE;QACzF,OAAO,eAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxB,MAAM,CAAC,qBAAqB,CAAC;YAC5B,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wBAAwB;SACrC,CAAC,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,cAAc,GAAI,iBAAwC,CAAC,oBAAoB,CACpF,qBAAU,CAAC,sBAAsB,CACjC,CAAC;IACF,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,OAAO,KAAK,IAAI,EAAE,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;IAC9E,CAAC;IAED,cAAc,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAClD,OAAO,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC"}
package/src/index.d.ts ADDED
File without changes
package/src/index.js ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/plugin/src/index.ts"],"names":[],"mappings":""}
package/src/utils.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export declare function addMetadataJson(tree: Tree, metadataJsonPath: string): void;
package/src/utils.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addMetadataJson = addMetadataJson;
4
+ const devkit_1 = require("@nx/devkit");
5
+ function addMetadataJson(tree, metadataJsonPath) {
6
+ if (!metadataJsonPath.includes('node_modules')) {
7
+ metadataJsonPath = `./node_modules/${metadataJsonPath}`;
8
+ }
9
+ // add metadata.json to vscode settings if exists
10
+ const vscodeSettingsPath = '.vscode/settings.json';
11
+ if (!tree.exists('.vscode')) {
12
+ return devkit_1.logger.info(`[NGT] .vscode directory not found.
13
+ If you are using VSCode, add "${metadataJsonPath}" to "html.customData" in ".vscode/settings.json"
14
+ to enable TypeScript type definitions for Angular Three elements.
15
+ `);
16
+ }
17
+ devkit_1.logger.info('[NGT] Enabling typings support for VSCode...');
18
+ if (!tree.exists(vscodeSettingsPath)) {
19
+ (0, devkit_1.writeJson)(tree, vscodeSettingsPath, {});
20
+ }
21
+ (0, devkit_1.updateJson)(tree, vscodeSettingsPath, (json) => {
22
+ if (json['html.customData'] &&
23
+ Array.isArray(json['html.customData']) &&
24
+ !json['html.customData'].includes(metadataJsonPath)) {
25
+ json['html.customData'].push(metadataJsonPath);
26
+ }
27
+ else {
28
+ json['html.customData'] = [metadataJsonPath];
29
+ }
30
+ return json;
31
+ });
32
+ }
33
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../libs/plugin/src/utils.ts"],"names":[],"mappings":";;AAEA,0CAoCC;AAtCD,uCAAsE;AAEtE,SAAgB,eAAe,CAAC,IAAU,EAAE,gBAAwB;IACnE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAChD,gBAAgB,GAAG,kBAAkB,gBAAgB,EAAE,CAAC;IACzD,CAAC;IAED,iDAAiD;IACjD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;IAEnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,eAAM,CAAC,IAAI,CACjB;gCAC6B,gBAAgB;;CAE/C,CACE,CAAC;IACH,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAE5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACtC,IAAA,kBAAS,EAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAA,mBAAU,EAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7C,IACC,IAAI,CAAC,iBAAiB,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAClD,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,32 @@
1
+ export declare const ANGULAR_THREE_VERSION = "^4.0.0";
2
+ export declare const THREE_VERSION = "^0.173.0";
3
+ export declare const THREE_TYPE_VERSION = "^0.173.0";
4
+ export declare const NGXTENSION_VERSION = "^4.0.0";
5
+ export declare const PEER_DEPENDENCIES: {
6
+ 'angular-three-soba': {
7
+ 'three-stdlib': string;
8
+ '@pmndrs/vanilla': string;
9
+ '@monogrid/gainmap-js': string;
10
+ 'camera-controls': string;
11
+ 'hls.js': string;
12
+ maath: string;
13
+ meshline: string;
14
+ 'stats-gl': string;
15
+ 'three-custom-shader-material': string;
16
+ 'three-mesh-bvh': string;
17
+ 'troika-three-text': string;
18
+ };
19
+ 'angular-three-rapier': {
20
+ '@dimforge/rapier3d-compat': string;
21
+ };
22
+ 'angular-three-postprocessing': {
23
+ maath: string;
24
+ n8ao: string;
25
+ postprocessing: string;
26
+ };
27
+ 'angular-three-cannon': {
28
+ '@pmndrs/cannon-worker-api': string;
29
+ 'cannon-es': string;
30
+ 'cannon-es-debugger': string;
31
+ };
32
+ };
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PEER_DEPENDENCIES = exports.NGXTENSION_VERSION = exports.THREE_TYPE_VERSION = exports.THREE_VERSION = exports.ANGULAR_THREE_VERSION = void 0;
4
+ exports.ANGULAR_THREE_VERSION = '^4.0.0';
5
+ exports.THREE_VERSION = '^0.173.0';
6
+ exports.THREE_TYPE_VERSION = '^0.173.0';
7
+ exports.NGXTENSION_VERSION = '^4.0.0';
8
+ exports.PEER_DEPENDENCIES = {
9
+ 'angular-three-soba': {
10
+ 'three-stdlib': '^2.0.0',
11
+ '@pmndrs/vanilla': '^1.20.0',
12
+ '@monogrid/gainmap-js': '^3.0.0',
13
+ 'camera-controls': '^2.8.0',
14
+ 'hls.js': '^1.5.0',
15
+ maath: '~0.10.0',
16
+ meshline: '^3.1.0',
17
+ 'stats-gl': '^2.0.0',
18
+ 'three-custom-shader-material': '~6.3.0',
19
+ 'three-mesh-bvh': '~0.9.0',
20
+ 'troika-three-text': '~0.52.0',
21
+ },
22
+ 'angular-three-rapier': {
23
+ '@dimforge/rapier3d-compat': '~0.14.0',
24
+ },
25
+ 'angular-three-postprocessing': {
26
+ maath: '~0.10.0',
27
+ n8ao: '~1.9.0',
28
+ postprocessing: '^6.0.0',
29
+ },
30
+ 'angular-three-cannon': {
31
+ '@pmndrs/cannon-worker-api': '^2.0.0',
32
+ 'cannon-es': '^0.20.0',
33
+ 'cannon-es-debugger': '^1.0.0',
34
+ },
35
+ };
36
+ //# sourceMappingURL=versions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../libs/plugin/src/versions.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACjC,QAAA,aAAa,GAAG,UAAU,CAAC;AAC3B,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAChC,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAE9B,QAAA,iBAAiB,GAAG;IAChC,oBAAoB,EAAE;QACrB,cAAc,EAAE,QAAQ;QACxB,iBAAiB,EAAE,SAAS;QAC5B,sBAAsB,EAAE,QAAQ;QAChC,iBAAiB,EAAE,QAAQ;QAC3B,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,8BAA8B,EAAE,QAAQ;QACxC,gBAAgB,EAAE,QAAQ;QAC1B,mBAAmB,EAAE,SAAS;KAC9B;IACD,sBAAsB,EAAE;QACvB,2BAA2B,EAAE,SAAS;KACtC;IACD,8BAA8B,EAAE;QAC/B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,QAAQ;KACxB;IACD,sBAAsB,EAAE;QACvB,2BAA2B,EAAE,QAAQ;QACrC,WAAW,EAAE,SAAS;QACtB,oBAAoB,EAAE,QAAQ;KAC9B;CACD,CAAC"}