@takeshape/schema 9.36.3 → 9.37.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.
Files changed (84) hide show
  1. package/dist/builtin-schema.js +20 -20
  2. package/dist/migration/index.d.ts +1 -0
  3. package/dist/migration/index.d.ts.map +1 -1
  4. package/dist/migration/index.js +4 -1
  5. package/dist/migration/to/v3.31.0.d.ts +5 -0
  6. package/dist/migration/to/v3.31.0.d.ts.map +1 -0
  7. package/dist/migration/to/v3.31.0.js +53 -0
  8. package/dist/project-schema/index.d.ts +4 -1
  9. package/dist/project-schema/index.d.ts.map +1 -1
  10. package/dist/project-schema/index.js +20 -3
  11. package/dist/project-schema/latest.d.ts +43 -18
  12. package/dist/project-schema/latest.d.ts.map +1 -1
  13. package/dist/project-schema/migrate.d.ts.map +1 -1
  14. package/dist/project-schema/migrate.js +4 -0
  15. package/dist/project-schema/v3.31.0.d.ts +1449 -0
  16. package/dist/project-schema/v3.31.0.d.ts.map +1 -0
  17. package/dist/project-schema/v3.31.0.js +5 -0
  18. package/dist/relationships.js +2 -2
  19. package/dist/schema-util.d.ts +2 -2
  20. package/dist/schema-util.d.ts.map +1 -1
  21. package/dist/schema-util.js +12 -12
  22. package/dist/schemas/index.d.ts +2 -2
  23. package/dist/schemas/index.d.ts.map +1 -1
  24. package/dist/schemas/index.js +6 -4
  25. package/dist/schemas/index.ts +4 -2
  26. package/dist/schemas/project-schema/latest.json +89 -32
  27. package/dist/schemas/project-schema/v3.31.0.json +3089 -0
  28. package/dist/schemas/project-schema.json +7 -1
  29. package/dist/types/types.d.ts +4 -4
  30. package/dist/types/types.d.ts.map +1 -1
  31. package/dist/types/utils.d.ts +4 -3
  32. package/dist/types/utils.d.ts.map +1 -1
  33. package/dist/types/utils.js +9 -3
  34. package/dist/validate.d.ts.map +1 -1
  35. package/dist/validate.js +13 -3
  36. package/es/builtin-schema.js +20 -20
  37. package/es/migration/index.js +3 -1
  38. package/es/migration/to/v3.31.0.js +38 -0
  39. package/es/project-schema/index.js +3 -1
  40. package/es/project-schema/migrate.js +5 -1
  41. package/es/project-schema/v3.31.0.js +1 -0
  42. package/es/relationships.js +2 -2
  43. package/es/schema-util.js +12 -12
  44. package/es/schemas/index.js +4 -3
  45. package/es/schemas/index.ts +4 -2
  46. package/es/schemas/project-schema/latest.json +89 -32
  47. package/es/schemas/project-schema/v3.31.0.json +3089 -0
  48. package/es/schemas/project-schema.json +7 -1
  49. package/es/types/utils.js +7 -3
  50. package/es/validate.js +13 -3
  51. package/examples/dependencies/stripe-starter-resolved.json +210 -210
  52. package/examples/latest/betzino.json +4383 -4383
  53. package/examples/latest/blog-schema.json +49 -49
  54. package/examples/latest/brewery-schema.json +39 -39
  55. package/examples/latest/complex-project-schema.json +412 -412
  56. package/examples/latest/complex-schema.json +1166 -1166
  57. package/examples/latest/fabric-ecommerce.json +17 -17
  58. package/examples/latest/frank-and-fred-schema.json +2242 -2242
  59. package/examples/latest/klirr-schema.json +3254 -3254
  60. package/examples/latest/massive-schema.json +785 -785
  61. package/examples/latest/mill-components-schema.json +215 -215
  62. package/examples/latest/one-earth.json +1394 -1394
  63. package/examples/latest/pet-oneof-array.json +33 -33
  64. package/examples/latest/post-schema.json +32 -32
  65. package/examples/latest/pruned-shopify-product-schema.json +1 -1
  66. package/examples/latest/real-world-schema.json +94 -94
  67. package/examples/latest/recursive-repeater-schema.json +17 -17
  68. package/examples/latest/recursive-schema.json +17 -17
  69. package/examples/latest/rick-and-morty-ast.json +180 -180
  70. package/examples/latest/rick-and-morty-graphql.json +133 -133
  71. package/examples/latest/rick-and-morty-rest.json +1 -1
  72. package/examples/latest/schema-with-repeater-draftjs.json +48 -48
  73. package/examples/latest/shape-books-v3_2_0.json +137 -137
  74. package/examples/latest/shape-books.json +137 -137
  75. package/examples/latest/shopify-lookbook.json +41 -41
  76. package/examples/latest/shopify-product-2022-07.json +124 -124
  77. package/examples/latest/shopify-product-2023-04.json +125 -125
  78. package/examples/latest/shopify-store-with-widget.json +94 -94
  79. package/examples/latest/stripe-product-runtime-schema.json +127 -130
  80. package/examples/latest/stripe-starter-resolved.json +300 -509
  81. package/examples/latest/user-schema-no-required.json +22 -22
  82. package/examples/latest/user-schema-with-defaults.json +23 -23
  83. package/package.json +5 -5
  84. package/examples/latest/shopify-namespace-schema.json +0 -364
