zapier-platform-schema 17.7.0 → 17.7.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,5 +1,5 @@
1
1
  {
2
- "version": "17.7.0",
2
+ "version": "17.7.2",
3
3
  "schemas": {
4
4
  "AppSchema": {
5
5
  "id": "/AppSchema",
@@ -782,6 +782,28 @@
782
782
  },
783
783
  "additionalProperties": false
784
784
  },
785
+ "InputFieldGroupSchema": {
786
+ "id": "/InputFieldGroupSchema",
787
+ "description": "Object for visual grouping of input fields.",
788
+ "type": "object",
789
+ "required": ["key"],
790
+ "properties": {
791
+ "key": {
792
+ "description": "The unique identifier for this group.",
793
+ "$ref": "/KeySchema"
794
+ },
795
+ "label": {
796
+ "description": "The human-readable name for the group.",
797
+ "type": "string",
798
+ "minLength": 1
799
+ },
800
+ "emphasize": {
801
+ "description": "Whether this group should be visually emphasized in the UI.",
802
+ "type": "boolean"
803
+ }
804
+ },
805
+ "additionalProperties": false
806
+ },
785
807
  "PlainOutputFieldSchema": {
786
808
  "description": "Field schema specialized for output fields. In addition to the requirements below, the following keys are mutually exclusive:\n\n* `children` & `list`\n* `children` & `dict`\n* `children` & `type`\n* `children` & `placeholder`\n* `children` & `helpText`\n* `children` & `default`\n* `dict` & `list`\n* `dynamic` & `dict`\n* `dynamic` & `choices`",
787
809
  "id": "/PlainOutputFieldSchema",
@@ -893,23 +915,7 @@
893
915
  "description": "An array or collection of input field groups.",
894
916
  "type": "array",
895
917
  "items": {
896
- "type": "object",
897
- "required": ["key"],
898
- "properties": {
899
- "key": {
900
- "description": "The unique identifier for this group.",
901
- "$ref": "/KeySchema"
902
- },
903
- "label": {
904
- "description": "The human-readable name for the group.",
905
- "type": "string",
906
- "minLength": 1
907
- },
908
- "emphasize": {
909
- "description": "Whether this group should be visually emphasized in the UI.",
910
- "type": "boolean"
911
- }
912
- }
918
+ "$ref": "/InputFieldGroupSchema"
913
919
  },
914
920
  "additionalProperties": false
915
921
  },
@@ -1103,6 +1109,10 @@
1103
1109
  "throttle": {
1104
1110
  "description": "Zapier uses this configuration to apply throttling when the limit for the window is exceeded.",
1105
1111
  "$ref": "/ThrottleObjectSchema"
1112
+ },
1113
+ "skipCleanArrayInputData": {
1114
+ "description": "(Experimental) Should empty strings, `null`, `undefined`, and empty Arrays or objects be removed from `inputData`?",
1115
+ "type": "boolean"
1106
1116
  }
1107
1117
  },
1108
1118
  "additionalProperties": false
@@ -1209,6 +1219,10 @@
1209
1219
  "value": "**yes** (with exceptions, see description)"
1210
1220
  }
1211
1221
  }
1222
+ },
1223
+ "skipCleanArrayInputData": {
1224
+ "description": "(Experimental) Should empty strings, `null`, `undefined`, and empty Arrays or objects be removed from `inputData`?",
1225
+ "type": "boolean"
1212
1226
  }
1213
1227
  },
1214
1228
  "additionalProperties": false
@@ -1270,6 +1284,10 @@
1270
1284
  "throttle": {
1271
1285
  "description": "Zapier uses this configuration to apply throttling when the limit for the window is exceeded.",
1272
1286
  "$ref": "/ThrottleObjectSchema"
1287
+ },
1288
+ "skipCleanArrayInputData": {
1289
+ "description": "(Experimental) Should empty strings, `null`, `undefined`, and empty Arrays or objects be removed from `inputData`?",
1290
+ "type": "boolean"
1273
1291
  }
