@takeshape/schema 11.143.2 → 11.154.1
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/examples/latest/all-fields-shapes-inline.json +1 -1
- package/examples/latest/all-fields-shapes.json +1 -1
- package/examples/latest/betzino.json +1 -1
- package/examples/latest/blog-schema.json +1 -1
- package/examples/latest/brewery-schema.json +1 -1
- package/examples/latest/chat-agent-schema.json +1 -1
- package/examples/latest/clear-cache-schema.json +1 -1
- package/examples/latest/complex-project-schema.json +1 -1
- package/examples/latest/complex-schema.json +1 -1
- package/examples/latest/edit-schema.json +1 -1
- package/examples/latest/frank-and-fred-schema.json +1 -1
- package/examples/latest/generate-agent-schema.json +1 -1
- package/examples/latest/klirr-schema.json +1 -1
- package/examples/latest/layers/rick-and-morty-layer.json +1 -1
- package/examples/latest/layers/shopify-layer-2023-01.json +1 -1
- package/examples/latest/layers/shopify-storefront-2023-04.json +1 -1
- package/examples/latest/layers/wordpress-2024-01.json +1 -1
- package/examples/latest/massive-schema.json +1 -1
- package/examples/latest/mill-components-schema.json +1 -1
- package/examples/latest/nested-shape-arrays.json +1 -1
- package/examples/latest/one-earth.json +1 -1
- package/examples/latest/pet-oneof-array.json +1 -1
- package/examples/latest/post-schema.json +1 -1
- package/examples/latest/pruned-shopify-product-schema.json +1 -1
- package/examples/latest/rag-example.json +1 -1
- package/examples/latest/real-world-schema.json +1 -1
- package/examples/latest/recursive-repeater-schema.json +1 -1
- package/examples/latest/recursive-schema.json +1 -1
- package/examples/latest/rick-and-morty-ast.json +1 -1
- package/examples/latest/rick-and-morty-graphql.json +1 -1
- package/examples/latest/rick-and-morty-rest.json +1 -1
- package/examples/latest/rick-and-morty-user-schema.json +1 -1
- package/examples/latest/rick-and-morty-with-indexing.json +1 -1
- package/examples/latest/schema-where-filter.json +1 -1
- package/examples/latest/schema-with-repeater-draftjs.json +1 -1
- package/examples/latest/schema-with-rick-and-morty.json +1 -1
- package/examples/latest/shape-books-v3_2_0.json +1 -1
- package/examples/latest/shape-books.json +1 -1
- package/examples/latest/shape-editor-schema-edited.json +1 -1
- package/examples/latest/shape-editor-schema-initial.json +1 -1
- package/examples/latest/shapedb-crud-every-prop-type.json +1 -1
- package/examples/latest/shopify-lookbook.json +1 -1
- package/examples/latest/shopify-product-2022-07.json +1 -1
- package/examples/latest/shopify-product-2023-04.json +1 -1
- package/examples/latest/shopify-store-with-widget.json +1 -1
- package/examples/latest/stripe-product-runtime-schema.json +1 -1
- package/examples/latest/stripe-starter-resolved.json +1 -1
- package/examples/latest/user-schema-no-required.json +1 -1
- package/examples/latest/user-schema-with-defaults.json +1 -1
- package/examples/latest/valvoline-ai-demo.json +1461 -1421
- package/examples/latest/vector-search-schema.json +1 -1
- package/package.json +10 -9
- package/dist/agents.d.ts +0 -62
- package/dist/agents.js +0 -338
- package/dist/api-version.d.ts +0 -5
- package/dist/api-version.js +0 -17
- package/dist/auth-schemas.d.ts +0 -128
- package/dist/auth-schemas.js +0 -7
- package/dist/auth-utils.d.ts +0 -5
- package/dist/auth-utils.js +0 -6
- package/dist/builtin-schema.d.ts +0 -18
- package/dist/builtin-schema.js +0 -683
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +0 -1
- package/dist/content-schema-transform.d.ts +0 -35
- package/dist/content-schema-transform.js +0 -162
- package/dist/create-input-schema.d.ts +0 -9
- package/dist/create-input-schema.js +0 -68
- package/dist/enum.d.ts +0 -2
- package/dist/enum.js +0 -9
- package/dist/flatten-templates.d.ts +0 -2
- package/dist/flatten-templates.js +0 -20
- package/dist/get-is-leaf.d.ts +0 -3
- package/dist/get-is-leaf.js +0 -56
- package/dist/index.d.ts +0 -62
- package/dist/index.js +0 -59
- package/dist/interfaces.d.ts +0 -14
- package/dist/interfaces.js +0 -86
- package/dist/layers/layers.d.ts +0 -26
- package/dist/layers/layers.js +0 -301
- package/dist/layers/refs.d.ts +0 -102
- package/dist/layers/refs.js +0 -220
- package/dist/layers/type-utils.d.ts +0 -59
- package/dist/layers/type-utils.js +0 -118
- package/dist/layers/visitor.d.ts +0 -5
- package/dist/layers/visitor.js +0 -38
- package/dist/migration/index.d.ts +0 -73
- package/dist/migration/index.js +0 -103
- package/dist/migration/to/v3.0.0.d.ts +0 -4
- package/dist/migration/to/v3.0.0.js +0 -212
- package/dist/migration/to/v3.1.0.d.ts +0 -4
- package/dist/migration/to/v3.1.0.js +0 -194
- package/dist/migration/to/v3.10.0.d.ts +0 -4
- package/dist/migration/to/v3.10.0.js +0 -67
- package/dist/migration/to/v3.11.0.d.ts +0 -4
- package/dist/migration/to/v3.11.0.js +0 -85
- package/dist/migration/to/v3.12.3.d.ts +0 -4
- package/dist/migration/to/v3.12.3.js +0 -87
- package/dist/migration/to/v3.13.0.d.ts +0 -4
- package/dist/migration/to/v3.13.0.js +0 -17
- package/dist/migration/to/v3.17.0.d.ts +0 -4
- package/dist/migration/to/v3.17.0.js +0 -22
- package/dist/migration/to/v3.18.0.d.ts +0 -4
- package/dist/migration/to/v3.18.0.js +0 -64
- package/dist/migration/to/v3.18.1.d.ts +0 -4
- package/dist/migration/to/v3.18.1.js +0 -12
- package/dist/migration/to/v3.18.2.d.ts +0 -4
- package/dist/migration/to/v3.18.2.js +0 -19
- package/dist/migration/to/v3.20.0.d.ts +0 -4
- package/dist/migration/to/v3.20.0.js +0 -24
- package/dist/migration/to/v3.22.0.d.ts +0 -4
- package/dist/migration/to/v3.22.0.js +0 -25
- package/dist/migration/to/v3.24.0.d.ts +0 -4
- package/dist/migration/to/v3.24.0.js +0 -11
- package/dist/migration/to/v3.25.0.d.ts +0 -4
- package/dist/migration/to/v3.25.0.js +0 -11
- package/dist/migration/to/v3.3.0.d.ts +0 -4
- package/dist/migration/to/v3.3.0.js +0 -13
- package/dist/migration/to/v3.31.0.d.ts +0 -4
- package/dist/migration/to/v3.31.0.js +0 -38
- package/dist/migration/to/v3.32.0.d.ts +0 -4
- package/dist/migration/to/v3.32.0.js +0 -59
- package/dist/migration/to/v3.34.0.d.ts +0 -6
- package/dist/migration/to/v3.34.0.js +0 -111
- package/dist/migration/to/v3.36.0.d.ts +0 -4
- package/dist/migration/to/v3.36.0.js +0 -22
- package/dist/migration/to/v3.39.0.d.ts +0 -4
- package/dist/migration/to/v3.39.0.js +0 -45
- package/dist/migration/to/v3.40.0.d.ts +0 -4
- package/dist/migration/to/v3.40.0.js +0 -26
- package/dist/migration/to/v3.46.0.d.ts +0 -4
- package/dist/migration/to/v3.46.0.js +0 -35
- package/dist/migration/to/v3.57.0.d.ts +0 -4
- package/dist/migration/to/v3.57.0.js +0 -18
- package/dist/migration/to/v3.9.0.d.ts +0 -4
- package/dist/migration/to/v3.9.0.js +0 -79
- package/dist/migration/types.d.ts +0 -26
- package/dist/migration/types.js +0 -3
- package/dist/migration/utils.d.ts +0 -2
- package/dist/migration/utils.js +0 -6
- package/dist/mocks.d.ts +0 -14
- package/dist/mocks.js +0 -58
- package/dist/models/agent.d.ts +0 -3
- package/dist/models/agent.js +0 -29
- package/dist/models/project-schema.d.ts +0 -18
- package/dist/models/project-schema.js +0 -119
- package/dist/models/query.d.ts +0 -3
- package/dist/models/query.js +0 -38
- package/dist/models/runtime-schema.d.ts +0 -9
- package/dist/models/runtime-schema.js +0 -20
- package/dist/models/shape.d.ts +0 -4
- package/dist/models/shape.js +0 -36
- package/dist/models/types.d.ts +0 -36
- package/dist/models/types.js +0 -1
- package/dist/models/user-schema.d.ts +0 -7
- package/dist/models/user-schema.js +0 -9
- package/dist/patterns.d.ts +0 -12
- package/dist/patterns.js +0 -1
- package/dist/project-schema/index.d.ts +0 -211
- package/dist/project-schema/index.js +0 -83
- package/dist/project-schema/latest.d.ts +0 -2619
- package/dist/project-schema/latest.js +0 -7
- package/dist/project-schema/migrate.d.ts +0 -4
- package/dist/project-schema/migrate.js +0 -218
- package/dist/project-schema/v1.0.0.d.ts +0 -299
- package/dist/project-schema/v1.0.0.js +0 -7
- package/dist/project-schema/v3.0.0.d.ts +0 -478
- package/dist/project-schema/v3.0.0.js +0 -7
- package/dist/project-schema/v3.1.0.d.ts +0 -621
- package/dist/project-schema/v3.1.0.js +0 -7
- package/dist/project-schema/v3.10.0.d.ts +0 -1201
- package/dist/project-schema/v3.10.0.js +0 -7
- package/dist/project-schema/v3.11.0.d.ts +0 -1210
- package/dist/project-schema/v3.11.0.js +0 -7
- package/dist/project-schema/v3.12.0.d.ts +0 -1214
- package/dist/project-schema/v3.12.0.js +0 -7
- package/dist/project-schema/v3.12.1.d.ts +0 -1273
- package/dist/project-schema/v3.12.1.js +0 -7
- package/dist/project-schema/v3.12.2.d.ts +0 -1283
- package/dist/project-schema/v3.12.2.js +0 -7
- package/dist/project-schema/v3.12.3.d.ts +0 -1306
- package/dist/project-schema/v3.12.3.js +0 -7
- package/dist/project-schema/v3.13.0.d.ts +0 -1317
- package/dist/project-schema/v3.13.0.js +0 -7
- package/dist/project-schema/v3.13.1.d.ts +0 -1412
- package/dist/project-schema/v3.13.1.js +0 -7
- package/dist/project-schema/v3.14.0.d.ts +0 -1436
- package/dist/project-schema/v3.14.0.js +0 -7
- package/dist/project-schema/v3.15.0.d.ts +0 -1458
- package/dist/project-schema/v3.15.0.js +0 -7
- package/dist/project-schema/v3.16.0.d.ts +0 -1470
- package/dist/project-schema/v3.16.0.js +0 -7
- package/dist/project-schema/v3.17.0.d.ts +0 -1467
- package/dist/project-schema/v3.17.0.js +0 -7
- package/dist/project-schema/v3.17.1.d.ts +0 -1468
- package/dist/project-schema/v3.17.1.js +0 -7
- package/dist/project-schema/v3.18.0.d.ts +0 -1333
- package/dist/project-schema/v3.18.0.js +0 -7
- package/dist/project-schema/v3.18.1.d.ts +0 -1332
- package/dist/project-schema/v3.18.1.js +0 -7
- package/dist/project-schema/v3.18.2.d.ts +0 -1332
- package/dist/project-schema/v3.18.2.js +0 -7
- package/dist/project-schema/v3.19.0.d.ts +0 -1336
- package/dist/project-schema/v3.19.0.js +0 -7
- package/dist/project-schema/v3.2.0.d.ts +0 -632
- package/dist/project-schema/v3.2.0.js +0 -7
- package/dist/project-schema/v3.20.0.d.ts +0 -1336
- package/dist/project-schema/v3.20.0.js +0 -7
- package/dist/project-schema/v3.21.0.d.ts +0 -1338
- package/dist/project-schema/v3.21.0.js +0 -7
- package/dist/project-schema/v3.22.0.d.ts +0 -1344
- package/dist/project-schema/v3.22.0.js +0 -7
- package/dist/project-schema/v3.23.0.d.ts +0 -1376
- package/dist/project-schema/v3.23.0.js +0 -7
- package/dist/project-schema/v3.24.0.d.ts +0 -1364
- package/dist/project-schema/v3.24.0.js +0 -7
- package/dist/project-schema/v3.25.0.d.ts +0 -1363
- package/dist/project-schema/v3.25.0.js +0 -7
- package/dist/project-schema/v3.26.0.d.ts +0 -1388
- package/dist/project-schema/v3.26.0.js +0 -7
- package/dist/project-schema/v3.27.0.d.ts +0 -1397
- package/dist/project-schema/v3.27.0.js +0 -7
- package/dist/project-schema/v3.28.0.d.ts +0 -1416
- package/dist/project-schema/v3.28.0.js +0 -7
- package/dist/project-schema/v3.29.0.d.ts +0 -1423
- package/dist/project-schema/v3.29.0.js +0 -7
- package/dist/project-schema/v3.3.0.d.ts +0 -632
- package/dist/project-schema/v3.3.0.js +0 -7
- package/dist/project-schema/v3.30.0.d.ts +0 -1416
- package/dist/project-schema/v3.30.0.js +0 -7
- package/dist/project-schema/v3.31.0.d.ts +0 -1448
- package/dist/project-schema/v3.31.0.js +0 -7
- package/dist/project-schema/v3.32.0.d.ts +0 -1439
- package/dist/project-schema/v3.32.0.js +0 -7
- package/dist/project-schema/v3.33.0.d.ts +0 -1445
- package/dist/project-schema/v3.33.0.js +0 -7
- package/dist/project-schema/v3.34.0.d.ts +0 -1445
- package/dist/project-schema/v3.34.0.js +0 -7
- package/dist/project-schema/v3.35.0.d.ts +0 -1464
- package/dist/project-schema/v3.35.0.js +0 -7
- package/dist/project-schema/v3.36.0.d.ts +0 -1470
- package/dist/project-schema/v3.36.0.js +0 -7
- package/dist/project-schema/v3.37.0.d.ts +0 -1522
- package/dist/project-schema/v3.37.0.js +0 -7
- package/dist/project-schema/v3.38.0.d.ts +0 -1522
- package/dist/project-schema/v3.38.0.js +0 -7
- package/dist/project-schema/v3.39.0.d.ts +0 -1529
- package/dist/project-schema/v3.39.0.js +0 -7
- package/dist/project-schema/v3.4.0.d.ts +0 -624
- package/dist/project-schema/v3.4.0.js +0 -7
- package/dist/project-schema/v3.40.0.d.ts +0 -1530
- package/dist/project-schema/v3.40.0.js +0 -7
- package/dist/project-schema/v3.41.0.d.ts +0 -1530
- package/dist/project-schema/v3.41.0.js +0 -7
- package/dist/project-schema/v3.42.0.d.ts +0 -1534
- package/dist/project-schema/v3.42.0.js +0 -7
- package/dist/project-schema/v3.43.0.d.ts +0 -1536
- package/dist/project-schema/v3.43.0.js +0 -7
- package/dist/project-schema/v3.44.0.d.ts +0 -1621
- package/dist/project-schema/v3.44.0.js +0 -7
- package/dist/project-schema/v3.45.0.d.ts +0 -1650
- package/dist/project-schema/v3.45.0.js +0 -7
- package/dist/project-schema/v3.46.0.d.ts +0 -1703
- package/dist/project-schema/v3.46.0.js +0 -7
- package/dist/project-schema/v3.47.0.d.ts +0 -1736
- package/dist/project-schema/v3.47.0.js +0 -7
- package/dist/project-schema/v3.48.0.d.ts +0 -2208
- package/dist/project-schema/v3.48.0.js +0 -7
- package/dist/project-schema/v3.49.0.d.ts +0 -2217
- package/dist/project-schema/v3.49.0.js +0 -7
- package/dist/project-schema/v3.5.0.d.ts +0 -649
- package/dist/project-schema/v3.5.0.js +0 -7
- package/dist/project-schema/v3.5.1.d.ts +0 -649
- package/dist/project-schema/v3.5.1.js +0 -7
- package/dist/project-schema/v3.50.0.d.ts +0 -2269
- package/dist/project-schema/v3.50.0.js +0 -7
- package/dist/project-schema/v3.51.0.d.ts +0 -2269
- package/dist/project-schema/v3.51.0.js +0 -7
- package/dist/project-schema/v3.52.0.d.ts +0 -2269
- package/dist/project-schema/v3.52.0.js +0 -7
- package/dist/project-schema/v3.53.0.d.ts +0 -2350
- package/dist/project-schema/v3.53.0.js +0 -7
- package/dist/project-schema/v3.54.0.d.ts +0 -2369
- package/dist/project-schema/v3.54.0.js +0 -7
- package/dist/project-schema/v3.55.0.d.ts +0 -2369
- package/dist/project-schema/v3.55.0.js +0 -7
- package/dist/project-schema/v3.56.0.d.ts +0 -2405
- package/dist/project-schema/v3.56.0.js +0 -7
- package/dist/project-schema/v3.57.0.d.ts +0 -2601
- package/dist/project-schema/v3.57.0.js +0 -7
- package/dist/project-schema/v3.58.0.d.ts +0 -2601
- package/dist/project-schema/v3.58.0.js +0 -7
- package/dist/project-schema/v3.59.0.d.ts +0 -2619
- package/dist/project-schema/v3.59.0.js +0 -7
- package/dist/project-schema/v3.6.0.d.ts +0 -658
- package/dist/project-schema/v3.6.0.js +0 -7
- package/dist/project-schema/v3.7.0.d.ts +0 -961
- package/dist/project-schema/v3.7.0.js +0 -7
- package/dist/project-schema/v3.8.0.d.ts +0 -979
- package/dist/project-schema/v3.8.0.js +0 -7
- package/dist/project-schema/v3.9.0.d.ts +0 -1178
- package/dist/project-schema/v3.9.0.js +0 -7
- package/dist/project-schema/v4.0.0.d.ts +0 -1328
- package/dist/project-schema/v4.0.0.js +0 -7
- package/dist/refs.d.ts +0 -218
- package/dist/refs.js +0 -616
- package/dist/relationships.d.ts +0 -40
- package/dist/relationships.js +0 -302
- package/dist/resolvers/ai/abort-agent-message-args.d.ts +0 -16
- package/dist/resolvers/ai/abort-agent-message-args.js +0 -13
- package/dist/resolvers/ai/abort-agent-message-response.d.ts +0 -39
- package/dist/resolvers/ai/abort-agent-message-response.js +0 -19
- package/dist/resolvers/ai/agent-chat-args.d.ts +0 -17
- package/dist/resolvers/ai/agent-chat-args.js +0 -14
- package/dist/resolvers/ai/agent-chat-payload.d.ts +0 -35
- package/dist/resolvers/ai/agent-chat-payload.js +0 -26
- package/dist/resolvers/ai/agent-chat-response.d.ts +0 -289
- package/dist/resolvers/ai/agent-chat-response.js +0 -21
- package/dist/resolvers/ai/agent-generate-args.d.ts +0 -17
- package/dist/resolvers/ai/agent-generate-args.js +0 -14
- package/dist/resolvers/ai/agent-message-input.d.ts +0 -73
- package/dist/resolvers/ai/agent-message-input.js +0 -39
- package/dist/resolvers/ai/agent-message-output.d.ts +0 -169
- package/dist/resolvers/ai/agent-message-output.js +0 -77
- package/dist/resolvers/ai/agent-message-payload.d.ts +0 -507
- package/dist/resolvers/ai/agent-message-payload.js +0 -156
- package/dist/resolvers/ai/agent-run-mode.d.ts +0 -7
- package/dist/resolvers/ai/agent-run-mode.js +0 -9
- package/dist/resolvers/ai/agent-session-payload.d.ts +0 -515
- package/dist/resolvers/ai/agent-session-payload.js +0 -175
- package/dist/resolvers/ai/create-agent-session-response.d.ts +0 -199
- package/dist/resolvers/ai/create-agent-session-response.js +0 -9
- package/dist/resolvers/ai/embedding-search.d.ts +0 -54
- package/dist/resolvers/ai/embedding-search.js +0 -46
- package/dist/resolvers/ai/get-agent-message-args.d.ts +0 -16
- package/dist/resolvers/ai/get-agent-message-args.js +0 -13
- package/dist/resolvers/ai/get-agent-message-response.d.ts +0 -805
- package/dist/resolvers/ai/get-agent-message-response.js +0 -63
- package/dist/resolvers/ai/inspect-agent-args.d.ts +0 -16
- package/dist/resolvers/ai/inspect-agent-args.js +0 -13
- package/dist/resolvers/ai/inspect-agent-response.d.ts +0 -504
- package/dist/resolvers/ai/inspect-agent-response.js +0 -48
- package/dist/resolvers/ai/send-agent-feedback-args.d.ts +0 -52
- package/dist/resolvers/ai/send-agent-feedback-args.js +0 -16
- package/dist/resolvers/ai/send-agent-message-args.d.ts +0 -48
- package/dist/resolvers/ai/send-agent-message-args.js +0 -36
- package/dist/resolvers/ai/send-agent-message-response.d.ts +0 -353
- package/dist/resolvers/ai/send-agent-message-response.js +0 -51
- package/dist/resolvers/ai/types.d.ts +0 -6
- package/dist/resolvers/ai/types.js +0 -1
- package/dist/resolvers/takeshape/assets/asset-image-meta.d.ts +0 -79
- package/dist/resolvers/takeshape/assets/asset-image-meta.js +0 -98
- package/dist/resolvers/takeshape/assets/asset-image-params.d.ts +0 -901
- package/dist/resolvers/takeshape/assets/asset-image-params.js +0 -726
- package/dist/resolvers/takeshape/assets/asset-image.d.ts +0 -17
- package/dist/resolvers/takeshape/assets/asset-image.js +0 -15
- package/dist/resolvers/takeshape/assets/asset.d.ts +0 -125
- package/dist/resolvers/takeshape/assets/asset.js +0 -107
- package/dist/resolvers/takeshape/assets/constants.d.ts +0 -11
- package/dist/resolvers/takeshape/assets/constants.js +0 -11
- package/dist/resolvers/takeshape/builtins/constants.d.ts +0 -1
- package/dist/resolvers/takeshape/builtins/constants.js +0 -1
- package/dist/runtime-schema.d.ts +0 -6
- package/dist/runtime-schema.js +0 -85
- package/dist/scalars.d.ts +0 -2
- package/dist/scalars.js +0 -4
- package/dist/schema-transform.d.ts +0 -19
- package/dist/schema-transform.js +0 -74
- package/dist/schema-util.d.ts +0 -266
- package/dist/schema-util.js +0 -1127
- package/dist/schemas/auth-schemas.json +0 -374
- package/dist/schemas/index.d.ts +0 -4
- package/dist/schemas/index.js +0 -170
- package/dist/schemas/project-schema/experimental-2025-07.json +0 -1297
- package/dist/schemas/project-schema/latest.d.ts +0 -180
- package/dist/schemas/project-schema/latest.js +0 -11
- package/dist/schemas/project-schema/latest.json +0 -4846
- package/dist/schemas/project-schema/meta-schema-v1.0.0.json +0 -193
- package/dist/schemas/project-schema/meta-schema-v3.0.0.json +0 -608
- package/dist/schemas/project-schema/meta-schema-v3.1.0.json +0 -608
- package/dist/schemas/project-schema/meta-schema-v3.2.0.json +0 -612
- package/dist/schemas/project-schema/meta-schema-v3.3.0.json +0 -612
- package/dist/schemas/project-schema/meta-schema-v3.4.0.json +0 -637
- package/dist/schemas/project-schema/meta-schema-v3.5.0.json +0 -626
- package/dist/schemas/project-schema/meta-schema-v3.5.1.json +0 -626
- package/dist/schemas/project-schema/meta-schema-v3.6.0.json +0 -629
- package/dist/schemas/project-schema/meta-schema-v3.7.0.json +0 -1137
- package/dist/schemas/project-schema/meta-schema-v3.8.0.json +0 -1137
- package/dist/schemas/project-schema/meta-schema-v3.9.0.json +0 -1477
- package/dist/schemas/project-schema/v1.0.0.json +0 -321
- package/dist/schemas/project-schema/v3.0.0.json +0 -414
- package/dist/schemas/project-schema/v3.1.0.json +0 -572
- package/dist/schemas/project-schema/v3.10.0.json +0 -2097
- package/dist/schemas/project-schema/v3.11.0.json +0 -2141
- package/dist/schemas/project-schema/v3.12.0.json +0 -2144
- package/dist/schemas/project-schema/v3.12.1.json +0 -2282
- package/dist/schemas/project-schema/v3.12.2.json +0 -2304
- package/dist/schemas/project-schema/v3.12.3.json +0 -2357
- package/dist/schemas/project-schema/v3.13.0.json +0 -2377
- package/dist/schemas/project-schema/v3.14.0.json +0 -2385
- package/dist/schemas/project-schema/v3.15.0.json +0 -2365
- package/dist/schemas/project-schema/v3.16.0.json +0 -2373
- package/dist/schemas/project-schema/v3.17.0.json +0 -2378
- package/dist/schemas/project-schema/v3.17.1.json +0 -2380
- package/dist/schemas/project-schema/v3.18.0.json +0 -2356
- package/dist/schemas/project-schema/v3.18.1.json +0 -2357
- package/dist/schemas/project-schema/v3.18.2.json +0 -2357
- package/dist/schemas/project-schema/v3.19.0.json +0 -2369
- package/dist/schemas/project-schema/v3.2.0.json +0 -580
- package/dist/schemas/project-schema/v3.20.0.json +0 -2369
- package/dist/schemas/project-schema/v3.21.0.json +0 -2376
- package/dist/schemas/project-schema/v3.22.0.json +0 -2381
- package/dist/schemas/project-schema/v3.23.0.json +0 -2456
- package/dist/schemas/project-schema/v3.24.0.json +0 -2556
- package/dist/schemas/project-schema/v3.25.0.json +0 -2552
- package/dist/schemas/project-schema/v3.26.0.json +0 -2599
- package/dist/schemas/project-schema/v3.27.0.json +0 -2611
- package/dist/schemas/project-schema/v3.28.0.json +0 -2656
- package/dist/schemas/project-schema/v3.29.0.json +0 -2670
- package/dist/schemas/project-schema/v3.3.0.json +0 -581
- package/dist/schemas/project-schema/v3.30.0.json +0 -2656
- package/dist/schemas/project-schema/v3.31.0.json +0 -2714
- package/dist/schemas/project-schema/v3.32.0.json +0 -2708
- package/dist/schemas/project-schema/v3.33.0.json +0 -2715
- package/dist/schemas/project-schema/v3.34.0.json +0 -2715
- package/dist/schemas/project-schema/v3.35.0.json +0 -2748
- package/dist/schemas/project-schema/v3.36.0.json +0 -2756
- package/dist/schemas/project-schema/v3.37.0.json +0 -2821
- package/dist/schemas/project-schema/v3.38.0.json +0 -2819
- package/dist/schemas/project-schema/v3.39.0.json +0 -2827
- package/dist/schemas/project-schema/v3.4.0.json +0 -571
- package/dist/schemas/project-schema/v3.40.0.json +0 -2830
- package/dist/schemas/project-schema/v3.41.0.json +0 -2830
- package/dist/schemas/project-schema/v3.42.0.json +0 -2835
- package/dist/schemas/project-schema/v3.43.0.json +0 -2841
- package/dist/schemas/project-schema/v3.44.0.json +0 -3013
- package/dist/schemas/project-schema/v3.45.0.json +0 -3064
- package/dist/schemas/project-schema/v3.46.0.json +0 -3136
- package/dist/schemas/project-schema/v3.47.0.json +0 -3189
- package/dist/schemas/project-schema/v3.48.0.json +0 -3196
- package/dist/schemas/project-schema/v3.49.0.json +0 -3239
- package/dist/schemas/project-schema/v3.5.0.json +0 -571
- package/dist/schemas/project-schema/v3.5.1.json +0 -571
- package/dist/schemas/project-schema/v3.50.0.json +0 -3320
- package/dist/schemas/project-schema/v3.51.0.json +0 -3326
- package/dist/schemas/project-schema/v3.52.0.json +0 -3326
- package/dist/schemas/project-schema/v3.53.0.json +0 -3476
- package/dist/schemas/project-schema/v3.54.0.json +0 -3512
- package/dist/schemas/project-schema/v3.55.0.json +0 -3515
- package/dist/schemas/project-schema/v3.56.0.json +0 -3530
- package/dist/schemas/project-schema/v3.57.0.json +0 -4815
- package/dist/schemas/project-schema/v3.58.0.json +0 -4815
- package/dist/schemas/project-schema/v3.59.0.json +0 -4846
- package/dist/schemas/project-schema/v3.6.0.json +0 -587
- package/dist/schemas/project-schema/v3.7.0.json +0 -587
- package/dist/schemas/project-schema/v3.8.0.json +0 -604
- package/dist/schemas/project-schema/v3.9.0.json +0 -604
- package/dist/schemas/project-schema/v4.0.0.json +0 -2316
- package/dist/schemas/project-schema.json +0 -214
- package/dist/service-dependencies.d.ts +0 -13
- package/dist/service-dependencies.js +0 -165
- package/dist/services/services.d.ts +0 -31
- package/dist/services/services.js +0 -145
- package/dist/services/types.d.ts +0 -11
- package/dist/services/types.js +0 -1
- package/dist/services/util.d.ts +0 -16
- package/dist/services/util.js +0 -36
- package/dist/shape-paths.d.ts +0 -7
- package/dist/shape-paths.js +0 -28
- package/dist/taxonomies.d.ts +0 -15
- package/dist/taxonomies.js +0 -24
- package/dist/template-shapes/index.d.ts +0 -7
- package/dist/template-shapes/index.js +0 -33
- package/dist/template-shapes/names.d.ts +0 -10
- package/dist/template-shapes/names.js +0 -21
- package/dist/template-shapes/templates.d.ts +0 -32
- package/dist/template-shapes/templates.js +0 -316
- package/dist/template-shapes/types.d.ts +0 -15
- package/dist/template-shapes/types.js +0 -7
- package/dist/template-shapes/where.d.ts +0 -37
- package/dist/template-shapes/where.js +0 -400
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.js +0 -2
- package/dist/types/transforms.d.ts +0 -15
- package/dist/types/transforms.js +0 -1
- package/dist/types/types.d.ts +0 -200
- package/dist/types/types.js +0 -10
- package/dist/types/utils.d.ts +0 -112
- package/dist/types/utils.js +0 -269
- package/dist/unions.d.ts +0 -14
- package/dist/unions.js +0 -77
- package/dist/util/ai-tools.d.ts +0 -2
- package/dist/util/ai-tools.js +0 -14
- package/dist/util/api-indexing.d.ts +0 -9
- package/dist/util/api-indexing.js +0 -57
- package/dist/util/coerce-value.d.ts +0 -9
- package/dist/util/coerce-value.js +0 -32
- package/dist/util/detect-cycles.d.ts +0 -7
- package/dist/util/detect-cycles.js +0 -45
- package/dist/util/expressions.d.ts +0 -34
- package/dist/util/expressions.js +0 -350
- package/dist/util/find-shape-at-path.d.ts +0 -21
- package/dist/util/find-shape-at-path.js +0 -53
- package/dist/util/form-config.d.ts +0 -11
- package/dist/util/form-config.js +0 -62
- package/dist/util/get-conflicting-properties.d.ts +0 -6
- package/dist/util/get-conflicting-properties.js +0 -55
- package/dist/util/get-return-shape.d.ts +0 -4
- package/dist/util/get-return-shape.js +0 -30
- package/dist/util/has-arg.d.ts +0 -6
- package/dist/util/has-arg.js +0 -25
- package/dist/util/is-asset-property.d.ts +0 -3
- package/dist/util/is-asset-property.js +0 -11
- package/dist/util/mcp.d.ts +0 -8
- package/dist/util/mcp.js +0 -21
- package/dist/util/merge.d.ts +0 -15
- package/dist/util/merge.js +0 -254
- package/dist/util/patch-schema.d.ts +0 -8
- package/dist/util/patch-schema.js +0 -51
- package/dist/util/query-field-path.d.ts +0 -9
- package/dist/util/query-field-path.js +0 -23
- package/dist/util/shapes.d.ts +0 -5
- package/dist/util/shapes.js +0 -22
- package/dist/validate/ai.d.ts +0 -6
- package/dist/validate/ai.js +0 -183
- package/dist/validate/errors.d.ts +0 -3
- package/dist/validate/errors.js +0 -20
- package/dist/validate/types.d.ts +0 -1
- package/dist/validate/types.js +0 -1
- package/dist/validate/util.d.ts +0 -3
- package/dist/validate/util.js +0 -28
- package/dist/validate/validate.d.ts +0 -80
- package/dist/validate/validate.js +0 -1058
- package/dist/versions.d.ts +0 -4
- package/dist/versions.js +0 -4
- package/dist/workflows.d.ts +0 -14
- package/dist/workflows.js +0 -66
|
@@ -1,400 +0,0 @@
|
|
|
1
|
-
import { formatShapeName, isDefined, pascalCase } from '@takeshape/util';
|
|
2
|
-
import md5 from 'blueimp-md5';
|
|
3
|
-
import isFunction from 'lodash/isFunction.js';
|
|
4
|
-
import uniqBy from 'lodash/uniqBy.js';
|
|
5
|
-
import unset from 'lodash/unset.js';
|
|
6
|
-
import { workflowsEnabled } from "../api-version.js";
|
|
7
|
-
import { followRef, getRef, getRefOrItemsRef, hasRefProperty, hasResolvableRef, parseRef, refItemToNamespacedShapeName, refItemToShape } from "../refs.js";
|
|
8
|
-
import { getRelationship, getRelationshipShapes, isEqualRelationship } from "../relationships.js";
|
|
9
|
-
import { createSchemaPropertyList, createShape, getAllRefsInShapes } from "../schema-util.js";
|
|
10
|
-
import { isCachedShape, isObjectSchema, isPropertySchemaWithRelationship } from "../types/utils.js";
|
|
11
|
-
import { enumerateOneOfKeys, isUnionSchema } from "../unions.js";
|
|
12
|
-
export const MAX_RELATIONSHIP_DEPTH = 1;
|
|
13
|
-
export const exceededRelationshipDepth = (depth = 0) => depth >= MAX_RELATIONSHIP_DEPTH;
|
|
14
|
-
class ShapeCache {
|
|
15
|
-
thunks = new Map();
|
|
16
|
-
unresolved = new Set();
|
|
17
|
-
has(shapeName) {
|
|
18
|
-
return this.thunks.has(shapeName);
|
|
19
|
-
}
|
|
20
|
-
set(shapeName, thunk) {
|
|
21
|
-
this.thunks.set(shapeName, thunk);
|
|
22
|
-
if (isFunction(thunk)) {
|
|
23
|
-
this.unresolved.add(shapeName);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
resolveAll() {
|
|
27
|
-
while (this.unresolved.size) {
|
|
28
|
-
const shapeName = this.unresolved.values().next().value;
|
|
29
|
-
if (shapeName) {
|
|
30
|
-
const thunk = this.thunks.get(shapeName);
|
|
31
|
-
if (isFunction(thunk)) {
|
|
32
|
-
this.thunks.set(shapeName, thunk());
|
|
33
|
-
this.unresolved.delete(shapeName);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
const result = {};
|
|
38
|
-
for (const [shapeName, shape] of this.thunks) {
|
|
39
|
-
result[shapeName] = shape;
|
|
40
|
-
}
|
|
41
|
-
return result;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
export const fieldTypeComparison = {
|
|
45
|
-
id: { comparators: ['eq', 'in'], type: 'string' },
|
|
46
|
-
boolean: { comparators: ['eq'], type: 'boolean' },
|
|
47
|
-
string: { comparators: ['eq', 'in', 'match', 'regexp'], type: 'string' },
|
|
48
|
-
date: { comparators: ['eq', 'lt', 'lte', 'gt', 'gte'], type: 'string' },
|
|
49
|
-
number: {
|
|
50
|
-
comparators: ['eq', 'lt', 'lte', 'gt', 'gte', 'in'],
|
|
51
|
-
type: 'number'
|
|
52
|
-
},
|
|
53
|
-
integer: {
|
|
54
|
-
comparators: ['eq', 'lt', 'lte', 'gt', 'gte', 'in'],
|
|
55
|
-
type: 'integer'
|
|
56
|
-
},
|
|
57
|
-
workflow: {
|
|
58
|
-
comparators: ['eq', 'lt', 'lte', 'gt', 'gte', 'in'],
|
|
59
|
-
type: 'string'
|
|
60
|
-
},
|
|
61
|
-
draftjs: { comparators: ['match'], type: 'string' },
|
|
62
|
-
mdx: { comparators: ['match'], type: 'string' }
|
|
63
|
-
};
|
|
64
|
-
export const comparatorDescriptions = {
|
|
65
|
-
eq: 'Exact match',
|
|
66
|
-
gt: 'Greater than',
|
|
67
|
-
gte: 'Greater than or equal',
|
|
68
|
-
lt: 'Less than',
|
|
69
|
-
lte: 'Less than or equal',
|
|
70
|
-
in: 'Array of possible exact match values.',
|
|
71
|
-
match: 'Full text searching with fuzzy matching.',
|
|
72
|
-
regexp: 'Regular expression string matching. Use of * wildcards could degrade performance.'
|
|
73
|
-
};
|
|
74
|
-
export const booleanOperators = ['AND', 'OR', 'NOT'];
|
|
75
|
-
export const boolOpDescriptionMap = {
|
|
76
|
-
AND: 'AND takes an array of conditions that must appear in the matching results. Nested boolean operators can be used to create complex filters.',
|
|
77
|
-
OR: 'OR takes an array of conditions that should appear in the matching results. Nested boolean operators can be used to create complex filters.',
|
|
78
|
-
NOT: 'NOT takes a single condition that must not appear in the matching results.'
|
|
79
|
-
};
|
|
80
|
-
function getConflictingProperties(projectSchema, shapes) {
|
|
81
|
-
const conflicts = new Set();
|
|
82
|
-
const allProps = {};
|
|
83
|
-
for (const shape of Object.values(shapes)) {
|
|
84
|
-
for (const [name, prop] of createSchemaPropertyList(projectSchema, shape).getNodes()) {
|
|
85
|
-
if (name in allProps && (allProps[name].type !== prop.type || !isEqualRelationship(allProps[name], prop))) {
|
|
86
|
-
conflicts.add(name);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (isObjectSchema(shape.schema)) {
|
|
90
|
-
Object.assign(allProps, shape.schema.properties);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return conflicts;
|
|
94
|
-
}
|
|
95
|
-
export function getFieldTypeComparison(fieldType) {
|
|
96
|
-
const comparison = fieldTypeComparison[fieldType];
|
|
97
|
-
if (!comparison) {
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
const { comparators, type } = comparison;
|
|
101
|
-
const result = {};
|
|
102
|
-
for (const op of comparators) {
|
|
103
|
-
const description = comparatorDescriptions[op];
|
|
104
|
-
result[op] = op === 'in' ? { type: 'array', items: { type }, description } : { description, type };
|
|
105
|
-
}
|
|
106
|
-
return result;
|
|
107
|
-
}
|
|
108
|
-
function isId(name) {
|
|
109
|
-
return name === '_id' || name === '_contentTypeId' || name === '_shapeId';
|
|
110
|
-
}
|
|
111
|
-
function isNonRelationshipRef(prop) {
|
|
112
|
-
return Boolean(hasRefProperty(prop) && !getRelationship(prop));
|
|
113
|
-
}
|
|
114
|
-
function getPropType(projectSchema, name, prop) {
|
|
115
|
-
if (prop['@workflow']) {
|
|
116
|
-
return 'workflow';
|
|
117
|
-
}
|
|
118
|
-
if (prop['@tag'] === 'draftjs') {
|
|
119
|
-
return 'draftjs';
|
|
120
|
-
}
|
|
121
|
-
if (prop['@tag'] === 'mdx') {
|
|
122
|
-
return 'mdx';
|
|
123
|
-
}
|
|
124
|
-
if (prop.format === 'date-time') {
|
|
125
|
-
return 'date';
|
|
126
|
-
}
|
|
127
|
-
if (isId(name)) {
|
|
128
|
-
return 'id';
|
|
129
|
-
}
|
|
130
|
-
if (isNonRelationshipRef(prop)) {
|
|
131
|
-
const followed = followRef(projectSchema, prop);
|
|
132
|
-
if (followed.enum) {
|
|
133
|
-
return 'string';
|
|
134
|
-
}
|
|
135
|
-
return 'object';
|
|
136
|
-
}
|
|
137
|
-
return prop.type;
|
|
138
|
-
}
|
|
139
|
-
function truncateNames(names) {
|
|
140
|
-
// For unions of many types hash the names this reduces shape name size while still allowing reuse
|
|
141
|
-
return names.length > 80 ? md5(names) : names;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Get a formatted string of related shape names from a property schema with a
|
|
145
|
-
* relationship resolver
|
|
146
|
-
*/
|
|
147
|
-
function getRelationshipShapeName(context, refs) {
|
|
148
|
-
return refs
|
|
149
|
-
.map((ref) => formatShapeName(parseRef(context, ref).shapeName))
|
|
150
|
-
.filter(isDefined)
|
|
151
|
-
.sort()
|
|
152
|
-
.join('');
|
|
153
|
-
}
|
|
154
|
-
function joinShapeNames(shapes) {
|
|
155
|
-
return shapes.sort().join('');
|
|
156
|
-
}
|
|
157
|
-
function getTypeName(name, prop, shapeName, context) {
|
|
158
|
-
const { projectSchema, relationshipDepth, conflictingProperties } = context;
|
|
159
|
-
let type = getPropType(projectSchema, name, prop);
|
|
160
|
-
if (isId(name)) {
|
|
161
|
-
return 'TSWhereID';
|
|
162
|
-
}
|
|
163
|
-
const relationship = getRelationship(prop);
|
|
164
|
-
if (relationship) {
|
|
165
|
-
const relationshipName = getRelationshipShapeName(context.projectSchema, relationship.refs);
|
|
166
|
-
if (!relationshipName) {
|
|
167
|
-
throw new Error(`Relationship property "${prop.title ?? ''}" is missing related shapes`);
|
|
168
|
-
}
|
|
169
|
-
const shapeNames = truncateNames(relationshipName);
|
|
170
|
-
return `TSWhere${shapeNames}Relationship`;
|
|
171
|
-
}
|
|
172
|
-
if (isUnionSchema(prop)) {
|
|
173
|
-
if (prop.oneOf.length > 1) {
|
|
174
|
-
const shapeNames = truncateNames(joinShapeNames(enumerateOneOfKeys(projectSchema, prop.oneOf).map((child) => child.shapeName)));
|
|
175
|
-
return `TSWhere${shapeNames}Union`;
|
|
176
|
-
}
|
|
177
|
-
type = 'object';
|
|
178
|
-
prop = prop.oneOf[0];
|
|
179
|
-
}
|
|
180
|
-
if (type === 'object' || type === 'array') {
|
|
181
|
-
const prefix = `TS${relationshipDepth >= MAX_RELATIONSHIP_DEPTH ? 'Shallow' : ''}Where`;
|
|
182
|
-
const fieldName = `${conflictingProperties?.has(name) ? '_' : ''}${formatShapeName(name)}`;
|
|
183
|
-
const refItem = getRefOrItemsRef(projectSchema, prop);
|
|
184
|
-
const suffix = refItem ? refItemToNamespacedShapeName(projectSchema, refItem) : `${shapeName}${fieldName}`;
|
|
185
|
-
return `${prefix}${suffix}`;
|
|
186
|
-
}
|
|
187
|
-
return `TSWhere${pascalCase(type)}`;
|
|
188
|
-
}
|
|
189
|
-
function skipField({ name, prop, workflowsEnabled, exceededRelationshipDepth, isIndexedShape }) {
|
|
190
|
-
const isRelationship = isPropertySchemaWithRelationship(prop);
|
|
191
|
-
return Boolean(prop['@sensitive'] ??
|
|
192
|
-
(Boolean(prop['@resolver'] && !isIndexedShape && !isRelationship) ||
|
|
193
|
-
Boolean(isRelationship && exceededRelationshipDepth) ||
|
|
194
|
-
Boolean((name === '_enabled' || name === '_enabledAt') && workflowsEnabled)));
|
|
195
|
-
}
|
|
196
|
-
export function getFields(typeName, shapes, context) {
|
|
197
|
-
const { relationshipDepth, booleanOperators, projectSchema } = context;
|
|
198
|
-
const result = {};
|
|
199
|
-
const tooDeep = exceededRelationshipDepth(relationshipDepth);
|
|
200
|
-
const conflictingProperties = shapes.length ? getConflictingProperties(projectSchema, shapes) : undefined;
|
|
201
|
-
const fieldContext = { ...context, conflictingProperties };
|
|
202
|
-
for (const shape of shapes) {
|
|
203
|
-
const nodes = createSchemaPropertyList(projectSchema, shape)
|
|
204
|
-
.filterBy(([name, prop]) => !skipField({
|
|
205
|
-
name,
|
|
206
|
-
prop,
|
|
207
|
-
workflowsEnabled: workflowsEnabled(projectSchema.apiVersion),
|
|
208
|
-
isIndexedShape: isCachedShape(shape),
|
|
209
|
-
exceededRelationshipDepth: exceededRelationshipDepth(relationshipDepth)
|
|
210
|
-
}))
|
|
211
|
-
.getNodes();
|
|
212
|
-
for (const [name, property] of nodes) {
|
|
213
|
-
Object.assign(result, getPropertyComparisonType(name, property, shape.name, fieldContext));
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
return tooDeep || booleanOperators === false ? result : Object.assign(result, getBooleanOperatorTypes(typeName));
|
|
217
|
-
}
|
|
218
|
-
function getBooleanOperatorTypes(typeName) {
|
|
219
|
-
const result = {};
|
|
220
|
-
for (const op of booleanOperators) {
|
|
221
|
-
const refSchema = { '@ref': `local:${typeName}` };
|
|
222
|
-
result[op] = op === 'NOT' ? refSchema : { type: 'array', items: refSchema };
|
|
223
|
-
}
|
|
224
|
-
return result;
|
|
225
|
-
}
|
|
226
|
-
export function getPropertyComparisonType(name, prop, shapeName, context) {
|
|
227
|
-
const { shapeCache, projectSchema, relationshipDepth, conflictingProperties } = context;
|
|
228
|
-
if (skipField({
|
|
229
|
-
name,
|
|
230
|
-
prop,
|
|
231
|
-
workflowsEnabled: workflowsEnabled(projectSchema.apiVersion),
|
|
232
|
-
isIndexedShape: isCachedShape(projectSchema.shapes[shapeName]),
|
|
233
|
-
exceededRelationshipDepth: exceededRelationshipDepth(relationshipDepth)
|
|
234
|
-
})) {
|
|
235
|
-
return undefined;
|
|
236
|
-
}
|
|
237
|
-
const fieldType = getPropType(projectSchema, name, prop) ?? 'string';
|
|
238
|
-
const typeName = getTypeName(name, prop, shapeName, context);
|
|
239
|
-
const relationship = getRelationship(prop);
|
|
240
|
-
if (hasRefProperty(prop.items ?? prop)) {
|
|
241
|
-
if (!hasResolvableRef(projectSchema, prop.items ?? prop)) {
|
|
242
|
-
return undefined;
|
|
243
|
-
}
|
|
244
|
-
if (prop.items) {
|
|
245
|
-
prop = { ...prop, items: followRef(projectSchema, prop.items) };
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
prop = followRef(projectSchema, prop);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
if (!shapeCache.has(typeName) && !projectSchema.shapes[typeName]) {
|
|
252
|
-
shapeCache.set(typeName, () => {
|
|
253
|
-
let props;
|
|
254
|
-
const propOrItems = prop.items ?? prop;
|
|
255
|
-
if (isId(name)) {
|
|
256
|
-
props = getFieldTypeComparison('id');
|
|
257
|
-
}
|
|
258
|
-
else if (relationship) {
|
|
259
|
-
const shapes = getRelationshipShapes(projectSchema.shapes, relationship.refs);
|
|
260
|
-
props = getFields(typeName, shapes, {
|
|
261
|
-
...context,
|
|
262
|
-
relationshipDepth: relationshipDepth + 1
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
else if (isUnionSchema(propOrItems)) {
|
|
266
|
-
const shapes = enumerateOneOfKeys(projectSchema, propOrItems.oneOf).map((option) => projectSchema.shapes[option.shapeName]);
|
|
267
|
-
props = getFields(typeName, shapes, {
|
|
268
|
-
...context,
|
|
269
|
-
booleanOperators: false
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
else if (fieldType === 'object' || (fieldType === 'array' && prop.items?.type === 'object')) {
|
|
273
|
-
const properties = prop.items?.properties ?? prop.properties;
|
|
274
|
-
if (properties) {
|
|
275
|
-
props ??= {};
|
|
276
|
-
const fieldContext = {
|
|
277
|
-
...context,
|
|
278
|
-
conflictingProperties: undefined // non-union objects have no conflicts
|
|
279
|
-
};
|
|
280
|
-
for (const propName of Object.keys(properties)) {
|
|
281
|
-
Object.assign(props, getPropertyComparisonType(propName, properties[propName], shapeName, fieldContext));
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
// Treat non-object arrays as their base type
|
|
287
|
-
let type;
|
|
288
|
-
if (typeof prop.items?.type === 'string') {
|
|
289
|
-
type = prop.items.type;
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
type = fieldType;
|
|
293
|
-
}
|
|
294
|
-
props = getFieldTypeComparison(type);
|
|
295
|
-
}
|
|
296
|
-
return createShape(typeName, {
|
|
297
|
-
type: 'object',
|
|
298
|
-
properties: props ?? {}
|
|
299
|
-
});
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
if (shapeCache.has(typeName) || projectSchema.shapes[typeName]) {
|
|
303
|
-
const fieldName = `${conflictingProperties?.has(name) ? `${shapeName}_` : ''}${name}`;
|
|
304
|
-
return {
|
|
305
|
-
[fieldName]: {
|
|
306
|
-
'@ref': `local:${typeName}`
|
|
307
|
-
}
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
function findEmpty(shapes) {
|
|
312
|
-
const empty = new Set();
|
|
313
|
-
for (const [shapeName, shape] of Object.entries(shapes)) {
|
|
314
|
-
if (isObjectSchema(shape.schema) && Object.keys(shape.schema.properties).length === 0) {
|
|
315
|
-
empty.add(shapeName);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
return empty;
|
|
319
|
-
}
|
|
320
|
-
function getRefSummary(shapes) {
|
|
321
|
-
const result = {};
|
|
322
|
-
for (const ref of getAllRefsInShapes({ shapes, services: {} })) {
|
|
323
|
-
const path = ref.path.slice(1, ref.path.length - 1);
|
|
324
|
-
if (result[ref.shapeName]) {
|
|
325
|
-
result[ref.shapeName].push(path);
|
|
326
|
-
}
|
|
327
|
-
else {
|
|
328
|
-
result[ref.shapeName] = [path];
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return result;
|
|
332
|
-
}
|
|
333
|
-
function pruneEmpty(shapes) {
|
|
334
|
-
let toPrune = findEmpty(shapes);
|
|
335
|
-
if (toPrune.size) {
|
|
336
|
-
const refSummary = getRefSummary(shapes);
|
|
337
|
-
while (toPrune.size) {
|
|
338
|
-
for (const shapeName of toPrune) {
|
|
339
|
-
unset(shapes, shapeName);
|
|
340
|
-
for (const path of refSummary[shapeName] ?? []) {
|
|
341
|
-
unset(shapes, path);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
toPrune = findEmpty(shapes);
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
return shapes;
|
|
348
|
-
}
|
|
349
|
-
function getReferencedShape(context) {
|
|
350
|
-
return (prop) => {
|
|
351
|
-
const ref = getRef(context, prop);
|
|
352
|
-
return ref && refItemToShape(context, ref);
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Expand union shapes
|
|
357
|
-
*/
|
|
358
|
-
function expandUnionShapes(projectSchema, shapes) {
|
|
359
|
-
return uniqBy(shapes.flatMap((shape) => isUnionSchema(shape.schema) ? shape.schema.oneOf.map(getReferencedShape(projectSchema)).filter(isDefined) : shape), 'name');
|
|
360
|
-
}
|
|
361
|
-
export function getWhereShape(projectSchema, selectedShapes) {
|
|
362
|
-
const shapeName = selectedShapes.length === 1 ? `TSWhere${pascalCase(selectedShapes[0].name)}Input` : 'TSWhereInput';
|
|
363
|
-
if (projectSchema.shapes[shapeName]) {
|
|
364
|
-
return { shapeName, dependencies: {} };
|
|
365
|
-
}
|
|
366
|
-
const expandedShapes = expandUnionShapes(projectSchema, selectedShapes);
|
|
367
|
-
const isManyContentTypes = expandedShapes.length > 1;
|
|
368
|
-
const shapeCache = new ShapeCache();
|
|
369
|
-
const fields = getFields(shapeName, expandedShapes, {
|
|
370
|
-
projectSchema,
|
|
371
|
-
shapeCache,
|
|
372
|
-
relationshipDepth: 0
|
|
373
|
-
});
|
|
374
|
-
return {
|
|
375
|
-
shapeName,
|
|
376
|
-
dependencies: pruneEmpty({
|
|
377
|
-
[shapeName]: createShape(shapeName, {
|
|
378
|
-
type: 'object',
|
|
379
|
-
properties: {
|
|
380
|
-
...fields,
|
|
381
|
-
...(isManyContentTypes && getBooleanOperatorTypes(shapeName))
|
|
382
|
-
}
|
|
383
|
-
}),
|
|
384
|
-
...shapeCache.resolveAll()
|
|
385
|
-
})
|
|
386
|
-
};
|
|
387
|
-
}
|
|
388
|
-
export function getWhereSearchArg(projectSchema, selectedShapes) {
|
|
389
|
-
const { shapeName, dependencies } = getWhereShape(projectSchema, selectedShapes);
|
|
390
|
-
const schema = {
|
|
391
|
-
type: 'object',
|
|
392
|
-
properties: {
|
|
393
|
-
where: {
|
|
394
|
-
'@ref': `local:${shapeName}`,
|
|
395
|
-
description: 'The where clause uses the boolean AND, OR, and NOT parameters to construct complex filters based on the values of your fields. It applies an implicit AND to all the top-level keys. To avoid this, use a single OR or NOT key as the only top-level key.'
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
};
|
|
399
|
-
return { schema, dependencies };
|
|
400
|
-
}
|
package/dist/types/index.d.ts
DELETED
package/dist/types/index.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { PropertySchema, ShapeJSON } from '../project-schema/index.ts';
|
|
2
|
-
export type ContentTransform = (schema: PropertySchema, obj: unknown, name?: string) => unknown;
|
|
3
|
-
export type SourceKeyTransform = (name: string, schema: PropertySchema, parent: unknown) => string | string[];
|
|
4
|
-
export type KeyTransform = (name: string, schema: PropertySchema, sourceKey?: string) => string;
|
|
5
|
-
export type PropertyTransform = {
|
|
6
|
-
keyTransform?: KeyTransform;
|
|
7
|
-
filter(schema: PropertySchema, name: string, shape?: ShapeJSON): boolean;
|
|
8
|
-
process(value: unknown, schema: PropertySchema & {
|
|
9
|
-
$parent?: PropertySchema;
|
|
10
|
-
}, name: string, shape: ShapeJSON | undefined, next: (value: unknown, schema: PropertySchema, name: string) => unknown): unknown;
|
|
11
|
-
};
|
|
12
|
-
export type SchemaType = '*' | 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean';
|
|
13
|
-
export type PropertyTransformMap = {
|
|
14
|
-
[key in SchemaType]?: PropertyTransform[];
|
|
15
|
-
};
|
package/dist/types/transforms.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/types/types.d.ts
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import type { Overwrite } from '@takeshape/util';
|
|
2
|
-
import type { XMLParser } from 'fast-xml-parser';
|
|
3
|
-
import type { Merge, PartialDeep, SetOptional, SetRequired } from 'type-fest';
|
|
4
|
-
import type { SERVICE_OBJECT_PATTERN_NAME } from '../constants.ts';
|
|
5
|
-
import type { AnyProjectSchemaJSON, CachedFragmentConfig, CustomAuthentication, GetQueryLoaderConfig, ListQueryLoaderConfig, OAuth2Authentication, ProjectSchemaJSON, ProjectSchemaJSONV1_0_0, ProjectSchemaJSONV3_0_0, ProjectSchemaJSONV3_1_0, ProjectSchemaJSONV3_2_0, ProjectSchemaJSONV3_3_0, ProjectSchemaJSONV3_4_0, ProjectSchemaJSONV3_5_0, ProjectSchemaJSONV3_5_1, ProjectSchemaJSONV3_6_0, ProjectSchemaJSONV3_7_0, ProjectSchemaJSONV3_8_0, ProjectSchemaJSONV3_9_0, ProjectSchemaJSONV3_10_0, ProjectSchemaJSONV3_11_0, ProjectSchemaJSONV3_12_0, ProjectSchemaJSONV3_12_1, ProjectSchemaJSONV3_12_2, ProjectSchemaJSONV3_12_3, ProjectSchemaJSONV3_13_0, ProjectSchemaJSONV3_14_0, ProjectSchemaJSONV3_15_0, ProjectSchemaJSONV3_16_0, ProjectSchemaJSONV3_17_0, ProjectSchemaJSONV3_17_1, ProjectSchemaJSONV3_18_0, ProjectSchemaJSONV3_18_1, ProjectSchemaJSONV3_18_2, ProjectSchemaJSONV3_19_0, ProjectSchemaJSONV3_20_0, ProjectSchemaJSONV3_21_0, ProjectSchemaJSONV3_22_0, ProjectSchemaJSONV3_23_0, PropertySchema, QueryJSON, Ref, ServiceAuthentication, ServiceConfig, ServiceMapJSON, ShapeJSON, ShapeLoaders } from '../project-schema/index.ts';
|
|
6
|
-
export type ProjectSchemaJSONWithVersion = ProjectSchemaJSONV3_23_0 | ProjectSchemaJSONV3_22_0 | ProjectSchemaJSONV3_21_0 | ProjectSchemaJSONV3_20_0 | ProjectSchemaJSONV3_19_0 | ProjectSchemaJSONV3_18_2 | ProjectSchemaJSONV3_18_1 | ProjectSchemaJSONV3_18_0 | ProjectSchemaJSONV3_17_1 | ProjectSchemaJSONV3_17_0 | ProjectSchemaJSONV3_16_0 | ProjectSchemaJSONV3_15_0 | ProjectSchemaJSONV3_14_0 | ProjectSchemaJSONV3_13_0 | ProjectSchemaJSONV3_12_3 | ProjectSchemaJSONV3_12_2 | ProjectSchemaJSONV3_12_1 | ProjectSchemaJSONV3_12_0 | ProjectSchemaJSONV3_11_0 | ProjectSchemaJSONV3_10_0 | ProjectSchemaJSONV3_9_0 | ProjectSchemaJSONV3_8_0 | ProjectSchemaJSONV3_7_0 | ProjectSchemaJSONV3_6_0 | ProjectSchemaJSONV3_5_1 | ProjectSchemaJSONV3_5_0 | ProjectSchemaJSONV3_4_0 | ProjectSchemaJSONV3_3_0 | ProjectSchemaJSONV3_2_0 | ProjectSchemaJSONV3_1_0 | ProjectSchemaJSONV3_0_0 | ProjectSchemaJSONV1_0_0;
|
|
7
|
-
export declare const projectSchemaImportOptionalProps: readonly ["projectId", "locales", "defaultLocale", "author"];
|
|
8
|
-
export declare const legacyProjectSchemaImportOptionalProps: readonly ["created", "updated", "version", "dataKey"];
|
|
9
|
-
export type ProjectSchemaImport = SetOptional<AnyProjectSchemaJSON, (typeof projectSchemaImportOptionalProps)[number]>;
|
|
10
|
-
export type Content = {
|
|
11
|
-
[name: string]: any;
|
|
12
|
-
_id: string;
|
|
13
|
-
};
|
|
14
|
-
export type ServiceInfo = {
|
|
15
|
-
service: string;
|
|
16
|
-
fieldName: string;
|
|
17
|
-
path: string[];
|
|
18
|
-
generators: Record<typeof SERVICE_OBJECT_PATTERN_NAME, PatternGenerator | undefined>;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Remote service configuration types
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* Old service authentication
|
|
25
|
-
* @deprecated
|
|
26
|
-
*/
|
|
27
|
-
export type ServiceConfigAccessToken = {
|
|
28
|
-
accessToken: string;
|
|
29
|
-
refreshToken?: string;
|
|
30
|
-
scope?: string;
|
|
31
|
-
};
|
|
32
|
-
export type ServiceKey = string;
|
|
33
|
-
export type ServiceMap = Map<ServiceKey, ServiceConfig>;
|
|
34
|
-
export type PatternGenerator = {
|
|
35
|
-
version: string;
|
|
36
|
-
currentVersion: string;
|
|
37
|
-
idFieldName: string;
|
|
38
|
-
serviceObjectType: string;
|
|
39
|
-
};
|
|
40
|
-
export type Headers = Record<string, string | string[]>;
|
|
41
|
-
type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'HEAD' | 'DELETE' | 'OPTIONS' | 'TRACE' | 'get' | 'post' | 'put' | 'patch' | 'head' | 'delete' | 'options' | 'trace';
|
|
42
|
-
export type AllowedRetryOptions = number | Partial<{
|
|
43
|
-
limit: number;
|
|
44
|
-
methods: Method[];
|
|
45
|
-
statusCodes: number[];
|
|
46
|
-
errorCodes: string[];
|
|
47
|
-
maxRetryAfter: number;
|
|
48
|
-
backoffLimit: number;
|
|
49
|
-
noise: number;
|
|
50
|
-
}>;
|
|
51
|
-
export type RESTServiceConfig = Overwrite<ServiceConfig, {
|
|
52
|
-
serviceType: 'rest';
|
|
53
|
-
options: {
|
|
54
|
-
[name: string]: any;
|
|
55
|
-
endpoint: string;
|
|
56
|
-
headers?: Headers;
|
|
57
|
-
timeout?: number;
|
|
58
|
-
retry?: AllowedRetryOptions;
|
|
59
|
-
fastXmlParser?: ConstructorParameters<typeof XMLParser>[0];
|
|
60
|
-
};
|
|
61
|
-
}>;
|
|
62
|
-
export type GraphQLServiceConfig = Overwrite<ServiceConfig, {
|
|
63
|
-
serviceType: 'graphql';
|
|
64
|
-
options: {
|
|
65
|
-
[name: string]: any;
|
|
66
|
-
endpoint: string;
|
|
67
|
-
headers?: Headers;
|
|
68
|
-
timeout?: number;
|
|
69
|
-
};
|
|
70
|
-
}>;
|
|
71
|
-
export type OpenAPIServiceConfig = Merge<ServiceConfig, {
|
|
72
|
-
serviceType: 'openapi';
|
|
73
|
-
options: {
|
|
74
|
-
[name: string]: any;
|
|
75
|
-
endpoint: string;
|
|
76
|
-
spec: string;
|
|
77
|
-
headers?: Headers;
|
|
78
|
-
timeout?: number;
|
|
79
|
-
retry?: AllowedRetryOptions;
|
|
80
|
-
useRestfulNames?: boolean;
|
|
81
|
-
introspectedAt?: string;
|
|
82
|
-
transformVersion?: string;
|
|
83
|
-
};
|
|
84
|
-
}>;
|
|
85
|
-
export type EncryptedServiceConfig = Overwrite<ServiceConfig, {
|
|
86
|
-
authentication: string;
|
|
87
|
-
}>;
|
|
88
|
-
export type ServiceConfigWithOAuth2Authentication = Merge<ServiceConfig, {
|
|
89
|
-
authentication: OAuth2Authentication;
|
|
90
|
-
}>;
|
|
91
|
-
export type ServiceConfigWithCustomAuthentication = Merge<ServiceConfig, {
|
|
92
|
-
authentication: CustomAuthentication;
|
|
93
|
-
}>;
|
|
94
|
-
/**
|
|
95
|
-
* Support null sentinels for authentication
|
|
96
|
-
*/
|
|
97
|
-
export type ServiceConfigWithNullSentinelAuthentication = Overwrite<ServiceConfig, {
|
|
98
|
-
authentication?: ServiceAuthentication | null;
|
|
99
|
-
}>;
|
|
100
|
-
/**
|
|
101
|
-
* A type suitable for service object updates, mostly concerns authentication
|
|
102
|
-
* requirements.
|
|
103
|
-
*/
|
|
104
|
-
export type ServiceConfigUpdate = SetRequired<PartialDeep<ServiceConfigWithNullSentinelAuthentication>, 'authenticationType'>;
|
|
105
|
-
export type LatestProjectSchemaWithServices = {
|
|
106
|
-
services: ServiceMapJSON;
|
|
107
|
-
} & ProjectSchemaJSON;
|
|
108
|
-
/**
|
|
109
|
-
* Types of args
|
|
110
|
-
*/
|
|
111
|
-
export declare enum ArgsType {
|
|
112
|
-
'@args' = "@args",
|
|
113
|
-
args = "args"
|
|
114
|
-
}
|
|
115
|
-
export type SchemaWithArgs = PropertySchema | QueryJSON;
|
|
116
|
-
/**
|
|
117
|
-
* Types supporting schema iterators
|
|
118
|
-
*/
|
|
119
|
-
export type SchemaPropertyName = string;
|
|
120
|
-
export type SchemaPropertyNode = [SchemaPropertyName, PropertySchema];
|
|
121
|
-
export type SchemaPropertyIterator = SchemaPropertyNode[];
|
|
122
|
-
export type ShopifyServiceConfig = Overwrite<ServiceConfig, {
|
|
123
|
-
serviceType: 'graphql';
|
|
124
|
-
provider: 'shopify';
|
|
125
|
-
options: {
|
|
126
|
-
shop: string;
|
|
127
|
-
endpoint: string;
|
|
128
|
-
};
|
|
129
|
-
}>;
|
|
130
|
-
export type SchemaPath = Array<string | number>;
|
|
131
|
-
export type LayerSchema = Pick<ProjectSchemaJSON, 'shapes' | 'queries' | 'mutations' | 'schemaVersion'>;
|
|
132
|
-
export type ServiceLayers = Record<string, LayerState>;
|
|
133
|
-
export type UndefinedLayerState = {
|
|
134
|
-
id: string;
|
|
135
|
-
schema: undefined;
|
|
136
|
-
status: 'disconnected' | 'error' | 'notAvailable';
|
|
137
|
-
};
|
|
138
|
-
export type DefinedLayerState = {
|
|
139
|
-
id: string;
|
|
140
|
-
schema: LayerSchema;
|
|
141
|
-
status: 'ok';
|
|
142
|
-
};
|
|
143
|
-
export type LayerState = UndefinedLayerState | DefinedLayerState;
|
|
144
|
-
export type LayerStatus = LayerState['status'];
|
|
145
|
-
export type UndefinedLayerStatus = UndefinedLayerState['status'];
|
|
146
|
-
/**
|
|
147
|
-
* Shapes
|
|
148
|
-
*/
|
|
149
|
-
export type ShapeRefs = Ref[];
|
|
150
|
-
/**
|
|
151
|
-
* Relationships
|
|
152
|
-
*/
|
|
153
|
-
export type PropertySchemaWithRelationship = PropertySchema & {
|
|
154
|
-
'@resolver': {
|
|
155
|
-
name: 'shapedb:getRelated';
|
|
156
|
-
service: 'shapedb';
|
|
157
|
-
options?: {
|
|
158
|
-
nullable?: boolean;
|
|
159
|
-
};
|
|
160
|
-
};
|
|
161
|
-
};
|
|
162
|
-
/**
|
|
163
|
-
* New relationship data, drawn from a PropertySchema.
|
|
164
|
-
*/
|
|
165
|
-
export type Relationship = {
|
|
166
|
-
isMultiple: boolean;
|
|
167
|
-
refs: ShapeRefs;
|
|
168
|
-
hasBackreference: boolean;
|
|
169
|
-
backreferenceName?: string;
|
|
170
|
-
};
|
|
171
|
-
/**
|
|
172
|
-
* The old relationship format, used in client UI.
|
|
173
|
-
*/
|
|
174
|
-
export type LegacyRelationship = {
|
|
175
|
-
shapeIds: string[];
|
|
176
|
-
type?: 'single' | 'multiple';
|
|
177
|
-
};
|
|
178
|
-
export type RelationshipEnv = {
|
|
179
|
-
shapeId: string;
|
|
180
|
-
path: string[];
|
|
181
|
-
hasBackreference: boolean;
|
|
182
|
-
relatedName?: string;
|
|
183
|
-
schema: PropertySchema;
|
|
184
|
-
shapeName: string;
|
|
185
|
-
};
|
|
186
|
-
export type CachedShape = SetRequired<ShapeJSON, 'loaders' | 'cache'>;
|
|
187
|
-
export type CachedShapeMap = Record<string, CachedShape>;
|
|
188
|
-
export type ListQueryIndexingConfig = CachedFragmentConfig & ListQueryLoaderConfig & {
|
|
189
|
-
shapeName: string;
|
|
190
|
-
idField: string;
|
|
191
|
-
};
|
|
192
|
-
export type GetQueryIndexingConfig = CachedFragmentConfig & GetQueryLoaderConfig & {
|
|
193
|
-
shapeName: string;
|
|
194
|
-
idField: string;
|
|
195
|
-
};
|
|
196
|
-
export type MeshShape = SetRequired<ShapeJSON, 'joins'>;
|
|
197
|
-
export type ReferenceableShape = ShapeJSON & {
|
|
198
|
-
loaders: SetRequired<ShapeLoaders, 'get'>;
|
|
199
|
-
};
|
|
200
|
-
export {};
|
package/dist/types/types.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export const projectSchemaImportOptionalProps = ['projectId', 'locales', 'defaultLocale', 'author'];
|
|
2
|
-
export const legacyProjectSchemaImportOptionalProps = ['created', 'updated', 'version', 'dataKey'];
|
|
3
|
-
/**
|
|
4
|
-
* Types of args
|
|
5
|
-
*/
|
|
6
|
-
export var ArgsType;
|
|
7
|
-
(function (ArgsType) {
|
|
8
|
-
ArgsType["@args"] = "@args";
|
|
9
|
-
ArgsType["args"] = "args";
|
|
10
|
-
})(ArgsType || (ArgsType = {}));
|