@takeshape/schema 9.38.0 → 9.40.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 (109) hide show
  1. package/dist/content-schema-transform.d.ts +1 -1
  2. package/dist/content-schema-transform.d.ts.map +1 -1
  3. package/dist/content-schema-transform.js +1 -1
  4. package/dist/migration/index.d.ts +1 -0
  5. package/dist/migration/index.d.ts.map +1 -1
  6. package/dist/migration/index.js +4 -1
  7. package/dist/migration/to/v3.32.0.d.ts +5 -0
  8. package/dist/migration/to/v3.32.0.d.ts.map +1 -0
  9. package/dist/migration/to/v3.32.0.js +107 -0
  10. package/dist/migration/types.d.ts +1 -3
  11. package/dist/migration/types.d.ts.map +1 -1
  12. package/dist/mocks.d.ts +3 -2
  13. package/dist/mocks.d.ts.map +1 -1
  14. package/dist/mocks.js +14 -0
  15. package/dist/project-schema/index.d.ts +4 -1
  16. package/dist/project-schema/index.d.ts.map +1 -1
  17. package/dist/project-schema/index.js +20 -3
  18. package/dist/project-schema/latest.d.ts +79 -88
  19. package/dist/project-schema/latest.d.ts.map +1 -1
  20. package/dist/project-schema/migrate.d.ts.map +1 -1
  21. package/dist/project-schema/migrate.js +4 -0
  22. package/dist/project-schema/v3.31.0.d.ts +1 -1
  23. package/dist/project-schema/v3.31.0.d.ts.map +1 -1
  24. package/dist/project-schema/v3.32.0.d.ts +1440 -0
  25. package/dist/project-schema/v3.32.0.d.ts.map +1 -0
  26. package/dist/project-schema/v3.32.0.js +5 -0
  27. package/dist/refs.d.ts +20 -1
  28. package/dist/refs.d.ts.map +1 -1
  29. package/dist/refs.js +90 -17
  30. package/dist/schema-util.d.ts +12 -10
  31. package/dist/schema-util.d.ts.map +1 -1
  32. package/dist/schema-util.js +31 -23
  33. package/dist/schemas/index.d.ts +2 -2
  34. package/dist/schemas/index.d.ts.map +1 -1
  35. package/dist/schemas/index.js +6 -4
  36. package/dist/schemas/index.ts +4 -2
  37. package/dist/schemas/project-schema/latest.json +59 -67
  38. package/dist/schemas/project-schema/v3.31.0.json +1 -4
  39. package/dist/schemas/project-schema/v3.32.0.json +3081 -0
  40. package/dist/schemas/project-schema.json +3 -0
  41. package/dist/template-shapes/templates.js +1 -1
  42. package/dist/template-shapes/where.js +2 -2
  43. package/dist/types/types.d.ts +6 -4
  44. package/dist/types/types.d.ts.map +1 -1
  45. package/dist/types/utils.d.ts +4 -2
  46. package/dist/types/utils.d.ts.map +1 -1
  47. package/dist/types/utils.js +22 -1
  48. package/dist/util/api-indexing.d.ts +4 -5
  49. package/dist/util/api-indexing.d.ts.map +1 -1
  50. package/dist/util/api-indexing.js +25 -16
  51. package/dist/util/merge.js +1 -1
  52. package/dist/util/patch-schema.d.ts.map +1 -1
  53. package/dist/util/patch-schema.js +1 -1
  54. package/dist/validate.d.ts.map +1 -1
  55. package/dist/validate.js +97 -31
  56. package/es/content-schema-transform.js +1 -1
  57. package/es/migration/index.js +3 -1
  58. package/es/migration/to/v3.32.0.js +98 -0
  59. package/es/mocks.js +12 -0
  60. package/es/project-schema/index.js +3 -1
  61. package/es/project-schema/migrate.js +5 -1
  62. package/es/project-schema/v3.32.0.js +1 -0
  63. package/es/refs.js +78 -17
  64. package/es/schema-util.js +24 -17
  65. package/es/schemas/index.js +4 -3
  66. package/es/schemas/index.ts +4 -2
  67. package/es/schemas/project-schema/latest.json +59 -67
  68. package/es/schemas/project-schema/v3.31.0.json +1 -4
  69. package/es/schemas/project-schema/v3.32.0.json +3081 -0
  70. package/es/schemas/project-schema.json +3 -0
  71. package/es/template-shapes/templates.js +2 -2
  72. package/es/template-shapes/where.js +3 -3
  73. package/es/types/utils.js +15 -0
  74. package/es/util/api-indexing.js +23 -16
  75. package/es/util/merge.js +1 -1
  76. package/es/util/patch-schema.js +1 -1
  77. package/es/validate.js +96 -31
  78. package/examples/latest/betzino.json +1 -1
  79. package/examples/latest/blog-schema.json +1 -1
  80. package/examples/latest/brewery-schema.json +1 -1
  81. package/examples/latest/complex-project-schema.json +1 -1
  82. package/examples/latest/complex-schema.json +1 -1
  83. package/examples/latest/fabric-ecommerce.json +1 -1
  84. package/examples/latest/frank-and-fred-schema.json +1 -1
  85. package/examples/latest/klirr-schema.json +1 -1
  86. package/examples/latest/massive-schema.json +1 -1
  87. package/examples/latest/mill-components-schema.json +1 -1
  88. package/examples/latest/one-earth.json +1 -1
  89. package/examples/latest/pet-oneof-array.json +1 -1
  90. package/examples/latest/post-schema.json +1 -1
  91. package/examples/latest/pruned-shopify-product-schema.json +1 -1
  92. package/examples/latest/real-world-schema.json +1 -1
  93. package/examples/latest/recursive-repeater-schema.json +1 -1
  94. package/examples/latest/recursive-schema.json +1 -1
  95. package/examples/latest/rick-and-morty-ast.json +1 -1
  96. package/examples/latest/rick-and-morty-graphql.json +1 -1
  97. package/examples/latest/rick-and-morty-rest.json +1 -1
  98. package/examples/latest/schema-with-repeater-draftjs.json +1 -1
  99. package/examples/latest/shape-books-v3_2_0.json +1 -1
  100. package/examples/latest/shape-books.json +1 -1
  101. package/examples/latest/shopify-lookbook.json +1 -1
  102. package/examples/latest/shopify-product-2022-07.json +1 -1
  103. package/examples/latest/shopify-product-2023-04.json +1 -1
  104. package/examples/latest/shopify-store-with-widget.json +1 -1
  105. package/examples/latest/stripe-product-runtime-schema.json +22 -23
  106. package/examples/latest/stripe-starter-resolved.json +1 -1
  107. package/examples/latest/user-schema-no-required.json +1 -1
  108. package/examples/latest/user-schema-with-defaults.json +1 -1
  109. package/package.json +5 -5