1274
1292
  },
1275
1293
  "additionalProperties": false
@@ -1340,6 +1358,10 @@
1340
1358
  "throttle": {
1341
1359
  "description": "Zapier uses this configuration to apply throttling when the limit for the window is exceeded.",
1342
1360
  "$ref": "/ThrottleObjectSchema"
1361
+ },
1362
+ "skipCleanArrayInputData": {
1363
+ "description": "(Experimental) Should empty strings, `null`, `undefined`, and empty Arrays or objects be removed from `inputData`?",
1364
+ "type": "boolean"
1343
1365
  }
1344
1366
  },
1345
1367
  "additionalProperties": false
@@ -1579,6 +1601,10 @@
1579
1601
  }
1580
1602
  }
1581
1603
  },
1604
+ "skipCleanArrayInputData": {
1605
+ "description": "(Experimental) Should empty strings, `null`, `undefined`, and empty Arrays or objects be removed from `inputData`?",
1606
+ "type": "boolean"
1607
+ },
1582
1608
  "maxPollingDelay": {
1583
1609
  "description": "The maximum amount of time to wait between polling requests in seconds. Minimum value is 20s and will default to 20 if not set, or set to a lower value.",
1584
1610
  "type": "integer"
@@ -1696,6 +1722,10 @@
1696
1722
  "throttle": {
1697
1723
  "description": "Zapier uses this configuration to apply throttling when the limit for the window is exceeded.",
1698
1724
  "$ref": "/ThrottleObjectSchema"
1725
+ },
1726
+ "skipCleanArrayInputData": {
1727
+ "description": "(Experimental) Should empty strings, `null`, `undefined`, and empty Arrays or objects be removed from `inputData`?",
1728
+ "type": "boolean"
1699
1729
  }
1700
1730
  },
1701
1731
  "additionalProperties": false
@@ -1817,6 +1847,10 @@
1817
1847
  "description": "Zapier uses this configuration to apply throttling when the limit for the window is exceeded.",
1818
1848
  "$ref": "/ThrottleObjectSchema"
1819
1849
  },
1850
+ "skipCleanArrayInputData": {
1851
+ "description": "(Experimental) Should empty strings, `null`, `undefined`, and empty Arrays or objects be removed from `inputData`?",
1852
+ "type": "boolean"
1853
+ },
1820
1854
  "buffer": {
1821
1855
  "description": "Currently an **internal-only** feature. Zapier uses this configuration for creating objects in bulk with `performBuffer`.",
1822
1856
  "$ref": "/BufferConfigSchema",
@@ -2051,9 +2085,11 @@
2051
2085
  },
2052
2086
  "VersionSchema": {
2053
2087
  "id": "/VersionSchema",
2054
- "description": "Represents a simplified semver string, from `0.0.0` to `999.999.999`.",
2088
+ "description": "Represents a simplified semver string, from `0.0.0` to `999.999.999` with optional simplified label. They need to be case-insensitive unique.",
2055
2089
  "type": "string",
2056
- "pattern": "^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$"
2090
+ "pattern": "^(?:0|[1-9]\\d{0,2})\\.(?:0|[1-9]\\d{0,2})\\.(?:0|[1-9]\\d{0,2})(?:-(?=.{1,12}$)[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)?$",
2091
+ "minLength": 5,
2092
+ "maxLength": 24
2057
2093
  },
