@redocly/cli 2.33.0 → 2.33.2

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 +1 @@
1
- {"version":3,"file":"iterate-asyncapi-channels.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-channels.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAOvE,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,WAAW,EACX,MAAM,EACN,eAAe,EACf,aAAa,EACb,GAAG,GACJ,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,aAAa,CAqBhB"}
1
+ {"version":3,"file":"iterate-asyncapi-channels.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-channels.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAQvE,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,WAAW,EACX,MAAM,EACN,eAAe,EACf,aAAa,EACb,GAAG,GACJ,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,aAAa,CAuBhB"}
@@ -2,6 +2,7 @@ import { slash, isRef } from '@redocly/openapi-core';
2
2
  import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
4
  import { pathToFilename, writeToFileByExtension } from '../../../utils/miscellaneous.js';
5
+ import { assertWithinDir } from '../utils/assert-within-dir.js';
5
6
  import { replace$Refs } from '../utils/replace-$-refs.js';
6
7
  import { traverseDirectoryDeep, traverseDirectoryDeepCallback, } from '../utils/traverse-directory-deep.js';
7
8
  export function iterateAsyncApiChannels({ channels, asyncapiDir, outDir, componentsFiles, pathSeparator, ext, }) {
@@ -14,6 +15,7 @@ export function iterateAsyncApiChannels({ channels, asyncapiDir, outDir, compone
14
15
  const channelData = channels[channelName];
15
16
  if (isRef(channelData))
16
17
  continue;
18
+ assertWithinDir(asyncapiDir, channelFile, channelName);
17
19
  channelsFiles[channelName] = channelFile;
18
20
  replace$Refs(channelData, path.dirname(channelFile), componentsFiles);
19
21
  writeToFileByExtension(channelData, channelFile);
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-asyncapi-channels.js","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,qCAAqC,CAAC;AAE7C,MAAM,UAAU,uBAAuB,CAAC,EACtC,QAAQ,EACR,WAAW,EACX,MAAM,EACN,eAAe,EACf,aAAa,EACb,GAAG,GAQJ;IACC,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO,aAAa,CAAC;IACpC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAC9F,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,KAAK,CAAC,WAAW,CAAC;YAAE,SAAS;QAEjC,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;QACzC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC;QACtE,sBAAsB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACjD,QAAQ,CAAC,WAAW,CAAC,GAAG;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;SACrD,CAAC;QAEF,qBAAqB,CAAC,MAAM,EAAE,6BAA6B,EAAE,eAAe,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"iterate-asyncapi-channels.js","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,qCAAqC,CAAC;AAE7C,MAAM,UAAU,uBAAuB,CAAC,EACtC,QAAQ,EACR,WAAW,EACX,MAAM,EACN,eAAe,EACf,aAAa,EACb,GAAG,GAQJ;IACC,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO,aAAa,CAAC;IACpC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAC9F,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,KAAK,CAAC,WAAW,CAAC;YAAE,SAAS;QAEjC,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAEvD,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;QACzC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC;QACtE,sBAAsB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACjD,QAAQ,CAAC,WAAW,CAAC,GAAG;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;SACrD,CAAC;QAEF,qBAAqB,CAAC,MAAM,EAAE,6BAA6B,EAAE,eAAe,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-asyncapi-components.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-components.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAG3B,MAAM,aAAa,CAAC;AASrB,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,GAAG,EACH,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,qBAAqB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAClC,QAkCA"}
1
+ {"version":3,"file":"iterate-asyncapi-components.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-components.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAG3B,MAAM,aAAa,CAAC;AAUrB,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,GAAG,EACH,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,qBAAqB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAClC,QAmCA"}
@@ -4,6 +4,7 @@ import * as fs from 'node:fs';
4
4
  import * as path from 'node:path';
5
5
  import { writeToFileByExtension } from '../../../utils/miscellaneous.js';
6
6
  import { COMPONENTS } from '../constants.js';
7
+ import { assertWithinDir } from '../utils/assert-within-dir.js';
7
8
  import { createComponentDir } from '../utils/create-component-dir.js';
8
9
  import { doesFileDiffer } from '../utils/does-file-differ.js';
9
10
  import { getFileNamePath } from '../utils/get-file-name-path.js';
@@ -23,6 +24,7 @@ export function iterateAsyncApiComponents({ asyncapi, asyncapiDir, componentsFil
23
24
  createComponentDir(componentDirPath, componentType);
24
25
  for (const componentName of Object.keys(components?.[componentType] || {})) {
25
26
  const filename = getFileNamePath(componentDirPath, componentName, ext);
27
+ assertWithinDir(asyncapiDir, filename, componentName);
26
28
  const componentData = components?.[componentType]?.[componentName];
27
29
  replace$Refs(componentData, path.dirname(filename), componentsFiles);
28
30
  replaceChannelRefs(componentData, path.dirname(filename), channelsFiles);
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-asyncapi-components.js","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,MAAM,UAAU,yBAAyB,CAAC,EACxC,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,GAAG,EACH,WAAW,GAQZ;IACC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAChC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzD,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,0BAA0B,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC3E,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAE9C,SAAS,qBAAqB,CAC5B,aAA0E;YAE1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACjE,kBAAkB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YACpD,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC3E,MAAM,QAAQ,GAAG,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;gBACvE,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;gBACnE,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;gBACrE,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;gBAEzE,IAAI,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;oBAC5C,MAAM,CAAC,IAAI,CACT,yBAAyB,aAAa,kDAAkD,IAAI,CAC1F,QAAQ,CACT,cAAc,CAChB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,sBAAsB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBAClD,CAAC;gBAED,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC/D,CAAC;YACD,6BAA6B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"iterate-asyncapi-components.js","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,MAAM,UAAU,yBAAyB,CAAC,EACxC,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,GAAG,EACH,WAAW,GAQZ;IACC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAChC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzD,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,0BAA0B,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC3E,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAE9C,SAAS,qBAAqB,CAC5B,aAA0E;YAE1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACjE,kBAAkB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YACpD,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC3E,MAAM,QAAQ,GAAG,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;gBACvE,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;gBACtD,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;gBACnE,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;gBACrE,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;gBAEzE,IAAI,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;oBAC5C,MAAM,CAAC,IAAI,CACT,yBAAyB,aAAa,kDAAkD,IAAI,CAC1F,QAAQ,CACT,cAAc,CAChB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,sBAAsB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBAClD,CAAC;gBAED,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC/D,CAAC;YACD,6BAA6B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-asyncapi-operations.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-operations.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAQvE,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EACV,WAAW,EACX,MAAM,EACN,eAAe,EACf,aAAa,EACb,aAAa,EACb,GAAG,GACJ,EAAE;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb,QAsBA"}
1
+ {"version":3,"file":"iterate-asyncapi-operations.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-operations.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AASvE,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EACV,WAAW,EACX,MAAM,EACN,eAAe,EACf,aAAa,EACb,aAAa,EACb,GAAG,GACJ,EAAE;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb,QAwBA"}
@@ -2,6 +2,7 @@ import { slash, isRef } from '@redocly/openapi-core';
2
2
  import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
4
  import { pathToFilename, writeToFileByExtension } from '../../../utils/miscellaneous.js';
5
+ import { assertWithinDir } from '../utils/assert-within-dir.js';
5
6
  import { replace$Refs } from '../utils/replace-$-refs.js';
6
7
  import { replaceChannelRefs } from '../utils/replace-channel-refs.js';
7
8
  import { traverseDirectoryDeep, traverseDirectoryDeepCallback, } from '../utils/traverse-directory-deep.js';
@@ -14,6 +15,7 @@ export function iterateAsyncApiOperations({ operations, asyncapiDir, outDir, com
14
15
  const operationData = operations[operationName];
15
16
  if (isRef(operationData))
16
17
  continue;
18
+ assertWithinDir(asyncapiDir, operationFile, operationName);
17
19
  replace$Refs(operationData, path.dirname(operationFile), componentsFiles);
18
20
  replaceChannelRefs(operationData, path.dirname(operationFile), channelsFiles);
19
21
  writeToFileByExtension(operationData, operationFile);
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-asyncapi-operations.js","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,qCAAqC,CAAC;AAE7C,MAAM,UAAU,yBAAyB,CAAC,EACxC,UAAU,EACV,WAAW,EACX,MAAM,EACN,eAAe,EACf,aAAa,EACb,aAAa,EACb,GAAG,GASJ;IACC,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,IAAI,CAChC,MAAM,EACN,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,CAC7C,IAAI,GAAG,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;QAEhD,IAAI,KAAK,CAAC,aAAa,CAAC;YAAE,SAAS;QAEnC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;QAC1E,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;QAC9E,sBAAsB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACrD,UAAU,CAAC,aAAa,CAAC,GAAG;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACvD,CAAC;QAEF,qBAAqB,CAAC,MAAM,EAAE,6BAA6B,EAAE,eAAe,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"iterate-asyncapi-operations.js","sourceRoot":"","sources":["../../../../src/commands/split/asyncapi/iterate-asyncapi-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,qCAAqC,CAAC;AAE7C,MAAM,UAAU,yBAAyB,CAAC,EACxC,UAAU,EACV,WAAW,EACX,MAAM,EACN,eAAe,EACf,aAAa,EACb,aAAa,EACb,GAAG,GASJ;IACC,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,IAAI,CAChC,MAAM,EACN,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,CAC7C,IAAI,GAAG,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;QAEhD,IAAI,KAAK,CAAC,aAAa,CAAC;YAAE,SAAS;QAEnC,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAE3D,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;QAC1E,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;QAC9E,sBAAsB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACrD,UAAU,CAAC,aAAa,CAAC,GAAG;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACvD,CAAC;QAEF,qBAAqB,CAAC,MAAM,EAAE,6BAA6B,EAAE,eAAe,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function assertWithinDir(baseDir: string, targetPath: string, subject: string): void;
2
+ //# sourceMappingURL=assert-within-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-within-dir.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/utils/assert-within-dir.ts"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAM1F"}
@@ -0,0 +1,10 @@
1
+ import * as path from 'node:path';
2
+ import { exitWithError } from '../../../utils/error.js';
3
+ export function assertWithinDir(baseDir, targetPath, subject) {
4
+ const base = path.resolve(baseDir);
5
+ const target = path.resolve(targetPath);
6
+ if (target !== base && !target.startsWith(base + path.sep)) {
7
+ exitWithError(`Refusing to write "${subject}" outside the output directory.`);
8
+ }
9
+ }
10
+ //# sourceMappingURL=assert-within-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-within-dir.js","sourceRoot":"","sources":["../../../../src/commands/split/utils/assert-within-dir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,UAAkB,EAAE,OAAe;IAClF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,aAAa,CAAC,sBAAsB,OAAO,iCAAiC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-components.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/utils/iterate-components.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAYtE,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,QAoDZ"}
1
+ {"version":3,"file":"iterate-components.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/utils/iterate-components.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAatE,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,QAqDZ"}
@@ -4,6 +4,7 @@ import * as fs from 'node:fs';
4
4
  import * as path from 'node:path';
5
5
  import { writeToFileByExtension } from '../../../utils/miscellaneous.js';
6
6
  import { COMPONENTS } from '../constants.js';
7
+ import { assertWithinDir } from './assert-within-dir.js';
7
8
  import { createComponentDir } from './create-component-dir.js';
8
9
  import { doesFileDiffer } from './does-file-differ.js';
9
10
  import { extractFileNameFromPath } from './extract-filename-from-path.js';
@@ -26,6 +27,7 @@ export function iterateComponents(openapi, openapiDir, componentsFiles, ext) {
26
27
  const componentDirPath = path.join(componentsDir, componentType);
27
28
  for (const componentName of Object.keys(components?.[componentType] || {})) {
28
29
  const filename = getFileNamePath(componentDirPath, componentName, ext);
30
+ assertWithinDir(openapiDir, filename, componentName);
29
31
  gatherComponentsFiles(components, componentsFiles, componentType, componentName, filename);
30
32
  }
31
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-components.js","sourceRoot":"","sources":["../../../../src/commands/split/utils/iterate-components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iterate-components.js","sourceRoot":"","sources":["../../../../src/commands/split/utils/iterate-components.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-path-items.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/utils/iterate-path-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AAa/B,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS,EAC/D,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,MAAM,YAAK,EAClC,GAAG,EAAE,MAAM,QA2CZ"}
1
+ {"version":3,"file":"iterate-path-items.d.ts","sourceRoot":"","sources":["../../../../src/commands/split/utils/iterate-path-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AAc/B,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS,EAC/D,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,MAAM,YAAK,EAClC,GAAG,EAAE,MAAM,QA+CZ"}
@@ -3,6 +3,7 @@ import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
4
  import { pathToFilename, escapeLanguageName, langToExt, writeToFileByExtension, } from '../../../utils/miscellaneous.js';
5
5
  import { OPENAPI3_METHOD_NAMES } from '../oas/constants.js';
6
+ import { assertWithinDir } from './assert-within-dir.js';
6
7
  import { traverseDirectoryDeep, traverseDirectoryDeepCallback } from './traverse-directory-deep.js';
7
8
  export function iteratePathItems(pathItems, openapiDir, outDir, componentsFiles, pathSeparator, codeSamplesPathPrefix = '', ext) {
8
9
  if (!pathItems)
@@ -13,6 +14,7 @@ export function iteratePathItems(pathItems, openapiDir, outDir, componentsFiles,
13
14
  const pathData = pathItems[pathName];
14
15
  if (isRef(pathData))
15
16
  continue;
17
+ assertWithinDir(openapiDir, pathFile, pathName);
16
18
  for (const method of OPENAPI3_METHOD_NAMES) {
17
19
  const methodData = pathData[method];
18
20
  const methodDataXCode = methodData?.['x-code-samples'] || methodData?.['x-codeSamples'];
@@ -23,6 +25,7 @@ export function iteratePathItems(pathItems, openapiDir, outDir, componentsFiles,
23
25
  if (sample.source && sample.source.$ref)
24
26
  continue;
25
27
  const sampleFileName = path.join(openapiDir, 'code_samples', escapeLanguageName(sample.lang), codeSamplesPathPrefix + pathToFilename(pathName, pathSeparator), method + langToExt(sample.lang));
28
+ assertWithinDir(openapiDir, sampleFileName, sample.lang);
26
29
  fs.mkdirSync(path.dirname(sampleFileName), { recursive: true });
27
30
  fs.writeFileSync(sampleFileName, sample.source);
28
31
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -1 +1 @@
1
- {"version":3,"file":"iterate-path-items.js","sourceRoot":"","sources":["../../../../src/commands/split/utils/iterate-path-items.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,KAAK,GAIN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAEpG,MAAM,UAAU,gBAAgB,CAC9B,SAA+D,EAC/D,UAAkB,EAClB,MAAc,EACd,eAAuB,EACvB,aAAqB,EACrB,wBAAgC,EAAE,EAClC,GAAW;IAEX,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACxF,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,KAAK,CAAC,QAAQ,CAAC;YAAE,SAAS;QAE9B,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,eAAe,GAAG,UAAU,EAAE,CAAC,gBAAgB,CAAC,IAAI,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC;YACxF,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxD,SAAS;YACX,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;gBACrC,IAAI,MAAM,CAAC,MAAM,IAAK,MAAM,CAAC,MAA4B,CAAC,IAAI;oBAAE,SAAS;gBACzE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAC9B,UAAU,EACV,cAAc,EACd,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAC/B,qBAAqB,GAAG,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,EAC/D,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAChC,CAAC;gBAEF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,6DAA6D;gBAC7D,aAAa;gBACb,MAAM,CAAC,MAAM,GAAG;oBACd,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;iBACnD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,SAAS,CAAC,QAAQ,CAAC,GAAG;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SACjD,CAAC;QAEF,qBAAqB,CAAC,MAAM,EAAE,6BAA6B,EAAE,eAAe,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"iterate-path-items.js","sourceRoot":"","sources":["../../../../src/commands/split/utils/iterate-path-items.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/cli",
3
- "version": "2.33.0",
3
+ "version": "2.33.2",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -38,13 +38,13 @@
38
38
  "Roman Hotsiy <roman@redocly.com> (https://redocly.com/)"
39
39
  ],
40
40
  "dependencies": {
41
- "@opentelemetry/exporter-trace-otlp-http": "0.214.0",
42
- "@opentelemetry/resources": "2.6.1",
43
- "@opentelemetry/sdk-trace-node": "2.6.1",
44
- "@opentelemetry/semantic-conventions": "1.40.0",
41
+ "@opentelemetry/exporter-trace-otlp-http": "0.219.0",
42
+ "@opentelemetry/resources": "2.8.0",
43
+ "@opentelemetry/sdk-trace-node": "2.8.0",
44
+ "@opentelemetry/semantic-conventions": "1.41.1",
45
45
  "@redocly/cli-otel": "0.3.1",
46
- "@redocly/openapi-core": "2.33.0",
47
- "@redocly/respect-core": "2.33.0",
46
+ "@redocly/openapi-core": "2.33.2",
47
+ "@redocly/respect-core": "2.33.2",
48
48
  "ajv": "npm:@redocly/ajv@8.18.1",
49
49
  "ajv-formats": "^3.0.1",
50
50
  "colorette": "^1.2.0",