@@ -123,6 +123,9 @@
123
123
  {
124
124
  "$ref": "https://schema.takeshape.io/project-schema/v3.31.0#"
125
125
  },
126
+ {
127
+ "$ref": "https://schema.takeshape.io/project-schema/v3.32.0#"
128
+ },
126
129
  {
127
130
  "$ref": "https://schema.takeshape.io/project-schema/v4.0.0#"
128
131
  }
@@ -2,7 +2,7 @@ import { TemplateVerbs } from './types';
2
2
  import { listTypePrefix } from '../migration';
3
3
  import { deepClone, pascalCase, visit } from '@takeshape/util';
4
4
  import keyBy from 'lodash/keyBy';
5
- import { createShape, getShapeDependencies, isIndexedRemoteShape } from '../schema-util';
5
+ import { createShape, getShapeDependencies, isCachedShape } from '../schema-util';
6
6
  import { getFlattenedTemplateShapeName, getRef, getRefShapeName, refItemToAtRef, refItemToShapeName } from '../refs';
7
7
  import { getWhereSearchArg } from './where';
8
8
  import { mergeObjectSchemas, mergeSchemaProperties } from '../util';
@@ -389,7 +389,7 @@ export function getShapeListQueryArgs(templateName, legacyArgs) {
389
389
  } = context;