2058
2094
  "MiddlewaresSchema": {
2059
2095
  "id": "/MiddlewaresSchema",
@@ -36,6 +36,8 @@ BasicActionOperationSchema.properties = {
36
36
  sample: BasicActionOperationSchema.properties.sample,
37
37
  lock: BasicActionOperationSchema.properties.lock,
38
38
  throttle: BasicActionOperationSchema.properties.throttle,
39
+ skipCleanArrayInputData:
40
+ BasicActionOperationSchema.properties.skipCleanArrayInputData,
39
41
  };
40
42
 
41
43
  BasicActionOperationSchema.examples = [
@@ -84,6 +84,8 @@ BasicHookOperationSchema.properties = {
84
84
  inputFieldGroups: BasicHookOperationSchema.properties.inputFieldGroups,
85
85
  outputFields: BasicHookOperationSchema.properties.outputFields,
86
86
  sample: BasicHookOperationSchema.properties.sample,
87
+ skipCleanArrayInputData:
88
+ BasicHookOperationSchema.properties.skipCleanArrayInputData,
87
89
  };
88
90
 
89
91
  BasicHookOperationSchema.examples = [
@@ -62,6 +62,8 @@ BasicHookToPollOperationSchema.properties = {
62
62
  inputFieldGroups: BasicHookToPollOperationSchema.properties.inputFieldGroups,
63
63
  outputFields: BasicHookToPollOperationSchema.properties.outputFields,
64
64
  sample: BasicHookToPollOperationSchema.properties.sample,
65
+ skipCleanArrayInputData:
66
+ BasicHookToPollOperationSchema.properties.skipCleanArrayInputData,
65
67
  maxPollingDelay: {
66
68
  description:
67
69
  'The maximum amount of time to wait between polling requests in seconds. Minimum value is 20s and will default to 20 if not set, or set to a lower value.',
@@ -69,6 +69,11 @@ module.exports = makeSchema(
69
69
  'Zapier uses this configuration to apply throttling when the limit for the window is exceeded.',
70
70
  $ref: ThrottleObjectSchema.id,
71
71
  },
72
+ skipCleanArrayInputData: {
73
+ description:
74
+ '(Experimental) Should empty strings, `null`, `undefined`, and empty Arrays or objects be removed from `inputData`?',
75
+ type: 'boolean',
76
+ },
72
77
  },
73
78
  examples: [
74
79
  {
@@ -35,6 +35,8 @@ BasicPollingOperationSchema.properties = {
35
35
  outputFields: BasicPollingOperationSchema.properties.outputFields,
36
36
  sample: BasicPollingOperationSchema.properties.sample,
37
37
  throttle: BasicPollingOperationSchema.properties.throttle,
38
+ skipCleanArrayInputData:
39
+ BasicPollingOperationSchema.properties.skipCleanArrayInputData,
38
40
  };
39
41
 
40
42
  module.exports = makeSchema(
@@ -40,6 +40,8 @@ BasicSearchOperationSchema.properties = {
40
40
  sample: BasicSearchOperationSchema.properties.sample,
41
41
  lock: BasicSearchOperationSchema.properties.lock,
42
42
  throttle: BasicSearchOperationSchema.properties.throttle,
43
+ skipCleanArrayInputData:
44
+ BasicSearchOperationSchema.properties.skipCleanArrayInputData,
43
45
  };
44
46
 
45
47
  BasicSearchOperationSchema.examples = [
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ const makeSchema = require('../utils/makeSchema');
4
+
5
+ const KeySchema = require('./KeySchema');
6
+
7
+ module.exports = makeSchema(
8
+ {
9
+ id: '/InputFieldGroupSchema',
10
+ description: 'Object for visual grouping of input fields.',
11
+ type: 'object',
12
+ required: ['key'],
13
+ properties: {
14
+ key: {
15
+ description: 'The unique identifier for this group.',
16
+ $ref: KeySchema.id,
17
+ },
18
+ label: {
19
+ description: 'The human-readable name for the group.',
20
+ type: 'string',
21
+ minLength: 1,
22
+ },
23
+ emphasize: {
24
+ description:
25
+ 'Whether this group should be visually emphasized in the UI.',
26
+ type: 'boolean',
27
+ },
28
+ },
29
+ examples: [
30
+ { key: 'testGroup' },
31
+ { key: 'testGroup', label: 'Test Group', emphasize: true },
32
+ ],
33
+ antiExamples: [
34
+ { example: { label: 'test label' }, reason: 'key is required' },
35
+ ],
36
+ additionalProperties: false,
37
+ },
38
+ [KeySchema],
39
+ );
@@ -2,7 +2,7 @@
2
2
 
3
3
  const makeSchema = require('../utils/makeSchema');
4
4
 
5
- const KeySchema = require('./KeySchema');
5
+ const InputFieldGroupSchema = require('./InputFieldGroupSchema');
6
6
 
7
7
  module.exports = makeSchema(
8
8
  {
@@ -10,24 +10,7 @@ module.exports = makeSchema(
10
10
  description: 'An array or collection of input field groups.',
11
11
  type: 'array',
12
12
  items: {
13
- type: 'object',
14
- required: ['key'],
15
- properties: {
16
- key: {
17
- description: 'The unique identifier for this group.',
18
- $ref: KeySchema.id,
19
- },
20
- label: {
21
- description: 'The human-readable name for the group.',
22
- type: 'string',
23
- minLength: 1,
24
- },
25
- emphasize: {
26
- description:
27
- 'Whether this group should be visually emphasized in the UI.',
28
- type: 'boolean',
29
- },
30
- },
13
+ $ref: InputFieldGroupSchema.id,
31
14
  },
32
15
  examples: [[{ key: 'abc' }]],
33
16
  antiExamples: [
@@ -36,5 +19,5 @@ module.exports = makeSchema(
36
19
  ],
37
20
  additionalProperties: false,
38
21
  },
39
- [KeySchema],
22
+ [InputFieldGroupSchema],
40
23
  );
@@ -5,14 +5,25 @@ const makeSchema = require('../utils/makeSchema');
5
5
  module.exports = makeSchema({
6
6
  id: '/VersionSchema',
7
7
  description:
8
- 'Represents a simplified semver string, from `0.0.0` to `999.999.999`.',
8
+ 'Represents a simplified semver string, from `0.0.0` to `999.999.999` with optional simplified label. They need to be case-insensitive unique.',
9
9
  type: 'string',
10
- pattern: '^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$',
11
- examples: ['1.0.0', '2.11.3', '999.999.999'],
10
+ pattern:
11
+ // this is mirrored in ZapierBaseCommand.js and developer_cli/constants.py
12
+ '^(?:0|[1-9]\\d{0,2})\\.(?:0|[1-9]\\d{0,2})\\.(?:0|[1-9]\\d{0,2})(?:-(?=.{1,12}$)[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)?$',
13
+ minLength: 5,
14
+ maxLength: 24,
15
+ examples: ['1.0.0', '2.11.3', '999.999.999', '1.2.0-beta', '0.0.0-ISSUE-123'],
12
16
  antiExamples: [
13
- { example: '1.0.0.0', reason: 'Must have only 2 periods' },
17
+ { example: '1.0.0.0', reason: 'Must have 2 periods' },
14
18
  { example: '1000.0.0', reason: 'Each number can be a maximum of 3 digits' },
15
- { example: 'v1.0.0', reason: 'No letters allowed' },
16
- { example: '1.0.0-beta', reson: 'No letters allowed' },
19
+ { example: 'v1.0.0', reason: 'No letter prefix allowed' },
20
+ { example: '1.0.0-rc.1', reason: 'No periods allowed in label' },
21
+ { example: '1.0.0--', reason: 'No repeated dashes allowed' },
22
+ {
23
+ example: '1.0.0-foo--bar',
24
+ reason: 'No repeated dashes allowed in label',
25
+ },
26
+ { example: '1.0.0-', reason: 'No empty label allowed' },
27
+ { example: '1.0.0-foo-', reason: 'No trailing dash allowed in label' },
17
28
  ],
18
29
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zapier-platform-schema",
3
- "version": "17.7.0",
3
+ "version": "17.7.2",
4
4
  "description": "Schema definition for CLI apps in the Zapier Developer Platform.",
5
5
  "repository": "zapier/zapier-platform",
6
6
  "homepage": "https://platform.zapier.com/",