@sanity/runtime-cli 14.11.0 → 14.12.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 +44 -41
- package/dist/actions/blueprints/blueprint.d.ts +32 -16
- package/dist/actions/blueprints/blueprint.js +92 -138
- package/dist/actions/blueprints/resolve.d.ts +46 -0
- package/dist/actions/blueprints/resolve.js +42 -0
- package/dist/actions/blueprints/resources.js +35 -12
- package/dist/baseCommands.d.ts +52 -22
- package/dist/baseCommands.js +216 -52
- package/dist/commands/blueprints/info.d.ts +4 -2
- package/dist/commands/blueprints/info.js +6 -3
- package/dist/commands/functions/add.js +1 -1
- package/dist/constants.d.ts +15 -2
- package/dist/constants.js +14 -10
- package/dist/cores/functions/add.js +11 -7
- package/dist/server/static/components/rule-panel.js +8 -10
- package/oclif.manifest.json +508 -66
- package/package.json +2 -2
package/dist/constants.d.ts
CHANGED
|
@@ -17,8 +17,20 @@ export declare const EVENT_MEDIA_LIBRARY_ASSET_CREATE = "media-library-asset-cre
|
|
|
17
17
|
export declare const EVENT_MEDIA_LIBRARY_ASSET_UPDATE = "media-library-asset-update";
|
|
18
18
|
export declare const EVENT_MEDIA_LIBRARY_ASSET_DELETE = "media-library-asset-delete";
|
|
19
19
|
export declare const EVENT_SCHEDULED = "scheduled-function";
|
|
20
|
-
export declare const
|
|
21
|
-
export
|
|
20
|
+
export declare const EVENT_SYNC_TAG_INVALIDATE = "sync-tag-invalidate";
|
|
21
|
+
export declare const MAP_EVENT_TO_FUNCTION_TYPE: {
|
|
22
|
+
readonly "document-publish": "sanity.function.document";
|
|
23
|
+
readonly "document-create": "sanity.function.document";
|
|
24
|
+
readonly "document-delete": "sanity.function.document";
|
|
25
|
+
readonly "document-update": "sanity.function.document";
|
|
26
|
+
readonly "media-library-asset-create": "sanity.function.media-library.asset";
|
|
27
|
+
readonly "media-library-asset-delete": "sanity.function.media-library.asset";
|
|
28
|
+
readonly "media-library-asset-update": "sanity.function.media-library.asset";
|
|
29
|
+
readonly "scheduled-function": "sanity.function.cron";
|
|
30
|
+
readonly "sync-tag-invalidate": "sanity.function.sync-tag-invalidate";
|
|
31
|
+
};
|
|
32
|
+
export declare const FUNCTION_TYPES: (keyof typeof MAP_EVENT_TO_FUNCTION_TYPE)[];
|
|
33
|
+
export type ARRAY_OF_FUNCTION_TYPES = typeof FUNCTION_TYPES;
|
|
22
34
|
export declare const PROJECT_SCOPED_FUNCTION_TYPES: ReadonlySet<string>;
|
|
23
35
|
export declare const ORGANIZATION_SCOPED_FUNCTION_TYPES: ReadonlySet<string>;
|
|
24
36
|
export declare const MAX_ASSET_SIZE = 209715200;
|
|
@@ -30,3 +42,4 @@ export declare const LABEL_MEDIA_LIBRARY_ASSET_CREATE = "Media Library Asset Cre
|
|
|
30
42
|
export declare const LABEL_MEDIA_LIBRARY_ASSET_UPDATE = "Media Library Asset Update";
|
|
31
43
|
export declare const LABEL_MEDIA_LIBRARY_ASSET_DELETE = "Media Library Asset Delete";
|
|
32
44
|
export declare const LABEL_SCHEDULED = "Scheduled";
|
|
45
|
+
export declare const LABEL_SYNC_TAG_INVALIDATE = "Sync Tag Invalidate";
|
package/dist/constants.js
CHANGED
|
@@ -17,16 +17,19 @@ export const EVENT_MEDIA_LIBRARY_ASSET_CREATE = 'media-library-asset-create';
|
|
|
17
17
|
export const EVENT_MEDIA_LIBRARY_ASSET_UPDATE = 'media-library-asset-update';
|
|
18
18
|
export const EVENT_MEDIA_LIBRARY_ASSET_DELETE = 'media-library-asset-delete';
|
|
19
19
|
export const EVENT_SCHEDULED = 'scheduled-function';
|
|
20
|
-
export const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
EVENT_DOCUMENT_DELETE,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
EVENT_MEDIA_LIBRARY_ASSET_DELETE,
|
|
28
|
-
|
|
29
|
-
]
|
|
20
|
+
export const EVENT_SYNC_TAG_INVALIDATE = 'sync-tag-invalidate';
|
|
21
|
+
export const MAP_EVENT_TO_FUNCTION_TYPE = {
|
|
22
|
+
[EVENT_DOCUMENT_PUBLISH]: SANITY_FUNCTION_DOCUMENT,
|
|
23
|
+
[EVENT_DOCUMENT_CREATE]: SANITY_FUNCTION_DOCUMENT,
|
|
24
|
+
[EVENT_DOCUMENT_DELETE]: SANITY_FUNCTION_DOCUMENT,
|
|
25
|
+
[EVENT_DOCUMENT_UPDATE]: SANITY_FUNCTION_DOCUMENT,
|
|
26
|
+
[EVENT_MEDIA_LIBRARY_ASSET_CREATE]: SANITY_FUNCTION_MEDIA_LIBRARY_ASSET,
|
|
27
|
+
[EVENT_MEDIA_LIBRARY_ASSET_DELETE]: SANITY_FUNCTION_MEDIA_LIBRARY_ASSET,
|
|
28
|
+
[EVENT_MEDIA_LIBRARY_ASSET_UPDATE]: SANITY_FUNCTION_MEDIA_LIBRARY_ASSET,
|
|
29
|
+
[EVENT_SCHEDULED]: SANITY_FUNCTION_SCHEDULED,
|
|
30
|
+
[EVENT_SYNC_TAG_INVALIDATE]: SANITY_FUNCTION_SYNC_TAG_INVALIDATE,
|
|
31
|
+
};
|
|
32
|
+
export const FUNCTION_TYPES = Object.keys(MAP_EVENT_TO_FUNCTION_TYPE);
|
|
30
33
|
export const PROJECT_SCOPED_FUNCTION_TYPES = new Set([
|
|
31
34
|
SANITY_FUNCTION_DOCUMENT,
|
|
32
35
|
SANITY_FUNCTION_MEDIA_LIBRARY_ASSET,
|
|
@@ -44,3 +47,4 @@ export const LABEL_MEDIA_LIBRARY_ASSET_CREATE = 'Media Library Asset Create';
|
|
|
44
47
|
export const LABEL_MEDIA_LIBRARY_ASSET_UPDATE = 'Media Library Asset Update';
|
|
45
48
|
export const LABEL_MEDIA_LIBRARY_ASSET_DELETE = 'Media Library Asset Delete';
|
|
46
49
|
export const LABEL_SCHEDULED = 'Scheduled';
|
|
50
|
+
export const LABEL_SYNC_TAG_INVALIDATE = 'Sync Tag Invalidate';
|
|
@@ -5,26 +5,29 @@ import { checkbox, confirm, input, select } from '@inquirer/prompts';
|
|
|
5
5
|
import { highlight } from 'cardinal';
|
|
6
6
|
import { createFunctionResource } from '../../actions/blueprints/resources.js';
|
|
7
7
|
import { verifyExampleExists, writeExample } from '../../actions/sanity/examples.js';
|
|
8
|
-
import { EVENT_DOCUMENT_CREATE, EVENT_DOCUMENT_DELETE, EVENT_DOCUMENT_UPDATE, EVENT_MEDIA_LIBRARY_ASSET_CREATE, EVENT_MEDIA_LIBRARY_ASSET_DELETE, EVENT_MEDIA_LIBRARY_ASSET_UPDATE,
|
|
8
|
+
import { EVENT_DOCUMENT_CREATE, EVENT_DOCUMENT_DELETE, EVENT_DOCUMENT_UPDATE, EVENT_MEDIA_LIBRARY_ASSET_CREATE, EVENT_MEDIA_LIBRARY_ASSET_DELETE, EVENT_MEDIA_LIBRARY_ASSET_UPDATE, EVENT_SYNC_TAG_INVALIDATE,
|
|
9
9
|
// EVENT_SCHEDULED,
|
|
10
|
-
FUNCTION_TYPES, LABEL_DOCUMENT_CREATE, LABEL_DOCUMENT_DELETE, LABEL_DOCUMENT_UPDATE, LABEL_MEDIA_LIBRARY_ASSET_CREATE, LABEL_MEDIA_LIBRARY_ASSET_DELETE, LABEL_MEDIA_LIBRARY_ASSET_UPDATE, LABEL_SCHEDULED, SANITY_FUNCTION_MEDIA_LIBRARY_ASSET, SANITY_FUNCTION_SCHEDULED, } from '../../constants.js';
|
|
10
|
+
FUNCTION_TYPES, LABEL_DOCUMENT_CREATE, LABEL_DOCUMENT_DELETE, LABEL_DOCUMENT_UPDATE, LABEL_MEDIA_LIBRARY_ASSET_CREATE, LABEL_MEDIA_LIBRARY_ASSET_DELETE, LABEL_MEDIA_LIBRARY_ASSET_UPDATE, LABEL_SCHEDULED, LABEL_SYNC_TAG_INVALIDATE, MAP_EVENT_TO_FUNCTION_TYPE, SANITY_FUNCTION_DOCUMENT, SANITY_FUNCTION_MEDIA_LIBRARY_ASSET, SANITY_FUNCTION_SCHEDULED, SANITY_FUNCTION_SYNC_TAG_INVALIDATE, } from '../../constants.js';
|
|
11
11
|
import { check, indent, warn } from '../../utils/display/presenters.js';
|
|
12
12
|
import { styleText } from '../../utils/style-text.js';
|
|
13
13
|
import { validateFunctionName } from '../../utils/validate/resource.js';
|
|
14
14
|
export const generateFunctionBlueprintResourceTemplate = (fnName, eventNames) => {
|
|
15
|
-
const functionType =
|
|
15
|
+
const functionType = MAP_EVENT_TO_FUNCTION_TYPE[eventNames[0]];
|
|
16
16
|
let definer = '';
|
|
17
17
|
const eventOns = eventNames.map((e) => `'${e.substring(e.lastIndexOf('-') + 1)}'`);
|
|
18
18
|
switch (functionType) {
|
|
19
|
-
case
|
|
19
|
+
case SANITY_FUNCTION_DOCUMENT:
|
|
20
20
|
definer = `defineDocumentFunction({name: '${fnName}', event: {on: [${eventOns.join(', ')}]}}), // ← add this line`;
|
|
21
21
|
break;
|
|
22
|
-
case
|
|
22
|
+
case SANITY_FUNCTION_MEDIA_LIBRARY_ASSET:
|
|
23
23
|
definer = `defineMediaLibraryAssetFunction({name: '${fnName}', event: {on: [${eventOns.join(', ')}], resource: {type: 'media-library', id: 'my-media-library-id'}}}), // ← add this line`;
|
|
24
24
|
break;
|
|
25
|
-
case
|
|
25
|
+
case SANITY_FUNCTION_SCHEDULED:
|
|
26
26
|
definer = `defineScheduledFunction({name: '${fnName}', event: {expression: '0 0 * * *'}}), // ← add this line`;
|
|
27
27
|
break;
|
|
28
|
+
case SANITY_FUNCTION_SYNC_TAG_INVALIDATE:
|
|
29
|
+
definer = `defineSyncTagInvalidateFunction({name: '${fnName}'}), // ← add this line`;
|
|
30
|
+
break;
|
|
28
31
|
}
|
|
29
32
|
return `
|
|
30
33
|
export default defineBlueprint({
|
|
@@ -154,7 +157,7 @@ export async function functionAddCore(options) {
|
|
|
154
157
|
}
|
|
155
158
|
const eventSources = new Set(fnTypes.map((t) => t.substring(0, t.lastIndexOf('-'))));
|
|
156
159
|
if (eventSources.size > 1) {
|
|
157
|
-
throw new Error('Invalid function type. Cannot mix document-*, media-library-asset-*, and/or scheduled-* types.');
|
|
160
|
+
throw new Error('Invalid function type. Cannot mix document-*, media-library-asset-*, sync-tag-* and/or scheduled-* types.');
|
|
158
161
|
}
|
|
159
162
|
let addHelpers;
|
|
160
163
|
let installCommand;
|
|
@@ -238,6 +241,7 @@ async function promptForFunctionType() {
|
|
|
238
241
|
{ name: LABEL_MEDIA_LIBRARY_ASSET_CREATE, value: EVENT_MEDIA_LIBRARY_ASSET_CREATE },
|
|
239
242
|
{ name: LABEL_MEDIA_LIBRARY_ASSET_UPDATE, value: EVENT_MEDIA_LIBRARY_ASSET_UPDATE },
|
|
240
243
|
{ name: LABEL_MEDIA_LIBRARY_ASSET_DELETE, value: EVENT_MEDIA_LIBRARY_ASSET_DELETE },
|
|
244
|
+
{ name: LABEL_SYNC_TAG_INVALIDATE, value: EVENT_SYNC_TAG_INVALIDATE },
|
|
241
245
|
// {name: LABEL_SCHEDULED, value: EVENT_SCHEDULED},
|
|
242
246
|
],
|
|
243
247
|
validate(choices) {
|
|
@@ -43,16 +43,14 @@ class RulePanel extends ApiBaseElement {
|
|
|
43
43
|
break
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
rule.dispatch(transaction)
|
|
55
|
-
}
|
|
46
|
+
const transaction = rule.state.update({
|
|
47
|
+
changes: {
|
|
48
|
+
from: 0,
|
|
49
|
+
insert: func.event ? JSON.stringify(func.event, null, 2) : '',
|
|
50
|
+
to: rule.state.doc.length,
|
|
51
|
+
},
|
|
52
|
+
})
|
|
53
|
+
rule.dispatch(transaction)
|
|
56
54
|
}
|
|
57
55
|
|
|
58
56
|
async connectedCallback() {
|