390
390
  const isAllShapes = shape.name === 'TSSearchable';
391
391
  const shapeName = isAllShapes ? templateName : getFlattenedTemplateShapeName(shape.name, templateName);
392
- const shapes = isAllShapes ? Object.values(projectSchema.shapes).filter(s => s.model !== undefined || isIndexedRemoteShape(projectSchema, s)) : [shape];
392
+ const shapes = isAllShapes ? Object.values(projectSchema.shapes).filter(s => s.model !== undefined || isCachedShape(s)) : [shape];
393
393
  const {
394
394
  schema,
395
395
  dependencies
@@ -1,6 +1,6 @@
1
1
  import unset from 'lodash/unset';
2
2
  import isFunction from 'lodash/isFunction';
3
- import { createSchemaPropertyList, createShape, getAllRefsInShapes, isIndexedRemoteShape } from '../schema-util';
3
+ import { createSchemaPropertyList, createShape, getAllRefsInShapes, isCachedShape } from '../schema-util';
4
4
  import uniqBy from 'lodash/uniqBy';
5
5
  import md5 from 'blueimp-md5';
6
6
  import { pascalCase, isDefined } from '@takeshape/util';
@@ -292,7 +292,7 @@ export function getFields(typeName, shapes, context) {
292
292
  name,
293
293
  prop,
294
294
  workflowsEnabled: workflowsEnabled(projectSchema.apiVersion),
295
- isIndexedShape: isIndexedRemoteShape(projectSchema, shape),
295
+ isIndexedShape: isCachedShape(shape),
296
296
  exceededRelationshipDepth: exceededRelationshipDepth(relationshipDepth)
297
297
  })).getNodes();
298
298
 
