@toolsplus/nx-forge 8.0.1 → 8.0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toolsplus/nx-forge",
3
- "version": "8.0.1",
3
+ "version": "8.0.3",
4
4
  "description": "Atlassian Forge plugin for Nx",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -12,12 +12,13 @@
12
12
  "generators": "./generators.json",
13
13
  "executors": "./executors.json",
14
14
  "dependencies": {
15
- "@forge/manifest": "^11.3.2",
15
+ "@forge/manifest": "^13.3.1",
16
16
  "@nx/devkit": "23.0.1",
17
17
  "@nx/eslint": "23.0.1",
18
18
  "@nx/jest": "23.0.1",
19
19
  "@nx/js": "23.0.1",
20
20
  "@nx/webpack": "23.0.1",
21
+ "cross-spawn": "7.0.6",
21
22
  "fs-extra": "^10.1.0",
22
23
  "js-yaml": "^4.2.0",
23
24
  "jsonata": "^2.2.1",
@@ -17,6 +17,7 @@ const normalizeOptions = (options, context) => {
17
17
  }
18
18
  };
19
19
  async function runExecutor(rawOptions, context) {
20
+ var _a;
20
21
  const options = normalizeOptions(rawOptions, context);
21
22
  if (options.manifestTransform && options.manifestTransform !== '') {
22
23
  devkit_1.logger.info(`Applying Forge manifest transformation ${context.configurationName ? `(${context.configurationName})` : ''}: ${options.manifestTransform}`);
@@ -28,6 +29,10 @@ async function runExecutor(rawOptions, context) {
28
29
  ...(options.verbose === true ? ['--verbose'] : []),
29
30
  ...(options.verify === false ? ['--no-verify'] : []),
30
31
  ...(options.interactive === false ? ['--non-interactive'] : []),
32
+ ...(((_a = options.approve) === null || _a === void 0 ? void 0 : _a.length) ? ['--approve', ...options.approve] : []),
33
+ ...(options.majorVersion !== undefined
34
+ ? ['--major-version', `${options.majorVersion}`]
35
+ : []),
31
36
  ];
32
37
  devkit_1.logger.log(`Running: forge ${args.join(' ')}`);
33
38
  await (0, async_commands_1.runForgeCommandAsync)(args, {
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/executors/deploy/executor.ts"],"names":[],"mappings":";;AAwBA,8BAoCC;AA5DD,uCAAqD;AAErD,qEAAwE;AACxE,yEAAoE;AAEpE,MAAM,gBAAgB,GAAG,CACvB,OAA8B,EAC9B,OAAwB,EACD,EAAE;IACzB,MAAM,iBAAiB,GAAG,CACxB,CAAU,EACiC,EAAE,CAC7C,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,EAAE,CAAC,CAAC;IAE7D,IAAI,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,OAAO,CAAC,iBAAiB;SACvC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAEa,KAAK,UAAU,WAAW,CACvC,UAAiC,EACjC,OAAwB;IAExB,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,KAAK,EAAE,EAAE,CAAC;QAClE,eAAM,CAAC,IAAI,CACT,0CACE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,EACjE,KAAK,OAAO,CAAC,iBAAiB,EAAE,CACjC,CAAC;QACF,MAAM,IAAA,6CAAoB,EACxB,EAAE,GAAG,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAC5D,OAAO,CACR,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG;QACX,QAAQ;QACR,iBAAiB,OAAO,CAAC,WAAW,EAAE;QACtC,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;IAEF,eAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,IAAA,qCAAoB,EAAC,IAAI,EAAE;QAC/B,GAAG,EAAE,OAAO,CAAC,UAAU;KACxB,CAAC,CAAC;IAEH,eAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACnC,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/executors/deploy/executor.ts"],"names":[],"mappings":";;AAwBA,8BAwCC;AAhED,uCAAqD;AAErD,qEAAwE;AACxE,yEAAoE;AAEpE,MAAM,gBAAgB,GAAG,CACvB,OAA8B,EAC9B,OAAwB,EACD,EAAE;IACzB,MAAM,iBAAiB,GAAG,CACxB,CAAU,EACiC,EAAE,CAC7C,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,EAAE,CAAC,CAAC;IAE7D,IAAI,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,OAAO,CAAC,iBAAiB;SACvC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAEa,KAAK,UAAU,WAAW,CACvC,UAAiC,EACjC,OAAwB;;IAExB,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,KAAK,EAAE,EAAE,CAAC;QAClE,eAAM,CAAC,IAAI,CACT,0CACE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,EACjE,KAAK,OAAO,CAAC,iBAAiB,EAAE,CACjC,CAAC;QACF,MAAM,IAAA,6CAAoB,EACxB,EAAE,GAAG,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAC5D,OAAO,CACR,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG;QACX,QAAQ;QACR,iBAAiB,OAAO,CAAC,WAAW,EAAE;QACtC,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,MAAM,EAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;YACpC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,eAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,IAAA,qCAAoB,EAAC,IAAI,EAAE;QAC/B,GAAG,EAAE,OAAO,CAAC,UAAU;KACxB,CAAC,CAAC;IAEH,eAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACnC,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -4,5 +4,7 @@ export interface DeployExecutorOptions {
4
4
  verify: boolean;
5
5
  interactive: boolean;
6
6
  verbose: boolean;
7
+ approve?: string[];
8
+ majorVersion?: number;
7
9
  manifestTransform?: string;
8
10
  }
@@ -33,6 +33,18 @@
33
33
  "alias": "v",
34
34
  "default": false
35
35
  },
36
+ "approve": {
37
+ "type": "array",
38
+ "description": "Pre-approve one or more deployment rules.",
39
+ "items": {
40
+ "type": "string"
41
+ },
42
+ "minItems": 1
43
+ },
44
+ "majorVersion": {
45
+ "type": "number",
46
+ "description": "Backport the deployment to a specific major version."
47
+ },
36
48
  "manifestTransform": {
37
49
  "type": "string",
38
50
  "description": "A JSONata expression that transforms the manifest.yml content before the deployment."
@@ -21,7 +21,7 @@ async function runExecutor(rawOptions, context) {
21
21
  const args = [
22
22
  'register',
23
23
  ...(options.developerSpaceId
24
- ? [`--developer-space-id ${options.developerSpaceId}`]
24
+ ? ['--developer-space-id', options.developerSpaceId]
25
25
  : []),
26
26
  ...(options.acceptTerms === true ? ['--accept-terms'] : []),
27
27
  ...(options.verbose === true ? ['--verbose'] : []),
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/executors/register/executor.ts"],"names":[],"mappings":";;AAMA,8BA6CC;AAnDD,uCAAqD;AAErD,+DAA2D;AAC3D,iEAA4D;AAC5D,qEAAwE;AAEzD,KAAK,UAAU,WAAW,CACvC,UAAmC,EACnC,OAAwB;IAExB,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GACxB,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,8BAA8B,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,wBAAwB,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAE7E,yEAAyE;IACzE,MAAM,IAAI,GAAG;QACX,UAAU;QACV,GAAG,CAAC,OAAO,CAAC,gBAAgB;YAC1B,CAAC,CAAC,CAAC,wBAAwB,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,OAAO;KAChB,CAAC;IAEF,eAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,IAAA,qCAAoB,EAAC,IAAI,EAAE;QAC/B,GAAG,EAAE,OAAO,CAAC,UAAU;KACxB,CAAC,CAAC;IAEH,MAAM,IAAA,qCAAgB,EAAC,OAAO,CAAC,CAAC;IAEhC,eAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEtC,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/executors/register/executor.ts"],"names":[],"mappings":";;AAMA,8BA6CC;AAnDD,uCAAqD;AAErD,+DAA2D;AAC3D,iEAA4D;AAC5D,qEAAwE;AAEzD,KAAK,UAAU,WAAW,CACvC,UAAmC,EACnC,OAAwB;IAExB,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GACxB,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,8BAA8B,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,wBAAwB,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAE7E,yEAAyE;IACzE,MAAM,IAAI,GAAG;QACX,UAAU;QACV,GAAG,CAAC,OAAO,CAAC,gBAAgB;YAC1B,CAAC,CAAC,CAAC,sBAAsB,EAAE,OAAO,CAAC,gBAAgB,CAAC;YACpD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,OAAO;KAChB,CAAC;IAEF,eAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,IAAA,qCAAoB,EAAC,IAAI,EAAE;QAC/B,GAAG,EAAE,OAAO,CAAC,UAAU;KACxB,CAAC,CAAC;IAEH,MAAM,IAAA,qCAAgB,EAAC,OAAO,CAAC,CAAC;IAEhC,eAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEtC,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runForgeCommandAsync = void 0;
4
- const child_process_1 = require("child_process");
4
+ const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
+ // Node cannot directly launch npm/pnpm/yarn `.cmd` shims on Windows.
7
+ // cross-spawn resolves those shims while preserving each Forge argument.
8
+ const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn"));
6
9
  /**
7
10
  * Runs the given Forge CLI command asynchronously.
8
11
  *
@@ -11,12 +14,11 @@ const devkit_1 = require("@nx/devkit");
11
14
  */
12
15
  const runForgeCommandAsync = (args, opts = {}) => {
13
16
  const pmc = (0, devkit_1.getPackageManagerCommand)();
14
- const forgeCmd = ['forge', ...args].join(' ');
15
- const cliProcess = (0, child_process_1.spawn)(`${pmc.exec} ${forgeCmd}`, {
17
+ const [executable, ...packageManagerArgs] = pmc.exec.trim().split(/\s+/);
18
+ const cliProcess = (0, cross_spawn_1.default)(executable, [...packageManagerArgs, 'forge', ...args], {
16
19
  cwd: opts.cwd,
17
20
  env: { ...process.env, ...opts.env },
18
21
  stdio: [process.stdin, process.stdout, process.stderr],
19
- shell: true,
20
22
  });
21
23
  return new Promise((resolve, reject) => {
22
24
  cliProcess.once('exit', (code) => {
@@ -1 +1 @@
1
- {"version":3,"file":"async-commands.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/utils/forge/async-commands.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AACtC,uCAAsD;AAEtD;;;;;GAKG;AACI,MAAM,oBAAoB,GAAG,CAClC,IAAc,EACd,OAAkD,EAAE,EACrC,EAAE;IACjB,MAAM,GAAG,GAAG,IAAA,iCAAwB,GAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAA,qBAAK,EAAC,GAAG,GAAG,CAAC,IAAI,IAAI,QAAQ,EAAE,EAAE;QAClD,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;QACpC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;QACtD,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,SAAS,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACtC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAxBW,QAAA,oBAAoB,wBAwB/B"}
1
+ {"version":3,"file":"async-commands.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/utils/forge/async-commands.ts"],"names":[],"mappings":";;;;AAAA,uCAAsD;AAEtD,qEAAqE;AACrE,yEAAyE;AACzE,sEAAgC;AAEhC;;;;;GAKG;AACI,MAAM,oBAAoB,GAAG,CAClC,IAAc,EACd,OAAkD,EAAE,EACrC,EAAE;IACjB,MAAM,GAAG,GAAG,IAAA,iCAAwB,GAAE,CAAC;IACvC,MAAM,CAAC,UAAU,EAAE,GAAG,kBAAkB,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,IAAA,qBAAK,EACtB,UAAU,EACV,CAAC,GAAG,kBAAkB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,EACzC;QACE,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;QACpC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;KACvD,CACF,CAAC;IACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,SAAS,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACtC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA3BW,QAAA,oBAAoB,wBA2B/B"}