@abgov/nx-adsp 5.1.1-beta.1 → 5.2.0-beta.1

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.
Files changed (31) hide show
  1. package/package.json +6 -4
  2. package/src/generators/angular-app/angular-app.spec.ts +11 -1
  3. package/src/generators/angular-app/files/src/environments/environment.ts__tmpl__ +1 -1
  4. package/src/generators/angular-app/schema.d.ts +1 -1
  5. package/src/generators/angular-app/schema.json +1 -12
  6. package/src/generators/dotnet-service/dotnet-service.spec.ts +15 -1
  7. package/src/generators/dotnet-service/files/appsettings.Development.json__tmpl__ +1 -1
  8. package/src/generators/dotnet-service/files/appsettings.json__tmpl__ +1 -1
  9. package/src/generators/dotnet-service/schema.d.ts +1 -1
  10. package/src/generators/dotnet-service/schema.json +1 -12
  11. package/src/generators/express-service/express-service.spec.ts +12 -1
  12. package/src/generators/express-service/schema.d.ts +0 -1
  13. package/src/generators/express-service/schema.json +1 -12
  14. package/src/generators/mern/mern.js +2 -2
  15. package/src/generators/mern/mern.js.map +1 -1
  16. package/src/generators/mern/mern.spec.ts +12 -1
  17. package/src/generators/mern/schema.d.ts +0 -1
  18. package/src/generators/mern/schema.json +1 -12
  19. package/src/generators/react-app/files/src/environments/environment.ts__tmpl__ +1 -1
  20. package/src/generators/react-app/react-app.spec.ts +12 -1
  21. package/src/generators/react-app/schema.d.ts +0 -1
  22. package/src/generators/react-app/schema.json +1 -12
  23. package/src/generators/react-dotnet/react-dotnet.js +20 -2
  24. package/src/generators/react-dotnet/react-dotnet.js.map +1 -1
  25. package/src/generators/react-dotnet/react-dotnet.spec.ts +13 -2
  26. package/src/generators/react-dotnet/schema.d.ts +8 -1
  27. package/src/generators/react-dotnet/schema.json +1 -12
  28. package/src/utils/adsp-utils.d.ts +5 -4
  29. package/src/utils/adsp-utils.js +49 -21
  30. package/src/utils/adsp-utils.js.map +1 -1
  31. package/src/utils/adsp.d.ts +4 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/nx-adsp",
3
- "version": "5.1.1-beta.1",
3
+ "version": "5.2.0-beta.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "src/index.js",
6
6
  "description": "Government of Alberta - Nx plugin for ADSP apps.",
@@ -13,13 +13,15 @@
13
13
  "@nrwl/angular": "^15.0.0",
14
14
  "@nrwl/devkit": "^15.0.0",
15
15
  "@nrwl/express": "^15.0.0",
16
- "@nrwl/react": "^15.0.0"
16
+ "@nrwl/react": "^15.0.0",
17
+ "@nx-dotnet/core": "^1.16.0"
17
18
  },
18
19
  "dependencies": {
19
20
  "@angular-devkit/core": "^15.0.0",
20
21
  "@angular-devkit/schematics": "^15.0.0",
21
- "axios": "1.1.3",
22
- "express": "4.18.1",
22
+ "axios": "^0.27.0",
23
+ "enquirer": "^2.3.6",
24
+ "express": "^4.18.1",
23
25
  "open": "^8.4.0"
24
26
  },
25
27
  "generators": "./generators.json",
@@ -1,15 +1,25 @@
1
1
  import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
2
2
  import { Tree, readProjectConfiguration } from '@nrwl/devkit';
3
3
 
4
+ import * as utils from '../../utils/adsp-utils';
5
+ import { environments } from '../../utils/environments';
4
6
  import angularApp from './angular-app';
5
7
  import { AngularAppGeneratorSchema } from './schema';
6
8
 