@@ -332,7 +332,7 @@ export function getPropertyComparisonType(name, prop, shapeName, context) {
332
332
  name,
333
333
  prop,
334
334
  workflowsEnabled: workflowsEnabled(projectSchema.apiVersion),
335
- isIndexedShape: isIndexedRemoteShape(projectSchema, projectSchema.shapes[shapeName]),
335
+ isIndexedShape: isCachedShape(projectSchema.shapes[shapeName]),
336
336
  exceededRelationshipDepth: exceededRelationshipDepth(relationshipDepth)
337
337
  })) {
338
338
  return undefined;
package/es/types/utils.js CHANGED
@@ -8,6 +8,7 @@ import has from 'lodash/has';
8
8
  import { latestSchemaJson } from '../schemas';
9
9
  import satisfies from 'semver/functions/satisfies';
10
10
  import isUndefined from 'lodash/isUndefined';
11
+ import { isCachedShape } from '../schema-util';
11
12
  /** Resolver Type Utils **/
12
13
 
13
14
  /**
@@ -279,4 +280,18 @@ export function isPropertySchemaWithRelationship(schema) {
279
280
  var _schema$Resolver;
280
281
 
281
282
  return ((_schema$Resolver = schema['@resolver']) === null || _schema$Resolver === void 0 ? void 0 : _schema$Resolver.name) === 'shapedb:getRelated';
283
+ }
284
+ export function listCachedShapes(shapes) {
285
+ return Object.values(shapes).filter(isCachedShape);
286
+ }
287
+ export function getCachedShapeMap(shapes) {
288
+ const results = {};
289
+
290
+ for (const shape of Object.values(shapes)) {
291
+ if (isCachedShape(shape)) {
292
+ results[shape.name] = shape;
293
+ }
294
+ }
295
+
296
+ return results;
282
297
  }
@@ -1,17 +1,22 @@
1
1
  import { isServiceResolver } from '../types';
2
2
  import { ensureArray } from '@takeshape/util';
3
3
  import { getResolverServices } from '../services';
4
+ import { isCachedShape } from '../schema-util';
5
+ import { getQuery } from '../refs';
4
6
  export function serviceHasIndexedShapes(schema, serviceId) {
5
- for (const config of Object.values(schema.indexedShapes ?? {})) {
6
- const listConfigs = config.queries.list;
7
+ for (const shape of Object.values(schema.shapes ?? {})) {
8
+ var _shape$loaders;
7
9
 
8
- if (listConfigs) {
10
+ const indexingEnabled = isCachedShape(shape);
11
+ const listConfigs = (_shape$loaders = shape.loaders) === null || _shape$loaders === void 0 ? void 0 : _shape$loaders.list;
12
+
13
+ if (indexingEnabled && listConfigs) {
9
14
  for (const {
10
- name: queryName
15
+ query: queryRef
11
16
  } of ensureArray(listConfigs)) {
12
- const query = queryName && schema.queries[queryName];
17
+ const resolved = getQuery(schema, queryRef);
13
18
 
14
- if (query && isServiceResolver(query.resolver) && query.resolver.service === serviceId) {
19
+ if (resolved && isServiceResolver(resolved.query.resolver) && resolved.query.resolver.service === serviceId) {
15
20
  return true;
16
21
  }
17
22
  }
@@ -22,9 +27,8 @@ export function serviceHasIndexedShapes(schema, serviceId) {
22
27
  }
23
28
  export function getIndexedServices(projectSchema, configs) {
24
29
  return ensureArray(configs).reduce((services, queryConfig) => {
25
- const queryName = queryConfig === null || queryConfig === void 0 ? void 0 : queryConfig.name;
26
- const query = queryName && projectSchema.queries[queryName];
27
- return query ? [...services, ...getResolverServices(query.resolver)] : services;
30
+ const resolved = queryConfig !== null && queryConfig !== void 0 && queryConfig.query ? getQuery(projectSchema, queryConfig.query) : undefined;
31
+ return resolved !== null && resolved !== void 0 && resolved.query ? [...services, ...getResolverServices(resolved.query.resolver)] : services;
28
32
  }, []);
29
33
  }
30
34
 
@@ -38,27 +42,30 @@ function flattenListQueryConfigs(base, queryConfig, maybeConfigArray) {
38
42
 
39
43
  function getQueryIndexConfigHelper(op) {
40
44
  return ({
41
- indexedShapes
45
+ shapes
42
46
  }, shapeName) => {
43
- const indexingConfig = indexedShapes === null || indexedShapes === void 0 ? void 0 : indexedShapes[shapeName];
47
+ const {
48
+ cache,
49
+ loaders
50
+ } = shapes[shapeName] ?? {};
44
51
 
45
- if (indexingConfig) {
46
- const idField = indexingConfig.idField ?? 'id';
52
+ if (cache && loaders) {
53
+ const idField = cache.idField ?? 'id';
47
54
 
48
55
  if (op === 'list') {
49
56
  return flattenListQueryConfigs({
50
57
  shapeName,
51
58
  idField
52
- }, indexingConfig.query, indexingConfig.queries.list);
59
+ }, cache.fragment, loaders.list);
53
60
  }
54
61
 
55
- const queryConfig = indexingConfig.queries.get;
62
+ const queryConfig = loaders.get;
56
63
 
57
64
  if (queryConfig) {
58
65
  return {
59
66
  idField,
60
67
  shapeName,
61
- ...indexingConfig.query,
68
+ ...cache.fragment,
62
69
  ...queryConfig
63
70
  };
64
71
  }
package/es/util/merge.js CHANGED
@@ -104,7 +104,7 @@ export function mergeFormConfigs(...configs) {
104
104
  order: []
105
105
  });
106
106
  }
107
- const mergeableSections = ['shapes', 'mutations', 'queries', 'forms', 'services', 'indexedShapes'];
107
+ const mergeableSections = ['shapes', 'mutations', 'queries', 'forms', 'services'];
108
108
 
109
109
  const isMergeableSection = str => {
110
110
  return mergeableSections.includes(str);
@@ -1,6 +1,6 @@
1
1
  import forIn from 'lodash/forIn';
2
2
  import omit from 'lodash/omit';
3
- const schemaUpdateMergedKeys = ['queries', 'mutations', 'shapes', 'workflows', 'forms', 'services', 'indexedShapes'];
3
+ const schemaUpdateMergedKeys = ['queries', 'mutations', 'shapes', 'workflows', 'forms', 'services'];
4
4
  export function shallowMerge(original, update) {
5
5
  const result = { ...original
6
6
  };
package/es/validate.js CHANGED
@@ -29,6 +29,7 @@ import last from 'lodash/last';
29
29
  import { getRelationship } from './relationships';
30
30
  import get from 'lodash/get';
31
31
  import gte from 'semver/functions/gte';
32
+ import lte from 'semver/functions/lte';
32
33
  import size from 'lodash/size';
33
34
  import isEqual from 'lodash/isEqual';
34
35
  import pick from 'lodash/pick';
@@ -208,10 +209,24 @@ function validateResolver(projectSchema, basePath, baseResolver) {
208
209
  };
209
210
 
210
211
  const isValidShapeName = shapeName => {
211
- var _indexedShapes;
212
+ var _indexedShapes, _modernShape$cache;
212
213
 
213
- const modelShape = shapeName ? projectSchema.shapes[shapeName] : undefined;
214
- return Boolean((modelShape === null || modelShape === void 0 ? void 0 : modelShape.model) || shapeName && ((_indexedShapes = projectSchema.indexedShapes) === null || _indexedShapes === void 0 ? void 0 : _indexedShapes[shapeName]));
214
+ if (!shapeName) {
215
+ return false;
216
+ }
217
+
218
+ const shape = projectSchema.shapes[shapeName];
219
+
220
+ if (shape !== null && shape !== void 0 && shape.model) {
221
+ return true;
222
+ }
223
+
224
+ if ((_indexedShapes = projectSchema.indexedShapes) !== null && _indexedShapes !== void 0 && _indexedShapes[shapeName]) {
225
+ return true;
226
+ }
227
+
228
+ const modernShape = shape;
229
+ return Boolean((modernShape === null || modernShape === void 0 ? void 0 : (_modernShape$cache = modernShape.cache) === null || _modernShape$cache === void 0 ? void 0 : _modernShape$cache.enabled) && modernShape.loaders);
215
230
  };
216
231
 
217
232
  const delegateResolverMissingConfig = (parsed, resolver) => {
@@ -443,6 +458,49 @@ function validateIndexedShapeConfig(projectSchema, shapeName, config) {
443
458
  return errors;
444
459
  }
445
460
 
461
+ function validateShapeLoaders(projectSchema, shape) {
462
+ const errors = [];
463
+
464
+ if ('loaders' in shape) {
465
+ var _loaders, _loaders2;
466
+
467
+ const getNamespace = createGetNamespace(projectSchema);
468
+ const listLoader = (_loaders = shape.loaders) === null || _loaders === void 0 ? void 0 : _loaders.list;
469
+
470
+ if (listLoader) {
471
+ ensureArray(listLoader).forEach((config, i) => {
472
+ const ref = parsePropertyRef(config.query);
473
+ const query = ref && get(projectSchema, propertyRefItemToPath(getNamespace, ref));
474
+
475
+ if (!query) {
476
+ errors.push({
477
+ path: Array.isArray(listLoader) ? ['shapes', shape.name, 'loaders', 'list', i, 'query'] : ['shapes', shape.name, 'loaders', 'list', 'query'],
478
+ type: 'notFound',
479
+ message: `Invalid query "${config.query}"`
480
+ });
481
+ }
482
+ });
483
+ }
484
+
485
+ const getLoader = (_loaders2 = shape.loaders) === null || _loaders2 === void 0 ? void 0 : _loaders2.get;
486
+
487
+ if (getLoader) {
488
+ const ref = parsePropertyRef(getLoader.query);
489
+ const query = ref && get(projectSchema, propertyRefItemToPath(getNamespace, ref));
490
+
491
+ if (!query) {
492
+ errors.push({
493
+ path: ['shapes', shape.name, 'loaders', 'get', 'query'],
494
+ type: 'notFound',
495
+ message: `Invalid query "${getLoader.query}"`
496
+ });
497
+ }
498
+ }
499
+ }
500
+
501
+ return errors;
502
+ }
503
+
446
504
  function visitProperties(projectSchema, callback) {
447
505
  JSONPath('$..properties.*', projectSchema, (property, _type, {
448
506
  path: propertyPath
@@ -452,50 +510,57 @@ function visitProperties(projectSchema, callback) {
452
510
  }
453
511
 
454
512
  function validateIndexedShapes(projectSchema) {
455
- let errors = [];
513
+ const errors = [];
514
+ const version = getSemver(projectSchema.schemaVersion);
456
515
 
457
- if (gt(getSemver(projectSchema.schemaVersion), '3.12.0')) {
516
+ if (gt(version, '3.12.0') && lte(version, '3.31.0')) {
458
517
  const {
459
518
  indexedShapes
460
519
  } = projectSchema;
461
520
 
462
521
  if (indexedShapes) {
463
522
  forOwn(indexedShapes, (config, shapeName) => {
464
- errors = errors.concat(validateIndexedShapeConfig(projectSchema, shapeName, config));
523
+ errors.push(...validateIndexedShapeConfig(projectSchema, shapeName, config));
465
524
  });
466
525
  }
467
- }
468
-
469
- if (gt(getSemver(projectSchema.schemaVersion), '3.26.0')) {
526
+ } else if (gt(version, '3.31.0')) {
470
527
  const {
471
- indexedShapes
528
+ shapes
472
529
  } = projectSchema;
473
530
 
474
- if (indexedShapes) {
475
- let nestedCount = 0;
476
- visitProperties(projectSchema, (property, propertyPath) => {
477
- const indexed = property['@indexed'];
531
+ for (const shape of Object.values(shapes)) {
532
+ const newErrors = validateShapeLoaders(projectSchema, shape);
478
533
 
479
- if (isRecord(indexed) && indexed.nested) {
480
- nestedCount += 1;
534
+ if (newErrors.length) {
535
+ errors.push(...newErrors);
536
+ }
537
+ }
538
+ }
481
539
 
482
- if (property.type !== 'array') {
483
- errors.push({
484
- path: propertyPath,
485
- type: 'location',
486
- message: 'Nested indexes may only appear next to fields of type: "array"'
487
- });
488
- }
489
- }
490
- });
540
+ if (gt(version, '3.26.0')) {
541
+ let nestedCount = 0;
542
+ visitProperties(projectSchema, (property, propertyPath) => {
543
+ const indexed = property['@indexed'];
491
544
 
492
- if (nestedCount > 50) {
493
- errors.push({
494
- path: ['shapes'],
495
- type: 'tooMany',
496
- message: `${nestedCount} nested indexes found`
497
- });
545
+ if (isRecord(indexed) && indexed.nested) {
546
+ nestedCount += 1;
547
+
548
+ if (property.type !== 'array') {
549
+ errors.push({
550
+ path: propertyPath,
551
+ type: 'location',
552
+ message: 'Nested indexes may only appear next to fields of type: "array"'
553
+ });
554
+ }
498
555
  }
556
+ });
557
+
558
+ if (nestedCount > 50) {
559
+ errors.push({
560
+ path: ['shapes'],
561
+ type: 'tooMany',
562
+ message: `${nestedCount} nested indexes found`
563
+ });
499
564
  }
500
565
  }
501
566
 
@@ -52525,6 +52525,6 @@
52525
52525
  }
52526
52526
  }
52527
52527
  },
52528
- "schemaVersion": "3.31.0",
52528
+ "schemaVersion": "3.32.0",
52529
52529
  "services": {}
52530
52530
  }
@@ -399,6 +399,6 @@
399
399
  }
400
400
  }
401
401
  },
402
- "schemaVersion": "3.31.0",
402
+ "schemaVersion": "3.32.0",
403
403
  "services": {}
404
404
  }
@@ -382,6 +382,6 @@
382
382
  }
383
383
  }
384
384
  },
385
- "schemaVersion": "3.31.0",
385
+ "schemaVersion": "3.32.0",
386
386
  "services": {}
387
387
  }
@@ -4185,6 +4185,6 @@
4185
4185
  }
4186
4186
  }
4187
4187
  },
4188
- "schemaVersion": "3.31.0",
4188
+ "schemaVersion": "3.32.0",
4189
4189
  "services": {}
4190
4190
  }
@@ -15,7 +15,7 @@
15
15
  "apiVersion": "1",
16
16
  "queries": {},
17
17
  "mutations": {},
18
- "schemaVersion": "3.31.0",
18
+ "schemaVersion": "3.32.0",
19
19
  "shapes": {
20
20
  "DocumentUploadForm": {
21
21
  "id": "HJPFlRKkr",
@@ -10505,5 +10505,5 @@
10505
10505
  }
10506
10506
  }
10507
10507
  },
10508
- "schemaVersion": "3.31.0"
10508
+ "schemaVersion": "3.32.0"
10509
10509
  }
@@ -23251,6 +23251,6 @@
23251
23251
  }
23252
23252
  }
23253
23253
  },
23254
- "schemaVersion": "3.31.0",
23254
+ "schemaVersion": "3.32.0",
23255
23255
  "services": {}
23256
23256
  }
@@ -34786,6 +34786,6 @@
34786
34786
  }
34787
34787
  }
34788
34788
  },
34789
- "schemaVersion": "3.31.0",
34789
+ "schemaVersion": "3.32.0",
34790
34790
  "services": {}
34791
34791
  }
@@ -7837,6 +7837,6 @@
7837
7837
  }
7838
7838
  }
7839
7839
  },
7840
- "schemaVersion": "3.31.0",
7840
+ "schemaVersion": "3.32.0",
7841
7841
  "services": {}
7842
7842
  }
@@ -1884,6 +1884,6 @@
1884
1884
  }
1885
1885
  }
1886
1886
  },
1887
- "schemaVersion": "3.31.0",
1887
+ "schemaVersion": "3.32.0",
1888
1888
  "services": {}
1889
1889
  }
@@ -14216,6 +14216,6 @@
14216
14216
  }
14217
14217
  }
14218
14218
  },
14219
- "schemaVersion": "3.31.0",
14219
+ "schemaVersion": "3.32.0",
14220
14220
  "services": {}
14221
14221
  }
@@ -388,6 +388,6 @@
388
388
  }
389
389
  }
390
390
  },
391
- "schemaVersion": "3.31.0",
391
+ "schemaVersion": "3.32.0",
392
392
  "services": {}
393
393
  }
@@ -226,6 +226,6 @@
226
226
  }
227
227
  }
228
228
  },
229
- "schemaVersion": "3.31.0",
229
+ "schemaVersion": "3.32.0",
230
230
  "services": {}
231
231
  }
@@ -9756,5 +9756,5 @@
9756
9756
  }
9757
9757
  }
9758
9758
  },
9759
- "schemaVersion": "3.31.0"
9759
+ "schemaVersion": "3.32.0"
9760
9760
  }
@@ -1041,6 +1041,6 @@
1041
1041
  }
1042
1042
  }
1043
1043
  },
1044
- "schemaVersion": "3.31.0",
1044
+ "schemaVersion": "3.32.0",
1045
1045
  "services": {}
1046
1046
  }
@@ -142,6 +142,6 @@
142
142
  }
143
143
  }
144
144
  },
145
- "schemaVersion": "3.31.0",
145
+ "schemaVersion": "3.32.0",
146
146
  "services": {}
147
147
  }
@@ -149,6 +149,6 @@
149
149
  }
150
150
  }
151
151
  },
152
- "schemaVersion": "3.31.0",
152
+ "schemaVersion": "3.32.0",
153
153
  "services": {}
154
154
  }
@@ -2820,5 +2820,5 @@
2820
2820
  }
2821
2821
  }
2822
2822
  },
2823
- "schemaVersion": "3.31.0"
2823
+ "schemaVersion": "3.32.0"
2824
2824
  }
@@ -2292,5 +2292,5 @@
2292
2292
  }
2293
2293
  }
2294
2294
  },
2295
- "schemaVersion": "3.31.0"
2295
+ "schemaVersion": "3.32.0"
2296
2296
  }
@@ -91,5 +91,5 @@
91
91
  }
92
92
  }
93
93
  },
94
- "schemaVersion": "3.31.0"
94
+ "schemaVersion": "3.32.0"
95
95
  }
@@ -397,6 +397,6 @@
397
397
  }
398
398
  }
399
399
  },
400
- "schemaVersion": "3.31.0",
400
+ "schemaVersion": "3.32.0",
401
401
  "services": {}
402
402
  }
@@ -1124,6 +1124,6 @@
1124
1124
  }
1125
1125
  }
1126
1126
  },
1127
- "schemaVersion": "3.31.0",
1127
+ "schemaVersion": "3.32.0",
1128
1128
  "services": {}
1129
1129
  }
@@ -1124,6 +1124,6 @@
1124
1124
  }
1125
1125
  }
1126
1126
  },
1127
- "schemaVersion": "3.31.0",
1127
+ "schemaVersion": "3.32.0",
1128
1128
  "services": {}
1129
1129
  }
@@ -1177,5 +1177,5 @@
1177
1177
  }
1178
1178
  }
1179
1179
  },
1180
- "schemaVersion": "3.31.0"
1180
+ "schemaVersion": "3.32.0"
1181
1181
  }
@@ -5,7 +5,7 @@
5
5
  "en-us"
6
6
  ],
7
7
  "apiVersion": "2",
8
- "schemaVersion": "3.31.0",
8
+ "schemaVersion": "3.32.0",
9
9
  "queries": {
10
10
  "getAsset": {
11
11
  "shape": "Asset",
@@ -49336,7 +49336,7 @@
49336
49336
  }
49337
49337
  }
49338
49338
  },
49339
- "schemaVersion": "3.31.0",
49339
+ "schemaVersion": "3.32.0",
49340
49340
  "apiVersion": "2",
49341
49341
  "services": {
49342
49342
  "shopify": {
@@ -12560,5 +12560,5 @@
12560
12560
  }
12561
12561
  }
12562
12562
  },
12563
- "schemaVersion": "3.31.0"
12563
+ "schemaVersion": "3.32.0"
12564
12564
  }
@@ -5,7 +5,7 @@
5
5
  "en-us"
6
6
  ],
7
7
  "apiVersion": "2",
8
- "schemaVersion": "3.31.0",
8
+ "schemaVersion": "3.32.0",
9
9
  "queries": {
10
10
  "getAsset": {
11
11
  "shape": "Asset",
@@ -948,6 +948,27 @@
948
948
  "type": "string"
949
949
  }
950
950
  }
951
+ },
952
+ "loaders": {
953
+ "list": {
954
+ "query": "Stripe_listProducts"
955
+ },
956
+ "get": {
957
+ "query": "Stripe_getProduct"
958
+ }
959
+ },
960
+ "cache": {
961
+ "enabled": true,
962
+ "fragment": {
963
+ "maxDepth": 1
964
+ },
965
+ "triggers": [
966
+ {
967
+ "type": "schedule",
968
+ "interval": 1440,
969
+ "loader": "list"
970
+ }
971
+ ]
951
972
  }
952
973
  },
953
974
  "WrappedString": {
@@ -4394,27 +4415,5 @@
4394
4415
  "useRestfulNames": true
4395
4416
  }
4396
4417
  }
4397
- },
4398
- "indexedShapes": {
4399
- "Stripe_Product": {
4400
- "queries": {
4401
- "list": {
4402
- "name": "Stripe_listProducts"
4403
- },
4404
- "get": {
4405
- "name": "Stripe_getProduct"
4406
- }
4407
- },
4408
- "triggers": [
4409
- {
4410
- "type": "schedule",
4411
- "query": "list",
4412
- "interval": 1440
4413
- }
4414
- ],
4415
- "query": {
4416
- "maxDepth": 1
4417
- }
4418
- }
4419
4418
  }
4420
4419
  }