@takeshape/schema 7.194.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 (312) hide show
  1. package/README.md +5 -0
  2. package/es/api-version.js +21 -0
  3. package/es/auth-schemas.js +0 -0
  4. package/es/builtin-schema.js +590 -0
  5. package/es/content-schema-transform.js +192 -0
  6. package/es/entitlements.js +0 -0
  7. package/es/enum.js +11 -0
  8. package/es/get-is-leaf.js +58 -0
  9. package/es/index.js +25 -0
  10. package/es/migration.js +413 -0
  11. package/es/mocks.js +47 -0
  12. package/es/patterns.js +0 -0
  13. package/es/project-schema/index.js +10 -0
  14. package/es/project-schema/v1.0.0.js +0 -0
  15. package/es/project-schema/v3.0.0.js +0 -0
  16. package/es/project-schema/v3.1.0.js +0 -0
  17. package/es/project-schema/v3.2.0.js +0 -0
  18. package/es/project-schema/v3.3.0.js +0 -0
  19. package/es/project-schema/v3.4.0.js +0 -0
  20. package/es/project-schema/v3.5.0.js +0 -0
  21. package/es/project-schema/v3.5.1.js +0 -0
  22. package/es/project-schema/v3.6.0.js +0 -0
  23. package/es/refs.js +301 -0
  24. package/es/resolvers.js +2 -0
  25. package/es/scalars.js +4 -0
  26. package/es/schema-util.js +1197 -0
  27. package/es/schemas/auth-schemas.json +313 -0
  28. package/es/schemas/project-schema/meta-schema-v1.0.0.json +209 -0
  29. package/es/schemas/project-schema/meta-schema-v3.0.0.json +609 -0
  30. package/es/schemas/project-schema/meta-schema-v3.1.0.json +609 -0
  31. package/es/schemas/project-schema/meta-schema-v3.2.0.json +613 -0
  32. package/es/schemas/project-schema/meta-schema-v3.3.0.json +613 -0
  33. package/es/schemas/project-schema/meta-schema-v3.4.0.json +613 -0
  34. package/es/schemas/project-schema/meta-schema-v3.5.0.json +627 -0
  35. package/es/schemas/project-schema/meta-schema-v3.5.1.json +630 -0
  36. package/es/schemas/project-schema/meta-schema-v3.6.0.json +633 -0
  37. package/es/schemas/project-schema/v1.0.0.json +321 -0
  38. package/es/schemas/project-schema/v3.0.0.json +411 -0
  39. package/es/schemas/project-schema/v3.1.0.json +569 -0
  40. package/es/schemas/project-schema/v3.2.0.json +577 -0
  41. package/es/schemas/project-schema/v3.3.0.json +578 -0
  42. package/es/schemas/project-schema/v3.4.0.json +568 -0
  43. package/es/schemas/project-schema/v3.5.0.json +568 -0
  44. package/es/schemas/project-schema/v3.5.1.json +568 -0
  45. package/es/schemas/project-schema/v3.6.0.json +584 -0
  46. package/es/schemas/project-schema.json +16 -0
  47. package/es/schemas/user-schema.json +58 -0
  48. package/es/services.js +379 -0
  49. package/es/taxonomies.js +55 -0
  50. package/es/template-shapes.js +79 -0
  51. package/es/types.js +202 -0
  52. package/es/unions.js +137 -0
  53. package/es/user-schema.js +0 -0
  54. package/es/util/detect-cycles.js +54 -0
  55. package/es/util/index.js +1 -0
  56. package/es/validate.js +764 -0
  57. package/es/versions.js +4 -0
  58. package/es/workflows.js +69 -0
  59. package/examples/.pnpm-debug.log +20 -0
  60. package/examples/v1_0_0/beer-schema.json +125 -0
  61. package/examples/v1_0_0/blog-schema.json +192 -0
  62. package/examples/v1_0_0/brewery-schema.json +232 -0
  63. package/examples/v1_0_0/complex-project-schema.json +3197 -0
  64. package/examples/v1_0_0/error-schema.json +275 -0
  65. package/examples/v1_0_0/frank-and-fred-schema.json +21387 -0
  66. package/examples/v1_0_0/massive-schema.json +6930 -0
  67. package/examples/v1_0_0/post-schema.json +83 -0
  68. package/examples/v1_0_0/real-world-schema.json +797 -0
  69. package/examples/v1_0_0/recursive-repeater-schema.json +69 -0
  70. package/examples/v1_0_0/recursive-schema.json +79 -0
  71. package/examples/v1_0_0/schema-with-repeater-draftjs.json +292 -0
  72. package/examples/v1_0_0/shape-books.json +797 -0
  73. package/examples/v1_0_0/user-schema-no-required.json +84 -0
  74. package/examples/v1_0_0/user-schema-with-defaults.json +105 -0
  75. package/examples/v1_0_0/user-schema-with-obj-prop.json +92 -0
  76. package/examples/v1_0_0/user-schema.json +87 -0
  77. package/examples/v3_0_0/rick-and-morty-rest.json +62 -0
  78. package/examples/v3_0_0/shopify-lookbook.json +1172 -0
  79. package/examples/v3_0_0/shopify-store-with-widget.json +11323 -0
  80. package/examples/v3_2_0/blog-schema.json +378 -0
  81. package/examples/v3_2_0/brewery-schema.json +385 -0
  82. package/examples/v3_2_0/complex-project-schema.json +3748 -0
  83. package/examples/v3_2_0/frank-and-fred-schema.json +19217 -0
  84. package/examples/v3_2_0/massive-schema.json +6676 -0
  85. package/examples/v3_2_0/pet-oneof-array.json +323 -0
  86. package/examples/v3_2_0/post-schema.json +265 -0
  87. package/examples/v3_2_0/real-world-schema.json +970 -0
  88. package/examples/v3_2_0/recursive-repeater-schema.json +144 -0
  89. package/examples/v3_2_0/recursive-schema.json +151 -0
  90. package/examples/v3_2_0/rick-and-morty-rest.json +65 -0
  91. package/examples/v3_2_0/schema-with-repeater-draftjs.json +381 -0
  92. package/examples/v3_2_0/shape-books.json +1044 -0
  93. package/examples/v3_2_0/shopify-store-with-widget.json +11016 -0
  94. package/examples/v3_2_0/user-schema-no-required.json +174 -0
  95. package/examples/v3_2_0/user-schema-with-defaults.json +187 -0
  96. package/examples/v3_3_0/blog-schema.json +405 -0
  97. package/examples/v3_3_0/brewery-schema.json +406 -0
  98. package/examples/v3_3_0/complex-project-schema.json +4076 -0
  99. package/examples/v3_3_0/frank-and-fred-schema.json +20913 -0
  100. package/examples/v3_3_0/massive-schema.json +7309 -0
  101. package/examples/v3_3_0/pet-oneof-array.json +380 -0
  102. package/examples/v3_3_0/post-schema.json +248 -0
  103. package/examples/v3_3_0/real-world-schema.json +1046 -0
  104. package/examples/v3_3_0/recursive-repeater-schema.json +154 -0
  105. package/examples/v3_3_0/recursive-schema.json +161 -0
  106. package/examples/v3_3_0/rick-and-morty-rest.json +101 -0
  107. package/examples/v3_3_0/schema-with-repeater-draftjs.json +393 -0
  108. package/examples/v3_3_0/shape-books.json +1121 -0
  109. package/examples/v3_3_0/shopify-lookbook.json +1196 -0
  110. package/examples/v3_3_0/shopify-store-with-widget.json +11320 -0
  111. package/examples/v3_3_0/user-schema-no-required.json +185 -0
  112. package/examples/v3_3_0/user-schema-with-defaults.json +210 -0
  113. package/examples/v3_4_0/blog-schema.json +405 -0
  114. package/examples/v3_4_0/brewery-schema.json +406 -0
  115. package/examples/v3_4_0/complex-project-schema.json +4076 -0
  116. package/examples/v3_4_0/frank-and-fred-schema.json +20913 -0
  117. package/examples/v3_4_0/massive-schema.json +7309 -0
  118. package/examples/v3_4_0/pet-oneof-array.json +420 -0
  119. package/examples/v3_4_0/post-schema.json +248 -0
  120. package/examples/v3_4_0/real-world-schema.json +1046 -0
  121. package/examples/v3_4_0/recursive-repeater-schema.json +154 -0
  122. package/examples/v3_4_0/recursive-schema.json +161 -0
  123. package/examples/v3_4_0/rick-and-morty-rest.json +101 -0
  124. package/examples/v3_4_0/schema-with-repeater-draftjs.json +393 -0
  125. package/examples/v3_4_0/shape-books.json +1121 -0
  126. package/examples/v3_4_0/shopify-lookbook.json +1196 -0
  127. package/examples/v3_4_0/shopify-store-with-widget.json +11323 -0
  128. package/examples/v3_4_0/user-schema-no-required.json +185 -0
  129. package/examples/v3_4_0/user-schema-with-defaults.json +210 -0
  130. package/examples/v3_5_0/blog-schema.json +405 -0
  131. package/examples/v3_5_0/brewery-schema.json +406 -0
  132. package/examples/v3_5_0/complex-project-schema.json +4076 -0
  133. package/examples/v3_5_0/frank-and-fred-schema.json +20913 -0
  134. package/examples/v3_5_0/massive-schema.json +7309 -0
  135. package/examples/v3_5_0/pet-oneof-array.json +420 -0
  136. package/examples/v3_5_0/post-schema.json +248 -0
  137. package/examples/v3_5_0/real-world-schema.json +1046 -0
  138. package/examples/v3_5_0/recursive-repeater-schema.json +154 -0
  139. package/examples/v3_5_0/recursive-schema.json +161 -0
  140. package/examples/v3_5_0/rick-and-morty-rest.json +101 -0
  141. package/examples/v3_5_0/schema-with-repeater-draftjs.json +393 -0
  142. package/examples/v3_5_0/shape-books.json +1121 -0
  143. package/examples/v3_5_0/shopify-lookbook.json +1196 -0
  144. package/examples/v3_5_0/shopify-store-with-widget.json +12271 -0
  145. package/examples/v3_5_0/user-schema-no-required.json +185 -0
  146. package/examples/v3_5_0/user-schema-with-defaults.json +210 -0
  147. package/examples/v3_5_1/blog-schema.json +405 -0
  148. package/examples/v3_5_1/brewery-schema.json +406 -0
  149. package/examples/v3_5_1/complex-project-schema.json +4076 -0
  150. package/examples/v3_5_1/frank-and-fred-schema.json +20913 -0
  151. package/examples/v3_5_1/massive-schema.json +7309 -0
  152. package/examples/v3_5_1/pet-oneof-array.json +420 -0
  153. package/examples/v3_5_1/post-schema.json +248 -0
  154. package/examples/v3_5_1/real-world-schema.json +1046 -0
  155. package/examples/v3_5_1/recursive-repeater-schema.json +154 -0
  156. package/examples/v3_5_1/recursive-schema.json +161 -0
  157. package/examples/v3_5_1/rick-and-morty-rest.json +101 -0
  158. package/examples/v3_5_1/schema-with-repeater-draftjs.json +393 -0
  159. package/examples/v3_5_1/shape-books.json +1121 -0
  160. package/examples/v3_5_1/shopify-lookbook.json +1196 -0
  161. package/examples/v3_5_1/shopify-store-with-widget.json +12271 -0
  162. package/examples/v3_5_1/stripe-starter-resolved.json +21419 -0
  163. package/examples/v3_5_1/user-schema-no-required.json +185 -0
  164. package/examples/v3_5_1/user-schema-with-defaults.json +210 -0
  165. package/examples/v3_6_0/blog-schema.json +405 -0
  166. package/examples/v3_6_0/brewery-schema.json +406 -0
  167. package/examples/v3_6_0/complex-project-schema.json +4076 -0
  168. package/examples/v3_6_0/frank-and-fred-schema.json +20913 -0
  169. package/examples/v3_6_0/massive-schema.json +7309 -0
  170. package/examples/v3_6_0/pet-oneof-array.json +420 -0
  171. package/examples/v3_6_0/post-schema.json +248 -0
  172. package/examples/v3_6_0/real-world-schema.json +1046 -0
  173. package/examples/v3_6_0/recursive-repeater-schema.json +154 -0
  174. package/examples/v3_6_0/recursive-schema.json +161 -0
  175. package/examples/v3_6_0/rick-and-morty-rest.json +101 -0
  176. package/examples/v3_6_0/schema-with-repeater-draftjs.json +393 -0
  177. package/examples/v3_6_0/shape-books.json +1121 -0
  178. package/examples/v3_6_0/shopify-lookbook.json +1196 -0
  179. package/examples/v3_6_0/shopify-store-with-widget.json +12271 -0
  180. package/examples/v3_6_0/stripe-starter-resolved.json +21419 -0
  181. package/examples/v3_6_0/user-schema-no-required.json +185 -0
  182. package/examples/v3_6_0/user-schema-with-defaults.json +210 -0
  183. package/lib/api-version.d.ts +6 -0
  184. package/lib/api-version.d.ts.map +1 -0
  185. package/lib/api-version.js +36 -0
  186. package/lib/auth-schemas.d.ts +105 -0
  187. package/lib/auth-schemas.d.ts.map +1 -0
  188. package/lib/auth-schemas.js +1 -0
  189. package/lib/builtin-schema.d.ts +8 -0
  190. package/lib/builtin-schema.d.ts.map +1 -0
  191. package/lib/builtin-schema.js +606 -0
  192. package/lib/content-schema-transform.d.ts +41 -0
  193. package/lib/content-schema-transform.d.ts.map +1 -0
  194. package/lib/content-schema-transform.js +217 -0
  195. package/lib/entitlements.d.ts +1 -0
  196. package/lib/entitlements.d.ts.map +1 -0
  197. package/lib/entitlements.js +1 -0
  198. package/lib/enum.d.ts +3 -0
  199. package/lib/enum.d.ts.map +1 -0
  200. package/lib/enum.js +18 -0
  201. package/lib/get-is-leaf.d.ts +4 -0
  202. package/lib/get-is-leaf.d.ts.map +1 -0
  203. package/lib/get-is-leaf.js +68 -0
  204. package/lib/index.d.ts +27 -0
  205. package/lib/index.d.ts.map +1 -0
  206. package/lib/index.js +359 -0
  207. package/lib/migration.d.ts +55 -0
  208. package/lib/migration.d.ts.map +1 -0
  209. package/lib/migration.js +463 -0
  210. package/lib/mocks.d.ts +13 -0
  211. package/lib/mocks.d.ts.map +1 -0
  212. package/lib/mocks.js +61 -0
  213. package/lib/patterns.d.ts +13 -0
  214. package/lib/patterns.d.ts.map +1 -0
  215. package/lib/patterns.js +1 -0
  216. package/lib/project-schema/index.d.ts +21 -0
  217. package/lib/project-schema/index.d.ts.map +1 -0
  218. package/lib/project-schema/index.js +122 -0
  219. package/lib/project-schema/v1.0.0.d.ts +293 -0
  220. package/lib/project-schema/v1.0.0.d.ts.map +1 -0
  221. package/lib/project-schema/v1.0.0.js +1 -0
  222. package/lib/project-schema/v3.0.0.d.ts +480 -0
  223. package/lib/project-schema/v3.0.0.d.ts.map +1 -0
  224. package/lib/project-schema/v3.0.0.js +1 -0
  225. package/lib/project-schema/v3.1.0.d.ts +623 -0
  226. package/lib/project-schema/v3.1.0.d.ts.map +1 -0
  227. package/lib/project-schema/v3.1.0.js +1 -0
  228. package/lib/project-schema/v3.2.0.d.ts +634 -0
  229. package/lib/project-schema/v3.2.0.d.ts.map +1 -0
  230. package/lib/project-schema/v3.2.0.js +1 -0
  231. package/lib/project-schema/v3.3.0.d.ts +634 -0
  232. package/lib/project-schema/v3.3.0.d.ts.map +1 -0
  233. package/lib/project-schema/v3.3.0.js +1 -0
  234. package/lib/project-schema/v3.4.0.d.ts +626 -0
  235. package/lib/project-schema/v3.4.0.d.ts.map +1 -0
  236. package/lib/project-schema/v3.4.0.js +1 -0
  237. package/lib/project-schema/v3.5.0.d.ts +651 -0
  238. package/lib/project-schema/v3.5.0.d.ts.map +1 -0
  239. package/lib/project-schema/v3.5.0.js +1 -0
  240. package/lib/project-schema/v3.5.1.d.ts +651 -0
  241. package/lib/project-schema/v3.5.1.d.ts.map +1 -0
  242. package/lib/project-schema/v3.5.1.js +1 -0
  243. package/lib/project-schema/v3.6.0.d.ts +660 -0
  244. package/lib/project-schema/v3.6.0.d.ts.map +1 -0
  245. package/lib/project-schema/v3.6.0.js +1 -0
  246. package/lib/refs.d.ts +122 -0
  247. package/lib/refs.d.ts.map +1 -0
  248. package/lib/refs.js +359 -0
  249. package/lib/resolvers.d.ts +4 -0
  250. package/lib/resolvers.d.ts.map +1 -0
  251. package/lib/resolvers.js +10 -0
  252. package/lib/scalars.d.ts +3 -0
  253. package/lib/scalars.d.ts.map +1 -0
  254. package/lib/scalars.js +13 -0
  255. package/lib/schema-util.d.ts +201 -0
  256. package/lib/schema-util.d.ts.map +1 -0
  257. package/lib/schema-util.js +1353 -0
  258. package/lib/schemas/auth-schemas.json +313 -0
  259. package/lib/schemas/project-schema/meta-schema-v1.0.0.json +209 -0
  260. package/lib/schemas/project-schema/meta-schema-v3.0.0.json +609 -0
  261. package/lib/schemas/project-schema/meta-schema-v3.1.0.json +609 -0
  262. package/lib/schemas/project-schema/meta-schema-v3.2.0.json +613 -0
  263. package/lib/schemas/project-schema/meta-schema-v3.3.0.json +613 -0
  264. package/lib/schemas/project-schema/meta-schema-v3.4.0.json +613 -0
  265. package/lib/schemas/project-schema/meta-schema-v3.5.0.json +627 -0
  266. package/lib/schemas/project-schema/meta-schema-v3.5.1.json +630 -0
  267. package/lib/schemas/project-schema/meta-schema-v3.6.0.json +633 -0
  268. package/lib/schemas/project-schema/v1.0.0.json +321 -0
  269. package/lib/schemas/project-schema/v3.0.0.json +411 -0
  270. package/lib/schemas/project-schema/v3.1.0.json +569 -0
  271. package/lib/schemas/project-schema/v3.2.0.json +577 -0
  272. package/lib/schemas/project-schema/v3.3.0.json +578 -0
  273. package/lib/schemas/project-schema/v3.4.0.json +568 -0
  274. package/lib/schemas/project-schema/v3.5.0.json +568 -0
  275. package/lib/schemas/project-schema/v3.5.1.json +568 -0
  276. package/lib/schemas/project-schema/v3.6.0.json +584 -0
  277. package/lib/schemas/project-schema.json +16 -0
  278. package/lib/schemas/user-schema.json +58 -0
  279. package/lib/services.d.ts +71 -0
  280. package/lib/services.d.ts.map +1 -0
  281. package/lib/services.js +413 -0
  282. package/lib/taxonomies.d.ts +16 -0
  283. package/lib/taxonomies.d.ts.map +1 -0
  284. package/lib/taxonomies.js +69 -0
  285. package/lib/template-shapes.d.ts +32 -0
  286. package/lib/template-shapes.d.ts.map +1 -0
  287. package/lib/template-shapes.js +100 -0
  288. package/lib/types.d.ts +187 -0
  289. package/lib/types.d.ts.map +1 -0
  290. package/lib/types.js +289 -0
  291. package/lib/unions.d.ts +29 -0
  292. package/lib/unions.d.ts.map +1 -0
  293. package/lib/unions.js +167 -0
  294. package/lib/user-schema.d.ts +39 -0
  295. package/lib/user-schema.d.ts.map +1 -0
  296. package/lib/user-schema.js +1 -0
  297. package/lib/util/detect-cycles.d.ts +6 -0
  298. package/lib/util/detect-cycles.d.ts.map +1 -0
  299. package/lib/util/detect-cycles.js +61 -0
  300. package/lib/util/index.d.ts +2 -0
  301. package/lib/util/index.d.ts.map +1 -0
  302. package/lib/util/index.js +18 -0
  303. package/lib/validate.d.ts +49 -0
  304. package/lib/validate.d.ts.map +1 -0
  305. package/lib/validate.js +823 -0
  306. package/lib/versions.d.ts +5 -0
  307. package/lib/versions.d.ts.map +1 -0
  308. package/lib/versions.js +14 -0
  309. package/lib/workflows.d.ts +15 -0
  310. package/lib/workflows.d.ts.map +1 -0
  311. package/lib/workflows.js +92 -0
  312. package/package.json +65 -0