@@ -27,8 +27,8 @@
27
27
  "getUser": {
28
28
  "args": "TSGetArgs<User>",
29
29
  "resolver": {
30
- "name": "takeshape:get",
31
- "service": "takeshape:local",
30
+ "name": "shapedb:get",
31
+ "service": "shapedb",
32
32
  "shapeName": "User"
33
33
  },
34
34
  "shape": "User",
@@ -37,8 +37,8 @@
37
37
  "getUserList": {
38
38
  "args": "TSListArgs<User>",
39
39
  "resolver": {
40
- "name": "takeshape:list",
41
- "service": "takeshape:local",
40
+ "name": "shapedb:list",
41
+ "service": "shapedb",
42
42
  "shapeName": "User"
43
43
  },
44
44
  "shape": "PaginatedList<User>",
@@ -49,8 +49,8 @@
49
49
  "updateUser": {
50
50
  "args": "UpdateArgs<User>",
51
51
  "resolver": {
52
- "name": "takeshape:update",
53
- "service": "takeshape:local",
52
+ "name": "shapedb:update",
53
+ "service": "shapedb",
54
54
  "shapeName": "User"
55
55
  },
56
56
  "shape": "UpdateResult<User>",
@@ -59,8 +59,8 @@
59
59
  "createUser": {
60
60
  "args": "CreateArgs<User>",
61
61
  "resolver": {
62
- "name": "takeshape:create",
63
- "service": "takeshape:local",
62
+ "name": "shapedb:create",
63
+ "service": "shapedb",
64
64
  "shapeName": "User"
65
65
  },
66
66
  "shape": "CreateResult<User>",
@@ -69,8 +69,8 @@
69
69
  "duplicateUser": {
70
70
  "args": "DuplicateArgs<User>",
71
71
  "resolver": {
72
- "name": "takeshape:duplicate",
73
- "service": "takeshape:local",
72
+ "name": "shapedb:duplicate",
73
+ "service": "shapedb",
74
74
  "shapeName": "User"
75
75
  },
76
76
  "shape": "DuplicateResult<User>",
@@ -79,8 +79,8 @@
79
79
  "deleteUser": {
80
80
  "args": "DeleteArgs<User>",
81
81
  "resolver": {
82
- "name": "takeshape:delete",
83
- "service": "takeshape:local",
82
+ "name": "shapedb:delete",
83
+ "service": "shapedb",
84
84
  "shapeName": "User"
85
85
  },
86
86
  "shape": "DeleteResult<User>",
@@ -100,11 +100,11 @@
100
100
  "properties": {
101
101
  "firstName": {
102
102
  "type": "string",
103
- "@mapping": "takeshape:local:User.firstNameId"
103
+ "@mapping": "shapedb:User.firstNameId"
104
104
  },
105
105
  "lastName": {
106
106
  "type": "string",
107
- "@mapping": "takeshape:local:User.lastNameId"
107
+ "@mapping": "shapedb:User.lastNameId"
108
108
  },
109
109
  "username": {
110
110
  "type": "string",
@@ -112,33 +112,33 @@
112
112
  "maxLength": 16,
113
113
  "minLength": 3,
114
114
  "pattern": "^[a-z0-9_-]+$",
115
- "@mapping": "takeshape:local:User.usernameId"
115
+ "@mapping": "shapedb:User.usernameId"
116
116
  },
117
117
  "email": {
118
118
  "type": "string",
119
119
  "format": "email",
120
- "@mapping": "takeshape:local:User.emailId"
120
+ "@mapping": "shapedb:User.emailId"
121
121
  },
122
122
  "password": {
123
123
  "type": "string",
124
124
  "@sensitive": true,
125
125
  "maxLength": 16,
126
126
  "minLength": 3,
127
- "@mapping": "takeshape:local:User.passwordId"
127
+ "@mapping": "shapedb:User.passwordId"
128
128
  },
129
129
  "roles": {
130
130
  "type": "array",
131
131
  "items": {
132
132
  "type": "string"
133
133
  },
134
- "@mapping": "takeshape:local:User.rolesId"
134
+ "@mapping": "shapedb:User.rolesId"
135
135
  },
136
136
  "locations": {
137
137
  "type": "array",
138
138
  "items": {
139
139
  "$ref": "#/shapes/UserLocations/schema"
140
140
  },
141
- "@mapping": "takeshape:local:User.locationsId"
141
+ "@mapping": "shapedb:User.locationsId"
142
142
  }
143
143
  },
144
144
  "required": []
@@ -154,17 +154,17 @@
154
154
  "lat": {
155
155
  "type": "number",
156
156
  "default": 40.694598,
157
- "@mapping": "takeshape:local:UserLocations.latId"
157
+ "@mapping": "shapedb:UserLocations.latId"
158
158
  },
159
159
  "lon": {
160
160
  "type": "number",
161
161
  "default": 73.983119,
162
- "@mapping": "takeshape:local:UserLocations.lonId"
162
+ "@mapping": "shapedb:UserLocations.lonId"
163
163
  }
164
164
  }
165
165
  }
166
166
  }
167
167
  },
168
- "schemaVersion": "3.30.0",
168
+ "schemaVersion": "3.31.0",
169
169
  "services": {}
170
170
  }
@@ -28,8 +28,8 @@
28
28
  "getUser": {
29
29
  "args": "TSGetArgs<User>",
30
30
  "resolver": {
31
- "name": "takeshape:get",
32
- "service": "takeshape:local",
31
+ "name": "shapedb:get",
32
+ "service": "shapedb",
33
33
  "shapeName": "User"
34
34
  },
35
35
  "shape": "User",
@@ -38,8 +38,8 @@
38
38
  "getUserList": {
39
39
  "args": "TSListArgs<User>",
40
40
  "resolver": {
41
- "name": "takeshape:list",
42
- "service": "takeshape:local",
41
+ "name": "shapedb:list",
42
+ "service": "shapedb",
43
43
  "shapeName": "User"
44
44
  },
45
45
  "shape": "PaginatedList<User>",
@@ -50,8 +50,8 @@
50
50
  "updateUser": {
51
51
  "args": "UpdateArgs<User>",
52
52
  "resolver": {
53
- "name": "takeshape:update",
54
- "service": "takeshape:local",
53
+ "name": "shapedb:update",
54
+ "service": "shapedb",
55
55
  "shapeName": "User"
56
56
  },
57
57
  "shape": "UpdateResult<User>",
@@ -60,8 +60,8 @@
60
60
  "createUser": {
61
61
  "args": "CreateArgs<User>",
62
62
  "resolver": {
63
- "name": "takeshape:create",
64
- "service": "takeshape:local",
63
+ "name": "shapedb:create",
64
+ "service": "shapedb",
65
65
  "shapeName": "User"
66
66
  },
67
67
  "shape": "CreateResult<User>",
@@ -70,8 +70,8 @@
70
70
  "duplicateUser": {
71
71
  "args": "DuplicateArgs<User>",
72
72
  "resolver": {
73
- "name": "takeshape:duplicate",
74
- "service": "takeshape:local",
73
+ "name": "shapedb:duplicate",
74
+ "service": "shapedb",
75
75
  "shapeName": "User"
76
76
  },
77
77
  "shape": "DuplicateResult<User>",
@@ -80,8 +80,8 @@
80
80
  "deleteUser": {
81
81
  "args": "DeleteArgs<User>",
82
82
  "resolver": {
83
- "name": "takeshape:delete",
84
- "service": "takeshape:local",
83
+ "name": "shapedb:delete",
84
+ "service": "shapedb",
85
85
  "shapeName": "User"
86
86
  },
87
87
  "shape": "DeleteResult<User>",
@@ -102,16 +102,16 @@
102
102
  "firstName": {
103
103
  "type": "string",
104
104
  "@l10n": true,
105
- "@mapping": "takeshape:local:User.firstNameId"
105
+ "@mapping": "shapedb:User.firstNameId"
106
106
  },
107
107
  "lastName": {
108
108
  "type": "string",
109
109
  "@l10n": true,
110
- "@mapping": "takeshape:local:User.lastNameId"
110
+ "@mapping": "shapedb:User.lastNameId"
111
111
  },
112
112
  "age": {
113
113
  "type": "number",
114
- "@mapping": "takeshape:local:User.ageId"
114
+ "@mapping": "shapedb:User.ageId"
115
115
  },
116
116
  "username": {
117
117
  "type": "string",
@@ -119,20 +119,20 @@
119
119
  "maxLength": 16,
120
120
  "minLength": 3,
121
121
  "pattern": "^[a-z0-9_-]+$",
122
- "@mapping": "takeshape:local:User.usernameId"
122
+ "@mapping": "shapedb:User.usernameId"
123
123
  },
124
124
  "email": {
125
125
  "type": "string",
126
126
  "@l10n": false,
127
127
  "format": "email",
128
- "@mapping": "takeshape:local:User.emailId"
128
+ "@mapping": "shapedb:User.emailId"
129
129
  },
130
130
  "password": {
131
131
  "type": "string",
132
132
  "@sensitive": true,
133
133
  "maxLength": 16,
134
134
  "minLength": 3,
135
- "@mapping": "takeshape:local:User.passwordId"
135
+ "@mapping": "shapedb:User.passwordId"
136
136
  },
137
137
  "roles": {
138
138
  "type": "array",
@@ -140,7 +140,7 @@
140
140
  "items": {
141
141
  "type": "string"
142
142
  },
143
- "@mapping": "takeshape:local:User.rolesId"
143
+ "@mapping": "shapedb:User.rolesId"
144
144
  },
145
145
  "locations": {
146
146
  "type": "array",
@@ -149,7 +149,7 @@
149
149
  "items": {
150
150
  "$ref": "#/shapes/UserLocations/schema"
151
151
  },
152
- "@mapping": "takeshape:local:User.locationsId"
152
+ "@mapping": "shapedb:User.locationsId"
153
153
  }
154
154
  },
155
155
  "required": [
@@ -174,13 +174,13 @@
174
174
  "type": "string",
175
175
  "default": "40.694598",
176
176
  "@l10n": true,
177
- "@mapping": "takeshape:local:UserLocations.latId"
177
+ "@mapping": "shapedb:UserLocations.latId"
178
178
  },
179
179
  "lon": {
180
180
  "type": "string",
181
181
  "default": "73.983119",
182
182
  "@l10n": true,
183
- "@mapping": "takeshape:local:UserLocations.lonId"
183
+ "@mapping": "shapedb:UserLocations.lonId"
184
184
  }
185
185
  },
186
186
  "required": [
@@ -190,6 +190,6 @@
190
190
  }
191
191
  }
192
192
  },
193
- "schemaVersion": "3.30.0",
193
+ "schemaVersion": "3.31.0",
194
194
  "services": {}
195
195
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takeshape/schema",
3
- "version": "9.36.3",
3
+ "version": "9.37.0",
4
4
  "description": "TakeShape Schema",
5
5
  "homepage": "https://www.takeshape.io",
6
6
  "repository": {
@@ -28,9 +28,9 @@
28
28
  "p-reduce": "^2.1.0",
29
29
  "semver": "^7.3.2",
30
30
  "tiny-invariant": "^1.2.0",
31
- "@takeshape/errors": "9.36.3",
32
- "@takeshape/json-schema": "9.36.3",
33
- "@takeshape/util": "9.36.3"
31
+ "@takeshape/util": "9.37.0",
32
+ "@takeshape/errors": "9.37.0",
33
+ "@takeshape/json-schema": "9.37.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@takeshape/json-schema-to-typescript": "^11.0.0",
@@ -46,7 +46,7 @@
46
46
  "meow": "^9.0.0",
47
47
  "p-map": "^5.0.0",
48
48
  "shortid": "^2.2.15",
49
- "@takeshape/typescript-jest-junit-reporter": "9.36.3"
49
+ "@takeshape/typescript-jest-junit-reporter": "9.37.0"
50
50
  },
51
51
  "engines": {
52
52
  "node": ">=16"
@@ -1,364 +0,0 @@
1
- {
2
- "apiVersion": "2",
3
- "created": "2017-07-13T19:16:10.801Z",
4
- "dataKey": "AQIDAHhcZWXOdlBglkxBhI23ElO/clC/kuw5ynjXDSqJgfTz8gFvrYhMK581OOYYSjJNwit9AAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMPLnOWQxVHD5AzgXdAgEQgDu0ANKQTBQ7dNFJEQcd2aOfZncgw7DjUasC+7Yp2ci0Y2+ZmbbtIa2kcHBt8eriFPR28uwgnvDzn8t6Qw==",
5
- "defaultLocale": "en",
6
- "forms": {
7
- "Post": {
8
- "default": {
9
- "order": [
10
- "title",
11
- "body",
12
- "rating",
13
- "tags"
14
- ]
15
- }
16
- },
17
- "Tag": {
18
- "default": {
19
- "order": [
20
- "name"
21
- ]
22
- }
23
- }
24
- },
25
- "locales": [
26
- "en"
27
- ],
28
- "projectId": "a4affe2b-9b02-4c37-a5b3-73bf17df41e6",
29
- "services": {
30
- "shopify:seans-store-takeshape": {
31
- "title": "seans-store-takeshape",
32
- "id": "shopify:seans-store-takeshape",
33
- "provider": "shopify",
34
- "namespace": "Shopify",
35
- "serviceType": "graphql",
36
- "authenticationType": "oauth2Bearer",
37
- "options": {
38
- "authHeader": "X-Shopify-Access-Token",
39
- "endpoint": "https://seans-store-takeshape.myshopify.com/admin/api/2020-07/graphql.json",
40
- "namespace": "Shopify",
41
- "shop": "seans-store-takeshape",
42
- "type": "graphql"
43
- },
44
- "authentication": "abc"
45
- }
46
- },
47
- "updated": "2018-09-08T20:16:45.814Z",
48
- "version": 1,
49
- "workflows": {},
50
- "queries": {
51
- "getPost": {
52
- "args": "TSGetArgs<Post>",
53
- "description": "Get a Post by ID",
54
- "resolver": {
55
- "name": "takeshape:get",
56
- "service": "takeshape:local",
57
- "options": {},
58
- "shapeName": "Post"
59
- },
60
- "shape": "Post"
61
- },
62
- "getPostList": {
63
- "args": "TSListArgs<Post>",
64
- "description": "Returns a list Post in natural order.",
65
- "resolver": {
66
- "name": "takeshape:list",
67
- "service": "takeshape:local",
68
- "options": {},
69
- "shapeName": "Post"
70
- },
71
- "shape": "PaginatedList<Post>"
72
- },
73
- "getProduct": {
74
- "args": {
75
- "properties": {
76
- "id": {
77
- "@tag": "id",
78
- "type": "string"
79
- }
80
- },
81
- "required": [
82
- "id"
83
- ],
84
- "type": "object"
85
- },
86
- "query": "product",
87
- "resolver": {
88
- "name": "graphql:query",
89
- "service": "shopify:seans-store-takeshape",
90
- "fieldName": ""
91
- },
92
- "shape": "TSShopify_Product"
93
- },
94
- "getProductList": {
95
- "args": {
96
- "properties": {
97
- "after": {
98
- "description": "Returns the elements that come after the specified cursor.",
99
- "type": "string"
100
- },
101
- "before": {
102
- "description": "Returns the elements that come before the specified cursor.",
103
- "type": "string"
104
- },
105
- "first": {
106
- "description": "Returns up to the first `n` elements from the list.",
107
- "type": "integer"
108
- },
109
- "last": {
110
- "description": "Returns up to the last `n` elements from the list.",
111
- "type": "integer"
112
- },
113
- "query": {
114
- "description": "Supported filter parameters:\n - `barcode`\n - `created_at`\n - `delivery_profile_id`\n - `error_feedback`\n - `gift_card`\n - `inventory_total`\n - `is_price_reduced`\n - `out_of_stock_somewhere`\n - `price`\n - `product_type`\n - `publishable_status`\n - `published_status`\n - `sku`\n - `status`\n - `tag`\n - `title`\n - `updated_at`\n - `vendor`\n\nSee the detailed [search syntax](https://help.shopify.com/api/getting-started/search-syntax)\nfor more information about using filters.",
115
- "type": "string"
116
- },
117
- "reverse": {
118
- "description": "Reverse the order of the underlying list.",
119
- "type": "boolean"
120
- },
121
- "savedSearchId": {
122
- "@tag": "id",
123
- "description": "ID of an existing saved search.\nThe search’s query string is used as the query argument.",
124
- "type": "string"
125
- },
126
- "sortKey": {
127
- "description": "Sort the underlying list by the given key.",
128
- "enum": [
129
- "TITLE",
130
- "PRODUCT_TYPE",
131
- "VENDOR",
132
- "INVENTORY_TOTAL",
133
- "UPDATED_AT",
134
- "CREATED_AT",
135
- "PUBLISHED_AT",
136
- "ID",
137
- "RELEVANCE"
138
- ]
139
- }
140
- },
141
- "type": "object"
142
- },
143
- "query": "products",
144
- "resolver": {
145
- "name": "graphql:query",
146
- "service": "shopify:seans-store-takeshape",
147
- "fieldName": ""
148
- },
149
- "shape": "TSShopify_ProductConnection"
150
- },
151
- "getTag": {
152
- "args": "TSGetArgs<Tag>",
153
- "description": "Get a Tag by ID",
154
- "resolver": {
155
- "name": "takeshape:get",
156
- "service": "takeshape:local",
157
- "options": {},
158
- "shapeName": "Tag"
159
- },
160
- "shape": "Tag"
161
- },
162
- "getTagList": {
163
- "args": "TSListArgs<Tag>",
164
- "description": "Returns a list Tag in natural order.",
165
- "resolver": {
166
- "name": "takeshape:list",
167
- "service": "takeshape:local",
168
- "options": {},
169
- "shapeName": "Tag"
170
- },
171
- "shape": "PaginatedList<Tag>"
172
- }
173
- },
174
- "mutations": {
175
- "createPost": {
176
- "args": "CreateArgs<Post>",
177
- "description": "Create Post",
178
- "resolver": {
179
- "name": "takeshape:create",
180
- "service": "takeshape:local",
181
- "options": {},
182
- "shapeName": "Post"
183
- },
184
- "shape": "CreateResult<Post>"
185
- },
186
- "createProduct": {
187
- "args": {
188
- "properties": {
189
- "input": {
190
- "$ref": "#/shapes/TSShopify_ProductInput/schema"
191
- }
192
- },
193
- "required": [
194
- "input"
195
- ],
196
- "type": "object"
197
- },
198
- "query": "productCreate",
199
- "resolver": {
200
- "name": "graphql:mutation",
201
- "service": "shopify:seans-store-takeshape",
202
- "fieldName": ""
203
- },
204
- "shape": "TSShopify_ProductCreatePayload"
205
- },
206
- "createTag": {
207
- "args": "CreateArgs<Tag>",
208
- "description": "Create Tag",
209
- "resolver": {
210
- "name": "takeshape:create",
211
- "service": "takeshape:local",
212
- "options": {},
213
- "shapeName": "Tag"
214
- },
215
- "shape": "CreateResult<Tag>"
216
- },
217
- "deletePost": {
218
- "args": "DeleteArgs<Post>",
219
- "description": "Delete Post",
220
- "resolver": {
221
- "name": "takeshape:delete",
222
- "service": "takeshape:local",
223
- "options": {},
224
- "shapeName": "Post"
225
- },
226
- "shape": "DeleteResult<Post>"
227
- },
228
- "deleteTag": {
229
- "args": "DeleteArgs<Tag>",
230
- "description": "Delete Tag",
231
- "resolver": {
232
- "name": "takeshape:delete",
233
- "service": "takeshape:local",
234
- "options": {},
235
- "shapeName": "Tag"
236
- },
237
- "shape": "DeleteResult<Tag>"
238
- },
239
- "duplicatePost": {
240
- "args": "DuplicateArgs<Post>",
241
- "description": "Duplicate Post",
242
- "resolver": {
243
- "name": "takeshape:duplicate",
244
- "service": "takeshape:local",
245
- "options": {},
246
- "shapeName": "Post"
247
- },
248
- "shape": "DuplicateResult<Post>"
249
- },
250
- "duplicateTag": {
251
- "args": "DuplicateArgs<Tag>",
252
- "description": "Duplicate Tag",
253
- "resolver": {
254
- "name": "takeshape:duplicate",
255
- "service": "takeshape:local",
256
- "options": {},
257
- "shapeName": "Tag"
258
- },
259
- "shape": "DuplicateResult<Tag>"
260
- },
261
- "updatePost": {
262
- "args": "UpdateArgs<Post>",
263
- "description": "Update Post",
264
- "resolver": {
265
- "name": "takeshape:update",
266
- "service": "takeshape:local",
267
- "options": {},
268
- "shapeName": "Post"
269
- },
270
- "shape": "UpdateResult<Post>"
271
- },
272
- "updateTag": {
273
- "args": "UpdateArgs<Tag>",
274
- "description": "Update Tag",
275
- "resolver": {
276
- "name": "takeshape:update",
277
- "service": "takeshape:local",
278
- "options": {},
279
- "shapeName": "Tag"
280
- },
281
- "shape": "UpdateResult<Tag>"
282
- }
283
- },
284
- "shapes": {
285
- "Post": {
286
- "id": "postContentTypeId",
287
- "model": {
288
- "type": "multiple"
289
- },
290
- "name": "Post",
291
- "title": "Post",
292
- "schema": {
293
- "properties": {
294
- "body": {
295
- "@l10n": true,
296
- "@mapping": "takeshape:local:Post.bodyId",
297
- "type": "string"
298
- },
299
- "productId": {
300
- "@mapping": "takeshape:local:Post.productId",
301
- "@tag": "id",
302
- "type": "string"
303
- },
304
- "rating": {
305
- "@mapping": "takeshape:local:Post.ratingId",
306
- "type": "integer"
307
- },
308
- "tags": {
309
- "@mapping": "takeshape:local:Post.tagsId",
310
- "items": {
311
- "oneOf": [
312
- {
313
- "@ref": "local:Tag"
314
- }
315
- ]
316
- },
317
- "@backreference": {
318
- "enabled": true,
319
- "name": "firstTags"
320
- },
321
- "type": "array",
322
- "@input": {
323
- "@ref": "local:TSRelationship"
324
- },
325
- "@resolver": {
326
- "name": "takeshape:getRelated",
327
- "service": "takeshape:local"
328
- }
329
- },
330
- "title": {
331
- "@l10n": true,
332
- "@mapping": "takeshape:local:Post.titleId",
333
- "type": "string"
334
- }
335
- },
336
- "required": [
337
- "title"
338
- ],
339
- "type": "object"
340
- }
341
- },
342
- "Tag": {
343
- "id": "tagContentTypeId",
344
- "model": {
345
- "type": "taxonomy"
346
- },
347
- "name": "Tag",
348
- "title": "Tag",
349
- "schema": {
350
- "properties": {
351
- "name": {
352
- "@mapping": "takeshape:local:Tag.nameId",
353
- "type": "string"
354
- }
355
- },
356
- "required": [
357
- "name"
358
- ],
359
- "type": "object"
360
- }
361
- }
362
- },
363
- "schemaVersion": "3.18.0"
364
- }