@sanity/runtime-cli 12.0.1 → 12.2.0
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/README.md +25 -24
- package/dist/actions/blueprints/blueprint.d.ts +5 -4
- package/dist/actions/blueprints/config.d.ts +7 -6
- package/dist/actions/blueprints/config.js +8 -6
- package/dist/actions/blueprints/stacks.d.ts +8 -4
- package/dist/actions/blueprints/stacks.js +6 -32
- package/dist/commands/blueprints/destroy.js +2 -0
- package/dist/commands/blueprints/doctor.d.ts +1 -0
- package/dist/commands/blueprints/doctor.js +4 -0
- package/dist/commands/blueprints/info.js +1 -1
- package/dist/commands/blueprints/init.js +1 -1
- package/dist/commands/blueprints/stacks.js +1 -1
- package/dist/commands/functions/dev.d.ts +2 -2
- package/dist/commands/functions/dev.js +3 -2
- package/dist/config.js +12 -2
- package/dist/constants.d.ts +7 -0
- package/dist/constants.js +7 -0
- package/dist/cores/blueprints/config.js +36 -39
- package/dist/cores/blueprints/doctor.d.ts +1 -0
- package/dist/cores/blueprints/doctor.js +36 -5
- package/dist/cores/blueprints/info.js +2 -2
- package/dist/cores/blueprints/init.d.ts +2 -0
- package/dist/cores/blueprints/init.js +38 -14
- package/dist/cores/functions/env/add.js +2 -2
- package/dist/cores/functions/env/list.js +2 -2
- package/dist/cores/functions/env/remove.js +2 -2
- package/dist/cores/functions/logs.js +2 -2
- package/dist/cores/functions/test.js +31 -23
- package/dist/server/app.js +32 -21
- package/dist/server/handlers/invoke.d.ts +2 -2
- package/dist/server/handlers/invoke.js +2 -2
- package/dist/server/static/components/api-base.js +3 -0
- package/dist/server/static/components/app.css +120 -95
- package/dist/server/static/components/clear-button.js +1 -1
- package/dist/server/static/components/console-panel.js +6 -6
- package/dist/server/static/components/fetch-button.js +1 -1
- package/dist/server/static/components/filter-api-version.js +3 -3
- package/dist/server/static/components/filter-document-id.js +5 -5
- package/dist/server/static/components/filter-with-token.js +4 -4
- package/dist/server/static/components/filters.js +2 -2
- package/dist/server/static/components/function-list.js +14 -5
- package/dist/server/static/components/help-button.js +4 -1
- package/dist/server/static/components/payload-panel.js +9 -9
- package/dist/server/static/components/response-panel.js +8 -8
- package/dist/server/static/components/rule-panel.js +4 -4
- package/dist/server/static/components/run-panel.js +4 -4
- package/dist/server/static/components/select-dropdown.js +5 -25
- package/dist/server/static/index.html +9 -9
- package/dist/server/static/vendor/m-.css +1 -0
- package/dist/server/static/vendor/m-.woff2 +0 -0
- package/dist/utils/display/blueprints-formatting.d.ts +3 -2
- package/dist/utils/display/blueprints-formatting.js +102 -50
- package/dist/utils/display/presenters.d.ts +1 -0
- package/dist/utils/display/presenters.js +3 -0
- package/dist/utils/display/prompt.js +10 -9
- package/dist/utils/display/resources-formatting.d.ts +6 -2
- package/dist/utils/display/resources-formatting.js +71 -17
- package/dist/utils/find-function.d.ts +2 -2
- package/dist/utils/find-function.js +9 -2
- package/dist/utils/invoke-local.d.ts +2 -2
- package/dist/utils/invoke-local.js +27 -16
- package/dist/utils/types.d.ts +46 -22
- package/dist/utils/types.js +25 -2
- package/dist/utils/validate/resource.js +144 -23
- package/dist/utils/validated-token.js +1 -1
- package/oclif.manifest.json +23 -4
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ $ npm install -g @sanity/runtime-cli
|
|
|
20
20
|
$ sanity-run COMMAND
|
|
21
21
|
running command...
|
|
22
22
|
$ sanity-run (--version)
|
|
23
|
-
@sanity/runtime-cli/12.0
|
|
23
|
+
@sanity/runtime-cli/12.2.0 linux-x64 node-v24.11.1
|
|
24
24
|
$ sanity-run --help [COMMAND]
|
|
25
25
|
USAGE
|
|
26
26
|
$ sanity-run COMMAND
|
|
@@ -92,7 +92,7 @@ EXAMPLES
|
|
|
92
92
|
$ sanity-run blueprints add function --name my-function --fn-type document-create --fn-type document-update --lang js
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
_See code: [src/commands/blueprints/add.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
95
|
+
_See code: [src/commands/blueprints/add.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/add.ts)_
|
|
96
96
|
|
|
97
97
|
## `sanity-run blueprints config`
|
|
98
98
|
|
|
@@ -121,7 +121,7 @@ EXAMPLES
|
|
|
121
121
|
$ sanity-run blueprints config --edit --project-id <projectId> --stack-id <stackId>
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
_See code: [src/commands/blueprints/config.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
124
|
+
_See code: [src/commands/blueprints/config.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/config.ts)_
|
|
125
125
|
|
|
126
126
|
## `sanity-run blueprints deploy`
|
|
127
127
|
|
|
@@ -143,7 +143,7 @@ EXAMPLES
|
|
|
143
143
|
$ sanity-run blueprints deploy --no-wait
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
_See code: [src/commands/blueprints/deploy.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
146
|
+
_See code: [src/commands/blueprints/deploy.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/deploy.ts)_
|
|
147
147
|
|
|
148
148
|
## `sanity-run blueprints destroy`
|
|
149
149
|
|
|
@@ -170,7 +170,7 @@ EXAMPLES
|
|
|
170
170
|
$ sanity-run blueprints destroy --stack-id <stackId> --project-id <projectId> --force --no-wait
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
_See code: [src/commands/blueprints/destroy.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
173
|
+
_See code: [src/commands/blueprints/destroy.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/destroy.ts)_
|
|
174
174
|
|
|
175
175
|
## `sanity-run blueprints doctor`
|
|
176
176
|
|
|
@@ -178,9 +178,10 @@ Diagnose potential issues with Blueprint configuration
|
|
|
178
178
|
|
|
179
179
|
```
|
|
180
180
|
USAGE
|
|
181
|
-
$ sanity-run blueprints doctor [--verbose] [--path <value>]
|
|
181
|
+
$ sanity-run blueprints doctor [--verbose] [--path <value>] [--fix]
|
|
182
182
|
|
|
183
183
|
FLAGS
|
|
184
|
+
--fix Interactively fix configuration issues
|
|
184
185
|
--path=<value> Path to the Blueprint configuration file
|
|
185
186
|
--verbose Provide detailed information about issues
|
|
186
187
|
|
|
@@ -188,7 +189,7 @@ DESCRIPTION
|
|
|
188
189
|
Diagnose potential issues with Blueprint configuration
|
|
189
190
|
```
|
|
190
191
|
|
|
191
|
-
_See code: [src/commands/blueprints/doctor.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
192
|
+
_See code: [src/commands/blueprints/doctor.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/doctor.ts)_
|
|
192
193
|
|
|
193
194
|
## `sanity-run blueprints info`
|
|
194
195
|
|
|
@@ -207,14 +208,14 @@ DESCRIPTION
|
|
|
207
208
|
EXAMPLES
|
|
208
209
|
$ sanity-run blueprints info
|
|
209
210
|
|
|
210
|
-
$ sanity-run blueprints info --
|
|
211
|
+
$ sanity-run blueprints info --id <stackId>
|
|
211
212
|
```
|
|
212
213
|
|
|
213
|
-
_See code: [src/commands/blueprints/info.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
214
|
+
_See code: [src/commands/blueprints/info.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/info.ts)_
|
|
214
215
|
|
|
215
216
|
## `sanity-run blueprints init [DIR]`
|
|
216
217
|
|
|
217
|
-
Initialize a new Blueprint
|
|
218
|
+
Initialize a new Blueprint Stack deployment
|
|
218
219
|
|
|
219
220
|
```
|
|
220
221
|
USAGE
|
|
@@ -236,7 +237,7 @@ FLAGS
|
|
|
236
237
|
--verbose Verbose output
|
|
237
238
|
|
|
238
239
|
DESCRIPTION
|
|
239
|
-
Initialize a new Blueprint
|
|
240
|
+
Initialize a new Blueprint Stack deployment
|
|
240
241
|
|
|
241
242
|
EXAMPLES
|
|
242
243
|
$ sanity-run blueprints init
|
|
@@ -250,7 +251,7 @@ EXAMPLES
|
|
|
250
251
|
$ sanity-run blueprints init --blueprint-type <json|js|ts> --stack-name <stackName>
|
|
251
252
|
```
|
|
252
253
|
|
|
253
|
-
_See code: [src/commands/blueprints/init.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
254
|
+
_See code: [src/commands/blueprints/init.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/init.ts)_
|
|
254
255
|
|
|
255
256
|
## `sanity-run blueprints logs`
|
|
256
257
|
|
|
@@ -272,7 +273,7 @@ EXAMPLES
|
|
|
272
273
|
$ sanity-run blueprints logs --watch
|
|
273
274
|
```
|
|
274
275
|
|
|
275
|
-
_See code: [src/commands/blueprints/logs.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
276
|
+
_See code: [src/commands/blueprints/logs.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/logs.ts)_
|
|
276
277
|
|
|
277
278
|
## `sanity-run blueprints plan`
|
|
278
279
|
|
|
@@ -289,11 +290,11 @@ EXAMPLES
|
|
|
289
290
|
$ sanity-run blueprints plan
|
|
290
291
|
```
|
|
291
292
|
|
|
292
|
-
_See code: [src/commands/blueprints/plan.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
293
|
+
_See code: [src/commands/blueprints/plan.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/plan.ts)_
|
|
293
294
|
|
|
294
295
|
## `sanity-run blueprints stacks`
|
|
295
296
|
|
|
296
|
-
List all Blueprint
|
|
297
|
+
List all Blueprint Stacks
|
|
297
298
|
|
|
298
299
|
```
|
|
299
300
|
USAGE
|
|
@@ -304,7 +305,7 @@ FLAGS
|
|
|
304
305
|
--project-id=<value> Project ID to show stacks for
|
|
305
306
|
|
|
306
307
|
DESCRIPTION
|
|
307
|
-
List all Blueprint
|
|
308
|
+
List all Blueprint Stacks
|
|
308
309
|
|
|
309
310
|
EXAMPLES
|
|
310
311
|
$ sanity-run blueprints stacks
|
|
@@ -314,7 +315,7 @@ EXAMPLES
|
|
|
314
315
|
$ sanity-run blueprints stacks --organization-id <organizationId>
|
|
315
316
|
```
|
|
316
317
|
|
|
317
|
-
_See code: [src/commands/blueprints/stacks.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
318
|
+
_See code: [src/commands/blueprints/stacks.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/blueprints/stacks.ts)_
|
|
318
319
|
|
|
319
320
|
## `sanity-run functions add`
|
|
320
321
|
|
|
@@ -356,7 +357,7 @@ EXAMPLES
|
|
|
356
357
|
$ sanity-run functions add --name my-function --type document-create --type document-update --lang js
|
|
357
358
|
```
|
|
358
359
|
|
|
359
|
-
_See code: [src/commands/functions/add.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
360
|
+
_See code: [src/commands/functions/add.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/functions/add.ts)_
|
|
360
361
|
|
|
361
362
|
## `sanity-run functions dev`
|
|
362
363
|
|
|
@@ -379,7 +380,7 @@ EXAMPLES
|
|
|
379
380
|
$ sanity-run functions dev --host 127.0.0.1 --port 8974
|
|
380
381
|
```
|
|
381
382
|
|
|
382
|
-
_See code: [src/commands/functions/dev.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
383
|
+
_See code: [src/commands/functions/dev.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/functions/dev.ts)_
|
|
383
384
|
|
|
384
385
|
## `sanity-run functions env add NAME KEY VALUE`
|
|
385
386
|
|
|
@@ -401,7 +402,7 @@ EXAMPLES
|
|
|
401
402
|
$ sanity-run functions env add MyFunction API_URL https://api.example.com/
|
|
402
403
|
```
|
|
403
404
|
|
|
404
|
-
_See code: [src/commands/functions/env/add.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
405
|
+
_See code: [src/commands/functions/env/add.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/functions/env/add.ts)_
|
|
405
406
|
|
|
406
407
|
## `sanity-run functions env list NAME`
|
|
407
408
|
|
|
@@ -421,7 +422,7 @@ EXAMPLES
|
|
|
421
422
|
$ sanity-run functions env list MyFunction
|
|
422
423
|
```
|
|
423
424
|
|
|
424
|
-
_See code: [src/commands/functions/env/list.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
425
|
+
_See code: [src/commands/functions/env/list.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/functions/env/list.ts)_
|
|
425
426
|
|
|
426
427
|
## `sanity-run functions env remove NAME KEY`
|
|
427
428
|
|
|
@@ -442,7 +443,7 @@ EXAMPLES
|
|
|
442
443
|
$ sanity-run functions env remove MyFunction API_URL
|
|
443
444
|
```
|
|
444
445
|
|
|
445
|
-
_See code: [src/commands/functions/env/remove.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
446
|
+
_See code: [src/commands/functions/env/remove.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/functions/env/remove.ts)_
|
|
446
447
|
|
|
447
448
|
## `sanity-run functions logs NAME`
|
|
448
449
|
|
|
@@ -476,7 +477,7 @@ EXAMPLES
|
|
|
476
477
|
$ sanity-run functions logs <name> --delete
|
|
477
478
|
```
|
|
478
479
|
|
|
479
|
-
_See code: [src/commands/functions/logs.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
480
|
+
_See code: [src/commands/functions/logs.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/functions/logs.ts)_
|
|
480
481
|
|
|
481
482
|
## `sanity-run functions test NAME`
|
|
482
483
|
|
|
@@ -525,7 +526,7 @@ EXAMPLES
|
|
|
525
526
|
$ sanity-run functions test <name> --event update --data-before '{ "title": "before" }' --data-after '{ "title": "after" }'
|
|
526
527
|
```
|
|
527
528
|
|
|
528
|
-
_See code: [src/commands/functions/test.ts](https://github.com/sanity-io/runtime-cli/blob/v12.0
|
|
529
|
+
_See code: [src/commands/functions/test.ts](https://github.com/sanity-io/runtime-cli/blob/v12.2.0/src/commands/functions/test.ts)_
|
|
529
530
|
|
|
530
531
|
## `sanity-run help [COMMAND]`
|
|
531
532
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { BlueprintResource } from '@sanity/blueprints';
|
|
1
2
|
import { type Blueprint } from '@sanity/blueprints-parser';
|
|
2
|
-
import type { BlueprintParserError
|
|
3
|
+
import type { BlueprintParserError } from '../../utils/types.js';
|
|
3
4
|
import { type ScopeType } from '../../utils/types.js';
|
|
4
|
-
import { type
|
|
5
|
+
import { type LocatedBlueprintsConfig } from './config.js';
|
|
5
6
|
declare const SUPPORTED_FILE_EXTENSIONS: readonly [".json", ".js", ".mjs", ".ts"];
|
|
6
7
|
type BlueprintFileExtension = (typeof SUPPORTED_FILE_EXTENSIONS)[number];
|
|
7
8
|
export declare const JSON_BLUEPRINT_CONTENT: {
|
|
@@ -29,7 +30,7 @@ export declare function findBlueprintFile(blueprintPath?: string): FileInfo | nu
|
|
|
29
30
|
/** Result of the blueprint read operation */
|
|
30
31
|
export interface ReadBlueprintResult {
|
|
31
32
|
fileInfo: FileInfo;
|
|
32
|
-
blueprintConfig:
|
|
33
|
+
blueprintConfig: LocatedBlueprintsConfig | null;
|
|
33
34
|
rawBlueprint: Record<string, unknown>;
|
|
34
35
|
parsedBlueprint: Blueprint;
|
|
35
36
|
errors: BlueprintParserError[];
|
|
@@ -51,7 +52,7 @@ export declare function writeBlueprintToDisk({ blueprintFilePath, jsonContent, }
|
|
|
51
52
|
blueprintFilePath: string;
|
|
52
53
|
jsonContent?: Blueprint;
|
|
53
54
|
}): string;
|
|
54
|
-
export declare function addResourceToBlueprint<T extends
|
|
55
|
+
export declare function addResourceToBlueprint<T extends BlueprintResource>({ blueprintFilePath, resource, }: {
|
|
55
56
|
blueprintFilePath?: string;
|
|
56
57
|
resource: T;
|
|
57
58
|
}): T | undefined;
|
|
@@ -5,12 +5,14 @@ export interface ConfigUpdate {
|
|
|
5
5
|
stackId?: string;
|
|
6
6
|
}
|
|
7
7
|
export interface BlueprintsConfig extends ConfigUpdate {
|
|
8
|
-
configPath: string;
|
|
9
8
|
blueprintConfigVersion?: typeof BLUEPRINT_CONFIG_VERSION;
|
|
10
9
|
runtimeCliVersion?: typeof RUNTIME_CLI_VERSION;
|
|
11
10
|
updatedAt?: number;
|
|
12
11
|
}
|
|
13
|
-
export
|
|
12
|
+
export interface LocatedBlueprintsConfig extends BlueprintsConfig {
|
|
13
|
+
configPath: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function readConfigFile(blueprintFilePath?: string): LocatedBlueprintsConfig | null;
|
|
14
16
|
/**
|
|
15
17
|
* Create or update the config file to disk.
|
|
16
18
|
* One of organizationId or projectId must be provided. Not both.
|
|
@@ -21,8 +23,7 @@ export declare function readConfigFile(blueprintFilePath?: string): BlueprintsCo
|
|
|
21
23
|
* @param options.projectId - the project ID
|
|
22
24
|
* @param options.stackId - the stack ID
|
|
23
25
|
*/
|
|
24
|
-
export declare function writeConfigFile(options: {
|
|
25
|
-
blueprintFilePath?: string;
|
|
26
|
+
export declare function writeConfigFile(blueprintFilePath: string, options: {
|
|
26
27
|
stackId?: string;
|
|
27
28
|
} & ({
|
|
28
29
|
organizationId: string;
|
|
@@ -30,7 +31,7 @@ export declare function writeConfigFile(options: {
|
|
|
30
31
|
} | {
|
|
31
32
|
projectId: string;
|
|
32
33
|
organizationId?: string;
|
|
33
|
-
})):
|
|
34
|
+
})): BlueprintsConfig;
|
|
34
35
|
/**
|
|
35
36
|
* Update the config file with the given properties.
|
|
36
37
|
* Config file must already exist.
|
|
@@ -41,7 +42,7 @@ export declare function writeConfigFile(options: {
|
|
|
41
42
|
* @param updateableProperties.projectId - the project ID
|
|
42
43
|
* @param updateableProperties.stackId - the stack ID
|
|
43
44
|
*/
|
|
44
|
-
export declare function patchConfigFile(blueprintFilePath: string, updateableProperties: ConfigUpdate):
|
|
45
|
+
export declare function patchConfigFile(blueprintFilePath: string, updateableProperties: ConfigUpdate): BlueprintsConfig;
|
|
45
46
|
/**
|
|
46
47
|
* Find and write an organizationId to the config file by getting it from the projectId
|
|
47
48
|
* @throws {Error} if unable to fetch project
|
|
@@ -28,8 +28,8 @@ export function readConfigFile(blueprintFilePath) {
|
|
|
28
28
|
* @param options.projectId - the project ID
|
|
29
29
|
* @param options.stackId - the stack ID
|
|
30
30
|
*/
|
|
31
|
-
export function writeConfigFile(options) {
|
|
32
|
-
const {
|
|
31
|
+
export function writeConfigFile(blueprintFilePath, options) {
|
|
32
|
+
const { organizationId, projectId, stackId } = options;
|
|
33
33
|
const blueprintDir = blueprintFilePath ? dirname(blueprintFilePath) : cwd();
|
|
34
34
|
const configDir = join(blueprintDir, BLUEPRINT_CONFIG_DIR);
|
|
35
35
|
const configPath = join(configDir, BLUEPRINT_CONFIG_FILE);
|
|
@@ -49,6 +49,7 @@ export function writeConfigFile(options) {
|
|
|
49
49
|
config.runtimeCliVersion = RUNTIME_CLI_VERSION;
|
|
50
50
|
config.updatedAt = Date.now();
|
|
51
51
|
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
52
|
+
return config;
|
|
52
53
|
}
|
|
53
54
|
/**
|
|
54
55
|
* Update the config file with the given properties.
|
|
@@ -66,13 +67,14 @@ export function patchConfigFile(blueprintFilePath, updateableProperties) {
|
|
|
66
67
|
throw new Error('No config file found');
|
|
67
68
|
const { configPath, ...existingConfigProperties } = existingConfig;
|
|
68
69
|
const newConfig = {
|
|
69
|
-
blueprintConfigVersion: BLUEPRINT_CONFIG_VERSION, //
|
|
70
|
+
blueprintConfigVersion: BLUEPRINT_CONFIG_VERSION, // patch doesn't overwrite versions
|
|
71
|
+
runtimeCliVersion: RUNTIME_CLI_VERSION,
|
|
70
72
|
...existingConfigProperties,
|
|
71
73
|
...updateableProperties,
|
|
72
74
|
updatedAt: Date.now(),
|
|
73
|
-
runtimeCliVersion: RUNTIME_CLI_VERSION,
|
|
74
75
|
};
|
|
75
76
|
writeFileSync(configPath, JSON.stringify(newConfig, null, 2));
|
|
77
|
+
return newConfig;
|
|
76
78
|
}
|
|
77
79
|
/**
|
|
78
80
|
* Find and write an organizationId to the config file by getting it from the projectId
|
|
@@ -97,7 +99,7 @@ export async function backfillOrganizationId({ blueprintFilePath, projectId, })
|
|
|
97
99
|
}
|
|
98
100
|
if (!organizationId)
|
|
99
101
|
throw new Error('No organizationId found');
|
|
100
|
-
|
|
102
|
+
patchConfigFile(blueprintFilePath, { organizationId });
|
|
101
103
|
return organizationId;
|
|
102
104
|
}
|
|
103
105
|
export async function backfillProjectBasedStackId({ blueprintFilePath, projectId, }) {
|
|
@@ -117,7 +119,7 @@ export async function backfillProjectBasedStackId({ blueprintFilePath, projectId
|
|
|
117
119
|
stacks[0].scopeType === 'project' &&
|
|
118
120
|
stacks[0].id === possibleStackId) {
|
|
119
121
|
// jackpot
|
|
120
|
-
|
|
122
|
+
patchConfigFile(blueprintFilePath, { projectId, stackId: possibleStackId });
|
|
121
123
|
return possibleStackId;
|
|
122
124
|
}
|
|
123
125
|
return undefined;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { AuthParams, ScopeType, Stack, StackMutation } from '../../utils/types.js';
|
|
2
2
|
export declare const stacksUrl: string;
|
|
3
|
-
|
|
4
|
-
ok:
|
|
5
|
-
error:
|
|
3
|
+
type ListStacksResponse = {
|
|
4
|
+
ok: true;
|
|
5
|
+
error: null;
|
|
6
6
|
stacks: Stack[];
|
|
7
|
-
}
|
|
7
|
+
} | {
|
|
8
|
+
ok: false;
|
|
9
|
+
error: string;
|
|
10
|
+
stacks: unknown;
|
|
11
|
+
};
|
|
8
12
|
export declare function listStacks(auth: AuthParams): Promise<ListStacksResponse>;
|
|
9
13
|
interface GetStackResponse {
|
|
10
14
|
ok: boolean;
|
|
@@ -2,32 +2,6 @@ import config from '../../config.js';
|
|
|
2
2
|
import getHeaders from '../../utils/get-headers.js';
|
|
3
3
|
const { apiUrl } = config;
|
|
4
4
|
export const stacksUrl = `${apiUrl}vX/blueprints/stacks`;
|
|
5
|
-
/** Discriminate between Resource and Resource with parameters */
|
|
6
|
-
function hasParameters(obj) {
|
|
7
|
-
return (typeof obj === 'object' &&
|
|
8
|
-
obj !== null &&
|
|
9
|
-
'parameters' in obj &&
|
|
10
|
-
typeof obj.parameters === 'object' &&
|
|
11
|
-
obj.parameters !== null);
|
|
12
|
-
}
|
|
13
|
-
/** Flatten Resource with parameters */
|
|
14
|
-
function flattenResource(resource) {
|
|
15
|
-
if (hasParameters(resource)) {
|
|
16
|
-
const { parameters, ...rest } = resource;
|
|
17
|
-
return { ...rest, ...parameters };
|
|
18
|
-
}
|
|
19
|
-
return resource;
|
|
20
|
-
}
|
|
21
|
-
/** Flatten a Stack's resources */
|
|
22
|
-
function flattenStackResources(stack) {
|
|
23
|
-
if (stack && Array.isArray(stack.resources)) {
|
|
24
|
-
return {
|
|
25
|
-
...stack,
|
|
26
|
-
resources: stack.resources.map(flattenResource),
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
return stack;
|
|
30
|
-
}
|
|
31
5
|
export async function listStacks(auth) {
|
|
32
6
|
const response = await fetch(stacksUrl, {
|
|
33
7
|
method: 'GET',
|
|
@@ -37,7 +11,7 @@ export async function listStacks(auth) {
|
|
|
37
11
|
return {
|
|
38
12
|
ok: response.ok,
|
|
39
13
|
error: response.ok ? null : data.message,
|
|
40
|
-
stacks:
|
|
14
|
+
stacks: data,
|
|
41
15
|
};
|
|
42
16
|
}
|
|
43
17
|
export async function getStack({ stackId, auth, }) {
|
|
@@ -49,7 +23,7 @@ export async function getStack({ stackId, auth, }) {
|
|
|
49
23
|
return {
|
|
50
24
|
ok: response.ok,
|
|
51
25
|
error: response.ok ? null : data.message,
|
|
52
|
-
stack:
|
|
26
|
+
stack: data,
|
|
53
27
|
response,
|
|
54
28
|
};
|
|
55
29
|
}
|
|
@@ -63,7 +37,7 @@ export async function createStack({ stackMutation, auth, }) {
|
|
|
63
37
|
return {
|
|
64
38
|
ok: response.ok,
|
|
65
39
|
error: response.ok ? null : data.message,
|
|
66
|
-
stack:
|
|
40
|
+
stack: data,
|
|
67
41
|
};
|
|
68
42
|
}
|
|
69
43
|
export async function createEmptyStack({ token, scopeType, scopeId, name, }) {
|
|
@@ -80,7 +54,7 @@ export async function createEmptyStack({ token, scopeType, scopeId, name, }) {
|
|
|
80
54
|
if (!response.ok) {
|
|
81
55
|
throw new Error(response.error || 'Failed to create new Stack');
|
|
82
56
|
}
|
|
83
|
-
return
|
|
57
|
+
return response.stack;
|
|
84
58
|
}
|
|
85
59
|
export async function updateStack({ stackId, stackMutation, auth, }) {
|
|
86
60
|
const response = await fetch(`${stacksUrl}/${stackId}`, {
|
|
@@ -92,7 +66,7 @@ export async function updateStack({ stackId, stackMutation, auth, }) {
|
|
|
92
66
|
return {
|
|
93
67
|
ok: response.ok,
|
|
94
68
|
error: response.ok ? null : data.message,
|
|
95
|
-
stack:
|
|
69
|
+
stack: data,
|
|
96
70
|
};
|
|
97
71
|
}
|
|
98
72
|
export async function destroyStack({ stackId, auth, }) {
|
|
@@ -104,6 +78,6 @@ export async function destroyStack({ stackId, auth, }) {
|
|
|
104
78
|
return {
|
|
105
79
|
ok: response.ok,
|
|
106
80
|
error: response.ok ? null : data.message,
|
|
107
|
-
stack:
|
|
81
|
+
stack: data,
|
|
108
82
|
};
|
|
109
83
|
}
|
|
@@ -17,11 +17,13 @@ export default class DestroyCommand extends BlueprintCommand {
|
|
|
17
17
|
description: 'Project associated with the Stack',
|
|
18
18
|
aliases: ['projectId', 'project'],
|
|
19
19
|
dependsOn: ['stack-id', 'force'],
|
|
20
|
+
exclusive: ['organization-id'],
|
|
20
21
|
}),
|
|
21
22
|
'organization-id': Flags.string({
|
|
22
23
|
description: 'Organization associated with the Stack',
|
|
23
24
|
aliases: ['organizationId', 'organization', 'org'],
|
|
24
25
|
dependsOn: ['stack-id', 'force'],
|
|
26
|
+
exclusive: ['project-id'],
|
|
25
27
|
}),
|
|
26
28
|
'stack-id': Flags.string({
|
|
27
29
|
description: 'Stack ID to destroy (defaults to current Stack)',
|
|
@@ -5,6 +5,7 @@ export default class DoctorCommand extends Command {
|
|
|
5
5
|
static flags: {
|
|
6
6
|
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
7
|
path: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
fix: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
9
|
};
|
|
9
10
|
run(): Promise<void>;
|
|
10
11
|
}
|
|
@@ -12,6 +12,10 @@ export default class DoctorCommand extends Command {
|
|
|
12
12
|
path: Flags.string({
|
|
13
13
|
description: 'Path to the Blueprint configuration file',
|
|
14
14
|
}),
|
|
15
|
+
fix: Flags.boolean({
|
|
16
|
+
description: 'Interactively fix configuration issues',
|
|
17
|
+
default: false,
|
|
18
|
+
}),
|
|
15
19
|
};
|
|
16
20
|
async run() {
|
|
17
21
|
const { flags } = await this.parse(DoctorCommand);
|
|
@@ -5,7 +5,7 @@ export default class InfoCommand extends DeployedBlueprintCommand {
|
|
|
5
5
|
static description = 'Show information about a Blueprint Stack deployment';
|
|
6
6
|
static examples = [
|
|
7
7
|
'<%= config.bin %> <%= command.id %>',
|
|
8
|
-
'<%= config.bin %> <%= command.id %> --
|
|
8
|
+
'<%= config.bin %> <%= command.id %> --id <stackId>',
|
|
9
9
|
];
|
|
10
10
|
static flags = {
|
|
11
11
|
id: Flags.string({
|
|
@@ -2,7 +2,7 @@ import { Args, Command, Flags } from '@oclif/core';
|
|
|
2
2
|
import { blueprintInitCore } from '../../cores/blueprints/init.js';
|
|
3
3
|
import { validTokenOrErrorMessage } from '../../utils/validated-token.js';
|
|
4
4
|
export default class InitCommand extends Command {
|
|
5
|
-
static description = 'Initialize a new Blueprint';
|
|
5
|
+
static description = 'Initialize a new Blueprint Stack deployment';
|
|
6
6
|
static examples = [
|
|
7
7
|
'<%= config.bin %> <%= command.id %>',
|
|
8
8
|
'<%= config.bin %> <%= command.id %> [directory]',
|
|
@@ -2,7 +2,7 @@ import { Flags } from '@oclif/core';
|
|
|
2
2
|
import { BlueprintCommand } from '../../baseCommands.js';
|
|
3
3
|
import { blueprintStacksCore } from '../../cores/blueprints/stacks.js';
|
|
4
4
|
export default class StacksCommand extends BlueprintCommand {
|
|
5
|
-
static description = 'List all Blueprint
|
|
5
|
+
static description = 'List all Blueprint Stacks';
|
|
6
6
|
static examples = [
|
|
7
7
|
'<%= config.bin %> <%= command.id %>',
|
|
8
8
|
'<%= config.bin %> <%= command.id %> --project-id <projectId>',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class DevCommand extends
|
|
1
|
+
import { BlueprintCommand } from '../../baseCommands.js';
|
|
2
|
+
export default class DevCommand extends BlueprintCommand<typeof DevCommand> {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { BlueprintCommand } from '../../baseCommands.js';
|
|
2
3
|
import { functionDevCore } from '../../cores/functions/dev.js';
|
|
3
|
-
export default class DevCommand extends
|
|
4
|
+
export default class DevCommand extends BlueprintCommand {
|
|
4
5
|
static description = 'Start the Sanity Function emulator';
|
|
5
6
|
static examples = ['<%= config.bin %> <%= command.id %> --host 127.0.0.1 --port 8974'];
|
|
6
7
|
static flags = {
|
package/dist/config.js
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { dirname, join } from 'node:path';
|
|
3
2
|
import { env } from 'node:process';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { findUpSync } from 'find-up';
|
|
4
5
|
import getToken from './utils/get-token.js';
|
|
5
6
|
export const BLUEPRINT_CONFIG_VERSION = 'v2025-05-08';
|
|
6
7
|
export const BLUEPRINT_CONFIG_DIR = '.sanity';
|
|
7
8
|
export const BLUEPRINT_CONFIG_FILE = 'blueprint.config.json';
|
|
8
9
|
export let RUNTIME_CLI_VERSION;
|
|
9
10
|
try {
|
|
10
|
-
|
|
11
|
+
const packageJsonPath = findUpSync('package.json', {
|
|
12
|
+
cwd: fileURLToPath(new URL('.', import.meta.url)),
|
|
13
|
+
type: 'file',
|
|
14
|
+
});
|
|
15
|
+
if (packageJsonPath) {
|
|
16
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
|
|
17
|
+
if (packageJson.name === '@sanity/runtime-cli') {
|
|
18
|
+
RUNTIME_CLI_VERSION = packageJson.version;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
11
21
|
}
|
|
12
22
|
catch { }
|
|
13
23
|
const nodeEnv = env.NODE_ENV?.toLowerCase() ?? 'production';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const SANITY_ACCESS_ROLE = "sanity.access.role";
|
|
2
|
+
export declare const SANITY_FUNCTION_DOCUMENT = "sanity.function.document";
|
|
3
|
+
export declare const SANITY_FUNCTION_MEDIA_LIBRARY_ASSET = "sanity.function.media-library.asset";
|
|
4
|
+
export declare const SANITY_FUNCTION_SCHEDULE = "sanity.function.cron";
|
|
5
|
+
export declare const SANITY_PROJECT_CORS = "sanity.project.cors";
|
|
6
|
+
export declare const SANITY_PROJECT_DATASET = "sanity.project.dataset";
|
|
7
|
+
export declare const SANITY_PROJECT_WEBHOOK = "sanity.project.webhook";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const SANITY_ACCESS_ROLE = 'sanity.access.role';
|
|
2
|
+
export const SANITY_FUNCTION_DOCUMENT = 'sanity.function.document';
|
|
3
|
+
export const SANITY_FUNCTION_MEDIA_LIBRARY_ASSET = 'sanity.function.media-library.asset';
|
|
4
|
+
export const SANITY_FUNCTION_SCHEDULE = 'sanity.function.cron';
|
|
5
|
+
export const SANITY_PROJECT_CORS = 'sanity.project.cors';
|
|
6
|
+
export const SANITY_PROJECT_DATASET = 'sanity.project.dataset';
|
|
7
|
+
export const SANITY_PROJECT_WEBHOOK = 'sanity.project.webhook';
|