@@ -0,0 +1,313 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://schema.takeshape.io/auth-schemas#",
4
+ "title": "Auth Schemas",
5
+ "definitions": {
6
+ "Condition": {
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "patternProperties": {
10
+ "^(ForAllValues:|ForAnyValue:)?Numeric(Equals|NotEquals|LessThan|LessThanEquals|GreaterThan|GreaterThanEquals)(IfExists)?$": {
11
+ "type": "object",
12
+ "patternProperties": {
13
+ ".+": {
14
+ "type": ["number", "array"],
15
+ "items": {
16
+ "type": "number"
17
+ }
18
+ }
19
+ }
20
+ },
21
+ "^(ForAllValues:|ForAnyValue:)?Date(Equals|NotEquals|LessThan|LessThanEquals|GreaterThan|GreaterThanEquals)(IfExists)?$": {
22
+ "type": "object",
23
+ "patternProperties": {
24
+ ".+": {
25
+ "type": ["array", "string", "number"],
26
+ "format": "date-time",
27
+ "items": {
28
+ "type": ["string", "number"],
29
+ "format": "date-time"
30
+ }
31
+ }
32
+ }
33
+ },
34
+ "^(ForAllValues:|ForAnyValue:)?Null(IfExists)?$": {
35
+ "type": "object",
36
+ "patternProperties": {
37
+ ".+": {
38
+ "type": ["boolean", "array"],
39
+ "items": {
40
+ "type": "boolean"
41
+ }
42
+ }
43
+ }
44
+ },
45
+ "^(ForAllValues:|ForAnyValue:)?IpAddress(IfExists)?$": {
46
+ "type": "object",
47
+ "patternProperties": {
48
+ ".+": {
49
+ "type": ["string", "array"],
50
+ "format": "ipv4",
51
+ "items": {
52
+ "type": "string",
53
+ "format": "ipv4"
54
+ }
55
+ }
56
+ }
57
+ },
58
+ "^(ForAllValues:|ForAnyValue:)?NotIpAddress(IfExists)?$": {
59
+ "type": "object",
60
+ "patternProperties": {
61
+ ".+": {
62
+ "type": ["string", "array"],
63
+ "format": "ipv4",
64
+ "items": {
65
+ "type": "string",
66
+ "format": "ipv4"
67
+ }
68
+ }
69
+ }
70
+ },
71
+ "^(ForAllValues:|ForAnyValue:)?String(Equals|NotEquals|EqualsIgnoreCase|NotEqualsIgnoreCase|Like|NotLike)(IfExists)?$": {
72
+ "type": "object",
73
+ "patternProperties": {
74
+ ".+": {
75
+ "type": ["string", "array"],
76
+ "items": {
77
+ "type": "string"
78
+ }
79
+ }
80
+ }
81
+ },
82
+ "^(ForAllValues:|ForAnyValue:)?Bool(IfExists)?$": {
83
+ "type": "object",
84
+ "patternProperties": {
85
+ ".+": {
86
+ "type": ["string", "boolean", "array"],
87
+ "enum": ["true", "false", true, false],
88
+ "items": {
89
+ "type": ["string", "boolean"],
90
+ "enum": ["true", "false", true, false]
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ },
97
+ "Statement": {
98
+ "type": "object",
99
+ "properties": {
100
+ "Effect": {
101
+ "type": "string",
102
+ "enum": ["Allow", "Deny"]
103
+ },
104
+ "Sid": {
105
+ "type": "string"
106
+ },
107
+ "Action": {
108
+ "type": "array",
109
+ "items": {
110
+ "type": "string"
111
+ }
112
+ },
113
+ "NotAction": {
114
+ "type": "array",
115
+ "items": {
116
+ "type": "string"
117
+ }
118
+ },
119
+ "Resource": {
120
+ "type": "array",
121
+ "items": {
122
+ "type": "string",
123
+ "pattern": "^ts:[A-Za-z\\]+:[A-Za-z0-9\\-]+:.+$"
124
+ }
125
+ },
126
+ "NotResource": {
127
+ "type": "array",
128
+ "items": {
129
+ "type": "string",
130
+ "pattern": "^ts:[A-Za-z\\-]+:[A-Za-z0-9\\-]+:.+$"
131
+ }
132
+ },
133
+ "Principal": {
134
+ "type": "object",
135
+ "properties": {
136
+ "AWS": {
137
+ "type": "array",
138
+ "items": {
139
+ "type": "string"
140
+ }
141
+ },
142
+ "Service": {
143
+ "type": "array",
144
+ "items": {
145
+ "type": "string"
146
+ }
147
+ }
148
+ },
149
+ "additionalProperties": false
150
+ },
151
+ "Condition": {
152
+ "$ref": "#/definitions/Condition"
153
+ }
154
+ },
155
+ "additionalProperties": false
156
+ },
157
+ "AccessPolicyDocument": {
158
+ "title": "Access Policy Document",
159
+ "type": "object",
160
+ "properties": {
161
+ "Version": {
162
+ "type": "string",
163
+ "default": "2012-10-17"
164
+ },
165
+ "Statement": {
166
+ "type": "array",
167
+ "items": {
168
+ "$ref": "#/definitions/Statement"
169
+ }
170
+ }
171
+ },
172
+ "required": ["Version", "Statement"],
173
+ "additionalProperties": false
174
+ },
175
+ "ApiKey": {
176
+ "title": "Api Key",
177
+ "properties": {
178
+ "projectId": {
179
+ "type": "string"
180
+ },
181
+ "name": {
182
+ "type": "string"
183
+ },
184
+ "role": {
185
+ "type": "string"
186
+ },
187
+ "permissions": {
188
+ "$ref": "#/definitions/AccessPolicyDocument"
189
+ },
190
+ "lastUsed": {
191
+ "type": "string",
192
+ "format": "date-time"
193
+ },
194
+ "apiKey": {
195
+ "type": "string"
196
+ },
197
+ "id": {
198
+ "type": "string"
199
+ },
200
+ "delinquent": {
201
+ "type": "boolean"
202
+ },
203
+ "apiRateLimit": {
204
+ "type": "number"
205
+ },
206
+ "deactivated": {
207
+ "type": "number"
208
+ }
209
+ },
210
+ "required": ["projectId", "name", "id"],
211
+ "additionalProperties": false
212
+ },
213
+ "UserPermission": {
214
+ "title": "User Permission",
215
+ "properties": {
216
+ "projectId": {
217
+ "type": "string"
218
+ },
219
+ "userId": {
220
+ "type": "string"
221
+ },
222
+ "role": {
223
+ "type": "string"
224
+ },
225
+ "permissions": {
226
+ "$ref": "#/definitions/AccessPolicyDocument"
227
+ },
228
+ "created": {
229
+ "type": "number"
230
+ },
231
+ "updated": {
232
+ "type": "number"
233
+ },
234
+ "deactivated": {
235
+ "type": "number"
236
+ },
237
+ "delinquent": {
238
+ "type": "boolean"
239
+ }
240
+ },
241
+ "required": ["projectId", "userId", "role"],
242
+ "additionalProperties": false
243
+ },
244
+ "Role": {
245
+ "title": "Role",
246
+ "type": "object",
247
+ "properties": {
248
+ "projectId": {
249
+ "type": "string"
250
+ },
251
+ "name": {
252
+ "type": "string"
253
+ },
254
+ "conditions": {
255
+ "$ref": "#/definitions/Condition"
256
+ },
257
+ "permissions": {
258
+ "$ref": "#/definitions/AccessPolicyDocument"
259
+ },
260
+ "builtIn": {
261
+ "type": "boolean"
262
+ },
263
+ "created": {
264
+ "type": "number"
265
+ },
266
+ "updated": {
267
+ "type": "number"
268
+ }
269
+ },
270
+ "required": ["projectId", "name", "permissions"],
271
+ "additionalProperties": false
272
+ },
273
+ "RoleInput": {
274
+ "title": "Role Input",
275
+ "description": "Input type for role creation and updates.",
276
+ "type": "object",
277
+ "properties": {
278
+ "projectId": {
279
+ "type": "string"
280
+ },
281
+ "name": {
282
+ "type": "string"
283
+ },
284
+ "conditions": {
285
+ "$ref": "#/definitions/Condition"
286
+ },
287
+ "permissions": {
288
+ "$ref": "#/definitions/AccessPolicyDocument"
289
+ },
290
+ "builtIn": {
291
+ "type": "boolean"
292
+ },
293
+ "created": {
294
+ "type": "number"
295
+ },
296
+ "updated": {
297
+ "type": "number"
298
+ }
299
+ },
300
+ "required": ["name", "permissions"],
301
+ "additionalProperties": false
302
+ },
303
+ "RoleImport": {
304
+ "title": "Role Import",
305
+ "description": "A role import document is an array of role",
306
+ "type": "array",
307
+ "items": {
308
+ "$ref": "#/definitions/RoleInput"
309
+ },
310
+ "additionalProperties": false
311
+ }
312
+ }
313
+ }
@@ -0,0 +1,209 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://schema.takeshape.io/project-schema/meta-schema-v1.0.0#",
4
+ "title": "Content Schema",
5
+ "definitions": {
6
+ "schemaArray": {
7
+ "type": "array",
8
+ "minItems": 1,
9
+ "items": { "$ref": "#" }
10
+ },
11
+ "nonNegativeInteger": {
12
+ "type": "integer",
13
+ "minimum": 0
14
+ },
15
+ "nonNegativeIntegerDefault0": {
16
+ "allOf": [
17
+ { "$ref": "#/definitions/nonNegativeInteger" },
18
+ { "default": 0 }
19
+ ]
20
+ },
21
+ "simpleTypes": {
22
+ "enum": [
23
+ "array",
24
+ "boolean",
25
+ "integer",
26
+ "null",
27
+ "number",
28
+ "object",
29
+ "string"
30
+ ]
31
+ },
32
+ "stringArray": {
33
+ "type": "array",
34
+ "items": { "type": "string" },
35
+ "uniqueItems": true,
36
+ "default": []
37
+ },
38
+ "relationship": {
39
+ "title": "Relationship",
40
+ "type": "object",
41
+ "properties": {
42
+ "contentTypeIds": {
43
+ "type": "array",
44
+ "items": {
45
+ "type": "string"
46
+ },
47
+ "minItems": 1
48
+ },
49
+ "type": {
50
+ "type": "string"
51
+ },
52
+ "relatedName": {
53
+ "type": "string",
54
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$"
55
+ }
56
+ },
57
+ "required": ["contentTypeIds"],
58
+ "additionalProperties": false
59
+ }
60
+ },
61
+ "type": "object",
62
+ "properties": {
63
+ "$id": {
64
+ "type": "string",
65
+ "format": "uri-reference"
66
+ },
67
+ "$schema": {
68
+ "type": "string",
69
+ "format": "uri"
70
+ },
71
+ "$ref": {
72
+ "type": "string",
73
+ "format": "uri-reference"
74
+ },
75
+ "$comment": {
76
+ "type": "string"
77
+ },
78
+ "title": {
79
+ "type": "string"
80
+ },
81
+ "description": {
82
+ "type": "string"
83
+ },
84
+ "default": true,
85
+ "readOnly": {
86
+ "type": "boolean",
87
+ "default": false
88
+ },
89
+ "examples": {
90
+ "type": "array",
91
+ "items": true
92
+ },
93
+ "multipleOf": {
94
+ "type": "number",
95
+ "exclusiveMinimum": 0
96
+ },
97
+ "maximum": {
98
+ "type": "number"
99
+ },
100
+ "exclusiveMaximum": {
101
+ "type": "number"
102
+ },
103
+ "minimum": {
104
+ "type": "number"
105
+ },
106
+ "exclusiveMinimum": {
107
+ "type": "number"
108
+ },
109
+ "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
110
+ "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
111
+ "pattern": {
112
+ "type": "string",
113
+ "format": "regex"
114
+ },
115
+ "additionalItems": { "$ref": "#" },
116
+ "items": { "$ref": "#" },
117
+ "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
118
+ "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
119
+ "uniqueItems": {
120
+ "type": "boolean",
121
+ "default": false
122
+ },
123
+ "contains": { "$ref": "#" },
124
+ "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
125
+ "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
126
+ "required": { "$ref": "#/definitions/stringArray" },
127
+ "additionalProperties": { "$ref": "#" },
128
+ "definitions": {
129
+ "type": "object",
130
+ "additionalProperties": { "$ref": "#" },
131
+ "default": {}
132
+ },
133
+ "properties": {
134
+ "type": "object",
135
+ "additionalProperties": { "$ref": "#" },
136
+ "default": {}
137
+ },
138
+ "patternProperties": {
139
+ "type": "object",
140
+ "additionalProperties": { "$ref": "#" },
141
+ "propertyNames": { "format": "regex" },
142
+ "default": {}
143
+ },
144
+ "dependencies": {
145
+ "type": "object",
146
+ "additionalProperties": {
147
+ "anyOf": [
148
+ { "$ref": "#" },
149
+ { "$ref": "#/definitions/stringArray" }
150
+ ]
151
+ }
152
+ },
153
+ "propertyNames": { "$ref": "#" },
154
+ "const": true,
155
+ "enum": {
156
+ "type": "array",
157
+ "items": true,
158
+ "minItems": 1,
159
+ "uniqueItems": true
160
+ },
161
+ "type": {
162
+ "anyOf": [
163
+ { "$ref": "#/definitions/simpleTypes" },
164
+ {
165
+ "type": "array",
166
+ "items": { "$ref": "#/definitions/simpleTypes" },
167
+ "minItems": 1,
168
+ "uniqueItems": true
169
+ }
170
+ ]
171
+ },
172
+ "format": { "type": "string" },
173
+ "contentMediaType": { "type": "string" },
174
+ "contentEncoding": { "type": "string" },
175
+ "if": { "$ref": "#" },
176
+ "then": { "$ref": "#" },
177
+ "else": { "$ref": "#" },
178
+ "allOf": { "$ref": "#/definitions/schemaArray" },
179
+ "anyOf": { "$ref": "#/definitions/schemaArray" },
180
+ "oneOf": { "$ref": "#/definitions/schemaArray" },
181
+ "not": { "$ref": "#" },
182
+ "relationship": { "$ref": "#/definitions/relationship" },
183
+ "mutable": {
184
+ "type": "boolean"
185
+ },
186
+ "syncLocaleStructure": {
187
+ "type": "boolean"
188
+ },
189
+ "sensitive": {
190
+ "type": "boolean"
191
+ },
192
+ "draftjs": {
193
+ "type": "boolean"
194
+ },
195
+ "indexed": {
196
+ "type": "boolean"
197
+ },
198
+ "l10n": {
199
+ "type": "boolean"
200
+ },
201
+ "key": {
202
+ "type": "string",
203
+ "pattern": "^[-_a-zA-Z0-9]+$"
204
+ },
205
+ "@workflow": {
206
+ "type": "string"
207
+ }
208
+ }
209
+ }