@apimatic/cli 2.0.0-beta.4 → 2.0.0-beta.6

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 (169) hide show
  1. package/README.md +20 -64
  2. package/apimatic.schema.json +2 -2
  3. package/lib/actions/action-result.d.ts +4 -2
  4. package/lib/actions/action-result.js +8 -3
  5. package/lib/actions/action-result.js.map +1 -1
  6. package/lib/actions/api/transform.d.ts +7 -6
  7. package/lib/actions/api/transform.js +12 -13
  8. package/lib/actions/api/transform.js.map +1 -1
  9. package/lib/actions/api/validate.d.ts +4 -5
  10. package/lib/actions/api/validate.js +30 -32
  11. package/lib/actions/api/validate.js.map +1 -1
  12. package/lib/actions/portal/generate.js +3 -3
  13. package/lib/actions/portal/generate.js.map +1 -1
  14. package/lib/actions/portal/prepare-project.js +3 -0
  15. package/lib/actions/portal/prepare-project.js.map +1 -1
  16. package/lib/actions/quickstart.d.ts +1 -9
  17. package/lib/actions/quickstart.js +122 -102
  18. package/lib/actions/quickstart.js.map +1 -1
  19. package/lib/commands/api/transform.d.ts +1 -1
  20. package/lib/commands/api/transform.js +2 -2
  21. package/lib/commands/api/transform.js.map +1 -1
  22. package/lib/commands/api/validate.d.ts +3 -3
  23. package/lib/commands/api/validate.js +28 -17
  24. package/lib/commands/api/validate.js.map +1 -1
  25. package/lib/commands/plugin/generate.d.ts +1 -1
  26. package/lib/commands/portal/generate.d.ts +2 -2
  27. package/lib/commands/portal/generate.js +3 -1
  28. package/lib/commands/portal/generate.js.map +1 -1
  29. package/lib/commands/portal/serve.d.ts +2 -2
  30. package/lib/commands/portal/serve.js +1 -1
  31. package/lib/commands/sdk/generate.d.ts +1 -1
  32. package/lib/infrastructure/file-service.d.ts +5 -0
  33. package/lib/infrastructure/file-service.js +40 -9
  34. package/lib/infrastructure/file-service.js.map +1 -1
  35. package/lib/infrastructure/portal-dev-server-service.js +2 -1
  36. package/lib/infrastructure/portal-dev-server-service.js.map +1 -1
  37. package/lib/infrastructure/portal-project-service.d.ts +2 -0
  38. package/lib/infrastructure/portal-project-service.js +9 -4
  39. package/lib/infrastructure/portal-project-service.js.map +1 -1
  40. package/lib/infrastructure/services/file-download-service.d.ts +4 -4
  41. package/lib/infrastructure/services/file-download-service.js +14 -14
  42. package/lib/infrastructure/services/file-download-service.js.map +1 -1
  43. package/lib/prompts/api/transform.d.ts +0 -2
  44. package/lib/prompts/api/transform.js +0 -3
  45. package/lib/prompts/api/transform.js.map +1 -1
  46. package/lib/prompts/api/validate.d.ts +2 -2
  47. package/lib/prompts/api/validate.js +35 -3
  48. package/lib/prompts/api/validate.js.map +1 -1
  49. package/lib/prompts/format.d.ts +1 -1
  50. package/lib/prompts/format.js.map +1 -1
  51. package/lib/prompts/portal/generate.d.ts +2 -1
  52. package/lib/prompts/portal/generate.js +22 -6
  53. package/lib/prompts/portal/generate.js.map +1 -1
  54. package/lib/prompts/portal/prepare-project.d.ts +5 -1
  55. package/lib/prompts/portal/prepare-project.js +15 -1
  56. package/lib/prompts/portal/prepare-project.js.map +1 -1
  57. package/lib/prompts/portal/serve.js +6 -3
  58. package/lib/prompts/portal/serve.js.map +1 -1
  59. package/lib/prompts/portal/source.d.ts +6 -6
  60. package/lib/prompts/portal/source.js +97 -31
  61. package/lib/prompts/portal/source.js.map +1 -1
  62. package/lib/prompts/quickstart.d.ts +14 -13
  63. package/lib/prompts/quickstart.js +43 -27
  64. package/lib/prompts/quickstart.js.map +1 -1
  65. package/lib/types/apimatic-config/document.d.ts +2 -0
  66. package/lib/types/apimatic-config/document.js +4 -0
  67. package/lib/types/apimatic-config/document.js.map +1 -1
  68. package/lib/types/file/directory.js +2 -1
  69. package/lib/types/file/directory.js.map +1 -1
  70. package/lib/types/file/directoryPath.d.ts +3 -0
  71. package/lib/types/file/directoryPath.js +10 -1
  72. package/lib/types/file/directoryPath.js.map +1 -1
  73. package/lib/types/file/fileName.d.ts +5 -0
  74. package/lib/types/file/fileName.js +13 -3
  75. package/lib/types/file/fileName.js.map +1 -1
  76. package/lib/types/file/filePath.js +1 -1
  77. package/lib/types/file/filePath.js.map +1 -1
  78. package/lib/types/file/resource-input.d.ts +7 -5
  79. package/lib/types/file/resource-input.js +16 -15
  80. package/lib/types/file/resource-input.js.map +1 -1
  81. package/lib/types/flags-provider.d.ts +6 -1
  82. package/lib/types/flags-provider.js +22 -12
  83. package/lib/types/flags-provider.js.map +1 -1
  84. package/lib/types/plugin-config-context.d.ts +3 -0
  85. package/lib/types/plugin-config-context.js +33 -12
  86. package/lib/types/plugin-config-context.js.map +1 -1
  87. package/lib/types/portal/code-samples.d.ts +2 -0
  88. package/lib/types/portal/code-samples.js +7 -0
  89. package/lib/types/portal/code-samples.js.map +1 -1
  90. package/lib/types/portal/config/site-address.d.ts +16 -0
  91. package/lib/types/portal/config/site-address.js +67 -0
  92. package/lib/types/portal/config/site-address.js.map +1 -0
  93. package/lib/types/portal/config/site-config.d.ts +3 -5
  94. package/lib/types/portal/config/site-config.js +10 -33
  95. package/lib/types/portal/config/site-config.js.map +1 -1
  96. package/lib/types/portal/config/static-asset.d.ts +2 -2
  97. package/lib/types/portal/config/static-asset.js +2 -2
  98. package/lib/types/portal/config/static-asset.js.map +1 -1
  99. package/lib/types/portal/content-tree.d.ts +11 -4
  100. package/lib/types/portal/content-tree.js +31 -20
  101. package/lib/types/portal/content-tree.js.map +1 -1
  102. package/lib/types/portal/endpoint.d.ts +1 -0
  103. package/lib/types/portal/endpoint.js +3 -0
  104. package/lib/types/portal/endpoint.js.map +1 -1
  105. package/lib/types/portal/openapi-document.d.ts +4 -0
  106. package/lib/types/portal/openapi-document.js +12 -0
  107. package/lib/types/portal/openapi-document.js.map +1 -1
  108. package/lib/types/portal/page.js +16 -1
  109. package/lib/types/portal/page.js.map +1 -1
  110. package/lib/types/portal/portal-config.d.ts +6 -3
  111. package/lib/types/portal/portal-config.js +8 -4
  112. package/lib/types/portal/portal-config.js.map +1 -1
  113. package/lib/types/portal/portal-languages.d.ts +2 -0
  114. package/lib/types/portal/portal-languages.js +5 -1
  115. package/lib/types/portal/portal-languages.js.map +1 -1
  116. package/lib/types/portal/portal-source.d.ts +43 -11
  117. package/lib/types/portal/shared.d.ts +11 -0
  118. package/lib/types/portal/shared.js +10 -0
  119. package/lib/types/portal/shared.js.map +1 -0
  120. package/lib/types/portal/spec-metadata.d.ts +17 -0
  121. package/lib/types/portal/spec-metadata.js +40 -0
  122. package/lib/types/portal/spec-metadata.js.map +1 -0
  123. package/lib/types/portal-source-context.d.ts +21 -8
  124. package/lib/types/portal-source-context.js +208 -50
  125. package/lib/types/portal-source-context.js.map +1 -1
  126. package/lib/types/project-context.d.ts +18 -0
  127. package/lib/types/project-context.js +18 -1
  128. package/lib/types/project-context.js.map +1 -1
  129. package/lib/types/project-layout.d.ts +3 -0
  130. package/lib/types/project-layout.js +4 -0
  131. package/lib/types/project-layout.js.map +1 -1
  132. package/lib/types/resource-context.d.ts +25 -10
  133. package/lib/types/resource-context.js +40 -23
  134. package/lib/types/resource-context.js.map +1 -1
  135. package/oclif.manifest.json +88 -70
  136. package/package.json +1 -1
  137. package/portal-template/dependency-directories.ts +31 -40
  138. package/portal-template/downloads.ts +6 -3
  139. package/portal-template/portal-config.ts +4 -0
  140. package/portal-template/prerender-pages.ts +8 -2
  141. package/portal-template/spec-reload.ts +12 -9
  142. package/portal-template/src/components/api-markdown.tsx +32 -0
  143. package/portal-template/src/components/api-page.tsx +8 -1
  144. package/portal-template/src/components/authorization-failure.tsx +63 -0
  145. package/portal-template/src/components/markdown-copy-button.tsx +2 -2
  146. package/portal-template/src/components/plugin-install.tsx +6 -5
  147. package/portal-template/src/components/sdk-actions.tsx +3 -2
  148. package/portal-template/src/components/sdk-cards.tsx +2 -1
  149. package/portal-template/src/components/search.tsx +9 -2
  150. package/portal-template/src/lib/base-path.ts +14 -0
  151. package/portal-template/src/lib/code-titles.ts +8 -0
  152. package/portal-template/src/lib/copy-markdown.ts +4 -2
  153. package/portal-template/src/lib/install-command.ts +5 -5
  154. package/portal-template/src/lib/layout.shared.tsx +5 -3
  155. package/portal-template/src/lib/llms.server.ts +29 -5
  156. package/portal-template/src/lib/oauth-callback.ts +63 -0
  157. package/portal-template/src/lib/portal-types.ts +3 -3
  158. package/portal-template/src/lib/rehype-code-titles.ts +3 -5
  159. package/portal-template/src/lib/remark-image-references.ts +35 -0
  160. package/portal-template/src/lib/search-content.ts +28 -0
  161. package/portal-template/src/lib/search-options.ts +7 -0
  162. package/portal-template/src/lib/source.server.ts +2 -0
  163. package/portal-template/src/router.tsx +3 -1
  164. package/portal-template/src/routes/$.tsx +3 -2
  165. package/portal-template/src/routes/__root.tsx +8 -1
  166. package/portal-template/src/routes/api/search[.]json.ts +23 -2
  167. package/portal-template/src/routes/oauth.callback.tsx +54 -0
  168. package/portal-template/static-functions-base.ts +41 -0
  169. package/portal-template/vite.config.ts +15 -8
