@abgov/nx-adsp 13.9.0 → 13.10.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/README.md +72 -43
- package/generators.json +5 -0
- package/package.json +1 -1
- package/src/build-assets.spec.ts +3 -3
- package/src/generators/angular-app/angular-app.js +27 -8
- package/src/generators/angular-app/angular-app.js.map +1 -1
- package/src/generators/angular-app/angular-app.spec.ts +15 -5
- package/src/generators/dotnet-service/dotnet-service.spec.ts +1 -1
- package/src/generators/express-service/express-service.js +21 -8
- package/src/generators/express-service/express-service.js.map +1 -1
- package/src/generators/express-service/express-service.spec.ts +39 -16
- package/src/generators/init/init.d.ts +2 -0
- package/src/generators/init/init.js +23 -0
- package/src/generators/init/init.js.map +1 -0
- package/src/generators/init/init.spec.ts +70 -0
- package/src/generators/init/schema.d.ts +2 -0
- package/src/generators/init/schema.json +10 -0
- package/src/generators/mean/mean.js +3 -2
- package/src/generators/mean/mean.js.map +1 -1
- package/src/generators/mean/mean.spec.ts +5 -2
- package/src/generators/mern/mern.js +3 -2
- package/src/generators/mern/mern.js.map +1 -1
- package/src/generators/mern/mern.spec.ts +5 -2
- package/src/generators/mevn/mevn.js +3 -2
- package/src/generators/mevn/mevn.js.map +1 -1
- package/src/generators/mevn/mevn.spec.ts +5 -2
- package/src/generators/pean/pean.js +3 -2
- package/src/generators/pean/pean.js.map +1 -1
- package/src/generators/pean/pean.spec.ts +5 -2
- package/src/generators/pern/pern.js +3 -2
- package/src/generators/pern/pern.js.map +1 -1
- package/src/generators/pern/pern.spec.ts +5 -2
- package/src/generators/pevn/pevn.js +3 -2
- package/src/generators/pevn/pevn.js.map +1 -1
- package/src/generators/pevn/pevn.spec.ts +5 -2
- package/src/generators/react-app/react-app.js +17 -6
- package/src/generators/react-app/react-app.js.map +1 -1
- package/src/generators/react-app/react-app.spec.ts +12 -4
- package/src/generators/react-dotnet/react-dotnet.spec.ts +1 -1
- package/src/generators/react-form/react-form.js.map +1 -1
- package/src/generators/react-form/react-forms.spec.ts +3 -3
- package/src/generators/react-task-list/react-task-list.js.map +1 -1
- package/src/generators/react-task-list/react-task-list.spec.ts +2 -2
- package/src/generators/vue-app/vue-app.js +18 -6
- package/src/generators/vue-app/vue-app.js.map +1 -1
- package/src/generators/vue-app/vue-app.spec.ts +31 -9
- package/src/generators/vue-components/vue-components.js +7 -2
- package/src/generators/vue-components/vue-components.js.map +1 -1
- package/src/generators/vue-components/vue-components.spec.ts +41 -13
- package/src/types/nx-angular-generators.d.ts +1 -1
- package/src/utils/agent.js +23 -9
- package/src/utils/agent.js.map +1 -1
- package/src/utils/agent.spec.ts +74 -17
- package/src/utils/keycloak-admin.js +16 -5
- package/src/utils/keycloak-admin.js.map +1 -1
- package/src/utils/quality.d.ts +6 -0
- package/src/utils/quality.js +9 -0
- package/src/utils/quality.js.map +1 -1
- package/src/utils/quality.spec.ts +5 -3
package/README.md
CHANGED
|
@@ -10,17 +10,17 @@ Install only the framework peers for the generators you use — they are declare
|
|
|
10
10
|
as **optional** peer dependencies, so a workspace that only builds Vue apps
|
|
11
11
|
doesn't need `@nx/react`, `@nx/angular`, etc.
|
|
12
12
|
|
|
13
|
-
| Generator
|
|
14
|
-
|
|
15
|
-
| `react-app`
|
|
16
|
-
| `angular-app`
|
|
17
|
-
| `vue-app`
|
|
18
|
-
| `dotnet-service`
|
|
19
|
-
| `react-dotnet`
|
|
20
|
-
| `express-service`
|
|
21
|
-
| `pevn`, `mevn` (full-stack)
|
|
22
|
-
| `pern`, `pean` (full-stack)
|
|
23
|
-
| `react-form`, `react-task-list` | existing React project in the workspace
|
|
13
|
+
| Generator | Required peer dependency |
|
|
14
|
+
| ------------------------------- | ---------------------------------------- |
|
|
15
|
+
| `react-app` | `@nx/react` |
|
|
16
|
+
| `angular-app` | `@nx/angular` |
|
|
17
|
+
| `vue-app` | `@nx/vue` |
|
|
18
|
+
| `dotnet-service` | `@nx-dotnet/core` |
|
|
19
|
+
| `react-dotnet` | `@nx/react`, `@nx-dotnet/core` |
|
|
20
|
+
| `express-service` | `@nx/express` |
|
|
21
|
+
| `pevn`, `mevn` (full-stack) | `@nx/express`, `@nx/vue` |
|
|
22
|
+
| `pern`, `pean` (full-stack) | `@nx/express`, `@nx/react`/`@nx/angular` |
|
|
23
|
+
| `react-form`, `react-task-list` | existing React project in the workspace |
|
|
24
24
|
|
|
25
25
|
## Installation
|
|
26
26
|
|
|
@@ -37,7 +37,14 @@ npx create-nx-workspace my-workspace
|
|
|
37
37
|
# 2. Install the plugin and any required peer dependencies
|
|
38
38
|
npm i -D @abgov/nx-adsp @nx/express
|
|
39
39
|
|
|
40
|
-
# 3.
|
|
40
|
+
# 3. Set up nx-adsp's own workspace-root concerns (ADSP SDK MCP server, VS Code
|
|
41
|
+
# settings) — always run this right after installing the plugin. Every
|
|
42
|
+
# app/service generator below also runs it as one of its own steps, but
|
|
43
|
+
# running it here means grounded ADSP platform knowledge is available
|
|
44
|
+
# immediately, not only once you've scaffolded your first app.
|
|
45
|
+
npx nx g @abgov/nx-adsp:init
|
|
46
|
+
|
|
47
|
+
# 4. Generate a quickstart (interactive prompts fill missing options)
|
|
41
48
|
npx nx g @abgov/nx-adsp:express-service my-service --env dev --tenant my-tenant
|
|
42
49
|
```
|
|
43
50
|
|
|
@@ -91,6 +98,28 @@ deploy details.
|
|
|
91
98
|
|
|
92
99
|
## Generators
|
|
93
100
|
|
|
101
|
+
### `init`
|
|
102
|
+
|
|
103
|
+
Sets up nx-adsp's own workspace-root concerns: registers the ADSP SDK MCP server
|
|
104
|
+
(`@abgov/adsp-sdk-mcp-server`) in `.mcp.json`, and shared VS Code settings. Every app/service
|
|
105
|
+
generator below already runs this as one of its own steps — always run it directly right after
|
|
106
|
+
installing the plugin, too, so grounded ADSP platform knowledge (tenant/realm/role model,
|
|
107
|
+
`@abgov/adsp-service-sdk` reference) is available immediately, not only once you've scaffolded
|
|
108
|
+
your first app. That gap matters for a decision made _before_ any app exists — a design pass, for
|
|
109
|
+
instance — which a scaffolding-generator side effect can never reach in time.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npx nx g @abgov/nx-adsp:init
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
No options. Idempotent — merges into existing `.mcp.json`/`.vscode/settings.json` without
|
|
116
|
+
clobbering another server, a customized `adsp-sdk` entry, or unrelated settings; safe to re-run.
|
|
117
|
+
Project-scoped MCP servers only load at session start, so reconnect (or restart) your MCP client
|
|
118
|
+
after running this before relying on the new tools — the generator's own output says so as a
|
|
119
|
+
reminder.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
94
123
|
### `express-service`
|
|
95
124
|
|
|
96
125
|
Creates a Node/Express backend service configured for ADSP.
|
|
@@ -99,13 +128,13 @@ Creates a Node/Express backend service configured for ADSP.
|
|
|
99
128
|
npx nx g @abgov/nx-adsp:express-service my-service --env dev --tenant my-tenant
|
|
100
129
|
```
|
|
101
130
|
|
|
102
|
-
| Option
|
|
103
|
-
|
|
104
|
-
| `name`
|
|
105
|
-
| `env`
|
|
106
|
-
| `tenant`
|
|
107
|
-
| `tenantRealm` | `-tr` | No
|
|
108
|
-
| `accessToken` | `-at` | No
|
|
131
|
+
| Option | Alias | Required | Description |
|
|
132
|
+
| ------------- | ----- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
133
|
+
| `name` | — | Yes | Name of the service |
|
|
134
|
+
| `env` | `-e` | No | ADSP environment / access service. Defaults to `test` = access-uat.alberta.ca (UAT — use for dev and pre-prod); `prod` = access.alberta.ca; `dev` = ADSP platform dev (restricted) |
|
|
135
|
+
| `tenant` | `-t` | No | ADSP tenant name; resolves the Keycloak realm by name (sign in once with `@abgov/adsp-cli` — see Authentication) |
|
|
136
|
+
| `tenantRealm` | `-tr` | No | Keycloak realm UUID; overrides the realm resolved from `--tenant` |
|
|
137
|
+
| `accessToken` | `-at` | No | Access token for non-interactive retrieval of ADSP configuration |
|
|
109
138
|
|
|
110
139
|
OpenAPI docs are generated from the same Zod schemas already used for request validation
|
|
111
140
|
(`@asteasolutions/zod-to-openapi`) and served at `/swagger/docs/v1` — no separate spec to
|
|
@@ -123,14 +152,14 @@ Creates a React/Redux frontend application configured for ADSP. Requires `@nx/re
|
|
|
123
152
|
npx nx g @abgov/nx-adsp:react-app my-app --env dev --tenant my-tenant
|
|
124
153
|
```
|
|
125
154
|
|
|
126
|
-
| Option
|
|
127
|
-
|
|
128
|
-
| `name`
|
|
129
|
-
| `env`
|
|
130
|
-
| `tenant`
|
|
131
|
-
| `tenantRealm` | `-tr` | No
|
|
132
|
-
| `accessToken` | `-at` | No
|
|
133
|
-
| `proxy`
|
|
155
|
+
| Option | Alias | Required | Description |
|
|
156
|
+
| ------------- | ----- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
157
|
+
| `name` | — | Yes | Name of the application |
|
|
158
|
+
| `env` | `-e` | No | ADSP environment / access service. Defaults to `test` = access-uat.alberta.ca (UAT — use for dev and pre-prod); `prod` = access.alberta.ca; `dev` = ADSP platform dev (restricted) |
|
|
159
|
+
| `tenant` | `-t` | No | ADSP tenant name; resolves the Keycloak realm by name (sign in once with `@abgov/adsp-cli` — see Authentication) |
|
|
160
|
+
| `tenantRealm` | `-tr` | No | Keycloak realm UUID; overrides the realm resolved from `--tenant` |
|
|
161
|
+
| `accessToken` | `-at` | No | Access token for non-interactive retrieval of ADSP configuration |
|
|
162
|
+
| `proxy` | — | No | Nginx proxy rule(s) as `{ location, proxyPass }` or an array of such objects |
|
|
134
163
|
|
|
135
164
|
---
|
|
136
165
|
|
|
@@ -154,11 +183,11 @@ Creates an ASP.NET Core backend service configured for ADSP. Requires `@nx-dotne
|
|
|
154
183
|
npx nx g @abgov/nx-adsp:dotnet-service my-service --env dev --accessToken $TOKEN
|
|
155
184
|
```
|
|
156
185
|
|
|
157
|
-
| Option
|
|
158
|
-
|
|
159
|
-
| `name`
|
|
160
|
-
| `env`
|
|
161
|
-
| `accessToken` | `-at` | No
|
|
186
|
+
| Option | Alias | Required | Description |
|
|
187
|
+
| ------------- | ----- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
188
|
+
| `name` | — | Yes | Name of the service |
|
|
189
|
+
| `env` | `-e` | No | ADSP environment / access service. Defaults to `test` = access-uat.alberta.ca (UAT — use for dev and pre-prod); `prod` = access.alberta.ca; `dev` = ADSP platform dev (restricted) |
|
|
190
|
+
| `accessToken` | `-at` | No | Access token for non-interactive retrieval of ADSP configuration |
|
|
162
191
|
|
|
163
192
|
---
|
|
164
193
|
|
|
@@ -182,11 +211,11 @@ Adds a React component generated from an existing [ADSP Form Definition](https:/
|
|
|
182
211
|
npx nx g @abgov/nx-adsp:react-form my-app --env test
|
|
183
212
|
```
|
|
184
213
|
|
|
185
|
-
| Option
|
|
186
|
-
|
|
187
|
-
| `project`
|
|
188
|
-
| `env`
|
|
189
|
-
| `accessToken` | `-at` | No
|
|
214
|
+
| Option | Alias | Required | Description |
|
|
215
|
+
| ------------- | ----- | -------- | ------------------------------------------------------------------------------------------------- |
|
|
216
|
+
| `project` | — | Yes | Name of the existing Nx project to add the form component to |
|
|
217
|
+
| `env` | `-e` | No | ADSP environment to fetch form definitions from. Defaults to `test` (UAT / access-uat.alberta.ca) |
|
|
218
|
+
| `accessToken` | `-at` | No | Access token for non-interactive retrieval of ADSP configuration |
|
|
190
219
|
|
|
191
220
|
---
|
|
192
221
|
|
|
@@ -224,11 +253,11 @@ When you run a generator:
|
|
|
224
253
|
|
|
225
254
|
Generator flags that steer which tenant/token is used:
|
|
226
255
|
|
|
227
|
-
| Flag
|
|
228
|
-
|
|
229
|
-
| `--tenant <name>`
|
|
230
|
-
| `--tenantRealm <uuid>`
|
|
231
|
-
| `--accessToken <token>` | Supply a pre-obtained token directly (CI/CD), bypassing the CLI
|
|
256
|
+
| Flag | Effect |
|
|
257
|
+
| ----------------------- | ----------------------------------------------------------------------------------- |
|
|
258
|
+
| `--tenant <name>` | Resolves the Keycloak realm by tenant name (anonymous lookup) and targets it |
|
|
259
|
+
| `--tenantRealm <uuid>` | Use the realm UUID directly; combine with `--tenant` to override the resolved realm |
|
|
260
|
+
| `--accessToken <token>` | Supply a pre-obtained token directly (CI/CD), bypassing the CLI |
|
|
232
261
|
|
|
233
262
|
With none of these, the generator lets `adsp login`'s interactive picker resolve the tenant. Don't
|
|
234
263
|
have a tenant yet? That picker also offers a **+ Create a new tenant** choice — available in
|
|
@@ -251,7 +280,7 @@ This needs the same tenant/token as [Authentication](#authentication) above, plu
|
|
|
251
280
|
is non-interactive (`--no-interactive`, no TTY, or `CI=true`). Skip it explicitly with
|
|
252
281
|
`--skipAgent`, regardless of interactivity.
|
|
253
282
|
|
|
254
|
-
> **Note for coding agents:** skip this. It exists to let a
|
|
283
|
+
> **Note for coding agents:** skip this. It exists to let a _human_ describe what they want built
|
|
255
284
|
> to a separate, remote agent working from nothing but that description. You already have the
|
|
256
285
|
> actual requirements and the surrounding codebase context that conversation exists to gather —
|
|
257
286
|
> make any needed customizations directly, after scaffolding, rather than through an indirect
|
package/generators.json
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
"name": "nx-adsp",
|
|
4
4
|
"version": "0.0.1",
|
|
5
5
|
"generators": {
|
|
6
|
+
"init": {
|
|
7
|
+
"factory": "./src/generators/init/init",
|
|
8
|
+
"schema": "./src/generators/init/schema.json",
|
|
9
|
+
"description": "Sets up nx-adsp's own workspace-root concerns (ADSP SDK MCP server, shared VS Code settings). Run once per workspace, right after installing @abgov/nx-adsp."
|
|
10
|
+
},
|
|
6
11
|
"express-service": {
|
|
7
12
|
"factory": "./src/generators/express-service/express-service",
|
|
8
13
|
"schema": "./src/generators/express-service/schema.json",
|
package/package.json
CHANGED
package/src/build-assets.spec.ts
CHANGED
|
@@ -33,7 +33,7 @@ describe('build assets packaging', () => {
|
|
|
33
33
|
|
|
34
34
|
it('matches every non-TypeScript src file with an asset glob', () => {
|
|
35
35
|
const project = JSON.parse(
|
|
36
|
-
fs.readFileSync(path.join(projectRoot, 'project.json'), 'utf-8')
|
|
36
|
+
fs.readFileSync(path.join(projectRoot, 'project.json'), 'utf-8'),
|
|
37
37
|
);
|
|
38
38
|
const assets: unknown[] = project.targets.build.options.assets ?? [];
|
|
39
39
|
|
|
@@ -44,7 +44,7 @@ describe('build assets packaging', () => {
|
|
|
44
44
|
typeof a === 'object' &&
|
|
45
45
|
a !== null &&
|
|
46
46
|
'input' in a &&
|
|
47
|
-
path.resolve(repoRoot, (a as { input: string }).input) === srcRoot
|
|
47
|
+
path.resolve(repoRoot, (a as { input: string }).input) === srcRoot,
|
|
48
48
|
)
|
|
49
49
|
.map((a) => a.glob);
|
|
50
50
|
|
|
@@ -54,7 +54,7 @@ describe('build assets packaging', () => {
|
|
|
54
54
|
.map((f) => path.relative(srcRoot, f));
|
|
55
55
|
|
|
56
56
|
const unmatched = mustShip.filter(
|
|
57
|
-
(rel) => !srcGlobs.some((glob) => minimatch(rel, glob, { dot: true }))
|
|
57
|
+
(rel) => !srcGlobs.some((glob) => minimatch(rel, glob, { dot: true })),
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
expect(unmatched).toEqual([]);
|
|
@@ -7,6 +7,7 @@ const agent_1 = require("../../utils/agent");
|
|
|
7
7
|
const keycloak_admin_1 = require("../../utils/keycloak-admin");
|
|
8
8
|
const plugin_version_1 = require("../../utils/plugin-version");
|
|
9
9
|
const quality_1 = require("../../utils/quality");
|
|
10
|
+
const init_1 = require("../init/init");
|
|
10
11
|
const devkit_1 = require("@nx/devkit");
|
|
11
12
|
const path = require("path");
|
|
12
13
|
function normalizeOptions(host, options) {
|
|
@@ -90,10 +91,19 @@ function default_1(host, options) {
|
|
|
90
91
|
}, {});
|
|
91
92
|
const addedProxy = addFiles(host, normalizedOptions);
|
|
92
93
|
(0, quality_1.addJestCoverageConfig)(host, normalizedOptions.projectRoot);
|
|
93
|
-
(
|
|
94
|
+
// nx-adsp's own workspace-root setup (ADSP SDK MCP server + shared VS Code
|
|
95
|
+
// settings), run as one step here in case `nx-adsp:init` hasn't been run
|
|
96
|
+
// standalone yet.
|
|
97
|
+
yield (0, init_1.default)(host);
|
|
94
98
|
// @nx/angular generates app.ts/html/css/spec.ts (new naming) and nx-welcome.ts;
|
|
95
99
|
// our templates use app.component.* and don't use nx-welcome.
|
|
96
|
-
for (const file of [
|
|
100
|
+
for (const file of [
|
|
101
|
+
'app.ts',
|
|
102
|
+
'app.html',
|
|
103
|
+
'app.css',
|
|
104
|
+
'app.spec.ts',
|
|
105
|
+
'nx-welcome.ts',
|
|
106
|
+
]) {
|
|
97
107
|
host.delete(`${normalizedOptions.projectRoot}/src/app/${file}`);
|
|
98
108
|
}
|
|
99
109
|
const config = (0, devkit_1.readProjectConfiguration)(host, options.name);
|
|
@@ -106,7 +116,11 @@ function default_1(host, options) {
|
|
|
106
116
|
if ((_c = config.targets.build.configurations) === null || _c === void 0 ? void 0 : _c.production) {
|
|
107
117
|
config.targets.build.configurations.production.budgets = [
|
|
108
118
|
{ type: 'initial', maximumWarning: '2mb', maximumError: '4mb' },
|
|
109
|
-
{
|
|
119
|
+
{
|
|
120
|
+
type: 'anyComponentStyle',
|
|
121
|
+
maximumWarning: '6kb',
|
|
122
|
+
maximumError: '10kb',
|
|
123
|
+
},
|
|
110
124
|
];
|
|
111
125
|
}
|
|
112
126
|
config.targets.build.options = Object.assign(Object.assign({}, config.targets.build.options), { polyfills: ['zone.js'], assets: [
|
|
@@ -140,11 +154,16 @@ function default_1(host, options) {
|
|
|
140
154
|
}
|
|
141
155
|
if (normalizedOptions.adsp && !options.skipAgent) {
|
|
142
156
|
const accessToken = (_f = normalizedOptions.adsp.accessToken) !== null && _f !== void 0 ? _f : options.accessToken;
|
|
143
|
-
const appComponentTs = (_h = (_g = host
|
|
144
|
-
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
const
|
|
157
|
+
const appComponentTs = (_h = (_g = host
|
|
158
|
+
.read(`${normalizedOptions.projectRoot}/src/app/app.component.ts`)) === null || _g === void 0 ? void 0 : _g.toString()) !== null && _h !== void 0 ? _h : '';
|
|
159
|
+
const appComponentHtml = (_k = (_j = host
|
|
160
|
+
.read(`${normalizedOptions.projectRoot}/src/app/app.component.html`)) === null || _j === void 0 ? void 0 : _j.toString()) !== null && _k !== void 0 ? _k : '';
|
|
161
|
+
const appConfigTs = (_m = (_l = host
|
|
162
|
+
.read(`${normalizedOptions.projectRoot}/src/app/app.config.ts`)) === null || _l === void 0 ? void 0 : _l.toString()) !== null && _m !== void 0 ? _m : '';
|
|
163
|
+
const appRoutesTs = (_p = (_o = host
|
|
164
|
+
.read(`${normalizedOptions.projectRoot}/src/app/app.routes.ts`)) === null || _o === void 0 ? void 0 : _o.toString()) !== null && _p !== void 0 ? _p : '';
|
|
165
|
+
const environmentTs = (_r = (_q = host
|
|
166
|
+
.read(`${normalizedOptions.projectRoot}/src/environments/environment.ts`)) === null || _q === void 0 ? void 0 : _q.toString()) !== null && _r !== void 0 ? _r : '';
|
|
148
167
|
yield (0, agent_1.confirmAfterAgentInterrupt)(yield (0, agent_1.consultAgent)(normalizedOptions.adsp.directoryServiceUrl, accessToken, {
|
|
149
168
|
projectName: normalizedOptions.projectName,
|
|
150
169
|
projectType: 'angular-app',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-app.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/angular-app/angular-app.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"angular-app.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/angular-app/angular-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,10 @@ import { environments } from '@abgov/nx-oc';
|
|
|
6
6
|
import angularApp from './angular-app';
|
|
7
7
|
import { AngularAppGeneratorSchema } from './schema';
|
|
8
8
|
|
|
9
|
-
jest.mock('@nx/devkit', () => ({
|
|
9
|
+
jest.mock('@nx/devkit', () => ({
|
|
10
|
+
...jest.requireActual('@nx/devkit'),
|
|
11
|
+
formatFiles: jest.fn().mockResolvedValue(undefined),
|
|
12
|
+
}));
|
|
10
13
|
jest.mock('@abgov/nx-oc');
|
|
11
14
|
jest.mock('../../utils/agent', () => ({
|
|
12
15
|
consultAgent: jest.fn().mockResolvedValue(null),
|
|
@@ -22,7 +25,7 @@ utilsMock.getAdspConfiguration.mockResolvedValue({
|
|
|
22
25
|
// jest.mock('@abgov/nx-oc') automocks adspProjectTags too — restore the real
|
|
23
26
|
// (pure, no I/O) implementation so tag-writing behavior is actually exercised.
|
|
24
27
|
utilsMock.adspProjectTags.mockImplementation(
|
|
25
|
-
jest.requireActual('@abgov/nx-oc').adspProjectTags
|
|
28
|
+
jest.requireActual('@abgov/nx-oc').adspProjectTags,
|
|
26
29
|
);
|
|
27
30
|
|
|
28
31
|
describe('angular app generator', () => {
|
|
@@ -44,12 +47,19 @@ describe('angular app generator', () => {
|
|
|
44
47
|
expect(appTree.exists('apps/test/nginx.conf')).toBeTruthy();
|
|
45
48
|
}, 120000);
|
|
46
49
|
|
|
50
|
+
it("runs nx-adsp's own workspace-root setup (ADSP SDK MCP server + VS Code settings)", async () => {
|
|
51
|
+
await angularApp(appTree, options);
|
|
52
|
+
|
|
53
|
+
expect(appTree.exists('.mcp.json')).toBeTruthy();
|
|
54
|
+
expect(appTree.exists('.vscode/settings.json')).toBeTruthy();
|
|
55
|
+
}, 120000);
|
|
56
|
+
|
|
47
57
|
it('scaffolds a Playwright e2e project (consistent across frontends)', async () => {
|
|
48
58
|
await angularApp(appTree, options);
|
|
49
59
|
expect(appTree.exists('apps/test-e2e/project.json')).toBeTruthy();
|
|
50
60
|
expect(
|
|
51
61
|
appTree.exists('apps/test-e2e/playwright.config.ts') ||
|
|
52
|
-
appTree.exists('apps/test-e2e/playwright.config.mts')
|
|
62
|
+
appTree.exists('apps/test-e2e/playwright.config.mts'),
|
|
53
63
|
).toBe(true);
|
|
54
64
|
expect(appTree.exists('apps/test-e2e/cypress.config.ts')).toBeFalsy();
|
|
55
65
|
// webServer guarded so CI can target a deployed URL (BASE_URL) instead of a local server
|
|
@@ -82,7 +92,7 @@ describe('angular app generator', () => {
|
|
|
82
92
|
|
|
83
93
|
expect(host.exists('apps/test/nginx.conf')).toBeTruthy();
|
|
84
94
|
expect(host.read('apps/test/nginx.conf').toString()).toContain(
|
|
85
|
-
'http://test-service:3333/'
|
|
95
|
+
'http://test-service:3333/',
|
|
86
96
|
);
|
|
87
97
|
});
|
|
88
98
|
|
|
@@ -127,7 +137,7 @@ describe('angular app generator', () => {
|
|
|
127
137
|
expect(host.exists('apps/test/proxy.conf.json')).toBeTruthy();
|
|
128
138
|
|
|
129
139
|
const proxyConf = JSON.parse(
|
|
130
|
-
host.read('apps/test/proxy.conf.json').toString()
|
|
140
|
+
host.read('apps/test/proxy.conf.json').toString(),
|
|
131
141
|
);
|
|
132
142
|
expect(proxyConf['/test/'].target).toBe('http://localhost:3333');
|
|
133
143
|
expect(proxyConf['/test/'].pathRewrite['^/test/']).toBe('/api/');
|
|
@@ -10,6 +10,7 @@ const agent_1 = require("../../utils/agent");
|
|
|
10
10
|
const keycloak_admin_1 = require("../../utils/keycloak-admin");
|
|
11
11
|
const plugin_version_1 = require("../../utils/plugin-version");
|
|
12
12
|
const quality_1 = require("../../utils/quality");
|
|
13
|
+
const init_1 = require("../init/init");
|
|
13
14
|
function normalizeOptions(host, options) {
|
|
14
15
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
15
16
|
var _a;
|
|
@@ -39,13 +40,21 @@ function default_1(host, options) {
|
|
|
39
40
|
});
|
|
40
41
|
const normalizedOptions = yield normalizeOptions(host, options);
|
|
41
42
|
yield initExpress(host, Object.assign(Object.assign({}, options), { skipFormat: true, skipPackageJson: false, linter: eslint_1.Linter.EsLint, unitTestRunner: 'jest', js: false, directory: normalizedOptions.projectRoot }));
|
|
42
|
-
(0, devkit_1.addDependenciesToPackageJson)(host, Object.assign(Object.assign({ '@abgov/adsp-service-sdk': '^2.23.0', '@asteasolutions/zod-to-openapi': '^7.3.4', compression: '^1.8.1', cors: '^2.8.5', dotenv: '^16.4.7', envalid: '^8.0.0', helmet: '^8.0.0', passport: '^0.7.0', 'passport-anonymous': '^1.0.1', zod: '^3.0.0' }, (normalizedOptions.database === 'postgres'
|
|
43
|
+
(0, devkit_1.addDependenciesToPackageJson)(host, Object.assign(Object.assign({ '@abgov/adsp-service-sdk': '^2.23.0', '@asteasolutions/zod-to-openapi': '^7.3.4', compression: '^1.8.1', cors: '^2.8.5', dotenv: '^16.4.7', envalid: '^8.0.0', helmet: '^8.0.0', passport: '^0.7.0', 'passport-anonymous': '^1.0.1', zod: '^3.0.0' }, (normalizedOptions.database === 'postgres'
|
|
44
|
+
? { 'drizzle-orm': '^0.44.0', pg: '^8.11.0' }
|
|
45
|
+
: {})), (normalizedOptions.database === 'mongo' ? { mongoose: '^8.0.0' } : {})), Object.assign(Object.assign({ '@types/compression': '^1.7.5', '@types/cors': '^2.8.17', '@types/passport': '^1.0.16', '@types/passport-anonymous': '^1.0.3', supertest: '^7.0.0', '@types/supertest': '^6.0.0' }, (normalizedOptions.database === 'postgres'
|
|
46
|
+
? { 'drizzle-kit': '^0.31.0', '@types/pg': '^8.11.0' }
|
|
47
|
+
: {})), { 'eslint-plugin-security': '^3.0.0', 'eslint-plugin-no-secrets': '^2.0.0', 'eslint-plugin-jest': '^28.0.0' }));
|
|
43
48
|
addFiles(host, normalizedOptions);
|
|
44
|
-
(0, quality_1.addEslintQualityRules)(host, normalizedOptions.projectRoot, [
|
|
49
|
+
(0, quality_1.addEslintQualityRules)(host, normalizedOptions.projectRoot, [
|
|
50
|
+
'**/*.spec.ts',
|
|
51
|
+
'**/*.test.ts',
|
|
52
|
+
]);
|
|
45
53
|
(0, quality_1.addJestCoverageConfig)(host, normalizedOptions.projectRoot);
|
|
46
|
-
|
|
47
|
-
//
|
|
48
|
-
|
|
54
|
+
// Equips coding agents with grounded ADSP docs + Node SDK reference lookup,
|
|
55
|
+
// and shared VS Code settings — nx-adsp's own workspace-root setup, run as
|
|
56
|
+
// one step here in case `nx-adsp:init` hasn't been run standalone yet.
|
|
57
|
+
yield (0, init_1.default)(host);
|
|
49
58
|
const projectConfig = (0, devkit_1.readProjectConfiguration)(host, normalizedOptions.projectName);
|
|
50
59
|
const targets = Object.assign({}, projectConfig.targets);
|
|
51
60
|
if (normalizedOptions.database !== 'none') {
|
|
@@ -116,7 +125,9 @@ function default_1(host, options) {
|
|
|
116
125
|
// developer-owned config too (KEYCLOAK_ROOT_URL, DIRECTORY_URL, etc.) and
|
|
117
126
|
// shouldn't be blanket-gitignored.
|
|
118
127
|
const envLocalPath = `${normalizedOptions.projectRoot}/.env.local`;
|
|
119
|
-
const existing = host.exists(envLocalPath)
|
|
128
|
+
const existing = host.exists(envLocalPath)
|
|
129
|
+
? host.read(envLocalPath).toString()
|
|
130
|
+
: '';
|
|
120
131
|
if (!existing.includes('CLIENT_SECRET=')) {
|
|
121
132
|
host.write(envLocalPath, `${existing ? existing.trimEnd() + '\n' : ''}CLIENT_SECRET=${clientSecret}\n`);
|
|
122
133
|
}
|
|
@@ -132,10 +143,12 @@ function default_1(host, options) {
|
|
|
132
143
|
// so it's already on normalizedOptions.accessToken (--tenant) or adsp.accessToken.
|
|
133
144
|
const accessToken = (_f = normalizedOptions.accessToken) !== null && _f !== void 0 ? _f : normalizedOptions.adsp.accessToken;
|
|
134
145
|
const mainTs = (_h = (_g = host.read(`${normalizedOptions.projectRoot}/src/main.ts`)) === null || _g === void 0 ? void 0 : _g.toString()) !== null && _h !== void 0 ? _h : '';
|
|
135
|
-
const environmentTs = (_k = (_j = host
|
|
146
|
+
const environmentTs = (_k = (_j = host
|
|
147
|
+
.read(`${normalizedOptions.projectRoot}/src/environment.ts`)) === null || _j === void 0 ? void 0 : _j.toString()) !== null && _k !== void 0 ? _k : '';
|
|
136
148
|
const eventsTs = (_m = (_l = host.read(`${normalizedOptions.projectRoot}/src/events.ts`)) === null || _l === void 0 ? void 0 : _l.toString()) !== null && _m !== void 0 ? _m : '';
|
|
137
149
|
const databaseTs = normalizedOptions.database !== 'none'
|
|
138
|
-
? (_p = (_o = host
|
|
150
|
+
? ((_p = (_o = host
|
|
151
|
+
.read(`${normalizedOptions.projectRoot}/src/database.ts`)) === null || _o === void 0 ? void 0 : _o.toString()) !== null && _p !== void 0 ? _p : '')
|
|
139
152
|
: undefined;
|
|
140
153
|
const agentResult = yield (0, agent_1.consultAgent)(normalizedOptions.adsp.directoryServiceUrl, accessToken, {
|
|
141
154
|
projectName: normalizedOptions.projectName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-service.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/express-service/express-service.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"express-service.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/express-service/express-service.ts"],"names":[],"mappings":"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"}
|