contensis-cli 1.1.2-beta.2 → 1.1.2-beta.4

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/version.ts"],
4
- "sourcesContent": ["export const LIB_VERSION = \"1.1.2-beta.2\";\n"],
4
+ "sourcesContent": ["export const LIB_VERSION = \"1.1.2-beta.4\";\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "contensis-cli",
3
- "version": "1.1.2-beta.2",
3
+ "version": "1.1.2-beta.4",
4
4
  "description": "A fully featured Contensis command line interface with a shell UI provides simple and intuitive ways to manage or profile your content in any NodeJS terminal.",
5
5
  "repository": "https://github.com/contensis/cli",
6
6
  "homepage": "https://github.com/contensis/cli/tree/main/packages/contensis-cli#readme",
@@ -28,7 +28,6 @@
28
28
  "app-root-path": "^3.1.0",
29
29
  "chalk": "^4.1.2",
30
30
  "commander": "^9.4.1",
31
- "contensis-management-api": "^2.1.2",
32
31
  "csv": "^6.1.0",
33
32
  "dayjs": "^1.11.6",
34
33
  "diff": "^5.1.0",
@@ -40,7 +39,7 @@
40
39
  "jsonpath-mapper": "^1.1.0",
41
40
  "keytar": "^7.9.0",
42
41
  "lodash": "^4.17.21",
43
- "migratortron": "^1.0.0-beta.39",
42
+ "migratortron": "^1.0.0-beta.40",
44
43
  "nanospinner": "^1.1.0",
45
44
  "node-fetch": "^2.6.7",
46
45
  "parse-git-config": "^3.0.0",
@@ -49,20 +49,28 @@ Example call:
49
49
  dev
50
50
  .command('requests')
51
51
  .description('launch request handler for local development')
52
- .argument('[block-ids...]', 'ids of any blocks to develop locally')
52
+ .argument(
53
+ '[block-id...]',
54
+ 'id of block to develop locally and the local uri to pass requests for this block onto'
55
+ )
53
56
  .option('--args <args...>', 'override or add additional args')
54
- .usage('[block-ids...]')
57
+ .option(
58
+ '--release <release>',
59
+ 'launch a specific release version of the request handler'
60
+ )
61
+ .usage('[block-id] [local-uri]')
55
62
  .addHelpText(
56
63
  'after',
57
64
  `
58
65
  Example call:
59
- > dev requests test-block-one\n`
66
+ > dev requests test-block-one
67
+ > dev requests my-website http://localhost:8080\n`
60
68
  )
61
- .action(async (blockIds: string[] = [], opts) => {
69
+ .action(async (blockId: string[] = [], opts) => {
62
70
  await devCommand(
63
- ['dev', 'requests', blockIds.join(' ')],
71
+ ['dev', 'requests', blockId.join(' ')],
64
72
  opts
65
- ).ExecRequestHandler(blockIds, opts?.args);
73
+ ).ExecRequestHandler(blockId, opts?.args, opts.release);
66
74
  });
67
75
 
68
76
  return dev;
@@ -298,6 +298,7 @@ Example call:
298
298
  Example call:
299
299
  > get block contensis-website
300
300
  > get block contensis-website develop latest
301
+ > get block contensis-website feature-branch 3
301
302
  `
302
303
  )
303
304
  .action(async (blockId: string, branch: string, version: string, opts) => {
@@ -6,7 +6,7 @@ import { LogMessages } from '~/localisation/en-GB';
6
6
  import GitHubCliModuleProvider from '~/providers/GitHubCliModuleProvider';
7
7
 
8
8
  import ManifestProvider from '~/providers/ManifestProvider';
9
- import { appRootDir, joinPath } from '~/providers/file-provider';
9
+ import { appRootDir, checkDir, joinPath } from '~/providers/file-provider';
10
10
  import { isDebug } from '~/util/debug';
11
11
  import { Logger } from '~/util/logger';
12
12
 
@@ -21,6 +21,7 @@ export class RequestHandlerFactory {
21
21
  cmd = 'Zengenti.Contensis.RequestHandler.LocalDevelopment';
22
22
 
23
23
  prerelease;
24
+ version; // pass in a specific release version to run
24
25
 
25
26
  get exePath() {
26
27
  return path.join(this.basePath, `${this.name}-${this.moduleInfo.version}`);
@@ -35,29 +36,31 @@ export class RequestHandlerFactory {
35
36
  );
36
37
  }
37
38
 
38
- constructor(prerelease = false) {
39
+ constructor(version?: string, prerelease = false) {
39
40
  this.prerelease = prerelease;
41
+ this.version = version;
40
42
  }
41
43
 
42
44
  // Use the factory to create a request handler instance
43
45
  // handling the download and updating of the external binary
44
46
  async Create() {
45
- const { moduleInfo } = this;
46
- const firstUse = !moduleInfo?.version || moduleInfo?.version === '*';
47
+ const { moduleInfo, version } = this;
48
+ const downloadImmediately =
49
+ !moduleInfo?.version || moduleInfo?.version === '*' || this.version;
47
50
 
48
- if (firstUse) {
51
+ if (downloadImmediately) {
49
52
  // Create cli-manifest.json
50
53
  this.manifest.writeModule(this.name, this.moduleInfo);
51
54
 
52
55
  // Download for first time use (await)
53
- await this.CheckUpdate({ verbose: true });
56
+ await this.CheckUpdate({ verbose: true, version });
54
57
  }
55
58
 
56
59
  // Apply any downloaded/pending update so we launch that version
57
60
  await this.ApplyUpdate();
58
61
 
59
62
  // Fire an async update check and continue working in the background (do not await)
60
- if (!firstUse) this.CheckUpdate();
63
+ if (!downloadImmediately) this.CheckUpdate();
61
64
 
62
65
  // Return a RequestHandler ready to invoke
63
66
  return this.CreateInvoke(this);
@@ -121,13 +124,16 @@ export class RequestHandlerFactory {
121
124
  };
122
125
  }
123
126
 
124
- async CheckUpdate({ verbose = false }: { verbose?: boolean } = {}) {
127
+ async CheckUpdate({
128
+ verbose = false,
129
+ version,
130
+ }: { verbose?: boolean; version?: string } = {}) {
125
131
  const { cmd, debug, log, manifest, messages, moduleInfo } = this;
126
132
 
127
133
  const github = new GitHubCliModuleProvider(moduleInfo.github);
128
134
 
129
135
  // Find latest version
130
- const release = await github.FindLatestRelease();
136
+ const release = await github.FindLatestRelease(version);
131
137
 
132
138
  if (verbose || debug)
133
139
  if (release)
@@ -140,10 +146,14 @@ export class RequestHandlerFactory {
140
146
  else
141
147
  log.warning(messages.devrequests.install.notFound(moduleInfo.github));
142
148
 
149
+ const downloadSpecificRelease =
150
+ version && !checkDir('c') && release?.tag_name;
151
+
143
152
  // Should we download an update?
144
153
  if (
145
- release?.tag_name &&
146
- ![moduleInfo.version, moduleInfo.install].includes(release.tag_name)
154
+ (release?.tag_name &&
155
+ ![moduleInfo.version, moduleInfo.install].includes(release.tag_name)) ||
156
+ downloadSpecificRelease
147
157
  ) {
148
158
  // Download platform-specific release asset
149
159
  const downloadPath = path.join(
@@ -190,10 +200,16 @@ export class RequestHandlerFactory {
190
200
  ),
191
201
  });
192
202
 
193
- // Update module info with downloaded release
194
- this.moduleInfo.install = release.tag_name;
195
- // Write module info update to manifest so it installs on next invoke
196
- manifest.writeModule(this.name, this.moduleInfo);
203
+ if (!version) {
204
+ // Update module info with downloaded release
205
+ this.moduleInfo.install = release.tag_name;
206
+ // Write module info update to manifest so it installs on next invoke
207
+ manifest.writeModule(this.name, this.moduleInfo);
208
+ } else {
209
+ // Set module version in memory so the request handler
210
+ // will be invoked with this version this time only
211
+ this.moduleInfo.version = release.tag_name;
212
+ }
197
213
  }
198
214
  }
199
215
  }
@@ -226,4 +242,5 @@ export class RequestHandlerFactory {
226
242
  }
227
243
  }
228
244
 
229
- export const createRequestHandler = () => new RequestHandlerFactory().Create();
245
+ export const createRequestHandler = (version?: string) =>
246
+ new RequestHandlerFactory(version).Create();
@@ -620,6 +620,8 @@ export const LogMessages = {
620
620
  )}?`,
621
621
  },
622
622
  launch: () => `Launching request handler for local development`,
623
+ overrideBlock: () => `Which block will you be running?`,
624
+ overrideUri: () => `How to access your development site`,
623
625
  spawn: () =>
624
626
  `If you see a firewall popup requesting network access, it is safe to approve`,
625
627
  exited: (code: number | null) =>
@@ -1,4 +1,5 @@
1
1
  import { ContensisMigrationService } from 'migratortron';
2
+ import PQueue from 'p-queue';
2
3
  import ContensisCli from '~/services/ContensisCliService';
3
4
 
4
5
  type EndpointJson = {
@@ -32,114 +33,168 @@ type RendererRuleJson = {
32
33
  interface ISiteConfigYaml {
33
34
  alias: string;
34
35
  projectId: string;
35
- accessToken: string;
36
+ iisHostname: string;
37
+ podClusterId: string;
38
+ accessToken: string; // needed?
36
39
  clientId: string;
37
40
  sharedSecret: string;
38
41
  blocks: BlockJson[];
39
42
  renderers: RendererJson[];
40
43
  }
41
44
 
42
- export const buildSiteConfig = async (cli: ContensisCli) => {
43
- const { currentEnv, env, log, messages } = cli;
44
- const siteConfig: ISiteConfigYaml = {
45
- alias: cli.currentEnv,
46
- projectId: cli.currentProject,
47
- accessToken: '',
48
- clientId: '',
49
- sharedSecret: '',
50
- blocks: [],
51
- renderers: [],
45
+ class RequestHandlerArgs {
46
+ private cli;
47
+ args?: string[];
48
+ siteConfig?: ISiteConfigYaml;
49
+
50
+ constructor(cli: ContensisCli) {
51
+ this.cli = cli;
52
+ }
53
+
54
+ Create = async () => {
55
+ this.siteConfig = await this.buildSiteConfig();
56
+ await this.cli.Login(this.cli.env.lastUserId, { silent: true }); // to hydrate the auth service
57
+ this.args = this.getArgs();
52
58
  };
53
59
 
54
- const getBlocks = async (contensis: ContensisMigrationService) => {
55
- const [err, blocksRaw] = await contensis.blocks.GetBlocks();
56
- if (err) log.error(messages.blocks.noList(currentEnv, env.currentProject));
60
+ buildSiteConfig = async () => {
61
+ const { currentEnv, currentProject, env, log, messages, urls } = this.cli;
62
+ const contensis = await this.cli.ConnectContensis();
57
63
 
58
- // const blocksRaw = await cli.PrintBlocks();
64
+ const siteConfig: ISiteConfigYaml = {
65
+ alias: currentEnv,
66
+ projectId: currentProject,
67
+ iisHostname: urls?.iisPreviewWeb.split('//')[1] || '',
68
+ podClusterId: 'hq',
69
+ accessToken: '',
70
+ clientId: '',
71
+ sharedSecret: '',
72
+ blocks: [],
73
+ renderers: [],
74
+ };
59
75
 
60
- const blocks: BlockJson[] = [];
61
- for (const block of blocksRaw || []) {
62
- // Retrieve block version
63
- const [err, versions] = await contensis.blocks.GetBlockVersions(
64
- block.id,
65
- 'default',
66
- 'latest'
67
- );
68
- if (err || versions?.length === 0)
69
- log.warning(
70
- messages.blocks.noGet(
76
+ const getBlocks = async (contensis: ContensisMigrationService) => {
77
+ const [err, blocksRaw] = await contensis.blocks.GetBlocks();
78
+ if (err)
79
+ log.error(messages.blocks.noList(currentEnv, env.currentProject));
80
+
81
+ // const blocksRaw = await cli.PrintBlocks();
82
+
83
+ const blocks: BlockJson[] = [];
84
+ const queue = new PQueue({ concurrency: 4 });
85
+ for (const block of blocksRaw || []) {
86
+ queue.add(async () => {
87
+ // Retrieve block version
88
+ const [err, versions] = await contensis.blocks.GetBlockVersions(
71
89
  block.id,
72
90
  'default',
73
- 'latest',
74
- currentEnv,
75
- env.currentProject
76
- )
77
- );
78
- if (versions?.[0]) {
79
- const v = versions[0];
80
- blocks.push({
81
- id: v.id,
82
- baseUri: v.previewUrl,
83
- staticPaths: v.staticPaths,
84
- endpoints: v.endpoints,
85
- versionNo: v.version.versionNo,
86
- branch: v.source.branch,
91
+ 'latest'
92
+ );
93
+ if (err || versions?.length === 0)
94
+ log.warning(
95
+ messages.blocks.noGet(
96
+ block.id,
97
+ 'default',
98
+ 'latest',
99
+ currentEnv,
100
+ env.currentProject
101
+ )
102
+ );
103
+ if (versions?.[0]) {
104
+ const v = versions[0];
105
+ blocks.push({
106
+ id: v.id,
107
+ baseUri: v.previewUrl,
108
+ staticPaths: v.staticPaths,
109
+ endpoints: v.endpoints,
110
+ versionNo: v.version.versionNo,
111
+ branch: v.source.branch,
112
+ });
113
+ }
87
114
  });
88
115
  }
116
+
117
+ await queue.onIdle();
118
+ return blocks;
119
+ };
120
+
121
+ if (contensis) {
122
+ const [blocks, renderers] = await Promise.all([
123
+ getBlocks(contensis),
124
+ contensis.renderers.GetRenderers(),
125
+ ]);
126
+
127
+ siteConfig.blocks = blocks;
128
+ siteConfig.renderers = renderers?.[1]
129
+ ?.filter(r => blocks.find(b => b.id === r.id))
130
+ .map(r => ({
131
+ id: r.id,
132
+ name: r.name,
133
+ assignedContentTypes: r.assignedContentTypes,
134
+ rules: r.rules,
135
+ }));
89
136
  }
90
- return blocks;
137
+ return siteConfig;
91
138
  };
92
139
 
93
- const contensis = await cli.ConnectContensis();
94
- if (contensis) {
95
- const [blocks, renderers] = await Promise.all([
96
- getBlocks(contensis),
97
- contensis.renderers.GetRenderers(),
98
- ]);
99
-
100
- siteConfig.blocks = blocks;
101
- siteConfig.renderers = renderers?.[1]?.map(r => ({
102
- id: r.id,
103
- name: r.name,
104
- assignedContentTypes: r.assignedContentTypes,
105
- rules: r.rules,
106
- }));
107
- }
108
- return siteConfig;
109
- };
140
+ getArgs = (overrideArgs: string[] = []) => {
141
+ const args = overrideArgs
142
+ ? typeof overrideArgs?.[0] === 'string' &&
143
+ overrideArgs[0].includes(' ', 2)
144
+ ? overrideArgs[0].split(' ')
145
+ : overrideArgs
146
+ : []; // args could be [ '-c .\\site_config.yaml' ] or [ '-c', '.\\site_config.yaml' ]
110
147
 
111
- export const requestHandlerCliArgs = async (
112
- cli: ContensisCli,
113
- overrideArgs: string[] = []
114
- ) => {
115
- const args = overrideArgs
116
- ? typeof overrideArgs?.[0] === 'string' && overrideArgs[0].includes(' ', 2)
117
- ? overrideArgs[0].split(' ')
118
- : overrideArgs
119
- : []; // args could be [ '-c .\\site_config.yaml' ] or [ '-c', '.\\site_config.yaml' ]
120
-
121
- const siteConfig = await buildSiteConfig(cli);
122
- // Add required args
123
- if (!args.find(a => a === '--alias')) args.push('--alias', cli.currentEnv);
124
- if (!args.find(a => a === '--project-api-id'))
125
- args.push('--project-api-id', cli.currentProject);
126
- if (!args.find(a => a === '--blocks-json'))
127
- args.push('--blocks-json', JSON.stringify(siteConfig.blocks));
128
- if (!args.find(a => a === '--renderers-json'))
129
- args.push('--renderers-json', JSON.stringify(siteConfig.renderers));
130
-
131
- await cli.Login(cli.env.lastUserId, { silent: true }); // to hydrate the auth service
132
- const client = cli.auth?.clientDetails;
133
- if (client) {
134
- if (!args.find(a => a === '--client-id') && 'clientId' in client)
135
- args.push('--client-id', client.clientId);
136
- if (!args.find(a => a === '--client-secret') && 'clientSecret' in client)
137
- args.push('--client-secret', client.clientSecret);
138
- if (!args.find(a => a === '--username') && 'username' in client)
139
- args.push('--username', client.username);
140
- if (!args.find(a => a === '--password') && 'password' in client)
141
- args.push('--password', client.password);
142
- }
148
+ const { cli, siteConfig } = this;
149
+ if (siteConfig) {
150
+ // Add required args
151
+ if (!args.find(a => a === '--alias'))
152
+ args.push('--alias', cli.currentEnv);
153
+ if (!args.find(a => a === '--project-api-id'))
154
+ args.push('--project-api-id', cli.currentProject);
155
+ if (!args.find(a => a === '--iis-hostname'))
156
+ args.push('--iis-hostname', siteConfig.iisHostname);
157
+ if (!args.find(a => a === '--pod-cluster-id'))
158
+ args.push('--pod-cluster-id', siteConfig.podClusterId);
159
+ if (!args.find(a => a === '--blocks-json'))
160
+ args.push('--blocks-json', JSON.stringify(siteConfig.blocks));
161
+ if (!args.find(a => a === '--renderers-json'))
162
+ args.push('--renderers-json', JSON.stringify(siteConfig.renderers));
163
+ }
143
164
 
144
- return args;
145
- };
165
+ const client = cli.auth?.clientDetails;
166
+ if (client) {
167
+ if (!args.find(a => a === '--client-id') && 'clientId' in client)
168
+ args.push('--client-id', client.clientId);
169
+ if (!args.find(a => a === '--client-secret') && 'clientSecret' in client)
170
+ args.push('--client-secret', client.clientSecret);
171
+ if (!args.find(a => a === '--username') && 'username' in client)
172
+ args.push('--username', client.username);
173
+ if (!args.find(a => a === '--password') && 'password' in client)
174
+ args.push('--password', client.password);
175
+ }
176
+
177
+ return args;
178
+ };
179
+
180
+ overrideBlock = (blockId: string, overrideUri: string) => {
181
+ if (blockId && blockId !== 'none') {
182
+ const blockIndex = this.siteConfig?.blocks.findIndex(
183
+ b => b.id.toLowerCase() === blockId.toLowerCase()
184
+ );
185
+ if (
186
+ typeof blockIndex === 'number' &&
187
+ !isNaN(blockIndex) &&
188
+ this.siteConfig?.blocks[blockIndex]
189
+ ) {
190
+ this.siteConfig.blocks[blockIndex].baseUri = overrideUri;
191
+ // this.siteConfig.blocks[blockIndex].staticPaths.push(
192
+ // ...['/static/*', '/image-library/*']
193
+ // );
194
+ this.siteConfig.blocks[blockIndex].staticPaths.push('/*.js');
195
+ }
196
+ }
197
+ };
198
+ }
199
+
200
+ export default RequestHandlerArgs;
@@ -38,7 +38,7 @@ class GitHubCliModuleProvider {
38
38
  this.repo = repo;
39
39
  }
40
40
 
41
- async FindLatestRelease() {
41
+ async FindLatestRelease(version?: string) {
42
42
  const { http, latest_release_url, releases_url } = this;
43
43
  // return latest tag version is:
44
44
 
@@ -56,14 +56,18 @@ class GitHubCliModuleProvider {
56
56
  throw new Error(`Unable to get releases`, { cause: releasesErr });
57
57
  } else if (!releases || releases.length === 0)
58
58
  throw new Error(`No releases available`);
59
- else if (latestErr && !latest) {
59
+ else if (version) {
60
+ const release = releases.find(
61
+ r => r.tag_name.toLowerCase() === version.toLowerCase()
62
+ );
63
+ if (release) return release;
64
+ else throw new Error(`No release for ${version} found`);
65
+ } else if (latestErr && !latest) {
60
66
  if (latestResponse?.status === 404 && releases?.length) {
61
67
  // No latest release, check releases for prerelease version, fallback to last release
62
68
  const release = releases.find(r => r.prerelease) || releases[0];
63
69
 
64
- if (release) {
65
- return release;
66
- }
70
+ if (release) return release;
67
71
  }
68
72
  } else {
69
73
  return latest;
@@ -110,7 +114,7 @@ class GitHubCliModuleProvider {
110
114
  removeFile(filePath);
111
115
  }
112
116
 
113
- addExecutePermission(joinPath(path, cmd));
117
+ if (os.platform() !== 'win32') addExecutePermission(joinPath(path, cmd));
114
118
  } else
115
119
  throw new Error(
116
120
  `no asset found in release ${
@@ -94,6 +94,7 @@ export const cwdPath = (filePath: string) =>
94
94
  export const joinPath = path.join;
95
95
 
96
96
  export const addExecutePermission = (filePath: string) =>
97
+ // Fails in windows with `TypeError [ERR_INVALID_ARG_TYPE]: The "mode" argument must be of type number. Received undefined`
97
98
  fs.chmodSync(filePath, fs.constants.S_IRWXU);
98
99
 
99
100
  type DetectedFileType =
@@ -11,7 +11,7 @@ import { createRequestHandler } from '~/factories/RequestHandlerFactory';
11
11
  import { OutputOptionsConstructorArg } from '~/models/CliService';
12
12
  import { EnvContentsToAdd } from '~/models/DevService';
13
13
  import { mapCIWorkflowContent } from '~/mappers/DevInit-to-CIWorkflow';
14
- import { requestHandlerCliArgs } from '~/mappers/DevRequests-to-RequestHanderCliArgs';
14
+ import RequestHandlerArgs from '~/mappers/DevRequests-to-RequestHanderCliArgs';
15
15
  import { deployKeyRole } from '~/mappers/DevInit-to-RolePermissions';
16
16
  import { readFile, writeFile } from '~/providers/file-provider';
17
17
  import { diffFileContent } from '~/util/diff';
@@ -412,8 +412,9 @@ class ContensisDev extends ContensisRole {
412
412
  };
413
413
 
414
414
  ExecRequestHandler = async (
415
- blockIds: string[],
416
- overrideArgs: string[] = []
415
+ blockId: string[],
416
+ overrideArgs: string[] = [],
417
+ version?: string
417
418
  ) => {
418
419
  const { debug, log, messages } = this;
419
420
 
@@ -422,15 +423,45 @@ class ContensisDev extends ContensisRole {
422
423
  : log.info(messages.devrequests.launch());
423
424
 
424
425
  // Ensure request handler is available to use
425
- const requestHandler = await createRequestHandler();
426
+ const requestHandler = await createRequestHandler(version);
426
427
 
427
428
  // Generate args for request handler using CLI methods
429
+ const args = new RequestHandlerArgs(this);
428
430
  spinner?.start();
429
- const args = await requestHandlerCliArgs(this, overrideArgs);
431
+ await args.Create();
430
432
  spinner?.success();
431
433
 
434
+ // Prompt block id and dev uri to run locally (if not supplied)
435
+ const blockIdChoices = args.siteConfig?.blocks.map(block => block.id) || [];
436
+ blockIdChoices.push('none');
437
+ const defaultDeveloperUri = 'http://localhost:3000';
438
+
439
+ const { overrideBlockId, overrideUri } = blockId.length
440
+ ? {
441
+ overrideBlockId: blockId[0],
442
+ overrideUri: blockId?.[1] || defaultDeveloperUri,
443
+ }
444
+ : await inquirer.prompt([
445
+ {
446
+ type: 'list',
447
+ prefix: '🧱',
448
+ message: messages.devrequests.overrideBlock(),
449
+ name: 'overrideBlockId',
450
+ choices: blockIdChoices,
451
+ },
452
+ {
453
+ type: 'input',
454
+ prefix: '🔗',
455
+ message: messages.devrequests.overrideUri(),
456
+ name: 'overrideUri',
457
+ default: defaultDeveloperUri,
458
+ },
459
+ ]);
460
+
461
+ args.overrideBlock(overrideBlockId, overrideUri);
462
+
432
463
  // Launch request handler
433
- await requestHandler(args);
464
+ await requestHandler(args.getArgs(overrideArgs));
434
465
  };
435
466
  }
436
467
  export const devCommand = (
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const LIB_VERSION = "1.1.2-beta.2";
1
+ export const LIB_VERSION = "1.1.2-beta.4";