@abgov/nx-adsp 5.9.0-beta.1 → 5.9.0-beta.3

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 (24) hide show
  1. package/generators.json +5 -0
  2. package/package.json +1 -1
  3. package/src/generators/react-form/files/__fileName__/__fileName__.slice.ts__tmpl__ +2 -2
  4. package/src/generators/react-form/files/__fileName__/__fileName__.tsx__tmpl__ +2 -96
  5. package/src/generators/react-form/includes/input-template.ejs +107 -0
  6. package/src/generators/react-form/react-form.js +1 -1
  7. package/src/generators/react-form/react-form.js.map +1 -1
  8. package/src/generators/react-form/react-forms.spec.ts +1 -0
  9. package/src/generators/react-form/schema.d.ts +1 -0
  10. package/src/generators/react-form/schema.json +3 -3
  11. package/src/generators/react-task-list/files/__fileName__/__fileName__.module.css__tmpl__ +80 -0
  12. package/src/generators/react-task-list/files/__fileName__/__fileName__.slice.spec.ts__tmpl__ +26 -0
  13. package/src/generators/react-task-list/files/__fileName__/__fileName__.slice.ts__tmpl__ +723 -0
  14. package/src/generators/react-task-list/files/__fileName__/__fileName__.tsx__tmpl__ +595 -0
  15. package/src/generators/react-task-list/files/__fileName__/task.d.ts__tmpl__ +30 -0
  16. package/src/generators/react-task-list/react-task-list.d.ts +3 -0
  17. package/src/generators/react-task-list/react-task-list.js +124 -0
  18. package/src/generators/react-task-list/react-task-list.js.map +1 -0
  19. package/src/generators/react-task-list/react-task-list.spec.ts +71 -0
  20. package/src/generators/react-task-list/schema.d.ts +14 -0
  21. package/src/generators/react-task-list/schema.json +45 -0
  22. package/src/utils/form.d.ts +1 -0
  23. package/src/utils/form.js.map +1 -1
  24. package/src/utils/task.d.ts +6 -0
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const nx_oc_1 = require("@abgov/nx-oc");
5
+ const devkit_1 = require("@nrwl/devkit");
6
+ const axios_1 = require("axios");
7
+ const enquirer_1 = require("enquirer");
8
+ const path = require("path");
9
+ function getQueueDefinition(configurationServiceUrl, token) {
10
+ var _a;
11
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
12
+ const { data } = yield axios_1.default.get(new URL('configuration/v2/configuration/platform/task-service/active', configurationServiceUrl).href, {
13
+ headers: { Authorization: `Bearer ${token}` },
14
+ params: { orLatest: true },
15
+ });
16
+ const queues = Object.values(((_a = data === null || data === void 0 ? void 0 : data.configuration) === null || _a === void 0 ? void 0 : _a.queues) || {});
17
+ const choices = queues.map((queue) => `${queue.namespace}:${queue.name}`);
18
+ if (choices.length < 1) {
19
+ throw new Error('No queues definitions found.');
20
+ }
21
+ const { definition } = yield (0, enquirer_1.prompt)({
22
+ type: 'autocomplete',
23
+ name: 'definition',
24
+ message: 'Which queue definition do you want to generate a task list for?',
25
+ choices,
26
+ });
27
+ const queueDefinition = queues.find((queue) => `${queue.namespace}:${queue.name}` === definition);
28
+ const { addStream } = yield (0, enquirer_1.prompt)({
29
+ type: 'confirm',
30
+ name: 'addStream',
31
+ message: 'Do you want to add an event stream for live updates?',
32
+ });
33
+ const { fileName } = (0, devkit_1.names)(queueDefinition.name);
34
+ let updateStreamId = '';
35
+ if (addStream) {
36
+ updateStreamId = `${fileName}-updates`;
37
+ const result = yield axios_1.default.patch(new URL('configuration/v2/configuration/platform/push-service', configurationServiceUrl).href, {
38
+ operation: 'UPDATE',
39
+ update: {
40
+ [updateStreamId]: {
41
+ id: updateStreamId,
42
+ name: `${queueDefinition.name} updates`,
43
+ description: `Provides updates of task events associated with queue ${queueDefinition.namespace}:${queueDefinition.name}.`,
44
+ events: [
45
+ 'task-created',
46
+ 'task-assigned',
47
+ 'task-priority-set',
48
+ 'task-started',
49
+ 'task-completed',
50
+ 'task-cancelled',
51
+ 'task-updated',
52
+ ].map((eventName) => ({
53
+ namespace: 'task-service',
54
+ name: eventName,
55
+ criteria: {
56
+ context: {
57
+ queueNamespace: queueDefinition.namespace,
58
+ queueName: queueDefinition.name,
59
+ },
60
+ },
61
+ })),
62
+ webhooks: [],
63
+ subscriberRoles: [
64
+ ...new Set([
65
+ ...(queueDefinition.workerRoles || []),
66
+ ...(queueDefinition.assignerRoles || []),
67
+ ]),
68
+ ],
69
+ publicSubscribe: false,
70
+ },
71
+ },
72
+ }, { headers: { Authorization: `Bearer ${token}` } });
73
+ if (result.status === 200) {
74
+ console.log(`Created push stream ${updateStreamId} for task updates.`);
75
+ }
76
+ }
77
+ return { queueDefinition, updateStreamId };
78
+ });
79
+ }
80
+ function normalizeOptions(host, options) {
81
+ var _a, _b;
82
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
83
+ const { env, accessToken } = options;
84
+ const projectName = (0, devkit_1.names)(options.project).fileName;
85
+ const projectRoot = `${(0, devkit_1.getWorkspaceLayout)(host).appsDir}/${projectName}`;
86
+ const environment = nx_oc_1.environments[env || 'prod'];
87
+ const urls = yield (0, nx_oc_1.getServiceUrls)(environment.directoryServiceUrl);
88
+ const tenantServiceUrl = urls['urn:ads:platform:tenant-service:v2'];
89
+ const configurationServiceUrl = urls['urn:ads:platform:configuration-service'];
90
+ let tenantToken = accessToken;
91
+ if (!accessToken) {
92
+ const environmentFile = `${projectRoot}/src/environments/environment.ts`;
93
+ const result = (_a = host.read(environmentFile)) === null || _a === void 0 ? void 0 : _a.toString();
94
+ let realm = (_b = /realm: '([a-zA-Z0-9-]{36})',/.exec(result)) === null || _b === void 0 ? void 0 : _b[1];
95
+ if (!realm) {
96
+ const token = yield (0, nx_oc_1.realmLogin)(environment.accessServiceUrl, 'core');
97
+ const tenant = yield (0, nx_oc_1.selectTenant)(tenantServiceUrl, token);
98
+ realm = tenant.realm;
99
+ }
100
+ tenantToken = yield (0, nx_oc_1.realmLogin)(environment.accessServiceUrl, realm);
101
+ }
102
+ const { queueDefinition, updateStreamId } = yield getQueueDefinition(configurationServiceUrl, tenantToken);
103
+ return Object.assign(Object.assign({}, options), { projectRoot,
104
+ queueDefinition,
105
+ updateStreamId });
106
+ });
107
+ }
108
+ function addFiles(host, options) {
109
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
110
+ const queueNames = (0, devkit_1.names)(options.queueDefinition.name);
111
+ const templateOptions = Object.assign(Object.assign(Object.assign({}, options), queueNames), { queueNamespace: options.queueDefinition.namespace, queueName: options.queueDefinition.name, tmpl: '' });
112
+ (0, devkit_1.generateFiles)(host, path.join(__dirname, 'files'), `${options.projectRoot}/src/app`, templateOptions);
113
+ });
114
+ }
115
+ function default_1(host, options) {
116
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
117
+ const normalizedOptions = yield normalizeOptions(host, options);
118
+ yield addFiles(host, normalizedOptions);
119
+ yield (0, devkit_1.formatFiles)(host);
120
+ return;
121
+ });
122
+ }
123
+ exports.default = default_1;
124
+ //# sourceMappingURL=react-task-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-task-list.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/react-task-list/react-task-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import * as utils from '@abgov/nx-oc';
2
+ import { addProjectConfiguration } from '@nrwl/devkit';
3
+ import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing';
4
+ import axios from 'axios';
5
+ import { prompt } from 'enquirer';
6
+
7
+ import { Schema } from './schema';
8
+ import generator from './react-task-list';
9
+ import { QueueDefinition } from '../../utils/task';
10
+
11
+ const queueDefinition: QueueDefinition = {
12
+ namespace: 'test',
13
+ name: 'run-test',
14
+ assignerRoles: ['test-assigner'],
15
+ workerRoles: ['test-worker'],
16
+ };
17
+
18
+ jest.mock('@abgov/nx-oc');
19
+ const utilsMock = utils as jest.Mocked<typeof utils>;
20
+ utilsMock.getServiceUrls.mockResolvedValue({
21
+ 'urn:ads:platform:tenant-service:v2': 'https://tenant-service/tenant/v2',
22
+ 'urn:ads:platform:configuration-service': 'https://configuration-service',
23
+ });
24
+
25
+ utilsMock.realmLogin.mockResolvedValue('token');
26
+ utilsMock.selectTenant.mockResolvedValue({ name: 'demo', realm: 'demo' });
27
+
28
+ jest.mock('axios');
29
+ const axiosMock = axios as jest.Mocked<typeof axios>;
30
+ axiosMock.get.mockResolvedValueOnce({
31
+ data: { configuration: { queues: { 'test:run-test': queueDefinition } } },
32
+ });
33
+ axiosMock.patch.mockResolvedValueOnce({
34
+ data: { 'test:run-test': queueDefinition },
35
+ });
36
+
37
+ jest.mock('enquirer', () => ({ prompt: jest.fn() }));
38
+ const promptMock = prompt as jest.Mock;
39
+ promptMock
40
+ .mockResolvedValueOnce({ definition: 'test:run-test' })
41
+ .mockResolvedValueOnce({ addStream: true });
42
+
43
+ describe('React Task List Generator', () => {
44
+ const options: Schema = {
45
+ project: 'test',
46
+ env: 'dev',
47
+ };
48
+
49
+ it('can run', async () => {
50
+ const host = createTreeWithEmptyV1Workspace();
51
+
52
+ addProjectConfiguration(host, 'test', {
53
+ root: 'apps/test',
54
+ projectType: 'application',
55
+ targets: {
56
+ build: {
57
+ executor: '@nrwl/web:webpack',
58
+ },
59
+ },
60
+ });
61
+
62
+ await generator(host, options);
63
+ expect(host.exists('apps/test/src/app/run-test/run-test.tsx')).toBeTruthy();
64
+ expect(
65
+ host.exists('apps/test/src/app/run-test/run-test.slice.ts')
66
+ ).toBeTruthy();
67
+ expect(
68
+ host.exists('apps/test/src/app/run-test/run-test.module.css')
69
+ ).toBeTruthy();
70
+ }, 30000);
71
+ });
@@ -0,0 +1,14 @@
1
+ import { EnvironmentName } from '@abgov/nx-oc';
2
+ import { QueueDefinition } from '../../utils/task';
3
+
4
+ export interface Schema {
5
+ project: string;
6
+ env: EnvironmentName;
7
+ accessToken?: string;
8
+ }
9
+
10
+ export interface NormalizedSchema extends Schema {
11
+ projectRoot: string;
12
+ queueDefinition: QueueDefinition;
13
+ updateStreamId: string;
14
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "cli": "nx",
4
+ "id": "NxAdspReactTaskList",
5
+ "title": "",
6
+ "type": "object",
7
+ "properties": {
8
+ "project": {
9
+ "type": "string",
10
+ "description": "Project to add task list component in.",
11
+ "$default": {
12
+ "$source": "argv",
13
+ "index": 0
14
+ },
15
+ "x-prompt": "Which project to add task list component for?"
16
+ },
17
+ "env": {
18
+ "type": "string",
19
+ "description": "Environment to target.",
20
+ "$default": {
21
+ "$source": "argv",
22
+ "index": 1
23
+ },
24
+ "alias": "e",
25
+ "x-prompt": {
26
+ "message": "Which ADSP environment do you want to target? (Typically test for ADSP tenants.)",
27
+ "type": "list",
28
+ "items": [
29
+ "test",
30
+ "prod",
31
+ "dev"
32
+ ]
33
+ }
34
+ },
35
+ "accessToken": {
36
+ "type": "string",
37
+ "description": "Access token for retrieving configuration from ADSP APIs.",
38
+ "alias": "at"
39
+ }
40
+ },
41
+ "required": [
42
+ "project",
43
+ "env"
44
+ ]
45
+ }
@@ -1,4 +1,5 @@
1
1
  export interface FormDefinition {
2
+ id: string;
2
3
  name: string;
3
4
  dataSchema: Record<string, unknown>;
4
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/form.ts"],"names":[],"mappings":";;;;AAAA,yEAAoD;AAOpD,SAAsB,qBAAqB,CAAC,EAC1C,IAAI,EACJ,UAAU,GACK;;QACf,MAAM,KAAK,GAAG,MAAM,IAAA,mCAAO,EAAC,UAAU,EAAE,IAAI,EAAE;YAC5C,oBAAoB,EAAE,KAAK;YAC3B,aAAa,EAAE,EAAE;YACjB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AAXD,sDAWC"}
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/form.ts"],"names":[],"mappings":";;;;AAAA,yEAAoD;AAQpD,SAAsB,qBAAqB,CAAC,EAC1C,IAAI,EACJ,UAAU,GACK;;QACf,MAAM,KAAK,GAAG,MAAM,IAAA,mCAAO,EAAC,UAAU,EAAE,IAAI,EAAE;YAC5C,oBAAoB,EAAE,KAAK;YAC3B,aAAa,EAAE,EAAE;YACjB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AAXD,sDAWC"}
@@ -0,0 +1,6 @@
1
+ export interface QueueDefinition {
2
+ namespace: string;
3
+ name: string;
4
+ assignerRoles: string[];
5
+ workerRoles: string[];
6
+ }