package/README.md CHANGED
@@ -21,63 +21,6 @@ To get started with APIMatic's CLI using a step by step wizard, run the followin
21
21
  $ apimatic quickstart
22
22
  ```
23
23
 
24
- # Upgrading from 1.x
25
-
26
- Documentation portals are now built on your machine from a `src/` directory, and
27
- `APIMATIC-BUILD.json` no longer configures them:
28
-
29
- - Describe the portal in the `portal` block of `src/apimatic.json`: `site` (its name, address
30
- and description), `brand` (logo, favicon, primary colour and colour mode), `navigation`
31
- (header links) and `ai` (the page actions). Running `apimatic quickstart` scaffolds the block
32
- with every default spelled out, and the file's `$schema` lets your editor complete and check it.
33
- - A portal also needs the project's SDK languages, at least one, in the same file's
34
- `languages` block, for example `"languages": { "typescript": {} }`; `csharp`, `python` and
35
- `typescript` are available for now. `plugin generate` and `sdk publish` both write to it, and
36
- the context plugin reads it too, so name only the languages you ship. The same file carries
37
- the plugin's identity in `plugin`; `src/plugin-config.json` is no longer read, so run
38
- `plugin generate` and `sdk publish` again after upgrading and delete the old file.
39
- - Put OpenAPI documents in `src/spec/`, Markdown pages in `src/content/` and images and other
40
- files in `src/static/`.
41
- - Every page starts with front matter giving its `title`, which names it in the sidebar.
42
- Pages written for 1.x had none; the CLI lists each page that needs one before it builds.
43
- ```md
44
- ---
45
- title: Getting started
46
- ---
47
- ```
48
- - Page order comes from a `nav.json` beside your pages, listing them by file name, and a
49
- `title` there names the folder it sits in. A folder links to its `index.md`; without one it
50
- is only a heading.
51
- - The top level of the portal is shown as tabs, which `src/content/nav.json` decides with two
52
- lists. `tabs` names the tabs after Home, in order, and nothing else is one: a folder directly
53
- under `src/content/`, and the sections the CLI makes, placed with `apimatic:sdks`,
54
- `apimatic:plugin` and `apimatic:api`. Home comes first, opens on `index.md`, and holds
55
- everything `tabs` does not name: every page at the top level, every other folder, and every
56
- section not named as a tab, each at the address it always has. Its `pages` orders that sidebar
57
- as any other `nav.json` orders its folder, a token standing for its section, and the file's
58
- `title` names it; what `pages` does not name follows in alphabetical order, pages before
59
- folders. A file with no `tabs`, or no file at all, makes no tab, so Home stands alone and
60
- there is no tab bar; the build says so once, with the line that makes tabs of the sections
61
- and the reference `pages` does not place. A new portal starts with the three sections as
62
- tabs.
63
- ```json
64
- {
65
- "title": "Overview",
66
- "tabs": ["tutorials", "apimatic:sdks", "apimatic:api"],
67
- "pages": ["index", "authentication", "guides", "apimatic:plugin", "..."]
68
- }
69
- ```
70
- - The SDKs tab lists a card per language in the `languages` block, offering its download and,
71
- once `sdk publish` records a release, its install command, source repository and package, and
72
- gives each language a page carrying its SDK's getting-started docs. The Context Plugin tab,
73
- with the plugin's install command, appears when there is a `plugin` block, or a `pluginUrl` in
74
- the `portal` block for a plugin hosted elsewhere. Their addresses, `/sdks` and
75
- `/context-plugin`, are kept for them, so a page in `src/content/` that would be served there
76
- is refused.
77
- - `portal toc new`, `portal recipe new` and `portal copilot` are gone, and `portal serve` no
78
- longer takes `--destination` or `--no-reload`. Run `apimatic autocomplete --refresh-cache`
79
- to drop the removed commands from shell completion.
80
-
81
24
  # Usage
82
25
  <!-- usage -->
83
26
  ```sh-session