9
+ jest.mock('../../utils/adsp-utils');
10
+ const utilsMock = utils as jest.Mocked<typeof utils>;
11
+ utilsMock.getAdspConfiguration.mockResolvedValue({
12
+ tenant: 'test',
13
+ tenantRealm: 'test',
14
+ accessServiceUrl: environments.test.accessServiceUrl,
15
+ directoryServiceUrl: environments.test.directoryServiceUrl,
16
+ });
17
+
7
18
  describe('angular app generator', () => {
8
19
  let appTree: Tree;
9
20
  const options: AngularAppGeneratorSchema = {
10
21
  name: 'test',
11
22
  env: 'dev',
12
- realm: 'testtenant',
13
23
  };
14
24
 
15
25
  beforeEach(() => {
@@ -6,7 +6,7 @@ export const environment = {
6
6
  access: {
7
7
  url: '<%= accessServiceUrl %>',
8
8
  realm: '<%= tenantRealm %>',
9
- client_id: 'urn:ads:platform:tenant-admin-app'
9
+ client_id: 'urn:ads:<%= tenant %>:<%= projectName %>'
10
10
  },
11
11
  tenantApi: {
12
12
  host: "http://localhost:3333",
@@ -1,9 +1,9 @@
1
+ import { AdspConfiguration } from '../../utils/adsp';
1
2
  import { EnvironmentName } from '../../utils/environments';
2
3
 
3
4
  export interface AngularAppGeneratorSchema {
4
5
  name: string;
5
6
  env: EnvironmentName;
6
- realm: string;
7
7
  proxy?: NginxProxyConfiguration | NginxProxyConfiguration[];
8
8
  }
9
9
 
@@ -32,16 +32,6 @@
32
32
  ]
33
33
  }
34
34
  },
35
- "realm": {
36
- "type": "string",
37
- "description": "Realm of the ADSP tenant.",
38
- "$default": {
39
- "$source": "argv",
40
- "index": 2
41
- },
42
- "alias": "r",
43
- "x-prompt": "What is the realm of your ADSP tenant?"
44
- },
45
35
  "proxy": {
46
36
  "oneOf": [
47
37
  {
@@ -82,7 +72,6 @@
82
72
  },
83
73
  "required": [
84
74
  "name",
85
- "env",
86
- "realm"
75
+ "env"
87
76
  ]
88
77
  }
@@ -2,6 +2,9 @@ import { addDependenciesToPackageJson } from '@nrwl/devkit';
2
2
  import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing';
3
3
  import appGenerator from '@nx-dotnet/core/src/generators/app/generator';
4
4
  import refGenerator from '@nx-dotnet/core/src/generators/nuget-reference/generator';
5
+
6
+ import * as utils from '../../utils/adsp-utils';
7
+ import { environments } from '../../utils/environments';
5
8
  import { Schema } from './schema';
6
9
  import generator from './dotnet-service';
7
10
 
@@ -11,11 +14,22 @@ jest.mock('@nx-dotnet/core/src/generators/nuget-reference/generator');
11
14
  const appGeneratorMock = appGenerator as jest.Mocked<typeof appGenerator>;
12
15
  const refGeneratorMock = refGenerator as jest.Mocked<typeof refGenerator>;
13
16
 
17
+ jest.mock('../../utils/adsp-utils', () => ({
18
+ ...jest.requireActual('../../utils/adsp-utils'),
19
+ getAdspConfiguration: jest.fn(),
20
+ }));
21
+ const utilsMock = utils as jest.Mocked<typeof utils>;
22
+ utilsMock.getAdspConfiguration.mockResolvedValue({
23
+ tenant: 'test',
24
+ tenantRealm: 'test',
25
+ accessServiceUrl: environments.test.accessServiceUrl,
26
+ directoryServiceUrl: environments.test.directoryServiceUrl,
27
+ });
28
+
14
29
  describe('Dotnet Service Generator', () => {
15
30
  const options: Schema = {
16
31
  name: 'test',
17
32
  env: 'dev',
18
- realm: 'test',
19
33
  };
20
34
 
21
35
  it('can run', async () => {
@@ -9,7 +9,7 @@
9
9
  "AccessServiceUrl": "<%= accessServiceUrl %>",
10
10
  "Realm": "<%= tenantRealm %>",
11
11
  "DirectoryUrl": "<%= directoryServiceUrl %>",
12
- "ClientId": "",
12
+ "ClientId": "urn:ads:<%= tenant %>:<%= projectName %>",
13
13
  "ClientSecret": ""
14
14
  }
15
15
  }
@@ -9,7 +9,7 @@
9
9
  "AccessServiceUrl": "<%= accessServiceUrl %>",
10
10
  "Realm": "<%= tenantRealm %>",
11
11
  "DirectoryUrl": "<%= directoryServiceUrl %>",
12
- "ClientId": "",
12
+ "ClientId": "urn:ads:<%= tenant %>:<%= projectName %>",
13
13
  "ClientSecret": ""
14
14
  },
15
15
  "AllowedHosts": "*"
@@ -1,9 +1,9 @@
1
1
  import { AdspConfiguration } from '../../utils/adsp';
2
+ import { EnvironmentName } from '../../utils/environments';
2
3
 
3
4
  export interface Schema {
4
5
  name: string;
5
6
  env: EnvironmentName;
6
- realm: string;
7
7
  }
8
8
 
9
9
  export interface NormalizedSchema extends Schema {
@@ -31,21 +31,10 @@
31
31
  "prod"
32
32
  ]
33
33
  }
34
- },
35
- "realm": {
36
- "type": "string",
37
- "description": "Realm of the ADSP tenant.",
38
- "$default": {
39
- "$source": "argv",
40
- "index": 2
41
- },
42
- "alias": "r",
43
- "x-prompt": "What is the realm of your ADSP tenant?"
44
34
  }
45
35
  },
46
36
  "required": [
47
37
  "name",
48
- "env",
49
- "realm"
38
+ "env"
50
39
  ]
51
40
  }
@@ -1,13 +1,24 @@
1
1
  import { readProjectConfiguration } from '@nrwl/devkit';
2
2
  import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing';
3
+
4
+ import * as utils from '../../utils/adsp-utils';
5
+ import { environments } from '../../utils/environments';
3
6
  import { Schema } from './schema';
4
7
  import generator from './express-service';
5
8
 
9
+ jest.mock('../../utils/adsp-utils');
10
+ const utilsMock = utils as jest.Mocked<typeof utils>;
11
+ utilsMock.getAdspConfiguration.mockResolvedValue({
12
+ tenant: 'test',
13
+ tenantRealm: 'test',
14
+ accessServiceUrl: environments.test.accessServiceUrl,
15
+ directoryServiceUrl: environments.test.directoryServiceUrl,
16
+ });
17
+
6
18
  describe('Express Service Generator', () => {
7
19
  const options: Schema = {
8
20
  name: 'test',
9
21
  env: 'dev',
10
- realm: 'test',
11
22
  };
12
23
 
13
24
  it('can run', async () => {
@@ -4,7 +4,6 @@ import { EnvironmentName } from '../../utils/environments';
4
4
  export interface Schema {
5
5
  name: string;
6
6
  env: EnvironmentName;
7
- realm: string;
8
7
  }
9
8
 
10
9
  export interface NormalizedSchema extends Schema {
@@ -31,21 +31,10 @@
31
31
  "prod"
32
32
  ]
33
33
  }
34
- },
35
- "realm": {
36
- "type": "string",
37
- "description": "Realm of the ADSP tenant.",
38
- "$default": {
39
- "$source": "argv",
40
- "index": 2
41
- },
42
- "alias": "r",
43
- "x-prompt": "What is the realm of your ADSP tenant?"
44
34
  }
45
35
  },
46
36
  "required": [
47
37
  "name",
48
- "env",
49
- "realm"
38
+ "env"
50
39
  ]
51
40
  }
@@ -29,8 +29,8 @@ function addFiles(host, options) {
29
29
  function default_1(host, options) {
30
30
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
31
  const normalizedOptions = yield normalizeOptions(host, options);
32
- yield (0, express_service_1.default)(host, Object.assign(Object.assign({}, options), { name: `${options.name}-service` }));
33
- yield (0, react_app_1.default)(host, Object.assign(Object.assign({}, options), { name: `${options.name}-app`, proxy: {
32
+ yield (0, express_service_1.default)(host, Object.assign(Object.assign({}, normalizedOptions), { name: `${options.name}-service` }));
33
+ yield (0, react_app_1.default)(host, Object.assign(Object.assign({}, normalizedOptions), { name: `${options.name}-app`, proxy: {
34
34
  location: '/api/',
35
35
  proxyPass: `http://${options.name}-service:3333/${options.name}-service/`,
36
36
  } }));
@@ -1 +1 @@
1
- {"version":3,"file":"mern.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/mern/mern.ts"],"names":[],"mappings":";;;AAAA,yCASsB;AACtB,6BAA6B;AAC7B,uDAA8D;AAC9D,wEAAoE;AACpE,sDAAkD;AAGlD,SAAe,gBAAgB,CAC7B,IAAU,EACV,OAAe;;QAEf,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC;QAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,GAAG,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAE9E,MAAM,kBAAkB,GAAG,GAAG,IAAI,CAAC,OAAO,CACxC,IAAA,yBAAgB,EAAC,IAAI,CAAC,CACvB,eAAe,gBAAgB,EAAE,CAAC;QAEnC,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEvD,uCACK,OAAO,KACV,WAAW;YACX,WAAW;YACX,gBAAgB;YAChB,kBAAkB;YAClB,IAAI,IACJ;IACJ,CAAC;CAAA;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,OAAyB;IACrD,MAAM,eAAe,iDAChB,OAAO,GACP,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,KACtB,cAAc,EAAE,IAAA,uBAAc,EAAC,OAAO,CAAC,WAAW,CAAC,EACnD,QAAQ,EAAE,EAAE,GACb,CAAC;IACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,WAAW,EACnB,eAAe,CAChB,CAAC;IACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAC/B,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,mBAA+B,IAAU,EAAE,OAAe;;QACxD,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhE,MAAM,IAAA,yBAAkB,EAAC,IAAI,kCACxB,OAAO,KACV,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,UAAU,IAC/B,CAAC;QAEH,MAAM,IAAA,mBAAY,EAAC,IAAI,kCAClB,OAAO,KACV,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,EAC3B,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,UAAU,OAAO,CAAC,IAAI,iBAAiB,OAAO,CAAC,IAAI,WAAW;aAC1E,IACD,CAAC;QAEH,iDAAiD;QACjD,qCAAqC;QACrC,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AAxBD,4BAwBC"}
1
+ {"version":3,"file":"mern.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/mern/mern.ts"],"names":[],"mappings":";;;AAAA,yCASsB;AACtB,6BAA6B;AAC7B,uDAA8D;AAC9D,wEAAoE;AACpE,sDAAkD;AAGlD,SAAe,gBAAgB,CAC7B,IAAU,EACV,OAAe;;QAEf,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC;QAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,GAAG,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAE9E,MAAM,kBAAkB,GAAG,GAAG,IAAI,CAAC,OAAO,CACxC,IAAA,yBAAgB,EAAC,IAAI,CAAC,CACvB,eAAe,gBAAgB,EAAE,CAAC;QAEnC,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEvD,uCACK,OAAO,KACV,WAAW;YACX,WAAW;YACX,gBAAgB;YAChB,kBAAkB;YAClB,IAAI,IACJ;IACJ,CAAC;CAAA;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,OAAyB;IACrD,MAAM,eAAe,iDAChB,OAAO,GACP,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,KACtB,cAAc,EAAE,IAAA,uBAAc,EAAC,OAAO,CAAC,WAAW,CAAC,EACnD,QAAQ,EAAE,EAAE,GACb,CAAC;IACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,WAAW,EACnB,eAAe,CAChB,CAAC;IACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAC/B,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,mBAA+B,IAAU,EAAE,OAAe;;QACxD,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhE,MAAM,IAAA,yBAAkB,EAAC,IAAI,kCACxB,iBAAiB,KACpB,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,UAAU,IAC/B,CAAC;QAEH,MAAM,IAAA,mBAAY,EAAC,IAAI,kCAClB,iBAAiB,KACpB,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,EAC3B,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,UAAU,OAAO,CAAC,IAAI,iBAAiB,OAAO,CAAC,IAAI,WAAW;aAC1E,IACD,CAAC;QAEH,iDAAiD;QACjD,qCAAqC;QACrC,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AAxBD,4BAwBC"}
@@ -1,13 +1,24 @@
1
1
  import { readProjectConfiguration } from '@nrwl/devkit';
2
2
  import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing';
3
+
4
+ import * as utils from '../../utils/adsp-utils';
5
+ import { environments } from '../../utils/environments';
3
6
  import { Schema } from './schema';
4
7
  import generator from './mern';
5
8
 
9
+ jest.mock('../../utils/adsp-utils');
10
+ const utilsMock = utils as jest.Mocked<typeof utils>;
11
+ utilsMock.getAdspConfiguration.mockResolvedValue({
12
+ tenant: 'test',
13
+ tenantRealm: 'test',
14
+ accessServiceUrl: environments.test.accessServiceUrl,
15
+ directoryServiceUrl: environments.test.directoryServiceUrl,
16
+ });
17
+
6
18
  describe('React App Generator', () => {
7
19
  const options: Schema = {
8
20
  name: 'test',
9
21
  env: 'dev',
10
- realm: 'test',
11
22
  };
12
23
 
13
24
  it('can run', async () => {
@@ -4,7 +4,6 @@ import { EnvironmentName } from '../../utils/environments';
4
4
  export interface Schema {
5
5
  name: string;
6
6
  env: EnvironmentName;
7
- realm: string;
8
7
  }
9
8
 
10
9
  export interface NormalizedSchema extends Schema {
@@ -31,21 +31,10 @@
31
31
  "prod"
32
32
  ]
33
33
  }
34
- },
35
- "realm": {
36
- "type": "string",
37
- "description": "Realm of the ADSP tenant.",
38
- "$default": {
39
- "$source": "argv",
40
- "index": 2
41
- },
42
- "alias": "r",
43
- "x-prompt": "What is the realm of your ADSP tenant?"
44
34
  }
45
35
  },
46
36
  "required": [
47
37
  "name",
48
- "env",
49
- "realm"
38
+ "env"
50
39
  ]
51
40
  }
@@ -6,6 +6,6 @@ export const environment = {
6
6
  access: {
7
7
  url: '<%= accessServiceUrl %>',
8
8
  realm: '<%= tenantRealm %>',
9
- client_id: '<%= projectName %>'
9
+ client_id: 'urn:ads:<%= tenant %>:<%= projectName %>'
10
10
  }
11
11
  };
@@ -1,13 +1,24 @@
1
1
  import { readProjectConfiguration } from '@nrwl/devkit';
2
2
  import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing';
3
+
4
+ import * as utils from '../../utils/adsp-utils';
5
+ import { environments } from '../../utils/environments';
3
6
  import { Schema } from './schema';
4
7
  import generator from './react-app';
5
8
 
9
+ jest.mock('../../utils/adsp-utils');
10
+ const utilsMock = utils as jest.Mocked<typeof utils>;
11
+ utilsMock.getAdspConfiguration.mockResolvedValue({
12
+ tenant: 'test',
13
+ tenantRealm: 'test',
14
+ accessServiceUrl: environments.test.accessServiceUrl,
15
+ directoryServiceUrl: environments.test.directoryServiceUrl,
16
+ });
17
+
6
18
  describe('React App Generator', () => {
7
19
  const options: Schema = {
8
20
  name: 'test',
9
21
  env: 'dev',
10
- realm: 'test',
11
22
  };
12
23
 
13
24
  it('can run', async () => {
@@ -5,7 +5,6 @@ import { NginxProxyConfiguration } from '../../utils/nginx';
5
5
  export interface Schema {
6
6
  name: string;
7
7
  env: EnvironmentName;
8
- realm: string;
9
8
  proxy?: NginxProxyConfiguration | NginxProxyConfiguration[];
10
9
  }
11
10
 
@@ -32,16 +32,6 @@
32
32
  ]
33
33
  }
34
34
  },
35
- "realm": {
36
- "type": "string",
37
- "description": "Realm of the ADSP tenant.",
38
- "$default": {
39
- "$source": "argv",
40
- "index": 2
41
- },
42
- "alias": "r",
43
- "x-prompt": "What is the realm of your ADSP tenant?"
44
- },
45
35
  "proxy": {
46
36
  "oneOf": [
47
37
  {
@@ -82,7 +72,6 @@
82
72
  },
83
73
  "required": [
84
74
  "name",
85
- "env",
86
- "realm"
75
+ "env"
87
76
  ]
88
77
  }
@@ -2,12 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const devkit_1 = require("@nrwl/devkit");
5
+ const path = require("path");
6
+ const adsp_utils_1 = require("../../utils/adsp-utils");
5
7
  const dotnet_service_1 = require("../dotnet-service/dotnet-service");
6
8
  const react_app_1 = require("../react-app/react-app");
9
+ function normalizeOptions(host, options) {
10
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ const name = (0, devkit_1.names)(options.name).fileName;
12
+ const projectDirectory = name;
13
+ const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-');
14
+ const projectRoot = `${(0, devkit_1.getWorkspaceLayout)(host).appsDir}/${projectDirectory}`;
15
+ const openshiftDirectory = `${path.dirname((0, devkit_1.getWorkspacePath)(host))}/.openshift/${projectDirectory}`;
16
+ const adsp = yield (0, adsp_utils_1.getAdspConfiguration)(host, options);
17
+ return Object.assign(Object.assign({}, options), { projectName,
18
+ projectRoot,
19
+ projectDirectory,
20
+ openshiftDirectory,
21
+ adsp });
22
+ });
23
+ }
7
24
  function default_1(host, options) {
8
25
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
- yield (0, dotnet_service_1.default)(host, Object.assign(Object.assign({}, options), { name: `${options.name}-service` }));
10
- yield (0, react_app_1.default)(host, Object.assign(Object.assign({}, options), { name: `${options.name}-app`, proxy: {
26
+ const normalizedOptions = yield normalizeOptions(host, options);
27
+ yield (0, dotnet_service_1.default)(host, Object.assign(Object.assign({}, normalizedOptions), { name: `${options.name}-service` }));
28
+ yield (0, react_app_1.default)(host, Object.assign(Object.assign({}, normalizedOptions), { name: `${options.name}-app`, proxy: {
11
29
  location: '/api/',
12
30
  proxyPass: `http://${options.name}-service:5000/${options.name}-service/`,
13
31
  } }));
@@ -1 +1 @@
1
- {"version":3,"file":"react-dotnet.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/react-dotnet/react-dotnet.ts"],"names":[],"mappings":";;;AAAA,yCAAyD;AACzD,qEAAiE;AACjE,sDAAkD;AAGlD,mBAA+B,IAAU,EAAE,OAAe;;QACxD,MAAM,IAAA,wBAAiB,EAAC,IAAI,kCACvB,OAAO,KACV,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,UAAU,IAC/B,CAAC;QAEH,MAAM,IAAA,mBAAY,EAAC,IAAI,kCAClB,OAAO,KACV,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,EAC3B,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,UAAU,OAAO,CAAC,IAAI,iBAAiB,OAAO,CAAC,IAAI,WAAW;aAC1E,IACD,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AAlBD,4BAkBC"}
1
+ {"version":3,"file":"react-dotnet.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/react-dotnet/react-dotnet.ts"],"names":[],"mappings":";;;AAAA,yCAMsB;AACtB,6BAA6B;AAC7B,uDAA8D;AAC9D,qEAAiE;AACjE,sDAAkD;AAGlD,SAAe,gBAAgB,CAC7B,IAAU,EACV,OAAe;;QAEf,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC;QAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,GAAG,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAE9E,MAAM,kBAAkB,GAAG,GAAG,IAAI,CAAC,OAAO,CACxC,IAAA,yBAAgB,EAAC,IAAI,CAAC,CACvB,eAAe,gBAAgB,EAAE,CAAC;QAEnC,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEvD,uCACK,OAAO,KACV,WAAW;YACX,WAAW;YACX,gBAAgB;YAChB,kBAAkB;YAClB,IAAI,IACJ;IACJ,CAAC;CAAA;AAED,mBAA+B,IAAU,EAAE,OAAe;;QACxD,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhE,MAAM,IAAA,wBAAiB,EAAC,IAAI,kCACvB,iBAAiB,KACpB,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,UAAU,IAC/B,CAAC;QAEH,MAAM,IAAA,mBAAY,EAAC,IAAI,kCAClB,iBAAiB,KACpB,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,EAC3B,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,UAAU,OAAO,CAAC,IAAI,iBAAiB,OAAO,CAAC,IAAI,WAAW;aAC1E,IACD,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AApBD,4BAoBC"}
@@ -1,8 +1,20 @@
1
1
  import { readProjectConfiguration } from '@nrwl/devkit';
2
2
  import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing';
3
+
4
+ import * as utils from '../../utils/adsp-utils';
5
+ import { environments } from '../../utils/environments';
6
+ import serviceGenerator from '../dotnet-service/dotnet-service';
3
7
  import { Schema } from './schema';
4
8
  import generator from './react-dotnet';
5
- import serviceGenerator from '../dotnet-service/dotnet-service';
9
+
10
+ jest.mock('../../utils/adsp-utils');
11
+ const utilsMock = utils as jest.Mocked<typeof utils>;
12
+ utilsMock.getAdspConfiguration.mockResolvedValue({
13
+ tenant: 'test',
14
+ tenantRealm: 'test',
15
+ accessServiceUrl: environments.test.accessServiceUrl,
16
+ directoryServiceUrl: environments.test.directoryServiceUrl,
17
+ });
6
18
 
7
19
  jest.mock('../dotnet-service/dotnet-service');
8
20
  const serviceGeneratorMock = serviceGenerator as jest.Mocked<
@@ -13,7 +25,6 @@ describe('React App Generator', () => {
13
25
  const options: Schema = {
14
26
  name: 'test',
15
27
  env: 'dev',
16
- realm: 'test',
17
28
  };
18
29
 
19
30
  it('can run', async () => {
@@ -3,5 +3,12 @@ import { EnvironmentName } from '../../utils/environments';
3
3
  export interface Schema {
4
4
  name: string;
5
5
  env: EnvironmentName;
6
- realm: string;
6
+ }
7
+
8
+ export interface NormalizedSchema extends Schema {
9
+ projectName: string;
10
+ projectRoot: string;
11
+ projectDirectory: string;
12
+ openshiftDirectory: string;
13
+ adsp: AdspConfiguration;
7
14
  }
@@ -31,21 +31,10 @@
31
31
  "prod"
32
32
  ]
33
33
  }
34
- },
35
- "realm": {
36
- "type": "string",
37
- "description": "Realm of the ADSP tenant.",
38
- "$default": {
39
- "$source": "argv",
40
- "index": 2
41
- },
42
- "alias": "r",
43
- "x-prompt": "What is the realm of your ADSP tenant?"
44
34
  }
45
35
  },
46
36
  "required": [
47
37
  "name",
48
- "env",
49
- "realm"
38
+ "env"
50
39
  ]
51
40
  }
@@ -1,8 +1,9 @@
1
1
  import { Tree } from '@nrwl/devkit';
2
- import { AdspConfiguration } from './adsp';
2
+ import { AdspConfiguration, AdspOptions } from './adsp';
3
3
  import { EnvironmentName } from './environments';
4
4
  export declare function hasDependency(host: Tree, dependency: string): boolean;
5
- export declare function getAdspConfiguration(_host: Tree, { env, realm }: {
5
+ export declare function getAdspConfiguration(_host: Tree, options: {
6
6
  env?: EnvironmentName;
7
- realm: string;
8
- }, login?: boolean): Promise<AdspConfiguration>;
7
+ realm?: string;
8
+ }): Promise<AdspConfiguration>;
9
+ export declare function isAdspOptions(options: unknown): options is AdspOptions;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAdspConfiguration = exports.hasDependency = void 0;
3
+ exports.isAdspOptions = exports.getAdspConfiguration = exports.hasDependency = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nrwl/devkit");
6
6
  const axios_1 = require("axios");
7
+ const enquirer_1 = require("enquirer");
7
8
  const express = require("express");
8
9
  const open = require("open");
9
10
  const simple_oauth2_1 = require("simple-oauth2");
@@ -13,7 +14,7 @@ function hasDependency(host, dependency) {
13
14
  return !!dependencies[dependency] || !!devDependencies[dependency];
14
15
  }
15
16
  exports.hasDependency = hasDependency;
16
- function tenantLogin(accessServiceUrl, realm) {
17
+ function realmLogin(accessServiceUrl, realm) {
17
18
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
19
  const client = new simple_oauth2_1.AuthorizationCode({
19
20
  client: {
@@ -29,16 +30,23 @@ function tenantLogin(accessServiceUrl, realm) {
29
30
  const redirect_uri = 'http://localhost:3000/callback';
30
31
  const authorizationUri = client.authorizeURL({
31
32
  redirect_uri,
32
- scope: 'profile email',
33
+ scope: 'email',
33
34
  });
34
35
  const app = express();
35
- const tokenPromise = new Promise((resolve) => {
36
+ const tokenPromise = new Promise((resolve, reject) => {
36
37
  app.get('/callback', function (req, res) {
37
- res.send('Successfully signed in. You can close the browser.');
38
- resolve(client.getToken({
39
- code: req.query.code,
40
- redirect_uri,
41
- }));
38
+ const { code, error } = req.query;
39
+ if (error) {
40
+ res.send('Login failed.');
41
+ reject(new Error(`Error encountered during login. ${error}`));
42
+ }
43
+ else {
44
+ res.send('Successfully signed in. You can close this browser tab or window.');
45
+ resolve(client.getToken({
46
+ code: code,
47
+ redirect_uri,
48
+ }));
49
+ }
42
50
  });
43
51
  });
44
52
  const server = app.listen(3000);
@@ -50,25 +58,45 @@ function tenantLogin(accessServiceUrl, realm) {
50
58
  return token.access_token;
51
59
  });
52
60
  }
53
- function getAdspConfiguration(_host, { env, realm }, login = false) {
61
+ function getAdspConfiguration(_host, options) {
62
+ var _a;
54
63
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
55
- let tenant = '';
64
+ const { env, realm } = options;
56
65
  const environment = environments_1.environments[env || 'prod'];
57
- if (login) {
66
+ if (isAdspOptions(options)) {
67
+ // If Adsp configuration is already been resolved, then no need to retrieve gain.
68
+ return options.adsp;
69
+ }
70
+ else {
58
71
  const { data: entries } = yield axios_1.default.get(new URL('/directory/v2/namespaces/platform/entries', environment.directoryServiceUrl).href, { decompress: true, responseEncoding: 'utf8', responseType: 'json' });
59
72
  const urls = entries.reduce((values, item) => (Object.assign(Object.assign({}, values), { [item.urn]: item.url })), {});
60
- const token = yield tenantLogin(environment.accessServiceUrl, realm);
73
+ const token = yield realmLogin(environment.accessServiceUrl, 'core');
61
74
  const tenantServiceUrl = urls['urn:ads:platform:tenant-service:v2'];
62
- const { data: tenants } = yield axios_1.default.get(new URL('v2/tenants', tenantServiceUrl).href, { headers: { Authorization: `Bearer ${token}` } });
63
- tenant = tenants.results[0].name;
75
+ const { data: tenants } = yield axios_1.default.get(new URL('v2/tenants', tenantServiceUrl).href, {
76
+ headers: { Authorization: `Bearer ${token}` },
77
+ });
78
+ const choices = tenants.results
79
+ .map((r) => r.name)
80
+ .sort((a, b) => a.localeCompare(b));
81
+ const result = yield (0, enquirer_1.prompt)({
82
+ type: 'autocomplete',
83
+ name: 'tenant',
84
+ message: 'Which tenant is the application or service for?',
85
+ choices,
86
+ });
87
+ return {
88
+ tenant: (0, devkit_1.names)(result.tenant).fileName,
89
+ tenantRealm: ((_a = tenants.results.find((r) => r.name === result.tenant)) === null || _a === void 0 ? void 0 : _a.realm) || realm,
90
+ accessServiceUrl: environment.accessServiceUrl,
91
+ directoryServiceUrl: environment.directoryServiceUrl,
92
+ };
64
93
  }
65
- return {
66
- tenant,
67
- tenantRealm: realm,
68
- accessServiceUrl: environment.accessServiceUrl,
69
- directoryServiceUrl: environment.directoryServiceUrl,
70
- };
71
94
  });
72
95
  }
73
96
  exports.getAdspConfiguration = getAdspConfiguration;
97
+ function isAdspOptions(options) {
98
+ var _a;
99
+ return !!((_a = options === null || options === void 0 ? void 0 : options.adsp) === null || _a === void 0 ? void 0 : _a.tenantRealm);
100
+ }
101
+ exports.isAdspOptions = isAdspOptions;
74
102
  //# sourceMappingURL=adsp-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adsp-utils.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/adsp-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adsp-utils.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/adsp-utils.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,7 @@ export interface AdspConfiguration {
4
4
  accessServiceUrl: string;
5
5
  directoryServiceUrl: string;
6
6
  }
7
+
8
+ export type AdspOptions = {
9
+ adsp: AdspConfiguration;
10
+ };