@@ -151,9 +94,11 @@ Validate API specification for syntactic and semantic correctness
151
94
 
152
95
  ```
153
96
  USAGE
154
- $ apimatic api validate [--file <value>] [--url <value>] [-k <value>]
97
+ $ apimatic api validate [--file <value> | --url <value> | -i <value>] [-k <value>]
155
98
 
156
99
  FLAGS
100
+ -i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which includes API
101
+ specifications and configuration files.
157
102
  -k, --auth-key=<value> override current authentication state with an authentication key.
158
103
  --file=<value> Path to the API specification file to validate
159
104
  --url=<value> URL to the API specification file to validate (publicly accessible)
@@ -161,9 +106,14 @@ FLAGS
161
106
  DESCRIPTION
162
107
  Validate API specification for syntactic and semantic correctness
163
108
 
164
- Validate your API specification to ensure it adheres to syntactic and semantic standards.
109
+ Validate the API specification in your 'src/spec' directory, or the one --file or --url points to, to ensure it
110
+ adheres to syntactic and semantic standards.
165
111
 
166
112
  EXAMPLES
113
+ apimatic api validate
114
+
115
+ apimatic api validate --input=./
116
+
167
117
  apimatic api validate --file=./specs/sample.json
168
118
 
169
119
  apimatic api validate --url="https://petstore.swagger.io/v2/swagger.json"
@@ -361,9 +311,14 @@ DESCRIPTION
361
311
 
362
312
  Builds a documentation portal from the OpenAPI documents and Markdown pages in your 'src' directory.
363
313
 
364
- The portal is built on your machine and written as static files you can host anywhere. Configure it with
365
- 'src/apimatic.json', whose 'languages' block gives the portal a page for each SDK language, and whose 'plugin' block,
366
- or a 'pluginUrl' in its 'portal' block for a plugin hosted elsewhere, a page for the context plugin.
314
+ Each OpenAPI document at the top of 'src/spec' gets a section of the API reference, and the SDKs are built from one of
315
+ them. To build the SDKs from several, put each in a folder of its own and set 'MergeConfiguration.MergeApis' to true
316
+ in an 'APIMATIC-META.json' beside the folders; each folder then gets a section.
317
+
318
+ The portal is built on your machine and written as static files for any static host, served at its root or, when
319
+ 'portal.site.url' has a path such as 'https://example.com/docs', at that path. Configure it with 'src/apimatic.json',
320
+ whose 'languages' block gives the portal a page for each SDK language, and whose 'plugin' block, or a 'pluginUrl' in
321
+ its 'portal' block for a plugin hosted elsewhere, a page for the context plugin.
367
322
 
368
323
  EXAMPLES
369
324
  apimatic portal generate
@@ -397,8 +352,9 @@ DESCRIPTION
397
352
  pages in 'src/content', reorder them in a 'nav.json', or change the 'portal', 'languages' or 'plugin' block of
398
353
  'apimatic.json'.
399
354
 
400
- Adding a language or a 'plugin' block, adding or removing a page in 'src/content', creating 'src/static', or changing
401
- which documents are in 'src/spec', needs the preview restarted.
355
+ Adding a language or a 'plugin' block, adding or removing a page in 'src/content', creating 'src/static', changing
356
+ which documents are in 'src/spec' or which folders its 'APIMATIC-META.json' merges, or changing the path in
357
+ 'portal.site.url', needs the preview restarted.
402
358
 
403
359
  Nothing is written to disk; run 'apimatic portal generate' to produce the static files.
404
360
 
@@ -77,8 +77,8 @@
77
77
  },
78
78
  "url": {
79
79
  "type": "string",
80
- "description": "The address the portal is hosted at, without a path, for example 'https://docs.example.com'.",
81
- "pattern": "^\\s*[hH][tT][tT][pP][sS]?://[^\\s/?#]+/?\\s*$"
80
+ "description": "The address the portal is hosted at, for example 'https://docs.example.com' or 'https://example.com/docs'.",
81
+ "pattern": "^\\s*[hH][tT][tT][pP][sS]?://[^\\s/?#\\\\]+(?:/(?!\\.{1,2}(?:/|\\s*$))(?![A-Za-z0-9._~-]*\\.[hH][tT][mM][lL]?/?\\s*$)[A-Za-z0-9._~-]+)*/?\\s*$"
82
82
  },
83
83
  "description": {
84
84
  "type": "string",
@@ -1,10 +1,11 @@
1
- export declare class ActionResult<T = void> {
1
+ export declare class ActionResult<T = void, E = never> {
2
2
  private readonly message;
3
3
  private readonly resultType;
4
4
  private readonly value?;
5
+ private readonly error?;
5
6
  private constructor();
6
7
  static success<T>(value?: T): ActionResult<T>;
7
- static failed<T = never>(message?: string): ActionResult<T>;
8
+ static failed<T = never, E = never>(message?: string, error?: E): ActionResult<T, E>;
8
9
  static cancelled<T = never>(message?: string): ActionResult<T>;
9
10
  static stopped<T = never>(message?: string): ActionResult<T>;
10
11
  getMessage(): string;
@@ -15,6 +16,7 @@ export declare class ActionResult<T = void> {
15
16
  match<R>(onSuccess: (value: T) => R, onFailure: (message: string) => R, onCancel: (message: string) => R): R;
16
17
  getValue(): T;
17
18
  getValueOr(defaultValue: T): T;
19
+ getError(): E | undefined;
18
20
  discardValue(): ActionResult;
19
21
  mapAll<R>(onSuccess: (value?: T) => R, onFailure: () => R, onCancel: () => R): R;
20
22
  }
@@ -8,16 +8,18 @@ export class ActionResult {
8
8
  message;
9
9
  resultType;
10
10
  value;
11
- constructor(resultType, message, value) {
11
+ error;
12
+ constructor(resultType, message, value, error) {
12
13
  this.resultType = resultType;
13
14
  this.message = message;
14
15
  this.value = value;
16
+ this.error = error;
15
17
  }
16
18
  static success(value) {
17
19
  return new ActionResult(ResultType.Success, "Succeeded", value);
18
20
  }
19
- static failed(message = "Failed") {
20
- return new ActionResult(ResultType.Failure, message);
21
+ static failed(message = "Failed", error) {
22
+ return new ActionResult(ResultType.Failure, message, undefined, error);
21
23
  }
22
24
  static cancelled(message = "Cancelled") {
23
25
  return new ActionResult(ResultType.Cancel, message);
@@ -59,6 +61,9 @@ export class ActionResult {
59
61
  getValueOr(defaultValue) {
60
62
  return this.isSuccess() ? this.value : defaultValue;
61
63
  }
64
+ getError() {
65
+ return this.error;
66
+ }
62
67
  discardValue() {
63
68
  return new ActionResult(this.resultType, this.message);
64
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"action-result.js","sourceRoot":"","sources":["../../src/actions/action-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-result.js","sourceRoot":"","sources":["../../src/actions/action-result.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { DirectoryPath } from "../../types/file/directoryPath.js";
2
- import { ActionResult } from "../action-result.js";
3
- import { ExportFormats } from "@apimatic/sdk";
4
- import { CommandMetadata } from "../../types/common/command-metadata.js";
5
- import { ResourceInput } from "../../types/file/resource-input.js";
1
+ import { DirectoryPath } from '../../types/file/directoryPath.js';
2
+ import { ActionResult } from '../action-result.js';
3
+ import { ExportFormats } from '@apimatic/sdk';
4
+ import { CommandMetadata } from '../../types/common/command-metadata.js';
5
+ import { FilePath } from '../../types/file/filePath.js';
6
+ import { UrlPath } from '../../types/file/urlPath.js';
6
7
  export declare class TransformAction {
7
8
  private readonly prompts;
8
9
  private readonly validatePrompts;
@@ -11,5 +12,5 @@ export declare class TransformAction {
11
12
  private readonly commandMetadata;
12
13
  private readonly authKey;
13
14
  constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
14
- readonly execute: (resourcePath: ResourceInput, format: ExportFormats, destination: DirectoryPath, force: boolean) => Promise<ActionResult>;
15
+ readonly execute: (resourcePath: FilePath | UrlPath, format: ExportFormats, destination: DirectoryPath, force: boolean) => Promise<ActionResult>;
15
16
  }
@@ -1,10 +1,10 @@
1
- import { ActionResult } from "../action-result.js";
2
- import { ApiTransformPrompts } from "../../prompts/api/transform.js";
3
- import { withDirPath } from "../../infrastructure/tmp-extensions.js";
4
- import { TransformationService } from "../../infrastructure/services/transformation-service.js";
5
- import { ApiValidatePrompts } from "../../prompts/api/validate.js";
6
- import { TransformContext } from "../../types/transform-context.js";
7
- import { ResourceContext } from "../../types/resource-context.js";
1
+ import { ActionResult } from '../action-result.js';
2
+ import { ApiTransformPrompts } from '../../prompts/api/transform.js';
3
+ import { withDirPath } from '../../infrastructure/tmp-extensions.js';
4
+ import { TransformationService } from '../../infrastructure/services/transformation-service.js';
5
+ import { ApiValidatePrompts } from '../../prompts/api/validate.js';
6
+ import { TransformContext } from '../../types/transform-context.js';
7
+ import { ResourceContext } from '../../types/resource-context.js';
8
8
  export class TransformAction {
9
9
  prompts = new ApiTransformPrompts();
10
10
  validatePrompts = new ApiValidatePrompts();
@@ -19,19 +19,18 @@ export class TransformAction {
19
19
  }
20
20
  execute = async (resourcePath, format, destination, force) => {
21
21
  return await withDirPath(async (tempDirectory) => {
22
- const resourceContext = new ResourceContext(tempDirectory);
23
- const specFileDirResult = await resourceContext.resolveTo(resourcePath);
24
- if (specFileDirResult.isErr()) {
25
- this.prompts.networkError(specFileDirResult.error);
22
+ const spec = await ResourceContext.resolveTo(resourcePath, tempDirectory);
23
+ if (spec.isErr()) {
24
+ this.validatePrompts.specUnavailable(spec.error);
26
25
  return ActionResult.failed();
27
26
  }
28
- const transformContext = new TransformContext(specFileDirResult.value, format, destination);
27
+ const transformContext = new TransformContext(spec.value.file(), format, destination);
29
28
  if (!force && (await transformContext.exists()) && !(await this.prompts.overwriteApi(destination))) {
30
29
  this.prompts.transformedApiAlreadyExists();
31
30
  return ActionResult.cancelled();
32
31
  }
33
32
  const result = await this.prompts.transformApi(this.transformationService.transformViaFile({
34
- file: specFileDirResult.value,
33
+ file: spec.value.file(),
35
34
  format: format,
36
35
  configDir: this.configDir,
37
36
  commandMetadata: this.commandMetadata,
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/actions/api/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/actions/api/transform.ts"],"names":[],"mappings":"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"}
@@ -2,16 +2,15 @@ import { DirectoryPath } from '../../types/file/directoryPath.js';
2
2
  import { ActionResult } from '../action-result.js';
3
3
  import { CommandMetadata } from '../../types/common/command-metadata.js';
4
4
  import { ResourceInput } from '../../types/file/resource-input.js';
5
- /** `unchecked`: the spec could not be fetched or the validation service did not answer, so nothing is known of it. */
6
- export type SpecCheck = 'valid' | 'invalid' | 'unchecked';
5
+ import { ResourceContext } from '../../types/resource-context.js';
6
+ /** `unchecked`: the spec never reached the validation service, or the service did not answer, so nothing is known of it. */
7
+ export type ValidateActionFailure = 'invalid' | 'unchecked';
7
8
  export declare class ValidateAction {
8
9
  private readonly prompts;
9
10
  private readonly validationService;
10
11
  private readonly authKey;
11
12
  private readonly commandMetadata;
12
13
  constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
13
- /** `onChecked` hears what the validation found, which the `ActionResult` alone cannot tell apart. */
14
- readonly execute: (resourcePath: ResourceInput, displayValidationSummary?: boolean, onChecked?: (check: SpecCheck) => void) => Promise<ActionResult>;
15
- private readonly check;
14
+ readonly execute: (spec: ResourceInput | ResourceContext, displayValidationSummary?: boolean) => Promise<ActionResult<void, ValidateActionFailure>>;
16
15
  private hasValidationIssues;
17
16
  }
@@ -13,40 +13,38 @@ export class ValidateAction {
13
13
  this.validationService = new ValidationService(configDir);
14
14
  this.commandMetadata = commandMetadata;
15
15
  }
16
- /** `onChecked` hears what the validation found, which the `ActionResult` alone cannot tell apart. */
17
- execute = async (resourcePath, displayValidationSummary = true, onChecked) => {
18
- const check = await this.check(resourcePath, displayValidationSummary);
19
- onChecked?.(check);
20
- return check === 'valid' ? ActionResult.success() : ActionResult.failed();
21
- };
22
- check = async (resourcePath, displayValidationSummary) => {
23
- return await withDirPath(async (tempDirectory) => {
24
- const resourceContext = new ResourceContext(tempDirectory);
25
- const specFileDirResult = await resourceContext.resolveTo(resourcePath);
26
- if (specFileDirResult.isErr()) {
27
- this.prompts.networkError(specFileDirResult.error);
28
- return 'unchecked';
29
- }
30
- const validationSummaryResult = await this.prompts.validateApi(this.validationService.validateViaFile({
31
- file: specFileDirResult.value,
32
- commandMetadata: this.commandMetadata,
33
- authKey: this.authKey
34
- }));
35
- if (validationSummaryResult.isErr()) {
36
- this.prompts.logValidationError(validationSummaryResult.error.message);
37
- return validationSummaryResult.error.kind === 'rejected' ? 'invalid' : 'unchecked';
38
- }
39
- const { validation, linting } = validationSummaryResult.value;
40
- if (displayValidationSummary) {
41
- if (this.hasValidationIssues(validation)) {
42
- this.prompts.displayValidationSummary(validation);
43
- }
44
- if (this.hasValidationIssues(linting)) {
45
- this.prompts.displayValidationSummary(linting);
16
+ execute = async (spec, displayValidationSummary = true) => {
17
+ if (!(spec instanceof ResourceContext)) {
18
+ return await withDirPath(async (tempDirectory) => {
19
+ const resolved = await ResourceContext.resolveTo(spec, tempDirectory);
20
+ if (resolved.isErr()) {
21
+ this.prompts.specUnavailable(resolved.error);
22
+ return ActionResult.failed(undefined, 'unchecked');
46
23
  }
24
+ return await this.execute(resolved.value, displayValidationSummary);
25
+ });
26
+ }
27
+ const validationSummaryResult = await this.prompts.validateApi(this.validationService.validateViaFile({
28
+ file: spec.file(),
29
+ commandMetadata: this.commandMetadata,
30
+ authKey: this.authKey
31
+ }));
32
+ if (validationSummaryResult.isErr()) {
33
+ this.prompts.logValidationError(validationSummaryResult.error.message);
34
+ return ActionResult.failed(undefined, validationSummaryResult.error.kind === 'rejected' ? 'invalid' : 'unchecked');
35
+ }
36
+ const { validation, linting } = validationSummaryResult.value;
37
+ if (displayValidationSummary) {
38
+ if (this.hasValidationIssues(validation)) {
39
+ this.prompts.displayValidationSummary(validation);
40
+ }
41
+ if (this.hasValidationIssues(linting)) {
42
+ this.prompts.displayValidationSummary(linting);
47
43
  }
48
- return validation.isSuccess && linting.isSuccess ? 'valid' : 'invalid';
49
- });
44
+ }
45
+ return validation.isSuccess && linting.isSuccess
46
+ ? ActionResult.success()
47
+ : ActionResult.failed(undefined, 'invalid');
50
48
  };
51
49
  hasValidationIssues(summary) {
52
50
  return (summary.blocking.length > 0 ||
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/actions/api/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/actions/api/validate.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export class GenerateAction {
28
28
  const portalContext = new PortalContext(portalDirectory);
29
29
  return await new PreparePortalProjectAction(this.configDir, this.commandMetadata, this.authKey).execute(project, {
30
30
  confirm: () => this.confirmOverwrite(portalContext, portalDirectory, force),
31
- onPrepared: (portalProject) => this.build(portalProject, portalContext, portalDirectory, zipPortal)
31
+ onPrepared: (portalProject, source) => this.build(portalProject, source.config.siteAddress(), portalContext, portalDirectory, zipPortal)
32
32
  });
33
33
  };
34
34
  async confirmOverwrite(portalContext, portalDirectory, force) {
@@ -38,7 +38,7 @@ export class GenerateAction {
38
38
  this.prompts.portalDirectoryNotEmpty();
39
39
  return false;
40
40
  }
41
- async build(portalProject, portalContext, portalDirectory, zipPortal) {
41
+ async build(portalProject, site, portalContext, portalDirectory, zipPortal) {
42
42
  const build = await this.prompts.buildPortal(this.buildService.build(portalProject));
43
43
  if (build.isErr()) {
44
44
  // Written before the temp directory is removed, so the log outlives the build.
@@ -51,7 +51,7 @@ export class GenerateAction {
51
51
  return ActionResult.failed();
52
52
  }
53
53
  this.prompts.portalGenerated(portalDirectory);
54
- this.prompts.nextSteps(portalDirectory, zipPortal);
54
+ this.prompts.nextSteps(portalDirectory, zipPortal, site);
55
55
  return ActionResult.success();
56
56
  }
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/portal/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/portal/generate.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,9 @@ export class PreparePortalProjectAction {
38
38
  }
39
39
  this.prompts.filesShadowedByStatic(source.value.shadowedFiles);
40
40
  this.prompts.contentNotices(source.value.contentNotices, sourceDirectory);
41
+ this.prompts.unmergedSpecs(source.value.unmergedSpecs, sourceDirectory);
42
+ this.prompts.leftOutSpecs(source.value.leftOutSpecs, sourceDirectory);
43
+ this.prompts.sharedEndpoints(source.value.sharedEndpoints, sourceDirectory);
41
44
  if (!(await confirm())) {
42
45
  return ActionResult.cancelled();
43
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-project.js","sourceRoot":"","sources":["../../../src/actions/portal/prepare-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAMtF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAanD,MAAM,OAAO,0BAA0B;IAOlB,SAAS;IACT,eAAe;IACf,OAAO;IART,OAAO,GAAgC,IAAI,2BAA2B,EAAE,CAAC;IACzE,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC5C,oBAAoB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACxD,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAEjE,YACmB,SAAwB,EACxB,eAAgC,EAChC,OAAO,GAAkB,IAAI;yBAF7B,SAAS;+BACT,eAAe;uBACf,OAAO;IACvB,CAAC;IAEJ,oHAAoH;IACpG,OAAO,GAAG,KAAK,EAC7B,OAAuB,EACvB,EAAE,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAoB,EACrC,EAAE;QACzB,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAElD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAC5D,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAChD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAC7D,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,CAAC,KAAK,EAC1B,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QAED,kGAAkG;QAClG,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC;QACtD,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAC1D,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QAE1E,IAAI,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC,SAAS,EAAE,CAAC;QAClC,CAAC;QAED,yFAAyF;QACzF,kFAAkF;QAClF,OAAO,MAAM,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE;YACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACpD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAC5B,eAAe,EACf,kBAAkB,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,CACb,CACF,CAAC;YACF,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;gBACtB,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,eAAe,CAC1B,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CACpG,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACzE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC1C,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,OAAO,MAAM,0BAA0B,CAAC,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;gBAC/E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACtG,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACrD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC/B,CAAC;gBAED,OAAO,MAAM,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"prepare-project.js","sourceRoot":"","sources":["../../../src/actions/portal/prepare-project.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ import { CommandMetadata } from '../types/common/command-metadata.js';
4
4
  export declare class QuickstartAction {
5
5
  private readonly prompts;
6
6
  private readonly fileService;
7
- private readonly fileDownloadService;
8
7
  private readonly authorizationService;
9
8
  private readonly projectService;
10
9
  private readonly configDir;
@@ -12,17 +11,10 @@ export declare class QuickstartAction {
12
11
  private readonly defaultSpecUrl;
13
12
  constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata);
14
13
  readonly execute: (workingDirectory: DirectoryPath) => Promise<ActionResult>;
15
- private runWizard;
16
14
  private adoptProject;
17
15
  private startProject;
18
16
  private completeProject;
19
- private importSpec;
20
- /**
21
- * `adopted` decides what a failure offers. The sample can replace a specification the user
22
- * named, but not one their project carries: an adopted `spec/` already holds the document the
23
- * portal would be built from, and nothing here moves the sample into it.
24
- */
25
- private validate;
17
+ private validationFailure;
26
18
  private chooseProjectDirectory;
27
19
  private specFormat;
28
20
  }