@supernova-studio/client 0.48.6 → 1.0.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.
Files changed (121) hide show
  1. package/dist/index.d.mts +1166 -44199
  2. package/dist/index.mjs +4583 -9902
  3. package/dist/index.mjs.map +1 -1
  4. package/package.json +11 -30
  5. package/dist/index.d.ts +0 -44442
  6. package/dist/index.js +0 -11007
  7. package/dist/index.js.map +0 -1
  8. package/src/api/conversion/documentation/documentation-group-v1-to-dto.ts +0 -114
  9. package/src/api/conversion/documentation/documentation-group-v2-to-dto.ts +0 -92
  10. package/src/api/conversion/documentation/documentation-item-configuration-v1-to-dto.ts +0 -52
  11. package/src/api/conversion/documentation/documentation-item-configuration-v2-to-dto.ts +0 -34
  12. package/src/api/conversion/documentation/documentation-page-to-dto-utils.ts +0 -132
  13. package/src/api/conversion/documentation/documentation-page-v1-to-dto.ts +0 -69
  14. package/src/api/conversion/documentation/documentation-page-v2-to-dto.ts +0 -72
  15. package/src/api/conversion/documentation/index.ts +0 -7
  16. package/src/api/conversion/export/index.ts +0 -1
  17. package/src/api/conversion/export/pipeline.ts +0 -24
  18. package/src/api/conversion/index.ts +0 -3
  19. package/src/api/conversion/integrations/git.ts +0 -37
  20. package/src/api/conversion/integrations/index.ts +0 -2
  21. package/src/api/conversion/integrations/integration.ts +0 -37
  22. package/src/api/dto/design-systems/brand.ts +0 -22
  23. package/src/api/dto/design-systems/data-source.ts +0 -122
  24. package/src/api/dto/design-systems/design-system.ts +0 -18
  25. package/src/api/dto/design-systems/elements-diff.ts +0 -14
  26. package/src/api/dto/design-systems/exporter-property.ts +0 -8
  27. package/src/api/dto/design-systems/index.ts +0 -7
  28. package/src/api/dto/design-systems/version.ts +0 -57
  29. package/src/api/dto/design-systems/view.ts +0 -45
  30. package/src/api/dto/documentation/anchor.ts +0 -15
  31. package/src/api/dto/documentation/block-definition.ts +0 -28
  32. package/src/api/dto/documentation/block.ts +0 -6
  33. package/src/api/dto/documentation/documentation-page-snapshot.ts +0 -18
  34. package/src/api/dto/documentation/index.ts +0 -6
  35. package/src/api/dto/documentation/link-preview.ts +0 -23
  36. package/src/api/dto/documentation/publish.ts +0 -25
  37. package/src/api/dto/elements/documentation/draft-state.ts +0 -35
  38. package/src/api/dto/elements/documentation/group-action.ts +0 -108
  39. package/src/api/dto/elements/documentation/group-v1.ts +0 -35
  40. package/src/api/dto/elements/documentation/group-v2.ts +0 -109
  41. package/src/api/dto/elements/documentation/hierarchy.ts +0 -36
  42. package/src/api/dto/elements/documentation/index.ts +0 -11
  43. package/src/api/dto/elements/documentation/item-configuration-v1.ts +0 -24
  44. package/src/api/dto/elements/documentation/item-configuration-v2.ts +0 -14
  45. package/src/api/dto/elements/documentation/page-actions-v2.ts +0 -108
  46. package/src/api/dto/elements/documentation/page-content.ts +0 -15
  47. package/src/api/dto/elements/documentation/page-v1.ts +0 -21
  48. package/src/api/dto/elements/documentation/page-v2.ts +0 -105
  49. package/src/api/dto/elements/elements-action-v2.ts +0 -114
  50. package/src/api/dto/elements/figma-nodes/figma-node.ts +0 -55
  51. package/src/api/dto/elements/figma-nodes/index.ts +0 -2
  52. package/src/api/dto/elements/figma-nodes/node-actions-v2.ts +0 -24
  53. package/src/api/dto/elements/get-elements-v2.ts +0 -21
  54. package/src/api/dto/elements/index.ts +0 -5
  55. package/src/api/dto/elements/properties/index.ts +0 -3
  56. package/src/api/dto/elements/properties/property-definitions-actions-v2.ts +0 -53
  57. package/src/api/dto/elements/properties/property-definitions.ts +0 -62
  58. package/src/api/dto/elements/properties/property-values.ts +0 -17
  59. package/src/api/dto/export/exporter.ts +0 -73
  60. package/src/api/dto/export/index.ts +0 -3
  61. package/src/api/dto/export/job.ts +0 -75
  62. package/src/api/dto/export/pipeline.ts +0 -20
  63. package/src/api/dto/figma-components/assets/download.ts +0 -30
  64. package/src/api/dto/figma-components/assets/index.ts +0 -1
  65. package/src/api/dto/figma-components/index.ts +0 -1
  66. package/src/api/dto/index.ts +0 -8
  67. package/src/api/dto/liveblocks/auth-response.ts +0 -7
  68. package/src/api/dto/liveblocks/index.ts +0 -1
  69. package/src/api/dto/users/index.ts +0 -1
  70. package/src/api/dto/users/profile/index.ts +0 -1
  71. package/src/api/dto/users/profile/update.ts +0 -7
  72. package/src/api/dto/workspaces/git.ts +0 -32
  73. package/src/api/dto/workspaces/index.ts +0 -5
  74. package/src/api/dto/workspaces/integrations.ts +0 -34
  75. package/src/api/dto/workspaces/membership.ts +0 -29
  76. package/src/api/dto/workspaces/npm-registry.ts +0 -35
  77. package/src/api/dto/workspaces/workspace.ts +0 -16
  78. package/src/api/index.ts +0 -3
  79. package/src/api/payloads/design-systems/brand.ts +0 -11
  80. package/src/api/payloads/design-systems/index.ts +0 -2
  81. package/src/api/payloads/design-systems/version.ts +0 -29
  82. package/src/api/payloads/documentation/block-definitions.ts +0 -12
  83. package/src/api/payloads/documentation/design-data-doc-diff.ts +0 -7
  84. package/src/api/payloads/documentation/index.ts +0 -2
  85. package/src/api/payloads/export/index.ts +0 -1
  86. package/src/api/payloads/export/pipeline.ts +0 -46
  87. package/src/api/payloads/index.ts +0 -6
  88. package/src/api/payloads/liveblocks/auth.ts +0 -7
  89. package/src/api/payloads/liveblocks/index.ts +0 -1
  90. package/src/api/payloads/users/index.ts +0 -2
  91. package/src/api/payloads/users/notifications/index.ts +0 -1
  92. package/src/api/payloads/users/notifications/notification-settings.ts +0 -17
  93. package/src/api/payloads/users/profile/index.ts +0 -1
  94. package/src/api/payloads/users/profile/update.ts +0 -4
  95. package/src/api/payloads/workspaces/index.ts +0 -2
  96. package/src/api/payloads/workspaces/workspace-configuration.ts +0 -50
  97. package/src/api/payloads/workspaces/workspace-integrations.ts +0 -26
  98. package/src/index.ts +0 -3
  99. package/src/utils/hash.ts +0 -62
  100. package/src/utils/index.ts +0 -1
  101. package/src/yjs/design-system-content/documentation-hierarchy.ts +0 -33
  102. package/src/yjs/design-system-content/index.ts +0 -2
  103. package/src/yjs/design-system-content/item-configuration.ts +0 -93
  104. package/src/yjs/docs-editor/blocks-to-prosemirror.ts +0 -697
  105. package/src/yjs/docs-editor/index.ts +0 -7
  106. package/src/yjs/docs-editor/list-tree-builder.ts +0 -135
  107. package/src/yjs/docs-editor/mock.ts +0 -2447
  108. package/src/yjs/docs-editor/model/block.ts +0 -8
  109. package/src/yjs/docs-editor/model/index.ts +0 -2
  110. package/src/yjs/docs-editor/model/page.ts +0 -8
  111. package/src/yjs/docs-editor/prosemirror/index.ts +0 -2
  112. package/src/yjs/docs-editor/prosemirror/schema.ts +0 -657
  113. package/src/yjs/docs-editor/prosemirror/types.ts +0 -19
  114. package/src/yjs/docs-editor/prosemirror-to-blocks.ts +0 -900
  115. package/src/yjs/docs-editor/utils.ts +0 -115
  116. package/src/yjs/index.ts +0 -3
  117. package/src/yjs/version-room/backend.ts +0 -60
  118. package/src/yjs/version-room/base.ts +0 -185
  119. package/src/yjs/version-room/frontend.ts +0 -298
  120. package/src/yjs/version-room/index.ts +0 -4
  121. package/src/yjs/version-room/utils.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../model/src/asset-delete-schedule/asset-delete-schedule.ts","../../model/src/auth/plugin-oauth-request.ts","../../model/src/billing/card.ts","../../model/src/billing/checkoutSession.ts","../../model/src/billing/customer.ts","../../model/src/helpers/db.ts","../../model/src/helpers/nullish-to-optional.ts","../../model/src/billing/features.ts","../../model/src/billing/invoice.ts","../../model/src/billing/portalSession.ts","../../model/src/billing/price.ts","../../model/src/billing/product.ts","../../model/src/billing/subscription.ts","../../model/src/common/entity.ts","../../model/src/common/object-meta.ts","../../model/src/custom-domains/custom-domains.ts","../../model/src/data-dumps/code-integration-dump.ts","../../model/src/export/exporter.ts","../../model/src/export/git-providers.ts","../../model/src/export/pulsar.ts","../../model/src/export/pipeline.ts","../../model/src/export/export-destinations.ts","../../model/src/dsm/assets/asset-dynamo-record.ts","../../model/src/dsm/assets/asset-reference.ts","../../model/src/dsm/assets/asset-value.ts","../../model/src/dsm/assets/asset.ts","../../model/src/dsm/components/asset-rendering.ts","../../model/src/dsm/import/support/figma-files.ts","../../model/src/dsm/import/support/import-context.ts","../../model/src/dsm/data-sources/data-source.ts","../../model/src/dsm/import/warning.ts","../../model/src/dsm/data-sources/import-summary.ts","../../model/src/dsm/elements/data/base.ts","../../model/src/dsm/elements/data/blur.ts","../../model/src/dsm/elements/data/dimension.ts","../../model/src/dsm/elements/data/border-radius.ts","../../model/src/dsm/elements/data/border-width.ts","../../model/src/dsm/elements/data/border.ts","../../model/src/dsm/elements/data/color.ts","../../model/src/dsm/elements/data/opacity.ts","../../model/src/dsm/elements/data/component.ts","../../model/src/dsm/elements/data/documentation-block-v1.ts","../../model/src/dsm/properties/property-definition.ts","../../model/src/dsm/properties/property-value.ts","../../model/src/dsm/elements/primitives/point.ts","../../model/src/dsm/elements/primitives/size.ts","../../model/src/dsm/elements/raw-element.ts","../../model/src/dsm/elements/data/documentation-block-v2.ts","../../model/src/dsm/elements/data/documentation-page-v1.ts","../../model/src/dsm/elements/data/documentation-v1.ts","../../model/src/dsm/elements/data/item-header-v1.ts","../../model/src/dsm/elements/data/item-header.ts","../../model/src/dsm/elements/data/documentation-page-v2.ts","../../model/src/dsm/elements/data/documentation-v2.ts","../../model/src/dsm/elements/data/item-header-v2.ts","../../model/src/dsm/elements/data/documentation-section-v2.ts","../../model/src/dsm/elements/page-block-v2.ts","../../model/src/dsm/elements/base.ts","../../model/src/dsm/elements/data/duration.ts","../../model/src/dsm/elements/data/figma-file-structure.ts","../../model/src/dsm/elements/data/figma-node-reference.ts","../../model/src/dsm/elements/data/font-family.ts","../../model/src/dsm/elements/data/font-size.ts","../../model/src/dsm/elements/data/font-weight.ts","../../model/src/dsm/elements/data/gradient.ts","../../model/src/dsm/elements/data/group.ts","../../model/src/dsm/elements/data/letter-spacing.ts","../../model/src/dsm/elements/data/line-height.ts","../../model/src/dsm/elements/data/paragraph-indent.ts","../../model/src/dsm/elements/data/paragraph-spacing.ts","../../model/src/dsm/elements/data/product-copy.ts","../../model/src/dsm/elements/data/safe-id.ts","../../model/src/dsm/elements/data/shadow.ts","../../model/src/dsm/elements/data/size.ts","../../model/src/dsm/elements/data/space.ts","../../model/src/dsm/elements/data/string.ts","../../model/src/dsm/elements/data/text-case.ts","../../model/src/dsm/elements/data/text-decoration.ts","../../model/src/dsm/elements/data/typography.ts","../../model/src/dsm/elements/data/visibility.ts","../../model/src/dsm/elements/data/z-index.ts","../../model/src/dsm/elements/component.ts","../../model/src/dsm/elements/documentation-page-v1.ts","../../model/src/dsm/elements/group.ts","../../model/src/dsm/elements/documentation-page-v2.ts","../../model/src/dsm/elements/figma-file-structures.ts","../../model/src/dsm/elements/figma-node-reference.ts","../../model/src/dsm/elements/theme.ts","../../model/src/dsm/elements/tokens.ts","../../model/src/dsm/elements/utils.ts","../../model/src/dsm/data-sources/import-job.ts","../../model/src/dsm/import/support/import-model-collections.ts","../../model/src/dsm/import/image.ts","../../model/src/dsm/import/component.ts","../../model/src/dsm/import/base.ts","../../model/src/dsm/import/theme.ts","../../model/src/dsm/import/tokens.ts","../../model/src/dsm/import/figma-frames.ts","../../model/src/dsm/import/data-source.ts","../../model/src/dsm/documentation/block-definitions/aux.ts","../../model/src/dsm/documentation/block-definitions/definition.ts","../../model/src/dsm/documentation/block-definitions/item.ts","../../model/src/dsm/documentation/block-definitions/variant.ts","../../model/src/dsm/documentation/group.ts","../../model/src/dsm/documentation/link-preview.ts","../../model/src/dsm/documentation/page-anchor.ts","../../model/src/dsm/documentation/page-content-backup.ts","../../model/src/dsm/documentation/page-content.ts","../../model/src/dsm/documentation/page.ts","../../model/src/dsm/documentation/thread.ts","../../model/src/dsm/element-snapshots/base.ts","../../model/src/dsm/element-snapshots/documentation-page-snapshot.ts","../../model/src/dsm/element-snapshots/group-snapshot.ts","../../model/src/dsm/views/column.ts","../../model/src/dsm/views/view.ts","../../model/src/dsm/brand.ts","../../model/src/dsm/design-system.ts","../../model/src/workspace/workspace.ts","../../model/src/workspace/npm-registry-settings.ts","../../model/src/workspace/sso-provider.ts","../../model/src/dsm/desing-system-create.ts","../../model/src/dsm/desing-system-update.ts","../../model/src/dsm/exporter-property-values-collection.ts","../../model/src/dsm/published-doc-page.ts","../../model/src/dsm/published-doc.ts","../../model/src/dsm/version.ts","../../model/src/data-dumps/design-system-dump.ts","../../model/src/data-dumps/design-system-version-dump.ts","../../model/src/liveblocks/rooms/design-system-version-room.ts","../../model/src/liveblocks/rooms/documentation-page-room.ts","../../model/src/liveblocks/rooms/room-type.ts","../../model/src/liveblocks/rooms/workspace-room.ts","../../model/src/data-dumps/published-docs-dump.ts","../../model/src/data-dumps/user-data-dump.ts","../../model/src/users/linked-integrations.ts","../../model/src/users/user-analytics-cleanup-schedule.ts","../../model/src/users/user-create.ts","../../model/src/users/user-identity.ts","../../model/src/users/user-minified.ts","../../model/src/users/user-notification-settings.ts","../../model/src/users/user-profile.ts","../../model/src/users/user-test.ts","../../model/src/users/user.ts","../../model/src/data-dumps/workspace-dump.ts","../../model/src/integrations/integration.ts","../../model/src/utils/errors.ts","../../model/src/utils/common.ts","../../model/src/utils/content-loader-instruction.ts","../../model/src/utils/naming.ts","../../model/src/utils/slugify.ts","../../model/src/utils/validation.ts","../../model/src/docs-server/session.ts","../../model/src/export/export-runner/export-context.ts","../../model/src/export/export-runner/exporter-payload.ts","../../model/src/export/export-jobs.ts","../../model/src/export/exporter-workspace-membership-role.ts","../../model/src/export/exporter-workspace-membership.ts","../../model/src/feature-flags/feature-flags.ts","../../model/src/integrations/external-oauth-request.ts","../../model/src/integrations/oauth-providers.ts","../../model/src/integrations/git.ts","../../model/src/integrations/oauth-token.ts","../../model/src/integrations/workspace-oauth-requests.ts","../../model/src/npm/npm-package.ts","../../model/src/npm/npm-proxy-token-payload.ts","../../model/src/tokens/personal-access-token.ts","../../model/src/workspace/user-invite.ts","../../model/src/workspace/workspace-role.ts","../../model/src/workspace/workspace-configuration.ts","../../model/src/workspace/workspace-context.ts","../../model/src/workspace/workspace-create.ts","../../model/src/workspace/workspace-invitations.ts","../../model/src/workspace/workspace-membership.ts","../src/api/conversion/documentation/documentation-item-configuration-v1-to-dto.ts","../src/api/conversion/documentation/documentation-page-to-dto-utils.ts","../src/api/conversion/documentation/documentation-group-v1-to-dto.ts","../src/api/conversion/documentation/documentation-item-configuration-v2-to-dto.ts","../src/api/conversion/documentation/documentation-group-v2-to-dto.ts","../src/api/conversion/documentation/documentation-page-v1-to-dto.ts","../src/api/conversion/documentation/documentation-page-v2-to-dto.ts","../src/api/conversion/export/pipeline.ts","../src/api/conversion/integrations/git.ts","../src/api/conversion/integrations/integration.ts","../src/api/dto/design-systems/brand.ts","../src/api/dto/design-systems/data-source.ts","../src/api/dto/design-systems/design-system.ts","../src/api/dto/design-systems/elements-diff.ts","../src/api/dto/design-systems/exporter-property.ts","../src/api/dto/design-systems/version.ts","../src/api/payloads/design-systems/brand.ts","../src/api/payloads/design-systems/version.ts","../src/api/payloads/documentation/block-definitions.ts","../src/api/dto/documentation/block-definition.ts","../src/api/payloads/documentation/design-data-doc-diff.ts","../src/api/payloads/export/pipeline.ts","../src/api/payloads/liveblocks/auth.ts","../src/api/payloads/users/notifications/notification-settings.ts","../src/api/payloads/users/profile/update.ts","../src/api/payloads/workspaces/workspace-configuration.ts","../src/api/payloads/workspaces/workspace-integrations.ts","../src/api/dto/design-systems/view.ts","../src/api/dto/documentation/anchor.ts","../src/api/dto/documentation/block.ts","../src/api/dto/documentation/documentation-page-snapshot.ts","../src/api/dto/elements/documentation/page-v2.ts","../src/api/dto/elements/documentation/draft-state.ts","../src/api/dto/elements/documentation/item-configuration-v2.ts","../src/api/dto/documentation/link-preview.ts","../src/api/dto/documentation/publish.ts","../src/api/dto/export/exporter.ts","../src/api/dto/export/job.ts","../src/api/dto/export/pipeline.ts","../src/api/dto/elements/documentation/group-action.ts","../src/api/dto/elements/documentation/group-v2.ts","../src/api/dto/elements/documentation/group-v1.ts","../src/api/dto/elements/documentation/item-configuration-v1.ts","../src/api/dto/elements/documentation/hierarchy.ts","../src/api/dto/elements/documentation/page-actions-v2.ts","../src/api/dto/elements/documentation/page-content.ts","../src/api/dto/elements/documentation/page-v1.ts","../src/api/dto/elements/figma-nodes/figma-node.ts","../src/api/dto/elements/figma-nodes/node-actions-v2.ts","../src/api/dto/elements/properties/property-definitions-actions-v2.ts","../src/api/dto/elements/properties/property-definitions.ts","../src/api/dto/elements/properties/property-values.ts","../src/api/dto/elements/elements-action-v2.ts","../src/api/dto/elements/get-elements-v2.ts","../src/api/dto/figma-components/assets/download.ts","../src/api/dto/liveblocks/auth-response.ts","../src/api/dto/users/profile/update.ts","../src/api/dto/workspaces/git.ts","../src/api/dto/workspaces/integrations.ts","../src/api/dto/workspaces/membership.ts","../src/api/dto/workspaces/workspace.ts","../src/api/dto/workspaces/npm-registry.ts","../src/utils/hash.ts","../src/yjs/design-system-content/documentation-hierarchy.ts","../src/yjs/version-room/base.ts","../src/yjs/version-room/utils.ts","../src/yjs/version-room/frontend.ts","../src/yjs/design-system-content/item-configuration.ts","../src/yjs/docs-editor/model/block.ts","../src/yjs/docs-editor/model/page.ts","../src/yjs/docs-editor/prosemirror/schema.ts","../src/yjs/docs-editor/blocks-to-prosemirror.ts","../src/yjs/docs-editor/utils.ts","../src/yjs/docs-editor/list-tree-builder.ts","../src/yjs/docs-editor/mock.ts","../src/yjs/docs-editor/prosemirror-to-blocks.ts","../src/yjs/version-room/backend.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { DbCreateInputOmit } from \"../helpers\";\n\nconst AssetDeleteScheduleStatus = z.enum([\"InProgress\", \"Pending\"]);\nexport type AssetDeleteScheduleStatus = z.infer<typeof AssetDeleteScheduleStatus>;\n\n\nexport const AssetDeleteSchedule = z.object({\n id: z.string(),\n path: z.string(),\n createdAt: z.date(),\n deleteAt: z.date(),\n isFolder: z.boolean(),\n status: AssetDeleteScheduleStatus,\n});\n\nexport type AssetDeleteSchedule = z.infer<typeof AssetDeleteSchedule>;\n\nexport type AssetDeleteScheduleDbInput = DbCreateInputOmit<AssetDeleteSchedule>;\n\n","import { z } from \"zod\";\n\nexport const PluginOAuthRequestSchema = z.object({\n id: z.string(),\n codeChallenge: z.string(),\n readKey: z.string(),\n writeKey: z.string(),\n readKeyConsumed: z.boolean(),\n writeKeyConsumed: z.boolean(),\n oAuthCode: z.string().optional(),\n createdAt: z.coerce.date(),\n});\n\nexport type PluginOAuthRequest = z.infer<typeof PluginOAuthRequestSchema>;\n","import { z } from \"zod\";\n\nexport const CardSchema = z.object({\n cardId: z.string().nullish(),\n last4: z.string().length(4).nullish(),\n expiryMonth: z.string().nullish(),\n expiryYear: z.string().nullish(),\n brand: z.string().nullish(),\n name: z.string().nullish(),\n});\n\nexport type Card = z.infer<typeof CardSchema>;\n","import { z } from \"zod\";\n\nexport const PostStripeCheckoutBodyInputSchema = z.object({\n priceId: z.string(),\n successUrl: z.string().url(),\n cancelUrl: z.string().url(),\n quantity: z.number().int().min(1).optional(),\n});\n\nexport const PostStripeCheckoutOutputSchema = z.object({\n id: z.string(),\n url: z.string().nullish(),\n});\n\nexport type StripeCheckoutInput = z.infer<typeof PostStripeCheckoutBodyInputSchema>;\nexport type StripeCheckoutOutput = z.infer<typeof PostStripeCheckoutOutputSchema>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../helpers\";\n\nexport const Customer = z.object({\n id: z.string(),\n});\n\nexport const Address = z.object({\n street1: nullishToOptional(z.string()),\n street2: nullishToOptional(z.string()),\n city: nullishToOptional(z.string()),\n postal: nullishToOptional(z.string()),\n country: nullishToOptional(z.string()),\n state: nullishToOptional(z.string()),\n});\n\nexport const BillingDetails = z.object({\n address: nullishToOptional(Address),\n email: nullishToOptional(z.string()),\n companyName: nullishToOptional(z.string()),\n companyId: nullishToOptional(z.string()),\n notes: nullishToOptional(z.string()),\n vat: nullishToOptional(z.string()),\n poNumber: nullishToOptional(z.string()),\n});\n\nexport type Customer = z.infer<typeof Customer>;\nexport type Address = z.infer<typeof Address>;\nexport type BillingDetails = z.infer<typeof BillingDetails>;\n","export type DbCreateInputOmit<T> = Omit<T, \"id\" | \"createdAt\" | \"updatedAt\">;\n\nexport type DbUpdateInputOmit<T> = Omit<T, \"createdAt\" | \"updatedAt\" | \"persistentId\">;\n\nexport type DbUpdate<T extends { id: string }> = Partial<OptionalToNullable<DbUpdateInputOmit<Omit<T, \"id\">>>> &\n Pick<T, \"id\">;\n\ntype PickOptional<T> = {\n [P in keyof T as undefined extends T[P] ? P : never]: T[P];\n};\n\ntype PickNotOptional<T> = {\n [P in keyof T as undefined extends T[P] ? never : P]: T[P];\n};\n\nexport type OptionalToNullable<T> = {\n [K in keyof PickOptional<T>]-?: Exclude<T[K], undefined> | null;\n} & {\n [K in keyof PickNotOptional<T>]: T[K];\n};\n\nexport function zodCreateInputOmit() {\n return {\n id: true,\n createdAt: true,\n updatedAt: true,\n } as const;\n}\n\nexport function zodUpdateInputOmit() {\n return {\n id: true,\n createdAt: true,\n updatedAt: true,\n persistentId: true,\n } as const;\n}\n\n// function zodCreate<\n// T extends ZodRawShape,\n// UnknownKeys extends UnknownKeysParam = UnknownKeysParam,\n// Catchall extends ZodTypeAny = ZodTypeAny,\n// O = objectOutputType<T, Catchall, UnknownKeys>,\n// I = objectInputType<T, Catchall, UnknownKeys>\n// >(schema: ZodObject<T, UnknownKeysParam, ZodTypeAny, I, O>) {\n// return schema.omit(zodCreateInputOmit());\n// }\n\n// /**\n// * Don't use it yet, produces too complex type\n// */\n// function zodUpdate<\n// T extends ZodRawShape,\n// UnknownKeys extends UnknownKeysParam = UnknownKeysParam,\n// Catchall extends ZodTypeAny = ZodTypeAny,\n// O = objectOutputType<T, Catchall, UnknownKeys>,\n// I = objectInputType<T, Catchall, UnknownKeys>\n// >(schema: ZodObject<T, UnknownKeysParam, ZodTypeAny, I, O>) {\n// const hue = schema.omit(zodUpdateInputOmit());\n// return makeOptionalPropsNullable(hue).partial();\n// }\n\n// function makeOptionalPropsNullable<Schema extends z.AnyZodObject>(schema: Schema) {\n// type SchemaType = typeof schema;\n\n// // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n// const entries = Object.entries(schema.shape) as [keyof SchemaType[\"shape\"], z.ZodTypeAny][];\n// const newProps = entries.reduce(\n// (acc, [key, value]) => {\n// // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n// acc[key] = value instanceof z.ZodOptional ? value.unwrap().nullable() : value;\n// return acc;\n// },\n// {} as {\n// [key in keyof SchemaType[\"shape\"]]: SchemaType[\"shape\"][key] extends z.ZodOptional<infer T>\n// ? z.ZodNullable<T>\n// : SchemaType[\"shape\"][key];\n// }\n// );\n\n// return z.object(newProps);\n// }\n","import { ZodType, ZodTypeDef, z } from \"zod\";\n\n/**\n * Allows both null and undefined as input values in addition to the actual value,\n * but coerces them both to undefined.\n */\nexport function nullishToOptional<I, O>(type: ZodType<I, ZodTypeDef, O>) {\n return type.nullish().transform(t => t ?? undefined);\n}\n","import { z } from \"zod\";\n\nconst featureLimitedSchema = z.object({\n max: z.number(),\n errorMessage: z.string(),\n errorReason: z.string(),\n});\n\nconst featureToggleSchema = z.object({\n enabled: z.boolean(),\n errorMessage: z.string(),\n errorReason: z.string(),\n});\n\nconst featureWithImportJobsSchema = featureLimitedSchema.extend({\n noImportJobsErrorMessage: z.string(),\n noImportJobsErrorReason: z.string(),\n});\n\nexport const FeaturesSummary = z.object({\n designSystems: featureLimitedSchema,\n designSystemSources: featureWithImportJobsSchema,\n designSystemVersions: featureLimitedSchema,\n themes: featureLimitedSchema,\n brands: featureLimitedSchema,\n codegenSchedules: featureLimitedSchema,\n publicDocumentation: featureToggleSchema,\n customDocumentationUrl: featureToggleSchema,\n customDocumentationViewButton: featureToggleSchema,\n designSystemSourceAutoImport: featureToggleSchema,\n designSystemSlug: featureToggleSchema,\n ipWhitelisting: featureToggleSchema,\n npmRegistry: featureToggleSchema,\n sso: featureToggleSchema,\n workspacePaidSeats: featureLimitedSchema,\n workspaceViewers: featureLimitedSchema,\n customDocumentationExporter: featureToggleSchema,\n protectedPages: featureToggleSchema,\n});\n\nexport type FeatureLimitedDetails = z.infer<typeof featureLimitedSchema>;\nexport type FeatureToggleDetails = z.infer<typeof featureToggleSchema>;\nexport type FeatureWithImportJobsDetails = z.infer<typeof featureWithImportJobsSchema>;\nexport type FeaturesSummary = z.infer<typeof FeaturesSummary>;\n","import { z } from \"zod\";\nimport { CardSchema } from \"./card\";\n\nexport const InvoiceSchema = z.object({\n id: z.string(),\n number: z.string(),\n amount_due: z.number(),\n date: z.coerce.date(),\n hostedUrl: z.string().url(),\n card: CardSchema.nullish(),\n});\n\nexport const PeriodSchema = z.object({\n start: z.coerce.date(),\n end: z.coerce.date(),\n});\n\nexport const InvoiceLineSchema = z.object({\n amount: z.number(),\n period: PeriodSchema,\n proration: z.boolean(),\n description: z.string(),\n type: z.string(),\n});\n\nexport const InvoiceCouponSchema = z.object({\n amount_off: z.number(),\n percent_off: z.number(),\n name: z.string(),\n});\n\nexport type Invoice = z.infer<typeof InvoiceSchema>;\nexport type InvoiceLine = z.infer<typeof InvoiceLineSchema>;\nexport type InvoiceCoupon = z.infer<typeof InvoiceCouponSchema>;\n","import { z } from \"zod\";\n\nexport const PostStripePortalUpdateSessionBodyInputSchema = z.object({\n priceId: z.string(),\n numberOfSeats: z.number().int(),\n});\nexport const PostStripePortalSessionBodyInputSchema = z.object({\n returnUrl: z.string().url(),\n update: PostStripePortalUpdateSessionBodyInputSchema.optional(),\n cancel: z.boolean().optional(),\n});\n\nexport const PostStripePortalSessionOutputSchema = z.object({\n id: z.string(),\n url: z.string().nullish(),\n});\n\nexport type StripePortalSessionInput = z.infer<typeof PostStripePortalSessionBodyInputSchema>;\nexport type StripePortalSessionOutput = z.infer<typeof PostStripePortalSessionOutputSchema>;\n","import { z } from \"zod\";\n\nexport const BillingIntervalSchema = z.enum([\"daily\", \"monthly\", \"weekly\", \"yearly\"]);\n\nexport const PriceSchema = z.object({\n stripePriceId: z.string(),\n stripeProductId: z.string(),\n stripeProductName: z.string().optional(),\n stripeProductDescription: z.string().optional(),\n active: z.boolean(),\n amount: z.number(),\n interval: BillingIntervalSchema,\n isPricePerCreator: z.boolean().optional(),\n isTrial: z.boolean().optional(),\n isHidden: z.boolean().optional(),\n minimumSeats: z.number().optional(),\n legacyVersion: z.string().optional(),\n featuresSet: z.string().optional(),\n stripeProductFeatures: z.array(z.string()).optional(),\n stripeProductAdditionalFeatures: z.array(z.string()).optional(),\n});\n\nexport type BillingInterval = z.infer<typeof BillingIntervalSchema>;\nexport type Price = z.infer<typeof PriceSchema>;\n","import { z } from \"zod\";\n\nexport const ProductCodeSchema = z.enum([\"free\", \"team\", \"company\", \"enterprise\"]);\nexport type ProductCode = z.infer<typeof ProductCodeSchema>;\nexport const ProductCode = ProductCodeSchema.enum;\n","import { CardSchema } from \"./card\";\nimport { ProductCodeSchema } from \"./product\";\nimport { FeaturesSummary } from \"./features\";\nimport { BillingIntervalSchema } from \"./price\";\nimport { z } from \"zod\";\nexport const StripeSubscriptionStatusSchema = z.enum([\n \"trialing\",\n \"active\",\n \"past_due\",\n \"canceled\",\n \"unpaid\",\n \"incomplete_expired\",\n \"incomplete\",\n \"unknown\",\n]);\n\nexport const InternalStatusSchema = z.enum([\"active\", \"suspended\", \"gracePeriod\", \"cancelled\", \"downgraded_to_free\"]);\n\nexport const BillingTypeSchema = z.enum([\"Auto\", \"Invoice\"]);\n\nexport type StripeSubscriptionStatus = z.infer<typeof StripeSubscriptionStatusSchema>;\nexport type InternalStatus = z.infer<typeof InternalStatusSchema>;\nexport type BillingType = z.infer<typeof BillingTypeSchema>;\n\nexport const StripeSubscriptionStatus = StripeSubscriptionStatusSchema.enum;\nexport const InternalStatus = InternalStatusSchema.enum;\nexport const BillingType = BillingTypeSchema.enum;\n\nexport const Subscription = z.object({\n stripeSubscriptionId: z.string().nullish(),\n stripeCustomerId: z.string().nullish(),\n\n status: InternalStatusSchema.optional(),\n subscriptionStatus: StripeSubscriptionStatusSchema.optional(), // the stripe API official status\n internalStatus: InternalStatusSchema.optional(), // TODO: delete when create/get workspace will stop using it in the former API\n\n product: ProductCodeSchema,\n featuresSummary: FeaturesSummary.optional(),\n stripeProductDescription: z.string().optional(),\n stripeProductFeatures: z.array(z.string()).optional(),\n stripeProductAdditionalFeatures: z.array(z.string()).optional(),\n stripeSubscriptionMainItemId: z.string().optional(),\n planPriceId: z.string(),\n planInterval: BillingIntervalSchema,\n isPricePerCreator: z.boolean().optional(),\n legacyVersion: z.string().optional(),\n\n seats: z.number(),\n seatLimit: z.number(),\n\n currentPeriodStart: z.string().optional(),\n currentPeriodEnd: z.string().optional(),\n subscriptionStatusUpdatedAt: z.string().optional(),\n cancelAt: z.string().nullish(),\n\n card: CardSchema.optional(),\n\n // New\n amount: z.number().nullish(),\n isTrial: z.boolean().optional(),\n billingType: BillingTypeSchema.optional(),\n daysUntilDue: z.number().optional(),\n});\n\nexport type Subscription = z.infer<typeof Subscription>;\n","import { z } from \"zod\";\n\nexport const Entity = z.object({\n id: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport type Entity = z.infer<typeof Entity>;\n","import { z } from \"zod\";\n\nexport const ObjectMeta = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\nexport type ObjectMeta = z.infer<typeof ObjectMeta>;\n","import { z } from \"zod\";\n\nexport type CustomDomainState =\n | \"Initial\"\n | \"DomainSetupInProgress\"\n | \"DomainSetupFailed\"\n | \"DomainSetupSuccess\"\n | \"SSLSetupInProgress\"\n | \"SSLSetupFailed\"\n | \"SSLSetupSuccess\";\n\nexport const CustomDomain = z.object({\n id: z.string(),\n designSystemId: z.string(),\n state: z.string(),\n\n supernovaDomain: z.string(),\n customerDomain: z.string().nullish(),\n\n error: z.string().nullish(),\n errorCode: z.string().nullish(),\n});\n\nexport type CustomDomain = z.infer<typeof CustomDomain>;\n","import { z } from \"zod\";\nimport { Exporter } from \"../export/exporter\";\nimport { Pipeline } from \"../export/pipeline\";\n\nexport const ExportJobDump = z.object({\n id: z.string(),\n createdAt: z.coerce.date(),\n finishedAt: z.coerce.date(),\n exportArtefacts: z.string(),\n});\n\nexport const CodeIntegrationDump = z.object({\n exporters: Exporter.array(),\n pipelines: Pipeline.array(),\n exportJobs: ExportJobDump.array(),\n});\n\nexport type ExportJobDump = z.infer<typeof ExportJobDump>;\nexport type CodeIntegrationDump = z.infer<typeof CodeIntegrationDump>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../helpers\";\nimport { GitProvider } from \"./git-providers\";\nimport { PulsarContributionConfigurationProperty, PulsarContributionVariant, PulsarCustomBlock } from \"./pulsar\";\n\nexport const ExporterType = z.enum([\"code\", \"documentation\"]);\nexport const ExporterSource = z.enum([\"git\", \"upload\"]);\nexport const ExporterTag = z.string();\n\nexport const ExporterPulsarDetails = z.object({\n description: z.string(),\n version: z.string(),\n routingVersion: nullishToOptional(z.string()),\n author: nullishToOptional(z.string()),\n organization: nullishToOptional(z.string()),\n homepage: nullishToOptional(z.string()),\n readme: nullishToOptional(z.string()),\n tags: nullishToOptional(z.array(ExporterTag)).default([]),\n packageId: nullishToOptional(z.string().max(255)),\n\n iconURL: nullishToOptional(z.string()),\n configurationProperties: nullishToOptional(z.array(PulsarContributionConfigurationProperty)).default([]),\n customBlocks: nullishToOptional(z.array(PulsarCustomBlock)).default([]),\n blockVariants: nullishToOptional(z.record(z.string(), z.array(PulsarContributionVariant))).default({}),\n\n usesBrands: nullishToOptional(z.boolean()).default(false),\n usesThemes: nullishToOptional(z.boolean()).default(false),\n});\n\nexport const ExporterDetails = ExporterPulsarDetails.extend({\n source: ExporterSource,\n\n gitProvider: nullishToOptional(GitProvider),\n gitUrl: nullishToOptional(z.string()),\n gitBranch: nullishToOptional(z.string()),\n gitDirectory: nullishToOptional(z.string()),\n});\n\nexport const Exporter = z.object({\n id: z.string(),\n createdAt: z.coerce.date(),\n name: z.string(),\n isPrivate: z.boolean(),\n details: ExporterDetails,\n exporterType: nullishToOptional(ExporterType).default(\"code\"),\n storagePath: nullishToOptional(z.string()).default(\"\"),\n});\n\nexport type ExporterType = z.infer<typeof ExporterType>;\nexport type ExporterSource = z.infer<typeof ExporterSource>;\nexport type ExporterTag = z.infer<typeof ExporterTag>;\nexport type ExporterPulsarDetails = z.infer<typeof ExporterPulsarDetails>;\nexport type ExporterDetails = z.infer<typeof ExporterDetails>;\nexport type Exporter = z.infer<typeof Exporter>;\n","import { z } from \"zod\";\n\nexport enum GitProviderNames {\n Azure = \"azure\",\n Github = \"github\",\n Gitlab = \"gitlab\",\n Bitbucket = \"bitbucket\",\n}\n\nexport const GitProvider = z.nativeEnum(GitProviderNames);\nexport type GitProvider = z.infer<typeof GitProvider>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../helpers\";\n\n//\n// Base\n//\n\nexport const PulsarPropertyType = z.enum([\n \"string\",\n \"number\",\n \"boolean\",\n \"image\",\n \"enum\",\n \"color\",\n \"typography\",\n \"component\",\n \"componentProperties\",\n \"tokenProperties\",\n \"tokenType\",\n]);\n\nexport const PulsarBaseProperty = z.object({\n label: z.string(),\n key: z.string(),\n description: z.string().nullish(),\n type: PulsarPropertyType,\n values: z.array(z.string()).nullish(),\n default: z.union([z.string(), z.boolean(), z.number()]).nullish(), // PulsarPropertyValueType //is optional?\n inputType: z.enum([\"code\", \"plain\"]).optional(), //is optional?\n isMultiline: z.boolean().nullish(),\n});\n\n//\n// Exporter custom properties\n//\n\nexport const PulsarContributionConfigurationProperty = PulsarBaseProperty.extend({\n category: z.string(),\n});\n\n//\n// Exporter custom blocks\n//\n\nexport const PulsarContributionVariant = z.object({\n key: z.string(),\n name: z.string(),\n isDefault: nullishToOptional(z.boolean()),\n description: nullishToOptional(z.string()),\n thumbnailURL: nullishToOptional(z.string()),\n});\n\nexport const PulsarCustomBlock = z.object({\n title: nullishToOptional(z.string()),\n key: z.string(),\n category: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n iconURL: nullishToOptional(z.string()),\n mode: nullishToOptional(z.enum([\"array\", \"block\"])),\n properties: nullishToOptional(z.array(PulsarBaseProperty)).transform(v => v ?? []),\n});\n\n//\n// Types\n//\n\nexport type PulsarContributionVariant = z.infer<typeof PulsarContributionVariant>;\nexport type PulsarPropertyType = z.infer<typeof PulsarPropertyType>;\nexport type PulsarBaseProperty = z.infer<typeof PulsarBaseProperty>;\nexport type PulsarCustomBlock = z.infer<typeof PulsarCustomBlock>;\nexport type PulsarContributionConfigurationProperty = z.infer<typeof PulsarContributionConfigurationProperty>;\n","import { z } from \"zod\";\nimport { ExportDestinationsMap } from \"./export-destinations\";\n\nexport const PipelineEventType = z.enum([\"OnVersionReleased\", \"OnHeadChanged\", \"OnSourceUpdated\", \"None\"]);\n\nexport const PipelineDestinationGitType = z.enum([\"Github\", \"Gitlab\", \"Bitbucket\", \"Azure\"]);\nexport const PipelineDestinationExtraType = z.enum([\"WebhookUrl\", \"S3\", \"Documentation\"]);\nexport const PipelineDestinationType = z.union([PipelineDestinationGitType, PipelineDestinationExtraType]);\n\nexport const Pipeline = z.object({\n id: z.string(),\n\n name: z.string(),\n eventType: PipelineEventType,\n isEnabled: z.boolean(),\n\n workspaceId: z.string(),\n designSystemId: z.string(),\n exporterId: z.string(),\n\n brandPersistentId: z.string().optional(),\n themePersistentId: z.string().optional(),\n\n // Destinations\n ...ExportDestinationsMap.shape,\n});\n\nexport type PipelineEventType = z.infer<typeof PipelineEventType>;\nexport type PipelineDestinationGitType = z.infer<typeof PipelineDestinationGitType>;\nexport type PipelineDestinationExtraType = z.infer<typeof PipelineDestinationExtraType>;\nexport type PipelineDestinationType = z.infer<typeof PipelineDestinationType>;\n\nexport type Pipeline = z.infer<typeof Pipeline>;\n","import { z } from \"zod\";\nimport { PublishedDocEnvironment } from \"../dsm\";\nimport { nullishToOptional } from \"../helpers\";\n\nconst BITBUCKET_SLUG = /^[-a-zA-Z0-9~]*$/;\nconst BITBUCKET_MAX_LENGTH = 64;\n\nexport const ExporterDestinationDocs = z.object({\n environment: PublishedDocEnvironment,\n});\n\nexport const ExporterDestinationS3 = z.object({});\n\nexport const ExporterDestinationGithub = z.object({\n credentialId: z.string().optional(),\n\n // Repository\n url: z.string(),\n\n // Location\n branch: z.string(),\n relativePath: nullishToOptional(z.string()),\n\n // Legacy deprecated fields. Use `credentialId` instead\n connectionId: nullishToOptional(z.string()),\n userId: nullishToOptional(z.number()),\n});\n\nexport const ExporterDestinationAzure = z.object({\n credentialId: z.string().optional(),\n\n // Repository\n organizationId: z.string(),\n projectId: z.string(),\n repositoryId: z.string(),\n\n // Location\n branch: z.string(),\n relativePath: nullishToOptional(z.string()),\n\n // Maybe not needed\n url: nullishToOptional(z.string()),\n\n // Legacy deprecated fields. Use `credentialId` instead\n connectionId: nullishToOptional(z.string()),\n userId: nullishToOptional(z.number()),\n});\n\nexport const ExporterDestinationGitlab = z.object({\n credentialId: z.string().optional(),\n\n // Repository\n projectId: z.string(),\n\n // Location\n branch: z.string(),\n relativePath: nullishToOptional(z.string()),\n\n // Maybe not needed\n url: nullishToOptional(z.string()),\n\n // Legacy deprecated fields. Use `credentialId` instead\n connectionId: nullishToOptional(z.string()),\n userId: nullishToOptional(z.number()),\n});\n\nexport const ExporterDestinationBitbucket = z.object({\n credentialId: z.string().optional(),\n\n // Repository\n workspaceSlug: z.string().max(BITBUCKET_MAX_LENGTH).regex(BITBUCKET_SLUG),\n projectKey: z.string().max(BITBUCKET_MAX_LENGTH).regex(BITBUCKET_SLUG),\n repoSlug: z.string().max(BITBUCKET_MAX_LENGTH).regex(BITBUCKET_SLUG),\n\n // Location\n branch: z.string(),\n relativePath: nullishToOptional(z.string()),\n\n // Legacy deprecated fields. Use `credentialId` instead\n connectionId: nullishToOptional(z.string()),\n userId: nullishToOptional(z.number()),\n});\n\nexport const ExportDestinationsMap = z.object({\n webhookUrl: z.string().optional(),\n destinationSnDocs: ExporterDestinationDocs.optional(),\n destinationS3: ExporterDestinationS3.optional(),\n destinationGithub: ExporterDestinationGithub.optional(),\n destinationAzure: ExporterDestinationAzure.optional(),\n destinationGitlab: ExporterDestinationGitlab.optional(),\n destinationBitbucket: ExporterDestinationBitbucket.optional(),\n});\n\nexport type ExporterDestinationDocs = z.infer<typeof ExporterDestinationDocs>;\nexport type ExporterDestinationS3 = z.infer<typeof ExporterDestinationS3>;\nexport type ExporterDestinationGithub = z.infer<typeof ExporterDestinationGithub>;\nexport type ExporterDestinationAzure = z.infer<typeof ExporterDestinationAzure>;\nexport type ExporterDestinationGitlab = z.infer<typeof ExporterDestinationGitlab>;\nexport type ExporterDestinationBitbucket = z.infer<typeof ExporterDestinationBitbucket>;\nexport type ExportDestinationsMap = z.infer<typeof ExportDestinationsMap>;\n","import { z } from \"zod\";\n\nexport const AssetDynamoRecord = z.object({\n path: z.string(),\n id: z.string(),\n designSystemId: z.string(),\n expiresAt: z.number(),\n});\n\nexport type AssetDynamoRecord = z.infer<typeof AssetDynamoRecord>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit } from \"../../helpers\";\n\nexport const AssetReference = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n assetId: z.string(),\n persistentId: z.string(),\n});\n\nexport type AssetReference = z.infer<typeof AssetReference>;\n\nexport type CreateAssetReference = DbCreateInputOmit<AssetReference>;\n\nexport type AssetReferenceDiff = {\n toCreate: CreateAssetReference[];\n toDelete: string[];\n};\n","import { z } from \"zod\";\n\nexport const AssetValue = z.object({});\n","import { z } from \"zod\";\nimport { OmitStrict } from \"../../utils\";\n\nexport const AssetType = z.enum([\"Image\", \"Font\"]);\nexport const AssetScope = z.enum([\"DocumentationFrame\", \"ComponentThumbnail\", \"DesignSystem\", \"Documentation\"]);\n\nexport const AssetFontProperties = z.object({\n family: z.string(),\n subfamily: z.string(),\n});\n\nexport const AssetProperties = z.union([\n z.object({\n fontProperties: z.array(AssetFontProperties),\n }),\n z.object({\n width: z.number(),\n height: z.number(),\n }),\n]);\n\nexport const AssetOrigin = z.object({\n originKey: z.string(),\n});\n\nexport const AssetProcessStatus = z.enum([\"Pending\", \"Uploaded\", \"Processed\"]);\n\nexport const Asset = z.object({\n id: z.string(),\n designSystemId: z.string().nullish(),\n type: AssetType,\n originalFileName: z.string().nullish(),\n filePath: z.string(),\n scope: AssetScope,\n properties: AssetProperties.nullish(),\n state: AssetProcessStatus.optional(),\n origin: AssetOrigin.optional(),\n originKey: z.string().optional(),\n});\n\nexport const ResolvedAsset = Asset.extend({\n url: z.string(),\n});\n\nexport type AssetType = z.infer<typeof AssetType>;\nexport type AssetScope = z.infer<typeof AssetScope>;\nexport type AssetFontProperties = z.infer<typeof AssetFontProperties>;\nexport type AssetProperties = z.infer<typeof AssetProperties>;\nexport type AssetOrigin = z.infer<typeof AssetOrigin>;\nexport type Asset = z.infer<typeof Asset>;\nexport type ResolvedAsset = z.infer<typeof ResolvedAsset>;\n\nexport type ImportedAsset = OmitStrict<Asset, \"originKey\"> & {\n originKey: string;\n};\n\nexport function isImportedAsset(asset: Asset): asset is ImportedAsset {\n return !!asset.originKey;\n}\n","import { z } from \"zod\";\nimport { FigmaRenderFormat } from \"../import\";\n\nexport const AssetRenderConfiguration = z.object({\n prefix: z.string().optional(),\n suffix: z.string().optional(),\n scale: z.number(),\n format: FigmaRenderFormat,\n});\n\nexport const RenderedAssetFile = z.object({\n assetPersistentId: z.string(),\n assetName: z.string(),\n\n renderedImageFileName: z.string(),\n renderedImageUrl: z.string(),\n\n settings: AssetRenderConfiguration,\n});\n\nexport type AssetRenderConfiguration = z.infer<typeof AssetRenderConfiguration>;\nexport type RenderedAssetFile = z.infer<typeof RenderedAssetFile>;\n","import { z } from \"zod\";\n\nexport const FigmaFileDownloadScope = z.object({\n styles: z.boolean(),\n components: z.boolean(),\n currentVersion: z.literal(\"__latest__\").nullable(),\n publishedVersion: z.string().nullable(),\n downloadChunkSize: z.number().optional(),\n maxFileDepth: z.number().optional(),\n});\n\nexport const FigmaFileAccessData = z.object({\n accessToken: z.string(),\n});\n\nexport type FigmaFileDownloadScope = z.infer<typeof FigmaFileDownloadScope>;\nexport type FigmaFileAccessData = z.infer<typeof FigmaFileAccessData>;\n","import { z } from \"zod\";\nimport { DataSourceFigmaImportMetadata, DataSourceFigmaRemote } from \"../../data-sources\";\nimport { ImportWarning } from \"../warning\";\nimport { FigmaFileAccessData, FigmaFileDownloadScope } from \"./figma-files\";\n\n//\n// Importer payload\n//\n\nexport const ImportFunctionInput = z.object({\n importJobId: z.string(),\n importContextId: z.string(),\n designSystemId: z.string().optional(),\n});\n\nexport type ImportFunctionInput = z.infer<typeof ImportFunctionInput>;\n\n//\n// Base context\n//\n\nexport const ImportedFigmaSourceData = z.object({\n sourceId: z.string(),\n figmaRemote: DataSourceFigmaRemote,\n});\n\nexport const FigmaImportBaseContext = z.object({\n designSystemId: z.string(),\n\n /**\n * Data required for accessing Figma files. This should contain access data for all file ids\n * mentioned in the `importedSourceDataBySourceId`\n *\n * fileId: file data\n */\n fileAccessByFileId: z.record(FigmaFileAccessData),\n\n /**\n * Figma source data for which import was requested\n *\n * sourceId: source data\n */\n importedSourceDataBySourceId: z.record(ImportedFigmaSourceData),\n\n /**\n * Array of warnings that will be written into the import result summary at the end\n * of import job execution and displayed by the client.\n */\n importWarnings: z.record(ImportWarning.array()).default({}),\n});\n\nexport type ImportedFigmaSourceData = z.infer<typeof ImportedFigmaSourceData>;\nexport type FigmaImportBaseContext = z.infer<typeof FigmaImportBaseContext>;\n\n//\n// Context with source state updates\n//\n\nexport const FigmaImportContextWithSourcesState = FigmaImportBaseContext.extend({\n sourcesWithMissingAccess: z.array(z.string()).default([]),\n shadowOpacityOptional: z.boolean().default(false),\n});\n\nexport type FigmaImportContextWithSourcesState = z.infer<typeof FigmaImportContextWithSourcesState>;\n\n//\n// Context with file download scope\n//\n\nexport const ChangedImportedFigmaSourceData = ImportedFigmaSourceData.extend({\n importMetadata: DataSourceFigmaImportMetadata,\n});\n\nexport const FigmaImportContextWithDownloadScopes = FigmaImportContextWithSourcesState.extend({\n /**\n * Describes what to download from each file, this should contain all file id mentioned in\n * importMetadataBySourceId.\n *\n * File id -> file download scope\n */\n fileDownloadScopesByFileId: z.record(FigmaFileDownloadScope),\n\n /**\n * Sources filtered down to the ones that have changed since last import and therefore need to be\n * imported again.\n *\n * Source id -> import metadata\n */\n changedImportedSourceDataBySourceId: z.record(ChangedImportedFigmaSourceData),\n});\n\nexport type ChangedImportedFigmaSourceData = z.infer<typeof ChangedImportedFigmaSourceData>;\nexport type FigmaImportContextWithDownloadScopes = z.infer<typeof FigmaImportContextWithDownloadScopes>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, nullishToOptional } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { ImportWarning } from \"../import/warning\";\nimport { SourceImportSummary } from \"./import-summary\";\n\n//\n// Enums\n//\n\nexport const DataSourceRemoteType = z.enum([\"Figma\", \"TokenStudio\", \"FigmaVariablesPlugin\"]);\nexport const DataSourceUploadRemoteSource = z.enum([\"TokenStudio\", \"FigmaVariablesPlugin\", \"Custom\"]);\nexport const DataSourceFigmaState = z.enum([\"Active\", \"MissingIntegration\", \"MissingFileAccess\", \"MissingFileOwner\"]);\nexport const DataSourceAutoImportMode = z.enum([\"Never\", \"Hourly\"]);\n\nexport type DataSourceRemoteType = z.infer<typeof DataSourceRemoteType>;\nexport type DataSourceUploadRemoteSource = z.infer<typeof DataSourceUploadRemoteSource>;\nexport type DataSourceFigmaState = z.infer<typeof DataSourceFigmaState>;\nexport type DataSourceAutoImportMode = z.infer<typeof DataSourceAutoImportMode>;\n\n//\n// Aux\n//\n\nexport const DataSourceStats = z.object({\n tokens: zeroNumberByDefault(),\n components: zeroNumberByDefault(),\n assets: zeroNumberByDefault(),\n frames: zeroNumberByDefault(),\n});\n\nexport type DataSourceStats = z.infer<typeof DataSourceStats>;\n\n//\n// Figma\n//\n\nexport const DataSourceFigmaFileData = z.object({\n lastUpdatedAt: z.coerce.date(),\n});\n\nexport const DataSourceFigmaFileVersionData = z.object({\n id: z.string(),\n label: z.string().optional(),\n description: z.string().optional(),\n createdAt: z.coerce.date(),\n});\n\nexport const DataSourceFigmaScope = z.object({\n assets: z.boolean(),\n components: z.boolean(),\n documentationFrames: z.boolean(),\n tokens: z.boolean(),\n themePersistentId: z.string().optional(),\n isUnpublishedContentFallbackEnabled: z.boolean(),\n});\n\nexport const DataSourceFigmaImportMetadata = z.object({\n fileData: DataSourceFigmaFileData.optional(),\n importedPublishedVersion: DataSourceFigmaFileVersionData.optional(),\n});\n\nexport const DataSourceFigmaRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.Figma),\n fileId: z.string(),\n preferredCredentialId: z.string().optional(),\n ownerId: z.string(), // todo remove or keep to reference who created data source\n ownerName: z.string(), // todo probably remove\n scope: DataSourceFigmaScope,\n state: DataSourceFigmaState,\n requiresSync: z\n .boolean()\n .optional()\n .transform(v => v ?? false),\n lastImportMetadata: DataSourceFigmaImportMetadata.optional(),\n downloadChunkSize: z.number().optional(),\n figmaRenderChunkSize: z.number().optional(),\n maxFileDepth: z.number().optional(),\n});\n\nexport type DataSourceFigmaFileData = z.infer<typeof DataSourceFigmaFileData>;\nexport type DataSourceFigmaFileVersionData = z.infer<typeof DataSourceFigmaFileVersionData>;\nexport type DataSourceFigmaScope = z.infer<typeof DataSourceFigmaScope>;\nexport type DataSourceFigmaImportMetadata = z.infer<typeof DataSourceFigmaImportMetadata>;\nexport type DataSourceFigmaRemote = z.infer<typeof DataSourceFigmaRemote>;\n\n//\n// Token Studio\n//\n\nexport const DataSourceTokenStudioRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.TokenStudio),\n});\n\nexport type DataSourceTokenStudioRemote = z.infer<typeof DataSourceTokenStudioRemote>;\n\n//\n// Figma Variables Plugin\n//\n\nexport const DataSourceUploadImportMetadata = z.record(z.any());\n\nexport const DataSourceUploadRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.FigmaVariablesPlugin),\n remoteId: z.string(),\n remoteSourceType: DataSourceUploadRemoteSource,\n lastImportMetadata: DataSourceUploadImportMetadata.optional(),\n warnings: nullishToOptional(ImportWarning.array()),\n});\n\nexport type DataSourceUploadImportMetadata = z.infer<typeof DataSourceUploadImportMetadata>;\nexport type DataSourceUploadRemote = z.infer<typeof DataSourceUploadRemote>;\n\n//\n// Base\n//\n\nexport const DataSourceRemote = z.discriminatedUnion(\"type\", [\n DataSourceFigmaRemote,\n DataSourceUploadRemote,\n DataSourceTokenStudioRemote,\n]);\n\nexport const DataSource = z.object({\n id: z.string(),\n\n name: z.string(),\n thumbnailUrl: z.string().optional(),\n\n createdAt: z.coerce.date().optional(),\n\n lastImportedAt: z.coerce.date().optional(),\n lastImportSummary: SourceImportSummary.optional(),\n\n designSystemId: z.string(),\n brandPersistentId: z.string(),\n\n autoImportMode: DataSourceAutoImportMode,\n stats: DataSourceStats,\n\n remote: DataSourceRemote,\n\n sortOrder: z.number(),\n});\n\nexport const DataSourceVersion = z.object({\n id: z.string(),\n createdAt: z.coerce.date(),\n label: z.string().nullish(),\n description: z.string().nullish(),\n});\n\nexport type DataSourceVersion = z.infer<typeof DataSourceVersion>;\n\nexport type DataSourceRemote = z.infer<typeof DataSourceRemote>;\nexport type DataSource = z.infer<typeof DataSource>;\n\nexport type CreateDataSource = OmitStrict<DbCreateInputOmit<DataSource>, \"sortOrder\">;\nexport type UpdateDataSource = OmitStrict<DbUpdate<DataSource>, \"brandPersistentId\" | \"designSystemId\">;\n\nfunction zeroNumberByDefault() {\n return z\n .number()\n .nullish()\n .transform(v => v ?? 0);\n}\n","import { z } from \"zod\";\n\nexport const ImportWarningType = z.enum([\n \"NoVersionFound\",\n\n \"UnsupportedFill\",\n \"UnsupportedStroke\",\n \"UnsupportedEffect\",\n\n \"NoPublishedElements\",\n \"NoPublishedStyles\",\n \"NoPublishedComponents\",\n \"NoPublishedAssets\",\n\n \"StyleNotApplied\",\n\n \"ComponentHasNoThumbnail\",\n\n \"DuplicateImportedStyleId\",\n \"DuplicateImportedStylePath\",\n\n \"NoUnpublishedStyles\",\n\n \"ReferenceResolutionFailed\",\n]);\n\nexport const ImportWarning = z.object({\n warningType: ImportWarningType,\n componentId: z.string().optional(),\n componentName: z.string().optional(),\n styleId: z.string().optional(),\n styleName: z.string().optional(),\n unsupportedStyleValueType: z.string().optional(),\n referenceId: z.string().optional(),\n});\n\nexport type ImportWarningType = z.infer<typeof ImportWarningType>;\nexport type ImportWarning = z.infer<typeof ImportWarning>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../../helpers\";\nimport { DesignTokenType } from \"../elements\";\nimport { ImportWarning } from \"../import/warning\";\n\nexport const FileStructureStats = z.object({\n frames: zeroNumberByDefault(),\n components: zeroNumberByDefault(),\n componentSets: zeroNumberByDefault(),\n});\n\nconst SourceImportSummaryByTokenTypeKey = DesignTokenType.or(\n // Backward compatibility\n z.enum([\"Measure\", \"Radius\", \"GenericToken\", \"Font\", \"Text\"])\n);\n\nexport const SourceImportSummaryByTokenType = z.record(SourceImportSummaryByTokenTypeKey, z.number());\n\nexport const SourceImportTokenSummary = z.object({\n tokensCreated: zeroNumberByDefault(),\n tokensUpdated: zeroNumberByDefault(),\n tokensDeleted: zeroNumberByDefault(),\n tokensCreatedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n tokensUpdatedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n tokensDeletedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n});\n\nexport const SourceImportComponentSummary = z.object({\n componentsCreated: zeroNumberByDefault(),\n componentsUpdated: zeroNumberByDefault(),\n componentsDeleted: zeroNumberByDefault(),\n componentAssetsCreated: zeroNumberByDefault(),\n componentAssetsUpdated: zeroNumberByDefault(),\n componentAssetsDeleted: zeroNumberByDefault(),\n});\n\nexport const SourceImportFrameSummary = z.object({\n assetsInFile: nullishToOptional(FileStructureStats.optional()),\n invalidReferencesCount: nullishToOptional(z.number().optional()),\n});\n\nexport const SourceImportSummary = z.object({\n sourceId: nullishToOptional(z.string()),\n brandId: nullishToOptional(z.string()),\n versionId: nullishToOptional(z.string()),\n error: nullishToOptional(z.any()),\n isFailed: z.boolean(),\n warnings: z\n .array(ImportWarning)\n .nullish()\n .transform(v => v ?? []),\n\n ...SourceImportTokenSummary.shape,\n ...SourceImportComponentSummary.shape,\n ...FileStructureStats.shape,\n});\n\nexport type FileStructureStats = z.infer<typeof FileStructureStats>;\nexport type SourceImportSummaryByTokenType = z.infer<typeof SourceImportSummaryByTokenType>;\nexport type SourceImportTokenSummary = z.infer<typeof SourceImportTokenSummary>;\nexport type SourceImportComponentSummary = z.infer<typeof SourceImportComponentSummary>;\nexport type SourceImportFrameSummary = z.infer<typeof SourceImportFrameSummary>;\nexport type SourceImportSummary = z.infer<typeof SourceImportSummary>;\n\nfunction zeroNumberByDefault() {\n return z\n .number()\n .nullish()\n .transform(v => v ?? 0);\n}\n","import { ZodSchema, ZodTypeDef, z } from \"zod\";\n\nexport const TokenDataAliasSchema = z.object({\n aliasTo: z\n .string()\n .optional()\n .nullable()\n .transform(v => v ?? undefined),\n});\n\nexport function tokenAliasOrValue<I, O>(value: ZodSchema<I, ZodTypeDef, O>) {\n return TokenDataAliasSchema.extend({\n value: value\n .optional()\n .nullable()\n .transform(v => (v ?? undefined) as z.output<typeof value> | undefined),\n });\n}\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\nimport { DimensionTokenData } from \"./dimension\";\n\nexport const BlurType = z.enum([\"Layer\", \"Background\"]);\n\nexport const BlurValue = z.object({\n type: BlurType,\n radius: DimensionTokenData,\n});\n\nexport const BlurTokenData = tokenAliasOrValue(BlurValue);\n\nexport type BlurType = z.infer<typeof BlurType>;\nexport type BlurValue = z.infer<typeof BlurValue>;\nexport type BlurTokenData = z.infer<typeof BlurTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const DimensionUnit = z.enum([\"Pixels\", \"Percent\", \"Rem\", \"Ms\", \"Raw\", \"Points\"]);\n\nexport const DimensionValue = z.object({\n unit: DimensionUnit,\n measure: z.number(),\n});\n\nexport const DimensionTokenData = tokenAliasOrValue(DimensionValue);\n\nexport type DimensionUnit = z.infer<typeof DimensionUnit>;\nexport type DimensionValue = z.infer<typeof DimensionValue>;\nexport type DimensionTokenData = z.infer<typeof DimensionTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderRadiusUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const BorderRadiusValue = z.object({\n unit: BorderRadiusUnit,\n measure: z.number(),\n});\n\nexport const BorderRadiusTokenData = tokenAliasOrValue(BorderRadiusValue);\n\nexport type BorderRadiusUnit = z.infer<typeof BorderRadiusUnit>;\nexport type BorderRadiusValue = z.infer<typeof BorderRadiusValue>;\nexport type BorderRadiusTokenData = z.infer<typeof BorderRadiusTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderWidthUnit = z.enum([\"Pixels\"]);\n\nexport const BorderWidthValue = z.object({\n unit: BorderWidthUnit,\n measure: z.number(),\n});\n\nexport const BorderWidthTokenData = tokenAliasOrValue(BorderWidthValue);\n\nexport type BorderWidthUnit = z.infer<typeof BorderWidthUnit>;\nexport type BorderWidthValue = z.infer<typeof BorderWidthValue>;\nexport type BorderWidthTokenData = z.infer<typeof BorderWidthTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { BorderWidthTokenData } from \"./border-width\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderPosition = z.enum([\"Inside\", \"Center\", \"Outside\"]);\nexport const BorderStyle = z.enum([\"Dashed\", \"Dotted\", \"Solid\", \"Groove\"]);\n\nexport const BorderValue = z.object({\n color: ColorTokenData,\n width: BorderWidthTokenData,\n position: BorderPosition,\n style: BorderStyle.optional(),\n});\n\nexport const BorderTokenData = tokenAliasOrValue(BorderValue);\n\nexport type BorderPosition = z.infer<typeof BorderPosition>;\nexport type BorderStyle = z.infer<typeof BorderStyle>;\nexport type BorderValue = z.infer<typeof BorderValue>;\nexport type BorderTokenData = z.infer<typeof BorderTokenData>;\n","import { z } from \"zod\";\nimport { TokenDataAliasSchema, tokenAliasOrValue } from \"./base\";\nimport { OpacityTokenData } from \"./opacity\";\n\nexport const ColorValue = z.object({\n opacity: OpacityTokenData,\n color: z.string().or(TokenDataAliasSchema),\n});\n\nexport const ColorTokenData = tokenAliasOrValue(ColorValue);\n\nexport type ColorValue = z.infer<typeof ColorValue>;\nexport type ColorTokenData = z.infer<typeof ColorTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const OpacityValue = z.object({\n unit: z.enum([\"Raw\", \"Pixels\"]),\n measure: z.number(),\n});\n\nexport const OpacityTokenData = tokenAliasOrValue(OpacityValue);\n\nexport type OpacityValue = z.infer<typeof OpacityValue>;\nexport type OpacityTokenData = z.infer<typeof OpacityTokenData>;\n","import { z } from \"zod\";\n\nexport const ComponentElementData = z.object({\n value: z.object({\n thumbnailImage: z.object({\n value: z.object({\n url: z.string(),\n assetId: z.string(),\n }),\n }),\n\n svg: z\n .object({\n value: z.object({\n url: z.string(),\n assetId: z.string(),\n }),\n })\n .optional(),\n }),\n});\n\nexport type ComponentElementData = z.infer<typeof ComponentElementData>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { ColorTokenInlineData } from \"../../properties\";\nimport { Size } from \"../primitives\";\nimport { DesignTokenType } from \"../raw-element\";\nimport { DimensionTokenData } from \"./dimension\";\n\n//\n// Enums\n//\n\nexport const PageBlockCalloutType = z.enum([\"Info\", \"Primary\", \"Success\", \"Warning\", \"Error\"]);\n\nexport const PageBlockTypeV1 = z.enum([\n \"Text\",\n \"Heading\",\n \"Code\",\n \"UnorderedList\",\n \"OrderedList\",\n \"Quote\",\n \"Callout\",\n \"Divider\",\n \"Image\",\n \"Embed\",\n \"Link\",\n \"Shortcuts\",\n \"FigmaEmbed\",\n \"YoutubeEmbed\",\n \"StorybookEmbed\",\n \"Token\",\n \"TokenGroup\",\n \"TokenList\",\n \"Component\",\n \"ComponentGroup\",\n \"Theme\",\n \"ComponentSandbox\",\n \"Custom\",\n \"FigmaFrames\",\n \"ComponentAssets\",\n \"RenderCode\",\n \"Tabs\",\n \"TabItem\",\n \"Table\",\n \"TableRow\",\n \"TableCell\",\n \"Guidelines\",\n]);\n\nexport const PageBlockCodeLanguage = z.enum([\n \"Angular\",\n \"Bash\",\n \"C\",\n \"Cpp\",\n \"Csharp\",\n \"CSS\",\n \"Dart\",\n \"Handlebars\",\n \"HTML\",\n \"Java\",\n \"Javascript\",\n \"JSON\",\n \"ReactJSX\",\n \"ReactTSX\",\n \"Kotlin\",\n \"Lua\",\n \"Markdown\",\n \"ObjectiveC\",\n \"PHP\",\n \"Plain\",\n \"Python\",\n \"Ruby\",\n \"Rust\",\n \"Sass\",\n \"SCSS\",\n \"Svetle\",\n \"Swift\",\n \"Twig\",\n \"Typescript\",\n \"Vue\",\n \"XML\",\n \"YAML\",\n]);\n\nexport const PageBlockAlignment = z.enum([\"Left\", \"Center\", \"Stretch\", \"Right\"]);\nexport const PageBlockThemeType = z.enum([\"Override\", \"Comparison\"]);\nexport const PageBlockAssetType = z.enum([\"image\", \"figmaFrame\"]);\n\nexport const PageBlockTilesAlignment = z.enum([\"Center\", \"FrameHeight\"]);\n\nexport const PageBlockTilesLayout = z.enum([\"C8\", \"C7\", \"C6\", \"C5\", \"C4\", \"C3\", \"C2\", \"C1\", \"C1_75\"]);\n\n//\n// Support types\n//\n\nexport const PageBlockTheme = z.object({\n themeIds: z.array(z.string()),\n type: PageBlockThemeType,\n});\n\nexport const PageBlockUrlPreview = z.object({\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n thumbnailUrl: nullishToOptional(z.string()),\n});\n\nexport const PageBlockFrameOrigin = z.object({\n sourceFileName: nullishToOptional(z.string()),\n title: nullishToOptional(z.string()),\n previewUrl: nullishToOptional(z.string()),\n valid: nullishToOptional(z.boolean()),\n referenceId: nullishToOptional(z.string()),\n assetId: nullishToOptional(z.string()),\n assetScale: nullishToOptional(z.number()),\n width: nullishToOptional(z.number()),\n height: nullishToOptional(z.number()),\n});\n\nexport const PageBlockFrame = z.object({\n persistentId: z.string(),\n sourceId: z.string(),\n sourceFrameId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n origin: nullishToOptional(PageBlockFrameOrigin),\n});\n\nexport const PageBlockAsset = z.object({\n type: PageBlockAssetType,\n id: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n figmaFrame: nullishToOptional(PageBlockFrame),\n});\n\nexport const PageBlockLinkPreview = z.object({\n title: nullishToOptional(z.string()),\n valid: nullishToOptional(z.boolean()),\n});\n\nexport const PageBlockShortcut = z.object({\n persistentId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n asset: nullishToOptional(PageBlockAsset),\n documentationItemId: nullishToOptional(z.string()),\n pageHeadingId: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n openInNewTab: nullishToOptional(z.boolean()),\n urlPreview: nullishToOptional(PageBlockUrlPreview),\n documentationItemPreview: nullishToOptional(PageBlockLinkPreview),\n});\n\nexport const PageBlockCustomBlockPropertyImageValue = z.object({\n asset: nullishToOptional(PageBlockAsset),\n assetId: nullishToOptional(z.string()),\n assetUrl: nullishToOptional(z.string()),\n});\n\nexport const PageBlockCustomBlockPropertyValue = z.object({\n key: z.string(),\n value: z.any(),\n\n // TODO Artem: for some reason there are cases when there's an array here in the DB\n // e.g. element id 67451 in the dev db\n\n // value: z\n // .boolean()\n // .or(z.number())\n // .or(z.string())\n // .or(ColorTokenData)\n // .or(TypographyTokenData)\n // .or(PageBlockCustomBlockPropertyImageValue),\n});\n\nexport const PageBlockFigmaFrameProperties = z.object({\n color: nullishToOptional(\n z.object({\n value: z.string(),\n })\n ),\n alignment: PageBlockTilesAlignment,\n layout: PageBlockTilesLayout,\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n showTitles: z.boolean(),\n});\n\nexport const PageBlockRenderCodeProperties = z.object({\n showCode: z.boolean(),\n showControls: z.boolean().optional(),\n});\n\nexport const PageBlockAssetComponent = z.object({\n persistentId: z.string(),\n componentAssetId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n});\n\nexport const PageBlockTableColumn = z.object({\n id: z.string(),\n width: DimensionTokenData,\n});\n\nexport const PageBlockTableProperties = z.object({\n showBorders: z.boolean(),\n showHeaderRow: z.boolean(),\n showHeaderColumn: z.boolean(),\n columns: z.array(PageBlockTableColumn),\n});\n\nexport const PageBlockTextSpanAttributeType = z.enum([\"Bold\", \"Italic\", \"Link\", \"Strikethrough\", \"Code\"]);\n\nexport const PageBlockTextSpanAttribute = z.object({\n type: PageBlockTextSpanAttributeType,\n link: nullishToOptional(z.string()),\n documentationItemId: nullishToOptional(z.string()),\n openInNewWindow: nullishToOptional(z.boolean()), // deprecated. use openInNewTab\n openInNewTab: nullishToOptional(z.boolean()),\n});\n\nexport const PageBlockTextSpan = z.object({\n text: z.string(),\n attributes: z.array(PageBlockTextSpanAttribute),\n});\n\nexport const PageBlockText = z.object({\n spans: z.array(PageBlockTextSpan),\n});\n\nexport const PageBlockGuideline = z.object({\n description: nullishToOptional(z.string()),\n asset: nullishToOptional(PageBlockAsset),\n type: z.string(),\n});\n\nexport type PageBlockCalloutType = z.infer<typeof PageBlockCalloutType>;\nexport type PageBlockCodeLanguage = z.infer<typeof PageBlockCodeLanguage>;\nexport type PageBlockAlignment = z.infer<typeof PageBlockAlignment>;\nexport type PageBlockThemeType = z.infer<typeof PageBlockThemeType>;\nexport type PageBlockAssetType = z.infer<typeof PageBlockAssetType>;\nexport type PageBlockTilesAlignment = z.infer<typeof PageBlockTilesAlignment>;\nexport type PageBlockTilesLayout = z.infer<typeof PageBlockTilesLayout>;\nexport type PageBlockTextSpanAttributeType = z.infer<typeof PageBlockTextSpanAttributeType>;\n\nexport type PageBlockTypeV1 = z.infer<typeof PageBlockTypeV1>;\nexport type PageBlockTextSpanAttribute = z.infer<typeof PageBlockTextSpanAttribute>;\nexport type PageBlockTextSpan = z.infer<typeof PageBlockTextSpan>;\nexport type PageBlockText = z.infer<typeof PageBlockText>;\nexport type PageBlockGuideline = z.infer<typeof PageBlockGuideline>;\nexport type PageBlockFrame = z.infer<typeof PageBlockFrame>;\nexport type PageBlockFrameOrigin = z.infer<typeof PageBlockFrameOrigin>;\nexport type PageBlockAsset = z.infer<typeof PageBlockAsset>;\nexport type PageBlockTableColumn = z.infer<typeof PageBlockTableColumn>;\nexport type PageBlockTheme = z.infer<typeof PageBlockTheme>;\nexport type PageBlockShortcut = z.infer<typeof PageBlockShortcut>;\nexport type PageBlockCustomBlockPropertyValue = z.infer<typeof PageBlockCustomBlockPropertyValue>;\nexport type PageBlockCustomBlockPropertyImageValue = z.infer<typeof PageBlockCustomBlockPropertyImageValue>;\n\n//\n// Block\n//\n\nexport const PageBlockBaseV1 = z.object({\n persistentId: z.string(),\n type: PageBlockTypeV1,\n\n numberOfColumns: nullishToOptional(z.number()),\n\n // Element linking\n designObjectId: nullishToOptional(z.string()),\n designObjectIds: nullishToOptional(z.array(z.string())),\n tokenType: nullishToOptional(DesignTokenType.or(z.literal(\"Font\"))),\n showNestedGroups: nullishToOptional(z.boolean()),\n brandId: nullishToOptional(z.string()),\n\n // Rich text\n text: nullishToOptional(PageBlockText),\n caption: nullishToOptional(z.string()),\n headingType: nullishToOptional(z.number().min(1).max(3)),\n codeLanguage: nullishToOptional(PageBlockCodeLanguage),\n calloutType: nullishToOptional(PageBlockCalloutType),\n urlInput: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n urlPreview: nullishToOptional(PageBlockUrlPreview),\n\n // Image\n asset: nullishToOptional(PageBlockAsset),\n alignment: nullishToOptional(PageBlockAlignment),\n\n // Shortcuts block\n shortcuts: nullishToOptional(z.array(PageBlockShortcut)),\n\n // Guidelines\n guidelines: nullishToOptional(PageBlockGuideline.array()),\n\n // Custom blocks\n customBlockKey: nullishToOptional(z.string()),\n customBlockProperties: nullishToOptional(z.array(PageBlockCustomBlockPropertyValue)),\n variantKey: nullishToOptional(z.string()),\n\n // Figma frames\n figmaFrameProperties: nullishToOptional(PageBlockFigmaFrameProperties),\n figmaFrames: nullishToOptional(z.array(PageBlockFrame)),\n\n // Generic\n size: nullishToOptional(Size),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n\n // Render code\n renderCodeProperties: nullishToOptional(PageBlockRenderCodeProperties),\n\n // Component assets\n componentAssets: nullishToOptional(z.array(PageBlockAssetComponent)),\n\n // Tables\n tableProperties: nullishToOptional(PageBlockTableProperties),\n columnId: nullishToOptional(z.string()),\n\n // Token spreadsheet\n theme: nullishToOptional(PageBlockTheme),\n blacklistedElementProperties: nullishToOptional(z.array(z.string())),\n\n // Arbitrary\n userMetadata: nullishToOptional(z.string()),\n});\n\ntype PageBlockV1Input = z.input<typeof PageBlockBaseV1> & {\n children: PageBlockV1Input[] | null | undefined;\n};\n\nexport const PageBlockV1: z.ZodType<PageBlockV1, z.ZodTypeDef, PageBlockV1Input> = PageBlockBaseV1.extend({\n children: z.lazy(\n () =>\n PageBlockV1.array()\n .nullish()\n .transform(t => t ?? []) as z.ZodType<PageBlockV1[], z.ZodTypeDef, PageBlockV1Input[]>\n ),\n});\n\nexport type PageBlockV1 = z.infer<typeof PageBlockBaseV1> & {\n children: PageBlockV1[];\n};\n\n//\n// Utility methods\n//\n\nexport function traversePageBlocksV1(blocks: PageBlockV1[], action: (block: PageBlockV1) => void) {\n for (const block of blocks) {\n action(block);\n traversePageBlocksV1(block.children, action);\n }\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\n\nexport const ElementPropertyTypeSchema = z.enum([\"Text\", \"Number\", \"Boolean\", \"Select\", \"Generic\", \"Link\", \"URL\"]);\nexport const ElementPropertyTargetType = z.enum([\"Token\", \"Component\", \"DocumentationPage\"]);\nexport const ElementPropertyLinkType = z.enum([\"FigmaComponent\", \"DocumentationPage\"]);\n\nconst CODE_NAME_REGEX = /^[a-zA-Z_$][a-zA-Z_$0-9]{1,99}$/;\n\nexport const ColorTokenInlineData = z.object({\n value: z.string(),\n});\n\nexport const ElementPropertyDefinitionOption = z.object({\n id: z.string(),\n name: z.string(),\n backgroundColor: ColorTokenInlineData.optional(),\n});\n\nexport const ElementPropertyDefinition = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n persistentId: z.string(),\n name: z.string(),\n codeName: z.string().regex(CODE_NAME_REGEX),\n description: z.string(),\n type: ElementPropertyTypeSchema,\n targetElementType: ElementPropertyTargetType,\n options: z.array(ElementPropertyDefinitionOption).optional(),\n linkElementType: ElementPropertyLinkType.optional(),\n});\n\nexport type ElementPropertyType = z.infer<typeof ElementPropertyTypeSchema>;\nexport const ElementPropertyType = ElementPropertyTypeSchema.enum;\n\nexport type ElementPropertyTargetType = z.infer<typeof ElementPropertyTargetType>;\nexport type ElementPropertyLinkType = z.infer<typeof ElementPropertyLinkType>;\nexport type ColorTokenInlineData = z.infer<typeof ColorTokenInlineData>;\nexport type ElementPropertyDefinitionOption = z.infer<typeof ElementPropertyDefinitionOption>;\nexport type ElementPropertyDefinition = z.infer<typeof ElementPropertyDefinition>;\n\nexport type CreateElementPropertyDefinition = DbCreateInputOmit<ElementPropertyDefinition>;\nexport type UpdateElementPropertyDefinition = OmitStrict<\n DbUpdate<ElementPropertyDefinition>,\n \"designSystemVersionId\" | \"targetElementType\" | \"type\"\n>;\n\nexport type ElementPropertyDefinitionDiff = {\n toCreate: CreateElementPropertyDefinition[];\n toUpdate: UpdateElementPropertyDefinition[];\n};\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\n\nexport const ElementPropertyValue = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n targetElementPersistentId: z.string(),\n definitionPersistentId: z.string(),\n stringValue: z.string().nullish(),\n numberValue: z.number().nullish(),\n booleanValue: z.boolean().nullish(),\n referenceValue: z.string().nullish(),\n referenceValuePreview: z.string().optional(),\n});\n\nexport type ElementPropertyValue = z.infer<typeof ElementPropertyValue>;\n\nexport type CreateElementPropertyValue = DbCreateInputOmit<ElementPropertyValue>;\nexport type UpdateElementPropertyValue = OmitStrict<\n DbUpdate<ElementPropertyValue>,\n \"designSystemVersionId\" | \"definitionPersistentId\" | \"targetElementPersistentId\"\n>;\n\nexport type ElementPropertyValueDiff = {\n toCreate: CreateElementPropertyValue[];\n toUpdate: UpdateElementPropertyValue[];\n toDelete: ElementPropertyValue[];\n};\n","import { z } from \"zod\";\n\nexport const Point2D = z.object({\n x: z.number(),\n y: z.number(),\n});\n\nexport type Point2D = z.infer<typeof Point2D>;\n","import { z } from \"zod\";\n\nconst nullSize = { height: -1, width: -1 };\n\nfunction isNullSize(size: Size): boolean {\n return size.height === nullSize.height && size.width === nullSize.width;\n}\n\nexport const Size = z.object({\n width: z\n .number()\n .nullish()\n .transform(v => v ?? nullSize.width),\n\n height: z\n .number()\n .nullish()\n .transform(v => v ?? nullSize.height),\n});\n\nexport const SizeOrUndefined = Size.optional().transform(v => {\n if (!v) return undefined;\n if (isNullSize(v)) return undefined;\n\n return v;\n});\n\nexport type Size = z.infer<typeof Size>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { ObjectMeta } from \"../../common\";\n\nexport type CreateDesignElement = DbCreateInputOmit<DesignElement>;\nexport type UpdateDesignElement = OmitStrict<\n DbUpdate<DesignElement>,\n \"brandPersistentId\" | \"childType\" | \"designSystemVersionId\" | \"shortPersistentId\" | \"type\"\n>;\n\n//\n// Token types\n//\n\nexport const DesignTokenType = z.enum([\n \"Color\",\n \"Border\",\n \"Gradient\",\n \"Shadow\",\n \"Dimension\",\n \"Duration\",\n \"Size\",\n \"Space\",\n \"Opacity\",\n \"FontSize\",\n \"LineHeight\",\n \"LetterSpacing\",\n \"ParagraphSpacing\",\n \"BorderWidth\",\n \"BorderRadius\",\n \"Duration\",\n \"ZIndex\",\n \"Image\",\n \"String\",\n \"ProductCopy\",\n \"FontFamily\",\n \"FontWeight\",\n \"TextDecoration\",\n \"TextCase\",\n \"Visibility\",\n \"Typography\",\n \"Blur\",\n \"Font\",\n]);\n\nexport const tokenElementTypes: DesignTokenType[] = [...DesignTokenType.options.filter(v => v !== \"Font\")];\n\nexport type DesignTokenType = z.infer<typeof DesignTokenType>;\n\n//\n// Non-token types\n//\n\nexport const DesignElementType = DesignTokenType.or(\n z.enum([\n \"Component\",\n \"Theme\",\n \"Documentation\",\n \"DocumentationPage\",\n \"DesignSystemComponent\",\n \"ElementGroup\",\n \"FigmaNodeStructure\",\n \"FigmaNodeReference\",\n \"PageBlock\",\n ])\n);\n\nexport type DesignElementType = z.infer<typeof DesignElementType>;\n\nexport function isTokenType(type: DesignElementType): type is DesignTokenType {\n return DesignTokenType.safeParse(type).success;\n}\n\n//\n// Element category\n//\n\nexport const DesignElementCategory = z.enum([\n \"Token\",\n \"Component\",\n \"DesignSystemComponent\",\n \"DocumentationPage\",\n \"Theme\",\n \"PageBlock\",\n]);\n\nexport type DesignElementCategory = z.infer<typeof DesignElementCategory>;\n\n// Elements\n\nexport const DesignSystemElementExportProps = z.object({\n isAsset: z\n .boolean()\n .nullish()\n .transform(v => v ?? false),\n\n codeName: z.string().nullish(),\n});\n\nexport type DesignSystemElementExportProps = z.infer<typeof DesignSystemElementExportProps>;\n\nexport const ShallowDesignElement = z.object({\n id: z.string(),\n persistentId: z.string(),\n designSystemVersionId: z.string(),\n type: DesignElementType,\n brandPersistentId: z.string().optional(),\n parentPersistentId: z.string().optional(),\n shortPersistentId: z.string().optional(),\n childType: DesignElementType.optional(),\n sortOrder: z.number(),\n origin: z.record(z.any()).optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport const DesignElement = ShallowDesignElement.extend({\n meta: ObjectMeta,\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n exportProperties: DesignSystemElementExportProps.optional(),\n data: z.record(z.any()),\n origin: z.record(z.any()).optional(),\n});\n\nexport type ShallowDesignElement = z.infer<typeof ShallowDesignElement>;\nexport type DesignElement = z.infer<typeof DesignElement>;\n\nexport const HierarchicalElements = DesignTokenType.or(\n z.enum([\"Component\", \"DesignSystemComponent\", \"DocumentationPage\"])\n);\n\nexport type HierarchicalElements = z.infer<typeof HierarchicalElements>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../raw-element\";\nimport { PageBlockCalloutType, PageBlockCodeLanguage, PageBlockText } from \"./documentation-block-v1\";\n\n//\n// Enums\n//\n\nexport const PageBlockLinkType = z.enum([\"DocumentationItem\", \"PageHeading\", \"Url\"]);\nexport const PageBlockImageType = z.enum([\"Resource\", \"FigmaNode\"]);\nexport const PageBlockImageAlignment = z.enum([\"Left\", \"Center\", \"Stretch\"]);\nexport const PageBlockTableCellAlignment = z.enum([\"Left\", \"Center\", \"Right\"]);\nexport const PageBlockPreviewContainerSize = z.enum([\"Centered\", \"NaturalHeight\"]);\nexport const PageBlockThemeDisplayMode = z.enum([\"Split\", \"Override\"]);\n\nexport type PageBlockLinkType = z.infer<typeof PageBlockLinkType>;\nexport type PageBlockImageType = z.infer<typeof PageBlockImageType>;\nexport type PageBlockImageAlignment = z.infer<typeof PageBlockImageAlignment>;\nexport type PageBlockTableCellAlignment = z.infer<typeof PageBlockTableCellAlignment>;\nexport type PageBlockPreviewContainerSize = z.infer<typeof PageBlockPreviewContainerSize>;\nexport type PageBlockThemeDisplayMode = z.infer<typeof PageBlockThemeDisplayMode>;\n\n//\n// Definitions - Block\n//\n\nexport const PageBlockImageResourceReference = z.object({\n resourceId: z.string(),\n url: z.string(),\n});\n\nexport const PageBlockResourceFrameNodeReference = z.object({\n sourceId: z.string(),\n frameReferenceId: z.string(),\n});\n\nexport const PageBlockImageReference = z.object({\n type: PageBlockImageType,\n\n resource: PageBlockImageResourceReference.optional(),\n figmaNode: PageBlockResourceFrameNodeReference.optional(),\n});\n\nexport const PageBlockColorV2 = z.object({\n value: z.string(),\n referencedTokenId: z.string().optional(),\n});\n\nexport const PageBlockAssetEntityMeta = z.object({\n title: z.string().optional(),\n description: z.string().optional(),\n backgroundColor: PageBlockColorV2.optional(),\n});\n\nexport const PageBlockFigmaComponentEntityMeta = z.object({\n title: z.string().optional(),\n description: z.string().optional(),\n backgroundColor: PageBlockColorV2.optional(),\n selectedComponentProperties: z.array(z.string()).optional(),\n});\n\nexport const PageBlockFigmaNodeEntityMeta = z.object({\n title: z.string().optional(),\n description: z.string().optional(),\n backgroundColor: PageBlockColorV2.optional(),\n});\n\nexport const PageBlockAppearanceV2 = z.object({\n itemBackgroundColor: PageBlockColorV2.optional(),\n numberOfColumns: z.number().optional(),\n});\n\nexport const PageBlockItemUntypedValue = z\n .object({\n value: z.any(),\n })\n .and(z.record(z.any()));\n\nexport const PageBlockLinkV2 = z.object({\n type: PageBlockLinkType,\n documentationItemId: z.string().optional(),\n pageHeadingId: z.string().optional(),\n url: z.string().optional(),\n openInNewTab: z.boolean().optional(),\n});\n\nexport const PageBlockItemV2 = z.object({\n id: z.string(),\n linksTo: PageBlockLinkV2.optional(),\n props: z.record(PageBlockItemUntypedValue),\n});\n\nexport const PageBlockDataV2 = z.object({\n packageId: z.string(),\n variantId: z.string().optional(),\n indentLevel: z.number(),\n appearance: PageBlockAppearanceV2.optional(),\n items: z.array(PageBlockItemV2),\n});\n\nexport type PageBlockImageResourceReference = z.infer<typeof PageBlockImageResourceReference>;\nexport type PageBlockResourceFrameNodeReference = z.infer<typeof PageBlockResourceFrameNodeReference>;\nexport type PageBlockImageReference = z.infer<typeof PageBlockImageReference>;\nexport type PageBlockColorV2 = z.infer<typeof PageBlockColorV2>;\nexport type PageBlockAssetEntityMeta = z.infer<typeof PageBlockAssetEntityMeta>;\nexport type PageBlockFigmaComponentEntityMeta = z.infer<typeof PageBlockFigmaComponentEntityMeta>;\nexport type PageBlockFigmaNodeEntityMeta = z.infer<typeof PageBlockFigmaNodeEntityMeta>;\nexport type PageBlockAppearanceV2 = z.infer<typeof PageBlockAppearanceV2>;\nexport type PageBlockItemUntypedValue = z.infer<typeof PageBlockItemUntypedValue>;\nexport type PageBlockLinkV2 = z.infer<typeof PageBlockLinkV2>;\nexport type PageBlockItemV2 = z.infer<typeof PageBlockItemV2>;\nexport type PageBlockDataV2 = z.infer<typeof PageBlockDataV2>;\n\n//\n// Definitions - Typed Values\n//\n\nexport const PageBlockItemAssetValue = z.object({\n selectedPropertyIds: z.array(z.string()).optional(),\n showSearch: z.boolean().optional(),\n previewContainerSize: PageBlockPreviewContainerSize.optional(),\n backgroundColor: PageBlockColorV2.optional(),\n value: z\n .array(\n z.object({\n entityId: z.string(),\n entityType: z.enum([\"Asset\", \"AssetGroup\"]),\n entityMeta: PageBlockAssetEntityMeta.optional(),\n })\n )\n .default([]),\n});\n\nexport const PageBlockItemAssetPropertyValue = z.object({\n value: z.array(z.string()).default([]),\n});\n\nexport const PageBlockItemFigmaComponentValue = z.object({\n showComponentName: z.boolean().optional(),\n showComponentDescription: z.boolean().optional(),\n showPropertyList: z.boolean().optional(),\n previewContainerSize: PageBlockPreviewContainerSize.optional(),\n backgroundColor: PageBlockColorV2.optional(),\n value: z\n .array(\n z.object({\n entityId: z.string(),\n entityType: z.enum([\"FigmaComponent\"]),\n entityMeta: PageBlockFigmaComponentEntityMeta.optional(),\n })\n )\n .default([]),\n});\n\nexport const PageBlockItemBooleanValue = z.object({\n value: z.boolean(),\n});\n\nexport const PageBlockItemCodeValue = z.object({\n format: PageBlockCodeLanguage.optional(),\n caption: z.string().optional(),\n value: z.string(),\n});\n\nexport const PageBlockItemSandboxValue = z.object({\n showCode: z.boolean().optional(),\n showControls: z.boolean().optional(),\n backgroundColor: z.string().optional(),\n alignPreview: z.enum([\"Left\", \"Center\"]).optional(),\n previewHeight: z.number().optional(),\n value: z.string(),\n});\n\nexport const PageBlockItemColorValue = z.record(z.any());\n\nexport const PageBlockItemComponentValue = z.object({\n selectedPropertyIds: z.array(z.string()).optional(),\n value: z\n .array(\n z.object({\n entityId: z.string(),\n entityType: z.enum([\"Component\", \"ComponentGroup\"]),\n })\n )\n .default([]),\n});\n\nexport const PageBlockItemComponentPropertyValue = z.object({\n value: z.string(),\n});\n\nexport const PageBlockItemDividerValue = z.object({});\n\nexport const PageBlockItemEmbedValue = z.object({\n value: z.string().optional(),\n caption: z.string().optional(),\n height: z.number().optional(),\n openGraph: z\n .object({\n title: z.string().optional(),\n description: z.string().optional(),\n imageUrl: z.string().optional(),\n })\n .optional(),\n});\n\nexport const PageBlockItemFigmaNodeValue = z.object({\n showSearch: z.boolean().optional(),\n previewContainerSize: PageBlockPreviewContainerSize.optional(),\n backgroundColor: PageBlockColorV2.optional(),\n showFrameDetails: z.boolean().optional(),\n value: z\n .array(\n z.object({\n entityId: z.string(),\n entityMeta: PageBlockFigmaNodeEntityMeta.optional(),\n })\n )\n .default([]),\n});\n\nexport const PageBlockItemImageValue = z.object({\n alt: z.string().optional(),\n caption: z.string().optional(),\n alignment: PageBlockImageAlignment.optional(),\n value: PageBlockImageReference.optional(),\n});\n\nexport const PageBlockItemMarkdownValue = z.object({\n value: z.string(),\n});\n\nexport const PageBlockItemMultiRichTextValue = z.object({\n value: PageBlockText.array(),\n});\n\nexport const PageBlockItemMultiSelectValue = z.object({\n value: z.array(z.string()).default([]),\n});\n\nexport const PageBlockItemNumberValue = z.object({\n value: z.number(),\n});\n\nexport const PageBlockItemRichTextValue = z.object({\n value: PageBlockText,\n calloutType: PageBlockCalloutType.optional(),\n});\n\nexport const PageBlockItemSingleSelectValue = z.object({\n value: z.string(),\n});\n\nexport const PageBlockItemStorybookValue = z.object({\n caption: z.string().optional(),\n height: z.number().optional(),\n embedUrl: z.string().optional(),\n value: z.string().optional(),\n});\n\nexport const PageBlockItemTextValue = z.object({\n value: z.string(),\n});\n\nexport const PageBlockItemTokenValue = z.object({\n selectedPropertyIds: z.array(z.string()).optional(),\n selectedThemeIds: z.array(z.string()).optional(),\n themeDisplayMode: PageBlockThemeDisplayMode.optional(),\n value: z\n .array(\n z.object({\n entityId: z.string(),\n entityType: z.enum([\"Token\", \"TokenGroup\"]),\n entityMeta: z\n .object({\n showNestedGroups: z.boolean().optional(),\n })\n .optional(),\n })\n )\n .default([]),\n});\n\nexport const PageBlockItemTokenPropertyValue = z.object({\n selectedPropertyIds: z.array(z.string()).optional(),\n selectedThemeIds: z.array(z.string()).optional(),\n value: z.array(z.string()).default([]),\n});\n\nexport const PageBlockItemTokenTypeValue = z.object({\n value: z.array(DesignTokenType).default([]),\n});\n\nexport const PageBlockItemUrlValue = z.object({\n value: z.string(),\n});\n\nexport type PageBlockItemAssetValue = z.infer<typeof PageBlockItemAssetValue>;\nexport type PageBlockItemAssetPropertyValue = z.infer<typeof PageBlockItemAssetPropertyValue>;\nexport type PageBlockItemBooleanValue = z.infer<typeof PageBlockItemBooleanValue>;\nexport type PageBlockItemCodeValue = z.infer<typeof PageBlockItemCodeValue>;\nexport type PageBlockItemSandboxValue = z.infer<typeof PageBlockItemSandboxValue>;\nexport type PageBlockItemColorValue = z.infer<typeof PageBlockItemColorValue>;\nexport type PageBlockItemComponentValue = z.infer<typeof PageBlockItemComponentValue>;\nexport type PageBlockItemComponentPropertyValue = z.infer<typeof PageBlockItemComponentPropertyValue>;\nexport type PageBlockItemDividerValue = z.infer<typeof PageBlockItemDividerValue>;\nexport type PageBlockItemEmbedValue = z.infer<typeof PageBlockItemEmbedValue>;\nexport type PageBlockItemFigmaNodeValue = z.infer<typeof PageBlockItemFigmaNodeValue>;\nexport type PageBlockItemImageValue = z.infer<typeof PageBlockItemImageValue>;\nexport type PageBlockItemMarkdownValue = z.infer<typeof PageBlockItemMarkdownValue>;\nexport type PageBlockItemMultiRichTextValue = z.infer<typeof PageBlockItemMultiRichTextValue>;\nexport type PageBlockItemMultiSelectValue = z.infer<typeof PageBlockItemMultiSelectValue>;\nexport type PageBlockItemNumberValue = z.infer<typeof PageBlockItemNumberValue>;\nexport type PageBlockItemRichTextValue = z.infer<typeof PageBlockItemRichTextValue>;\nexport type PageBlockItemSingleSelectValue = z.infer<typeof PageBlockItemSingleSelectValue>;\nexport type PageBlockItemStorybookValue = z.infer<typeof PageBlockItemStorybookValue>;\nexport type PageBlockItemTextValue = z.infer<typeof PageBlockItemTextValue>;\nexport type PageBlockItemTokenValue = z.infer<typeof PageBlockItemTokenValue>;\nexport type PageBlockItemTokenPropertyValue = z.infer<typeof PageBlockItemTokenPropertyValue>;\nexport type PageBlockItemTokenTypeValue = z.infer<typeof PageBlockItemTokenTypeValue>;\nexport type PageBlockItemUrlValue = z.infer<typeof PageBlockItemUrlValue>;\n\n//\n// Definitions - Table Value\n//\n\nexport const PageBlockItemTableRichTextNode = z.object({\n type: z.literal(\"RichText\"),\n id: z.string(),\n value: PageBlockItemRichTextValue.shape.value,\n});\n\nexport const PageBlockItemTableMultiRichTextNode = z.object({\n type: z.literal(\"MultiRichText\"),\n value: PageBlockItemMultiRichTextValue.shape.value,\n});\n\nexport const PageBlockItemTableImageNode = z.object({\n type: z.literal(\"Image\"),\n id: z.string(),\n caption: PageBlockItemImageValue.shape.caption,\n value: PageBlockItemImageValue.shape.value,\n});\n\nexport const PageBlockItemTableNode = z.discriminatedUnion(\"type\", [\n PageBlockItemTableRichTextNode,\n // PageBlockItemTableMultiRichTextNode,\n PageBlockItemTableImageNode,\n]);\n\nexport const PageBlockItemTableCell = z.object({\n id: z.string(),\n nodes: z.array(PageBlockItemTableNode),\n columnWidth: z.number().optional(),\n alignment: PageBlockTableCellAlignment,\n});\n\nexport const PageBlockItemTableRow = z.object({\n cells: z.array(PageBlockItemTableCell),\n});\n\nexport const PageBlockItemTableValue = z.object({\n highlightHeaderColumn: z.boolean().optional(),\n highlightHeaderRow: z.boolean().optional(),\n showBorder: z.boolean().optional(),\n value: z.array(PageBlockItemTableRow).default([]),\n});\n\nexport type PageBlockItemTableRichTextNode = z.infer<typeof PageBlockItemTableRichTextNode>;\nexport type PageBlockItemTableMultiRichTextNode = z.infer<typeof PageBlockItemTableMultiRichTextNode>;\nexport type PageBlockItemTableImageNode = z.infer<typeof PageBlockItemTableImageNode>;\nexport type PageBlockItemTableNode = z.infer<typeof PageBlockItemTableNode>;\nexport type PageBlockItemTableCell = z.infer<typeof PageBlockItemTableCell>;\nexport type PageBlockItemTableRow = z.infer<typeof PageBlockItemTableRow>;\nexport type PageBlockItemTableValue = z.infer<typeof PageBlockItemTableValue>;\n","import { z } from \"zod\";\nimport { DocumentationItemConfigurationV1 } from \"./documentation-v1\";\nimport { PageBlockV1 } from \"./documentation-block-v1\";\nimport { nullishToOptional } from \"../../../helpers\";\n\nexport const DocumentationPageDataV1 = z.object({\n blocks: z.array(PageBlockV1),\n configuration: nullishToOptional(DocumentationItemConfigurationV1),\n});\n","import { z } from \"zod\";\nimport { DocumentationItemHeaderV1, defaultDocumentationItemHeaderV1 } from \"./item-header-v1\";\n\nexport const DocumentationItemConfigurationV1 = z.object({\n showSidebar: z.boolean(),\n isPrivate: z.boolean().optional(),\n isHidden: z.boolean().optional(),\n header: DocumentationItemHeaderV1,\n});\n\nexport type DocumentationItemConfigurationV1 = z.infer<typeof DocumentationItemConfigurationV1>;\n\nexport const defaultDocumentationItemConfigurationV1: DocumentationItemConfigurationV1 = {\n header: defaultDocumentationItemHeaderV1,\n showSidebar: true,\n};\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport {\n DocumentationItemHeaderAlignment,\n DocumentationItemHeaderAlignmentSchema,\n DocumentationItemHeaderImageScaleType,\n DocumentationItemHeaderImageScaleTypeSchema,\n} from \"./item-header\";\nimport { PageBlockAsset } from \"./documentation-block-v1\";\n\n//\n// Definitions\n//\n\nexport const DocumentationItemHeaderV1 = z.object({\n description: z.string(),\n alignment: DocumentationItemHeaderAlignmentSchema,\n foregroundColor: ColorTokenData.nullish(),\n backgroundColor: ColorTokenData.nullish(),\n backgroundImageAsset: PageBlockAsset.nullish(),\n backgroundImageScaleType: DocumentationItemHeaderImageScaleTypeSchema,\n showBackgroundOverlay: z.boolean(),\n showCoverText: z.boolean(),\n minHeight: z.number().nullish(),\n});\n\nexport type DocumentationItemHeaderV1 = z.infer<typeof DocumentationItemHeaderV1>;\n\nexport const defaultDocumentationItemHeaderV1: DocumentationItemHeaderV1 = {\n alignment: DocumentationItemHeaderAlignment.Left,\n backgroundImageScaleType: DocumentationItemHeaderImageScaleType.AspectFill,\n description: \"\",\n showBackgroundOverlay: false,\n showCoverText: true,\n};\n","//\n// Enums\n//\n\nimport { z } from \"zod\";\n\nexport const DocumentationItemHeaderAlignmentSchema = z.enum([\"Left\", \"Center\"]);\nexport const DocumentationItemHeaderImageScaleTypeSchema = z.enum([\"AspectFill\", \"AspectFit\"]);\n\nexport const DocumentationItemHeaderAlignment = DocumentationItemHeaderAlignmentSchema.enum;\nexport const DocumentationItemHeaderImageScaleType = DocumentationItemHeaderImageScaleTypeSchema.enum;\n\nexport type DocumentationItemHeaderImageScaleType = z.infer<typeof DocumentationItemHeaderImageScaleTypeSchema>;\nexport type DocumentationItemHeaderAlignment = z.infer<typeof DocumentationItemHeaderAlignmentSchema>;\n","import { z } from \"zod\";\nimport { DocumentationItemConfigurationV2 } from \"./documentation-v2\";\nimport { nullishToOptional } from \"../../../helpers\";\n\nexport const DocumentationPageDataV2 = z.object({\n configuration: nullishToOptional(DocumentationItemConfigurationV2),\n});\n","import { z } from \"zod\";\nimport { DocumentationItemHeaderV2, defaultDocumentationItemHeaderV2 } from \"./item-header-v2\";\n\nexport const DocumentationItemConfigurationV2 = z.object({\n showSidebar: z.boolean(),\n isPrivate: z.boolean().optional(),\n isHidden: z.boolean().optional(),\n header: DocumentationItemHeaderV2,\n});\n\nexport type DocumentationItemConfigurationV2 = z.infer<typeof DocumentationItemConfigurationV2>;\n\nexport const defaultDocumentationItemConfigurationV2 = {\n header: defaultDocumentationItemHeaderV2,\n isHidden: false,\n isPrivate: false,\n showSidebar: true,\n} as const;\n","import { z } from \"zod\";\nimport {\n DocumentationItemHeaderAlignment,\n DocumentationItemHeaderAlignmentSchema,\n DocumentationItemHeaderImageScaleType,\n DocumentationItemHeaderImageScaleTypeSchema,\n} from \"./item-header\";\nimport { PageBlockColorV2, PageBlockImageReference } from \"./documentation-block-v2\";\n\n//\n// Definitions\n//\n\nexport const DocumentationItemHeaderV2 = z.object({\n description: z.string(),\n alignment: DocumentationItemHeaderAlignmentSchema,\n foregroundColor: PageBlockColorV2.nullish(),\n backgroundColor: PageBlockColorV2.nullish(),\n backgroundImageAsset: PageBlockImageReference.nullish(),\n backgroundImageScaleType: DocumentationItemHeaderImageScaleTypeSchema,\n showBackgroundOverlay: z.boolean(),\n showCoverText: z.boolean(),\n minHeight: z.number().nullish(),\n});\n\nexport type DocumentationItemHeaderV2 = z.infer<typeof DocumentationItemHeaderV2>;\n\nexport const defaultDocumentationItemHeaderV2: DocumentationItemHeaderV2 = {\n alignment: DocumentationItemHeaderAlignment.Left,\n backgroundImageScaleType: DocumentationItemHeaderImageScaleType.AspectFill,\n description: \"\",\n showBackgroundOverlay: false,\n showCoverText: true,\n};\n","import { z } from \"zod\";\nimport { PageBlockEditorModelV2 } from \"../page-block-v2\";\nimport { PageBlockColorV2 } from \"./documentation-block-v2\";\n\nexport const PageSectionTypeV2 = z.enum([\"Tabs\"]);\n\nexport const PageSectionColumnV2 = z.object({\n id: z.string(),\n blocks: z.array(PageBlockEditorModelV2),\n});\n\nexport const PageSectionItemV2 = z.object({\n id: z.string(),\n title: z.string(),\n columns: z.array(PageSectionColumnV2),\n});\n\nexport const PageSectionPaddingV2 = z.object({\n top: z.number().optional(),\n bottom: z.number().optional(),\n left: z.number().optional(),\n right: z.number().optional(),\n});\n\nexport const PageSectionAppearanceV2 = z.object({\n expandToEdges: z.boolean(),\n contentExpandToEdges: z.boolean(),\n backgroundColor: PageBlockColorV2.optional(),\n foregroundColor: PageBlockColorV2.optional(),\n padding: PageSectionPaddingV2.optional(),\n});\n\nexport const PageSectionEditorModelV2 = z.object({\n id: z.string(),\n type: z.literal(\"Section\"),\n variantId: z.string().optional(),\n sectionType: PageSectionTypeV2,\n appearance: PageSectionAppearanceV2,\n items: z.array(PageSectionItemV2),\n});\n\nexport type PageSectionTypeV2 = z.infer<typeof PageSectionTypeV2>;\nexport type PageSectionColumnV2 = z.infer<typeof PageSectionColumnV2>;\nexport type PageSectionItemV2 = z.infer<typeof PageSectionItemV2>;\nexport type PageSectionPaddingV2 = z.infer<typeof PageSectionPaddingV2>;\nexport type PageSectionAppearanceV2 = z.infer<typeof PageSectionAppearanceV2>;\nexport type PageSectionEditorModelV2 = z.infer<typeof PageSectionEditorModelV2>;\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart } from \"./base\";\nimport { PageBlockDataV2 } from \"./data\";\n\n//\n// Element\n//\n\nexport const PageBlockV2 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape).extend({\n data: PageBlockDataV2,\n});\n\nexport type PageBlockV2 = z.infer<typeof PageBlockV2>;\n\n//\n// Editor Model\n//\n\nexport const PageBlockEditorModelV2 = z.object({\n id: z.string(),\n type: z.literal(\"Block\"),\n data: PageBlockDataV2,\n});\n\nexport type PageBlockEditorModelV2 = z.infer<typeof PageBlockEditorModelV2>;\n","import { z } from \"zod\";\nimport { ObjectMeta } from \"../../common\";\n\nexport const DesignElementOrigin = z.object({\n id: z.string(),\n sourceId: z.string(),\n name: z.string(),\n});\n\nexport const DesignElementBase = z.object({\n id: z.string(),\n persistentId: z.string(),\n meta: ObjectMeta,\n designSystemVersionId: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport const DesignElementImportedBase = DesignElementBase.extend({\n origin: DesignElementOrigin,\n});\n\nexport const DesignElementGroupablePart = z.object({\n parentPersistentId: z.string().optional(),\n sortOrder: z.number(),\n});\n\nexport const DesignElementGroupableBase = DesignElementBase.extend(DesignElementGroupablePart.shape);\n\nexport const DesignElementGroupableRequiredPart = DesignElementGroupablePart.extend({\n parentPersistentId: z.string(),\n});\n\nexport const DesignElementBrandedPart = z.object({\n brandPersistentId: z.string(),\n});\n\nexport const DesignElementSlugPart = z.object({\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n});\n\nexport type DesignElementOrigin = z.infer<typeof DesignElementOrigin>;\nexport type DesignElementBase = z.infer<typeof DesignElementBase>;\nexport type DesignElementGroupablePart = z.infer<typeof DesignElementGroupablePart>;\nexport type DesignElementGroupableBase = z.infer<typeof DesignElementGroupableBase>;\nexport type DesignElementGroupableRequiredPart = z.infer<typeof DesignElementGroupableRequiredPart>;\nexport type DesignElementBrandedPart = z.infer<typeof DesignElementBrandedPart>;\nexport type DesignElementSlugPart = z.infer<typeof DesignElementSlugPart>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const DurationUnit = z.enum([\"Ms\"]);\n\nexport const DurationValue = z.object({\n unit: DurationUnit,\n measure: z.number(),\n});\n\nexport const DurationTokenData = tokenAliasOrValue(DurationValue);\n\nexport type DurationUnit = z.infer<typeof DurationUnit>;\nexport type DurationValue = z.infer<typeof DurationValue>;\nexport type DurationTokenData = z.infer<typeof DurationTokenData>;\n","import { ZodTypeDef, z } from \"zod\";\nimport { Size, SizeOrUndefined } from \"../primitives/size\";\n\nexport const FigmaFileStructureNodeType = z.enum([\"DOCUMENT\", \"CANVAS\", \"FRAME\", \"COMPONENT\", \"COMPONENT_SET\"]);\n\nexport const FigmaFileStructureNodeBase = z.object({\n id: z.string(),\n name: z.string(),\n type: FigmaFileStructureNodeType,\n size: SizeOrUndefined,\n parentComponentSetId: z.string().optional(),\n});\n\nexport const FigmaFileStructureNode: z.ZodType<FigmaFileStructureNode, ZodTypeDef, FigmaFileStructureNodeBaseInput> =\n FigmaFileStructureNodeBase.extend({\n children: z.lazy(() => FigmaFileStructureNode.array()),\n });\n\ntype FigmaFileStructureNodeBaseInput = z.input<typeof FigmaFileStructureNodeBase> & {\n children: FigmaFileStructureNodeBaseInput[];\n};\n\nexport const FigmaFileStructureStatistics = z.object({\n frames: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n components: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n componentSets: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n});\n\nexport const FigmaFileStructureElementData = z.object({\n value: z.object({\n structure: FigmaFileStructureNode,\n assetsInFile: FigmaFileStructureStatistics,\n }),\n});\n\nexport type FigmaFileStructureNodeBase = z.infer<typeof FigmaFileStructureNodeBase>;\nexport type FigmaFileStructureNodeType = z.infer<typeof FigmaFileStructureStatistics>;\nexport type FigmaFileStructureNode = z.infer<typeof FigmaFileStructureNodeBase> & {\n children: FigmaFileStructureNode[];\n};\nexport type FigmaFileStructureStatistics = z.infer<typeof FigmaFileStructureStatistics>;\nexport type FigmaFileStructureElementData = z.infer<typeof FigmaFileStructureElementData>;\n\nexport function figmaFileStructureToMap(root: FigmaFileStructureNode): Map<string, FigmaFileStructureNode> {\n const map = new Map<string, FigmaFileStructureNode>();\n recursiveFigmaFileStructureToMap(root, map);\n return map;\n}\n\nfunction recursiveFigmaFileStructureToMap(node: FigmaFileStructureNode, map: Map<string, FigmaFileStructureNode>) {\n map.set(node.id, node);\n for (const child of node.children) recursiveFigmaFileStructureToMap(child, map);\n}\n","import { z } from \"zod\";\n\nexport const FigmaNodeReferenceData = z.object({\n structureElementId: z.string(),\n nodeId: z.string(),\n fileId: z.string().optional(),\n valid: z.boolean(),\n\n // Asset data\n assetId: z.string().optional(),\n assetScale: z.number().optional(),\n assetWidth: z.number().optional(),\n assetHeight: z.number().optional(),\n assetUrl: z.string().optional(),\n assetOriginKey: z.string().optional(),\n});\n\nexport const FigmaNodeReferenceElementData = z.object({\n value: FigmaNodeReferenceData,\n});\n\nexport type FigmaNodeReferenceData = z.infer<typeof FigmaNodeReferenceData>;\nexport type FigmaNodeReferenceElementData = z.infer<typeof FigmaNodeReferenceElementData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontFamilyValue = z.string();\nexport const FontFamilyTokenData = tokenAliasOrValue(FontFamilyValue);\n\nexport type FontFamilyValue = z.infer<typeof FontFamilyValue>;\nexport type FontFamilyTokenData = z.infer<typeof FontFamilyTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontSizeUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const FontSizeValue = z.object({\n unit: FontSizeUnit,\n measure: z.number(),\n});\n\nexport const FontSizeTokenData = tokenAliasOrValue(FontSizeValue);\n\nexport type FontSizeUnit = z.infer<typeof FontSizeUnit>;\nexport type FontSizeValue = z.infer<typeof FontSizeValue>;\nexport type FontSizeTokenData = z.infer<typeof FontSizeTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontWeightValue = z.string();\nexport const FontWeightTokenData = tokenAliasOrValue(FontWeightValue);\n\nexport type FontWeightValue = z.infer<typeof FontWeightValue>;\nexport type FontWeightTokenData = z.infer<typeof FontWeightTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { tokenAliasOrValue } from \"./base\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { Point2D } from \"../primitives\";\n\nexport const GradientType = z.enum([\"Linear\", \"Radial\", \"Angular\"]);\n\nexport const GradientStop = z.object({\n position: z.number(),\n color: ColorTokenData,\n});\n\nexport const GradientLayerValue = z.object({\n from: Point2D,\n to: Point2D,\n type: GradientType,\n aspectRatio: nullishToOptional(z.number()), // z.number(),\n stops: z.array(GradientStop).min(2),\n});\n\nexport const GradientLayerData = tokenAliasOrValue(GradientLayerValue);\n\nexport const GradientTokenValue = z.array(GradientLayerData);\nexport const GradientTokenData = tokenAliasOrValue(GradientTokenValue);\n\nexport type GradientType = z.infer<typeof GradientType>;\nexport type GradientStop = z.infer<typeof GradientStop>;\nexport type GradientLayerValue = z.infer<typeof GradientLayerValue>;\nexport type GradientLayerData = z.infer<typeof GradientLayerData>;\nexport type GradientTokenValue = z.infer<typeof GradientTokenValue>;\nexport type GradientTokenData = z.infer<typeof GradientTokenData>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { DocumentationItemConfigurationV1 } from \"./documentation-v1\";\nimport { DocumentationItemConfigurationV2 } from \"./documentation-v2\";\n\nexport const DocumentationGroupBehavior = z.enum([\"Group\", \"Tabs\"]);\n\nexport const ElementGroupDataV1 = z.object({\n behavior: nullishToOptional(DocumentationGroupBehavior.optional()),\n configuration: nullishToOptional(DocumentationItemConfigurationV1),\n});\n\nexport const ElementGroupDataV2 = z.object({\n behavior: nullishToOptional(DocumentationGroupBehavior.optional()),\n configuration: nullishToOptional(DocumentationItemConfigurationV2),\n});\n\nexport type DocumentationGroupBehavior = z.infer<typeof DocumentationGroupBehavior>;\nexport type ElementGroupDataV1 = z.infer<typeof ElementGroupDataV1>;\nexport type ElementGroupDataV2 = z.infer<typeof ElementGroupDataV2>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const LetterSpacingUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const LetterSpacingValue = z.object({\n unit: LetterSpacingUnit,\n measure: z.number(),\n});\n\nexport const LetterSpacingTokenData = tokenAliasOrValue(LetterSpacingValue);\n\nexport type LetterSpacingUnit = z.infer<typeof LetterSpacingUnit>;\nexport type LetterSpacingValue = z.infer<typeof LetterSpacingValue>;\nexport type LetterSpacingTokenData = z.infer<typeof LetterSpacingTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const LineHeightUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\", \"Raw\"]);\n\nexport const LineHeightValue = z.object({\n unit: LineHeightUnit,\n measure: z.number(),\n});\n\nexport const LineHeightTokenData = tokenAliasOrValue(LineHeightValue);\n\nexport type LineHeightUnit = z.infer<typeof LineHeightUnit>;\nexport type LineHeightValue = z.infer<typeof LineHeightValue>;\nexport type LineHeightTokenData = z.infer<typeof LineHeightTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ParagraphIndentUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const ParagraphIndentValue = z.object({\n unit: ParagraphIndentUnit,\n measure: z.number(),\n});\n\nexport const ParagraphIndentTokenData = tokenAliasOrValue(ParagraphIndentValue);\n\nexport type ParagraphIndentUnit = z.infer<typeof ParagraphIndentUnit>;\nexport type ParagraphIndentValue = z.infer<typeof ParagraphIndentValue>;\nexport type ParagraphIndentTokenData = z.infer<typeof ParagraphIndentTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ParagraphSpacingUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const ParagraphSpacingValue = z.object({\n unit: ParagraphSpacingUnit,\n measure: z.number(),\n});\n\nexport const ParagraphSpacingTokenData = tokenAliasOrValue(ParagraphSpacingValue);\n\nexport type ParagraphSpacingUnit = z.infer<typeof ParagraphSpacingUnit>;\nexport type ParagraphSpacingValue = z.infer<typeof ParagraphSpacingValue>;\nexport type ParagraphSpacingTokenData = z.infer<typeof ParagraphSpacingTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ProductCopyValue = z.string();\nexport const ProductCopyTokenData = tokenAliasOrValue(ProductCopyValue);\n\nexport type ProductCopyValue = z.infer<typeof ProductCopyValue>;\nexport type ProductCopyTokenData = z.infer<typeof ProductCopyTokenData>;\n","import { z } from \"zod\";\n\nconst RESERVED_OBJECT_ID_PREFIX = \"x-sn-reserved-\";\n\n// Really only checks if the schema does not have the reserved prefix\nexport const SafeIdSchema = z.string().refine(\n value => {\n return !value.startsWith(RESERVED_OBJECT_ID_PREFIX);\n },\n {\n message: `ID value can't start with ${RESERVED_OBJECT_ID_PREFIX}`,\n }\n);\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { OpacityTokenData } from \"./opacity\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ShadowType = z.enum([\"Drop\", \"Inner\"]);\n\nexport const ShadowLayerValue = z.object({\n color: ColorTokenData,\n x: z.number(),\n y: z.number(),\n radius: z.number(),\n spread: z.number(),\n opacity: OpacityTokenData.optional(),\n type: ShadowType,\n});\n\nconst ShadowTokenDataBase = tokenAliasOrValue(ShadowLayerValue);\nexport const ShadowTokenData = tokenAliasOrValue(z.array(ShadowTokenDataBase));\n\nexport type ShadowType = z.infer<typeof ShadowType>;\nexport type ShadowLayerValue = z.infer<typeof ShadowLayerValue>;\nexport type ShadowTokenData = z.infer<typeof ShadowTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const SizeUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const SizeValue = z.object({\n unit: SizeUnit,\n measure: z.number(),\n});\n\nexport const SizeTokenData = tokenAliasOrValue(SizeValue);\n\nexport type SizeUnit = z.infer<typeof SizeUnit>;\nexport type SizeValue = z.infer<typeof SizeValue>;\nexport type SizeTokenData = z.infer<typeof SizeTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const SpaceUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const SpaceValue = z.object({\n unit: SpaceUnit,\n measure: z.number(),\n});\n\nexport const SpaceTokenData = tokenAliasOrValue(SpaceValue);\n\nexport type SpaceUnit = z.infer<typeof SpaceUnit>;\nexport type SpaceValue = z.infer<typeof SpaceValue>;\nexport type SpaceTokenData = z.infer<typeof SpaceTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const StringValue = z.string();\nexport const StringTokenData = tokenAliasOrValue(StringValue);\n\nexport type StringValue = z.infer<typeof StringValue>;\nexport type StringTokenData = z.infer<typeof StringTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TextCase = z.enum([\"Original\", \"Upper\", \"Lower\", \"Camel\", \"SmallCaps\"]);\nexport const TextCaseValue = TextCase;\nexport const TextCaseTokenData = tokenAliasOrValue(TextCaseValue);\n\nexport type TextCase = z.infer<typeof TextCase>;\nexport type TextCaseValue = z.infer<typeof TextCaseValue>;\nexport type TextCaseTokenData = z.infer<typeof TextCaseTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TextDecoration = z.enum([\"None\", \"Underline\", \"Strikethrough\"]);\nexport const TextDecorationValue = TextDecoration;\nexport const TextDecorationTokenData = tokenAliasOrValue(TextDecorationValue);\n\nexport type TextDecoration = z.infer<typeof TextDecoration>;\nexport type TextDecorationValue = z.infer<typeof TextDecorationValue>;\nexport type TextDecorationTokenData = z.infer<typeof TextDecorationTokenData>;\n","import { z } from \"zod\";\nimport { FontSizeTokenData } from \"./font-size\";\nimport { FontFamilyTokenData } from \"./font-family\";\nimport { FontWeightTokenData } from \"./font-weight\";\nimport { TextDecorationTokenData } from \"./text-decoration\";\nimport { TextCaseTokenData } from \"./text-case\";\nimport { LetterSpacingTokenData } from \"./letter-spacing\";\nimport { LineHeightTokenData } from \"./line-height\";\nimport { ParagraphIndentTokenData } from \"./paragraph-indent\";\nimport { ParagraphSpacingTokenData } from \"./paragraph-spacing\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TypographyValue = z.object({\n fontSize: FontSizeTokenData,\n fontFamily: FontFamilyTokenData,\n fontWeight: FontWeightTokenData,\n textDecoration: TextDecorationTokenData,\n textCase: TextCaseTokenData,\n letterSpacing: LetterSpacingTokenData.optional(),\n lineHeight: LineHeightTokenData.optional(),\n paragraphIndent: ParagraphIndentTokenData.optional(),\n paragraphSpacing: ParagraphSpacingTokenData.optional(),\n});\n\nexport const TypographyTokenData = tokenAliasOrValue(TypographyValue);\n\nexport type TypographyValue = z.infer<typeof TypographyValue>;\nexport type TypographyTokenData = z.infer<typeof TypographyTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const Visibility = z.enum([\"Hidden\", \"Visible\"]);\nexport const VisibilityValue = Visibility;\nexport const VisibilityTokenData = tokenAliasOrValue(VisibilityValue);\n\nexport type Visibility = z.infer<typeof Visibility>;\nexport type VisibilityValue = z.infer<typeof VisibilityValue>;\nexport type VisibilityTokenData = z.infer<typeof VisibilityTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ZIndexUnit = z.enum([\"Raw\"]);\n\nexport const ZIndexValue = z.object({\n unit: ZIndexUnit,\n measure: z.number(),\n});\n\nexport const ZIndexTokenData = tokenAliasOrValue(ZIndexValue);\n\nexport type ZIndexUnit = z.infer<typeof ZIndexUnit>;\nexport type ZIndexValue = z.infer<typeof ZIndexValue>;\nexport type ZIndexTokenData = z.infer<typeof ZIndexTokenData>;\n","import { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { z } from \"zod\";\nimport {\n DesignElementBase,\n DesignElementBrandedPart,\n DesignElementGroupableRequiredPart,\n DesignElementOrigin,\n} from \"./base\";\n\nexport const ComponentOriginPart = z.object({\n nodeId: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n});\n\nconst ComponentAsset = z.object({\n assetId: z.string(),\n assetPath: z.string(),\n});\n\nexport const ComponentOrigin = DesignElementOrigin.extend(ComponentOriginPart.shape);\n\nexport const Component = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementBrandedPart.shape)\n .extend({\n origin: ComponentOrigin.optional(),\n thumbnail: ComponentAsset,\n svg: ComponentAsset.optional(),\n isAsset: z.boolean(),\n });\n\nexport type ComponentAsset = z.infer<typeof ComponentAsset>;\nexport type Component = z.infer<typeof Component>;\nexport type ComponentOrigin = z.infer<typeof ComponentOrigin>;\nexport type ImportedComponent = OmitStrict<Component, \"origin\"> & { origin: ComponentOrigin };\n\nexport function isImportedComponent(component: Component): component is ImportedComponent {\n return !!component.origin;\n}\n\nexport type CreateComponent = DbCreateInputOmit<Component>;\nexport type UpdateComponent = OmitStrict<DbUpdate<Component>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type ComponentDiff = {\n toCreate: CreateComponent[];\n toUpdate: UpdateComponent[];\n toDelete: Component[\"id\"][];\n};\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart, DesignElementSlugPart } from \"./base\";\nimport { DocumentationPageDataV1, ElementGroupDataV1 } from \"./data\";\nimport { ElementGroup } from \"./group\";\n\n//\n// Documentation page\n//\n\nexport const DocumentationPageV1 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend({\n shortPersistentId: z.string(),\n data: DocumentationPageDataV1,\n });\n\nexport type DocumentationPageV1 = z.infer<typeof DocumentationPageV1>;\n\nexport type CreateDocumentationPageV1 = DbCreateInputOmit<DocumentationPageV1>;\nexport type UpdateDocumentationPageV1 = OmitStrict<DbUpdate<DocumentationPageV1>, \"designSystemVersionId\">;\n\n//\n// Documentation group (legacy)\n//\n\nexport const DocumentationGroupV1 = ElementGroup.omit({\n data: true,\n}).extend({\n data: ElementGroupDataV1.optional(),\n});\n\nexport type DocumentationGroupV1 = z.infer<typeof DocumentationGroupV1>;\n","import { DesignElementType } from \"./raw-element\";\nimport { DesignElementBase, DesignElementBrandedPart, DesignElementGroupablePart, DesignElementSlugPart } from \"./base\";\nimport { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { ElementGroupDataV2 } from \"./data\";\n\nexport const ElementGroup = DesignElementBase.extend(DesignElementGroupablePart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend(DesignElementBrandedPart.partial().shape)\n .extend({\n shortPersistentId: z.string().optional(),\n childType: DesignElementType,\n data: ElementGroupDataV2.optional(),\n });\n\nexport const BrandedElementGroup = ElementGroup.extend(DesignElementBrandedPart.shape);\n\nexport type ElementGroup = z.infer<typeof ElementGroup>;\nexport type BrandedElementGroup = z.infer<typeof BrandedElementGroup>;\n\nexport type CreateElementGroup = OmitStrict<DbCreateInputOmit<ElementGroup>, \"parentPersistentId\"> & {\n parentPersistentId: string;\n};\n\nexport type UpdateElementGroup = DbUpdate<\n OmitStrict<ElementGroup, \"brandPersistentId\" | \"childType\" | \"designSystemVersionId\" | \"parentPersistentId\"> & {\n parentPersistentId: string;\n }\n>;\n\nexport type ElementGroupsDiff = {\n toCreate: CreateElementGroup[];\n toUpdate: UpdateElementGroup[];\n toDelete: ElementGroup[\"id\"][];\n};\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart, DesignElementSlugPart } from \"./base\";\nimport { PageBlockV1 } from \"./data\";\nimport { DocumentationPageDataV2 } from \"./data/documentation-page-v2\";\n\nexport const DocumentationPageV2 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend({\n shortPersistentId: z.string(),\n data: DocumentationPageDataV2.extend({\n oldBlocks: z.array(PageBlockV1).optional(),\n }),\n });\n\nexport type DocumentationPageV2 = z.infer<typeof DocumentationPageV2>;\n\nexport type CreateDocumentationPageV2 = DbCreateInputOmit<DocumentationPageV2>;\nexport type UpdateDocumentationPageV2 = OmitStrict<DbUpdate<DocumentationPageV2>, \"designSystemVersionId\">;\n","import { z } from \"zod\";\nimport { DesignElementBase } from \"./base\";\nimport { FigmaFileStructureNode, FigmaFileStructureStatistics } from \"./data/figma-file-structure\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\n\nexport const FigmaFileStructureOrigin = z.object({\n sourceId: z.string(),\n fileId: z.string().optional(),\n});\n\nexport const FigmaFileStructureData = z.object({\n rootNode: FigmaFileStructureNode,\n assetsInFile: FigmaFileStructureStatistics,\n});\n\nexport const FigmaFileStructure = DesignElementBase.extend({\n origin: FigmaFileStructureOrigin,\n data: FigmaFileStructureData,\n});\n\nexport type FigmaFileStructureOrigin = z.infer<typeof FigmaFileStructureOrigin>;\nexport type FigmaFileStructureData = z.infer<typeof FigmaFileStructureData>;\nexport type FigmaFileStructure = z.infer<typeof FigmaFileStructure>;\n\nexport type CreateFigmaFileStructure = DbCreateInputOmit<FigmaFileStructure>;\nexport type UpdateFigmaFileStructure = OmitStrict<DbUpdate<FigmaFileStructure>, \"designSystemVersionId\">;\n\nexport type FigmaFileStructureDiff = {\n toCreate: CreateFigmaFileStructure[];\n toUpdate: UpdateFigmaFileStructure[];\n};\n\nexport function traverseStructure(node: FigmaFileStructureNode, action: (node: FigmaFileStructureNode) => void) {\n action(node);\n\n for (const child of node.children) {\n traverseStructure(child, action);\n }\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { DesignElementBase } from \"./base\";\nimport { FigmaNodeReferenceData } from \"./data/figma-node-reference\";\n\nexport const FigmaNodeReferenceOrigin = z.object({\n sourceId: z.string(),\n parentName: z.string().optional(),\n});\n\nexport const FigmaNodeReference = DesignElementBase.extend({\n data: FigmaNodeReferenceData,\n origin: FigmaNodeReferenceOrigin,\n});\n\nexport type FigmaNodeReferenceOrigin = z.infer<typeof FigmaNodeReferenceOrigin>;\nexport type FigmaNodeReference = z.infer<typeof FigmaNodeReference>;\n\nexport type CreateFigmaNodeReference = DbCreateInputOmit<FigmaNodeReference>;\nexport type UpdateFigmaNodeReference = OmitStrict<DbUpdate<FigmaNodeReference>, \"designSystemVersionId\">;\n\nexport type FigmaNodeReferenceDiff = {\n toUpdate: UpdateFigmaNodeReference[];\n};\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { DesignElementBase, DesignElementBrandedPart } from \"./base\";\nimport { DesignTokenType } from \"./raw-element\";\nimport { DesignTokenOrigin, DesignTokenOriginPart, DesignTokenTypedData } from \"./tokens\";\n\n//\n// Overrides\n//\n\nexport const ThemeOverrideOriginPart = DesignTokenOriginPart;\nexport const ThemeOverrideOrigin = DesignTokenOrigin;\n\nexport const ThemeOverride = DesignTokenTypedData.and(\n z.object({\n tokenPersistentId: z.string(),\n origin: ThemeOverrideOrigin.optional()\n .nullable()\n .transform(v => v ?? undefined),\n })\n);\n\nexport type ThemeOverride = z.infer<typeof ThemeOverride>;\nexport type ThemeOverrideOfType<T extends DesignTokenType> = Extract<ThemeOverride, { type: T }>;\n\n//\n// Theme data\n//\n\nexport const ThemeElementData = z.object({\n value: z.object({\n overrides: z.array(ThemeOverride),\n }),\n});\n\nexport type ThemeElementData = z.infer<typeof ThemeElementData>;\n\n//\n// Theme\n//\n\nexport const ThemeOriginPart = z.object({});\n\nexport const ThemeOriginObject = z.object({\n id: z.string(),\n name: z.string(),\n});\n\nexport const ThemeOriginSource = z.object({\n sourceId: z.string(),\n sourceObjects: z.array(ThemeOriginObject),\n});\n\nexport const ThemeOrigin = z.object({\n sources: z.array(ThemeOriginSource),\n});\n\nexport const Theme = DesignElementBase.extend(DesignElementBrandedPart.shape).extend({\n origin: ThemeOrigin.optional(),\n overrides: z.array(ThemeOverride),\n codeName: z.string(),\n});\n\nexport type Theme = z.infer<typeof Theme>;\nexport type ThemeOrigin = z.infer<typeof ThemeOrigin>;\nexport type ThemeOriginSource = z.infer<typeof ThemeOriginSource>;\nexport type ThemeOriginObject = z.infer<typeof ThemeOriginObject>;\n\nexport type CreateTheme = DbCreateInputOmit<Theme>;\nexport type UpdateTheme = OmitStrict<DbUpdate<Theme>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type ThemeDiff = {\n toCreate: CreateTheme[];\n toUpdate: UpdateTheme[];\n};\n","import { z } from \"zod\";\nimport { DbUpdate, zodCreateInputOmit, zodUpdateInputOmit } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport {\n DesignElementBase,\n DesignElementBrandedPart,\n DesignElementGroupableRequiredPart,\n DesignElementOrigin,\n} from \"./base\";\nimport {\n BlurTokenData,\n BorderRadiusTokenData,\n BorderTokenData,\n BorderWidthTokenData,\n ColorTokenData,\n DimensionTokenData,\n DurationTokenData,\n FontFamilyTokenData,\n FontSizeTokenData,\n FontWeightTokenData,\n GradientTokenData,\n LetterSpacingTokenData,\n LineHeightTokenData,\n OpacityTokenData,\n ParagraphSpacingTokenData,\n ProductCopyTokenData,\n ShadowTokenData,\n SizeTokenData,\n SpaceTokenData,\n StringTokenData,\n TextCaseTokenData,\n TextDecorationTokenData,\n TypographyTokenData,\n VisibilityTokenData,\n ZIndexTokenData,\n} from \"./data\";\nimport { DesignTokenType } from \"./raw-element\";\n\n//\n// Base\n//\n\nexport const DesignTokenOriginPart = z.object({\n referenceOriginId: z.string().optional(),\n referenceOriginKey: z.string().optional(),\n referencePersistentId: z.string().optional(),\n referenceResolutionFailed: z.boolean().optional(),\n key: z.string().optional(),\n});\n\nexport const DesignTokenOrigin = DesignElementOrigin.extend(DesignTokenOriginPart.shape);\n\nconst DesignTokenBase = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementBrandedPart.shape)\n .extend({\n origin: DesignTokenOrigin.optional(),\n });\n\nconst CreateDesignTokenBase = DesignTokenBase.omit(zodCreateInputOmit());\nconst UpdateDesignTokenBase = DesignTokenBase.omit({\n ...zodUpdateInputOmit(),\n brandPersistentId: true,\n designSystemVersionId: true,\n});\n\n//\n// Per type\n//\n\nconst BlurTokenTypedData = z.object({\n type: z.literal(\"Blur\"),\n data: BlurTokenData,\n});\n\nconst ColorTokenTypedData = z.object({\n type: z.literal(\"Color\"),\n data: ColorTokenData,\n});\n\nconst GradientTokenTypedData = z.object({\n type: z.literal(\"Gradient\"),\n data: GradientTokenData,\n});\n\nconst OpacityTokenTypedData = z.object({\n type: z.literal(\"Opacity\"),\n data: OpacityTokenData,\n});\n\nconst ShadowTokenTypedData = z.object({\n type: z.literal(\"Shadow\"),\n data: ShadowTokenData,\n});\n\nconst TypographyTokenTypedData = z.object({\n type: z.literal(\"Typography\"),\n data: TypographyTokenData,\n});\n\nconst StringTokenTypedData = z.object({\n type: z.literal(\"String\"),\n data: StringTokenData,\n});\n\nconst DimensionTokenTypedData = z.object({\n type: z.literal(\"Dimension\"),\n data: DimensionTokenData,\n});\n\nconst FontSizeTokenTypedData = z.object({\n type: z.literal(\"FontSize\"),\n data: FontSizeTokenData,\n});\n\nconst FontFamilyTokenTypedData = z.object({\n type: z.literal(\"FontFamily\"),\n data: FontFamilyTokenData,\n});\n\nconst FontWeightTokenTypedData = z.object({\n type: z.literal(\"FontWeight\"),\n data: FontWeightTokenData,\n});\n\nconst LetterSpacingTokenTypedData = z.object({\n type: z.literal(\"LetterSpacing\"),\n data: LetterSpacingTokenData,\n});\n\nconst LineHeightTokenTypedData = z.object({\n type: z.literal(\"LineHeight\"),\n data: LineHeightTokenData,\n});\n\nconst ParagraphSpacingTokenTypedData = z.object({\n type: z.literal(\"ParagraphSpacing\"),\n data: ParagraphSpacingTokenData,\n});\n\nconst TextCaseTokenTypedData = z.object({\n type: z.literal(\"TextCase\"),\n data: TextCaseTokenData,\n});\n\nconst TextDecorationTokenTypedData = z.object({\n type: z.literal(\"TextDecoration\"),\n data: TextDecorationTokenData,\n});\n\nconst BorderRadiusTokenTypedData = z.object({\n type: z.literal(\"BorderRadius\"),\n data: BorderRadiusTokenData,\n});\n\nconst BorderWidthTokenTypedData = z.object({\n type: z.literal(\"BorderWidth\"),\n data: BorderWidthTokenData,\n});\n\nconst BorderTypedData = z.object({\n type: z.literal(\"Border\"),\n data: BorderTokenData,\n});\n\nconst ProductCopyTypedData = z.object({\n type: z.literal(\"ProductCopy\"),\n data: ProductCopyTokenData,\n});\n\nconst SizeTypedData = z.object({\n type: z.literal(\"Size\"),\n data: SizeTokenData,\n});\n\nconst SpaceTypedData = z.object({\n type: z.literal(\"Space\"),\n data: SpaceTokenData,\n});\n\nconst VisibilityTypedData = z.object({\n type: z.literal(\"Visibility\"),\n data: VisibilityTokenData,\n});\n\nconst ZIndexTypedData = z.object({\n type: z.literal(\"ZIndex\"),\n data: ZIndexTokenData,\n});\n\nconst DurationTypedData = z.object({\n type: z.literal(\"Duration\"),\n data: DurationTokenData,\n});\n\nconst FontTypedData = z.object({\n type: z.literal(\"Font\"),\n data: z.record(z.any()),\n});\n\n//\n// Global types\n//\n\nexport const DesignTokenTypedData = z.discriminatedUnion(\"type\", [\n BlurTokenTypedData,\n BorderRadiusTokenTypedData,\n BorderWidthTokenTypedData,\n BorderTypedData,\n ColorTokenTypedData,\n\n DimensionTokenTypedData,\n DurationTypedData,\n FontSizeTokenTypedData,\n FontFamilyTokenTypedData,\n FontWeightTokenTypedData,\n\n GradientTokenTypedData,\n LetterSpacingTokenTypedData,\n LineHeightTokenTypedData,\n OpacityTokenTypedData,\n ParagraphSpacingTokenTypedData,\n\n ProductCopyTypedData,\n ShadowTokenTypedData,\n SizeTypedData,\n SpaceTypedData,\n StringTokenTypedData,\n\n TextCaseTokenTypedData,\n TextDecorationTokenTypedData,\n TypographyTokenTypedData,\n VisibilityTypedData,\n ZIndexTypedData,\n FontTypedData,\n]);\n\nexport type DesignTokenOriginPart = z.infer<typeof DesignTokenOriginPart>;\nexport type DesignTokenOrigin = z.infer<typeof DesignTokenOrigin>;\n\nexport type DesignTokenBase = z.infer<typeof DesignTokenBase>;\n\nexport const DesignToken = DesignTokenTypedData.and(DesignTokenBase);\nexport const CreateDesignToken = DesignTokenTypedData.and(CreateDesignTokenBase);\n\nexport type DesignTokenTypedData = z.infer<typeof DesignTokenTypedData>;\nexport type DesignTokenTypedDataOfType<T extends DesignTokenType> = Extract<DesignTokenTypedData, { type: T }>;\n\nexport type DesignToken = z.infer<typeof DesignToken>;\nexport type ImportedDesignToken = OmitStrict<DesignToken, \"origin\"> & { origin: DesignTokenOrigin };\n\nexport type DesignTokenOfType<T extends DesignTokenType> = Extract<DesignToken, { type: T }>;\nexport type ImportedDesignTokenOfType<T extends DesignTokenType> = Extract<ImportedDesignToken, { type: T }>;\n\nexport type CreateDesignToken = z.infer<typeof CreateDesignToken>;\nexport type UpdateDesignToken = OmitStrict<DbUpdate<DesignToken>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type DesignTokensDiff = {\n toCreate: CreateDesignToken[];\n toUpdate: UpdateDesignToken[];\n};\n\n//\n// Utilities\n//\n\nexport function extractTokenTypedData<T extends DesignTokenType, I extends DesignTokenTypedDataOfType<T>>(\n source: I\n): DesignTokenTypedDataOfType<T> {\n return {\n type: source.type,\n data: source.data,\n } as DesignTokenTypedDataOfType<T>;\n}\n\nexport function isImportedDesignToken<T extends DesignTokenType>(\n designToken: DesignTokenOfType<T>\n): designToken is ImportedDesignTokenOfType<T> {\n return !!designToken.origin;\n}\n\nexport function isDesignTokenOfType<T extends DesignTokenType>(\n designToken: DesignToken,\n type: T\n): designToken is DesignTokenOfType<T> {\n return designToken.type === type;\n}\n\nexport function designTokenTypeFilter<T extends DesignTokenType>(\n type: T\n): (designToken: DesignToken) => designToken is DesignTokenOfType<T> {\n return (designToken): designToken is DesignTokenOfType<T> => isDesignTokenOfType(designToken, type);\n}\n","import { DocumentationPageContentItem, PageBlockDefinition, PageBlockDefinitionProperty } from \"../documentation\";\nimport { PageBlockItemUntypedValue, PageBlockItemV2 } from \"./data\";\nimport { PageBlockEditorModelV2 } from \"./page-block-v2\";\n\n//\n// Traverse\n//\n\n/**\n * Pay attention to correct types!\n */\nexport function mapPageBlockItemValuesV2(\n pageItems: DocumentationPageContentItem[],\n definitionsMap: PageBlockDefinitionsMap,\n fn: (\n block: PageBlockEditorModelV2,\n item: PageBlockItemV2,\n property: PageBlockDefinitionProperty,\n value: PageBlockItemUntypedValue\n ) => PageBlockItemUntypedValue\n) {\n traversePageBlockItemsV2(pageItems, (block, item) => {\n Object.entries(item.props).forEach(([propKey, value]) => {\n const property = definitionsMap.getDefinitionProperty(block.data.packageId, propKey);\n if (!property) return;\n\n item.props[propKey] = fn(block, item, property, value);\n });\n });\n}\n\nexport function traversePageBlockItemValuesV2(\n pageItems: DocumentationPageContentItem[],\n definitionsMap: PageBlockDefinitionsMap,\n fn: (\n block: PageBlockEditorModelV2,\n item: PageBlockItemV2,\n property: PageBlockDefinitionProperty,\n value: PageBlockItemUntypedValue\n ) => void\n) {\n traversePageBlockItemsV2(pageItems, (block, item) => {\n Object.entries(item.props).forEach(([propKey, value]) => {\n const property = definitionsMap.getDefinitionProperty(block.data.packageId, propKey);\n if (!property) return;\n\n fn(block, item, property, value);\n });\n });\n}\n\nexport function traversePageBlockItemsV2(\n pageItems: DocumentationPageContentItem[],\n fn: (block: PageBlockEditorModelV2, item: PageBlockItemV2) => void\n) {\n traversePageItemsV2(pageItems, block => {\n block.data.items.forEach(item => {\n fn(block, item);\n });\n });\n}\n\nexport function traversePageItemsV2(\n pageItems: DocumentationPageContentItem[],\n fn: (item: PageBlockEditorModelV2) => void\n): void {\n for (const item of pageItems) {\n switch (item.type) {\n case \"Block\":\n fn(item);\n\n break;\n\n case \"Section\":\n item.items.forEach(i => {\n i.columns.forEach(c => {\n traversePageItemsV2(c.blocks, fn);\n });\n });\n\n break;\n }\n }\n}\n\n//\n// Definitions map\n//\n\nexport class PageBlockDefinitionsMap {\n private definitionsMap = new Map<string, PageBlockDefinition>();\n private propertiesMap = new Map<string, PageBlockDefinitionProperty>();\n\n constructor(definitions: PageBlockDefinition[]) {\n definitions.forEach(d => {\n this.definitionsMap.set(d.id, d);\n d.item.properties.forEach(p => {\n this.propertiesMap.set(this.propertyKey(d.id, p.id), p);\n });\n });\n }\n\n getDefinition(id: string): PageBlockDefinition | undefined {\n return this.definitionsMap.get(id);\n }\n\n getDefinitionProperty(defId: string, propId: string): PageBlockDefinitionProperty | undefined {\n return this.propertiesMap.get(this.propertyKey(defId, propId));\n }\n\n private propertyKey(defId: string, propId: string): string {\n return `${defId}.${propId}`;\n }\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { DataSourceRemoteType } from \"./data-source\";\nimport { Entity } from \"../../common\";\n\nexport const ImportJobState = z.enum([\"PendingInput\", \"Queued\", \"InProgress\", \"Failed\", \"Success\"]);\nexport const ImportJobOperation = z.enum([\"Check\", \"Import\"]);\n\nexport const ImportJob = Entity.extend({\n designSystemId: z.string(),\n designSystemVersionId: z.string(),\n sourceIds: z.array(z.string()),\n state: ImportJobState,\n createdByUserId: z.string().optional(),\n importContextId: z.string(),\n error: z.string().optional(),\n sourceType: DataSourceRemoteType,\n importContextCleanedUp: z.boolean(),\n});\n\nexport type ImportJobState = z.infer<typeof ImportJobState>;\nexport type ImportJobOperation = z.infer<typeof ImportJobOperation>;\nexport type ImportJob = z.infer<typeof ImportJob>;\n\nexport type CreateImportJob = DbCreateInputOmit<ImportJob>;\nexport type UpdateImportJob = OmitStrict<\n DbUpdate<ImportJob>,\n \"designSystemId\" | \"createdByUserId\" | \"sourceIds\" | \"importContextId\"\n>;\n","import { z } from \"zod\";\nimport { AssetImportModelInput, ComponentImportModel, ComponentImportModelInput } from \"../component\";\nimport { ThemeImportModel, ThemeImportModelInput, ThemeUpdateImportModel, ThemeUpdateImportModelInput } from \"../theme\";\nimport { DesignTokenImportModel, DesignTokenImportModelInput } from \"../tokens\";\nimport { FigmaFileStructureImportModel, FigmaFileStructureImportModelInput } from \"../figma-frames\";\nimport { DataSourceImportModel } from \"../data-source\";\n\n//\n// Collections\n//\n\nexport const ImportModelInputCollection = z.object({\n source: DataSourceImportModel,\n tokens: z.array(DesignTokenImportModelInput).default([]),\n components: z.array(ComponentImportModelInput).default([]),\n assets: z.array(AssetImportModelInput).default([]),\n themeUpdates: z.array(ThemeUpdateImportModelInput).default([]),\n themes: z.array(ThemeImportModelInput).default([]),\n figmaFileStructure: FigmaFileStructureImportModelInput.optional(),\n});\n\nexport const ImportModelCollection = z.object({\n sources: z.array(DataSourceImportModel),\n tokens: z.array(DesignTokenImportModel).default([]),\n components: z.array(ComponentImportModel).default([]),\n themeUpdates: z.array(ThemeUpdateImportModel).default([]),\n themes: z.array(ThemeImportModel).default([]),\n figmaFileStructures: z.array(FigmaFileStructureImportModel),\n});\n\nexport type ImportModelCollection = z.infer<typeof ImportModelCollection>;\nexport type ImportModelInputCollection = z.infer<typeof ImportModelInputCollection>;\n\nexport function addImportModelCollections(\n lhs: ImportModelCollection,\n rhs: ImportModelCollection\n): ImportModelCollection {\n return {\n sources: [...lhs.sources, ...rhs.sources],\n tokens: [...lhs.tokens, ...rhs.tokens],\n components: [...lhs.components, ...rhs.components],\n themeUpdates: [...lhs.themeUpdates, ...rhs.themeUpdates],\n themes: [...lhs.themes, ...rhs.themes],\n figmaFileStructures: [...lhs.figmaFileStructures, ...rhs.figmaFileStructures],\n };\n}\n","import { z } from \"zod\";\nimport { AssetScope } from \"../assets\";\n\n//\n// Abstract\n//\n\nexport const ImageImportModelType = z.enum([\"Url\", \"FigmaRender\"]);\nexport type ImageImportModelType = z.infer<typeof ImageImportModelType>;\n\nconst ImageImportModelBase = z.object({\n scope: AssetScope,\n});\n\n//\n// Url\n//\n\nexport const UrlImageImportModel = ImageImportModelBase.extend({\n type: z.literal(ImageImportModelType.enum.Url),\n url: z.string(),\n originKey: z.string(),\n extension: z.string(),\n});\n\nexport type UrlImageImportModel = z.infer<typeof UrlImageImportModel>;\n\n//\n// Figma Render\n//\n\nexport const FigmaRenderFormat = z.enum([\"Svg\", \"Png\", \"Pdf\"]);\n\nconst FigmaRenderBase = ImageImportModelBase.extend({\n type: z.literal(ImageImportModelType.enum.FigmaRender),\n fileId: z.string(),\n fileVersionId: z.string().optional(),\n nodeId: z.string(),\n originKey: z.string(),\n});\n\nexport const FigmaPngRenderImportModel = FigmaRenderBase.extend({\n format: z.literal(FigmaRenderFormat.enum.Png),\n scale: z.number(),\n});\n\nexport const FigmaSvgRenderImportModel = FigmaRenderBase.extend({\n format: z.literal(FigmaRenderFormat.enum.Svg),\n});\n\nexport const FigmaRenderImportModel = z.discriminatedUnion(\"format\", [\n FigmaPngRenderImportModel,\n FigmaSvgRenderImportModel,\n]);\n\n//\n// Union\n//\n\n// Unfortunately discriminated union doesn't support inserting another discriminated union\nexport const ImageImportModel = z.union([UrlImageImportModel, FigmaRenderImportModel]);\n\n//\n// Types\n//\n\nexport type FigmaRenderFormat = z.infer<typeof FigmaRenderFormat>;\nexport type FigmaRenderBase = z.infer<typeof FigmaRenderBase>;\nexport type FigmaPngRenderImportModel = z.infer<typeof FigmaPngRenderImportModel>;\nexport type FigmaSvgRenderImportModel = z.infer<typeof FigmaSvgRenderImportModel>;\nexport type FigmaRenderImportModel = z.infer<typeof FigmaRenderImportModel>;\nexport type ImageImportModel = z.infer<typeof ImageImportModel>;\n\n//\n// Utils\n//\n\nexport function getFigmaRenderFormatFileExtension(format: FigmaRenderFormat): string {\n switch (format) {\n case \"Pdf\":\n return \"pdf\";\n case \"Png\":\n return \"png\";\n case \"Svg\":\n return \"svg\";\n }\n}\n","import { FigmaSvgRenderImportModel, ImageImportModel } from \"./image\";\nimport { ComponentOrigin, ComponentOriginPart } from \"../elements\";\nimport { z } from \"zod\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\n\n//\n// Import model\n//\n\nconst ComponentImportModelPart = z.object({\n thumbnail: ImageImportModel,\n});\n\nexport const ComponentImportModel = ImportModelBase.extend(ComponentImportModelPart.shape).extend({\n isAsset: z.boolean(),\n svg: FigmaSvgRenderImportModel.optional(),\n origin: ComponentOrigin,\n});\n\nexport type ComponentImportModel = z.infer<typeof ComponentImportModel>;\n\n//\n// Import model input\n//\n\nexport const ComponentImportModelInput = ImportModelInputBase.extend(ComponentImportModelPart.shape).extend({\n originMetadata: ComponentOriginPart,\n});\n\nexport const AssetImportModelInput = ImportModelInputBase.extend(ComponentImportModelPart.shape).extend({\n svg: FigmaSvgRenderImportModel,\n originMetadata: ComponentOriginPart,\n});\n\nexport type ComponentImportModelInput = z.infer<typeof ComponentImportModelInput>;\nexport type AssetImportModelInput = z.infer<typeof AssetImportModelInput>;\n","import { z } from \"zod\";\nimport { DesignElementOrigin } from \"../elements\";\nimport { ObjectMeta } from \"../../common\";\n\nexport const ImportModelBase = z.object({\n id: z.string(),\n meta: ObjectMeta,\n origin: DesignElementOrigin,\n brandPersistentId: z.string(),\n sortOrder: z.number(),\n});\n\nexport type ImportModelBase = z.infer<typeof ImportModelBase>;\n\nexport const ImportModelInputBase = ImportModelBase.omit({\n brandPersistentId: true,\n origin: true,\n sortOrder: true,\n}).extend({\n originId: z.string(),\n originMetadata: z.record(z.any()),\n});\n\nexport type ImportModelInputBase = z.infer<typeof ImportModelInputBase>;\n","import { z } from \"zod\";\nimport { DesignTokenTypedData } from \"../elements\";\nimport { DesignTokenType } from \"../elements\";\nimport { ThemeOriginObject, ThemeOriginSource, ThemeOverrideOrigin, ThemeOverrideOriginPart } from \"../elements\";\nimport { ObjectMeta } from \"../../common\";\n\n//\n// Overrides\n//\n\nexport const ThemeOverrideImportModelBase = DesignTokenTypedData.and(\n z.object({\n id: z.string(),\n meta: ObjectMeta,\n })\n);\n\nexport const ThemeOverrideImportModel = ThemeOverrideImportModelBase.and(\n z.object({\n origin: ThemeOverrideOrigin,\n })\n);\n\nexport const ThemeOverrideImportModelInput = ThemeOverrideImportModelBase.and(\n z.object({\n originId: z.string(),\n originMetadata: ThemeOverrideOriginPart,\n })\n);\n\nexport type ThemeOverrideImportModel = z.infer<typeof ThemeOverrideImportModel>;\nexport type ThemeOverrideImportModelOfType<T extends DesignTokenType> = Extract<ThemeOverrideImportModel, { type: T }>;\n\nexport type ThemeOverrideImportModelInput = z.infer<typeof ThemeOverrideImportModelInput>;\nexport type ThemeOverrideImportModelInputOfType<T extends DesignTokenType> = Extract<\n ThemeOverrideImportModelInput,\n { type: T }\n>;\n\n//\n// Themes\n//\n\nexport const ThemeImportModel = z.object({\n meta: ObjectMeta,\n brandPersistentId: z.string(),\n originSource: ThemeOriginSource,\n overrides: z.array(ThemeOverrideImportModel),\n sortOrder: z.number(),\n});\n\nexport const ThemeImportModelInput = z.object({\n meta: ObjectMeta,\n originObjects: z.array(ThemeOriginObject),\n overrides: z.array(ThemeOverrideImportModelInput),\n});\n\nexport type ThemeImportModel = z.infer<typeof ThemeImportModel>;\nexport type ThemeImportModelInput = z.infer<typeof ThemeImportModelInput>;\n\n//\n// Theme Update\n//\n\nexport const ThemeUpdateImportModel = z.object({\n themePersistentId: z.string(),\n overrides: z.array(ThemeOverrideImportModel),\n});\n\nexport const ThemeUpdateImportModelInput = z.object({\n themePersistentId: z.string(),\n overrides: z.array(ThemeOverrideImportModelInput),\n});\n\nexport type ThemeUpdateImportModel = z.infer<typeof ThemeUpdateImportModel>;\nexport type ThemeUpdateImportModelInput = z.infer<typeof ThemeUpdateImportModelInput>;\n","import { z } from \"zod\";\nimport { DesignTokenOrigin, DesignTokenOriginPart, DesignTokenType, DesignTokenTypedData } from \"../elements\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\n\n//\n// Base\n//\n\nconst DesignTokenImportModelPart = z.object({\n collection: z.string().optional(),\n codeSyntax: z.record(z.coerce.string()).optional(),\n});\n\nexport const DesignTokenImportModelBase = ImportModelBase.extend(DesignTokenImportModelPart.shape).extend({\n origin: DesignTokenOrigin,\n});\n\nexport const DesignTokenImportModelInputBase = ImportModelInputBase.extend(DesignTokenImportModelPart.shape).extend({\n originMetadata: DesignTokenOriginPart,\n});\n\n//\n// Import models\n//\n\nexport const DesignTokenImportModel = DesignTokenTypedData.and(DesignTokenImportModelBase);\nexport const DesignTokenImportModelInput = DesignTokenTypedData.and(DesignTokenImportModelInputBase);\n\nexport type DesignTokenImportModelInputBase = z.infer<typeof DesignTokenImportModelInputBase>;\n\nexport type DesignTokenImportModel = z.infer<typeof DesignTokenImportModel>;\nexport type DesignTokenImportModelOfType<T extends DesignTokenType> = Extract<DesignTokenImportModel, { type: T }>;\n\nexport type DesignTokenImportModelInput = z.infer<typeof DesignTokenImportModelInput>;\nexport type DesignTokenImportModelInputOfType<T extends DesignTokenType> = Extract<DesignTokenImportModel, { type: T }>;\n\nexport function isDesignTokenImportModelOfType<T extends DesignTokenType>(\n designToken: DesignTokenImportModel,\n type: T\n): designToken is DesignTokenImportModelOfType<T> {\n return designToken.type === type;\n}\n\nexport function designTokenImportModelTypeFilter<T extends DesignTokenType>(\n type: T\n): (designToken: DesignTokenImportModel) => designToken is DesignTokenImportModelOfType<T> {\n return (designToken): designToken is DesignTokenImportModelOfType<T> =>\n isDesignTokenImportModelOfType(designToken, type);\n}\n","import { ZodType, ZodTypeDef, z } from \"zod\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\nimport { FigmaFileStructureOrigin } from \"../elements\";\nimport { FigmaFileStructureNodeBase, FigmaFileStructureStatistics } from \"../elements\";\nimport { FigmaPngRenderImportModel } from \"./image\";\n\n//\n// Nodes Import Model\n//\n\nconst FigmaFileStructureNodeImportModelBase = FigmaFileStructureNodeBase.extend({\n image: FigmaPngRenderImportModel,\n});\n\nexport const FigmaFileStructureNodeImportModel: z.ZodType<\n FigmaFileStructureNodeImportModel,\n ZodTypeDef,\n FigmaFileStructureNodeImportModelBaseInput\n> = FigmaFileStructureNodeImportModelBase.extend({\n children: z.lazy(() => FigmaFileStructureNodeImportModel.array()),\n});\n\ntype FigmaFileStructureNodeImportModelBaseInput = z.input<typeof FigmaFileStructureNodeImportModelBase> & {\n children: FigmaFileStructureNodeImportModelBaseInput[];\n};\n\nexport type FigmaFileStructureNodeImportModel = z.infer<typeof FigmaFileStructureNodeImportModelBase> & {\n children: FigmaFileStructureNodeImportModel[];\n};\n\n//\n// Structure Import Model\n//\n\nconst FigmaFileStructureImportModelPart = z.object({\n data: z.object({\n rootNode: FigmaFileStructureNodeImportModel,\n assetsInFile: FigmaFileStructureStatistics,\n }),\n});\n\nexport const FigmaFileStructureImportModel = ImportModelBase.extend(FigmaFileStructureImportModelPart.shape).extend({\n origin: FigmaFileStructureOrigin,\n});\n\nexport type FigmaFileStructureImportModel = z.infer<typeof FigmaFileStructureImportModel>;\n\n//\n// Import model input\n//\n\nexport const FigmaFileStructureImportModelInput = ImportModelInputBase.extend(\n FigmaFileStructureImportModelPart.shape\n).extend({\n fileVersionId: z.string(),\n});\n\nexport type FigmaFileStructureImportModelInput = z.infer<typeof FigmaFileStructureImportModelInput>;\n\nexport function figmaFileStructureImportModelToMap(\n root: FigmaFileStructureNodeImportModel\n): Map<string, FigmaFileStructureNodeImportModel> {\n const map = new Map<string, FigmaFileStructureNodeImportModel>();\n recursiveFigmaFileStructureToMap(root, map);\n return map;\n}\n\nfunction recursiveFigmaFileStructureToMap(\n node: FigmaFileStructureNodeImportModel,\n map: Map<string, FigmaFileStructureNodeImportModel>\n) {\n map.set(node.id, node);\n for (const child of node.children) recursiveFigmaFileStructureToMap(child, map);\n}\n","import { z } from \"zod\";\n\nexport const DataSourceImportModel = z.object({\n id: z.string(),\n fileName: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n});\n\nexport type DataSourceImportModel = z.infer<typeof DataSourceImportModel>;\n","import { z } from \"zod\";\n\nexport const PageBlockDefinitionAppearance = z.object({\n isBordered: z.boolean().optional(),\n hasBackground: z.boolean().optional(),\n isEditorPresentationDifferent: z.boolean().optional(),\n showBlockHeaderInEditor: z.boolean().optional(),\n});\n\nexport type PageBlockDefinitionAppearance = z.infer<typeof PageBlockDefinitionAppearance>;\n","import { z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\nimport { PageBlockDefinitionItem } from \"./item\";\n\n//\n// Enums\n//\n\nexport const PageBlockCategory = z.enum([\n \"Text\",\n \"Layout\",\n \"Media\",\n \"Embed\",\n \"Figma\",\n \"Code\",\n \"Guidelines\",\n \"Tokens\",\n \"Components\",\n \"Assets\",\n \"Data\",\n \"Other\",\n]);\n\nexport const PageBlockBehaviorDataType = z.enum([\"Item\", \"Token\", \"Asset\", \"Component\", \"FigmaNode\", \"FigmaComponent\"]);\nexport const PageBlockBehaviorSelectionType = z.enum([\"Entity\", \"Group\", \"EntityAndGroup\"]);\n\nexport type PageBlockCategory = z.infer<typeof PageBlockCategory>;\nexport type PageBlockBehaviorDataType = z.infer<typeof PageBlockBehaviorDataType>;\nexport type PageBlockBehaviorSelectionType = z.infer<typeof PageBlockBehaviorSelectionType>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionBehavior = z.object({\n dataType: PageBlockBehaviorDataType,\n items: z\n .object({\n numberOfItems: z.number(),\n allowLinks: z.boolean(),\n newItemLabel: z.string().optional(),\n })\n .optional(),\n entities: z\n .object({\n selectionType: PageBlockBehaviorSelectionType,\n maxSelected: z.number(),\n })\n .optional(),\n});\n\nexport const PageBlockDefinitionOnboarding = z.object({\n helpText: z.string(),\n documentationLink: z.string().optional(),\n});\n\nexport const PageBlockDefinition = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n category: PageBlockCategory,\n icon: z.string().optional(),\n documentationLink: z.string().optional(),\n searchKeywords: z.array(z.string()).optional(),\n item: PageBlockDefinitionItem,\n behavior: PageBlockDefinitionBehavior,\n editorOptions: z.object({\n onboarding: PageBlockDefinitionOnboarding.optional(),\n newItemLabel: z.string().optional(),\n }),\n appearance: PageBlockDefinitionAppearance.optional(),\n});\n\nexport type PageBlockDefinitionBehavior = z.infer<typeof PageBlockDefinitionBehavior>;\nexport type PageBlockDefinitionOnboarding = z.infer<typeof PageBlockDefinitionOnboarding>;\nexport type PageBlockDefinition = z.infer<typeof PageBlockDefinition>;\n","import { z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\nimport { PageBlockDefinitionVariant } from \"./variant\";\n\n//\n// Enums\n//\n\nexport const PageBlockDefinitionPropertyType = z.enum([\n \"RichText\",\n \"MultiRichText\",\n \"Text\",\n \"Boolean\",\n \"Number\",\n \"SingleSelect\",\n \"MultiSelect\",\n \"Image\",\n \"Token\",\n \"TokenType\",\n \"TokenProperty\",\n \"Component\",\n \"ComponentProperty\",\n \"Asset\",\n \"AssetProperty\",\n \"FigmaNode\",\n \"EmbedURL\",\n \"URL\",\n \"Markdown\",\n \"Code\",\n \"CodeSandbox\",\n \"Table\",\n \"Divider\",\n \"Storybook\",\n \"Color\",\n \"FigmaComponent\",\n]);\n\nexport const PageBlockDefinitionRichTextPropertyStyle = z.enum([\n \"Title1\",\n \"Title2\",\n \"Title3\",\n \"Title4\",\n \"Title5\",\n \"Quote\",\n \"Callout\",\n \"Default\",\n]);\n\nexport const PageBlockDefinitionMultiRichTextPropertyStyle = z.enum([\"OL\", \"UL\", \"Default\"]);\n\nexport const PageBlockDefinitionTextPropertyStyle = z.enum([\n \"Title1\",\n \"Title2\",\n \"Title3\",\n \"Title4\",\n \"Title5\",\n \"Default\",\n \"DefaultBold\",\n \"DefaultSemibold\",\n \"Small\",\n \"SmallBold\",\n \"SmallSemibold\",\n \"Custom\",\n]);\n\nexport const PageBlockDefinitionTextPropertyColor = z.enum([\"Neutral\", \"NeutralFaded\"]);\n\nexport const PageBlockDefinitionBooleanPropertyStyle = z.enum([\"SegmentedControl\", \"ToggleButton\", \"Checkbox\"]);\nexport const PageBlockDefinitionSingleSelectPropertyStyle = z.enum([\n \"SegmentedControl\",\n \"ToggleButton\",\n \"Select\",\n \"Checkbox\",\n]);\nexport const PageBlockDefinitionSingleSelectPropertyColor = z.enum([\n \"Green\",\n \"Red\",\n \"Yellow\",\n \"Blue\",\n \"Purple\",\n \"Orange\",\n \"Pink\",\n \"Teal\",\n \"Brown\",\n \"Grey\",\n \"LightGrey\",\n \"Cyan\",\n \"Fuchsia\",\n]);\n\nexport const IconSet = z.enum([\n \"CheckCircle\",\n \"CrossCircle\",\n \"Alert\",\n]);\n\nexport const PageBlockDefinitionMultiSelectPropertyStyle = z.enum([\"SegmentedControl\", \"Select\", \"Checkbox\"]);\n\nexport const PageBlockDefinitionImageAspectRatio = z.enum([\"Auto\", \"Square\", \"Landscape\", \"Portrait\", \"Wide\"]);\n\nexport const PageBlockDefinitionImageWidth = z.enum([\"Full\", \"Icon\", \"Small\", \"Medium\", \"Large\", \"Poster\"]);\n\nexport type PageBlockDefinitionPropertyType = z.infer<typeof PageBlockDefinitionPropertyType>;\nexport type PageBlockDefinitionRichTextPropertyStyle = z.infer<typeof PageBlockDefinitionRichTextPropertyStyle>;\nexport type PageBlockDefinitionMultiRichTextPropertyStyle = z.infer<\n typeof PageBlockDefinitionMultiRichTextPropertyStyle\n>;\nexport type PageBlockDefinitionTextPropertyStyle = z.infer<typeof PageBlockDefinitionTextPropertyStyle>;\nexport type PageBlockDefinitionTextPropertyColor = z.infer<typeof PageBlockDefinitionTextPropertyColor>;\nexport type PageBlockDefinitionBooleanPropertyStyle = z.infer<typeof PageBlockDefinitionBooleanPropertyStyle>;\nexport type PageBlockDefinitionSingleSelectPropertyStyle = z.infer<typeof PageBlockDefinitionSingleSelectPropertyStyle>;\nexport type PageBlockDefinitionMultiSelectPropertyStyle = z.infer<typeof PageBlockDefinitionMultiSelectPropertyStyle>;\nexport type PageBlockDefinitionImageAspectRatio = z.infer<typeof PageBlockDefinitionImageAspectRatio>;\nexport type PageBlockDefinitionImageWidth = z.infer<typeof PageBlockDefinitionImageWidth>;\n\n//\n// Aux\n//\n\nexport const PageBlockDefinitionSelectChoice = z.object({\n value: z.string(),\n name: z.string(),\n icon: IconSet.optional(),\n customIconUrl: z.string().optional(),\n color: PageBlockDefinitionSingleSelectPropertyColor.optional(),\n});\n\nexport type PageBlockDefinitionSelectChoice = z.infer<typeof PageBlockDefinitionSelectChoice>;\n\n//\n// Property options\n//\n\nexport const PageBlockDefinitionUntypedPropertyOptions = z.record(z.any());\n\nexport const PageBlockDefinitionRichTextOptions = z.object({\n richTextStyle: PageBlockDefinitionRichTextPropertyStyle.optional(),\n});\n\nexport const PageBlockDefinitionMutiRichTextOptions = z.object({\n multiRichTextStyle: PageBlockDefinitionMultiRichTextPropertyStyle.optional(),\n});\n\nexport const PageBlockDefinitionTextOptions = z.object({\n placeholder: z.string().optional(),\n defaultValue: z.string().optional(),\n textStyle: PageBlockDefinitionTextPropertyStyle.optional(),\n color: PageBlockDefinitionTextPropertyColor.optional(),\n allowLineBreaks: z.boolean().optional(),\n});\n\nexport const PageBlockDefinitionSelectOptions = z.object({\n singleSelectStyle: PageBlockDefinitionSingleSelectPropertyStyle.optional(),\n defaultChoice: z.string(),\n choices: z.array(PageBlockDefinitionSelectChoice),\n});\n\nexport const PageBlockDefinitionImageOptions = z.object({\n width: PageBlockDefinitionImageWidth.optional(),\n aspectRatio: PageBlockDefinitionImageAspectRatio.optional(),\n allowCaption: z.boolean().optional(),\n recommendation: z.string().optional(),\n});\n\nexport const PageBlockDefinitionBooleanOptions = z.object({\n defaultvalue: z.boolean().optional(),\n booleanStyle: PageBlockDefinitionBooleanPropertyStyle.optional(),\n});\n\nexport const PageBlockDefinitionNumberOptions = z.object({\n defaultValue: z.number(),\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n placeholder: z.string().optional(),\n});\n\nexport const PageBlockDefinitionComponentOptions = z.object({\n renderLayoutAs: z.enum([\"List\", \"Table\"]).optional(),\n allowPropertySelection: z.boolean().optional(),\n});\n\nexport type PageBlockDefinitionUntypedPropertyOptions = z.infer<typeof PageBlockDefinitionUntypedPropertyOptions>;\nexport type PageBlockDefinitionRichTextOptions = z.infer<typeof PageBlockDefinitionRichTextOptions>;\nexport type PageBlockDefinitionMutiRichTextOptions = z.infer<typeof PageBlockDefinitionMutiRichTextOptions>;\nexport type PageBlockDefinitionTextOptions = z.infer<typeof PageBlockDefinitionTextOptions>;\nexport type PageBlockDefinitionSelectOptions = z.infer<typeof PageBlockDefinitionSelectOptions>;\nexport type PageBlockDefinitionImageOptions = z.infer<typeof PageBlockDefinitionImageOptions>;\nexport type PageBlockDefinitionBooleanOptions = z.infer<typeof PageBlockDefinitionBooleanOptions>;\nexport type PageBlockDefinitionNumberOptions = z.infer<typeof PageBlockDefinitionNumberOptions>;\nexport type PageBlockDefinitionComponentOptions = z.infer<typeof PageBlockDefinitionComponentOptions>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionProperty = z.object({\n id: z.string(),\n name: z.string(),\n type: PageBlockDefinitionPropertyType,\n description: z.string().optional(),\n options: PageBlockDefinitionUntypedPropertyOptions.optional(),\n variantOptions: z.record(PageBlockDefinitionUntypedPropertyOptions).optional(),\n});\n\nexport const PageBlockDefinitionItem = z.object({\n properties: z.array(PageBlockDefinitionProperty),\n appearance: PageBlockDefinitionAppearance.optional(),\n variants: z.array(PageBlockDefinitionVariant),\n defaultVariantKey: z.string(),\n});\n\nexport type PageBlockDefinitionProperty = z.infer<typeof PageBlockDefinitionProperty>;\nexport type PageBlockDefinitionItem = z.infer<typeof PageBlockDefinitionItem>;\n","import { ZodTypeDef, z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\n\n//\n// Enums\n//\n\nexport const PageBlockDefinitionLayoutType = z.enum([\"Column\", \"Row\"]);\nexport const PageBlockDefinitionLayoutGap = z.enum([\"Small\", \"Medium\", \"Large\", \"None\"]);\nexport const PageBlockDefinitionLayoutAlign = z.enum([\"Start\", \"Center\", \"End\"]);\nexport const PageBlockDefinitionLayoutResizing = z.enum([\"Fill\", \"Hug\"]);\n\nexport type PageBlockDefinitionLayoutType = z.infer<typeof PageBlockDefinitionLayoutType>;\nexport type PageBlockDefinitionLayoutGap = z.infer<typeof PageBlockDefinitionLayoutGap>;\nexport type PageBlockDefinitionLayoutAlign = z.infer<typeof PageBlockDefinitionLayoutAlign>;\nexport type PageBlockDefinitionLayoutResizing = z.infer<typeof PageBlockDefinitionLayoutResizing>;\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionLayoutBase = z.object({\n type: PageBlockDefinitionLayoutType,\n gap: PageBlockDefinitionLayoutGap.optional(),\n columnAlign: PageBlockDefinitionLayoutAlign.optional(),\n columnResizing: PageBlockDefinitionLayoutResizing.optional(),\n});\n\nexport const PageBlockDefinitionLayout: z.ZodType<PageBlockDefinitionLayout, ZodTypeDef, PageBlockDefinitionLayout> =\n PageBlockDefinitionLayoutBase.extend({\n children: z.lazy(() => z.array(PageBlockDefinitionLayout.or(z.string()))),\n });\n\nexport const PageBlockDefinitionVariant = z.object({\n id: z.string(),\n name: z.string(),\n image: z.string().optional(),\n description: z.string().optional(),\n documentationLink: z.string().optional(),\n layout: PageBlockDefinitionLayout,\n maxColumns: z.number().optional(),\n defaultColumns: z.number().optional(),\n appearance: PageBlockDefinitionAppearance.optional(),\n});\n\nexport type PageBlockDefinitionVariant = z.infer<typeof PageBlockDefinitionVariant>;\nexport type PageBlockDefinitionLayout = z.infer<typeof PageBlockDefinitionLayoutBase> & {\n children: (PageBlockDefinitionLayout | string)[];\n};\n","import { z } from \"zod\";\n\nexport const DocumentationPageGroup = z.object({\n type: z.literal(\"ElementGroup\"),\n childType: z.literal(\"DocumentationPage\"),\n id: z.string(),\n persistentId: z.string(),\n shortPersistentId: z.string(),\n designSystemVersionId: z.string(),\n parentPersistentId: z.string().nullish(),\n sortOrder: z.number(),\n title: z.string(),\n slug: z.string(),\n userSlug: z.string().nullish(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport type DocumentationPageGroup = z.infer<typeof DocumentationPageGroup>;\n","import { z } from \"zod\";\nimport { PageBlockImageReference } from \"../elements\";\n\nexport const DocumentationLinkPreview = z.object({\n title: z.string().optional(),\n description: z.string().optional(),\n thumbnail: PageBlockImageReference.optional(),\n});\n\nexport type DocumentationLinkPreview = z.infer<typeof DocumentationLinkPreview>;\n","import { z } from \"zod\";\n\nexport const DocumentationPageAnchor = z.object({\n blockId: z.string(),\n level: z.number(),\n text: z.string(),\n});\n\nexport type DocumentationPageAnchor = z.infer<typeof DocumentationPageAnchor>;\n","import { z } from \"zod\";\n\nexport const DocumentationPageContentBackup = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n documentationPageId: z.string(),\n documentationPageName: z.string(),\n storagePath: z.string(),\n});\n\nexport type DocumentationPageContentBackup = z.infer<typeof DocumentationPageContentBackup>;\n","import { z } from \"zod\";\nimport { PageBlockEditorModelV2, PageSectionEditorModelV2 } from \"../elements\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\n\nexport const DocumentationPageContentItem = z.discriminatedUnion(\"type\", [\n PageBlockEditorModelV2,\n PageSectionEditorModelV2,\n]);\n\nexport const DocumentationPageContentData = z.object({\n items: z.array(DocumentationPageContentItem),\n});\n\nexport const DocumentationPageContent = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n documentationPageId: z.string(),\n data: DocumentationPageContentData,\n});\n\nexport type DocumentationPageContentItem = z.infer<typeof DocumentationPageContentItem>;\nexport type DocumentationPageContentData = z.infer<typeof DocumentationPageContentData>;\nexport type DocumentationPageContent = z.infer<typeof DocumentationPageContent>;\n\nexport type CreateDocumentationPageContent = DbCreateInputOmit<DocumentationPageContent>;\nexport type UpdateDocumentationPageContent = OmitStrict<\n DbUpdate<DocumentationPageContent>,\n \"designSystemVersionId\" | \"documentationPageId\"\n>;\n","import { z } from \"zod\";\n\nexport const DocumentationPage = z.object({\n type: z.literal(\"DocumentationPage\"),\n id: z.string(),\n persistentId: z.string(),\n shortPersistentId: z.string(),\n designSystemVersionId: z.string(),\n parentPersistentId: z.string().nullish(),\n sortOrder: z.number(),\n title: z.string(),\n slug: z.string(),\n userSlug: z.string().nullish(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport type DocumentationPage = z.infer<typeof DocumentationPage>;\n","import { z } from \"zod\";\n\nexport const DocumentationComment = z.object({\n id: z.string(),\n\n authorId: z.string(),\n threadId: z.string(),\n roomId: z.string(),\n\n createdAt: z.coerce.date(),\n editedAt: z.coerce.date().optional(),\n deletedAt: z.coerce.date().optional(),\n\n body: z.string(),\n});\n\nexport const DocumentationCommentThread = z.object({\n id: z.string(),\n\n roomId: z.string(),\n\n pagePersistentId: z.string(),\n brandId: z.string(),\n designSystemVersionId: z.string(),\n designSystemId: z.string(),\n\n blockId: z.string().optional(),\n resolved: z.boolean(),\n\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport type DocumentationComment = z.infer<typeof DocumentationComment>;\nexport type DocumentationCommentThread = z.infer<typeof DocumentationCommentThread>;\n","import { z } from \"zod\";\n\nexport const DesignElementSnapshotReason = z.enum([\"Publish\", \"Deletion\"]);\n\nexport const DesignElementSnapshotBase = z.object({\n id: z.string(),\n persistentId: z.string(),\n designSystemVersionId: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n reason: DesignElementSnapshotReason,\n});\n\nexport type DesignElementSnapshotReason = z.infer<typeof DesignElementSnapshotReason>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { DocumentationPageV2 } from \"../elements\";\nimport { DesignElementSnapshotBase } from \"./base\";\n\n/**\n * Snapshot of a documentation page.\n *\n * Please note that existence of snapshot's references (including parent persistent id) is not guaranteed.\n */\nexport const DocumentationPageSnapshot = DesignElementSnapshotBase.extend({\n page: DocumentationPageV2,\n pageContentHash: z.string(),\n pageContentStorageKey: z.string(),\n});\n\nexport type DocumentationPageSnapshot = z.infer<typeof DocumentationPageSnapshot>;\n\nexport type CreateDocumentationPageSnapshot = DbCreateInputOmit<DocumentationPageSnapshot>;\nexport type UpdateDocumentationPageSnapshot = OmitStrict<DbUpdate<DocumentationPageSnapshot>, \"designSystemVersionId\">;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { ElementGroup } from \"../elements\";\nimport { DesignElementSnapshotBase } from \"./base\";\n\n/**\n * Snapshot of an element group.\n *\n * Please note that existence of snapshot's references (including parent persistent id) is not guaranteed.\n */\nexport const ElementGroupSnapshot = DesignElementSnapshotBase.extend({\n group: ElementGroup,\n});\n\nexport type ElementGroupSnapshot = z.infer<typeof ElementGroupSnapshot>;\n\nexport type CreateElementGroupSnapshot = DbCreateInputOmit<ElementGroupSnapshot>;\nexport type UpdateElementGroupSnapshot = OmitStrict<DbUpdate<ElementGroupSnapshot>, \"designSystemVersionId\">;\n","import { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { z } from \"zod\";\n\nexport const ElementViewBaseColumnType = z.enum([\"Name\", \"Description\", \"Value\", \"UpdatedAt\"]);\n\nexport const ElementViewColumnType = z.union([\n z.literal(\"BaseProperty\"),\n z.literal(\"PropertyDefinition\"),\n z.literal(\"Theme\"),\n]);\n\nexport const ElementViewColumnSharedAttributes = z.object({\n id: z.string(),\n persistentId: z.string(),\n elementDataViewId: z.string(),\n sortPosition: z.number(),\n width: z.number(),\n});\n\nexport const ElementViewBasePropertyColumn = ElementViewColumnSharedAttributes.extend({\n type: z.literal(\"BaseProperty\"),\n basePropertyType: ElementViewBaseColumnType,\n});\n\nexport const ElementViewPropertyDefinitionColumn = ElementViewColumnSharedAttributes.extend({\n type: z.literal(\"PropertyDefinition\"),\n propertyDefinitionId: z.string(),\n});\n\nexport const ElementViewThemeColumn = ElementViewColumnSharedAttributes.extend({\n type: z.literal(\"Theme\"),\n themeId: z.string(),\n});\n\nexport const ElementViewColumn = z.discriminatedUnion(\"type\", [\n ElementViewBasePropertyColumn,\n ElementViewPropertyDefinitionColumn,\n ElementViewThemeColumn,\n]);\n\nexport type ElementViewBaseColumnType = z.infer<typeof ElementViewBaseColumnType>;\nexport type ElementViewBasePropertyColumn = z.infer<typeof ElementViewBasePropertyColumn>;\nexport type ElementViewPropertyDefinitionColumn = z.infer<typeof ElementViewPropertyDefinitionColumn>;\nexport type ElementViewThemeColumn = z.infer<typeof ElementViewThemeColumn>;\nexport type ElementViewColumn = z.infer<typeof ElementViewColumn>;\nexport type ElementViewColumnSharedAttributes = z.infer<typeof ElementViewColumnSharedAttributes>;\nexport type ElementViewColumnType = z.infer<typeof ElementViewColumn>[\"type\"];\n\nexport type CreateElementViewColumn =\n | DbCreateInputOmit<ElementViewBasePropertyColumn>\n | DbCreateInputOmit<ElementViewPropertyDefinitionColumn>\n | DbCreateInputOmit<ElementViewThemeColumn>;\n\nexport type UpdateElementViewColumn =\n | OmitStrict<DbUpdate<ElementViewBasePropertyColumn>, \"elementDataViewId\">\n | OmitStrict<DbUpdate<ElementViewPropertyDefinitionColumn>, \"elementDataViewId\">\n | OmitStrict<DbUpdate<ElementViewThemeColumn>, \"elementDataViewId\">;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { ElementPropertyTargetType } from \"../properties\";\n\nexport const ElementView = z.object({\n id: z.string(),\n persistentId: z.string(),\n designSystemVersionId: z.string(),\n name: z.string(),\n description: z.string(),\n targetElementType: ElementPropertyTargetType,\n isDefault: z.boolean(),\n});\n\nexport type ElementView = z.infer<typeof ElementView>;\n\nexport type CreateElementView = DbCreateInputOmit<ElementView>;\nexport type UpdateElementView = OmitStrict<DbUpdate<ElementView>, \"designSystemVersionId\" | \"targetElementType\">;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit } from \"../helpers\";\n\nexport const Brand = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n persistentId: z.string(),\n name: z.string(),\n description: z.string(),\n});\n\nexport type Brand = z.infer<typeof Brand>;\nexport type CreateBrand = DbCreateInputOmit<Brand>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../helpers\";\nimport { Workspace } from \"../workspace/workspace\";\n\nexport const DesignSystemSwitcher = z.object({\n isEnabled: z.boolean(),\n designSystemIds: z.array(z.string()),\n});\n\nexport const DesignSystem = z.object({\n id: z.string(),\n workspaceId: z.string(),\n name: z.string(),\n description: z.string(),\n docExporterId: nullishToOptional(z.string()),\n docSlug: z.string(),\n docUserSlug: nullishToOptional(z.string()),\n docSlugDeprecated: z.string(),\n isPublic: z.boolean(),\n isMultibrand: z.boolean(),\n docViewUrl: nullishToOptional(z.string()),\n basePrefixes: z.array(z.string()),\n designSystemSwitcher: nullishToOptional(DesignSystemSwitcher),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport const DesignSystemWithWorkspace = z.object({\n designSystem: DesignSystem,\n workspace: Workspace,\n});\n\nexport type DesignSystemSwitcher = z.infer<typeof DesignSystemSwitcher>;\nexport type DesignSystem = z.infer<typeof DesignSystem>;\nexport type DesignSystemWithWorkspace = z.infer<typeof DesignSystemWithWorkspace>;\n","import IPCIDR from \"ip-cidr\";\nimport { z } from \"zod\";\nimport { BillingDetails, Subscription } from \"../billing\";\nimport { DesignSystem } from \"../dsm\";\nimport { nullishToOptional } from \"../helpers\";\nimport { NpmRegistryConfig } from \"./npm-registry-settings\";\nimport { SsoProvider } from \"./sso-provider\";\n\nconst isValidCIDR = (value: string) => {\n return IPCIDR.isValidAddress(value);\n};\n\nexport const WorkspaceIpWhitelistEntry = z.object({\n isEnabled: z.boolean(),\n name: z.string(),\n range: z.string().refine(isValidCIDR, {\n message: \"Invalid IP CIDR\",\n }),\n});\n\nexport const WorkspaceIpSettings = z.object({\n isEnabledForCloud: z.boolean(),\n isEnabledForDocs: z.boolean(),\n entries: z.array(WorkspaceIpWhitelistEntry),\n});\n\nexport const WorkspaceProfile = z.object({\n name: z.string(),\n handle: z.string(),\n color: z.string(),\n avatar: nullishToOptional(z.string()),\n billingDetails: nullishToOptional(BillingDetails),\n});\n\nexport const WorkspaceProfileUpdate = WorkspaceProfile.omit({\n avatar: true,\n});\n\nexport type WorkspaceProfileUpdate = z.infer<typeof WorkspaceProfileUpdate>;\n\nexport const Workspace = z.object({\n id: z.string(),\n profile: WorkspaceProfile,\n subscription: Subscription,\n ipWhitelist: nullishToOptional(WorkspaceIpSettings),\n sso: nullishToOptional(SsoProvider),\n npmRegistrySettings: nullishToOptional(NpmRegistryConfig),\n});\n\nexport const WorkspaceWithDesignSystems = z.object({\n workspace: Workspace,\n designSystems: z.array(DesignSystem),\n});\n\nexport type WorkspaceIpWhitelistEntry = z.infer<typeof WorkspaceIpWhitelistEntry>;\nexport type WorkspaceIpSettings = z.infer<typeof WorkspaceIpSettings>;\nexport type WorkspaceProfile = z.infer<typeof WorkspaceProfile>;\nexport type Workspace = z.infer<typeof Workspace>;\nexport type WorkspaceWithDesignSystems = z.infer<typeof WorkspaceWithDesignSystems>;\n","import { z } from \"zod\";\n\nexport const NpmRegistryAuthType = z.enum([\"Basic\", \"Bearer\", \"None\", \"Custom\"]);\nexport const NpmRegistryType = z.enum([\"NPMJS\", \"GitHub\", \"AzureDevOps\", \"Artifactory\", \"Custom\"]);\n\nexport const NpmRegistryBasicAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Basic),\n username: z.string(),\n password: z.string(),\n});\n\nexport const NpmRegistryBearerAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Bearer),\n accessToken: z.string(),\n});\n\nexport const NpmRegistryNoAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.None),\n});\n\nexport const NpmRegistrCustomAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Custom),\n authHeaderName: z.string(),\n authHeaderValue: z.string(),\n});\n\nexport const NpmRegistryAuthConfig = z.discriminatedUnion(\"authType\", [\n NpmRegistryBasicAuthConfig,\n NpmRegistryBearerAuthConfig,\n NpmRegistryNoAuthConfig,\n NpmRegistrCustomAuthConfig,\n]);\n\nconst NpmRegistryConfigBase = z.object({\n registryType: NpmRegistryType,\n enabledScopes: z.array(z.string()),\n customRegistryUrl: z.string().optional(),\n bypassProxy: z.boolean().default(false),\n npmProxyRegistryConfigId: z.string().optional(),\n npmProxyVersion: z.number().optional(),\n});\n\nexport const NpmRegistryConfig = NpmRegistryConfigBase.and(NpmRegistryAuthConfig);\n\nexport type NpmRegistryConfig = z.infer<typeof NpmRegistryConfig>;\n","import { z } from \"zod\";\nexport const SsoProvider = z.object({\n providerId: z.string(),\n defaultAutoInviteValue: z.boolean(),\n autoInviteDomains: z.record(z.string(), z.boolean()),\n skipDocsSupernovaLogin: z.boolean(),\n areInvitesDisabled: z.boolean(),\n isTestMode: z.boolean(),\n emailDomains: z.array(z.string()),\n metadataXml: z.string().nullish(),\n});\n\nexport type SsoProvider = z.infer<typeof SsoProvider>;\n","import { z } from \"zod\";\n\nconst DS_NAME_MIN_LENGTH: number = 2;\nconst DS_NAME_MAX_LENGTH: number = 64;\nconst DS_DESC_MAX_LENGTH: number = 64;\n\nconst DesignSystemCreateInputMetadata = z.object({\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim(),\n description: z.string().max(DS_DESC_MAX_LENGTH).trim(),\n});\n\nexport const DesignSystemCreateInput = z.object({\n meta: DesignSystemCreateInputMetadata,\n workspaceId: z.string(),\n isPublic: z.boolean().optional(),\n basePrefixes: z.array(z.string()).optional(),\n docUserSlug: z.string().nullish().optional(),\n source: z.array(z.string()).optional(),\n});\n\nexport type DesignSystemCreateInput = z.infer<typeof DesignSystemCreateInput>;\n","import { z } from \"zod\";\n\nconst DS_NAME_MIN_LENGTH: number = 2;\nconst DS_NAME_MAX_LENGTH: number = 64;\nconst DS_DESC_MAX_LENGTH: number = 64;\n\nconst DesignSystemUpdateInputMetadata = z.object({\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim().optional(),\n description: z.string().max(DS_DESC_MAX_LENGTH).trim().optional(),\n});\n\nexport const DesignSystemUpdateInput = z.object({\n meta: DesignSystemUpdateInputMetadata.optional(),\n workspaceId: z.string().optional(),\n isPublic: z.boolean().optional(),\n basePrefixes: z.array(z.string()).optional(),\n docUserSlug: z.string().nullish().optional(),\n source: z.array(z.string()).optional(),\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim().optional(),\n description: z.string().max(DS_DESC_MAX_LENGTH).trim().optional(),\n docExporterId: z.string().optional(),\n});\n\nexport type DesignSystemUpdateInput = z.infer<typeof DesignSystemUpdateInput>;\n","import { z } from \"zod\";\nimport { ColorTokenData, PageBlockAsset, TypographyTokenData } from \"./elements\";\n\nexport const ExporterPropertyImageValue = z.object({\n asset: PageBlockAsset.optional(),\n assetId: z.string().optional(),\n assetUrl: z.string().optional(),\n});\n\nexport const ExporterPropertyValue = z.object({\n key: z.string(),\n value: z.union([\n z.number(),\n z.string(),\n z.boolean(),\n ExporterPropertyImageValue,\n ColorTokenData,\n TypographyTokenData,\n ]),\n});\n\nexport const ExporterPropertyValuesCollection = z.object({\n id: z.string(),\n designSystemId: z.string(),\n exporterId: z.string(),\n values: z.array(ExporterPropertyValue),\n});\n\nexport type ExporterPropertyImageValue = z.infer<typeof ExporterPropertyImageValue>;\nexport type ExporterPropertyValue = z.infer<typeof ExporterPropertyValue>;\nexport type ExporterPropertyValuesCollection = z.infer<typeof ExporterPropertyValuesCollection>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../helpers\";\nimport { OmitStrict } from \"../utils\";\n\nexport const SHORT_PERSISTENT_ID_LENGTH = 8;\n\nexport function tryParseShortPersistentId(url = \"/\") {\n const lastUrlPart = url.split(\"/\").pop() || \"\";\n const shortPersistentId = lastUrlPart.split(\"-\").pop()?.replaceAll(\".html\", \"\") || null;\n\n return shortPersistentId?.length === SHORT_PERSISTENT_ID_LENGTH ? shortPersistentId : null;\n}\n\nexport const PublishedDocPage = z.object({\n id: z.string(),\n publishedDocId: z.string(),\n pageShortPersistentId: z.string(),\n pathV1: z.string(),\n pathV2: z.string(),\n storagePath: z.string(),\n locale: z.string().optional(),\n\n isPrivate: z.boolean(),\n isHidden: z.boolean(),\n\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport type PublishedDocPage = z.infer<typeof PublishedDocPage>;\n\nexport type CreatePublishedDocPage = DbCreateInputOmit<PublishedDocPage>;\nexport type UpdatePublishedDocPage = DbUpdate<OmitStrict<PublishedDocPage, \"pageShortPersistentId\" | \"publishedDocId\">>;\n","import { z } from \"zod\";\n\nexport const publishedDocEnvironments = [\"Live\", \"Preview\"] as const;\nexport const PublishedDocEnvironment = z.enum(publishedDocEnvironments);\n\nexport const PublishedDocsChecksums = z.record(z.string());\n\nexport const PublishedDocRoutingVersion = z.enum([\"1\", \"2\"]);\n\nexport const PublishedDoc = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n lastPublishedAt: z.coerce.date(),\n isDefault: z.boolean(),\n isPublic: z.boolean(),\n environment: PublishedDocEnvironment,\n checksums: PublishedDocsChecksums,\n storagePath: z.string(),\n wasMigrated: z.boolean(),\n routingVersion: PublishedDocRoutingVersion,\n usesLocalizations: z.boolean(),\n wasPublishedWithLocalizations: z.boolean(),\n tokenCount: z.number(),\n assetCount: z.number(),\n});\n\nexport type PublishedDocEnvironment = z.infer<typeof PublishedDocEnvironment>;\nexport type PublishedDocsChecksums = z.infer<typeof PublishedDocsChecksums>;\nexport type PublishedDocRoutingVersion = z.infer<typeof PublishedDocRoutingVersion>;\nexport type PublishedDoc = z.infer<typeof PublishedDoc>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, nullishToOptional } from \"../helpers\";\nimport { OmitStrict } from \"../utils\";\n\nexport const DesignSystemVersion = z.object({\n id: z.string(),\n version: z.string(),\n createdAt: z.date(),\n designSystemId: z.string(),\n name: z.string(),\n comment: z.string(),\n isReadonly: z.boolean(),\n changeLog: z.string(),\n parentId: z.string().optional(),\n isDraftsFeatureAdopted: z.boolean(),\n});\n\nexport type DesignSystemVersion = z.infer<typeof DesignSystemVersion>;\n\nexport type CreateDesignSystemVersion = DbCreateInputOmit<DesignSystemVersion>;\n\nexport type UpdateDesignSystemVersion = OmitStrict<\n DbUpdate<DesignSystemVersion>,\n \"designSystemId\" | \"isReadonly\" | \"version\" | \"parentId\"\n>;\n\n// Jobs\nexport const VersionCreationJobStatus = z.enum([\"Success\", \"InProgress\", \"Error\"]);\n\nexport type VersionCreationJobStatus = z.infer<typeof VersionCreationJobStatus>;\n\nexport const VersionCreationJob = z.object({\n id: z.string(),\n version: z.string(),\n designSystemId: z.string(),\n designSystemVersionId: nullishToOptional(z.string()),\n status: VersionCreationJobStatus,\n errorMessage: nullishToOptional(z.string()),\n});\n\nexport type VersionCreationJob = z.infer<typeof VersionCreationJob>;\n","import { z } from \"zod\";\nimport { CustomDomain } from \"../custom-domains\";\nimport { Asset } from \"../dsm/assets/asset\";\nimport { DataSource } from \"../dsm/data-sources/data-source\";\nimport { DesignSystem } from \"../dsm/design-system\";\nimport { DesignSystemVersionDump } from \"./design-system-version-dump\";\n\nexport const DesignSystemDump = z.object({\n designSystem: DesignSystem,\n dataSources: DataSource.array(),\n versions: DesignSystemVersionDump.array(),\n customDomain: CustomDomain.optional(),\n files: Asset.array(),\n});\n\nexport type DesignSystemDump = z.infer<typeof DesignSystemDump>;\n","import { z } from \"zod\";\nimport { AssetReference } from \"../dsm/assets/asset-reference\";\nimport { Brand } from \"../dsm/brand\";\nimport { DocumentationPageContent } from \"../dsm/documentation/page-content\";\nimport { DocumentationComment, DocumentationCommentThread } from \"../dsm/documentation/thread\";\nimport { DesignElement } from \"../dsm/elements/raw-element\";\nimport { ElementPropertyDefinition } from \"../dsm/properties/property-definition\";\nimport { ElementPropertyValue } from \"../dsm/properties/property-value\";\nimport { DesignSystemVersion } from \"../dsm/version\";\nimport { ElementViewColumn } from \"../dsm/views/column\";\nimport { ElementView } from \"../dsm/views/view\";\nimport { DocumentationPageRoom } from \"../liveblocks\";\nimport { PublishedDocsDump } from \"./published-docs-dump\";\n\nexport const DocumentationThreadDump = z.object({\n thread: DocumentationCommentThread,\n comments: DocumentationComment.array(),\n});\n\nexport const DocumentationPageRoomDump = z.object({\n room: DocumentationPageRoom,\n threads: DocumentationThreadDump.array(),\n});\n\nexport const DesignSystemVersionMultiplayerDump = z.object({\n documentationPages: DocumentationPageRoomDump.array(),\n});\n\nexport const DesignSystemVersionDump = z.object({\n version: DesignSystemVersion,\n brands: Brand.array(),\n elements: DesignElement.array(),\n elementPropertyDefinitions: ElementPropertyDefinition.array(),\n elementPropertyValues: ElementPropertyValue.array(),\n elementViews: ElementView.array(),\n elementColumns: ElementViewColumn.array(),\n documentationPageContents: DocumentationPageContent.array(),\n documentationPageRooms: DocumentationPageRoomDump.array(),\n publishedDocumentations: PublishedDocsDump.array(),\n assetReferences: AssetReference.array(),\n});\n\nexport type DocumentationThreadDump = z.infer<typeof DocumentationThreadDump>;\nexport type DocumentationPageRoomDump = z.infer<typeof DocumentationPageRoomDump>;\nexport type DesignSystemVersionDump = z.infer<typeof DesignSystemVersionDump>;\n","import { z } from \"zod\";\nimport { Entity } from \"../../common/entity\";\nimport { DocumentationPageSnapshot, ElementGroupSnapshot } from \"../../dsm\";\nimport { DocumentationPageV2 } from \"../../dsm/elements/documentation-page-v2\";\nimport { ElementGroup } from \"../../dsm/elements/group\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\n\n//\n// Room\n//\n\nexport const DesignSystemVersionRoom = Entity.extend({\n designSystemVersionId: z.string(),\n liveblocksId: z.string(),\n});\n\nexport type DesignSystemVersionRoom = z.infer<typeof DesignSystemVersionRoom>;\n\nexport type CreateDesignSystemVersionRoom = DbCreateInputOmit<DesignSystemVersionRoom>;\nexport type UpdateDesignSystemVersionRoom = DbUpdate<DesignSystemVersionRoom>;\n\n//\n// Room state\n//\n\nexport const DesignSystemVersionRoomInternalSettings = z.object({\n routingVersion: z.string(),\n isDraftFeatureAdopted: z.boolean(),\n});\n\nexport const DesignSystemVersionRoomInitialState = z.object({\n pages: z.array(DocumentationPageV2),\n groups: z.array(ElementGroup),\n\n pageSnapshots: z.array(DocumentationPageSnapshot),\n groupSnapshots: z.array(ElementGroupSnapshot),\n\n internalSettings: DesignSystemVersionRoomInternalSettings,\n});\n\nexport const DesignSystemVersionRoomUpdate = z.object({\n pages: z.array(DocumentationPageV2),\n groups: z.array(ElementGroup),\n pageIdsToDelete: z.array(z.string()),\n groupIdsToDelete: z.array(z.string()),\n\n pageSnapshots: z.array(DocumentationPageSnapshot),\n groupSnapshots: z.array(ElementGroupSnapshot),\n pageSnapshotIdsToDelete: z.array(z.string()),\n groupSnapshotIdsToDelete: z.array(z.string()),\n pageHashesToUpdate: z.record(z.string(), z.string()),\n});\n\nexport type DesignSystemVersionRoomInternalSettings = z.infer<typeof DesignSystemVersionRoomInternalSettings>;\nexport type DesignSystemVersionRoomInitialState = z.infer<typeof DesignSystemVersionRoomInitialState>;\nexport type DesignSystemVersionRoomUpdate = z.infer<typeof DesignSystemVersionRoomUpdate>;\n","import { z } from \"zod\";\nimport { Entity } from \"../../common/entity\";\nimport { PageBlockDefinition } from \"../../dsm/documentation/block-definitions/definition\";\nimport { PageSectionEditorModelV2 } from \"../../dsm/elements/data/documentation-section-v2\";\nimport { DocumentationItemConfigurationV2 } from \"../../dsm/elements/data/documentation-v2\";\nimport { DocumentationPageV2 } from \"../../dsm/elements/documentation-page-v2\";\nimport { ElementGroup } from \"../../dsm/elements/group\";\nimport { PageBlockEditorModelV2 } from \"../../dsm/elements/page-block-v2\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../utils\";\nimport { DocumentationPageContentData } from \"../../dsm\";\n\nexport const DocumentationPageRoom = Entity.extend({\n designSystemVersionId: z.string(),\n documentationPageId: z.string(),\n liveblocksId: z.string(),\n isDirty: z.boolean(),\n});\n\nexport type DocumentationPageRoom = z.infer<typeof DocumentationPageRoom>;\n\nexport type CreateDocumentationPageRoom = DbCreateInputOmit<DocumentationPageRoom>;\nexport type UpdateDocumentationPageRoom = OmitStrict<\n DbUpdate<DocumentationPageRoom>,\n \"designSystemVersionId\" | \"documentationPageId\" | \"liveblocksId\"\n>;\n\n//\n// Room content\n//\n\nexport const DocumentationPageRoomState = z.object({\n pageItems: z.array(PageBlockEditorModelV2.or(PageSectionEditorModelV2)),\n itemConfiguration: DocumentationItemConfigurationV2,\n});\n\nexport const DocumentationPageRoomRoomUpdate = z.object({\n page: DocumentationPageV2,\n pageParent: ElementGroup,\n});\n\nexport const DocumentationPageRoomInitialStateUpdate = DocumentationPageRoomRoomUpdate.extend({\n pageItems: z.array(PageBlockEditorModelV2.or(PageSectionEditorModelV2)),\n blockDefinitions: z.array(PageBlockDefinition),\n});\n\nexport const RestoredDocumentationPage = z.object({\n page: DocumentationPageV2,\n pageParent: ElementGroup,\n pageContent: DocumentationPageContentData,\n contentHash: z.string(),\n roomId: z.string().optional(),\n});\n\nexport const RestoredDocumentationGroup = z.object({\n group: ElementGroup,\n parent: ElementGroup,\n});\n\nexport type DocumentationPageRoomState = z.infer<typeof DocumentationPageRoomState>;\nexport type DocumentationPageRoomRoomUpdate = z.infer<typeof DocumentationPageRoomRoomUpdate>;\nexport type DocumentationPageRoomInitialStateUpdate = z.infer<typeof DocumentationPageRoomInitialStateUpdate>;\nexport type RestoredDocumentationPage = z.infer<typeof RestoredDocumentationPage>;\nexport type RestoredDocumentationGroup = z.infer<typeof RestoredDocumentationGroup>;\n","import { z } from \"zod\";\n\nexport enum RoomTypeEnum {\n DocumentationPage = \"documentation-page\",\n DesignSystemVersion = \"design-system-version\",\n Workspace = \"workspace\",\n}\n\nexport const RoomTypeSchema = z.nativeEnum(RoomTypeEnum);\n\nexport type RoomType = z.infer<typeof RoomTypeSchema>;\nexport const RoomType = RoomTypeSchema.enum;\n","//\n// Room\n//\n\nimport { z } from \"zod\";\nimport { Entity } from \"../../common/entity\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers/db\";\n\nexport const WorkspaceRoom = Entity.extend({\n workspaceId: z.string(),\n liveblocksId: z.string(),\n});\n\nexport type WorkspaceRoom = z.infer<typeof WorkspaceRoom>;\nexport type CreateWorkspaceRoom = DbCreateInputOmit<WorkspaceRoom>;\nexport type UpdateWorkspaceRoom = DbUpdate<WorkspaceRoom>;\n","import { z } from \"zod\";\nimport { PublishedDoc } from \"../dsm/published-doc\";\nimport { PublishedDocPage } from \"../dsm/published-doc-page\";\n\nexport const PublishedDocsDump = z.object({\n documentation: PublishedDoc,\n pages: PublishedDocPage.array(),\n});\n\nexport type PublishedDocsDump = z.infer<typeof PublishedDocsDump>;\n","import { z } from \"zod\";\nimport { User } from \"../users\";\nimport { WorkspaceDump } from \"./workspace-dump\";\n\nexport const UserDump = z.object({\n user: User,\n workspaces: WorkspaceDump.array(),\n});\n\nexport type UserDump = z.infer<typeof UserDump>;\n","import { z } from \"zod\";\n\nexport const IntegrationAuthType = z.union([z.literal(\"OAuth2\"), z.literal(\"PAT\")]);\n\nexport type IntegrationAuthType = z.infer<typeof IntegrationAuthType>;\n\nexport const ExternalServiceType = z.union([\n z.literal(\"figma\"),\n z.literal(\"github\"),\n z.literal(\"azure\"),\n z.literal(\"gitlab\"),\n z.literal(\"bitbucket\"),\n]);\n\nexport type ExternalServiceType = z.infer<typeof ExternalServiceType>;\n\nexport const IntegrationUserInfo = z.object({\n id: z.string(),\n handle: z.string().optional(),\n avatarUrl: z.string().optional(),\n email: z.string().optional(),\n authType: IntegrationAuthType.optional(),\n customUrl: z.string().optional(),\n});\n\nexport type IntegrationUserInfo = z.infer<typeof IntegrationUserInfo>;\n\nexport const UserLinkedIntegrations = z.object({\n figma: IntegrationUserInfo.optional(),\n github: IntegrationUserInfo.array().optional(),\n azure: IntegrationUserInfo.array().optional(),\n gitlab: IntegrationUserInfo.array().optional(),\n bitbucket: IntegrationUserInfo.array().optional(),\n});\n\nexport type UserLinkedIntegrations = z.infer<typeof UserLinkedIntegrations>;\n","import { z } from \"zod\";\n\nexport const UserAnalyticsCleanupSchedule = z.object({\n userId: z.string(),\n createdAt: z.coerce.date(),\n deleteAt: z.coerce.date(),\n});\n\nexport type UserAnalyticsCleanupSchedule = z.infer<typeof UserAnalyticsCleanupSchedule>;\n\nexport const UserAnalyticsCleanupScheduleDbInput = UserAnalyticsCleanupSchedule.omit({\n createdAt: true,\n});\n\nexport type UserAnalyticsCleanupScheduleDbInput = z.infer<typeof UserAnalyticsCleanupScheduleDbInput>;\n","import { z } from \"zod\";\n\nexport const CreateUserInput = z.object({\n email: z.string(),\n name: z.string(),\n username: z.string(),\n});\n\nexport type CreateUserInput = z.infer<typeof CreateUserInput>;\n","import { z } from \"zod\";\n\nexport const UserIdentity = z.object({\n id: z.string(),\n userId: z.string(),\n});\n\nexport type UserIdentity = z.infer<typeof UserIdentity>;\n","import { z } from \"zod\";\n\nexport const UserMinified = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string(),\n avatar: z.string().optional(),\n});\n\nexport type UserMinified = z.infer<typeof UserMinified>;\n","import { z } from \"zod\";\n\nexport const LiveblocksNotificationSettings = z.object({\n sendCommentNotificationEmails: z.boolean(),\n});\nexport type LiveblocksNotificationSettings = z.infer<typeof LiveblocksNotificationSettings>;\n\nexport const UserNotificationSettings = z.object({\n liveblocksNotificationSettings: LiveblocksNotificationSettings,\n});\n\nexport type UserNotificationSettings = z.infer<typeof UserNotificationSettings>;\n\nexport const defaultNotificationSettings: UserNotificationSettings = {\n liveblocksNotificationSettings: {\n sendCommentNotificationEmails: true,\n }\n} as const;\n","import { z } from \"zod\";\n\nexport const UserOnboardingDepartment = z.enum([\"Design\", \"Engineering\", \"Product\", \"Brand\", \"Other\"]);\n\nexport const UserOnboardingJobLevel = z.enum([\"Executive\", \"Manager\", \"IndividualContributor\", \"Other\"]);\n\nexport const UserOnboarding = z.object({\n companyName: z.string().optional(),\n numberOfPeopleInOrg: z.string().optional(),\n numberOfPeopleInDesignTeam: z.string().optional(),\n department: UserOnboardingDepartment.optional(),\n jobTitle: z.string().optional(),\n phase: z.string().optional(),\n jobLevel: UserOnboardingJobLevel.optional(),\n designSystemName: z.string().optional(),\n defaultDestination: z.string().optional(),\n figmaUrl: z.string().optional(),\n});\n\nexport type UserOnboarding = z.infer<typeof UserOnboarding>;\n\nexport const UserProfile = z.object({\n name: z.string(),\n avatar: z.string().optional(),\n nickname: z.string().optional(),\n onboarding: UserOnboarding.optional(),\n});\n\nexport const UserProfileUpdate = UserProfile.partial().omit({\n avatar: true,\n});\n\nexport type UserProfileUpdate = z.infer<typeof UserProfileUpdate>;\n\nexport type UserProfile = z.infer<typeof UserProfile>;\n","import { z } from \"zod\";\n\nexport const UserTest = z.object({\n id: z.string(),\n email: z.string(),\n});\n\nexport type UserTest = z.infer<typeof UserTest>;\n","import { z } from \"zod\";\nimport { UserLinkedIntegrations } from \"./linked-integrations\";\nimport { UserProfile } from \"./user-profile\";\n\nexport const User = z.object({\n id: z.string(),\n email: z.string(),\n emailVerified: z.boolean(),\n createdAt: z.coerce.date(),\n trialExpiresAt: z.coerce.date().optional(),\n profile: UserProfile,\n linkedIntegrations: UserLinkedIntegrations.optional(),\n loggedOutAt: z.coerce.date().optional(),\n isProtected: z.boolean(),\n});\n\nexport type User = z.infer<typeof User>;\n","import { z } from \"zod\";\nimport { Integration } from \"../integrations/integration\";\nimport { Workspace } from \"../workspace/workspace\";\nimport { CodeIntegrationDump } from \"./code-integration-dump\";\nimport { DesignSystemDump } from \"./design-system-dump\";\n\nexport const WorkspaceDump = z.object({\n workspace: Workspace,\n designSystems: DesignSystemDump.array(),\n codeIntegration: CodeIntegrationDump,\n integrations: Integration.array(),\n});\n\nexport type WorkspaceDump = z.infer<typeof WorkspaceDump>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../helpers\";\nimport { UserMinified } from \"../users/user-minified\";\nimport { tryParseUrl } from \"../utils\";\n\nexport const IntegrationDesignSystem = z.object({\n designSystemId: z.string(),\n brandId: z.string(),\n title: z.string().optional(),\n userId: z.string().optional(),\n date: z.coerce.date().optional(),\n});\n\nexport type IntegrationDesignSystem = z.infer<typeof IntegrationDesignSystem>;\n\nexport const IntegrationCredentialsType = z.enum([\"OAuth2\", \"PAT\", \"GithubApp\"]);\nexport type IntegrationCredentialsType = z.infer<typeof IntegrationCredentialsType>;\n\nexport const IntegrationCredentialsState = z.enum([\"Active\", \"Inactive\"]);\nexport type IntegrationCredentialsState = z.infer<typeof IntegrationCredentialsState>;\n\nexport const IntegrationCredentialsProfile = z.object({\n id: nullishToOptional(z.string()),\n email: nullishToOptional(z.string()),\n handle: nullishToOptional(z.string()),\n type: nullishToOptional(z.string()),\n avatarUrl: nullishToOptional(z.string()),\n organization: nullishToOptional(z.string()),\n collection: nullishToOptional(z.string()),\n});\n\nexport type IntegrationCredentialsProfile = z.infer<typeof IntegrationCredentialsProfile>;\n\nexport const IntegrationCredentials = z.object({\n id: z.string(),\n type: IntegrationCredentialsType,\n integrationId: z.string(),\n accessToken: z.string(),\n userId: z.string(),\n createdAt: z.coerce.date(),\n refreshToken: z.string().optional(),\n tokenName: z.string().optional(),\n expiresAt: z.coerce.date().optional(),\n refreshedAt: z.coerce.date().optional(),\n username: z.string().optional(),\n appInstallationId: z.string().optional(),\n profile: IntegrationCredentialsProfile.optional(),\n customUrl: z.string().optional(),\n state: IntegrationCredentialsState,\n\n user: UserMinified.optional(),\n});\n\nexport type IntegrationCredentials = z.infer<typeof IntegrationCredentials>;\n\nexport const ExtendedIntegrationType = z.enum([\n \"Figma\",\n \"Github\",\n \"Gitlab\",\n \"Bitbucket\",\n \"Azure\",\n \"TokenStudio\",\n \"FigmaVariablesPlugin\",\n]);\nexport type ExtendedIntegrationType = z.infer<typeof ExtendedIntegrationType>;\n\nexport const IntegrationType = ExtendedIntegrationType.exclude([\"TokenStudio\", \"FigmaVariablesPlugin\"]);\nexport type IntegrationType = z.infer<typeof IntegrationType>;\n\nexport const GitIntegrationType = IntegrationType.exclude([\"Figma\"]);\nexport type GitIntegrationType = z.infer<typeof GitIntegrationType>;\n\nexport const Integration = z.object({\n id: z.string(),\n workspaceId: z.string(),\n type: IntegrationType,\n createdAt: z.coerce.date(),\n integrationCredentials: z.array(IntegrationCredentials).optional(),\n});\nexport type Integration = z.infer<typeof Integration>;\nexport type ExtendedIntegration = Omit<Integration, \"type\"> & {\n type: ExtendedIntegrationType;\n integrationDesignSystems?: IntegrationDesignSystem[];\n};\n\nexport const IntegrationToken = z\n .object({\n access_token: z.string(),\n refresh_token: z.string().optional(),\n expires_in: z.union([z.number().optional(), z.string().optional()]),\n token_type: z.string().optional(),\n token_name: z.string().optional(),\n token_azure_organization_name: z.string().optional(), // Azure Cloud PAT only\n token_azure_collection_name: z.string().optional(), // Azure Server PAT only\n token_bitbucket_username: z.string().optional(), // Bitbucket only\n custom_url: z\n .string()\n .optional()\n .transform(value => {\n if (!value?.trim()) return undefined;\n return formatCustomUrl(value);\n }),\n })\n .refine(data => {\n return !data.custom_url || tryParseUrl(data.custom_url);\n }, \"Custom URL must be a valid URL\")\n .refine(data => {\n if (data.custom_url && data.token_azure_organization_name) {\n return false;\n }\n return true;\n }, \"Custom URL and Azure organization name cannot be present at the same time\")\n .transform(data => {\n return {\n accessToken: data.access_token,\n refreshToken: data.refresh_token,\n expiresIn: typeof data.expires_in === \"string\" ? Number(data.expires_in) : data.expires_in,\n tokenType: data.token_type,\n tokenName: data.token_name,\n tokenBitbucketUsername: data.token_bitbucket_username,\n tokenAzureOrganizationName: data.token_azure_organization_name,\n tokenAzureCollection: data.token_azure_collection_name,\n customUrl: data.custom_url,\n };\n });\n\nexport type IntegrationToken = z.infer<typeof IntegrationToken>;\n\n// Custom URL validation\nconst forbiddenCustomUrlDomainList = [\"github.com\", \"gitlab.com\", \"bitbucket.org\", \"figma.com\", \"dev.azure.com\"];\n\nfunction formatCustomUrl(url: string): string | undefined {\n let formattedUrl = url.trim().toLowerCase();\n if (!formattedUrl.startsWith(\"http://\") && !formattedUrl.startsWith(\"https://\")) {\n formattedUrl = \"https://\" + formattedUrl;\n }\n if (formattedUrl.endsWith(\"/\")) {\n formattedUrl = formattedUrl.slice(0, -1);\n }\n\n // do not store default urls that we incorrectly provided as custom urls\n return forbiddenCustomUrlDomainList.some(domain => formattedUrl.includes(domain)) ? undefined : formattedUrl;\n}\n","export type SupernovaExceptionType =\n | \"AccessDenied\"\n | \"ResourceNotFound\"\n | \"WrongFormat\"\n | \"TooMuchWork\"\n | \"Timeout\"\n | \"Conflict\"\n | \"NotImplemented\"\n | \"BadRequest\"\n | \"WrongActionOrder\"\n | \"InvalidOperation\"\n | \"UnexpectedError\"\n | \"IPRestricted\"\n | \"PlanRestricted\"\n | \"MissingWorkspacePermission\"\n | \"MissingExporterPermission\"\n | \"MissingIntegration\"\n | \"MissingIntegrationAccess\"\n | \"NoAccess\"\n | \"MissingCredentials\"\n | \"ValidationError\"\n | \"ThirdPartyError\";\n\nexport class SupernovaException extends Error {\n static wrongFormat(message?: string): SupernovaException {\n return new SupernovaException(\"WrongFormat\", message);\n }\n\n static validationError(message?: string): SupernovaException {\n return new SupernovaException(\"ValidationError\", message);\n }\n\n static accessDenied(message?: string): SupernovaException {\n return new SupernovaException(\"AccessDenied\", message);\n }\n\n static tooMuchWork(message?: string): SupernovaException {\n return new SupernovaException(\"TooMuchWork\", message);\n }\n\n static notFound(message?: string): SupernovaException {\n return new SupernovaException(\"ResourceNotFound\", message);\n }\n\n static timeout(message?: string): SupernovaException {\n return new SupernovaException(\"Timeout\", message);\n }\n\n static conflict(message?: string): SupernovaException {\n return new SupernovaException(\"Conflict\", message);\n }\n\n static notImplemented(message?: string): SupernovaException {\n return new SupernovaException(\"NotImplemented\", message);\n }\n\n static wrongActionOrder(message?: string): SupernovaException {\n return new SupernovaException(\"WrongActionOrder\", message);\n }\n\n static invalidOperation(message?: string): SupernovaException {\n return new SupernovaException(\"InvalidOperation\", message);\n }\n\n static shouldNotHappen(message?: string): SupernovaException {\n return new SupernovaException(\"UnexpectedError\", message);\n }\n\n static ipRestricted(message?: string): SupernovaException {\n return new SupernovaException(\"IPRestricted\", message);\n }\n\n static planRestricted(message?: string): SupernovaException {\n return new SupernovaException(\"PlanRestricted\", message);\n }\n\n static missingWorkspacePermission(message?: string): SupernovaException {\n return new SupernovaException(\"MissingWorkspacePermission\", message);\n }\n\n static missingExporterPermission(message?: string): SupernovaException {\n return new SupernovaException(\"MissingExporterPermission\", message);\n }\n\n static missingIntegration(message?: string): SupernovaException {\n return new SupernovaException(\"MissingIntegration\", message);\n }\n\n static missingIntegrationAccess(message?: string): SupernovaException {\n return new SupernovaException(\"MissingIntegrationAccess\", message);\n }\n\n static noAccess(message?: string): SupernovaException {\n return new SupernovaException(\"NoAccess\", message);\n }\n\n static missingCredentials(message?: string): SupernovaException {\n return new SupernovaException(\"MissingCredentials\", message);\n }\n\n static thirdPartyError(message?: string): SupernovaException {\n return new SupernovaException(\"ThirdPartyError\", message);\n }\n\n //\n // To refactor\n //\n\n static badRequest(message?: string): SupernovaException {\n return new SupernovaException(\"BadRequest\", message);\n }\n\n //\n // Properties\n //\n\n constructor(readonly type: SupernovaExceptionType, message?: string) {\n super(`${type}: ${message}`);\n }\n}\n","import { SupernovaException } from \"./errors\";\n\nexport type OmitStrict<T, K extends keyof T> = T extends any ? Pick<T, Exclude<keyof T, K>> : never;\n\nexport type Nullish<T> = T | null | undefined;\n\nexport type ExplicitPartial<T> = { [P in keyof T]: T[P] | undefined };\n\n// Magic as far as I'm concerned.\n// Taken from https://stackoverflow.com/a/50375286/3229534\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;\n\n// This utility lets T be indexed by any key\ntype Indexify<T> = T & { [str: string]: undefined };\n\n// To make a type where all values are undefined, so that in AllUnionKeys<T>\n// TS doesn't remove the keys whose values are incompatible, e.g. string & number\ntype UndefinedVals<T> = { [K in keyof T]: undefined };\n\n// This returns a union of all keys present across all members of the union T\ntype AllUnionKeys<T> = keyof UnionToIntersection<UndefinedVals<T>>;\n\n// Where the (rest of the) magic happens ✨\nexport type AllFields<T> = { [K in AllUnionKeys<T> & string]: Indexify<T>[K] };\n\nexport type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;\n\nexport type Defined<T> = T extends null | undefined ? never : T;\n\n// Makes specific properties in the type required\nexport type WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\nexport function forceUnwrapNullish<T>(value: Nullish<T>): T {\n if (value === null) throw new Error(\"Illegal null\");\n if (value === undefined) throw new Error(\"Illegal undefined\");\n return value;\n}\n\nexport function trimLeadingSlash(string: string): string {\n return string.startsWith(\"/\") ? string.substring(1) : string;\n}\n\nexport function trimTrailingSlash(string: string): string {\n return string.endsWith(\"/\") ? string.substring(0, string.length - 1) : string;\n}\n\nexport function tryParseUrl(url: string): URL | null {\n try {\n return parseUrl(url);\n } catch (e) {\n console.error(`Error parsing URL ${url}`);\n console.error(e);\n return null;\n }\n}\n\nexport function parseUrl(url: string): URL {\n return new URL(url.startsWith(\"https://\") || url.startsWith(\"http://\") ? url : `https://${url}`);\n}\n\nexport function mapByUnique<V, K>(items: V[], keyFn: (item: V) => K): Map<K, V> {\n const result = new Map<K, V>();\n for (const item of items) {\n result.set(keyFn(item), item);\n }\n return result;\n}\n\nexport function groupBy<V, K>(items: V[], keyFn: (item: V) => K): Map<K, V[]> {\n const result = new Map<K, V[]>();\n\n for (const item of items) {\n const key = keyFn(item);\n const array = result.get(key);\n if (array) {\n array.push(item);\n } else {\n result.set(key, [item]);\n }\n }\n\n return result;\n}\n\nexport function filterNonNullish<T>(items: Nullish<T>[]): T[] {\n return items.filter(Boolean) as T[];\n}\n\nexport function nonNullishFilter<T>(item: Nullish<T>): item is T {\n return !!item;\n}\n\nexport function nonNullFilter<T>(item: T | null): item is T {\n return item !== null;\n}\n\nexport type ArrayElementType<T extends Default[], Default = any> = T extends (infer U)[] ? U : Default;\n\nexport function buildConstantEnum<Inferred extends ArrayElementType<Passed>[], Passed extends string[]>(\n values: Inferred\n): { [key in Inferred[number]]: key } {\n const constMap = values.reduce((acc, code) => ({ ...acc, [code]: code }), {});\n\n return constMap as { [key in Inferred[number]]: key };\n}\n\nexport async function promiseWithTimeout<T>(timeoutMs: number, promise: () => Promise<T>): Promise<T> {\n let timeoutHandle: NodeJS.Timeout | undefined;\n const timeoutPromise = new Promise<never>((_, reject) => {\n timeoutHandle = setTimeout(() => reject(SupernovaException.timeout()), timeoutMs);\n });\n\n const result = await Promise.race([promise(), timeoutPromise]);\n\n clearTimeout(timeoutHandle);\n return result;\n}\n\nexport async function sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function uniqueBy<K, V>(items: V[], prop: (v: V) => K): V[] {\n return Array.from(mapByUnique(items, prop).values());\n}\n\nexport type Pagination = {\n skip?: number;\n take?: number;\n};\n","import { z } from \"zod\";\n\nexport const ContentLoadInstruction = z.object({\n from: z.string(),\n to: z.string(),\n authorizationHeaderKvsId: z.string().optional(),\n timeout: z.number().optional(),\n});\n\nexport type ContentLoadInstruction = z.infer<typeof ContentLoadInstruction>;\n\nexport const ContentLoaderPayload = z\n .object({\n type: z.literal(\"Single\"),\n instruction: ContentLoadInstruction,\n })\n .or(\n z.object({\n type: z.literal(\"Multiple\"),\n loadingChunkSize: z.number().optional(),\n instructions: z.array(ContentLoadInstruction),\n })\n )\n .or(\n z.object({\n type: z.literal(\"S3\"),\n location: z.string(),\n })\n );\n\nexport type ContentLoaderPayload = z.infer<typeof ContentLoaderPayload>;\n","// this has been ported from the Dart cloud app\nexport function getCodenameFromText(name: string): string {\n // Turn all characters with diacritics into their simple form (ě -> e, ö -> o, etc.)\n let codeName = removeDiacritics(name);\n\n // Remove all invalid characters\n codeName = codeName.replace(/[^a-zA-Z0-9$_ ]+/g, \"\");\n // Remove all starting numbers\n codeName = codeName.replace(/^[0-9 ]+/g, \"\");\n // Change to CamelCase\n codeName = toCamelCase(codeName.toLowerCase());\n // Remove all spaces\n codeName = codeName.replace(/ /g, \"\");\n\n if (codeName) {\n // Lowercase the first letter\n codeName = codeName.charAt(0).toLowerCase() + codeName.slice(1);\n }\n\n return codeName;\n}\n\nfunction toCamelCase(str: string): string {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w|\\s+)/g, function (match, index) {\n if (+match === 0) return \"\"; // or if (/\\s+/.test(match)) for white spaces\n return index === 0 ? match.toLowerCase() : match.toUpperCase();\n });\n}\n\nfunction removeDiacritics(str: string): string {\n const diacriticsMap = [\n {\n base: \"A\",\n letters:\n /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g,\n },\n { base: \"AA\", letters: /[\\uA732]/g },\n { base: \"AE\", letters: /[\\u00C6\\u01FC\\u01E2]/g },\n { base: \"AO\", letters: /[\\uA734]/g },\n { base: \"AU\", letters: /[\\uA736]/g },\n { base: \"AV\", letters: /[\\uA738\\uA73A]/g },\n { base: \"AY\", letters: /[\\uA73C]/g },\n {\n base: \"B\",\n letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g,\n },\n {\n base: \"C\",\n letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g,\n },\n /* ... */\n {\n base: \"Z\",\n letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g,\n },\n {\n base: \"a\",\n letters:\n /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g,\n },\n /* ... */\n {\n base: \"z\",\n letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g,\n },\n ];\n\n diacriticsMap.forEach(diacritic => {\n str = str.replace(diacritic.letters, diacritic.base);\n });\n\n return str;\n}\n","import slugifyImplementation from \"@sindresorhus/slugify\";\n\nexport function slugify(str: string, options?: slugifyImplementation.Options): string {\n const slug = slugifyImplementation(str ?? \"\", options);\n return slug?.length > 0 ? slug : \"item\";\n}\n\nexport const RESERVED_SLUGS = [\n \"workspaces\",\n \"workspace\",\n \"api0\",\n \"api1\",\n \"api2\",\n \"custom\",\n \"x-sn-reserved\",\n // further elements copied from https://github.com/shouldbee/reserved-usernames/blob/master/reserved-usernames.json\n\n \"0\",\n \"about\",\n \"access\",\n \"account\",\n \"accounts\",\n \"activate\",\n \"activities\",\n \"activity\",\n \"ad\",\n \"add\",\n \"address\",\n \"adm\",\n \"admin\",\n \"administration\",\n \"administrator\",\n \"ads\",\n \"adult\",\n \"advertising\",\n \"affiliate\",\n \"affiliates\",\n \"ajax\",\n \"all\",\n \"alpha\",\n \"analysis\",\n \"analytics\",\n \"android\",\n \"anon\",\n \"anonymous\",\n \"api\",\n \"app\",\n \"apps\",\n \"archive\",\n \"archives\",\n \"article\",\n \"asct\",\n \"asset\",\n \"assets\",\n \"atom\",\n \"auth\",\n \"authentication\",\n \"avatar\",\n \"backup\",\n \"balancer-manager\",\n \"banner\",\n \"banners\",\n \"beta\",\n \"billing\",\n \"bin\",\n \"blog\",\n \"blogs\",\n \"board\",\n \"book\",\n \"bookmark\",\n \"bot\",\n \"bots\",\n \"bug\",\n \"business\",\n \"cache\",\n \"cadastro\",\n \"calendar\",\n \"call\",\n \"campaign\",\n \"cancel\",\n \"captcha\",\n \"career\",\n \"careers\",\n \"cart\",\n \"categories\",\n \"category\",\n \"cgi\",\n \"cgi-bin\",\n \"changelog\",\n \"chat\",\n \"check\",\n \"checking\",\n \"checkout\",\n \"client\",\n \"cliente\",\n \"clients\",\n \"code\",\n \"codereview\",\n \"comercial\",\n \"comment\",\n \"comments\",\n \"communities\",\n \"community\",\n \"company\",\n \"compare\",\n \"compras\",\n \"config\",\n \"configuration\",\n \"connect\",\n \"contact\",\n \"contact-us\",\n \"contact_us\",\n \"contactus\",\n \"contest\",\n \"contribute\",\n \"corp\",\n \"create\",\n \"css\",\n \"dashboard\",\n \"data\",\n \"db\",\n \"default\",\n \"delete\",\n \"demo\",\n \"design\",\n \"designer\",\n \"destroy\",\n \"dev\",\n \"devel\",\n \"developer\",\n \"developers\",\n \"diagram\",\n \"diary\",\n \"dict\",\n \"dictionary\",\n \"die\",\n \"dir\",\n \"direct_messages\",\n \"directory\",\n \"dist\",\n \"doc\",\n \"docs\",\n \"documentation\",\n \"domain\",\n \"download\",\n \"downloads\",\n \"ecommerce\",\n \"edit\",\n \"editor\",\n \"edu\",\n \"education\",\n \"email\",\n \"employment\",\n \"empty\",\n \"end\",\n \"enterprise\",\n \"entries\",\n \"entry\",\n \"error\",\n \"errors\",\n \"eval\",\n \"event\",\n \"exit\",\n \"explore\",\n \"facebook\",\n \"faq\",\n \"favorite\",\n \"favorites\",\n \"feature\",\n \"features\",\n \"feed\",\n \"feedback\",\n \"feeds\",\n \"file\",\n \"files\",\n \"first\",\n \"flash\",\n \"fleet\",\n \"fleets\",\n \"flog\",\n \"follow\",\n \"followers\",\n \"following\",\n \"forgot\",\n \"form\",\n \"forum\",\n \"forums\",\n \"founder\",\n \"free\",\n \"friend\",\n \"friends\",\n \"ftp\",\n \"gadget\",\n \"gadgets\",\n \"game\",\n \"games\",\n \"get\",\n \"ghost\",\n \"gift\",\n \"gifts\",\n \"gist\",\n \"github\",\n \"graph\",\n \"group\",\n \"groups\",\n \"guest\",\n \"guests\",\n \"help\",\n \"home\",\n \"homepage\",\n \"host\",\n \"hosting\",\n \"hostmaster\",\n \"hostname\",\n \"howto\",\n \"hpg\",\n \"html\",\n \"http\",\n \"httpd\",\n \"https\",\n \"i\",\n \"iamges\",\n \"icon\",\n \"icons\",\n \"id\",\n \"idea\",\n \"ideas\",\n \"image\",\n \"images\",\n \"imap\",\n \"img\",\n \"index\",\n \"indice\",\n \"info\",\n \"information\",\n \"inquiry\",\n \"instagram\",\n \"intranet\",\n \"invitations\",\n \"invite\",\n \"ipad\",\n \"iphone\",\n \"irc\",\n \"is\",\n \"issue\",\n \"issues\",\n \"it\",\n \"item\",\n \"items\",\n \"java\",\n \"javascript\",\n \"job\",\n \"jobs\",\n \"join\",\n \"js\",\n \"json\",\n \"jump\",\n \"knowledgebase\",\n \"language\",\n \"languages\",\n \"last\",\n \"ldap-status\",\n \"legal\",\n \"license\",\n \"link\",\n \"links\",\n \"linux\",\n \"list\",\n \"lists\",\n \"log\",\n \"log-in\",\n \"log-out\",\n \"log_in\",\n \"log_out\",\n \"login\",\n \"logout\",\n \"logs\",\n \"m\",\n \"mac\",\n \"mail\",\n \"mail1\",\n \"mail2\",\n \"mail3\",\n \"mail4\",\n \"mail5\",\n \"mailer\",\n \"mailing\",\n \"maintenance\",\n \"manager\",\n \"manual\",\n \"map\",\n \"maps\",\n \"marketing\",\n \"master\",\n \"me\",\n \"media\",\n \"member\",\n \"members\",\n \"message\",\n \"messages\",\n \"messenger\",\n \"microblog\",\n \"microblogs\",\n \"mine\",\n \"mis\",\n \"mob\",\n \"mobile\",\n \"movie\",\n \"movies\",\n \"mp3\",\n \"msg\",\n \"msn\",\n \"music\",\n \"musicas\",\n \"mx\",\n \"my\",\n \"mysql\",\n \"name\",\n \"named\",\n \"nan\",\n \"navi\",\n \"navigation\",\n \"net\",\n \"network\",\n \"new\",\n \"news\",\n \"newsletter\",\n \"nick\",\n \"nickname\",\n \"notes\",\n \"noticias\",\n \"notification\",\n \"notifications\",\n \"notify\",\n \"ns\",\n \"ns1\",\n \"ns10\",\n \"ns2\",\n \"ns3\",\n \"ns4\",\n \"ns5\",\n \"ns6\",\n \"ns7\",\n \"ns8\",\n \"ns9\",\n \"null\",\n \"oauth\",\n \"oauth_clients\",\n \"offer\",\n \"offers\",\n \"official\",\n \"old\",\n \"online\",\n \"openid\",\n \"operator\",\n \"order\",\n \"orders\",\n \"organization\",\n \"organizations\",\n \"overview\",\n \"owner\",\n \"owners\",\n \"page\",\n \"pager\",\n \"pages\",\n \"panel\",\n \"password\",\n \"payment\",\n \"perl\",\n \"phone\",\n \"photo\",\n \"photoalbum\",\n \"photos\",\n \"php\",\n \"phpmyadmin\",\n \"phppgadmin\",\n \"phpredisadmin\",\n \"pic\",\n \"pics\",\n \"ping\",\n \"plan\",\n \"plans\",\n \"plugin\",\n \"plugins\",\n \"policy\",\n \"pop\",\n \"pop3\",\n \"popular\",\n \"portal\",\n \"post\",\n \"postfix\",\n \"postmaster\",\n \"posts\",\n \"pr\",\n \"premium\",\n \"press\",\n \"price\",\n \"pricing\",\n \"privacy\",\n \"privacy-policy\",\n \"privacy_policy\",\n \"privacypolicy\",\n \"private\",\n \"product\",\n \"products\",\n \"profile\",\n \"project\",\n \"projects\",\n \"promo\",\n \"pub\",\n \"public\",\n \"purpose\",\n \"put\",\n \"python\",\n \"query\",\n \"random\",\n \"ranking\",\n \"read\",\n \"readme\",\n \"recent\",\n \"recruit\",\n \"recruitment\",\n \"register\",\n \"registration\",\n \"release\",\n \"remove\",\n \"replies\",\n \"report\",\n \"reports\",\n \"repositories\",\n \"repository\",\n \"req\",\n \"request\",\n \"requests\",\n \"reset\",\n \"roc\",\n \"root\",\n \"rss\",\n \"ruby\",\n \"rule\",\n \"sag\",\n \"sale\",\n \"sales\",\n \"sample\",\n \"samples\",\n \"save\",\n \"school\",\n \"script\",\n \"scripts\",\n \"search\",\n \"secure\",\n \"security\",\n \"self\",\n \"send\",\n \"server\",\n \"server-info\",\n \"server-status\",\n \"service\",\n \"services\",\n \"session\",\n \"sessions\",\n \"setting\",\n \"settings\",\n \"setup\",\n \"share\",\n \"shop\",\n \"show\",\n \"sign-in\",\n \"sign-up\",\n \"sign_in\",\n \"sign_up\",\n \"signin\",\n \"signout\",\n \"signup\",\n \"site\",\n \"sitemap\",\n \"sites\",\n \"smartphone\",\n \"smtp\",\n \"soporte\",\n \"source\",\n \"spec\",\n \"special\",\n \"sql\",\n \"src\",\n \"ssh\",\n \"ssl\",\n \"ssladmin\",\n \"ssladministrator\",\n \"sslwebmaster\",\n \"staff\",\n \"stage\",\n \"staging\",\n \"start\",\n \"stat\",\n \"state\",\n \"static\",\n \"stats\",\n \"status\",\n \"store\",\n \"stores\",\n \"stories\",\n \"style\",\n \"styleguide\",\n \"stylesheet\",\n \"stylesheets\",\n \"subdomain\",\n \"subscribe\",\n \"subscriptions\",\n \"suporte\",\n \"support\",\n \"svn\",\n \"swf\",\n \"sys\",\n \"sysadmin\",\n \"sysadministrator\",\n \"system\",\n \"tablet\",\n \"tablets\",\n \"tag\",\n \"talk\",\n \"task\",\n \"tasks\",\n \"team\",\n \"teams\",\n \"tech\",\n \"telnet\",\n \"term\",\n \"terms\",\n \"terms-of-service\",\n \"terms_of_service\",\n \"termsofservice\",\n \"test\",\n \"test1\",\n \"test2\",\n \"test3\",\n \"teste\",\n \"testing\",\n \"tests\",\n \"theme\",\n \"themes\",\n \"thread\",\n \"threads\",\n \"tmp\",\n \"todo\",\n \"tool\",\n \"tools\",\n \"top\",\n \"topic\",\n \"topics\",\n \"tos\",\n \"tour\",\n \"translations\",\n \"trends\",\n \"tutorial\",\n \"tux\",\n \"tv\",\n \"twitter\",\n \"undef\",\n \"unfollow\",\n \"unsubscribe\",\n \"update\",\n \"upload\",\n \"uploads\",\n \"url\",\n \"usage\",\n \"user\",\n \"username\",\n \"users\",\n \"usuario\",\n \"vendas\",\n \"ver\",\n \"version\",\n \"video\",\n \"videos\",\n \"visitor\",\n \"watch\",\n \"weather\",\n \"web\",\n \"webhook\",\n \"webhooks\",\n \"webmail\",\n \"webmaster\",\n \"website\",\n \"websites\",\n \"welcome\",\n \"widget\",\n \"widgets\",\n \"wiki\",\n \"win\",\n \"windows\",\n \"word\",\n \"work\",\n \"works\",\n \"workshop\",\n \"ww\",\n \"wws\",\n \"www\",\n \"www1\",\n \"www2\",\n \"www3\",\n \"www4\",\n \"www5\",\n \"www6\",\n \"www7\",\n \"wwws\",\n \"wwww\",\n \"xfn\",\n \"xml\",\n \"xmpp\",\n \"xpg\",\n \"xxx\",\n \"yaml\",\n \"year\",\n \"yml\",\n \"you\",\n \"yourdomain\",\n \"yourname\",\n \"yoursite\",\n \"yourusername\",\n \"latest\",\n \"live\",\n \"preview\",\n \"learn\",\n \"supernova\",\n \"super-nova\",\n];\n\nconst RESERVED_SLUGS_SET = new Set(RESERVED_SLUGS);\n\nexport const RESERVED_SLUG_PREFIX = \"x-sn-reserved-\";\n\nconst isSlugReservedInternal = (slug: string) => slug?.startsWith(RESERVED_SLUG_PREFIX);\nexport function isSlugReserved(slug: string) {\n return RESERVED_SLUGS_SET.has(slug) || isSlugReservedInternal(slug);\n}\n","// Consists of lowercased letters, digits and hyphens.\n// Can not start or end with hyphen.\n// Warning: does not forbid consecutive hyphens\nexport const slugRegex = /^[a-z0-9][a-z0-9-]*[a-z0-9]$/;\n","import { z } from \"zod\";\nimport { User } from \"../users\";\n\nexport const NpmProxyToken = z.object({\n access: z.string(),\n expiresAt: z.number(),\n});\n\nexport type NpmProxyToken = z.infer<typeof NpmProxyToken>;\n\nexport const SessionData = z.object({\n returnToUrl: z.string().optional(),\n npmProxyToken: NpmProxyToken.optional(),\n});\n\nexport type SessionData = z.infer<typeof SessionData>;\n\nexport const Session = z.object({\n id: z.string(),\n expiresAt: z.coerce.date(),\n userId: z.string().nullable(),\n data: SessionData,\n});\n\nexport type Session = z.infer<typeof Session>;\n\nexport const AuthTokens = z.object({\n access: z.string(),\n refresh: z.string(),\n});\n\nexport type AuthTokens = z.infer<typeof AuthTokens>;\n\nexport const UserSession = z.object({\n session: Session,\n user: User.nullable(),\n});\n\nexport type UserSession = z.infer<typeof UserSession>;\n","import { z } from \"zod\";\nimport { ExporterPropertyValue, PublishedDocEnvironment } from \"../../dsm\";\n\nexport const ExportJobDocumentationContext = z.object({\n isSingleVersionDocs: z.boolean(),\n versionSlug: z.string(),\n environment: PublishedDocEnvironment,\n});\n\nexport const ExportJobContext = z.object({\n apiUrl: z.string(),\n accessToken: z.string(),\n\n designSystemId: z.string(),\n designSystemName: z.string(),\n exporterId: z.string(),\n versionId: z.string(),\n brandId: z.string().optional(),\n themeId: z.string().optional(),\n\n exporterName: z.string(),\n exporterPackageUrl: z.string(),\n exporterPropertyValues: ExporterPropertyValue.array(),\n\n documentation: ExportJobDocumentationContext.optional(),\n});\n\nexport type ExportJobDocumentationContext = z.infer<typeof ExportJobDocumentationContext>;\nexport type ExportJobContext = z.infer<typeof ExportJobContext>;\n","import { z } from \"zod\";\n\nexport const ExporterFunctionPayload = z.object({\n exportJobId: z.string(),\n exportContextId: z.string(),\n designSystemId: z.string(),\n workspaceId: z.string(),\n});\n\nexport type ExporterFunctionPayload = z.infer<typeof ExporterFunctionPayload>;\n","import { z } from \"zod\";\nimport { PublishedDocEnvironment } from \"../dsm\";\nimport { DbCreateInputOmit, DbUpdate, nullishToOptional } from \"../helpers\";\nimport { ExportDestinationsMap } from \"./export-destinations\";\n\n//\n// Enums\n//\n\nexport const ExportJobDestinationType = z.enum([\n \"s3\",\n \"webhookUrl\",\n \"github\",\n \"documentation\",\n \"azure\",\n \"gitlab\",\n \"bitbucket\",\n]);\nexport const ExportJobStatus = z.enum([\"InProgress\", \"Success\", \"Failed\", \"Timeout\"]);\nexport const ExportJobLogEntryType = z.enum([\"success\", \"info\", \"warning\", \"error\", \"user\"]);\n\nexport type ExportJobDestinationType = z.infer<typeof ExportJobDestinationType>;\nexport type ExportJobStatus = z.infer<typeof ExportJobStatus>;\nexport type ExportJobLogEntryType = z.infer<typeof ExportJobLogEntryType>;\n\n//\n// Results\n//\n\nexport const ExportJobLogEntry = z.object({\n id: z.string().optional(),\n time: z.coerce.date(),\n type: ExportJobLogEntryType,\n message: z.string(),\n});\n\nexport const ExportJobPullRequestDestinationResult = z.object({\n pullRequestUrl: z.string(),\n});\n\nexport const ExportJobS3DestinationResult = z.object({\n bucket: z.string(),\n urlPrefix: z.string().optional(),\n path: z.string(),\n files: z.array(z.string()),\n\n url: nullishToOptional(z.string()),\n urls: nullishToOptional(z.string().array()),\n});\n\nexport const ExportJobDocsDestinationResult = z.object({\n url: z.string(),\n});\n\nexport const ExportJobResult = z.object({\n error: z.string().optional(),\n s3: nullishToOptional(ExportJobS3DestinationResult),\n github: nullishToOptional(ExportJobPullRequestDestinationResult),\n azure: nullishToOptional(ExportJobPullRequestDestinationResult),\n gitlab: nullishToOptional(ExportJobPullRequestDestinationResult),\n bitbucket: nullishToOptional(ExportJobPullRequestDestinationResult),\n sndocs: nullishToOptional(ExportJobDocsDestinationResult),\n logs: nullishToOptional(ExportJobLogEntry.array()),\n});\n\nexport type ExportJobLogEntry = z.infer<typeof ExportJobLogEntry>;\nexport type ExportJobPullRequestDestinationResult = z.infer<typeof ExportJobPullRequestDestinationResult>;\nexport type ExportJobS3DestinationResult = z.infer<typeof ExportJobS3DestinationResult>;\nexport type ExportJobDocsDestinationResult = z.infer<typeof ExportJobDocsDestinationResult>;\nexport type ExportJobResult = z.infer<typeof ExportJobResult>;\n\n//\n// Job\n//\n\nexport const ExportJob = z.object({\n id: z.string(),\n createdAt: z.coerce.date(),\n finishedAt: z.coerce.date().optional(),\n designSystemId: z.string(),\n designSystemVersionId: z.string(),\n workspaceId: z.string(),\n scheduleId: z.string().nullish(),\n exporterId: z.string(),\n brandId: z.string().optional(),\n themeId: z.string().optional(),\n estimatedExecutionTime: z.number().optional(),\n status: ExportJobStatus,\n result: ExportJobResult.optional(),\n createdByUserId: z.string().optional(),\n\n // Destinations\n ...ExportDestinationsMap.shape,\n});\n\nexport type ExportJob = z.infer<typeof ExportJob>;\n\nexport type CreateExportJob = DbCreateInputOmit<ExportJob>;\nexport type UpdateExportJob = Pick<DbUpdate<ExportJob>, \"id\" | \"status\" | \"result\" | \"finishedAt\">;\n\n//\n// Support\n//\n\nexport const ExportJobFindByFilter = ExportJob.pick({\n exporterId: true,\n designSystemVersionId: true,\n createdByUserId: true,\n status: true,\n scheduleId: true,\n designSystemId: true,\n themeId: true,\n brandId: true,\n})\n .extend({\n destinations: z.array(ExportJobDestinationType),\n docsEnvironment: PublishedDocEnvironment,\n })\n .partial();\n\nexport type ExportJobFindByFilter = z.infer<typeof ExportJobFindByFilter>;\n","import { z } from \"zod\";\n\nexport const ExporterWorkspaceMembershipRole = z.enum([\"Owner\", \"OwnerArchived\", \"User\"]);\nexport type ExporterWorkspaceMembershipRole = z.infer<typeof ExporterWorkspaceMembershipRole>;\n","import { z } from \"zod\";\nimport { ExporterWorkspaceMembershipRole } from \"./exporter-workspace-membership-role\";\nimport { DbCreateInputOmit } from \"../helpers\";\n\nexport const ExporterWorkspaceMembership = z.object({\n id: z.string(),\n workspaceId: z.string(),\n exporterId: z.string(),\n role: ExporterWorkspaceMembershipRole,\n});\n\nexport type ExporterWorkspaceMembership = z.infer<typeof ExporterWorkspaceMembership>;\n\nexport type CreateExporterMembership = DbCreateInputOmit<ExporterWorkspaceMembership>;\n","import { z } from \"zod\";\n\nexport const FlaggedFeature = z.enum([\"FigmaImporterV2\", \"ShadowOpacityOptional\", \"DisableImporter\"]);\nexport const FeatureFlagMap = z.record(FlaggedFeature, z.boolean());\nexport const FeatureFlag = z.object({\n id: z.string(),\n feature: FlaggedFeature,\n createdAt: z.coerce.date(),\n enabled: z.boolean(),\n designSystemId: z.string().optional(),\n});\n\nexport type FlaggedFeature = z.infer<typeof FlaggedFeature>;\nexport type FeatureFlagMap = z.infer<typeof FeatureFlagMap>;\nexport type FeatureFlag = z.infer<typeof FeatureFlag>;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const ExternalOAuthRequest = z.object({\n id: z.string(),\n provider: OAuthProviderSchema,\n userId: z.string(),\n state: z.string(),\n createdAt: z.coerce.date(),\n});\n\nexport type ExternalOAuthRequest = z.infer<typeof ExternalOAuthRequest>;\n","import { z } from \"zod\";\n\nexport enum OAuthProviderNames {\n Figma = \"figma\",\n Azure = \"azure\",\n Github = \"github\",\n Gitlab = \"gitlab\",\n Bitbucket = \"bitbucket\",\n}\n\nexport const OAuthProviderSchema = z.nativeEnum(OAuthProviderNames);\nexport type OAuthProvider = z.infer<typeof OAuthProviderSchema>;\nexport const OAuthProvider = OAuthProviderSchema.enum;\n","import { z } from \"zod\";\n\nexport const GitObjectsQuery = z.object({\n organization: z.string().optional(), // Azure Organization | Bitbucket Workspace slug | Gitlab Group | Github Account (User or Organization)\n project: z.string().optional(), // Only for Bitbucket and Azure\n repository: z.string().optional(), // For all providers. For Gitlab, it's called \"project\".\n branch: z.string().optional(), // For all providers.\n user: z.string().optional(), // Gitlab user\n});\n\nexport type GitObjectsQuery = z.infer<typeof GitObjectsQuery>;\n\nexport const GitOrganization = z.object({\n id: z.string(),\n name: z.string(),\n url: z.string(),\n slug: z.string(),\n});\n\nexport const GitProject = z.object({\n id: z.string(),\n name: z.string(),\n url: z.string(),\n slug: z.string(),\n});\n\nexport const GitRepository = z.object({\n id: z.string(),\n name: z.string(),\n url: z.string(),\n slug: z.string(),\n\n /**\n * Can be undefined when:\n * - there are no branches in the repository yet\n * - Git provider doesn't expose this information on a repository via their API\n */\n defaultBranch: z.string().optional(),\n});\n\nexport const GitBranch = z.object({\n name: z.string(),\n lastCommitId: z.string(),\n});\n\nexport type GitOrganization = z.infer<typeof GitOrganization>;\nexport type GitProject = z.infer<typeof GitProject>;\nexport type GitRepository = z.infer<typeof GitRepository>;\nexport type GitBranch = z.infer<typeof GitBranch>;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const IntegrationTokenSchemaOld = z.object({\n id: z.string(),\n provider: OAuthProviderSchema,\n scope: z.string(),\n userId: z.string(),\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresAt: z.coerce.date(),\n externalUserId: z.string().nullish(),\n});\n\n// Renamed because will be deleted later after full migration / end of project\nexport type IntegrationTokenOld = z.infer<typeof IntegrationTokenSchemaOld>;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const WorkspaceOAuthRequestSchema = z.object({\n id: z.string(),\n workspaceId: z.string(),\n provider: OAuthProviderSchema,\n userId: z.string(),\n createdAt: z.coerce.date(),\n});\n\nexport type WorkspaceOAuthRequest = z.infer<typeof WorkspaceOAuthRequestSchema>;\n","import { z } from \"zod\";\n\nconst AnyRecord = z.record(z.any());\n\nconst NpmPackageVersionDist = AnyRecord.and(\n z.object({\n tarball: z.string(),\n })\n);\n\nconst NpmPackageVersion = AnyRecord.and(\n z.object({\n dist: NpmPackageVersionDist,\n })\n);\n\nexport const NpmPackage = AnyRecord.and(\n z.object({\n _id: z.string(),\n name: z.string(),\n\n // e.g. \"latest\": \"1.2.3\"\n \"dist-tags\": z.record(z.string(), z.string()),\n\n // \"1.2.3\": {...}\n versions: z.record(NpmPackageVersion),\n })\n);\n\nexport type NpmPackage = z.infer<typeof NpmPackage>;\n","import { z } from \"zod\";\n\nexport const NpmProxyTokenPayload = z.object({\n npmProxyRegistryConfigId: z.string(),\n});\n\nexport type NpmProxyTokenPayload = z.infer<typeof NpmProxyTokenPayload>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit } from \"../helpers\";\nimport { OmitStrict } from \"../utils\";\nimport { WorkspaceRoleSchema } from \"../workspace\";\n\nexport const PersonalAccessToken = z.object({\n id: z.string(),\n userId: z.string(),\n\n workspaceId: z.string().optional(),\n workspaceRole: WorkspaceRoleSchema.optional(),\n\n name: z.string(),\n hidden: z.boolean(),\n\n token: z.string(),\n scope: z.string().optional(),\n\n createdAt: z.coerce.date(),\n expireAt: z.coerce.date().optional(),\n});\n\nexport type PersonalAccessToken = z.infer<typeof PersonalAccessToken>;\n\nexport type CreatePersonalAccessToken = DbCreateInputOmit<PersonalAccessToken>;\n","import { z } from \"zod\";\nimport { WorkspaceRoleSchema } from \"./workspace-role\";\n\nexport const MAX_MEMBERS_COUNT = 100;\n\nexport const UserInvite = z.object({\n email: z\n .string()\n .email()\n .trim()\n .transform(value => value.toLowerCase()),\n role: WorkspaceRoleSchema,\n});\n\nexport const UserInvites = z.array(UserInvite).max(MAX_MEMBERS_COUNT);\n\nexport type UserInvite = z.infer<typeof UserInvite>;\nexport type UserInvites = z.infer<typeof UserInvites>;\n","import { z } from \"zod\";\n\nexport const WorkspaceRoleSchema = z.enum([\"Owner\", \"Admin\", \"Creator\", \"Viewer\", \"Billing\", \"Guest\"]);\n\nexport type WorkspaceRole = z.infer<typeof WorkspaceRoleSchema>;\nexport const WorkspaceRole = WorkspaceRoleSchema.enum;\n","import { z } from \"zod\";\nimport { SsoProvider } from \"./sso-provider\";\nimport { WorkspaceIpSettings, WorkspaceProfileUpdate } from \"./workspace\";\nimport { NpmRegistryConfig } from \"./npm-registry-settings\";\n\nexport const WorkspaceConfigurationUpdate = z.object({\n id: z.string(),\n ipWhitelist: WorkspaceIpSettings.optional(),\n sso: SsoProvider.optional(),\n npmRegistrySettings: NpmRegistryConfig.optional(),\n profile: WorkspaceProfileUpdate.optional(),\n});\n\nexport type WorkspaceConfigurationUpdate = z.infer<typeof WorkspaceConfigurationUpdate>;\n","import { z } from \"zod\";\nimport { ProductCodeSchema } from \"../billing\";\nimport { WorkspaceIpSettings } from \"./workspace\";\nimport { nullishToOptional } from \"../helpers\";\n\nexport const WorkspaceContext = z.object({\n workspaceId: z.string(),\n product: ProductCodeSchema,\n ipWhitelist: nullishToOptional(WorkspaceIpSettings),\n publicDesignSystem: z.boolean().optional(),\n});\n\nexport type WorkspaceContext = z.infer<typeof WorkspaceContext>;\n","import { z } from \"zod\";\nimport { UserInvites } from \"./user-invite\";\nimport { BillingIntervalSchema, CardSchema, InternalStatusSchema, ProductCodeSchema } from \"../billing\";\nimport { slugRegex } from \"../utils/validation\";\nimport { SsoProvider } from \"./sso-provider\";\nimport { NpmRegistryConfig } from \"./npm-registry-settings\";\nimport { WorkspaceIpSettings } from \"./workspace\";\n\nconst WORKSPACE_NAME_MIN_LENGTH: number = 2;\nconst WORKSPACE_NAME_MAX_LENGTH: number = 64;\nexport const HANDLE_MIN_LENGTH = 2;\nexport const HANDLE_MAX_LENGTH = 64;\n\nexport const CreateWorkspaceInput = z.object({\n name: z.string().min(WORKSPACE_NAME_MIN_LENGTH).max(WORKSPACE_NAME_MAX_LENGTH).trim(),\n product: ProductCodeSchema,\n priceId: z.string(),\n billingEmail: z.string().email().optional(),\n handle: z\n .string()\n .regex(slugRegex)\n .min(HANDLE_MIN_LENGTH)\n .max(HANDLE_MAX_LENGTH)\n .refine(value => value?.length > 0)\n .optional(),\n invites: UserInvites.optional(),\n promoCode: z.string().optional(),\n status: InternalStatusSchema.optional(),\n planInterval: BillingIntervalSchema.optional(),\n seats: z.number().optional(),\n seatLimit: z.number().optional(),\n card: CardSchema.optional(),\n sso: SsoProvider.optional(),\n npmRegistrySettings: NpmRegistryConfig.optional(),\n ipWhitelist: WorkspaceIpSettings.optional(),\n});\n\nexport type CreateWorkspaceInput = z.infer<typeof CreateWorkspaceInput>;\n","import { WorkspaceRole } from \"./workspace-role\";\nimport { z } from \"zod\";\n\nexport const WorkspaceInvitation = z.object({\n id: z.string(),\n email: z.string().email(),\n createdAt: z.coerce.date(),\n resentAt: z.coerce.date().nullish(),\n role: z.nativeEnum(WorkspaceRole),\n workspaceId: z.string(),\n invitedBy: z.string(),\n});\n\nexport type WorkspaceInvitation = z.infer<typeof WorkspaceInvitation>;\n","import { UserNotificationSettings } from \"../users\";\nimport { WorkspaceRole } from \"./workspace-role\";\nimport { z } from \"zod\";\n\nexport const WorkspaceMembership = z.object({\n id: z.string(),\n userId: z.string(),\n workspaceId: z.string(),\n workspaceRole: z.nativeEnum(WorkspaceRole),\n notificationSettings: UserNotificationSettings,\n});\n\nexport type WorkspaceMembership = z.infer<typeof WorkspaceMembership>;\n\nexport const UpdateMembershipRolesInput = z.object({\n members: z.array(\n z.object({\n userId: z.string(),\n role: z.nativeEnum(WorkspaceRole),\n })\n ),\n});\nexport type UpdateMembershipRolesInput = z.infer<typeof UpdateMembershipRolesInput>;\n","import {\n ColorTokenData,\n DocumentationItemConfigurationV1,\n DocumentationItemHeaderAlignment,\n DocumentationItemHeaderImageScaleType,\n} from \"@supernova-studio/model\";\nimport { DTODocumentationItemConfigurationV1 } from \"../../dto\";\n\nexport const getDtoDefaultItemConfigurationV1 = () =>\n ({\n showSidebar: true,\n isHidden: false,\n isPrivate: false,\n header: {\n alignment: DocumentationItemHeaderAlignment.Left,\n backgroundImageScaleType: DocumentationItemHeaderImageScaleType.AspectFill,\n description: \"\",\n showBackgroundOverlay: false,\n showCoverText: true,\n },\n } as const);\n\nexport function documentationItemConfigurationToDTOV1(\n config: DocumentationItemConfigurationV1 | undefined\n): DTODocumentationItemConfigurationV1 {\n const dtoDefaultItemConfigurationV1 = getDtoDefaultItemConfigurationV1();\n if (!config) return dtoDefaultItemConfigurationV1;\n\n const { backgroundColor, foregroundColor, ...headerRest } = config.header;\n\n return {\n showSidebar: config.showSidebar,\n isHidden: config.isHidden ?? dtoDefaultItemConfigurationV1.isHidden,\n isPrivate: config.isPrivate ?? dtoDefaultItemConfigurationV1.isPrivate,\n header: {\n ...headerRest,\n backgroundColor: colorToDTOV1(backgroundColor ?? undefined),\n foregroundColor: colorToDTOV1(foregroundColor ?? undefined),\n },\n };\n}\n\nfunction colorToDTOV1(color: ColorTokenData | undefined) {\n if (!color) return undefined;\n if (color.aliasTo) return { aliasTo: color.aliasTo };\n if (!color.value) return undefined;\n\n if (typeof color.value === \"string\") return { value: color.value };\n if (typeof color.value.color === \"string\") return { value: color.value.color };\n\n return undefined;\n}\n","import {\n DocumentationItemConfigurationV1,\n DocumentationItemConfigurationV2,\n DocumentationGroupV1,\n DocumentationPageV1,\n DocumentationPageV2,\n ElementGroup,\n mapByUnique,\n slugify,\n} from \"@supernova-studio/model\";\n\ntype GroupLike = {\n persistentId: string;\n parentPersistentId?: string;\n};\n\n// The fact that DTO conversion is located here instead of main backend code is due to the fact\n// that we store page and group data in YJS documents in the same way as they are stored in the database.\n// Therefore, we need to expose this conversion to the client so that it can consume data from YJS documents.\n//\n// Please do not put more DTO conversion here unless you know what you're doing.\n\nexport function buildDocPagePublishPaths(\n groups: (ElementGroup | DocumentationGroupV1)[],\n pages: (DocumentationPageV1 | DocumentationPageV2)[],\n routingVersion: string\n): Map<string, string> {\n const groupPersistentIdToGroupMap = mapByUnique(groups, group => group.persistentId);\n const result = new Map<string, string>();\n\n for (const page of pages) {\n const parentChain = calculateElementParentChain(page.parentPersistentId, groupPersistentIdToGroupMap);\n\n let pathV1 = `${page.userSlug || page.slug}.html`;\n let pathV2 = `${slugify(page.meta.name)}-${page.shortPersistentId}`;\n\n for (const parent of parentChain) {\n if (!parent.parentPersistentId) continue;\n\n pathV1 = `${parent.userSlug || parent.slug}/${pathV1}`;\n pathV2 = `${slugify(parent.meta.name)}/${pathV2}`;\n }\n\n pathV1 = `/${pathV1}`;\n pathV2 = `/${pathV2}`;\n\n if (routingVersion === \"2\") {\n result.set(page.persistentId, pathV2);\n } else {\n result.set(page.persistentId, pathV1);\n }\n }\n\n return result;\n}\n\nexport function calculateElementParentChain<T extends GroupLike>(\n elementParentPersistentId: string,\n groupPersistentIdToGroupMap: Map<string, T>\n): T[] {\n const result: T[] = [];\n\n let parentId: string | undefined = elementParentPersistentId;\n while (parentId) {\n const parent = groupPersistentIdToGroupMap.get(parentId);\n if (parent) result.push(parent);\n\n parentId = parent?.parentPersistentId;\n }\n\n return result;\n}\n\nexport function applyPrivacyConfigurationToNestedItems<\n PageType extends DocumentationPageV1 | DocumentationPageV2,\n GroupType extends DocumentationGroupV1 | ElementGroup,\n ItemConfigurationType extends DocumentationItemConfigurationV1 | DocumentationItemConfigurationV2\n>(\n pages: PageType[],\n groups: GroupType[],\n getDefaultItemConfiguration: () => ItemConfigurationType\n): { pages: PageType[]; groups: GroupType[] } {\n // copy groups to mutate them later\n const fixedGroups = groups.map(group => ({\n ...group,\n data: {\n ...group.data,\n configuration: group.data?.configuration ?? getDefaultItemConfiguration(),\n },\n }));\n const groupPersistentIdToGroupMap = mapByUnique(fixedGroups, group => group.persistentId);\n\n for (const groupToFix of fixedGroups) {\n let isHidden = groupToFix.data.configuration.isHidden;\n let isPrivate = groupToFix.data.configuration.isPrivate;\n\n let nextParentId: string | undefined = groupToFix.parentPersistentId;\n while ((!isHidden || !isPrivate) && nextParentId) {\n const parent = groupPersistentIdToGroupMap.get(nextParentId);\n if (!parent) break;\n\n isHidden = isHidden || parent.data?.configuration?.isHidden || false;\n isPrivate = isPrivate || parent.data?.configuration?.isPrivate || false;\n\n nextParentId = parent.parentPersistentId;\n }\n\n groupToFix.data.configuration.isHidden = isHidden;\n groupToFix.data.configuration.isPrivate = isPrivate;\n }\n\n const fixedPages: PageType[] = [];\n // set isHidden and isPrivate configuration fields based on page and parents value\n for (const page of pages) {\n const configuration = page.data?.configuration ?? getDefaultItemConfiguration();\n const parent = groupPersistentIdToGroupMap.get(page.parentPersistentId);\n\n fixedPages.push({\n ...page,\n data: {\n ...page.data,\n configuration: {\n ...configuration,\n isHidden: configuration.isHidden || parent?.data?.configuration?.isHidden || false,\n isPrivate: configuration.isPrivate || parent?.data?.configuration?.isPrivate || false,\n },\n },\n });\n }\n\n return { pages: fixedPages, groups: fixedGroups };\n}\n","import {\n DocumentationGroupV1,\n DocumentationItemConfigurationV1,\n DocumentationPageV1,\n DocumentationPageV2,\n groupBy,\n} from \"@supernova-studio/model\";\nimport { DTODocumentationGroupStructureV1, DTODocumentationGroupV1 } from \"../../dto/elements/documentation/group-v1\";\nimport {\n documentationItemConfigurationToDTOV1,\n getDtoDefaultItemConfigurationV1,\n} from \"./documentation-item-configuration-v1-to-dto\";\nimport { applyPrivacyConfigurationToNestedItems } from \"./documentation-page-to-dto-utils\";\n\n// The fact that DTO conversion is located here instead of main backend code is due to the fact\n// that we store page and group data in YJS documents in the same way as they are stored in the database.\n// Therefore, we need to expose this conversion to the client so that it can consume data from YJS documents.\n//\n// Please do not put more DTO conversion here unless you know what you're doing.\n\nexport function elementGroupsToDocumentationGroupStructureDTOV1(\n groups: DocumentationGroupV1[],\n pages: (DocumentationPageV1 | DocumentationPageV2)[]\n): DTODocumentationGroupStructureV1[] {\n const childrenIdsMap = calculateChildrenIdsMapV1(pages, groups);\n\n return groups.map(group => elementGroupToDocumentationGroupStructureDTOV1(group, childrenIdsMap));\n}\n\nexport function elementGroupsToDocumentationGroupDTOV1(\n groups: DocumentationGroupV1[],\n pages: (DocumentationPageV1 | DocumentationPageV2)[]\n): DTODocumentationGroupV1[] {\n const childrenIdsMap = calculateChildrenIdsMapV1(pages, groups);\n\n return groups.map(group => {\n return {\n ...elementGroupToDocumentationGroupStructureDTOV1(group, childrenIdsMap),\n configuration: documentationItemConfigurationToDTOV1(group.data?.configuration),\n };\n });\n}\n\nexport function elementGroupsToDocumentationGroupFixedConfigurationDTOV1(\n groups: DocumentationGroupV1[],\n pages: (DocumentationPageV1 | DocumentationPageV2)[]\n): DTODocumentationGroupV1[] {\n const childrenIdsMap = calculateChildrenIdsMapV1(pages, groups);\n\n const { groups: fixedGroups } = applyPrivacyConfigurationToNestedItems<\n DocumentationPageV1 | DocumentationPageV2,\n DocumentationGroupV1,\n DocumentationItemConfigurationV1\n >(pages, groups, getDtoDefaultItemConfigurationV1);\n\n return fixedGroups.map(group => {\n const configuration = documentationItemConfigurationToDTOV1(group.data?.configuration);\n\n return {\n ...elementGroupToDocumentationGroupStructureDTOV1(group, childrenIdsMap),\n // backward compatibility with custom doc exporters, anyway these groups will not be shown, so we can adjust title\n title: configuration.isHidden && !group.meta.name.startsWith(\"_\") ? \"_\" + group.meta.name : group.meta.name,\n configuration,\n };\n });\n}\n\nfunction elementGroupToDocumentationGroupStructureDTOV1(\n group: DocumentationGroupV1,\n childrenIdsMap: Map<string, string[]>\n): DTODocumentationGroupStructureV1 {\n const childrenIds = childrenIdsMap.get(group.persistentId) ?? [];\n\n if (!group.shortPersistentId) {\n throw new Error(`Short persistent id is required for docs groups, group id: ${group.id}`);\n }\n\n return {\n id: group.id,\n designSystemVersionId: group.designSystemVersionId,\n persistentId: group.persistentId,\n slug: group.slug,\n userSlug: group.userSlug,\n createdAt: group.createdAt,\n updatedAt: group.updatedAt,\n title: group.meta.name,\n childrenIds: childrenIds,\n isRoot: !group.parentPersistentId,\n groupBehavior: group.data?.behavior ?? \"Group\",\n shortPersistentId: group.shortPersistentId,\n type: \"Group\",\n };\n}\n\nfunction calculateChildrenIdsMapV1(\n elements: { persistentId: string; parentPersistentId: string; sortOrder: number }[],\n groups: DocumentationGroupV1[]\n): Map<string, string[]> {\n const byParentId = groupBy([...elements, ...groups], e => e.parentPersistentId);\n\n const childrenIdsMap = new Map<string, string[]>();\n\n for (const [parentPersistentId, children] of byParentId) {\n if (!parentPersistentId) continue;\n children.sort((lhs, rhs) => lhs.sortOrder - rhs.sortOrder);\n\n childrenIdsMap.set(\n parentPersistentId,\n children.map(c => c.persistentId)\n );\n }\n\n return childrenIdsMap;\n}\n","import {\n DocumentationItemConfigurationV2,\n DocumentationItemHeaderAlignment,\n DocumentationItemHeaderImageScaleType,\n} from \"@supernova-studio/model\";\nimport { DTODocumentationItemConfigurationV2 } from \"../../dto/elements/documentation/item-configuration-v2\";\n\nexport const getDtoDefaultItemConfigurationV2 = () =>\n ({\n showSidebar: true,\n isHidden: false,\n isPrivate: false,\n header: {\n alignment: DocumentationItemHeaderAlignment.Left,\n backgroundImageScaleType: DocumentationItemHeaderImageScaleType.AspectFill,\n description: \"\",\n showBackgroundOverlay: false,\n showCoverText: true,\n },\n } as const);\n\nexport function documentationItemConfigurationToDTOV2(\n config: DocumentationItemConfigurationV2 | undefined\n): DTODocumentationItemConfigurationV2 {\n const dtoDefaultItemConfigurationV2 = getDtoDefaultItemConfigurationV2();\n if (!config) return dtoDefaultItemConfigurationV2;\n\n return {\n header: config.header,\n isHidden: config.isHidden ?? dtoDefaultItemConfigurationV2.isHidden,\n isPrivate: config.isPrivate ?? dtoDefaultItemConfigurationV2.isPrivate,\n showSidebar: config.showSidebar,\n };\n}\n","import {\n DocumentationItemConfigurationV2,\n DocumentationPageV1,\n DocumentationPageV2,\n ElementGroup,\n groupBy,\n} from \"@supernova-studio/model\";\nimport { DTODocumentationGroupV2 } from \"../../dto\";\nimport {\n documentationItemConfigurationToDTOV2,\n getDtoDefaultItemConfigurationV2,\n} from \"./documentation-item-configuration-v2-to-dto\";\nimport { applyPrivacyConfigurationToNestedItems } from \"./documentation-page-to-dto-utils\";\n\n// The fact that DTO conversion is located here instead of main backend code is due to the fact\n// that we store page and group data in YJS documents in the same way as they are stored in the database.\n// Therefore, we need to expose this conversion to the client so that it can consume data from YJS documents.\n//\n// Please do not put more DTO conversion here unless you know what you're doing.\n\nexport function elementGroupsToDocumentationGroupDTOV2(\n groups: ElementGroup[],\n pages: (DocumentationPageV1 | DocumentationPageV2)[]\n): DTODocumentationGroupV2[] {\n const childrenIdsMap = calculateChildrenIdsMapV2(pages, groups);\n\n return groups.map(group => elementGroupToDocumentationGroupStructureDTOV2(group, childrenIdsMap));\n}\n\nexport function elementGroupsToDocumentationGroupFixedConfigurationDTOV2(\n groups: ElementGroup[],\n pages: (DocumentationPageV1 | DocumentationPageV2)[]\n): DTODocumentationGroupV2[] {\n const childrenIdsMap = calculateChildrenIdsMapV2(pages, groups);\n\n const { groups: fixedGroups } = applyPrivacyConfigurationToNestedItems<\n DocumentationPageV1 | DocumentationPageV2,\n ElementGroup,\n DocumentationItemConfigurationV2\n >(pages, groups, getDtoDefaultItemConfigurationV2);\n\n return fixedGroups.map(group => elementGroupToDocumentationGroupStructureDTOV2(group, childrenIdsMap));\n}\n\nfunction elementGroupToDocumentationGroupStructureDTOV2(\n group: ElementGroup,\n childrenIdsMap: Map<string, string[]>\n): DTODocumentationGroupV2 {\n const childrenIds = childrenIdsMap.get(group.persistentId) ?? [];\n\n if (!group.shortPersistentId) {\n throw new Error(`Short persistent id is required for docs groups, group id: ${group.id}`);\n }\n\n return {\n id: group.id,\n designSystemVersionId: group.designSystemVersionId,\n persistentId: group.persistentId,\n slug: group.slug,\n userSlug: group.userSlug,\n createdAt: group.createdAt,\n updatedAt: group.updatedAt,\n title: group.meta.name,\n configuration: documentationItemConfigurationToDTOV2(group?.data?.configuration),\n childrenIds: childrenIds,\n isRoot: !group.parentPersistentId,\n groupBehavior: group.data?.behavior ?? \"Group\",\n shortPersistentId: group.shortPersistentId,\n type: \"Group\",\n };\n}\n\nfunction calculateChildrenIdsMapV2(\n elements: { persistentId: string; parentPersistentId: string; sortOrder: number }[],\n groups: ElementGroup[]\n): Map<string, string[]> {\n const byParentId = groupBy([...elements, ...groups], e => e.parentPersistentId);\n\n const childrenIdsMap = new Map<string, string[]>();\n\n for (const [parentPersistentId, children] of byParentId) {\n if (!parentPersistentId) continue;\n children.sort((lhs, rhs) => lhs.sortOrder - rhs.sortOrder);\n\n childrenIdsMap.set(\n parentPersistentId,\n children.map(c => c.persistentId)\n );\n }\n\n return childrenIdsMap;\n}\n","import {\n DocumentationGroupV1,\n DocumentationItemConfigurationV1,\n DocumentationPageV1,\n SupernovaException,\n} from \"@supernova-studio/model\";\nimport { DocumentationPageV1DTO } from \"../../dto\";\nimport {\n documentationItemConfigurationToDTOV1,\n getDtoDefaultItemConfigurationV1,\n} from \"./documentation-item-configuration-v1-to-dto\";\nimport { buildDocPagePublishPaths, applyPrivacyConfigurationToNestedItems } from \"./documentation-page-to-dto-utils\";\n\n// The fact that DTO conversion is located here instead of main backend code is due to the fact\n// that we store page and group data in YJS documents in the same way as they are stored in the database.\n// Therefore, we need to expose this conversion to the client so that it can consume data from YJS documents.\n//\n// Please do not put more DTO conversion here unless you know what you're doing.\n\nexport function documentationPagesToDTOV1(\n pages: DocumentationPageV1[],\n groups: DocumentationGroupV1[],\n routingVersion: string\n): DocumentationPageV1DTO[] {\n const pathsMap = buildDocPagePublishPaths(groups, pages, routingVersion);\n\n return pages.map(page => documentationPageToDTOV1(page, pathsMap));\n}\n\nexport function documentationPagesFixedConfigurationToDTOV1(\n pages: DocumentationPageV1[],\n groups: DocumentationGroupV1[],\n routingVersion: string\n): DocumentationPageV1DTO[] {\n const pathsMap = buildDocPagePublishPaths(groups, pages, routingVersion);\n\n const { pages: fixedPages } = applyPrivacyConfigurationToNestedItems<\n DocumentationPageV1,\n DocumentationGroupV1,\n DocumentationItemConfigurationV1\n >(pages, groups, getDtoDefaultItemConfigurationV1);\n\n return fixedPages.map((page: DocumentationPageV1) => documentationPageToDTOV1(page, pathsMap));\n}\n\nfunction documentationPageToDTOV1(page: DocumentationPageV1, pagePathMap: Map<string, string>): DocumentationPageV1DTO {\n let path = pagePathMap.get(page.persistentId);\n if (!path) throw SupernovaException.conflict(`Path for page ${page.id} was not calculated`);\n\n if (path.startsWith(\"/\")) path = path.substring(1);\n\n const configuration = documentationItemConfigurationToDTOV1(page.data.configuration);\n\n return {\n id: page.id,\n designSystemVersionId: page.designSystemVersionId,\n persistentId: page.persistentId,\n shortPersistentId: page.shortPersistentId,\n // backward compatibility with custom doc exporters, anyway these pages will not be shown, so we can adjust title\n title: configuration.isHidden && !page.meta.name.startsWith(\"_\") ? \"_\" + page.meta.name : page.meta.name,\n blocks: page.data.blocks,\n slug: page.slug,\n userSlug: page.userSlug,\n configuration,\n createdAt: page.createdAt,\n updatedAt: page.updatedAt,\n path: path,\n };\n}\n","import { DocumentationItemConfigurationV2, DocumentationPageV2, ElementGroup } from \"@supernova-studio/model\";\nimport { DTODocumentationPageV2 } from \"../../dto\";\nimport {\n documentationItemConfigurationToDTOV2,\n getDtoDefaultItemConfigurationV2,\n} from \"./documentation-item-configuration-v2-to-dto\";\nimport { applyPrivacyConfigurationToNestedItems, buildDocPagePublishPaths } from \"./documentation-page-to-dto-utils\";\n\n// The fact that DTO conversion is located here instead of main backend code is due to the fact\n// that we store page and group data in YJS documents in the same way as they are stored in the database.\n// Therefore, we need to expose this conversion to the client so that it can consume data from YJS documents.\n//\n// Please do not put more DTO conversion here unless you know what you're doing.\n\nexport function documentationPageToDTOV2(\n page: DocumentationPageV2,\n groups: ElementGroup[],\n routingVersion: string\n): DTODocumentationPageV2 {\n const pathsMap = buildDocPagePublishPaths(groups, [page], routingVersion);\n return _documentationPageToDTOV2(page, pathsMap);\n}\n\nexport function documentationPagesToDTOV2(\n pages: DocumentationPageV2[],\n groups: ElementGroup[],\n routingVersion: string\n): DTODocumentationPageV2[] {\n const pathsMap = buildDocPagePublishPaths(groups, pages, routingVersion);\n return pages.map(page => _documentationPageToDTOV2(page, pathsMap));\n}\n\nexport function documentationPagesFixedConfigurationToDTOV2(\n pages: DocumentationPageV2[],\n groups: ElementGroup[],\n routingVersion: string\n): DTODocumentationPageV2[] {\n const pathsMap = buildDocPagePublishPaths(groups, pages, routingVersion);\n\n const { pages: fixedPages } = applyPrivacyConfigurationToNestedItems<\n DocumentationPageV2,\n ElementGroup,\n DocumentationItemConfigurationV2\n >(pages, groups, getDtoDefaultItemConfigurationV2);\n\n return fixedPages.map(page => _documentationPageToDTOV2(page, pathsMap));\n}\n\nfunction _documentationPageToDTOV2(\n page: DocumentationPageV2,\n pagePathMap: Map<string, string>\n): DTODocumentationPageV2 {\n let path = pagePathMap.get(page.persistentId);\n if (!path) throw new Error(`Path for page ${page.id} was not calculated`);\n\n if (path.startsWith(\"/\")) path = path.substring(1);\n\n return {\n id: page.id,\n designSystemVersionId: page.designSystemVersionId,\n persistentId: page.persistentId,\n shortPersistentId: page.shortPersistentId,\n title: page.meta.name,\n slug: page.slug,\n userSlug: page.userSlug,\n configuration: documentationItemConfigurationToDTOV2(page.data.configuration),\n createdAt: page.createdAt,\n updatedAt: page.updatedAt,\n path: path,\n type: \"Page\",\n };\n}\n","import { Pipeline } from \"@supernova-studio/model\";\nimport { DTOPipeline } from \"../../dto/export/pipeline\";\n\nexport function pipelineToDto(pipeline: Pipeline): DTOPipeline {\n return {\n id: pipeline.id,\n name: pipeline.name,\n eventType: pipeline.eventType,\n isEnabled: pipeline.isEnabled,\n workspaceId: pipeline.workspaceId,\n designSystemId: pipeline.designSystemId,\n exporterId: pipeline.exporterId,\n brandPersistentId: pipeline.brandPersistentId,\n themePersistentId: pipeline.themePersistentId,\n destinationAzure: pipeline.destinationAzure,\n destinationBitbucket: pipeline.destinationBitbucket,\n destinationSnDocs: pipeline.destinationSnDocs,\n destinationGithub: pipeline.destinationGithub,\n destinationGitlab: pipeline.destinationGitlab,\n destinationS3: pipeline.destinationS3,\n webhookUrl: pipeline.webhookUrl,\n latestJobs: [],\n };\n}\n","import { GitBranch, GitOrganization, GitProject, GitRepository } from \"@supernova-studio/model\";\nimport { DTOGitBranch, DTOGitOrganization, DTOGitProject, DTOGitRepository } from \"../../dto\";\n\nexport function gitOrganizationToDto(org: GitOrganization): DTOGitOrganization {\n return {\n id: org.id,\n name: org.name,\n url: org.url,\n slug: org.slug,\n };\n}\n\nexport function gitProjectToDto(project: GitProject): DTOGitProject {\n return {\n id: project.id,\n name: project.name,\n url: project.url,\n slug: project.slug,\n };\n}\n\nexport function gitRepositoryToDto(repo: GitRepository): DTOGitRepository {\n return {\n id: repo.id,\n name: repo.name,\n url: repo.url,\n slug: repo.slug,\n defaultBranch: repo.defaultBranch,\n };\n}\n\nexport function gitBranchToDto(branch: GitBranch): DTOGitBranch {\n return {\n name: branch.name,\n lastCommitId: branch.lastCommitId,\n };\n}\n","import { ExtendedIntegration, IntegrationCredentials } from \"@supernova-studio/model\";\nimport { DTOIntegration, DTOIntegrationCredentials } from \"../../dto\";\n\nexport function integrationToDto(integration: ExtendedIntegration): DTOIntegration {\n return {\n id: integration.id,\n workspaceId: integration.workspaceId,\n type: integration.type,\n createdAt: integration.createdAt,\n integrationCredentials: integration.integrationCredentials?.map(integrationCredentialToDto),\n integrationDesignSystems: integration.integrationDesignSystems ?? undefined,\n };\n}\n\nexport function integrationCredentialToDto(credential: IntegrationCredentials): DTOIntegrationCredentials {\n return {\n id: credential.id,\n\n createdAt: credential.createdAt,\n refreshedAt: credential.refreshedAt,\n expiresAt: credential.expiresAt,\n\n integrationId: credential.integrationId,\n type: credential.type,\n\n userId: credential.userId,\n user: credential.user,\n\n customUrl: credential.customUrl,\n\n profile: credential.profile,\n tokenName: credential.tokenName,\n username: credential.username,\n appInstallationId: credential.appInstallationId,\n state: credential.state,\n };\n}\n","import { z } from \"zod\";\nimport { ObjectMeta } from \"@supernova-studio/model\";\n\nexport const DTOBrand = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n persistentId: z.string(),\n meta: ObjectMeta,\n});\n\nexport const DTOBrandGetResponse = z.object({ brand: DTOBrand });\n\nexport const DTOBrandCreateResponse = z.object({\n brand: DTOBrand,\n});\n\nexport const DTOBrandsListResponse = z.object({ brands: z.array(DTOBrand) });\n\nexport type DTOBrand = z.infer<typeof DTOBrand>;\nexport type DTOBrandGetResponse = z.infer<typeof DTOBrandGetResponse>;\nexport type DTOBrandCreateResponse = z.infer<typeof DTOBrandCreateResponse>;\nexport type DTOBrandsListResponse = z.infer<typeof DTOBrandsListResponse>;\n","import { z } from \"zod\";\nimport {\n DataSourceFigmaState,\n DataSourceRemoteType,\n DataSourceAutoImportMode,\n DataSourceStats,\n SourceImportSummary,\n DataSourceUploadRemoteSource,\n DataSourceUploadImportMetadata,\n DataSourceFigmaScope,\n} from \"@supernova-studio/model\";\n\nconst DTODataSourceFigmaFileVersion = z.object({\n id: z.string(),\n created_at: z.coerce.date(),\n label: z.string(),\n description: z.string(),\n});\n\nexport const DTODataSourceFigmaCloud = z.object({\n fileId: z.string(),\n state: DataSourceFigmaState,\n autoImportMode: DataSourceAutoImportMode,\n fileThumbnailUrl: z.string().optional(),\n lastImportResult: SourceImportSummary.nullish(),\n lastImportedAt: z.date().nullish(),\n lastImportedVersion: DTODataSourceFigmaFileVersion.nullish(),\n lastUpdatesCheckedAt: z.date().nullish(),\n ownerId: z.string(),\n ownerUserName: z.string().optional(),\n preferredCredentialId: z.string().optional(),\n stats: DataSourceStats,\n});\n\nexport const DTODataSourceFigma = z.object({\n id: z.string(),\n type: z.literal(DataSourceRemoteType.Enum.Figma),\n fileName: z.string(),\n scope: DataSourceFigmaScope,\n brandId: z.string(),\n themeId: z.string().nullish(),\n cloud: DTODataSourceFigmaCloud.nullish(),\n tokenStudio: z.literal(null),\n upload: z.literal(null),\n figmaVariablesPlugin: z.literal(null),\n});\n\n// TS is not yet implemented in new BE\nexport const DTODataSourceTokenStudio = z.object({\n id: z.string(),\n type: z.literal(DataSourceRemoteType.Enum.TokenStudio),\n fileName: z.string(),\n brandId: z.string(),\n themeId: z.string().nullish(),\n cloud: z.literal(null),\n tokenStudio: z.object({\n settings: z.object({\n dryRun: z.boolean(),\n verbose: z.boolean(),\n preciseCopy: z.boolean(),\n }),\n connectionName: z.string(),\n lastImportedAt: z.date(),\n lastImportedResults: z.array(\n z.object({\n mapping: z.object({\n tokenSets: z.array(z.string()),\n supernovaBrand: z.string(),\n supernovaTheme: z.string().optional(),\n }),\n isFailed: z.boolean(),\n tokensCreated: z.number(),\n tokensDeleted: z.number(),\n tokensUpdated: z.number(),\n })\n ),\n }),\n upload: z.literal(null),\n figmaVariablesPlugin: z.literal(null),\n});\n\nexport const DTODataSourceFigmaVariablesPlugin = z.object({\n id: z.string(),\n type: z.literal(DataSourceRemoteType.Enum.FigmaVariablesPlugin),\n fileName: z.string(),\n brandId: z.string(),\n themeId: z.literal(null),\n cloud: z.literal(null),\n tokenStudio: z.literal(null),\n upload: z.object({\n remoteId: z.string(),\n remoteSourceType: DataSourceUploadRemoteSource,\n lastImportedAt: z.date().optional(),\n lastImportMetadata: DataSourceUploadImportMetadata.optional(),\n }),\n figmaVariablesPlugin: z.object({\n fileId: z.string(),\n lastImportedAt: z.date().optional(),\n lastImportMetadata: DataSourceUploadImportMetadata.optional(),\n }),\n});\n\nexport const DTODataSource = z.discriminatedUnion(\"type\", [\n DTODataSourceFigma,\n DTODataSourceFigmaVariablesPlugin,\n DTODataSourceTokenStudio,\n]);\n\nexport const DTODataSourcesListResponse = z.object({\n sources: z.array(DTODataSource),\n});\n\nexport const DTODataSourceCreationResponse = z.object({\n source: DTODataSource,\n});\n\nexport type DTODataSourceFigma = z.infer<typeof DTODataSourceFigma>;\nexport type DTODataSourceTokenStudio = z.infer<typeof DTODataSourceTokenStudio>;\nexport type DTODataSourceFigmaVariablesPlugin = z.infer<typeof DTODataSourceFigmaVariablesPlugin>;\nexport type DTODataSource = z.infer<typeof DTODataSource>;\nexport type DTODataSourceCreationResponse = z.infer<typeof DTODataSourceCreationResponse>;\nexport type DTODataSourcesListResponse = z.infer<typeof DTODataSourcesListResponse>;\n","import { DesignSystem, ObjectMeta } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\n//\n// Read\n//\n\nexport const DTODesignSystem = DesignSystem.omit({\n name: true,\n description: true,\n docExporterId: true,\n}).extend({\n meta: ObjectMeta,\n docExporterId: z.string(),\n sources: z.array(z.any()),\n});\n\nexport type DTODesignSystem = z.infer<typeof DTODesignSystem>;\n","import { z } from \"zod\";\n\nexport const DTODiffCountBase = z.object({\n created: z.number(),\n updated: z.number(),\n deleted: z.number(),\n});\n\nexport const DTODesignElementsDataDiffResponse = z.object({\n tokens: DTODiffCountBase,\n assets: DTODiffCountBase,\n});\n\nexport type DTODesignElementsDataDiffResponse = z.infer<typeof DTODesignElementsDataDiffResponse>;\n","import { z } from \"zod\";\n\nexport const DTOExporterProperty = z.any({});\n\nexport const DTOExporterPropertyListResponse = z.object({ items: z.array(DTOExporterProperty) });\n\nexport type DTOExporterProperty = z.infer<typeof DTOExporterProperty>;\nexport type DTOExporterPropertyListResponse = z.infer<typeof DTOExporterPropertyListResponse>;\n","import { z } from \"zod\";\nimport { ObjectMeta, VersionCreationJob, OmitStrict } from \"@supernova-studio/model\";\nimport { DTOCreateVersionInput } from \"../../payloads\";\n\nexport const DTODesignSystemVersion = z.object({\n id: z.string(),\n createdAt: z.date(),\n meta: ObjectMeta,\n version: z.string(),\n isReadonly: z.boolean(),\n changeLog: z.string(),\n designSystemId: z.string(),\n});\n\nexport const DTODesignSystemVersionsListResponse = z.object({\n designSystemVersions: z.array(DTODesignSystemVersion),\n});\n\nexport const DTODesignSystemVersionGetResponse = z.object({\n designSystemVersion: DTODesignSystemVersion,\n});\n\nexport const DTODesignSystemVersionCreationResponse = z.object({\n meta: ObjectMeta,\n version: z.string(),\n changeLog: z.string(),\n isReadOnly: z.boolean(),\n designSystemId: z.string(),\n jobId: z.string(),\n})\n\nexport const VersionSQSPayload = z.object({\n jobId: z.string(),\n designSystemId: z.string(),\n input: DTOCreateVersionInput,\n});\n\nexport type VersionSQSPayload = z.infer<typeof VersionSQSPayload>;\n\nexport type DTODesignSystemVersionCreationResponse = z.infer<typeof DTODesignSystemVersionCreationResponse>;\nexport type DTODesignSystemVersion = z.infer<typeof DTODesignSystemVersion>;\nexport type DTODesignSystemVersionsListResponse = z.infer<typeof DTODesignSystemVersionsListResponse>;\nexport type DTODesignSystemVersionGetResponse = z.infer<typeof DTODesignSystemVersionGetResponse>;\n\n\nexport const DTODesignSystemVersionJobsResponse = z.object({\n jobs: z.array(VersionCreationJob)\n})\n\nexport type DTODesignSystemVersionJobsResponse = z.infer<typeof DTODesignSystemVersionJobsResponse>;\n\n// Creation job status response\nexport const DTODesignSystemVersionJobStatusResponse = z.object({\n job: VersionCreationJob\n});\n\nexport type DTODesignSystemVersionJobStatusResponse = z.infer<typeof DTODesignSystemVersionJobStatusResponse>;\n","import { z } from \"zod\";\n\nexport const DTOCreateBrandInput = z.object({\n persistentId: z.string().uuid(),\n meta: z.object({\n name: z.string(),\n description: z.string(),\n }),\n});\n\nexport type DTOCreateBrandInput = z.infer<typeof DTOCreateBrandInput>;\n","import { z } from \"zod\";\n\nexport const ObjectMeta = z.object({\n name: z.string().max(150).optional(),\n description: z.string().max(2000).optional(),\n});\n\nexport function validateDesignSystemVersion(version: string) {\n const urlCompliantRegex = /^[a-zA-Z0-9+.-]+$/;\n return urlCompliantRegex.test(version);\n}\n\nexport const DTOCreateVersionInput = z.object({\n meta: ObjectMeta,\n version: z.string().refine(validateDesignSystemVersion, {\n message: \"Invalid semantic versioning format\",\n }),\n changeLog: z.string().optional(),\n});\n\nexport type DTOCreateVersionInput = z.infer<typeof DTOCreateVersionInput>;\n\nexport const DTOUpdateVersionInput = z.object({\n meta: ObjectMeta,\n version: z.string(), // required for PUT, but not editable\n changeLog: z.string(),\n});\n\nexport type DTOUpdateVersionInput = z.infer<typeof DTOUpdateVersionInput>;\n","import { z } from \"zod\";\nimport { DTOPageBlockDefinition } from \"../../dto/documentation/block-definition\";\n\n//\n// Read\n//\n\nexport const DTOGetBlockDefinitionsOutput = z.object({\n definitions: z.array(DTOPageBlockDefinition),\n});\n\nexport type DTOGetBlockDefinitionsOutput = z.infer<typeof DTOGetBlockDefinitionsOutput>;\n","import {\n PageBlockColorV2,\n PageBlockDefinition,\n PageBlockDefinitionBehavior,\n PageBlockDefinitionItem,\n PageBlockDefinitionLayout,\n PageBlockDefinitionProperty,\n PageBlockDefinitionVariant,\n} from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTOPageBlockDefinitionBehavior = PageBlockDefinitionBehavior;\nexport const DTOPageBlockDefinitionItem = PageBlockDefinitionItem;\nexport const DTOPageBlockDefinitionLayout = PageBlockDefinitionLayout;\nexport const DTOPageBlockDefinitionVariant = PageBlockDefinitionVariant;\nexport const DTOPageBlockDefinitionProperty = PageBlockDefinitionProperty;\nexport const DTOPageBlockColorV2 = PageBlockColorV2;\n\nexport const DTOPageBlockDefinition = PageBlockDefinition;\n\nexport type DTOPageBlockDefinitionBehavior = z.infer<typeof DTOPageBlockDefinitionBehavior>;\nexport type DTOPageBlockDefinitionItem = z.infer<typeof DTOPageBlockDefinitionItem>;\nexport type DTOPageBlockDefinitionLayout = z.infer<typeof DTOPageBlockDefinitionLayout>;\nexport type DTOPageBlockDefinitionVariant = z.infer<typeof DTOPageBlockDefinitionVariant>;\nexport type DTOPageBlockDefinitionProperty = z.infer<typeof DTOPageBlockDefinitionProperty>;\nexport type DTOPageBlockColorV2 = z.infer<typeof DTOPageBlockColorV2>;\n\nexport type DTOPageBlockDefinition = z.infer<typeof DTOPageBlockDefinition>;\n","import { z } from \"zod\";\n\nexport const DTODocumentationPublishTypeQueryParams = z.object({\n environment: z.enum([\"Live\", \"Preview\"]),\n});\n\nexport type DTODocumentationPublishTypeQueryParams = z.infer<typeof DTODocumentationPublishTypeQueryParams>;\n","import {\n ExporterDestinationAzure,\n ExporterDestinationBitbucket,\n ExporterDestinationDocs,\n ExporterDestinationGithub,\n ExporterDestinationGitlab,\n ExporterDestinationS3,\n GitObjectsQuery,\n PipelineDestinationType,\n PipelineEventType,\n} from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTOPipelineCreateBody = z.object({\n name: z.string(),\n exporterId: z.string(),\n designSystemId: z.string(),\n isEnabled: z.boolean(),\n eventType: PipelineEventType,\n brandPersistentId: z.string().optional(),\n themePersistentId: z.string().optional(),\n\n destination: PipelineDestinationType.optional(),\n gitQuery: GitObjectsQuery,\n destinations: z.object({\n s3: ExporterDestinationS3.nullish(),\n azure: ExporterDestinationAzure.nullish(),\n bitbucket: ExporterDestinationBitbucket.nullish(),\n github: ExporterDestinationGithub.nullish(),\n gitlab: ExporterDestinationGitlab.nullish(),\n documentation: ExporterDestinationDocs.nullish(),\n webhookUrl: z.string().nullish(),\n }),\n});\n\nexport const DTOPipelineUpdateBody = DTOPipelineCreateBody.extend({\n id: z.string(),\n});\n\nexport const DTOPipelineTriggerBody = z.object({\n designSystemVersionId: z.string(),\n});\n\nexport type DTOPipelineCreateBody = z.infer<typeof DTOPipelineCreateBody>;\nexport type DTOPipelineUpdateBody = z.infer<typeof DTOPipelineUpdateBody>;\nexport type DTOPipelineTriggerBody = z.infer<typeof DTOPipelineTriggerBody>;\n","import { z } from \"zod\";\n\nexport const DTOLiveblocksAuthRequest = z.object({\n room: z.string().optional(),\n});\n\nexport type DTOLiveblocksAuthRequest = z.infer<typeof DTOLiveblocksAuthRequest>;\n","import { UserNotificationSettings } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTOUpdateUserNotificationSettingsPayload = z.object({\n notificationSettings: UserNotificationSettings,\n});\n\nexport type DTOUpdateUserNotificationSettingsPayload = z.infer<typeof DTOUpdateUserNotificationSettingsPayload>;\n\n\nexport const DTOUserNotificationSettingsResponse = z.object({\n userId: z.string(),\n workspaceId: z.string(),\n notificationSettings: UserNotificationSettings,\n});\n\nexport type DTOUserNotificationSettingsResponse = z.infer<typeof DTOUserNotificationSettingsResponse>;\n","import { UserProfileUpdate } from \"@supernova-studio/model\";\n\n\nexport const DTOUserProfileUpdatePayload = UserProfileUpdate;\n","import { z } from \"zod\";\nimport { SsoProvider, WorkspaceIpSettings, WorkspaceProfile } from \"@supernova-studio/model\";\n\nconst prohibitedSsoKeys = [\"providerId\", \"metadataXml\", \"emailDomains\"];\n\nexport function validateSsoPayload(ssoPayload: Partial<SsoProvider> | undefined) {\n const keys = [];\n let valid = true;\n if (!ssoPayload) {\n valid = true;\n return {\n valid,\n keys: [],\n };\n }\n for (const key of Object.keys(ssoPayload)) {\n if (prohibitedSsoKeys.includes(key)) {\n keys.push(key);\n valid = false;\n }\n }\n return {\n valid,\n keys,\n };\n}\n\nexport const NpmRegistryInput = z.object({\n enabledScopes: z.array(z.string()),\n customRegistryUrl: z.string().optional(),\n bypassProxy: z.boolean().optional(),\n npmProxyRegistryConfigId: z.string().optional(),\n npmProxyVersion: z.number().optional(),\n registryType: z.string(),\n authType: z.string(),\n authHeaderName: z.string(),\n authHeaderValue: z.string(),\n accessToken: z.string(),\n username: z.string(),\n password: z.string(),\n});\n\nexport const WorkspaceConfigurationPayload = z.object({\n ipWhitelist: WorkspaceIpSettings.partial().optional(),\n sso: SsoProvider.partial().optional(),\n npmRegistrySettings: NpmRegistryInput.partial().optional(),\n profile: WorkspaceProfile.partial().optional(),\n});\n\nexport type WorkspaceConfigurationPayload = z.infer<typeof WorkspaceConfigurationPayload>;\n","import { IntegrationToken, IntegrationType } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTOWorkspaceIntegrationOauthInput = z.object({\n type: IntegrationType,\n});\n\nexport type DTOWorkspaceIntegrationOauthInput = z.infer<typeof DTOWorkspaceIntegrationOauthInput>;\n\nexport const DTOWorkspaceIntegrationPATInput = z.object({\n userId: z.string(),\n type: IntegrationType,\n token: IntegrationToken,\n});\n\nexport type DTOWorkspaceIntegrationPATInput = z.infer<typeof DTOWorkspaceIntegrationPATInput>;\n\nexport const DTOWorkspaceIntegrationGetGitObjectsInput = z.object({\n organization: z.string().optional(), // Azure Organization | Bitbucket Workspace slug | Gitlab Group and Sub-Groups | Github Account (User or Organization)\n project: z.string().optional(), // Only for Bitbucket and Azure\n repository: z.string().optional(), // For all providers. Pay attention for Gitlab, they call repositories \"projects\".\n branch: z.string().optional(), // For all providers, useful for PR creations.\n user: z.string().optional(), // Only for Gitlab User Repositories\n});\n\nexport type DTOWorkspaceIntegrationGetGitObjectsInput = z.infer<typeof DTOWorkspaceIntegrationGetGitObjectsInput>;\n","import { z } from \"zod\";\nimport { ElementPropertyTargetType, ElementViewBaseColumnType, ObjectMeta } from \"@supernova-studio/model\";\n\nexport const DTOElementViewColumnSharedAttributes = z.object({\n id: z.string(),\n persistentId: z.string(),\n width: z.number(),\n});\n\nexport const DTOElementViewBasePropertyColumn = DTOElementViewColumnSharedAttributes.extend({\n type: z.literal(\"BaseProperty\"),\n basePropertyType: ElementViewBaseColumnType,\n});\n\nexport const DTOElementViewPropertyDefinitionColumn = DTOElementViewColumnSharedAttributes.extend({\n type: z.literal(\"PropertyDefinition\"),\n propertyDefinitionId: z.string(),\n});\n\nexport const DTOElementViewThemeColumn = DTOElementViewColumnSharedAttributes.extend({\n type: z.literal(\"Theme\"),\n themeId: z.string(),\n});\n\nexport const DTOElementViewColumn = z.discriminatedUnion(\"type\", [\n DTOElementViewBasePropertyColumn,\n DTOElementViewPropertyDefinitionColumn,\n DTOElementViewThemeColumn,\n]);\n\nexport const DTOElementView = z.object({\n meta: ObjectMeta,\n persistentId: z.string(),\n targetElementType: ElementPropertyTargetType,\n id: z.string(),\n isDefault: z.boolean(),\n columns: z.array(DTOElementViewColumn),\n});\n\nexport const DTOElementViewsListResponse = z.object({\n elementDataViews: z.array(DTOElementView),\n});\n\nexport type DTOElementView = z.infer<typeof DTOElementView>;\nexport type DTOElementViewsListResponse = z.infer<typeof DTOElementViewsListResponse>;\n","import { DocumentationPageAnchor } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\n//\n// Read\n//\n\nexport const DTODocumentationPageAnchor = DocumentationPageAnchor;\n\nexport const DTOGetDocumentationPageAnchorsResponse = z.object({\n anchors: z.array(DTODocumentationPageAnchor),\n});\n\nexport type DTODocumentationPageAnchor = z.infer<typeof DTODocumentationPageAnchor>;\nexport type DTOGetDocumentationPageAnchorsResponse = z.infer<typeof DTOGetDocumentationPageAnchorsResponse>;\n","import { PageBlockItemV2 } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTOPageBlockItemV2 = PageBlockItemV2;\n\nexport type DTOPageBlockItemV2 = z.infer<typeof DTOPageBlockItemV2>;\n","import { DesignElementSnapshotReason } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\nimport { DTODocumentationPageV2 } from \"../elements/documentation/page-v2\";\n\nexport const DTODocumentationPageSnapshot = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n\n createdAt: z.string(),\n updatedAt: z.string(),\n\n documentationPage: DTODocumentationPageV2,\n pageContentHash: z.string(),\n\n reason: DesignElementSnapshotReason,\n});\n\nexport type DTODocumentationPageSnapshot = z.infer<typeof DTODocumentationPageSnapshot>;\n","import { z } from \"zod\";\nimport { DTODocumentationDraftState } from \"./draft-state\";\nimport { DTODocumentationItemConfigurationV2 } from \"./item-configuration-v2\";\n\n//\n// Read\n//\n\nexport const DTODocumentationPageV2 = z.object({\n id: z.string(),\n persistentId: z.string(),\n\n designSystemVersionId: z.string(),\n\n title: z.string(),\n configuration: DTODocumentationItemConfigurationV2,\n\n shortPersistentId: z.string(),\n\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n\n path: z.string(),\n\n /** Defined when a page has changed since last publish and can be included into a partial publish */\n draftState: DTODocumentationDraftState.optional(),\n\n // Backward compatibility\n type: z.literal(\"Page\"),\n});\n\nexport type DTODocumentationPageV2 = z.infer<typeof DTODocumentationPageV2>;\n\n//\n// Write\n//\n\nexport const DTOCreateDocumentationPageInputV2 = z.object({\n // Identifier\n persistentId: z.string().uuid(),\n\n // Page properties\n title: z.string(),\n configuration: DTODocumentationItemConfigurationV2.partial().optional(),\n\n // Page placement properties\n parentPersistentId: z.string().uuid(),\n afterPersistentId: z.string().uuid().nullish(),\n});\n\nexport const DTOUpdateDocumentationPageInputV2 = z.object({\n // Identifier of the group to update\n id: z.string(),\n\n // Page properties\n title: z.string().optional(),\n configuration: DTODocumentationItemConfigurationV2.partial().optional(),\n});\n\nexport const DTOMoveDocumentationPageInputV2 = z.object({\n // Identifier of the group to update\n id: z.string(),\n\n // Page placement properties\n parentPersistentId: z.string().uuid(),\n afterPersistentId: z.string().uuid().nullish(),\n});\n\nexport const DTODuplicateDocumentationPageInputV2 = z.object({\n // Identifier of the page to duplicate from\n id: z.string(),\n\n // New page persistent id\n persistentId: z.string().uuid(),\n\n // Page placement properties\n parentPersistentId: z.string().uuid(),\n afterPersistentId: z.string().uuid().nullish(),\n});\n\nexport const DTODeleteDocumentationPageInputV2 = z.object({\n // Identifier\n id: z.string(),\n});\n\nexport const DTORestoreDocumentationPageInput = z.object({\n persistentId: z.string(),\n snapshotId: z.string().optional(),\n});\n\nexport const DTORestoreDocumentationGroupInput = z.object({\n persistentId: z.string(),\n snapshotId: z.string().optional(),\n});\n\nexport type DTOCreateDocumentationPageInputV2 = z.infer<typeof DTOCreateDocumentationPageInputV2>;\nexport type DTOUpdateDocumentationPageInputV2 = z.infer<typeof DTOUpdateDocumentationPageInputV2>;\nexport type DTOMoveDocumentationPageInputV2 = z.infer<typeof DTOMoveDocumentationPageInputV2>;\nexport type DTODuplicateDocumentationPageInputV2 = z.infer<typeof DTODuplicateDocumentationPageInputV2>;\nexport type DTODeleteDocumentationPageInputV2 = z.infer<typeof DTODeleteDocumentationPageInputV2>;\nexport type DTORestoreDocumentationPageInput = z.infer<typeof DTORestoreDocumentationPageInput>;\nexport type DTORestoreDocumentationGroupInput = z.infer<typeof DTORestoreDocumentationGroupInput>;\n","import { z } from \"zod\";\nimport { DTODocumentationItemConfigurationV2 } from \"./item-configuration-v2\";\n\nexport const DTODocumentationDraftChangeType = z.enum([\"Created\", \"Updated\", \"Deleted\"]);\n\nexport const DTODocumentationDraftStateCreated = z.object({\n changeType: z.literal(DTODocumentationDraftChangeType.enum.Created),\n});\n\nexport const DTODocumentationDraftStateUpdated = z.object({\n changeType: z.literal(DTODocumentationDraftChangeType.enum.Updated),\n changes: z.object({\n previousTitle: z.string().optional(),\n previousConfiguration: DTODocumentationItemConfigurationV2.optional(),\n previousContentHash: z.string().optional(),\n }),\n});\n\nexport const DTODocumentationDraftStateDeleted = z.object({\n changeType: z.literal(DTODocumentationDraftChangeType.enum.Deleted),\n});\n\nexport const DTODocumentationDraftState = z.discriminatedUnion(\"changeType\", [\n DTODocumentationDraftStateCreated,\n DTODocumentationDraftStateUpdated,\n DTODocumentationDraftStateDeleted,\n]);\n\nexport type DTODocumentationDraftChangeType = z.infer<typeof DTODocumentationDraftChangeType>;\n\nexport type DTODocumentationDraftStateCreated = z.infer<typeof DTODocumentationDraftStateCreated>;\nexport type DTODocumentationDraftStateUpdated = z.infer<typeof DTODocumentationDraftStateUpdated>;\nexport type DTODocumentationDraftStateDeleted = z.infer<typeof DTODocumentationDraftStateDeleted>;\n\nexport type DTODocumentationDraftState = z.infer<typeof DTODocumentationDraftState>;\n","import { DocumentationItemHeaderV2 } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTODocumentationItemHeaderV2 = DocumentationItemHeaderV2;\n\nexport const DTODocumentationItemConfigurationV2 = z.object({\n showSidebar: z.boolean(),\n isPrivate: z.boolean(),\n isHidden: z.boolean(),\n header: DTODocumentationItemHeaderV2,\n});\n\nexport type DTODocumentationItemHeaderV2 = z.infer<typeof DTODocumentationItemHeaderV2>;\nexport type DTODocumentationItemConfigurationV2 = z.infer<typeof DTODocumentationItemConfigurationV2>;\n","import { DocumentationLinkPreview } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\n//\n// Read\n//\n\nexport const DTODocumentationLinkPreviewResponse = z.object({\n linkPreview: DocumentationLinkPreview,\n});\n\nexport type DTODocumentationLinkPreviewResponse = z.infer<typeof DTODocumentationLinkPreviewResponse>;\n\n//\n// Write\n//\n\nexport const DTODocumentationLinkPreviewRequest = z.object({\n url: z.string().optional(),\n documentationItemPersistentId: z.string().optional(),\n});\n\nexport type DTODocumentationLinkPreviewRequest = z.infer<typeof DTODocumentationLinkPreviewRequest>;\n","import { PublishedDocEnvironment } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\nimport { DTOExportJob } from \"../export\";\n\nexport const DTOPublishDocumentationRequest = z.object({\n environment: PublishedDocEnvironment,\n\n /**\n * If defined, this allows narrowing down what is published to a set of specific pages and groups\n * If undefined, everything will be published.\n */\n changes: z\n .object({\n pagePersistentIds: z.string().array(),\n groupPersistentIds: z.string().array(),\n })\n .optional(),\n});\n\nexport const DTOPublishDocumentationResponse = z.object({\n job: DTOExportJob,\n});\n\nexport type DTOPublishDocumentationRequest = z.infer<typeof DTOPublishDocumentationRequest>;\nexport type DTOPublishDocumentationResponse = z.infer<typeof DTOPublishDocumentationResponse>;\n","import {\n PulsarContributionConfigurationProperty,\n PulsarContributionVariant,\n PulsarCustomBlock,\n} from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\n//\n// Read\n//\n\nexport const DTOExporterType = z.enum([\"documentation\", \"code\"]);\nexport const DTOExporterSource = z.enum([\"git\", \"upload\"]);\nexport const DTOExporterMembershipRole = z.enum([\"Owner\", \"OwnerArchived\", \"User\"]);\n\nexport const DTOExporter = z.object({\n id: z.string(),\n name: z.string(),\n isPrivate: z.boolean(),\n exporterType: DTOExporterType,\n isDefaultDocumentationExporter: z.boolean(),\n\n iconURL: z.string().optional(),\n configurationProperties: PulsarContributionConfigurationProperty.array(),\n customBlocks: PulsarCustomBlock.array(),\n blockVariants: z.record(z.string(), PulsarContributionVariant.array()),\n\n usesBrands: z.boolean(),\n usesThemes: z.boolean(),\n\n source: DTOExporterSource,\n\n gitUrl: z.string().optional(),\n gitBranch: z.string().optional(),\n gitDirectory: z.string().optional(),\n});\n\nexport const DTOExporterMembership = z.object({\n workspaceId: z.string(),\n exporterId: z.string(),\n role: DTOExporterMembershipRole,\n});\n\nexport const DTOExporterCreateOutput = z.object({\n exporter: DTOExporter,\n membership: DTOExporterMembership,\n});\n\nexport type DTOExporterType = z.infer<typeof DTOExporterType>;\nexport type DTOExporterSource = z.infer<typeof DTOExporterSource>;\nexport type DTOExporterMembershipRole = z.infer<typeof DTOExporterMembershipRole>;\nexport type DTOExporter = z.infer<typeof DTOExporter>;\nexport type DTOExporterMembership = z.infer<typeof DTOExporterMembership>;\nexport type DTOExporterCreateOutput = z.infer<typeof DTOExporterCreateOutput>;\n\n//\n// Write\n//\n\nexport const DTOExporterGitProviderEnum = z.enum([\"github\", \"gitlab\", \"bitbucket\", \"azure\"]);\n\nexport const DTOExporterCreateInput = z.object({\n url: z.string(),\n provider: DTOExporterGitProviderEnum,\n});\n\nexport const DTOExporterUpdateInput = z.object({\n url: z.string().optional(),\n});\n\nexport type DTOExporterGitProviderEnum = z.infer<typeof DTOExporterGitProviderEnum>;\nexport type DTOExporterCreateInput = z.infer<typeof DTOExporterCreateInput>;\nexport type DTOExporterUpdateInput = z.infer<typeof DTOExporterUpdateInput>;\n","import {\n ExportJobResult,\n ExportJobStatus,\n ExporterDestinationAzure,\n ExporterDestinationBitbucket,\n ExporterDestinationDocs,\n ExporterDestinationGithub,\n ExporterDestinationGitlab,\n ExporterDestinationS3,\n ObjectMeta,\n} from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTOExportJobCreatedBy = z.object({\n userId: z.string(),\n userName: z.string(),\n});\n\nexport const DTOExportJobDesignSystemPreview = z.object({\n id: z.string(),\n meta: ObjectMeta,\n});\n\nexport const DTOExportJobDesignSystemVersionPreview = z.object({\n id: z.string(),\n meta: ObjectMeta,\n version: z.string(),\n isReadonly: z.boolean(),\n});\n\nexport const DTOExportJobDestinations = z.object({\n s3: ExporterDestinationS3.optional(),\n azure: ExporterDestinationAzure.optional(),\n bitbucket: ExporterDestinationBitbucket.optional(),\n github: ExporterDestinationGithub.optional(),\n gitlab: ExporterDestinationGitlab.optional(),\n documentation: ExporterDestinationDocs.optional(),\n webhookUrl: z.string().optional(),\n});\n\nexport const DTOExportJob = z.object({\n id: z.string(),\n\n createdAt: z.coerce.date(),\n finishedAt: z.coerce.date().optional(),\n\n index: z.number().optional(),\n status: ExportJobStatus,\n estimatedExecutionTime: z.number().optional(),\n\n createdBy: DTOExportJobCreatedBy.optional(),\n designSystem: DTOExportJobDesignSystemPreview,\n designSystemVersion: DTOExportJobDesignSystemVersionPreview,\n\n destinations: DTOExportJobDestinations,\n\n exporterId: z.string(),\n scheduleId: z.string().optional(),\n\n result: ExportJobResult.optional(),\n\n brandPersistentId: z.string().optional(),\n themePersistentId: z.string().optional(),\n});\n\nexport const DTOExportJobResponse = z.object({\n job: DTOExportJob,\n});\n\nexport type DTOExportJobCreatedBy = z.infer<typeof DTOExportJobCreatedBy>;\nexport type DTOExportJobDesignSystemPreview = z.infer<typeof DTOExportJobDesignSystemPreview>;\nexport type DTOExportJobDesignSystemVersionPreview = z.infer<typeof DTOExportJobDesignSystemVersionPreview>;\nexport type DTOExportJobDestinations = z.infer<typeof DTOExportJobDestinations>;\nexport type DTOExportJob = z.infer<typeof DTOExportJob>;\nexport type DTOExportJobResponse = z.infer<typeof DTOExportJobResponse>;\n","import { ExportDestinationsMap, PipelineEventType } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\nimport { DTOExportJob } from \"./job\";\n\nexport const DTOPipeline = z.object({\n id: z.string(),\n name: z.string(),\n eventType: PipelineEventType,\n isEnabled: z.boolean(),\n workspaceId: z.string(),\n designSystemId: z.string(),\n exporterId: z.string(),\n brandPersistentId: z.string().optional(),\n themePersistentId: z.string().optional(),\n ...ExportDestinationsMap.shape,\n\n latestJobs: DTOExportJob.array(),\n});\n\nexport type DTOPipeline = z.infer<typeof DTOPipeline>;\n","import { z } from \"zod\";\nimport {\n DTOCreateDocumentationGroupInput,\n DTOCreateDocumentationTabInput,\n DTODeleteDocumentationGroupInput,\n DTODeleteDocumentationTabGroupInput,\n DTODuplicateDocumentationGroupInput,\n DTOMoveDocumentationGroupInput,\n DTOUpdateDocumentationGroupInput,\n} from \"./group-v2\";\n\n//\n// Read\n//\n\nconst SuccessPayload = z.object({\n success: z.literal(true),\n});\n\nexport const DTODocumentationGroupCreateActionOutputV2 = z.object({\n type: z.literal(\"DocumentationGroupCreate\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationTabCreateActionOutputV2 = z.object({\n type: z.literal(\"DocumentationTabCreate\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationGroupUpdateActionOutputV2 = z.object({\n type: z.literal(\"DocumentationGroupUpdate\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationGroupMoveActionOutputV2 = z.object({\n type: z.literal(\"DocumentationGroupMove\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationGroupDuplicateActionOutputV2 = z.object({\n type: z.literal(\"DocumentationGroupDuplicate\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationGroupDeleteActionOutputV2 = z.object({\n type: z.literal(\"DocumentationGroupDelete\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationTabGroupDeleteActionOutputV2 = z.object({\n type: z.literal(\"DocumentationTabGroupDelete\"),\n output: SuccessPayload,\n});\n\nexport type DTODocumentationGroupCreateActionOutputV2 = z.infer<typeof DTODocumentationGroupCreateActionOutputV2>;\nexport type DTODocumentationTabCreateActionOutputV2 = z.infer<typeof DTODocumentationTabCreateActionOutputV2>;\nexport type DTODocumentationGroupUpdateActionOutputV2 = z.infer<typeof DTODocumentationGroupUpdateActionOutputV2>;\nexport type DTODocumentationGroupMoveActionOutputV2 = z.infer<typeof DTODocumentationGroupMoveActionOutputV2>;\nexport type DTODocumentationGroupDuplicateActionOutputV2 = z.infer<typeof DTODocumentationGroupDuplicateActionOutputV2>;\nexport type DTODocumentationGroupDeleteActionOutputV2 = z.infer<typeof DTODocumentationGroupDeleteActionOutputV2>;\nexport type DTODocumentationTabGroupDeleteActionOutputV2 = z.infer<typeof DTODocumentationTabGroupDeleteActionOutputV2>;\n\n//\n// Write\n//\n\nexport const DTODocumentationGroupCreateActionInputV2 = z.object({\n type: z.literal(\"DocumentationGroupCreate\"),\n input: DTOCreateDocumentationGroupInput,\n});\n\nexport const DTODocumentationTabCreateActionInputV2 = z.object({\n type: z.literal(\"DocumentationTabCreate\"),\n input: DTOCreateDocumentationTabInput,\n});\n\nexport const DTODocumentationGroupUpdateActionInputV2 = z.object({\n type: z.literal(\"DocumentationGroupUpdate\"),\n input: DTOUpdateDocumentationGroupInput,\n});\n\nexport const DTODocumentationGroupMoveActionInputV2 = z.object({\n type: z.literal(\"DocumentationGroupMove\"),\n input: DTOMoveDocumentationGroupInput,\n});\n\nexport const DTODocumentationGroupDuplicateActionInputV2 = z.object({\n type: z.literal(\"DocumentationGroupDuplicate\"),\n input: DTODuplicateDocumentationGroupInput,\n});\n\nexport const DTODocumentationGroupDeleteActionInputV2 = z.object({\n type: z.literal(\"DocumentationGroupDelete\"),\n input: DTODeleteDocumentationGroupInput,\n});\n\nexport const DTODocumentationTabGroupDeleteActionInputV2 = z.object({\n type: z.literal(\"DocumentationTabGroupDelete\"),\n input: DTODeleteDocumentationTabGroupInput,\n});\n\nexport type DTODocumentationGroupCreateActionInputV2 = z.infer<typeof DTODocumentationGroupCreateActionInputV2>;\nexport type DTODocumentationTabGroupCreateActionInputV2 = z.infer<typeof DTODocumentationTabCreateActionInputV2>;\nexport type DTODocumentationGroupUpdateActionInputV2 = z.infer<typeof DTODocumentationGroupUpdateActionInputV2>;\nexport type DTODocumentationGroupMoveActionInputV2 = z.infer<typeof DTODocumentationGroupMoveActionInputV2>;\nexport type DTODocumentationGroupDuplicateActionInputV2 = z.infer<typeof DTODocumentationGroupDuplicateActionInputV2>;\nexport type DTODocumentationGroupDeleteActionInputV2 = z.infer<typeof DTODocumentationGroupDeleteActionInputV2>;\nexport type DTODocumentationTabGroupDeleteActionInputV2 = z.infer<typeof DTODocumentationTabGroupDeleteActionInputV2>;\n","import { DocumentationGroupBehavior, ElementGroup } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\nimport { DTODocumentationDraftState } from \"./draft-state\";\nimport { DTODocumentationItemConfigurationV2 } from \"./item-configuration-v2\";\n\n//\n// Read\n//\n\nexport const DTODocumentationGroupV2 = ElementGroup.omit({\n sortOrder: true,\n parentPersistentId: true,\n brandPersistentId: true,\n meta: true,\n childType: true,\n data: true,\n shortPersistentId: true,\n}).extend({\n title: z.string(),\n isRoot: z.boolean(),\n childrenIds: z.array(z.string()),\n groupBehavior: DocumentationGroupBehavior,\n shortPersistentId: z.string(),\n configuration: DTODocumentationItemConfigurationV2,\n type: z.literal(\"Group\"),\n\n /** Defined when a group has changed since last publish and can be included into a partial publish */\n draftState: DTODocumentationDraftState.optional(),\n});\n\nexport type DTODocumentationGroupV2 = z.infer<typeof DTODocumentationGroupV2>;\n\n//\n// Write\n//\n\nexport const DTOCreateDocumentationGroupInput = z.object({\n // Identifier\n persistentId: z.string().uuid(),\n\n // Group properties\n title: z.string(),\n configuration: DTODocumentationItemConfigurationV2.partial().optional(),\n\n // Group placement properties\n afterPersistentId: z.string().uuid().nullish(),\n parentPersistentId: z.string().uuid(),\n});\n\nexport const DTOUpdateDocumentationGroupInput = z.object({\n // Identifier of the group to update\n id: z.string(),\n\n // Group properties\n title: z.string().optional(),\n configuration: DTODocumentationItemConfigurationV2.partial().optional(),\n});\n\nexport const DTOMoveDocumentationGroupInput = z.object({\n // Identifier of the group to update\n id: z.string(),\n\n // Group placement properties\n parentPersistentId: z.string().uuid(),\n afterPersistentId: z.string().uuid().nullish(),\n});\n\nexport const DTODuplicateDocumentationGroupInput = z.object({\n // Identifier of the group to duplicate from\n id: z.string(),\n\n // New group persistent id\n persistentId: z.string().uuid(),\n\n // Group placement properties\n afterPersistentId: z.string().uuid().nullish(),\n parentPersistentId: z.string().uuid(),\n});\n\nexport const DTOCreateDocumentationTabInput = z.object({\n // New group persistent id\n persistentId: z.string().uuid(),\n\n // If this is page, we will attempt to convert it to tab\n // If this is tab group, we will add a new tab to it\n fromItemPersistentId: z.string(),\n tabName: z.string(),\n});\n\nexport const DTODeleteDocumentationTabGroupInput = z.object({\n // Deleted group id\n id: z.string(),\n});\n\nexport const DTODeleteDocumentationGroupInput = z.object({\n // Identifier\n id: z.string(),\n\n // Deletion options\n deleteSubtree: z.boolean().default(false),\n});\n\nexport type DTOCreateDocumentationGroupInput = z.infer<typeof DTOCreateDocumentationGroupInput>;\nexport type DTOUpdateDocumentationGroupInput = z.infer<typeof DTOUpdateDocumentationGroupInput>;\nexport type DTOMoveDocumentationGroupInput = z.infer<typeof DTOMoveDocumentationGroupInput>;\nexport type DTODuplicateDocumentationGroupInput = z.infer<typeof DTODuplicateDocumentationGroupInput>;\nexport type DTOCreateDocumentationTabInput = z.infer<typeof DTOCreateDocumentationTabInput>;\nexport type DTODeleteDocumentationTabGroupInput = z.infer<typeof DTODeleteDocumentationTabGroupInput>;\nexport type DTODeleteDocumentationGroupInput = z.infer<typeof DTODeleteDocumentationGroupInput>;\n","import { DocumentationGroupBehavior, ElementGroup } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\nimport { DTODocumentationItemConfigurationV1 } from \"./item-configuration-v1\";\n\n//\n// Read\n//\n\n/**\n * Structure DTO is element properties minus element data (in other words data required\n * to display the element in the left panel)\n */\nexport const DTODocumentationGroupStructureV1 = ElementGroup.omit({\n sortOrder: true,\n parentPersistentId: true,\n brandPersistentId: true,\n meta: true,\n childType: true,\n data: true,\n shortPersistentId: true,\n}).extend({\n title: z.string(),\n isRoot: z.boolean(),\n childrenIds: z.array(z.string()),\n groupBehavior: DocumentationGroupBehavior,\n shortPersistentId: z.string(),\n type: z.literal(\"Group\"),\n});\n\nexport const DTODocumentationGroupV1 = DTODocumentationGroupStructureV1.extend({\n configuration: DTODocumentationItemConfigurationV1,\n});\n\nexport type DTODocumentationGroupStructureV1 = z.infer<typeof DTODocumentationGroupStructureV1>;\nexport type DTODocumentationGroupV1 = z.infer<typeof DTODocumentationGroupV1>;\n","import { DocumentationItemHeaderV1 } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nconst DocumentationColorV1 = z.object({\n aliasTo: z.string().optional(),\n value: z.string().optional(),\n});\n\nconst DTODocumentationItemHeaderV1 = DocumentationItemHeaderV1.omit({\n foregroundColor: true,\n backgroundColor: true,\n}).extend({\n foregroundColor: DocumentationColorV1.optional(),\n backgroundColor: DocumentationColorV1.optional(),\n});\n\nexport const DTODocumentationItemConfigurationV1 = z.object({\n showSidebar: z.boolean(),\n isPrivate: z.boolean(),\n isHidden: z.boolean(),\n header: DTODocumentationItemHeaderV1,\n});\n\nexport type DTODocumentationItemConfigurationV1 = z.infer<typeof DTODocumentationItemConfigurationV1>;\n","import { z } from \"zod\";\nimport { DTODocumentationDraftState } from \"./draft-state\";\nimport { DTODocumentationGroupV2 } from \"./group-v2\";\nimport { DTODocumentationPageV2 } from \"./page-v2\";\n\nexport const DTODocumentationHierarchyV2 = z.object({\n pages: z.array(\n DTODocumentationPageV2.extend({\n /** Defined when a page has changed since last publish and can be included into a partial publish */\n draftState: DTODocumentationDraftState.optional(),\n })\n ),\n\n groups: z.array(\n DTODocumentationGroupV2.extend({\n /** Defined when a page has changed since last publish and can be included into a partial publish */\n draftState: DTODocumentationDraftState.optional(),\n })\n ),\n\n deletedPages: z.array(\n DTODocumentationPageV2.extend({\n /** Deleted page is always a draft change */\n draftState: DTODocumentationDraftState,\n })\n ),\n\n deletedGroups: z.array(\n DTODocumentationGroupV2.extend({\n /** Deleted page is always a draft change */\n draftState: DTODocumentationDraftState,\n })\n ),\n});\n\nexport type DTODocumentationHierarchyV2 = z.infer<typeof DTODocumentationHierarchyV2>;\n","import { z } from \"zod\";\nimport {\n DTOCreateDocumentationPageInputV2,\n DTODeleteDocumentationPageInputV2,\n DTODocumentationPageV2,\n DTODuplicateDocumentationPageInputV2,\n DTOMoveDocumentationPageInputV2,\n DTORestoreDocumentationGroupInput,\n DTORestoreDocumentationPageInput,\n DTOUpdateDocumentationPageInputV2,\n} from \"./page-v2\";\n\n//\n// Read\n//\n\nconst SuccessPayload = z.object({\n success: z.literal(true),\n});\n\nexport const DTODocumentationPageCreateActionOutputV2 = z.object({\n type: z.literal(\"DocumentationPageCreate\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationPageUpdateActionOutputV2 = z.object({\n type: z.literal(\"DocumentationPageUpdate\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationPageMoveActionOutputV2 = z.object({\n type: z.literal(\"DocumentationPageMove\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationPageDuplicateActionOutputV2 = z.object({\n type: z.literal(\"DocumentationPageDuplicate\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationPageDeleteActionOutputV2 = z.object({\n type: z.literal(\"DocumentationPageDelete\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationPageRestoreActionOutput = z.object({\n type: z.literal(\"DocumentationPageRestore\"),\n output: SuccessPayload,\n});\n\nexport const DTODocumentationGroupRestoreActionOutput = z.object({\n type: z.literal(\"DocumentationGroupRestore\"),\n output: SuccessPayload,\n});\n\nexport type DTODocumentationPageCreateActionOutputV2 = z.infer<typeof DTODocumentationPageCreateActionOutputV2>;\nexport type DTODocumentationPageUpdateActionOutputV2 = z.infer<typeof DTODocumentationPageUpdateActionOutputV2>;\nexport type DTODocumentationPageMoveActionOutputV2 = z.infer<typeof DTODocumentationPageMoveActionOutputV2>;\nexport type DTODocumentationPageDuplicateActionOutputV2 = z.infer<typeof DTODocumentationPageDuplicateActionOutputV2>;\nexport type DTODocumentationPageDeleteActionOutputV2 = z.infer<typeof DTODocumentationPageDeleteActionOutputV2>;\nexport type DTODocumentationPageRestoreActionOutput = z.infer<typeof DTODocumentationPageRestoreActionOutput>;\nexport type DTODocumentationGroupRestoreActionOutput = z.infer<typeof DTODocumentationGroupRestoreActionOutput>;\n\n// Write\n//\n\nexport const DTODocumentationPageCreateActionInputV2 = z.object({\n type: z.literal(\"DocumentationPageCreate\"),\n input: DTOCreateDocumentationPageInputV2,\n});\n\nexport const DTODocumentationPageUpdateActionInputV2 = z.object({\n type: z.literal(\"DocumentationPageUpdate\"),\n input: DTOUpdateDocumentationPageInputV2,\n});\n\nexport const DTODocumentationPageMoveActionInputV2 = z.object({\n type: z.literal(\"DocumentationPageMove\"),\n input: DTOMoveDocumentationPageInputV2,\n});\n\nexport const DTODocumentationPageDuplicateActionInputV2 = z.object({\n type: z.literal(\"DocumentationPageDuplicate\"),\n input: DTODuplicateDocumentationPageInputV2,\n});\n\nexport const DTODocumentationPageDeleteActionInputV2 = z.object({\n type: z.literal(\"DocumentationPageDelete\"),\n input: DTODeleteDocumentationPageInputV2,\n});\n\nexport const DTODocumentationPageRestoreActionInput = z.object({\n type: z.literal(\"DocumentationPageRestore\"),\n input: DTORestoreDocumentationPageInput,\n});\n\nexport const DTODocumentationGroupRestoreActionInput = z.object({\n type: z.literal(\"DocumentationGroupRestore\"),\n input: DTORestoreDocumentationGroupInput,\n});\n\nexport type DTODocumentationPageCreateActionInputV2 = z.infer<typeof DTODocumentationPageCreateActionInputV2>;\nexport type DTODocumentationPageUpdateActionInputV2 = z.infer<typeof DTODocumentationPageUpdateActionInputV2>;\nexport type DTODocumentationPageMoveActionInputV2 = z.infer<typeof DTODocumentationPageMoveActionInputV2>;\nexport type DTODocumentationPageDuplicateActionInputV2 = z.infer<typeof DTODocumentationPageDuplicateActionInputV2>;\nexport type DTODocumentationPageDeleteActionInputV2 = z.infer<typeof DTODocumentationPageDeleteActionInputV2>;\nexport type DTODocumentationPageRestoreActionInput = z.infer<typeof DTODocumentationPageRestoreActionInput>;\nexport type DTODocumentationGroupRestoreActionInput = z.infer<typeof DTODocumentationGroupRestoreActionInput>;\n","import { DocumentationPageContent } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\n//\n// Read\n//\n\nexport const DTODocumentationPageContent = DocumentationPageContent;\n\nexport const DTODocumentationPageContentGetResponse = z.object({\n pageContent: DTODocumentationPageContent,\n});\n\nexport type DTODocumentationPageContent = z.infer<typeof DTODocumentationPageContent>;\nexport type DTODocumentationPageContentGetResponse = z.infer<typeof DTODocumentationPageContentGetResponse>;\n","import { DocumentationPageV1, PageBlockV1 } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\nimport { DTODocumentationItemConfigurationV1 } from \"./item-configuration-v1\";\n\n//\n// Read\n//\n\nexport const DocumentationPageV1DTO = DocumentationPageV1.omit({\n data: true,\n meta: true,\n parentPersistentId: true,\n sortOrder: true,\n}).extend({\n configuration: DTODocumentationItemConfigurationV1,\n blocks: z.array(PageBlockV1),\n title: z.string(),\n path: z.string(),\n});\n\nexport type DocumentationPageV1DTO = z.infer<typeof DocumentationPageV1DTO>;\n","import { FigmaFileStructure } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\n//\n// Read\n//\n\nexport const DTOFigmaNodeOrigin = z.object({\n sourceId: z.string(),\n fileId: z.string().optional(),\n parentName: z.string().optional(),\n});\n\nexport const DTOFigmaNodeData = z.object({\n // Id of the node in the Figma file\n figmaNodeId: z.string(),\n\n // Validity\n isValid: z.boolean(),\n\n // Asset data\n assetId: z.string(),\n assetUrl: z.string(),\n\n // Asset metadata\n assetScale: z.number(),\n assetWidth: z.number().optional(),\n assetHeight: z.number().optional(),\n});\n\nexport const DTOFigmaNode = FigmaFileStructure.omit({\n data: true,\n origin: true\n}).extend({\n data: DTOFigmaNodeData,\n origin: DTOFigmaNodeOrigin\n});\n\nexport type DTOFigmaNodeOrigin = z.infer<typeof DTOFigmaNodeOrigin>;\nexport type DTOFigmaNodeData = z.infer<typeof DTOFigmaNodeData>;\nexport type DTOFigmaNode = z.infer<typeof DTOFigmaNode>;\n\n//\n// Write\n//\n\nexport const DTOFigmaNodeRenderInput = z.object({\n // Id of a design system's data source representing a linked Figma file\n sourceId: z.string(),\n\n // Id of a node within the Figma file\n figmaFileNodeId: z.string(),\n});\n\nexport type DTOFigmaNodeRenderInput = z.infer<typeof DTOFigmaNodeRenderInput>;\n","import { z } from \"zod\";\nimport { DTOFigmaNode, DTOFigmaNodeRenderInput } from \"./figma-node\";\n\n//\n// Read\n//\n\nexport const DTOFigmaNodeRenderActionOutput = z.object({\n type: z.literal(\"FigmaNodeRender\"),\n figmaNodes: z.array(DTOFigmaNode),\n});\n\nexport type DTOFigmaNodeRenderActionOutput = z.infer<typeof DTOFigmaNodeRenderActionOutput>;\n\n//\n// Read\n//\n\nexport const DTOFigmaNodeRenderActionInput = z.object({\n type: z.literal(\"FigmaNodeRender\"),\n input: DTOFigmaNodeRenderInput.array(),\n});\n\nexport type DTOFigmaNodeRenderActionInput = z.infer<typeof DTOFigmaNodeRenderActionInput>;\n","import { z } from \"zod\";\nimport {\n DTOCreateElementPropertyDefinitionInputV2,\n DTODeleteElementPropertyDefinitionInputV2,\n DTOElementPropertyDefinition,\n DTOUpdateElementPropertyDefinitionInputV2,\n} from \"./property-definitions\";\n\n// Outputs\n\nconst SuccessPayload = z.object({\n success: z.literal(true),\n});\n\nexport const DTOPropertyDefinitionCreateActionOutputV2 = z.object({\n type: z.literal(\"PropertyDefinitionCreate\"),\n definition: DTOElementPropertyDefinition,\n});\n\nexport const DTOPropertyDefinitionUpdateActionOutputV2 = z.object({\n type: z.literal(\"PropertyDefinitionUpdate\"),\n definition: DTOElementPropertyDefinition,\n});\n\nexport const DTOPropertyDefinitionDeleteActionOutputV2 = z.object({\n type: z.literal(\"PropertyDefinitionDelete\"),\n output: SuccessPayload,\n});\n\nexport type DTOPropertyDefinitionCreateActionOutputV2 = z.infer<typeof DTOPropertyDefinitionCreateActionOutputV2>;\nexport type DTOPropertyDefinitionUpdateActionOutputV2 = z.infer<typeof DTOPropertyDefinitionUpdateActionOutputV2>;\nexport type DTOPropertyDefinitionDeleteActionOutputV2 = z.infer<typeof DTOPropertyDefinitionDeleteActionOutputV2>;\n\n// Inputs\n\nexport const DTOPropertyDefinitionCreateActionInputV2 = z.object({\n type: z.literal(\"PropertyDefinitionCreate\"),\n input: DTOCreateElementPropertyDefinitionInputV2,\n});\n\nexport const DTOPropertyDefinitionUpdateActionInputV2 = z.object({\n type: z.literal(\"PropertyDefinitionUpdate\"),\n input: DTOUpdateElementPropertyDefinitionInputV2,\n});\n\nexport const DTOPropertyDefinitionDeleteActionInputV2 = z.object({\n type: z.literal(\"PropertyDefinitionDelete\"),\n input: DTODeleteElementPropertyDefinitionInputV2,\n});\n\nexport type DTOPropertyDefinitionCreateActionInputV2 = z.infer<typeof DTOPropertyDefinitionCreateActionInputV2>;\nexport type DTOPropertyDefinitionUpdateActionInputV2 = z.infer<typeof DTOPropertyDefinitionUpdateActionInputV2>;\nexport type DTOPropertyDefinitionDeleteActionInputV2 = z.infer<typeof DTOPropertyDefinitionDeleteActionInputV2>;\n","import {\n ElementPropertyDefinitionOption,\n ElementPropertyLinkType,\n ElementPropertyTargetType,\n ElementPropertyTypeSchema,\n ObjectMeta,\n} from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nconst CODE_NAME_REGEX = /^[a-zA-Z_$][a-zA-Z_$0-9]{1,99}$/;\n\n// DTO Object\nexport const DTOElementPropertyDefinition = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n meta: ObjectMeta,\n persistentId: z.string(),\n type: ElementPropertyTypeSchema,\n targetElementType: ElementPropertyTargetType,\n codeName: z.string().regex(CODE_NAME_REGEX),\n options: z.array(ElementPropertyDefinitionOption).optional(),\n linkElementType: ElementPropertyLinkType.optional(),\n});\n\nexport type DTOElementPropertyDefinition = z.infer<typeof DTOElementPropertyDefinition>;\n\n//\n// Read\n//\n\nexport const DTOElementPropertyDefinitionsGetResponse = z.object({\n definitions: z.array(DTOElementPropertyDefinition),\n});\n\nexport type DTOElementPropertyDefinitionsGetResponse = z.infer<typeof DTOElementPropertyDefinitionsGetResponse>;\n\n//\n// Write\n//\n\nexport const DTOCreateElementPropertyDefinitionInputV2 = DTOElementPropertyDefinition.omit({\n id: true,\n designSystemVersionId: true,\n});\n\nexport type DTOCreateElementPropertyDefinitionInputV2 = z.infer<typeof DTOCreateElementPropertyDefinitionInputV2>;\n\nexport const DTOUpdateElementPropertyDefinitionInputV2 = z.object({\n id: z.string(),\n name: z.string().optional(),\n description: z.string().optional(),\n codeName: z.string().regex(CODE_NAME_REGEX).optional(),\n options: z.array(ElementPropertyDefinitionOption).optional(),\n});\n\nexport type DTOUpdateElementPropertyDefinitionInputV2 = z.infer<typeof DTOUpdateElementPropertyDefinitionInputV2>;\n\nexport const DTODeleteElementPropertyDefinitionInputV2 = z.object({\n id: z.string(),\n});\n\nexport type DTODeleteElementPropertyDefinitionInputV2 = z.infer<typeof DTODeleteElementPropertyDefinitionInputV2>;\n","import { z } from \"zod\";\n\nexport const DTOElementPropertyValue = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n definitionId: z.string(),\n targetElementId: z.string(),\n value: z.union([z.string(), z.number(), z.boolean()]).optional(),\n valuePreview: z.string().optional(),\n});\n\nexport const DTOElementPropertyValuesGetResponse = z.object({\n values: z.array(DTOElementPropertyValue),\n});\n\nexport type DTOElementPropertyValue = z.infer<typeof DTOElementPropertyValue>;\nexport type DTOElementPropertyValuesGetResponse = z.infer<typeof DTOElementPropertyValuesGetResponse>;\n","import { z } from \"zod\";\nimport {\n DTODocumentationGroupCreateActionInputV2,\n DTODocumentationGroupCreateActionOutputV2,\n DTODocumentationGroupDeleteActionInputV2,\n DTODocumentationGroupDeleteActionOutputV2,\n DTODocumentationGroupDuplicateActionInputV2,\n DTODocumentationGroupDuplicateActionOutputV2,\n DTODocumentationGroupMoveActionInputV2,\n DTODocumentationGroupMoveActionOutputV2,\n DTODocumentationGroupUpdateActionInputV2,\n DTODocumentationGroupUpdateActionOutputV2,\n DTODocumentationTabCreateActionInputV2,\n DTODocumentationTabCreateActionOutputV2,\n DTODocumentationTabGroupDeleteActionInputV2,\n DTODocumentationTabGroupDeleteActionOutputV2,\n} from \"./documentation/group-action\";\nimport {\n DTODocumentationGroupRestoreActionInput,\n DTODocumentationGroupRestoreActionOutput,\n DTODocumentationPageCreateActionInputV2,\n DTODocumentationPageCreateActionOutputV2,\n DTODocumentationPageDeleteActionInputV2,\n DTODocumentationPageDeleteActionOutputV2,\n DTODocumentationPageDuplicateActionInputV2,\n DTODocumentationPageDuplicateActionOutputV2,\n DTODocumentationPageMoveActionInputV2,\n DTODocumentationPageMoveActionOutputV2,\n DTODocumentationPageRestoreActionInput,\n DTODocumentationPageRestoreActionOutput,\n DTODocumentationPageUpdateActionInputV2,\n DTODocumentationPageUpdateActionOutputV2,\n} from \"./documentation/page-actions-v2\";\nimport { DTOFigmaNodeRenderActionInput, DTOFigmaNodeRenderActionOutput } from \"./figma-nodes/node-actions-v2\";\nimport {\n DTOPropertyDefinitionCreateActionInputV2,\n DTOPropertyDefinitionCreateActionOutputV2,\n DTOPropertyDefinitionDeleteActionInputV2,\n DTOPropertyDefinitionDeleteActionOutputV2,\n DTOPropertyDefinitionUpdateActionInputV2,\n DTOPropertyDefinitionUpdateActionOutputV2,\n} from \"./properties/property-definitions-actions-v2\";\n\n//\n// Read\n//\n\nexport const DTOElementActionOutput = z.discriminatedUnion(\"type\", [\n // Documentation pages\n DTODocumentationPageCreateActionOutputV2,\n DTODocumentationPageUpdateActionOutputV2,\n DTODocumentationPageMoveActionOutputV2,\n DTODocumentationPageDuplicateActionOutputV2,\n DTODocumentationPageDeleteActionOutputV2,\n\n // Documentation groups\n DTODocumentationGroupCreateActionOutputV2,\n DTODocumentationTabCreateActionOutputV2,\n DTODocumentationGroupUpdateActionOutputV2,\n DTODocumentationGroupMoveActionOutputV2,\n DTODocumentationGroupDuplicateActionOutputV2,\n DTODocumentationGroupDeleteActionOutputV2,\n DTODocumentationTabGroupDeleteActionOutputV2,\n\n // Figma frames\n DTOFigmaNodeRenderActionOutput,\n\n // Properties Definitions\n DTOPropertyDefinitionCreateActionOutputV2,\n DTOPropertyDefinitionUpdateActionOutputV2,\n DTOPropertyDefinitionDeleteActionOutputV2,\n\n // Restore\n DTODocumentationPageRestoreActionOutput,\n DTODocumentationGroupRestoreActionOutput,\n]);\n\nexport type DTOElementActionOutput = z.infer<typeof DTOElementActionOutput>;\n\n//\n// Write\n//\n\nexport const DTOElementActionInput = z.discriminatedUnion(\"type\", [\n // Documentation pages\n DTODocumentationPageCreateActionInputV2,\n DTODocumentationPageUpdateActionInputV2,\n DTODocumentationPageMoveActionInputV2,\n DTODocumentationPageDuplicateActionInputV2,\n DTODocumentationPageDeleteActionInputV2,\n\n // Documentation groups\n DTODocumentationGroupCreateActionInputV2,\n DTODocumentationTabCreateActionInputV2,\n DTODocumentationGroupUpdateActionInputV2,\n DTODocumentationGroupMoveActionInputV2,\n DTODocumentationGroupDuplicateActionInputV2,\n DTODocumentationGroupDeleteActionInputV2,\n DTODocumentationTabGroupDeleteActionInputV2,\n\n // Figma frames\n DTOFigmaNodeRenderActionInput,\n\n // Properties Definitions\n DTOPropertyDefinitionCreateActionInputV2,\n DTOPropertyDefinitionUpdateActionInputV2,\n DTOPropertyDefinitionDeleteActionInputV2,\n\n // Restore\n DTODocumentationPageRestoreActionInput,\n DTODocumentationGroupRestoreActionInput,\n]);\n\nexport type DTOElementActionInput = z.infer<typeof DTOElementActionInput>;\n","import { z } from \"zod\";\nimport { DTOFigmaNode } from \"./figma-nodes\";\n\n//\n// Read\n//\n\nexport const DTOElementsGetTypeFilter = z.enum([\"FigmaNode\"]);\n\nexport const DTOElementsGetQuerySchema = z.object({\n types: z.string().transform(val => val.split(\",\").map(v => DTOElementsGetTypeFilter.parse(v))),\n});\n\nexport const DTOElementsGetOutput = z.object({\n figmaNodes: z.array(DTOFigmaNode).optional(),\n});\n\nexport type DTOElementsGetOutput = z.infer<typeof DTOElementsGetOutput>;\nexport type DTOElementsGetQueryRaw = z.input<typeof DTOElementsGetQuerySchema>;\nexport type DTOElementsGetQueryParsed = z.output<typeof DTOElementsGetQuerySchema>;\nexport type DTOElementsGetTypeFilter = z.infer<typeof DTOElementsGetTypeFilter>;\n","import { z } from \"zod\";\n\nexport const DTOAssetRenderConfiguration = z.object({\n prefix: z.string().optional(),\n suffix: z.string().optional(),\n scale: z.enum([\"x1\", \"x2\", \"x3\", \"x4\"]),\n format: z.enum([\"png\", \"pdf\", \"svg\"]),\n});\n\nexport const DTORenderedAssetFile = z.object({\n assetId: z.string(),\n fileName: z.string(),\n sourceUrl: z.string(),\n settings: DTOAssetRenderConfiguration,\n originalName: z.string(),\n});\n\nexport const DTODownloadAssetsRequest = z.object({\n persistentIds: z.array(z.string().uuid()).optional(),\n settings: DTOAssetRenderConfiguration.array(),\n});\n\nexport const DTODownloadAssetsResponse = z.object({\n items: DTORenderedAssetFile.array(),\n});\n\nexport type DTOAssetRenderConfiguration = z.infer<typeof DTOAssetRenderConfiguration>;\nexport type DTORenderedAssetFile = z.infer<typeof DTORenderedAssetFile>;\nexport type DTODownloadAssetsRequest = z.infer<typeof DTODownloadAssetsRequest>;\nexport type DTODownloadAssetsResponse = z.infer<typeof DTODownloadAssetsResponse>;\n","import { z } from \"zod\";\n\nexport const DTOLiveblocksAuthResponse = z.object({\n token: z.string(),\n})\n\nexport type DTOLiveblocksAuthResponse = z.infer<typeof DTOLiveblocksAuthResponse>;\n","import { User } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTOUserProfileUpdateResponse = z.object({\n user: User,\n});\nexport type DTOUserProfileUpdateResponse = z.infer<typeof DTOUserProfileUpdateResponse>;\n","import { z } from \"zod\";\n\nexport const DTOGitOrganization = z.object({\n id: z.string(),\n name: z.string(),\n url: z.string(),\n slug: z.string(),\n});\nexport type DTOGitOrganization = z.infer<typeof DTOGitOrganization>;\n\nexport const DTOGitProject = z.object({\n id: z.string(),\n name: z.string(),\n url: z.string(),\n slug: z.string(),\n});\nexport type DTOGitProject = z.infer<typeof DTOGitProject>;\n\nexport const DTOGitRepository = z.object({\n id: z.string(),\n name: z.string(),\n url: z.string(),\n slug: z.string(),\n defaultBranch: z.string().optional(),\n});\nexport type DTOGitRepository = z.infer<typeof DTOGitRepository>;\n\nexport const DTOGitBranch = z.object({\n name: z.string(),\n lastCommitId: z.string(),\n});\nexport type DTOGitBranch = z.infer<typeof DTOGitBranch>;\n","import { ExtendedIntegrationType, IntegrationCredentials, IntegrationDesignSystem } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DTOIntegrationCredentials = IntegrationCredentials.omit({\n accessToken: true,\n refreshToken: true,\n});\n\nexport const DTOIntegration = z.object({\n id: z.string(),\n workspaceId: z.string(),\n type: ExtendedIntegrationType,\n createdAt: z.coerce.date(),\n integrationCredentials: z.array(DTOIntegrationCredentials).optional(),\n integrationDesignSystems: z.array(IntegrationDesignSystem).optional(),\n});\n\nexport const DTOIntegrationOAuthGetResponse = z.object({\n url: z.string(),\n});\n\nexport const DTOIntegrationPostResponse = z.object({\n integration: DTOIntegration,\n});\n\nexport const DTOIntegrationsGetListResponse = z.object({\n integrations: DTOIntegration.array(),\n});\n\nexport type DTOIntegration = z.infer<typeof DTOIntegration>;\nexport type DTOIntegrationCredentials = z.infer<typeof DTOIntegrationCredentials>;\nexport type DTOIntegrationOAuthGetResponse = z.infer<typeof DTOIntegrationOAuthGetResponse>;\nexport type DTOIntegrationPostResponse = z.infer<typeof DTOIntegrationPostResponse>;\nexport type DTOIntegrationsGetListResponse = z.infer<typeof DTOIntegrationsGetListResponse>;\n","import { z } from \"zod\";\nimport { DTOWorkspace } from \"./workspace\";\n\n//\n// Read\n//\n\nexport const DTOWorkspaceRole = z.enum([\"Owner\", \"Admin\", \"Creator\", \"Viewer\", \"Billing\"]);\n\nexport const DTOUserWorkspaceMembership = z.object({\n // Workspace the user is a member of\n workspace: DTOWorkspace,\n\n // Assigned role the user has in the workspace\n role: DTOWorkspaceRole,\n\n // Role that determines actual permissions the user has in the workspace\n // E.g. this is different from the default role when editors are downgraded to viewers\n // when a workspace's subscription is downgraded to free tier\n effectiveRole: DTOWorkspaceRole,\n});\n\nexport const DTOUserWorkspaceMembershipsResponse = z.object({\n membership: z.array(DTOUserWorkspaceMembership),\n});\n\nexport type DTOWorkspaceRole = z.infer<typeof DTOWorkspaceRole>;\nexport type DTOUserWorkspaceMembership = z.infer<typeof DTOUserWorkspaceMembership>;\nexport type DTOUserWorkspaceMembershipsResponse = z.infer<typeof DTOUserWorkspaceMembershipsResponse>;\n","import { Subscription, WorkspaceProfile } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\nimport { DTONpmRegistryConfig } from \"./npm-registry\";\n\n//\n// Read\n//\n\nexport const DTOWorkspace = z.object({\n id: z.string(),\n profile: WorkspaceProfile,\n subscription: Subscription,\n npmRegistry: DTONpmRegistryConfig.optional(),\n});\n\nexport type DTOWorkspace = z.infer<typeof DTOWorkspace>;\n","import { NpmRegistryAuthType, NpmRegistryType } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\n//\n// Read\n//\n\nexport const DTONpmRegistryConfigConstants = {\n passwordPlaceholder: \"redacted\",\n};\n\nexport const DTONpmRegistryConfig = z.object({\n // Registry basic configuration\n registryType: NpmRegistryType,\n registryUrl: z.string(),\n customRegistryUrl: z.string().optional(),\n\n // URL of Supernova NPM packages proxy\n proxyUrl: z.string(),\n\n // Auth configuration\n authType: NpmRegistryAuthType,\n accessToken: z.literal(DTONpmRegistryConfigConstants.passwordPlaceholder).optional(),\n username: z.string().optional(),\n password: z.literal(DTONpmRegistryConfigConstants.passwordPlaceholder).optional(),\n\n // NPM package scopes for whih the proxy should be enabled\n enabledScopes: z.array(z.string()),\n\n // True if client should bypass Supernova proxy and connect directly to the registry\n // (e.g. when the NPM registry is behind a VPN or firewall which prevents Supernova from accessing it)\n bypassProxy: z.boolean(),\n});\n\nexport type DTONpmRegistryConfig = z.infer<typeof DTONpmRegistryConfig>;\n","function hash(input: string): string {\n return farmhash(input).toString(16);\n}\n\nfunction farmhash(input: string): number {\n const seed = 0x9e3779b9;\n let hash = seed;\n\n for (let i = 0; i < input.length; i++) {\n const charCode = input.charCodeAt(i);\n hash ^= charCode;\n hash = Math.imul(hash, 0x5bd1e995);\n hash ^= hash >>> 15;\n }\n\n hash = Math.imul(hash, 0x5bd1e995);\n hash ^= hash >>> 13;\n hash = Math.imul(hash, 0x5bd1e995);\n hash ^= hash >>> 15;\n\n return hash >>> 0;\n}\n\nfunction prepareObject(obj: any): any {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(prepareObject);\n }\n const sortedObj: any = {};\n for (const key of Object.keys(obj).sort()) {\n if (obj[key] === null || obj[key] === undefined) {\n continue;\n }\n sortedObj[key] = prepareObject(obj[key]);\n }\n return sortedObj;\n}\n\nexport function generateHash(input: object | string, debug = false): string {\n if (typeof input === \"object\") {\n const sanitized = JSON.stringify(prepareObject(input));\n if (debug) {\n console.log(\"Hashing sanitized string:\");\n console.log(sanitized);\n }\n return hash(sanitized);\n } else {\n try {\n const obj = JSON.parse(input);\n const sanitized = JSON.stringify(prepareObject(obj));\n if (debug) {\n console.log(\"Hashing sanitized string:\");\n console.log(sanitized);\n }\n return hash(sanitized);\n } catch {\n return hash(input);\n }\n }\n}\n","import * as Y from \"yjs\";\nimport { z } from \"zod\";\nimport { DTODocumentationHierarchyV2 } from \"../../api\";\nimport { FrontendVersionRoomYDoc } from \"../version-room/frontend\";\n\n// We store pages and groups in the same way they are stored in the database.\n// This means that instead of groups having childrenIds array, all items have\n// parentPersistentId property that points to the parent item in the tree.\n// Upon read this gets converted to the format that client expects, which is\n// ordered childrenIds array on all groups.\n//\n// The decision behind it is that we potentially want to get rid of childrenIds\n// array entirely because it makes group updates more complicated. For now\n// resolving it on fly is a tradeoff for not rewriting client to stop relying\n// on children ids array.\n\n//\n// Types\n//\n\nexport const DocumentationHierarchySettings = z.object({\n routingVersion: z.string(),\n isDraftFeatureAdopted: z.boolean(),\n});\n\nexport type DocumentationHierarchySettings = z.infer<typeof DocumentationHierarchySettings>;\n\n/**\n * @deprecated - Use FrontendVersionRoomYDoc.getDocumentationHierarchy\n */\nexport function yjsToDocumentationHierarchy(doc: Y.Doc): DTODocumentationHierarchyV2 {\n return new FrontendVersionRoomYDoc(doc).getDocumentationHierarchy();\n}\n","import {\n DocumentationPageSnapshot,\n DocumentationPageV2,\n ElementGroup,\n ElementGroupSnapshot,\n} from \"@supernova-studio/model\";\nimport * as Y from \"yjs\";\nimport { ZodSchema, ZodTypeDef } from \"zod\";\nimport { DocumentationHierarchySettings } from \"../design-system-content\";\n\ntype YJSSerializable = { id: string };\n\nexport class VersionRoomBaseYDoc {\n private readonly yDoc: Y.Doc;\n\n constructor(yDoc: Y.Doc) {\n this.yDoc = yDoc;\n }\n\n //\n // Pages\n //\n\n getPages(): DocumentationPageV2[] {\n return this.getObjects(this.pagesYMap, DocumentationPageV2);\n }\n\n updatePages(pages: DocumentationPageV2[]) {\n pages = pages.map(page => {\n // We remove blocks from the payload here because it will not get parsed anyway\n return {\n ...page,\n data: {\n configuration: page.data.configuration,\n },\n };\n });\n\n this.setObjects(this.pagesYMap, pages);\n }\n\n deletePages(ids: string[]) {\n this.deleteObjects(this.pagesYMap, ids);\n }\n\n private get pagesYMap() {\n return this.yDoc.getMap<object>(\"documentationPages\");\n }\n\n //\n // Groups\n //\n\n getGroups(): ElementGroup[] {\n return this.getObjects(this.groupsYMap, ElementGroup);\n }\n\n updateGroups(groups: ElementGroup[]) {\n this.setObjects(this.groupsYMap, groups);\n }\n\n deleteGroups(ids: string[]) {\n this.deleteObjects(this.groupsYMap, ids);\n }\n\n private get groupsYMap() {\n return this.yDoc.getMap<object>(\"documentationGroups\");\n }\n\n //\n // Documentation internal settings\n //\n\n getDocumentationInternalSettings(): DocumentationHierarchySettings {\n const map = this.internalSettingsYMap;\n\n const rawSettings: Record<keyof DocumentationHierarchySettings, any> = {\n routingVersion: map.get(\"routingVersion\"),\n isDraftFeatureAdopted: map.get(\"isDraftFeatureAdopted\") ?? false,\n };\n\n const settingsParseResult = DocumentationHierarchySettings.safeParse(rawSettings);\n if (!settingsParseResult.success) {\n return {\n routingVersion: \"2\",\n isDraftFeatureAdopted: false,\n };\n }\n\n return settingsParseResult.data;\n }\n\n updateDocumentationInternalSettings(settings: DocumentationHierarchySettings) {\n const map = this.internalSettingsYMap;\n\n map.set(\"routingVersion\", settings.routingVersion);\n map.set(\"isDraftFeatureAdopted\", settings.isDraftFeatureAdopted);\n }\n\n private get internalSettingsYMap() {\n return this.yDoc.getMap<unknown>(\"documentationInternalSettings\");\n }\n\n //\n // Documentation page snapshot\n //\n\n getPageSnapshots(): DocumentationPageSnapshot[] {\n return this.getObjects(this.documentationPagePublishedStatesYMap, DocumentationPageSnapshot);\n }\n\n updatePageSnapshots(snapshots: DocumentationPageSnapshot[]) {\n this.setObjects(this.documentationPagePublishedStatesYMap, snapshots);\n }\n\n deletePageSnapshots(ids: string[]) {\n this.deleteObjects(this.documentationPagePublishedStatesYMap, ids);\n }\n\n private get documentationPagePublishedStatesYMap() {\n return this.yDoc.getMap<object>(\"documentationPageSnapshots\");\n }\n\n //\n // Documentation group snapshots\n //\n\n getGroupSnapshots(): ElementGroupSnapshot[] {\n return this.getObjects(this.documentationGroupPublishedStatesYMap, ElementGroupSnapshot);\n }\n\n updateGroupSnapshots(snapshots: ElementGroupSnapshot[]) {\n this.setObjects(this.documentationGroupPublishedStatesYMap, snapshots);\n }\n\n deleteGroupSnapshots(ids: string[]) {\n this.deleteObjects(this.documentationGroupPublishedStatesYMap, ids);\n }\n\n private get documentationGroupPublishedStatesYMap() {\n return this.yDoc.getMap<object>(\"documentationGroupSnapshots\");\n }\n\n //\n // Utils\n //\n\n private getObjects<T extends YJSSerializable, I>(map: Y.Map<object>, schema: ZodSchema<T, ZodTypeDef, I>): T[] {\n const results: T[] = [];\n map.forEach(object => results.push(schema.parse(object)));\n return results;\n }\n\n private setObjects<T extends YJSSerializable>(map: Y.Map<object>, objects: T[]) {\n objects.forEach(o => map.set(o.id, JSON.parse(JSON.stringify(o))));\n }\n\n private deleteObjects(map: Y.Map<object>, ids: string[]) {\n ids.forEach(id => map.delete(id));\n }\n\n //\n // Documentation page content hashes\n //\n\n getDocumentationPageContentHashes(): Record<string, string> {\n const map = this.documentationPageContentHashesYMap;\n\n const result: Record<string, string> = {};\n map.forEach((hash, key) => {\n result[key] = hash;\n });\n\n return result;\n }\n\n updateDocumentationPageContentHashes(hashes: Record<string, string>) {\n const map = this.documentationPageContentHashesYMap;\n Object.entries(hashes).forEach(([key, hash]) => map.set(key, hash));\n }\n\n private get documentationPageContentHashesYMap() {\n return this.yDoc.getMap<string>(\"documentationPageHashes\");\n }\n}\n","import { generateHash } from \"../../utils\";\nimport { DocumentationPageEditorModel } from \"../docs-editor\";\n\nexport function generatePageContentHash(content: DocumentationPageEditorModel, debug = false) {\n return generateHash(content, debug);\n}\n","import {\n DocumentationItemConfigurationV2,\n DocumentationPageSnapshot,\n DocumentationPageV2,\n ElementGroup,\n ElementGroupSnapshot,\n defaultDocumentationItemConfigurationV2,\n mapByUnique,\n} from \"@supernova-studio/model\";\nimport * as Y from \"yjs\";\nimport {\n DTODocumentationDraftState,\n DTODocumentationDraftStateUpdated,\n DTODocumentationHierarchyV2,\n documentationItemConfigurationToDTOV2,\n documentationPagesToDTOV2,\n elementGroupsToDocumentationGroupDTOV2,\n} from \"../../api\";\nimport { generateHash } from \"../../utils\";\nimport { DocumentationPageEditorModel } from \"../docs-editor\";\nimport { VersionRoomBaseYDoc } from \"./base\";\nimport { generatePageContentHash } from \"./utils\";\n\ntype ItemState = {\n title: string;\n configuration: DocumentationItemConfigurationV2;\n contentHash: string;\n};\n\nexport class FrontendVersionRoomYDoc {\n private readonly yDoc: Y.Doc;\n\n constructor(yDoc: Y.Doc, private readonly debug = false) {\n this.yDoc = yDoc;\n }\n\n //\n // Hierarchy\n //\n\n getDocumentationHierarchy(): DTODocumentationHierarchyV2 {\n const doc = new VersionRoomBaseYDoc(this.yDoc);\n\n // Read current room data\n const pages = doc.getPages();\n const groups = doc.getGroups();\n const pageSnapshots = doc.getPageSnapshots();\n const groupSnapshots = doc.getGroupSnapshots();\n\n const settings = doc.getDocumentationInternalSettings();\n\n // Convert pages to DTOs\n const pageDTOs = documentationPagesToDTOV2(pages, groups, settings.routingVersion);\n const groupDTOs = elementGroupsToDocumentationGroupDTOV2(groups, pages);\n\n // If draft feature is not yet adopted, no snapshot-based features should not be provided\n if (!settings.isDraftFeatureAdopted) {\n return {\n pages: pageDTOs,\n groups: groupDTOs,\n deletedGroups: [],\n deletedPages: [],\n };\n }\n\n const pageDraftStates = this.buildPageDraftStates(pages, pageSnapshots);\n pageDTOs.forEach(p => {\n const draftState = pageDraftStates.get(p.id);\n draftState && (p.draftState = draftState);\n });\n\n const groupDraftStates = this.buildGroupDraftStates(groups, groupSnapshots);\n groupDTOs.forEach(g => {\n const draftState = groupDraftStates.get(g.id);\n draftState && (g.draftState = draftState);\n });\n\n // Read deleted pages\n const pageIds = new Set(pages.map(p => p.id));\n const deletedPagesMap = mapByUnique(\n pageSnapshots.filter(s => !pageIds.has(s.page.id)).map(s => s.page),\n p => p.id\n );\n const deletedPages = Array.from(deletedPagesMap.values());\n\n // Read deleted groups\n const groupIds = new Set(groups.map(p => p.id));\n const deletedGroupsMap = mapByUnique(\n groupSnapshots.filter(s => !groupIds.has(s.group.id)).map(s => s.group),\n g => g.id\n );\n const deletedGroups = Array.from(deletedGroupsMap.values());\n\n // Convert deleted pages to DTOs with draft states\n const deletedPageDTOs = documentationPagesToDTOV2(\n deletedPages,\n [...groups, ...deletedGroups],\n settings.routingVersion\n ).map(p => {\n return { ...p, draftState: { changeType: \"Deleted\" } } as const;\n });\n\n // Convert deleted groups to DTOs with draft states\n const deletedGroupDTOs = elementGroupsToDocumentationGroupDTOV2(deletedGroups, deletedPages).map(g => {\n return { ...g, draftState: { changeType: \"Deleted\" } } as const;\n });\n\n return {\n pages: pageDTOs,\n groups: groupDTOs,\n\n deletedPages: deletedPageDTOs,\n deletedGroups: deletedGroupDTOs,\n };\n }\n\n //\n // Drafts - Pages\n //\n\n private buildPageDraftStates(\n pages: DocumentationPageV2[],\n pageSnapshots: DocumentationPageSnapshot[]\n ): Map<string, DTODocumentationDraftState> {\n const doc = new VersionRoomBaseYDoc(this.yDoc);\n\n // Read room data\n const pageHashes = doc.getDocumentationPageContentHashes();\n const publishedSnapshots = pageSnapshots.filter(s => s.reason === \"Publish\");\n\n const publishedSnapshotsByPageId = mapByUnique(publishedSnapshots, s => s.page.id);\n const publishedPagesById = mapByUnique(\n publishedSnapshots.map(s => s.page),\n p => p.id\n );\n\n const result = new Map<string, DTODocumentationDraftState>();\n\n pages.forEach(page => {\n // Published state\n const snapshot = publishedSnapshotsByPageId.get(page.id);\n let publishedState: ItemState | undefined;\n if (snapshot) {\n const publishedPage = publishedPagesById.get(snapshot.page.id)!;\n publishedState = this.itemStateFromPage(publishedPage, snapshot.pageContentHash);\n }\n\n // Current state - if content hash is undefined, it means that the page hasn't changed\n const currentPageContentHash = pageHashes[page.persistentId] ?? snapshot?.pageContentHash ?? \"\";\n const currentState: ItemState = this.itemStateFromPage(page, currentPageContentHash);\n\n // Calculate draft\n const draftState = this.createDraftState(page.persistentId, currentState, publishedState);\n if (draftState) result.set(page.id, draftState);\n });\n\n return result;\n }\n\n private itemStateFromPage(page: DocumentationPageV2, pageContentHash: string): ItemState {\n return {\n title: page.meta.name,\n configuration: page.data.configuration ?? defaultDocumentationItemConfigurationV2,\n contentHash: pageContentHash,\n };\n }\n\n //\n // Drafts - Groups\n //\n\n private buildGroupDraftStates(\n groups: ElementGroup[],\n groupSnapshots: ElementGroupSnapshot[]\n ): Map<string, DTODocumentationDraftState> {\n const doc = new VersionRoomBaseYDoc(this.yDoc);\n\n // Read room data\n const publishedSnapshots = groupSnapshots.filter(s => s.reason === \"Publish\");\n\n const publishedSnapshotsByGroupId = mapByUnique(publishedSnapshots, s => s.group.id);\n const publishedGroupsById = mapByUnique(\n publishedSnapshots.map(s => s.group),\n g => g.id\n );\n\n const result = new Map<string, DTODocumentationDraftState>();\n\n groups.forEach(group => {\n // Current state\n const currentState: ItemState = this.itemStateFromGroup(group);\n\n // Published state\n const snapshot = publishedSnapshotsByGroupId.get(group.id);\n let publishedState: ItemState | undefined;\n if (snapshot) {\n const publishedGroup = publishedGroupsById.get(snapshot.group.id)!;\n publishedState = this.itemStateFromGroup(publishedGroup);\n }\n\n // Calculate draft\n const draftState = this.createDraftState(group.persistentId, currentState, publishedState);\n if (draftState) result.set(group.id, draftState);\n });\n\n return result;\n }\n\n private itemStateFromGroup(group: ElementGroup): ItemState {\n return {\n title: group.meta.name,\n configuration: group.data?.configuration ?? defaultDocumentationItemConfigurationV2,\n contentHash: \"-\",\n };\n }\n\n //\n // Drafts - Shared\n //\n\n private createDraftState(\n itemPersistentId: string,\n currentState: ItemState,\n publishedState: ItemState | undefined\n ): DTODocumentationDraftState | undefined {\n if (!publishedState) {\n // New item (hasn't been published yet)\n return { changeType: \"Created\" };\n }\n\n // Compare current item state to the published state\n const updatedDraftState: DTODocumentationDraftStateUpdated = {\n changeType: \"Updated\",\n changes: {},\n };\n\n if (currentState.title !== publishedState.title) {\n if (this.debug) {\n console.log(`Item ${itemPersistentId} (${currentState.title}): updated title`);\n }\n\n updatedDraftState.changes.previousTitle = publishedState.title;\n }\n\n const currentConfigHash = generateHash(currentState.configuration, this.debug);\n const publishedConfigHash = generateHash(publishedState.configuration, this.debug);\n\n if (currentConfigHash !== publishedConfigHash) {\n if (this.debug) {\n console.log(`Item ${itemPersistentId} (${currentState.title}): updated configuration`);\n }\n\n const configurationDto = documentationItemConfigurationToDTOV2(publishedState.configuration);\n updatedDraftState.changes.previousConfiguration = configurationDto;\n }\n\n if (currentState.contentHash !== publishedState.contentHash) {\n if (this.debug) {\n console.log(`Item ${itemPersistentId} (${currentState.title}): updated content hash`);\n }\n\n updatedDraftState.changes.previousContentHash = publishedState.contentHash;\n }\n\n if (Object.keys(updatedDraftState.changes).length) {\n // Item has at least one of the draft changes\n return updatedDraftState;\n }\n\n // Item has no draft changes compared to the published item\n return undefined;\n }\n\n //\n // Update page content hash\n //\n\n notifyDocumentationPageContentUpdated(pageId: string, content: DocumentationPageEditorModel) {\n const pageContentHash = generatePageContentHash(content, this.debug);\n if (this.debug) {\n console.log(`Will set page content hash: '${pageId}' : '${pageContentHash}'`);\n }\n\n new VersionRoomBaseYDoc(this.yDoc).updateDocumentationPageContentHashes({\n [pageId]: pageContentHash,\n });\n }\n\n //\n // Misc\n //\n\n isDraftFeatureAdopted() {\n const doc = new VersionRoomBaseYDoc(this.yDoc);\n const settings = doc.getDocumentationInternalSettings();\n return settings.isDraftFeatureAdopted;\n }\n}\n","import { DocumentationItemHeaderV2 } from \"@supernova-studio/model\";\nimport * as Y from \"yjs\";\nimport { z } from \"zod\";\nimport { DTODocumentationItemConfigurationV2 } from \"../../api/dto/elements/documentation/item-configuration-v2\";\n\n//\n// Types\n//\n\nexport const DTODocumentationPageRoomHeaderData = z.object({\n title: z.string(),\n configuration: DTODocumentationItemConfigurationV2,\n});\n\nexport const DTODocumentationPageRoomHeaderDataUpdate = z.object({\n title: z.string().optional(),\n configuration: DTODocumentationItemConfigurationV2.omit({ header: true })\n .extend({ header: DocumentationItemHeaderV2.partial() })\n .optional(),\n});\n\nexport type DTODocumentationPageRoomHeaderData = z.infer<typeof DTODocumentationPageRoomHeaderData>;\nexport type DTODocumentationPageRoomHeaderDataUpdate = z.infer<typeof DTODocumentationPageRoomHeaderDataUpdate>;\n\n//\n// YJS Bindings\n//\n\nexport function itemConfigurationToYjs(yDoc: Y.Doc, item: DTODocumentationPageRoomHeaderDataUpdate) {\n yDoc.transact(trx => {\n const { title, configuration } = item;\n\n const header = configuration?.header;\n\n if (title !== undefined) {\n const headerYMap = trx.doc.getMap(\"itemTitle\");\n headerYMap.set(\"title\", title);\n }\n\n if (header) {\n const headerYMap = trx.doc.getMap(\"itemHeader\");\n\n header.description !== undefined && headerYMap.set(\"description\", header.description);\n header.alignment !== undefined && headerYMap.set(\"alignment\", header.alignment);\n header.foregroundColor !== undefined && headerYMap.set(\"foregroundColor\", header.foregroundColor);\n header.backgroundColor !== undefined && headerYMap.set(\"backgroundColor\", header.backgroundColor);\n header.backgroundImageAsset !== undefined && headerYMap.set(\"backgroundImageAsset\", header.backgroundImageAsset);\n header.backgroundImageScaleType !== undefined &&\n headerYMap.set(\"backgroundImageScaleType\", header.backgroundImageScaleType);\n header.showBackgroundOverlay !== undefined &&\n headerYMap.set(\"showBackgroundOverlay\", header.showBackgroundOverlay);\n header.showCoverText !== undefined && headerYMap.set(\"showCoverText\", header.showCoverText);\n header.minHeight !== undefined && headerYMap.set(\"minHeight\", header.minHeight);\n }\n\n const configYMap = trx.doc.getMap(\"itemConfiguration\");\n\n configuration?.showSidebar !== undefined && configYMap.set(\"showSidebar\", configuration.showSidebar);\n configuration?.isHidden !== undefined && configYMap.set(\"isHidden\", configuration.isHidden);\n configuration?.isPrivate !== undefined && configYMap.set(\"isPrivate\", configuration.isPrivate);\n });\n}\n\nexport function yjsToItemConfiguration(yDoc: Y.Doc): DTODocumentationPageRoomHeaderData {\n const title = yDoc.getMap(\"itemTitle\").get(\"title\");\n\n const headerYMap = yDoc.getMap(\"itemHeader\");\n const rawHeader = {\n description: headerYMap.get(\"description\"),\n alignment: headerYMap.get(\"alignment\"),\n foregroundColor: headerYMap.get(\"foregroundColor\"),\n backgroundColor: headerYMap.get(\"backgroundColor\"),\n backgroundImageAsset: headerYMap.get(\"backgroundImageAsset\"),\n backgroundImageScaleType: headerYMap.get(\"backgroundImageScaleType\"),\n showBackgroundOverlay: headerYMap.get(\"showBackgroundOverlay\"),\n showCoverText: headerYMap.get(\"showCoverText\"),\n minHeight: headerYMap.get(\"minHeight\"),\n };\n\n const configYMap = yDoc.getMap(\"itemConfiguration\");\n\n const rawConfig = {\n showSidebar: configYMap.get(\"showSidebar\"),\n isHidden: configYMap.get(\"isHidden\") ?? false,\n isPrivate: configYMap.get(\"isPrivate\") ?? false,\n header: rawHeader,\n } satisfies Record<keyof DTODocumentationItemConfigurationV2, unknown>;\n\n return {\n title: z.string().parse(title),\n configuration: DTODocumentationItemConfigurationV2.parse(rawConfig),\n };\n}\n","import { PageBlockEditorModelV2, PageSectionEditorModelV2 } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const PageBlockEditorModel = PageBlockEditorModelV2;\nexport type PageBlockEditorModel = z.infer<typeof PageBlockEditorModel>;\n\nexport const PageSectionEditorModel = PageSectionEditorModelV2;\nexport type PageSectionEditorModel = z.infer<typeof PageSectionEditorModel>;\n","import { DocumentationPageContentItem } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const DocumentationPageEditorModel = z.object({\n blocks: z.array(DocumentationPageContentItem),\n});\n\nexport type DocumentationPageEditorModel = z.infer<typeof DocumentationPageEditorModel>;\n","import { Schema } from \"prosemirror-model\";\n\nconst newSchema = {\n nodes: {\n paragraph: {\n content: \"inline*\",\n group: \"block\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.rich-text\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"p\",\n },\n ],\n },\n reactComponent: {\n group: \"block\",\n atom: true,\n draggable: true,\n attrs: {\n count: {\n default: 0,\n },\n },\n parseDOM: [\n {\n tag: \"react-component\",\n },\n ],\n },\n tableRow: {\n tableRole: \"row\",\n content: \"(tableCell | tableHeader)*\",\n parseDOM: [\n {\n tag: \"tr\",\n },\n ],\n },\n table: {\n tableRole: \"table\",\n content: \"tableRow+\",\n group: \"defaultTable\",\n isolating: true,\n parseDOM: [\n {\n tag: \"table\",\n },\n ],\n },\n tableCell: {\n tableRole: \"cell\",\n content: \"block+\",\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n textAlign: {\n default: \"left\",\n },\n colspan: {\n default: 1,\n },\n rowspan: {\n default: 1,\n },\n colwidth: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"td\",\n },\n ],\n },\n tableHeader: {\n tableRole: \"header_cell\",\n content: \"block+\",\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n textAlign: {\n default: \"left\",\n },\n colspan: {\n default: 1,\n },\n rowspan: {\n default: 1,\n },\n colwidth: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"th\",\n },\n ],\n },\n tableContainer: {\n content: \"table\",\n group: \"block\",\n atom: true,\n draggable: false,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.table\",\n },\n variantId: {\n default: \"default\",\n },\n hasBorder: {\n default: true,\n },\n },\n parseDOM: [\n {\n tag: \"tableContainer\",\n },\n ],\n },\n hardBreak: {\n group: \"inline\",\n inline: true,\n selectable: false,\n parseDOM: [\n {\n tag: \"br\",\n },\n ],\n },\n text: {\n group: \"inline\",\n },\n heading: {\n content: \"inline*\",\n group: \"block\",\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n level: {\n default: 1,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"h1\",\n attrs: {\n level: 1,\n definitionId: \"io.supernova.block.title1\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h2\",\n attrs: {\n level: 2,\n definitionId: \"io.supernova.block.title2\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h3\",\n attrs: {\n level: 3,\n definitionId: \"io.supernova.block.title3\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h4\",\n attrs: {\n level: 4,\n definitionId: \"io.supernova.block.title4\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h5\",\n attrs: {\n level: 5,\n definitionId: \"io.supernova.block.title5\",\n variantId: \"default\",\n },\n },\n ],\n },\n listItem: {\n content: \"paragraph list{0,1}\",\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"li\",\n },\n ],\n },\n orderedList: {\n content: \"listItem+\",\n group: \"block list\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.ordered-list\",\n },\n variantId: {\n default: \"default\",\n },\n start: {\n default: 1,\n },\n },\n parseDOM: [\n {\n tag: \"ol\",\n },\n ],\n },\n bulletList: {\n content: \"listItem+\",\n group: \"block list\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.unordered-list\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"ul\",\n },\n ],\n },\n horizontalRule: {\n group: \"block\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.divider\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"div.node-horizontalRule\",\n },\n {\n tag: \"hr\",\n },\n ],\n },\n blockquote: {\n content: \"inline*\",\n group: \"block\",\n draggable: true,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.blockquote\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"blockquote\",\n },\n ],\n },\n plainSection: {\n content: \"sectionItem\",\n group: \"section\",\n atom: true,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"section\",\n attrs: {\n \"data-section-type\": \"plain\",\n },\n },\n ],\n },\n tabsSection: {\n content: \"sectionItem+\",\n group: \"section\",\n atom: true,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n variantId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"div\",\n },\n ],\n },\n sectionItem: {\n content: \"sectionItemColumn{1, 3}\",\n group: \"sectionItem\",\n atom: true,\n selectable: false,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n title: {\n default: \"\",\n },\n },\n parseDOM: [\n {\n tag: \"section-item\",\n },\n ],\n },\n sectionItemColumn: {\n content: \"block+\",\n group: \"sectionItemColumn\",\n atom: true,\n selectable: false,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"section-item-column\",\n },\n ],\n },\n doc: {\n content: \"(block|section)+\",\n },\n callout: {\n content: \"inline*\",\n group: \"block\",\n draggable: true,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.callout\",\n },\n variantId: {\n default: \"default\",\n },\n type: {\n default: \"neutral\",\n },\n },\n parseDOM: [\n {\n tag: \"callout\",\n },\n ],\n },\n blockNode: {\n group: \"block\",\n atom: true,\n draggable: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n appearance: {\n default: \"{}\",\n },\n columns: {\n default: 1,\n },\n items: {\n default: \"[]\",\n },\n },\n parseDOM: [\n {\n tag: \"block-node\",\n },\n ],\n },\n embed: {\n group: \"block\",\n draggable: true,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n type: {\n default: \"youtube\",\n },\n url: {\n default: null,\n },\n height: {\n default: null,\n },\n },\n },\n image: {\n group: \"block\",\n atom: true,\n draggable: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n appearance: {\n default: \"{}\",\n },\n columns: {\n default: 1,\n },\n items: {\n default: \"[]\",\n },\n },\n parseDOM: [\n {\n tag: \"block-node\",\n },\n ],\n },\n },\n marks: {\n link: {\n name: \"link\",\n rank: 0,\n spec: {\n inclusive: true,\n attrs: {\n href: {\n default: null,\n },\n target: {\n default: \"_blank\",\n },\n rel: {\n default: \"noopener noreferrer nofollow\",\n },\n class: {\n default: null,\n },\n itemId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'a[href]:not([href *= \"javascript:\" i])',\n },\n ],\n },\n attrs: {\n href: {\n hasDefault: true,\n default: null,\n },\n target: {\n hasDefault: true,\n default: \"_blank\",\n },\n rel: {\n hasDefault: true,\n default: \"noopener noreferrer nofollow\",\n },\n class: {\n hasDefault: true,\n default: null,\n },\n itemId: {\n hasDefault: true,\n default: null,\n },\n },\n instance: {\n type: \"link\",\n attrs: {\n href: null,\n target: \"_blank\",\n rel: \"noopener noreferrer nofollow\",\n class: null,\n itemId: null,\n },\n },\n },\n bold: {\n name: \"bold\",\n rank: 1,\n spec: {\n parseDOM: [\n {\n tag: \"strong\",\n },\n {\n tag: \"b\",\n },\n {\n style: \"font-weight\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"bold\",\n },\n },\n code: {\n name: \"code\",\n rank: 2,\n spec: {\n excludes: \"_\",\n code: true,\n parseDOM: [\n {\n tag: \"code\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"code\",\n },\n },\n italic: {\n name: \"italic\",\n rank: 3,\n spec: {\n parseDOM: [\n {\n tag: \"em\",\n },\n {\n tag: \"i\",\n },\n {\n style: \"font-style=italic\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"italic\",\n },\n },\n strike: {\n name: \"strike\",\n rank: 4,\n spec: {\n parseDOM: [\n {\n tag: \"s\",\n },\n {\n tag: \"del\",\n },\n {\n tag: \"strike\",\n },\n {\n style: \"text-decoration\",\n consuming: false,\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"strike\",\n },\n },\n },\n} as const;\n\nexport const pmSchema = new Schema(newSchema);\n","import {\n PageBlockCalloutType,\n PageBlockDefinition,\n PageBlockDefinitionProperty,\n PageBlockDefinitionRichTextOptions,\n PageBlockItemImageValue,\n PageBlockItemRichTextValue,\n PageBlockItemTableCell,\n PageBlockItemTableNode,\n PageBlockItemTableRow,\n PageBlockItemTableValue,\n PageBlockTableCellAlignment,\n PageBlockText,\n PageBlockTextSpan,\n PageBlockTextSpanAttribute,\n PageSectionColumnV2,\n PageSectionItemV2,\n SupernovaException,\n mapByUnique,\n} from \"@supernova-studio/model\";\nimport { prosemirrorJSONToYXmlFragment } from \"y-prosemirror\";\nimport * as Y from \"yjs\";\nimport { ListNode, ListTreeBuilder } from \"./list-tree-builder\";\nimport { DocumentationPageEditorModel } from \"./model\";\nimport { PageBlockEditorModel, PageSectionEditorModel } from \"./model/block\";\nimport { pmSchema } from \"./prosemirror\";\nimport { ProsemirrorMark, ProsemirrorNode } from \"./prosemirror/types\";\nimport { BlockDefinitionUtils, BlockParsingUtils } from \"./utils\";\n\n//\n// Types\n//\n\ntype BaseInput = {\n block: PageBlockEditorModel;\n definition: PageBlockDefinition;\n};\n\ntype InputWithProperty = BaseInput & {\n property: PageBlockDefinitionProperty;\n};\n\ntype RichTextInputWithValue = InputWithProperty & {\n richTextPropertyValue: PageBlockItemRichTextValue;\n};\n\n//\n// Implementation\n//\n\nexport function pageToYDoc(doc: Y.Doc, page: DocumentationPageEditorModel, definitions: PageBlockDefinition[]) {\n pageToYXmlFragment(page, definitions, doc.getXmlFragment(\"default\"));\n}\n\nexport function pageToYXmlFragment(\n page: DocumentationPageEditorModel,\n definitions: PageBlockDefinition[],\n fragment: Y.XmlFragment\n): Y.XmlFragment {\n const doc = pageToProsemirrorDoc(page, definitions);\n // console.log(JSON.stringify(doc, null, 2));\n return prosemirrorJSONToYXmlFragment(pmSchema, doc, fragment);\n}\n\nexport function pageToProsemirrorDoc(\n page: DocumentationPageEditorModel,\n definitions: PageBlockDefinition[]\n): ProsemirrorNode {\n const definitionsMap = mapByUnique(definitions, d => d.id);\n\n const children: ProsemirrorNode[] = [];\n let blockBuffer: PageBlockEditorModel[] = [];\n\n page.blocks.forEach(b => {\n if (b.type === \"Block\") {\n blockBuffer.push(b);\n } else if (b.type === \"Section\") {\n if (blockBuffer.length) {\n children.push(...internalBlocksToProsemirrorNodes(blockBuffer, definitionsMap));\n blockBuffer = [];\n }\n\n children.push(internalSectionToProsemirrorNode(b, definitionsMap));\n }\n });\n\n if (blockBuffer.length) {\n children.push(...internalBlocksToProsemirrorNodes(blockBuffer, definitionsMap));\n }\n\n return {\n type: \"doc\",\n content: children,\n };\n}\n\nexport function blockToProsemirrorNode(\n block: PageBlockEditorModel,\n definition: PageBlockDefinition\n): ProsemirrorNode | null {\n const definitionsMap = new Map<string, PageBlockDefinition>([[definition.id, definition]]);\n const nodes = internalBlocksToProsemirrorNodes([block], definitionsMap);\n return nodes[0] ?? null;\n}\n\n//\n// Sections\n//\n\nfunction internalSectionToProsemirrorNode(\n section: PageSectionEditorModel,\n definitionsMap: Map<string, PageBlockDefinition>\n): ProsemirrorNode {\n return {\n type: \"tabsSection\",\n attrs: {\n id: section.id,\n ...(section.variantId && { variantId: section.variantId }),\n },\n content: section.items.map(item => sectionItemToProsemirrorNode(item, definitionsMap)),\n };\n}\n\nfunction sectionItemToProsemirrorNode(\n sectionItem: PageSectionItemV2,\n definitionsMap: Map<string, PageBlockDefinition>\n): ProsemirrorNode {\n return {\n type: \"sectionItem\",\n attrs: {\n id: sectionItem.id,\n title: sectionItem.title,\n },\n content: sectionItem.columns.map(column => sectionColumnToProsemirrorNode(column, definitionsMap)),\n };\n}\n\nfunction sectionColumnToProsemirrorNode(\n sectionColumn: PageSectionColumnV2,\n definitionsMap: Map<string, PageBlockDefinition>\n): ProsemirrorNode {\n const blocks = internalBlocksToProsemirrorNodes(sectionColumn.blocks, definitionsMap);\n\n if (!blocks.length) {\n blocks.push({\n type: \"paragraph\",\n attrs: {\n id: \"id\",\n definitionId: \"io.supernova.block.rich-text\",\n },\n });\n }\n\n return {\n type: \"sectionItemColumn\",\n attrs: {\n id: sectionColumn.id,\n },\n content: blocks,\n };\n}\n\n//\n// Blocks\n//\n\nfunction internalBlocksToProsemirrorNodes(\n blocks: PageBlockEditorModel[],\n definitionsMap: Map<string, PageBlockDefinition>\n): ProsemirrorNode[] {\n const result: ProsemirrorNode[] = [];\n\n const listTreeBuilder = new ListTreeBuilder();\n\n blocks.forEach(b => {\n const definition = definitionsMap.get(b.data.packageId);\n if (!definition) {\n console.warn(`Could not find definition for ${b.id} (${b.data.packageId})`);\n return;\n }\n\n const multiRichTextProp = BlockDefinitionUtils.firstMultiRichTextProperty(definition);\n\n if (multiRichTextProp) {\n // This is list\n const node = listTreeBuilder.addWithProperty(b, multiRichTextProp);\n if (node) {\n result.push(serializeAsMultiRichTextBlock(node));\n }\n } else {\n // This is not a list\n // Flush the tree builder to inject a non-tree block after it\n const tree = listTreeBuilder.flush();\n if (tree) {\n result.push(serializeAsMultiRichTextBlock(tree));\n }\n\n const node = internalBlockToProsemirrorNode(b, definition);\n node && result.push(node);\n }\n });\n\n const tree = listTreeBuilder.flush();\n if (tree) {\n result.push(serializeAsMultiRichTextBlock(tree));\n }\n\n return result;\n}\n\nfunction internalBlockToProsemirrorNode(\n block: PageBlockEditorModel,\n definition: PageBlockDefinition\n): ProsemirrorNode | null {\n // Single rich text\n const richTextProperty = BlockDefinitionUtils.firstRichTextProperty(definition);\n if (richTextProperty) {\n return serializeAsRichTextBlock({\n block: block,\n definition: definition,\n property: richTextProperty,\n });\n }\n\n const tableProperty = BlockDefinitionUtils.firstTableProperty(definition);\n if (tableProperty) {\n return serializeAsTable({\n block: block,\n definition: definition,\n property: tableProperty,\n });\n }\n\n // Divider\n if (block.data.packageId === \"io.supernova.block.divider\") {\n return serializeAsDivider({\n block: block,\n definition: definition,\n });\n }\n\n return serializeAsCustomBlock(block, definition);\n}\n\n//\n// Single rich text blocks\n//\n\nfunction serializeAsRichTextBlock(input: InputWithProperty): ProsemirrorNode {\n const { block, definition, property: richTextProperty } = input;\n\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const textPropertyValue = BlockParsingUtils.richTextPropertyValue(blockItem, richTextProperty.id);\n\n const enrichedInput: RichTextInputWithValue = { ...input, richTextPropertyValue: textPropertyValue };\n\n const parsedOptions = PageBlockDefinitionRichTextOptions.optional().parse(richTextProperty.options);\n const style = parsedOptions?.richTextStyle ?? \"Default\";\n\n switch (style) {\n case \"Callout\":\n return serializeAsCallout(enrichedInput);\n case \"Default\":\n return serializeAsParagraph(enrichedInput);\n\n case \"Quote\":\n return serializeAsBlockquote(enrichedInput);\n\n case \"Title1\":\n case \"Title2\":\n case \"Title3\":\n case \"Title4\":\n case \"Title5\":\n return serializeAsHeading(enrichedInput);\n }\n}\n\nfunction serializeAsParagraph(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"paragraph\",\n attrs: serializeBlockNodeAttributes(input.block),\n ...serializeRichTextNodePart(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsHeading(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"heading\",\n attrs: {\n ...serializeBlockNodeAttributes(input.block),\n level: richTextHeadingLevel(input.property),\n },\n ...serializeRichTextNodePart(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsBlockquote(input: RichTextInputWithValue): ProsemirrorNode {\n return {\n type: \"blockquote\",\n attrs: serializeBlockNodeAttributes(input.block),\n ...serializeRichTextNodePart(input.richTextPropertyValue.value),\n };\n}\n\nfunction serializeAsCallout(input: RichTextInputWithValue): ProsemirrorNode {\n const calloutType = input.richTextPropertyValue.calloutType ?? \"Info\";\n\n return {\n type: \"callout\",\n attrs: {\n ...serializeBlockNodeAttributes(input.block),\n type: serializeCalloutType(calloutType),\n },\n ...serializeRichTextNodePart(input.richTextPropertyValue.value),\n };\n}\n\n//\n// Multi rich text blocks\n//\n\nfunction serializeAsMultiRichTextBlock(node: ListNode): ProsemirrorNode {\n switch (node.listType) {\n case \"Ordered\":\n return serializeAsOrderedList(node);\n\n case \"Unordered\":\n return serializeAsUnorderedList(node);\n }\n}\n\nfunction serializeAsOrderedList(tree: ListNode): ProsemirrorNode {\n return {\n type: \"orderedList\",\n attrs: {\n ...serializeBlockNodeAttributes(tree.block),\n start: \"1\",\n },\n content: serializeListContent(tree),\n };\n}\n\nfunction serializeAsUnorderedList(tree: ListNode): ProsemirrorNode {\n return {\n type: \"bulletList\",\n attrs: {\n ...serializeBlockNodeAttributes(tree.block),\n },\n content: serializeListContent(tree),\n };\n}\n\nfunction serializeListContent(tree: ListNode): ProsemirrorNode[] {\n const result: ProsemirrorNode[] = tree.leadingChildren.map(i => serializeAsTextListItem(i.text));\n\n for (const child of tree.children) {\n if (child.type === \"ListItem\") {\n // Text list item\n\n result.push(serializeAsTextListItem(child.text));\n } else if (child.type === \"List\") {\n // List list item\n\n const previousNode = result[result.length - 1];\n if (!previousNode) {\n throw SupernovaException.shouldNotHappen(\"List node without previous node\");\n }\n if (!previousNode.content) {\n throw SupernovaException.shouldNotHappen(\"List item node has no content\");\n }\n\n const serializedList = serializeAsMultiRichTextBlock(child);\n previousNode.content.push(serializedList);\n } else {\n // Should noit happen\n\n throw SupernovaException.shouldNotHappen(`Unknown list node type: ${child}`);\n }\n }\n\n return result;\n}\n\nfunction serializeAsTextListItem(text: PageBlockText): ProsemirrorNode {\n return {\n type: \"listItem\",\n content: [\n {\n type: \"paragraph\",\n attrs: {\n definitionId: \"io.supernova.block.rich-text\",\n variantId: \"default\",\n },\n content: serializeRichText(text),\n },\n ],\n };\n}\n\n//\n// Tables\n//\n\nfunction serializeAsTable(input: InputWithProperty): ProsemirrorNode {\n const { block, definition, property: tableProperty } = input;\n\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const table = BlockParsingUtils.tablePropertyValue(blockItem, tableProperty.id);\n\n return {\n type: \"tableContainer\",\n attrs: {\n ...serializeBlockNodeAttributes(input.block),\n hasBorder: table.showBorder ?? true,\n },\n\n content: [\n {\n type: \"table\",\n content: serializeTableRows(table),\n },\n ],\n };\n}\n\nfunction serializeTableRows(table: PageBlockItemTableValue): ProsemirrorNode[] {\n // If no rows are present, we have to generate a least one empty row\n const rows: PageBlockItemTableRow[] = table.value.length ? table.value : [{ cells: [] }];\n\n return rows.map<ProsemirrorNode>((row, rowIndex) => {\n const isHeaderRow = rowIndex === 0 && table.highlightHeaderRow === true;\n\n // If no cells are present, we have to generate at least one cell\n const cells: PageBlockItemTableCell[] = row.cells.length ? row.cells : [{ id: \"\", alignment: \"Left\", nodes: [] }];\n\n return {\n type: \"tableRow\",\n content: cells.map<ProsemirrorNode>((cell, cellIndex) => {\n const isHeaderColumn = cellIndex === 0 && table.highlightHeaderColumn === true;\n\n return {\n type: isHeaderRow || isHeaderColumn ? \"tableHeader\" : \"tableCell\",\n attrs: {\n ...(cell.id && { id: cell.id }),\n textAlign: serializeTableCellAlignment(cell.alignment),\n colspan: 1,\n rowspan: 1,\n ...(cell.columnWidth && { colwidth: [cell.columnWidth] }),\n },\n content: serializeTableCellNodes(cell),\n };\n }),\n };\n });\n}\n\nfunction serializeTableCellAlignment(alignment: PageBlockTableCellAlignment) {\n switch (alignment) {\n case \"Left\":\n return \"left\";\n case \"Center\":\n return \"center\";\n case \"Right\":\n return \"right\";\n\n default:\n return \"left\";\n }\n}\n\nfunction serializeTableCellNodes(cell: PageBlockItemTableCell): ProsemirrorNode[] {\n const result = cell.nodes.map(serializeTableNode);\n\n if (result.length) {\n return result;\n } else {\n return [{ type: \"paragraph\" }];\n }\n}\n\nfunction serializeTableNode(node: PageBlockItemTableNode): ProsemirrorNode {\n switch (node.type) {\n case \"RichText\":\n return {\n type: \"paragraph\",\n attrs: {\n id: node.id,\n definitionId: \"io.supernova.block.rich-text\",\n },\n ...serializeRichTextNodePart(node.value),\n };\n\n case \"Image\":\n return {\n type: \"image\",\n attrs: {\n id: node.id,\n definitionId: \"io.supernova.block.image\",\n items: JSON.stringify([\n {\n id: node.id,\n props: {\n image: {\n caption: node.caption,\n value: node.value,\n } satisfies PageBlockItemImageValue,\n },\n },\n ]),\n },\n };\n }\n}\n\n//\n// Divider\n//\n\nfunction serializeAsDivider(input: BaseInput): ProsemirrorNode {\n return {\n type: \"horizontalRule\",\n attrs: serializeBlockNodeAttributes(input.block),\n };\n}\n\n//\n// Attributes\n//\n\nfunction serializeBlockNodeAttributes(block: PageBlockEditorModel) {\n return {\n id: block.id,\n definitionId: block.data.packageId,\n ...(block.data.variantId && { variantId: block.data.variantId }),\n };\n}\n\nfunction richTextHeadingLevel(property: PageBlockDefinitionProperty): number | undefined {\n const style = property.options?.richTextStyle;\n if (!style) return undefined;\n\n switch (style) {\n case \"Title1\":\n return 1;\n case \"Title2\":\n return 2;\n case \"Title3\":\n return 3;\n case \"Title4\":\n return 4;\n case \"Title5\":\n return 5;\n case \"Callout\":\n case \"Default\":\n case \"Quote\":\n return undefined;\n }\n}\n\nfunction serializeCalloutType(calloutType: PageBlockCalloutType) {\n switch (calloutType) {\n case \"Error\":\n return \"critical\";\n case \"Info\":\n return \"neutral\";\n case \"Success\":\n return \"positive\";\n case \"Warning\":\n return \"warning\";\n case \"Primary\":\n return \"primary\";\n }\n}\n\n//\n// Rich text\n//\n\nfunction serializeRichTextNodePart(richText: PageBlockText): Pick<ProsemirrorNode, \"content\"> {\n const spans = serializeRichText(richText);\n if (spans.length) return { content: spans };\n return {};\n}\n\nfunction serializeRichText(richText: PageBlockText) {\n return richText.spans.map(serializeTextSpan).flat();\n}\n\nfunction serializeTextSpan(span: PageBlockTextSpan): ProsemirrorNode[] {\n const hardBreakType = \"hardBreak\";\n\n const marks = span.attributes.map(serializeTextSpanAttribute);\n\n const textParts = span.text.split(\"\\n\");\n const interspersed: ProsemirrorNode[] = [\n {\n type: \"text\",\n text: textParts[0],\n\n ...(marks.length && { marks: marks }),\n },\n ];\n\n for (let i = 1; i < textParts.length; i++) {\n interspersed.push(\n {\n type: hardBreakType,\n },\n {\n type: \"text\",\n text: textParts[i],\n\n ...(marks.length && { marks: marks }),\n }\n );\n }\n\n return interspersed.filter(t => t.type === hardBreakType || !!t.text);\n}\n\nfunction serializeTextSpanAttribute(spanAttribute: PageBlockTextSpanAttribute): ProsemirrorMark {\n switch (spanAttribute.type) {\n case \"Bold\":\n return { type: \"bold\", attrs: {} };\n case \"Italic\":\n return { type: \"italic\", attrs: {} };\n case \"Strikethrough\":\n return { type: \"strike\", attrs: {} };\n case \"Code\":\n return { type: \"code\", attrs: {} };\n case \"Link\":\n if (spanAttribute.link) {\n return serializeLinkMark(\n spanAttribute.link,\n spanAttribute.openInNewTab ?? spanAttribute.openInNewWindow ?? false\n );\n } else if (spanAttribute.documentationItemId) {\n return serializeLinkMark(\n `@page:${spanAttribute.documentationItemId}`,\n spanAttribute.openInNewTab ?? spanAttribute.openInNewWindow ?? false\n );\n } else {\n return serializeLinkMark(\"about:blank\", spanAttribute.openInNewTab ?? spanAttribute.openInNewWindow ?? false);\n }\n }\n}\n\nfunction serializeLinkMark(href: string, openInNewTab: boolean): ProsemirrorMark {\n return {\n type: \"link\",\n attrs: {\n href: href,\n target: openInNewTab ? \"_blank\" : \"_self\",\n rel: \"noopener noreferrer nofollow\",\n class: \"tiptap-link\",\n },\n };\n}\n\nexport function serializeAsCustomBlock(block: PageBlockEditorModel, definition: PageBlockDefinition): ProsemirrorNode {\n const items = block.data.items.map(i => {\n return {\n id: i.id,\n props: i.props,\n linksTo: i.linksTo,\n };\n });\n\n const columns = block.data.appearance?.numberOfColumns;\n\n return {\n type: serializeCustomBlockNodeType(block, definition),\n attrs: {\n id: block.id,\n definitionId: block.data.packageId,\n ...(block.data.variantId && { variantId: block.data.variantId }),\n items: JSON.stringify(items),\n\n ...(block.data.appearance && { appearance: JSON.stringify(block.data.appearance) }),\n ...(columns && { columns: columns }),\n },\n };\n}\n\nfunction serializeCustomBlockNodeType(block: PageBlockEditorModel, definition: PageBlockDefinition): string {\n switch (block.data.packageId) {\n case \"io.supernova.block.image\":\n return \"image\";\n\n default:\n return \"blockNode\";\n }\n}\n\nfunction nonNullFilter<T>(item: T | null): item is T {\n return !!item;\n}\n","import { PageBlockEditorModel } from \"./model/block\";\nimport {\n PageBlockDefinition,\n PageBlockDefinitionPropertyType,\n PageBlockItemEmbedValue,\n PageBlockItemMultiRichTextValue,\n PageBlockItemRichTextValue,\n PageBlockItemTableValue,\n PageBlockItemUntypedValue,\n PageBlockItemV2,\n PageBlockText,\n} from \"@supernova-studio/model\";\n\nexport const BlockParsingUtils = {\n singleBlockItem(block: PageBlockEditorModel) {\n if (!block.data.items.length) throw new Error(`Block ${block.id} has no items`);\n if (block.data.items.length > 1) throw new Error(`Block ${block.id} has more than 1 item`);\n\n return block.data.items[0]!;\n },\n\n richTextPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemRichTextValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const richText = PageBlockItemRichTextValue.parse(objectValue);\n\n return richText;\n },\n\n multiRichTextPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemMultiRichTextValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const richText = PageBlockItemMultiRichTextValue.parse(objectValue);\n\n return richText;\n },\n\n tablePropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemTableValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const table = PageBlockItemTableValue.parse(objectValue);\n\n return table;\n },\n\n embedPropertyValue(item: PageBlockItemV2, propertyKey: string): PageBlockItemEmbedValue {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const embed = PageBlockItemEmbedValue.parse(objectValue);\n\n return embed;\n },\n\n objectPropertyValue(item: PageBlockItemV2, propertyKey: string) {\n const value = this.propertyValueOrThrow(item, propertyKey);\n\n if (typeof value !== \"object\") {\n throw new Error(`Value for property ${propertyKey} is expected to be an object, but instead is ${typeof value}`);\n }\n\n return value;\n },\n\n propertyValueOrThrow(item: PageBlockItemV2, propertyKey: string): PageBlockItemUntypedValue {\n const value = item.props[propertyKey];\n if (!value) throw new Error(`Property ${propertyKey} is not defined on block item`);\n\n return value;\n },\n};\n\nexport const BlockDefinitionUtils = {\n firstRichTextProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"RichText\");\n if (property) return property;\n return undefined;\n },\n\n firstMultiRichTextProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"MultiRichText\");\n if (property) return property;\n return undefined;\n },\n\n firstTableProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"Table\");\n if (property) return property;\n return undefined;\n },\n\n firstEmbedProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === \"EmbedURL\");\n if (property) return property;\n return undefined;\n },\n\n richTextProperty(definition: PageBlockDefinition, propertyKey: string) {\n return this.property(definition, propertyKey, \"RichText\");\n },\n\n property(\n definition: PageBlockDefinition,\n propertyKey: string,\n expectedPropertyType?: PageBlockDefinitionPropertyType\n ) {\n const property = definition.item.properties.find(p => p.id === propertyKey);\n if (!property) {\n throw new Error(`Definition ${definition.id} doesn't contain property ${propertyKey}`);\n }\n\n if (expectedPropertyType && property.type !== expectedPropertyType) {\n throw new Error(\n `Property ${propertyKey} of definition ${definition.id} expected to be ${expectedPropertyType} but was ${property.type}`\n );\n }\n\n return property;\n },\n};\n","import {\n PageBlockDefinition,\n PageBlockDefinitionMultiRichTextPropertyStyle,\n PageBlockDefinitionMutiRichTextOptions,\n PageBlockDefinitionProperty,\n PageBlockText,\n} from \"@supernova-studio/model\";\nimport { PageBlockEditorModel } from \"./model\";\nimport { BlockParsingUtils } from \"./utils\";\n\ntype Node = ListNode | ListItemNode;\n\nexport type ListNode = {\n type: \"List\";\n listType: \"Ordered\" | \"Unordered\";\n block: PageBlockEditorModel;\n leadingChildren: ListItemNode[];\n children: Node[];\n};\n\nexport type ListItemNode = {\n type: \"ListItem\";\n text: PageBlockText;\n};\n\nexport class ListTreeBuilder {\n private rootNode: ListNode | undefined;\n\n addWithProperty(\n block: PageBlockEditorModel,\n multiRichTextProperty: PageBlockDefinitionProperty\n ): ListNode | undefined {\n const parsedOptions = PageBlockDefinitionMutiRichTextOptions.optional().parse(multiRichTextProperty.options);\n return this.add(block, multiRichTextProperty.id, parsedOptions?.multiRichTextStyle || \"OL\");\n }\n\n add(\n block: PageBlockEditorModel,\n multiRichTextPropertyId: string,\n multiRichTextPropertyStyle: PageBlockDefinitionMultiRichTextPropertyStyle\n ) {\n const list = this.createList(block, multiRichTextPropertyId, multiRichTextPropertyStyle);\n\n // No root\n if (!this.rootNode) {\n this.rootNode = list;\n return undefined;\n }\n\n // Inserting at the root\n if (block.data.indentLevel <= 0) {\n // We are at the root\n if (this.rootNode.listType === list.listType) {\n // Merge items into the current list\n this.rootNode.children.push(...list.leadingChildren);\n return;\n } else {\n const flushed = this.flush();\n this.rootNode = list;\n return flushed;\n }\n }\n\n // Inserting at a depth\n const listParent = this.getParentOfDepth(block.data.indentLevel);\n\n const lastChild = listParent.children[listParent.children.length - 1];\n if (lastChild?.type === \"List\") {\n // Merge items into the current list\n lastChild.children.push(...list.leadingChildren);\n return;\n } else {\n // We can add this list as a child of another list\n listParent.children.push(list);\n }\n }\n\n flush(): ListNode | undefined {\n const node = this.rootNode;\n this.rootNode = undefined;\n return node;\n }\n\n private getParentOfDepth(depth: number): ListNode {\n if (!this.rootNode || depth <= 0) throw new Error(\"Invalid state\");\n\n let currentNode = this.rootNode;\n let currentDepth = depth - 1;\n\n while (currentDepth > 0) {\n // Check if we can go any lower\n if (currentNode.children.length === 0) return currentNode;\n\n const lastChild = currentNode.children[currentNode.children.length - 1];\n if (lastChild.type !== \"List\") {\n // Cannot go lower if last child is not a list\n return currentNode;\n }\n\n currentNode = lastChild;\n currentDepth--;\n }\n\n return currentNode;\n }\n\n private createList(\n block: PageBlockEditorModel,\n multiRichTextPropertyId: string,\n multiRichTextPropertyStyle: PageBlockDefinitionMultiRichTextPropertyStyle\n ): ListNode {\n // private createList(block: PageBlockEditorModel, multiRichTextProperty: PageBlockDefinitionProperty): ListNode {\n const blockItem = BlockParsingUtils.singleBlockItem(block);\n const multiRichTextValue = BlockParsingUtils.multiRichTextPropertyValue(blockItem, multiRichTextPropertyId);\n\n const leadingChildren: ListNode[\"leadingChildren\"] = multiRichTextValue.value.map(t => {\n return {\n type: \"ListItem\",\n text: t,\n };\n });\n\n if (!leadingChildren.length) {\n leadingChildren.push({ type: \"ListItem\", text: { spans: [] } });\n }\n\n return {\n type: \"List\",\n listType: multiRichTextPropertyStyle === \"OL\" ? \"Ordered\" : \"Unordered\",\n leadingChildren: leadingChildren,\n block: block,\n children: [],\n };\n }\n}\n","import { PageBlockDefinition } from \"@supernova-studio/model\";\n\nexport function getMockPageBlockDefinitions(): PageBlockDefinition[] {\n return blocks.map(block => {\n return {\n ...block,\n item: {\n ...block.item,\n\n // Make sure variatns array is copied\n variants: [...block.item.variants],\n },\n };\n });\n}\n\nconst blocks: PageBlockDefinition[] = [\n {\n id: \"io.supernova.block.rich-text\",\n name: \"Text\",\n description: \"Plain text\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v3/text.svg\",\n searchKeywords: [\"paragraph\", \"rich text\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: {\n richTextStyle: \"Default\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: false,\n },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use rich text block to write text and add additional formatting to it.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/text-HxZ9ssJR\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.title1\",\n name: \"Heading 1\",\n description: \"Main sections within the page\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/title-1.svg\",\n searchKeywords: [\"title\", \"h1\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: {\n placeholder: \"Heading 1\",\n richTextStyle: \"Title1\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for main sections within the page, introducing broad topics or themes.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.title2\",\n name: \"Heading 2\",\n description: \"Section subheadings\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/title-2.svg\",\n searchKeywords: [\"title\", \"h2\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: {\n placeholder: \"Heading 2\",\n richTextStyle: \"Title2\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for subheadings, indicating major subsections under the main sections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.title3\",\n name: \"Heading 3\",\n description: \"Further subsections\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/title-3.svg\",\n searchKeywords: [\"title\", \"h3\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: {\n placeholder: \"Heading 3\",\n richTextStyle: \"Title3\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for further subsections, detailing specific topics within the major subsections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.title4\",\n name: \"Heading 4\",\n description: \"Details in subsections\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/title-4.svg\",\n searchKeywords: [\"title\", \"h4\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: {\n placeholder: \"Heading 4\",\n richTextStyle: \"Title4\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for sub-divisions, elaborating on details within the subsections.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.title5\",\n name: \"Heading 5\",\n description: \"Nuanced details or sub-points\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/title-5.svg\",\n searchKeywords: [\"title\", \"h5\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: {\n placeholder: \"Heading 5\",\n richTextStyle: \"Title5\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for nuanced details or specific sub-points within sub-divisions.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/heading-MUKlJ7dY\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.ordered-list\",\n name: \"Ordered list\",\n description: \"A list with numbers\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/list-ordered.svg\",\n searchKeywords: [\"ol\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"MultiRichText\",\n options: {\n multiRichTextStyle: \"OL\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Display a sequence of numbers or letters to indicate order.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/list-UC5iPZLK\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.unordered-list\",\n name: \"Bullet list\",\n description: \"A list with bullet points\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/list-unordered.svg\",\n searchKeywords: [\"ul\", \"bullet points\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"MultiRichText\",\n options: {\n multiRichTextStyle: \"UL\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"A list of items displayed with bullet points without a specific sequence.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/list-UC5iPZLK\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n\n {\n id: \"io.supernova.block.divider\",\n name: \"Divider\",\n description: \"A section divider\",\n category: \"Layout\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/divider.svg\",\n searchKeywords: [\"hr\", \"line\", \"rule\", \"separator\"],\n item: {\n properties: [\n {\n id: \"divider\",\n name: \"Divider\",\n type: \"Divider\",\n options: {},\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"divider\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"A thematic break or horizontal rule, often used to separate content or define a change in topic.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/divider-tLuxooLH\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.blockquote\",\n name: \"Quote\",\n description: \"Display a quotation\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/blockquote.svg\",\n searchKeywords: [\"cite\", \"blockquote\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: {\n placeholder: \"Write a quote...\",\n richTextStyle: \"Quote\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use a blockquote to set off a quotation or cited content from the main text.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/blockquote-zYWAsb6X\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.callout\",\n name: \"Callout\",\n description: \"Highlight a section of text\",\n category: \"Text\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v3/callout.svg\",\n searchKeywords: [\"banner\", \"alert\", \"note\", \"tip\", \"warning\"],\n item: {\n properties: [\n {\n id: \"text\",\n name: \"Text\",\n type: \"RichText\",\n options: {\n placeholder: \"Highlight some information...\",\n richTextStyle: \"Callout\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"text\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use to highlight a section of text.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/text/callout-ZPlZObD1\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.image\",\n name: \"Image\",\n description: \"Display an image or Figma image\",\n category: \"Media\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/image.svg\",\n searchKeywords: [\"image\", \"figma\", \"frame\", \"picture\", \"photo\"],\n item: {\n properties: [\n {\n id: \"image\",\n name: \"Image\",\n type: \"Image\",\n options: {\n allowCaption: true,\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"image\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use to display an image or Figma image.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/image-Ue8VdT8B\",\n },\n },\n appearance: {\n isBordered: false,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.shortcut-links\",\n name: \"Shortcut links\",\n description: \"Link to a page or external URL\",\n category: \"Media\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/shortcuts.svg\",\n searchKeywords: [\"url\", \"page\", \"card\"],\n item: {\n properties: [\n {\n id: \"block.links.property.image\",\n name: \"Image\",\n type: \"Image\",\n options: {\n aspectRatio: \"Landscape\",\n allowCaption: false,\n },\n variantOptions: {\n iconOnTop: {\n width: \"Icon\",\n aspectRatio: \"Square\",\n },\n imageOnLeft: {\n width: \"Medium\",\n },\n iconOnLeft: {\n width: \"Icon\",\n aspectRatio: \"Square\",\n },\n },\n },\n {\n id: \"block.links.property.title\",\n name: \"Title\",\n type: \"Text\",\n options: {\n textStyle: \"Title5\",\n placeholder: \"Add title\",\n },\n },\n {\n id: \"block.links.property.description\",\n name: \"Short description\",\n type: \"Text\",\n options: {\n textStyle: \"Default\",\n color: \"NeutralFaded\",\n placeholder: \"Add description\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"imageOnTop\",\n name: \"Image on top\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/shortcuts-image-on-top.svg\",\n layout: {\n type: \"Column\",\n children: [\"block.links.property.image\", \"block.links.property.title\", \"block.links.property.description\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 4,\n defaultColumns: 3,\n appearance: {},\n },\n {\n id: \"imageOnLeft\",\n name: \"Image on left\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/shortcuts-leading-image.svg\",\n layout: {\n type: \"Row\",\n children: [\n {\n type: \"Column\",\n children: [\"block.links.property.image\"],\n columnAlign: \"Start\",\n columnResizing: \"Hug\",\n gap: \"Medium\",\n },\n {\n type: \"Column\",\n children: [\"block.links.property.title\", \"block.links.property.description\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Small\",\n },\n ],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"iconOnTop\",\n name: \"Icon on top\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/shortcuts-icon-on-top.svg\",\n layout: {\n type: \"Column\",\n children: [\"block.links.property.image\", \"block.links.property.title\", \"block.links.property.description\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"iconOnLeft\",\n name: \"Icon on left\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/shortcuts-leading-icon.svg\",\n layout: {\n type: \"Row\",\n children: [\n {\n type: \"Column\",\n children: [\"block.links.property.image\"],\n columnAlign: \"Start\",\n columnResizing: \"Hug\",\n gap: \"Medium\",\n },\n {\n type: \"Column\",\n children: [\"block.links.property.title\", \"block.links.property.description\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Small\",\n },\n ],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 2,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"imageOnTop\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: -1,\n allowLinks: true,\n newItemLabel: \"Add shortcut\",\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use link block to create single or multiple links to places in or out of your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/links/shortcuts/general-jVfNifo4\",\n },\n newItemLabel: \"Add shortcut\",\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.embed-figma\",\n name: \"Figma embed\",\n description: \"Embed a Figma canvas or prototype\",\n category: \"Media\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/embed-figma.svg\",\n searchKeywords: [\"embed\", \"figma\", \"design\", \"prototype\", \"canvas\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Figma URL\",\n type: \"EmbedURL\",\n options: {\n allowCaption: false,\n allowResize: true,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?(figma.com)/.+$\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"embed\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Figma canvas or prototype to your documentation.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/figma/embed-figma-GPNJsT8A\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.storybook\",\n name: \"Storybook\",\n description: \"Embed Storybook canvas\",\n category: \"Media\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/storybook.svg\",\n searchKeywords: [\"storybook\", \"story\", \"stories\", \"example\", \"preview\", \"code\", \"react\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Storybook URL\",\n type: \"Storybook\",\n options: {\n allowCaption: true,\n allowResize: true,\n defaultHeight: 400,\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"embed\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Storybook story to your documentation.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/code/storybook-1EGPhwBl\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.embed-youtube\",\n name: \"YouTube\",\n description: \"Embed a Youtube video\",\n category: \"Media\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/embed-youtube.svg\",\n searchKeywords: [\"embed\", \"video\", \"player\", \"upload\"],\n item: {\n properties: [\n {\n id: \"embed\",\n name: \"Youtube URL\",\n type: \"EmbedURL\",\n options: {\n allowCaption: false,\n allowResize: false,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?(youtube.com|youtu.?be)/.+$\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"embed\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a YouTube video to your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/youtube-Gh8VUrSF\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.embed-lottie\",\n name: \"Lottie animation\",\n description: \"Preview a Lottie animation\",\n category: \"Media\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/lottie.svg\",\n searchKeywords: [\"embed\", \"lottie\", \"animation\", \"rive\", \"json\"],\n item: {\n properties: [\n {\n id: \"url\",\n name: \"Lottie URL\",\n type: \"URL\",\n description: \"Add URL to your Lottie animation file. We support .json and .lottie file extensions.\",\n options: {\n urlValidationRegex: \"^(http|https)://.*.(json|lottie)$\",\n },\n },\n {\n id: \"height\",\n name: \"Height\",\n type: \"Number\",\n options: {\n defaultValue: 270,\n },\n },\n {\n id: \"width\",\n name: \"Width\",\n type: \"Number\",\n options: {\n defaultValue: 400,\n },\n },\n {\n id: \"autoplay\",\n name: \"Autoplay\",\n type: \"Boolean\",\n options: {\n defaultValue: true,\n },\n },\n {\n id: \"loop\",\n name: \"Loop\",\n type: \"Boolean\",\n options: {\n defaultValue: true,\n },\n },\n {\n id: \"playerControls\",\n name: \"Show player controls\",\n type: \"Boolean\",\n options: {\n defaultValue: true,\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/lottie-player.svg\",\n description: \"Embed a Lottie animation to your documentation.\",\n layout: {\n type: \"Column\",\n children: [\"url\", \"height\", \"width\", \"autoplay\", \"loop\", \"playerControls\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed a Lottie animation to your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/lottie-preview-7CqFdGv9\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: true,\n showBlockHeaderInEditor: true,\n },\n },\n {\n id: \"io.supernova.block.embed\",\n name: \"Embed\",\n description: \"Embed a generic URL\",\n category: \"Media\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/embed.svg\",\n searchKeywords: [\"embed\", \"url\", \"iframe\", \"site\", \"import\"],\n item: {\n properties: [\n {\n id: \"embedUrl\",\n name: \"Embed URL\",\n type: \"EmbedURL\",\n options: {\n allowCaption: true,\n allowResize: true,\n defaultHeight: 400,\n urlValidationRegex: \"^(https?://)?(www.)?.+$\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"embedUrl\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Embed any page to your documentation as an iframe.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/embed/public-url-2ZeRQ332\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.markdown\",\n name: \"Markdown\",\n description: \"Render Markdown URL\",\n category: \"Other\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/markdown.svg\",\n searchKeywords: [\"md\", \"embed\", \"api\", \"props\", \"mdx\"],\n item: {\n properties: [\n {\n id: \"markdownUrl\",\n name: \"Markdown URL\",\n type: \"Markdown\",\n options: {\n urlValidationRegex: \"^(https?://)?(www\\\\.)?.+\\\\.md(\\\\?.*)?$\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"plain\",\n name: \"Plain\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/markdown-plain.svg\",\n layout: {\n type: \"Column\",\n children: [\"markdownUrl\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"bordered\",\n name: \"Bordered\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/markdown-bordered.svg\",\n layout: {\n type: \"Column\",\n children: [\"markdownUrl\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"boxed\",\n name: \"Boxed\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/markdown-boxed.svg\",\n layout: {\n type: \"Column\",\n children: [\"markdownUrl\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"plain\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Render any markdown file directly inside of your documentation.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/code/markdown/general-B8wQVOem\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: true,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.table\",\n name: \"Table\",\n description: \"Display a simple table\",\n category: \"Layout\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/table.svg\",\n searchKeywords: [\"grid\", \"data\", \"spreadsheet\", \"api\"],\n item: {\n properties: [\n {\n id: \"table\",\n name: \"Table\",\n type: \"Table\",\n options: {},\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"table\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use for displaying data in a tabular format.\",\n documentationLink: \"https://learn.supernova.io/latest/documentation/types-of-blocks/layout/table-R8KGnxej\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.design-tokens\",\n name: \"Design tokens\",\n description: \"A list of design tokens\",\n category: \"Tokens\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/design-tokens.svg\",\n searchKeywords: [\n \"tokens\",\n \"color\",\n \"typography\",\n \"spacing\",\n \"grid\",\n \"material\",\n \"theme\",\n \"token list\",\n \"token group\",\n ],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n options: {\n renderLayoutAs: \"List\",\n defaultTheme: \"none\",\n defaultValuePreview: \"Split\",\n },\n variantOptions: {\n grid: {\n renderLayoutAs: \"Grid\",\n },\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"table\",\n name: \"Table\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/tokens-table.svg\",\n layout: {\n type: \"Column\",\n children: [\"tokens\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"grid\",\n name: \"Grid\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/tokens-grid.svg\",\n layout: {\n type: \"Column\",\n children: [\"tokens\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 4,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"table\",\n },\n behavior: {\n dataType: \"Token\",\n entities: {\n selectionType: \"EntityAndGroup\",\n maxSelected: 0,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Show a group of design tokens. Automatically display all subgroups too.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/token/tokens/general-84NRgxGl#section-token-group-09\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.token-color-ramps\",\n name: \"Color ramps\",\n description: \"The best way to display colors\",\n category: \"Tokens\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/color-ramp.svg\",\n searchKeywords: [\"tokens\", \"ramp\", \"shades\", \"palette\", \"spectrum\", \"stack\", \"range\", \"swatch\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n options: {\n allowedTypes: [\"Color\"],\n allowPropertySelection: false,\n allowThemeSelection: true,\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/tokens-color-stack.svg\",\n layout: {\n type: \"Column\",\n children: [\"tokens\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 2,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Token\",\n entities: {\n selectionType: \"EntityAndGroup\",\n maxSelected: 0,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"The best way to display colors\",\n documentationLink: \"https://learn.supernova.io\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.color-accessibility-grid\",\n name: \"Accessibility color grid\",\n description: \"Visualize accessibility of your color tokens\",\n category: \"Tokens\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v3/token-accessibility-grid.svg\",\n searchKeywords: [\"tokens\", \"color\", \"accessibility\", \"grid\", \"contrast\"],\n item: {\n properties: [\n {\n id: \"tokens\",\n name: \"Tokens\",\n type: \"Token\",\n options: {\n allowedTypes: [\"Color\"],\n allowPropertySelection: false,\n allowThemeSelection: false,\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/contrast-grid-large.svg\",\n description:\n \"Visualize accessibility of your colors by automatically calculating their color contrast ratio.\",\n layout: {\n type: \"Column\",\n children: [\"tokens\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Token\",\n entities: {\n selectionType: \"EntityAndGroup\",\n maxSelected: 0,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Visualize accessibility of your colors by automatically calculating their color contrast ratio.\",\n documentationLink: \"https://learn.supernova.io\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.code\",\n name: \"Code\",\n description: \"Code description\",\n category: \"Code\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/code.svg\",\n searchKeywords: [\"code\"],\n item: {\n properties: [\n {\n id: \"code\",\n name: \"Code\",\n type: \"Code\",\n options: {},\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n layout: {\n type: \"Column\",\n children: [\"code\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Code descriptor.\",\n },\n },\n appearance: {\n isBordered: false,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.code-react\",\n name: \"React code\",\n description: \"Render a code snippet\",\n category: \"Code\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v3/code-react.svg\",\n searchKeywords: [\"code\", \"react\", \"snippet\", \"storybook\", \"editor\", \"example\", \"sandbox\"],\n item: {\n properties: [\n {\n id: \"code\",\n name: \"Code\",\n type: \"CodeSandbox\",\n options: {\n renderLayoutAs: \"PreviewOnTop\",\n },\n variantOptions: {\n codeTop: {\n renderLayoutAs: \"PreviewOnBottom\",\n },\n codeLeft: {\n renderLayoutAs: \"PreviewOnRight\",\n },\n codeRight: {\n renderLayoutAs: \"PreviewOnLeft\",\n },\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"codeBottom\",\n name: \"Full width, code bottom\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/react-code-bottom.svg\",\n description: \"Full-width block of code, with a preview on top.\",\n layout: {\n type: \"Column\",\n children: [\"code\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"codeTop\",\n name: \"Full width, code top\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/react-code-top.svg\",\n description: \"Full-width block of code, with a preview on bottom.\",\n layout: {\n type: \"Column\",\n children: [\"code\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"codeLeft\",\n name: \"Side by side, code left\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/react-code-left.svg\",\n description: \"Side-by-side preview and code, with code on the left.\",\n layout: {\n type: \"Column\",\n children: [\"code\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"codeRight\",\n name: \"Side by side, code right\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/react-code-right.svg\",\n description: \"Side-by-side preview and code, with code on the right.\",\n layout: {\n type: \"Column\",\n children: [\"code\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"codeBottom\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Display rendered code example\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/code/render-react-code-vxufnkFm\",\n },\n },\n appearance: {\n isBordered: false,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.assets\",\n name: \"Assets\",\n description: \"Display icons or illustrations\",\n category: \"Assets\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/assets.svg\",\n searchKeywords: [\"icons\", \"illustrations\", \"grid\", \"svg\", \"logos\"],\n item: {\n properties: [\n {\n id: \"assets\",\n name: \"Assets\",\n type: \"Asset\",\n options: {},\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Simple grid\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/assets-simple-grid.svg\",\n description: \"A simple grid of assets. Both the title and description are displayed below the preview.\",\n layout: {\n type: \"Column\",\n children: [\"assets\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 8,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"square-grid\",\n name: \"Square grid\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/assets-square-grid.svg\",\n description: \"Bordered square grid tailored for displaying icon assets. Only the title is displayed.\",\n layout: {\n type: \"Column\",\n children: [\"assets\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 8,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n {\n id: \"borderless-grid\",\n name: \"Borderless grid\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/assets-borderless-grid.svg\",\n description: \"Borderless grid, perfect for displaying assets of the same height. Only the title is visible.\",\n layout: {\n type: \"Column\",\n children: [\"assets\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 8,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Asset\",\n entities: {\n selectionType: \"EntityAndGroup\",\n maxSelected: 0,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Display a grid of icons or illustrations.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/media-and-assets/asset/general-xa6EgXb2\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.figma-frames\",\n name: \"Figma images\",\n description: \"Generate images from Figma layers\",\n category: \"Figma\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/figma-frames.svg\",\n searchKeywords: [\"figma\", \"frames\", \"image\", \"layer\"],\n item: {\n properties: [\n {\n id: \"figmaNodes\",\n name: \"Figma Frames\",\n type: \"FigmaNode\",\n options: {},\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"bordered\",\n name: \"Bordered\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/figma-nodes-boxed.svg\",\n description: \"Tiles with background and border, great for larger sets of frames.\",\n layout: {\n type: \"Column\",\n children: [\"figmaNodes\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 8,\n defaultColumns: 1,\n appearance: {},\n },\n {\n id: \"plain\",\n name: \"Plain\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/figma-nodes-plain.svg\",\n description: \"Frame as it is in Figma with no extra formatting, great for single images.\",\n layout: {\n type: \"Column\",\n children: [\"figmaNodes\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 8,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"bordered\",\n },\n behavior: {\n dataType: \"FigmaNode\",\n entities: {\n selectionType: \"Entity\",\n maxSelected: 0,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Generate images from Figma layers\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/figma/figma-frames/general-f3IYC5dg\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.release-notes\",\n name: \"Release notes\",\n description: \"Show version release notes\",\n category: \"Other\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/release-notes.svg\",\n searchKeywords: [\"version\", \"changelog\", \"history\"],\n item: {\n properties: [],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/release-notes-2.svg\",\n description: \"Show formatted release notes from all previously released versions.\",\n layout: {\n type: \"Column\",\n children: [],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {},\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: 1,\n allowLinks: false,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Show formatted release notes from all previously released versions.\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: true,\n showBlockHeaderInEditor: true,\n },\n },\n {\n id: \"io.supernova.block.component-checklist\",\n name: \"Component checklist\",\n description: \"Highlight specific component properties\",\n category: \"Components\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/component-checklist.svg\",\n searchKeywords: [\"components\", \"health\", \"properties\", \"overview\", \"status\"],\n item: {\n properties: [\n {\n id: \"components\",\n name: \"Components\",\n type: \"Component\",\n options: {\n renderLayoutAs: \"List\",\n },\n },\n {\n id: \"title\",\n name: \"Title\",\n type: \"Text\",\n options: {\n defaultValue: \"Component checklist\",\n },\n },\n {\n id: \"showDescription\",\n name: \"Show description\",\n type: \"Boolean\",\n options: {\n defaultValue: true,\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/component-checklist.svg\",\n layout: {\n type: \"Column\",\n children: [\"components\", \"showDescription\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Component\",\n entities: {\n selectionType: \"Entity\",\n maxSelected: 1,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Highlight specific component properties\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/component/component-checklist-NXepPIpZ\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.component-checklist-all\",\n name: \"Component overview table\",\n description: \"Show an overview of all components\",\n category: \"Components\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/component-checklist-all.svg\",\n searchKeywords: [\"components\", \"health\", \"overview\", \"status\"],\n item: {\n properties: [\n {\n id: \"components\",\n name: \"Components\",\n type: \"Component\",\n options: {\n renderLayoutAs: \"Table\",\n },\n },\n {\n id: \"showLastUpdatedColumn\",\n name: \"Show last updated column\",\n type: \"Boolean\",\n options: {\n defaultValue: true,\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/component-overview-table.svg\",\n layout: {\n type: \"Column\",\n children: [\"components\", \"showLastUpdatedColumn\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Component\",\n entities: {\n selectionType: \"Group\",\n maxSelected: 1,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Show an overview of all your components\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/component/component-overview-table-W8eOtJ5t\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.component-health\",\n name: \"Component health\",\n description: \"Show component health and other attributes\",\n category: \"Components\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/v2/component-health.svg\",\n searchKeywords: [\"components\", \"health\", \"properties\", \"overview\", \"status\"],\n item: {\n properties: [\n {\n id: \"components\",\n name: \"Components\",\n type: \"Component\",\n options: {\n renderLayoutAs: \"List\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"default\",\n name: \"Default\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/component-health.svg\",\n layout: {\n type: \"Column\",\n children: [\"components\"],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 1,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n ],\n defaultVariantKey: \"default\",\n },\n behavior: {\n dataType: \"Component\",\n entities: {\n selectionType: \"Entity\",\n maxSelected: 1,\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Show component health and additional attributes\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/component/component-health-sezSxEED\",\n },\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n {\n id: \"io.supernova.block.do-dont-guidelines\",\n name: \"Guidelines\",\n description: \"Do/Don’t rules and best practices.\",\n category: \"Guidelines\",\n icon: \"https://cdn-assets.supernova.io/blocks/icons/guidelines.svg\",\n searchKeywords: [\"dont\", \"caution\", \"rules\"],\n item: {\n properties: [\n {\n id: \"block.do-dont-guidelines.property.image\",\n name: \"Image\",\n type: \"Image\",\n options: {\n allowCaption: false,\n },\n },\n {\n id: \"block.do-dont-guidelines.property.type\",\n name: \"Type\",\n type: \"SingleSelect\",\n options: {\n defaultChoice: \"do\",\n choices: [\n {\n value: \"do\",\n name: \"Do\",\n color: \"Green\",\n icon: \"CheckCircle\",\n },\n {\n value: \"dont\",\n name: \"Don't\",\n color: \"Red\",\n icon: \"CrossCircle\",\n },\n {\n value: \"caution\",\n name: \"Caution\",\n color: \"Orange\",\n icon: \"Alert\",\n },\n ],\n singleSelectStyle: \"SegmentedControl\",\n },\n },\n {\n id: \"block.do-dont-guidelines.property.description\",\n name: \"Description\",\n type: \"Text\",\n options: {\n textStyle: \"Default\",\n color: \"Neutral\",\n placeholder: \"Add description\",\n },\n },\n ],\n appearance: {\n isBordered: true,\n hasBackground: false,\n },\n variants: [\n {\n id: \"simple\",\n name: \"Simple\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/guidelines-simple.svg\",\n description: \"With a minimalist badge at the top, this design is great for content guidelines.\",\n layout: {\n type: \"Column\",\n children: [\n \"block.do-dont-guidelines.property.type\",\n \"block.do-dont-guidelines.property.image\",\n \"block.do-dont-guidelines.property.description\",\n ],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 3,\n defaultColumns: 2,\n appearance: {},\n },\n {\n id: \"prominent\",\n name: \"Prominent\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/guidelines-prominent.svg\",\n description: \"Recommended when you need guidelines that need to stand out.\",\n layout: {\n type: \"Column\",\n children: [\n \"block.do-dont-guidelines.property.type\",\n \"block.do-dont-guidelines.property.image\",\n \"block.do-dont-guidelines.property.description\",\n ],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 3,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n {\n id: \"contained\",\n name: \"Contained\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/guidelines-contained.svg\",\n description: \"Perfect for component guidelines with spacious images.\",\n layout: {\n type: \"Column\",\n children: [\n \"block.do-dont-guidelines.property.type\",\n \"block.do-dont-guidelines.property.image\",\n \"block.do-dont-guidelines.property.description\",\n ],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 3,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n {\n id: \"side-border\",\n name: \"Side border\",\n image: \"https://cdn-assets.supernova.io/blocks/variants/guidelines-side-border.svg\",\n description: \"The side border makes this variant well-suited for longer text guidelines.\",\n layout: {\n type: \"Column\",\n children: [\n \"block.do-dont-guidelines.property.type\",\n \"block.do-dont-guidelines.property.image\",\n \"block.do-dont-guidelines.property.description\",\n ],\n columnAlign: \"Start\",\n columnResizing: \"Fill\",\n gap: \"Medium\",\n },\n maxColumns: 3,\n defaultColumns: 1,\n appearance: {\n isEditorPresentationDifferent: true,\n },\n },\n ],\n defaultVariantKey: \"simple\",\n },\n behavior: {\n dataType: \"Item\",\n items: {\n numberOfItems: -1,\n allowLinks: false,\n newItemLabel: \"Add guideline\",\n },\n },\n editorOptions: {\n onboarding: {\n helpText: \"Use link block to document your Do/Don't guidelines for your components and patterns.\",\n documentationLink:\n \"https://learn.supernova.io/latest/documentation/types-of-blocks/links/shortcuts/general-jVfNifo4\",\n },\n newItemLabel: \"Add guideline\",\n },\n appearance: {\n isBordered: true,\n hasBackground: false,\n isEditorPresentationDifferent: false,\n showBlockHeaderInEditor: false,\n },\n },\n];\n","import {\n PageBlockAppearanceV2,\n PageBlockCalloutType,\n PageBlockColorV2,\n PageBlockDefinition,\n PageBlockDefinitionProperty,\n PageBlockDefinitionPropertyType,\n PageBlockItemAssetPropertyValue,\n PageBlockItemAssetValue,\n PageBlockItemBooleanValue,\n PageBlockItemCodeValue,\n PageBlockItemColorValue,\n PageBlockItemComponentPropertyValue,\n PageBlockItemComponentValue,\n PageBlockItemDividerValue,\n PageBlockItemEmbedValue,\n PageBlockItemFigmaComponentValue,\n PageBlockItemFigmaNodeValue,\n PageBlockItemImageValue,\n PageBlockItemMarkdownValue,\n PageBlockItemMultiRichTextValue,\n PageBlockItemMultiSelectValue,\n PageBlockItemNumberValue,\n PageBlockItemRichTextValue,\n PageBlockItemSandboxValue,\n PageBlockItemSingleSelectValue,\n PageBlockItemStorybookValue,\n PageBlockItemTableCell,\n PageBlockItemTableNode,\n PageBlockItemTableValue,\n PageBlockItemTextValue,\n PageBlockItemTokenPropertyValue,\n PageBlockItemTokenTypeValue,\n PageBlockItemTokenValue,\n PageBlockItemUntypedValue,\n PageBlockItemUrlValue,\n PageBlockItemV2,\n PageBlockTableCellAlignment,\n PageBlockText,\n PageBlockTextSpan,\n PageBlockTextSpanAttribute,\n PageSectionColumnV2,\n PageSectionItemV2,\n nullishToOptional,\n} from \"@supernova-studio/model\";\nimport { yXmlFragmentToProsemirrorJSON } from \"y-prosemirror\";\nimport * as Y from \"yjs\";\nimport { ZodSchema, ZodTypeDef, z } from \"zod\";\nimport { PageBlockEditorModel, PageSectionEditorModel } from \"./model/block\";\nimport { DocumentationPageEditorModel } from \"./model/page\";\nimport { ProsemirrorMark, ProsemirrorNode } from \"./prosemirror/types\";\nimport { BlockDefinitionUtils } from \"./utils\";\n\nexport function yDocToPage(yDoc: Y.Doc, definitions: PageBlockDefinition[]): DocumentationPageEditorModel {\n return yXmlFragmentToPage(yDoc.getXmlFragment(\"default\"), definitions);\n}\n\nexport function yXmlFragmentToPage(\n fragment: Y.XmlFragment,\n definitions: PageBlockDefinition[]\n): DocumentationPageEditorModel {\n const prosemirrorJson = yXmlFragmentToProsemirrorJSON(fragment) as ProsemirrorNode;\n return prosemirrorDocToPage(prosemirrorJson, definitions);\n}\n\nexport function prosemirrorDocToPage(\n prosemirrorDoc: ProsemirrorNode,\n definitions: PageBlockDefinition[]\n): DocumentationPageEditorModel {\n const definitionsById = mapByUnique(definitions, d => d.id);\n\n return {\n blocks: internalProsemirrorNodesToPageItems(prosemirrorDoc.content ?? [], definitionsById),\n };\n}\n\nexport function shallowProsemirrorNodeToBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n return (\n prosemirrorNodeAndDefinitionToBlock(prosemirrorNode, definition, new Map([[definition.id, definition]]), 0)[0] ??\n null\n );\n}\n\n//\n// Sections\n//\n\nexport function prosemirrorNodeToSection(\n prosemirrorNode: ProsemirrorNode,\n definitions: PageBlockDefinition[]\n): PageSectionEditorModel | null {\n const definitionsById = mapByUnique(definitions, d => d.id);\n return internalProsemirrorNodeToSection(prosemirrorNode, definitionsById);\n}\n\nfunction internalProsemirrorNodeToSection(\n prosemirrorNode: ProsemirrorNode,\n definitionsMap: Map<string, PageBlockDefinition>\n): PageSectionEditorModel | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n return {\n id: id,\n type: \"Section\",\n variantId: getProsemirrorBlockVariantId(prosemirrorNode),\n sectionType: \"Tabs\",\n appearance: {\n contentExpandToEdges: true,\n expandToEdges: true,\n },\n items: (prosemirrorNode.content ?? [])\n .filter(c => c.type === \"sectionItem\")\n .map(c => prosemirrorNodeToSectionItem(c, definitionsMap))\n .filter(nonNullFilter),\n };\n}\n\nfunction prosemirrorNodeToSectionItem(\n prosemirrorNode: ProsemirrorNode,\n definitionsMap: Map<string, PageBlockDefinition>\n): PageSectionItemV2 | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n return {\n id: id,\n title: getProsemirrorAttribute(prosemirrorNode, \"title\", z.string()) ?? \"\",\n columns: (prosemirrorNode.content ?? [])\n .filter(c => c.type === \"sectionItemColumn\")\n .map(c => prosemirrorNodeToSectionColumns(c, definitionsMap))\n .filter(nonNullFilter),\n };\n}\n\nfunction prosemirrorNodeToSectionColumns(\n prosemirrorNode: ProsemirrorNode,\n definitionsMap: Map<string, PageBlockDefinition>\n): PageSectionColumnV2 | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n return {\n id: id,\n blocks: internalProsemirrorNodesToBlocks(prosemirrorNode.content ?? [], definitionsMap, 0),\n };\n}\n\n//\n// Blocks\n//\n\nexport function prosemirrorNodesToBlocks(prosemirrorNodes: ProsemirrorNode[], definitions: PageBlockDefinition[]) {\n const definitionsById = mapByUnique(definitions, d => d.id);\n return internalProsemirrorNodesToBlocks(prosemirrorNodes, definitionsById, 0);\n}\n\nfunction internalProsemirrorNodesToPageItems(\n prosemirrorNodes: ProsemirrorNode[],\n definitionsMap: Map<string, PageBlockDefinition>\n): (PageBlockEditorModel | PageSectionEditorModel)[] {\n const result: (PageBlockEditorModel | PageSectionEditorModel)[] = [];\n\n for (const prosemirrorNode of prosemirrorNodes) {\n if (prosemirrorNode.type === \"tabsSection\") {\n // Section\n const section = prosemirrorNodeToSection(prosemirrorNode, Array.from(definitionsMap.values()));\n section && result.push(section);\n } else {\n // Block\n result.push(...internalProsemirrorNodeToBlock(prosemirrorNode, definitionsMap, 0));\n }\n }\n\n return result;\n}\n\nfunction internalProsemirrorNodesToBlocks(\n prosemirrorNodes: ProsemirrorNode[],\n definitionsMap: Map<string, PageBlockDefinition>,\n depth: number\n): PageBlockEditorModel[] {\n return prosemirrorNodes.flatMap(prosemirrorNode => {\n return internalProsemirrorNodeToBlock(prosemirrorNode, definitionsMap, depth);\n });\n}\n\nfunction internalProsemirrorNodeToBlock(\n prosemirrorNode: ProsemirrorNode,\n definitionsMap: Map<string, PageBlockDefinition>,\n depth: number\n): PageBlockEditorModel[] {\n const definitionId = getProsemirrorAttribute(prosemirrorNode, \"definitionId\", z.string());\n if (!definitionId) {\n console.warn(`definitionId on ${prosemirrorNode.type} is required to be interpreted as a block, skipping node`);\n\n return [];\n }\n\n const definition = definitionsMap.get(definitionId);\n if (!definition) {\n console.warn(\n `Block definitionId \"${definitionId}\" (prosemirror node ${prosemirrorNode.type}) is not among available definitions`\n );\n console.warn(prosemirrorNode);\n return [];\n }\n\n return prosemirrorNodeAndDefinitionToBlock(prosemirrorNode, definition, definitionsMap, depth);\n}\n\nfunction prosemirrorNodeAndDefinitionToBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n definitionsMap: Map<string, PageBlockDefinition>,\n depth: number\n): PageBlockEditorModel[] {\n const multiRichTextProperty = BlockDefinitionUtils.firstMultiRichTextProperty(definition);\n if (multiRichTextProperty) {\n return parseAsMultiRichText(prosemirrorNode, definition, multiRichTextProperty, definitionsMap, depth);\n }\n\n const block = shallowProsemirrorNodeAndDefinitionToBlock(prosemirrorNode, definition);\n return block ? [block] : [];\n}\n\nfunction shallowProsemirrorNodeAndDefinitionToBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n const richTextProperty = BlockDefinitionUtils.firstRichTextProperty(definition);\n if (richTextProperty) {\n return parseAsRichText(prosemirrorNode, definition, richTextProperty);\n }\n\n const tableProperty = BlockDefinitionUtils.firstTableProperty(definition);\n if (tableProperty) {\n return parseAsTable(prosemirrorNode, definition, tableProperty);\n }\n\n if (definition.id === \"io.supernova.block.divider\") {\n return parseAsDivider(prosemirrorNode, definition);\n }\n\n return parseAsCustomBlock(prosemirrorNode, definition);\n}\n\n//\n// Single rich text\n//\n\nfunction parseAsRichText(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n): PageBlockEditorModel | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n const variantId = getProsemirrorBlockVariantId(prosemirrorNode);\n const calloutType = parseCalloutType(getProsemirrorAttribute(prosemirrorNode, \"type\", z.string().optional()));\n\n return {\n id: id,\n type: \"Block\",\n\n data: {\n packageId: definition.id,\n indentLevel: 0,\n ...(variantId && { variantId: variantId }),\n items: [\n {\n id: id,\n props: {\n [property.id]: {\n // Required\n value: parseRichText(prosemirrorNode.content ?? []),\n\n // Optional\n ...(calloutType && { calloutType: calloutType }),\n } satisfies PageBlockItemRichTextValue,\n },\n },\n ],\n },\n };\n}\n\nfunction parseCalloutType(prosemirrorCalloutType: unknown): PageBlockCalloutType | undefined {\n if (!prosemirrorCalloutType) return undefined;\n\n switch (prosemirrorCalloutType) {\n case \"critical\":\n return \"Error\";\n case \"neutral\":\n return \"Info\";\n case \"positive\":\n return \"Success\";\n case \"warning\":\n return \"Warning\";\n case \"primary\":\n return \"Primary\";\n }\n}\n\n//\n// Multi rich text\n//\n\nfunction parseAsMultiRichText(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty,\n definitionsMap: Map<string, PageBlockDefinition>,\n depth: number\n): PageBlockEditorModel[] {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return [];\n\n const variantId = getProsemirrorBlockVariantId(prosemirrorNode);\n const result: PageBlockEditorModel[] = [];\n\n // Flatten items\n const listItems: ProsemirrorNode[] = [];\n prosemirrorNode.content?.forEach(c => {\n // Illegal child of a list\n if (c.type !== \"listItem\") return;\n\n c.content?.forEach(cc => {\n listItems.push(cc);\n });\n });\n\n // Text list items buffering\n let bufferedTextItems: ProsemirrorNode[] = [];\n function flushBufferedTextItems() {\n if (!bufferedTextItems.length) return;\n\n const idSuffix = result.length ? `-${result.length}` : \"\";\n\n result.push({\n id: id + idSuffix,\n type: \"Block\",\n data: {\n packageId: definition.id,\n indentLevel: depth,\n ...(variantId && { variantId: variantId }),\n items: [\n {\n id: id + idSuffix,\n props: {\n [property.id]: {\n value: bufferedTextItems.map(paragraph => {\n return parseRichText(paragraph.content ?? []);\n }),\n } satisfies PageBlockItemMultiRichTextValue,\n },\n },\n ],\n },\n });\n\n bufferedTextItems = [];\n }\n\n listItems.forEach(item => {\n if (item.type === \"paragraph\") {\n bufferedTextItems.push(item);\n return;\n }\n\n // This is not a paragraph, flush text items first\n flushBufferedTextItems();\n\n result.push(...internalProsemirrorNodeToBlock(item, definitionsMap, depth + 1));\n });\n\n // Flush text items at the end\n flushBufferedTextItems();\n\n return result;\n}\n\n//\n// Rich text\n//\n\nfunction parseRichText(spans: ProsemirrorNode[]): PageBlockText {\n return {\n spans: spans.map(parseRichTextSpan).filter(nonNullFilter),\n };\n}\n\nfunction parseRichTextSpan(span: ProsemirrorNode): PageBlockTextSpan | null {\n if (span.type === \"hardBreak\") {\n return { text: \"\\n\", attributes: [] };\n }\n\n if (span.type !== \"text\" || !span.text) return null;\n\n const marks = span.marks ?? [];\n\n return {\n text: span.text,\n attributes: marks.map(parseRichTextAttribute).filter(nonNullFilter),\n };\n}\n\nfunction parseRichTextAttribute(mark: ProsemirrorMark): PageBlockTextSpanAttribute | null {\n switch (mark.type) {\n case \"bold\":\n return { type: \"Bold\" };\n case \"italic\":\n return { type: \"Italic\" };\n case \"strike\":\n return { type: \"Strikethrough\" };\n case \"code\":\n return { type: \"Code\" };\n case \"link\":\n return parseProsemirrorLink(mark);\n }\n\n return null;\n}\n\nfunction parseProsemirrorLink(mark: ProsemirrorMark): PageBlockTextSpanAttribute | null {\n const href = getProsemirrorAttribute(mark, \"href\", z.string().optional());\n if (!href) return null;\n\n const target = getProsemirrorAttribute(mark, \"target\", z.string().optional());\n const openInNewTab = target === \"_blank\";\n\n if (href.startsWith(\"@\")) {\n return {\n type: \"Link\",\n openInNewWindow: openInNewTab,\n openInNewTab: openInNewTab,\n documentationItemId: href.split(\":\")[1],\n };\n } else {\n return {\n type: \"Link\",\n openInNewWindow: openInNewTab,\n openInNewTab: openInNewTab,\n link: href,\n };\n }\n}\n\n//\n// Embed\n//\n\nfunction parseAsTable(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n): PageBlockEditorModel | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n const variantId = getProsemirrorBlockVariantId(prosemirrorNode);\n const hasBorder = getProsemirrorAttribute(prosemirrorNode, \"hasBorder\", z.boolean().optional()) !== false;\n\n const tableChild = prosemirrorNode.content?.find(c => c.type === \"table\");\n if (!tableChild) {\n return emptyTable(id, variantId, 0);\n }\n\n // Nodes can are considered rows if they have correct node type + their content is non-empty\n const rows = tableChild.content?.filter(c => c.type === \"tableRow\" && !!c.content?.length) ?? [];\n if (!rows.length) {\n return emptyTable(id, variantId, 0);\n }\n\n const rowHeaderCells = rows[0].content?.filter(c => c.type === \"tableHeader\").length ?? 0;\n const columnHeaderCells = rows.filter(r => r.content?.[0]?.type === \"tableHeader\").length;\n\n const hasHeaderRow = rows[0].content?.length === rowHeaderCells;\n const hasHeaderColumn = rows.length === columnHeaderCells;\n\n const tableValue: PageBlockItemTableValue = {\n showBorder: hasBorder,\n highlightHeaderRow: hasHeaderRow,\n highlightHeaderColumn: hasHeaderColumn,\n value: [],\n };\n\n tableValue.value = rows.map(row => {\n return {\n cells: (row.content ?? []).map(parseAsTableCell).filter(nonNullFilter),\n };\n });\n\n return {\n id: id,\n type: \"Block\",\n data: {\n packageId: \"io.supernova.block.table\",\n indentLevel: 0,\n variantId: \"default\",\n\n ...(variantId && { variantId: variantId }),\n\n items: [\n {\n id: id,\n props: {\n table: tableValue,\n },\n },\n ],\n },\n };\n}\n\nfunction parseAsTableCell(prosemirrorNode: ProsemirrorNode): PageBlockItemTableCell | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n const textAlign = getProsemirrorAttribute(prosemirrorNode, \"textAlign\", z.string().optional());\n\n let columnWidth: number | undefined;\n const columnWidthArray = getProsemirrorAttribute(prosemirrorNode, \"colwidth\", z.array(z.number()).optional());\n if (columnWidthArray) {\n columnWidth = roundDimension(columnWidthArray[0]);\n }\n\n const tableNodes = (prosemirrorNode.content ?? []).map(parseAsTableNode).filter(nonNullFilter);\n\n return {\n id: id,\n alignment: parseTableCellAlignment(textAlign),\n ...(columnWidth && { columnWidth }),\n nodes: tableNodes.length ? tableNodes : emptyTableCellContent(),\n };\n}\n\nfunction parseTableCellAlignment(alignment: unknown): PageBlockTableCellAlignment {\n if (!alignment) return \"Left\";\n\n switch (alignment) {\n case \"left\":\n return \"Left\";\n case \"center\":\n return \"Center\";\n case \"right\":\n return \"Right\";\n\n default:\n return \"Left\";\n }\n}\n\nfunction parseAsTableNode(prosemirrorNode: ProsemirrorNode): PageBlockItemTableNode | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n switch (prosemirrorNode.type) {\n case \"paragraph\":\n return {\n type: \"RichText\",\n id: id,\n value: parseRichText(prosemirrorNode.content ?? []),\n };\n\n case \"image\":\n const items = getProsemirrorAttribute(prosemirrorNode, \"items\", z.string());\n if (!items) return null;\n\n const parsedItems = PageBlockItemV2.array().safeParse(JSON.parse(items));\n if (!parsedItems.success) return null;\n\n const rawImagePropertyValue = parsedItems.data[0]?.props.image;\n if (!rawImagePropertyValue) return null;\n\n const imagePropertyValueParseResult = PageBlockItemImageValue.safeParse(rawImagePropertyValue);\n if (!imagePropertyValueParseResult.success) return null;\n\n return {\n type: \"Image\",\n id: id,\n value: imagePropertyValueParseResult.data.value,\n caption: imagePropertyValueParseResult.data.caption,\n };\n\n default:\n return null;\n }\n}\n\nfunction emptyTable(id: string, variantId?: string, indentLevel?: number): PageBlockEditorModel {\n const tableValue: PageBlockItemTableValue = {\n showBorder: true,\n highlightHeaderColumn: false,\n highlightHeaderRow: false,\n value: [],\n };\n\n for (let i = 0; i < 2; i++) {\n tableValue.value.push({\n cells: [],\n });\n\n for (let j = 0; j < 3; j++) {\n tableValue.value[i].cells.push({\n id: \"\",\n alignment: \"Left\",\n nodes: emptyTableCellContent(),\n });\n }\n }\n\n return {\n id: id,\n type: \"Block\",\n data: {\n packageId: \"io.supernova.block.table\",\n indentLevel: indentLevel ?? 0,\n variantId: variantId,\n items: [\n {\n id: id,\n props: {\n table: tableValue,\n },\n },\n ],\n },\n };\n}\n\nfunction emptyTableCellContent(): PageBlockItemTableNode[] {\n return [\n {\n type: \"RichText\",\n id: \"\",\n value: { spans: [] },\n },\n ];\n}\n\n//\n// Divider\n//\n\nfunction parseAsDivider(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n const variantId = getProsemirrorBlockVariantId(prosemirrorNode);\n\n return {\n id: id,\n type: \"Block\",\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n\n items: [{ id: id, props: {} }],\n },\n };\n}\n\n//\n// Custom block\n//\n\nfunction parseAsCustomBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n const id = getProsemirrorBlockId(prosemirrorNode);\n if (!id) return null;\n\n const variantId = getProsemirrorBlockVariantId(prosemirrorNode);\n\n const appearance = parseAppearance(prosemirrorNode);\n\n const parsedItems = parseBlockItems(prosemirrorNode, definition) ?? [];\n\n // Some blocks can expect at least one item to be always present. In such case we fallback to an item\n // without any properties defined which should be a valid item for any combination of block settings.\n if (!parsedItems.length && definitionExpectsPlaceholderItem(definition)) {\n parsedItems.push({\n id: id,\n props: {},\n });\n }\n\n return {\n id: id,\n type: \"Block\",\n data: {\n packageId: definition.id,\n indentLevel: 0,\n\n ...(variantId && { variantId: variantId }),\n ...(appearance && { appearance: appearance }),\n\n items: parsedItems,\n },\n };\n}\n\nfunction definitionExpectsPlaceholderItem(definition: PageBlockDefinition): boolean {\n return (\n // Block needs an item when it's a data block (tokens, components, etc)\n !definition.behavior.items ||\n // Block needs an item when number of items is expected to be 1\n definition.behavior.items.numberOfItems === 1\n );\n}\n\nfunction parseBlockItems(prosemirrorNode: ProsemirrorNode, definition: PageBlockDefinition): PageBlockItemV2[] | null {\n const itemsString = getProsemirrorAttribute(prosemirrorNode, \"items\", z.string());\n if (!itemsString) return null;\n\n const itemsJson: unknown = JSON.parse(itemsString);\n if (!Array.isArray(itemsJson)) {\n console.error(\"Block `items` property must be a json array\");\n return null;\n }\n\n return itemsJson.map(i => parseItem(i, definition)).filter(nonNullFilter);\n}\n\nfunction parseAppearance(prosemirrorNode: ProsemirrorNode): PageBlockAppearanceV2 | undefined {\n let appearance: PageBlockAppearanceV2 = {};\n\n const rawAppearanceString = getProsemirrorAttribute(prosemirrorNode, \"appearance\", z.string().optional());\n if (rawAppearanceString) {\n const parsedAppearance = PageBlockAppearanceV2.safeParse(JSON.parse(rawAppearanceString));\n if (parsedAppearance.success) {\n appearance = parsedAppearance.data;\n }\n }\n\n const columns = getProsemirrorAttribute(prosemirrorNode, \"columns\", z.number().optional());\n if (columns) {\n appearance.numberOfColumns = columns;\n }\n\n const backgroundColor = getProsemirrorAttribute(prosemirrorNode, \"backgroundColor\", z.string().optional());\n if (backgroundColor) {\n const parsedColor = PageBlockColorV2.safeParse(JSON.parse(backgroundColor));\n if (parsedColor.success) {\n appearance.itemBackgroundColor = parsedColor.data;\n }\n }\n\n if (!Object.keys(appearance).length) return undefined;\n\n return appearance;\n}\n\nfunction parseItem(rawItem: unknown, definition: PageBlockDefinition): PageBlockItemV2 | null {\n const parsedItem = PageBlockItemV2.safeParse(rawItem);\n if (!parsedItem.success) {\n return null;\n }\n\n const sanitizedProps: Record<string, PageBlockItemUntypedValue> = {};\n\n for (const property of definition.item.properties) {\n const value = parsedItem.data.props[property.id];\n if (!value) {\n continue;\n }\n\n const valueSchema = valueSchemaForPropertyType(property.type);\n const validationResult = valueSchema.safeParse(value);\n\n if (validationResult.success) {\n sanitizedProps[property.id] = validationResult.data;\n } else {\n console.log(validationResult.error.toString());\n }\n }\n\n return {\n id: parsedItem.data.id,\n ...(parsedItem.data.linksTo && { linksTo: parsedItem.data.linksTo }),\n props: sanitizedProps,\n };\n}\n\nfunction valueSchemaForPropertyType(type: PageBlockDefinitionPropertyType) {\n switch (type) {\n case \"RichText\":\n return PageBlockItemRichTextValue;\n case \"MultiRichText\":\n return PageBlockItemMultiRichTextValue;\n case \"Text\":\n return PageBlockItemTextValue;\n case \"Boolean\":\n return PageBlockItemBooleanValue;\n case \"Number\":\n return PageBlockItemNumberValue;\n case \"SingleSelect\":\n return PageBlockItemSingleSelectValue;\n case \"MultiSelect\":\n return PageBlockItemMultiSelectValue;\n case \"Image\":\n return PageBlockItemImageValue;\n case \"Token\":\n return PageBlockItemTokenValue;\n case \"TokenType\":\n return PageBlockItemTokenTypeValue;\n case \"TokenProperty\":\n return PageBlockItemTokenPropertyValue;\n case \"Component\":\n return PageBlockItemComponentValue;\n case \"ComponentProperty\":\n return PageBlockItemComponentPropertyValue;\n case \"Asset\":\n return PageBlockItemAssetValue;\n case \"AssetProperty\":\n return PageBlockItemAssetPropertyValue;\n case \"FigmaNode\":\n return PageBlockItemFigmaNodeValue;\n case \"EmbedURL\":\n return PageBlockItemEmbedValue;\n case \"URL\":\n return PageBlockItemUrlValue;\n case \"Markdown\":\n return PageBlockItemMarkdownValue;\n case \"Code\":\n return PageBlockItemCodeValue;\n case \"CodeSandbox\":\n return PageBlockItemSandboxValue;\n case \"Table\":\n return PageBlockItemTableValue;\n case \"Divider\":\n return PageBlockItemDividerValue;\n case \"Storybook\":\n return PageBlockItemStorybookValue;\n case \"Color\":\n return PageBlockItemColorValue;\n case \"FigmaComponent\":\n return PageBlockItemFigmaComponentValue;\n }\n}\n\n//\n// Attributes\n//\n\nfunction getProsemirrorBlockId(prosemirrorNode: ProsemirrorNode): string | undefined {\n const id = getProsemirrorAttribute(prosemirrorNode, \"id\", z.string());\n if (!id) console.warn(`Prosemirror attribute \"id\" on ${prosemirrorNode.type} is required`);\n return id;\n}\n\nfunction getProsemirrorBlockVariantId(prosemirrorNode: ProsemirrorNode): string | undefined {\n return getProsemirrorAttribute(prosemirrorNode, \"variantId\", nullishToOptional(z.string()));\n}\n\nfunction getProsemirrorAttribute<I, O>(\n prosemirrorNode: ProsemirrorNode,\n attributeName: string,\n validationSchema: ZodSchema<O, ZodTypeDef, I>\n): O | undefined {\n const parsedAttr = validationSchema.safeParse(prosemirrorNode.attrs?.[attributeName]);\n if (parsedAttr.success) {\n return parsedAttr.data;\n } else {\n console.warn(`Prosemirror attribute ${attributeName} on ${prosemirrorNode.type} is invalid`);\n console.warn(parsedAttr.error.flatten());\n return undefined;\n }\n}\n\n//\n// Utils\n//\n\nfunction nonNullFilter<T>(item: T | null): item is T {\n return item !== null;\n}\n\nfunction mapByUnique<V, K>(items: V[], keyFn: (item: V) => K): Map<K, V> {\n const result = new Map<K, V>();\n for (const item of items) {\n result.set(keyFn(item), item);\n }\n return result;\n}\n\nfunction roundDimension(dimension: number) {\n return Math.round(dimension * 100) / 100;\n}\n","import {\n DocumentationPageSnapshot,\n DocumentationPageV2,\n ElementGroup,\n ElementGroupSnapshot,\n} from \"@supernova-studio/model\";\nimport * as Y from \"yjs\";\nimport { DocumentationHierarchySettings } from \"../design-system-content\";\nimport { VersionRoomBaseYDoc } from \"./base\";\n\ntype DocumentationHierarchyTransaction = {\n pages?: DocumentationPageV2[];\n pageIdsToDelete?: string[];\n\n groups?: ElementGroup[];\n groupIdsToDelete?: string[];\n\n pageSnapshots?: DocumentationPageSnapshot[];\n pageSnapshotIdsToDelete?: string[];\n\n groupSnapshots?: ElementGroupSnapshot[];\n groupSnapshotIdsToDelete?: string[];\n\n internalSettings?: DocumentationHierarchySettings;\n pageHashesToUpdate?: Record<string, string>;\n};\n\nexport class BackendVersionRoomYDoc {\n private readonly yDoc: Y.Doc;\n\n constructor(yDoc: Y.Doc) {\n this.yDoc = yDoc;\n }\n\n updateDocumentationHierarchy(transaction: DocumentationHierarchyTransaction) {\n this.yDoc.transact(trx => {\n const yDoc = new VersionRoomBaseYDoc(trx.doc);\n\n // Pages\n transaction.pageIdsToDelete && yDoc.deletePages(transaction.pageIdsToDelete);\n transaction.pages && yDoc.updatePages(transaction.pages);\n\n // Groups\n transaction.groupIdsToDelete && yDoc.deleteGroups(transaction.groupIdsToDelete);\n transaction.groups && yDoc.updateGroups(transaction.groups);\n\n // Page snapshots\n transaction.pageSnapshotIdsToDelete && yDoc.deletePageSnapshots(transaction.pageSnapshotIdsToDelete);\n transaction.pageSnapshots && yDoc.updatePageSnapshots(transaction.pageSnapshots);\n\n // Snapshots - published groups\n transaction.groupSnapshotIdsToDelete && yDoc.deleteGroupSnapshots(transaction.groupSnapshotIdsToDelete);\n transaction.groupSnapshots && yDoc.updateGroupSnapshots(transaction.groupSnapshots);\n\n // Settings\n transaction.internalSettings && yDoc.updateDocumentationInternalSettings(transaction.internalSettings);\n transaction.pageHashesToUpdate && yDoc.updateDocumentationPageContentHashes(transaction.pageHashesToUpdate);\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,SAAS;ACAlB,SAAS,KAAAA,UAAS;ACAlB,SAAS,KAAAA,UAAS;ACAlB,SAAS,KAAAA,UAAS;ACAlB,SAAS,KAAAA,UAAS;AGAlB,SAAS,KAAAA,UAAS;ACAlB,SAAS,KAAAA,UAAS;ACAlB,SAAS,KAAAA,UAAS;ACAlB,SAAS,KAAAA,UAAS;ACAlB,SAAS,KAAAA,WAAS;ACIlB,SAAS,KAAAA,WAAS;ACJlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAgC,KAAAA,WAAS;ACAzC,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACIlB,SAAS,KAAAA,WAAS;ACJlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAqB,KAAAA,WAAS;ACA9B,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACElB,SAAS,KAAAA,WAAS;ACFlB,SAAS,KAAAA,WAAS;ACElB,SAAS,KAAAA,WAAS;ACFlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;AEAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACElB,SAAS,KAAAA,WAAS;ACFlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAA8B,KAAAA,WAAS;ACAvC,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAqB,KAAAA,WAAS;ACA9B,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,WAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;AEElB,SAAS,KAAAA,YAAS;ACFlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,OAAO,YAAY;AACnB,SAAS,KAAAA,YAAS;ACDlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACIlB,SAAS,KAAAA,YAAS;ACJlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;AGAlB,SAAS,KAAAA,YAAS;AEAlB,OAAO,2BAA2B;AEAlC,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YAAS;ACAlB,SAAS,KAAAA,YA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CA;EACA;EACA;EACA;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF;AAEA,IAAM,qBAAqB,IAAI,IAAI,cAAc;ACjnB1C,IAAM,YAAY;ANElB,IAAM,0BAA0BC,KAAE,OAAO;EAC9C,gBAAgBA,KAAE,OAAO;EACzB,SAASA,KAAE,OAAO;EAClB,OAAOA,KAAE,OAAO,EAAE,SAAS;EAC3B,QAAQA,KAAE,OAAO,EAAE,SAAS;EAC5B,MAAMA,KAAE,OAAO,KAAK,EAAE,SAAS;AACjC,CAAC;AAIM,IAAM,6BAA6BA,KAAE,KAAK,CAAC,UAAU,OAAO,WAAW,CAAC;AAGxE,IAAM,8BAA8BA,KAAE,KAAK,CAAC,UAAU,UAAU,CAAC;AAGjE,IAAM,gCAAgCA,KAAE,OAAO;EACpD,IAAI,kBAAkBA,KAAE,OAAO,CAAC;EAChC,OAAO,kBAAkBA,KAAE,OAAO,CAAC;EACnC,QAAQ,kBAAkBA,KAAE,OAAO,CAAC;EACpC,MAAM,kBAAkBA,KAAE,OAAO,CAAC;EAClC,WAAW,kBAAkBA,KAAE,OAA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","names":["z","z","GitProviderNames","z","z","z","z","z","z","z","z","z","zeroNumberByDefault","z","z","z","z","DS_NAME_MIN_LENGTH","DS_NAME_MAX_LENGTH","DS_DESC_MAX_LENGTH","z","RoomTypeEnum","z","z","z","OAuthProviderNames","z","z","z","z","z","z","z","z","z","z","ObjectMeta","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","SuccessPayload","z","z","z","z","z","z","z","z","z","CODE_NAME_REGEX","SuccessPayload","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","hash","z","hash","z","z","z","z","blocks","tree","z","mapByUnique","z"]}
1
+ {"version":3,"sources":["../../../node_modules/escape-string-regexp/index.js","../../../node_modules/lodash.deburr/index.js","../../../node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp/index.js","../../../node_modules/@sindresorhus/transliterate/replacements.js","../../../node_modules/@sindresorhus/transliterate/index.js","../../../node_modules/@sindresorhus/slugify/overridable-replacements.js","../../../node_modules/@sindresorhus/slugify/index.js","../../model/src/auth/plugin-oauth-request.ts","../../model/src/billing/card.ts","../../model/src/billing/checkoutSession.ts","../../model/src/billing/customer.ts","../../model/src/billing/features.ts","../../model/src/billing/invoice.ts","../../model/src/billing/portalSession.ts","../../model/src/billing/price.ts","../../model/src/billing/product.ts","../../model/src/billing/subscription.ts","../../model/src/dsm/assets/asset-reference.ts","../../model/src/dsm/assets/asset-value.ts","../../model/src/dsm/assets/asset.ts","../../model/src/dsm/data-sources/data-source.ts","../../model/src/dsm/data-sources/import-job.ts","../../model/src/common/entity.ts","../../model/src/common/object-meta.ts","../../model/src/dsm/data-sources/import-summary.ts","../../model/src/dsm/elements/data/base.ts","../../model/src/dsm/elements/data/blur.ts","../../model/src/dsm/elements/data/dimension.ts","../../model/src/dsm/elements/data/border-radius.ts","../../model/src/dsm/elements/data/border-width.ts","../../model/src/dsm/elements/data/border.ts","../../model/src/dsm/elements/data/color.ts","../../model/src/dsm/elements/data/opacity.ts","../../model/src/dsm/elements/data/component.ts","../../model/src/dsm/elements/data/documentation-block-v1.ts","../../model/src/dsm/elements/raw-element.ts","../../model/src/dsm/properties/property-definition.ts","../../model/src/dsm/properties/property-value.ts","../../model/src/dsm/elements/primitives/point.ts","../../model/src/dsm/elements/primitives/size.ts","../../model/src/helpers/db.ts","../../model/src/helpers/nullish-to-optional.ts","../../model/src/helpers/slug-helper.ts","../../model/src/dsm/elements/data/documentation-block-v2.ts","../../model/src/dsm/elements/data/documentation-page-v1.ts","../../model/src/dsm/elements/data/documentation.ts","../../model/src/dsm/elements/data/documentation-page-v2.ts","../../model/src/dsm/elements/data/duration.ts","../../model/src/dsm/elements/data/figma-file-structure.ts","../../model/src/dsm/elements/data/figma-node-reference.ts","../../model/src/dsm/elements/data/font-family.ts","../../model/src/dsm/elements/data/font-size.ts","../../model/src/dsm/elements/data/font-weight.ts","../../model/src/dsm/elements/data/gradient.ts","../../model/src/dsm/elements/data/group.ts","../../model/src/dsm/elements/data/letter-spacing.ts","../../model/src/dsm/elements/data/line-height.ts","../../model/src/dsm/elements/data/paragraph-indent.ts","../../model/src/dsm/elements/data/paragraph-spacing.ts","../../model/src/dsm/elements/data/product-copy.ts","../../model/src/dsm/elements/data/shadow.ts","../../model/src/dsm/elements/data/size.ts","../../model/src/dsm/elements/data/space.ts","../../model/src/dsm/elements/data/string.ts","../../model/src/dsm/elements/data/text-case.ts","../../model/src/dsm/elements/data/text-decoration.ts","../../model/src/dsm/elements/data/typography.ts","../../model/src/dsm/elements/data/visibility.ts","../../model/src/dsm/elements/data/z-index.ts","../../model/src/dsm/elements/base.ts","../../model/src/dsm/elements/component.ts","../../model/src/dsm/elements/documentation-page-v1.ts","../../model/src/dsm/elements/documentation-page-v2.ts","../../model/src/dsm/elements/figma-file-structures.ts","../../model/src/dsm/elements/figma-node-reference.ts","../../model/src/dsm/elements/group.ts","../../model/src/dsm/elements/page-block-v2.ts","../../model/src/dsm/elements/theme.ts","../../model/src/dsm/elements/tokens.ts","../../model/src/dsm/import/support/figma-files.ts","../../model/src/dsm/import/support/import-context.ts","../../model/src/dsm/import/support/import-model-collections.ts","../../model/src/dsm/import/image.ts","../../model/src/dsm/import/component.ts","../../model/src/dsm/import/base.ts","../../model/src/dsm/import/theme.ts","../../model/src/dsm/import/tokens.ts","../../model/src/dsm/import/figma-frames.ts","../../model/src/dsm/import/data-source.ts","../../model/src/dsm/import/warning.ts","../../model/src/dsm/documentation/block-definitions/aux.ts","../../model/src/dsm/documentation/block-definitions/definition.ts","../../model/src/dsm/documentation/block-definitions/item.ts","../../model/src/dsm/documentation/block-definitions/variant.ts","../../model/src/dsm/documentation/group.ts","../../model/src/dsm/documentation/page.ts","../../model/src/dsm/design-system.ts","../../model/src/workspace/npm-registry-settings.ts","../../model/src/workspace/sso-provider.ts","../../model/src/workspace/user-invite.ts","../../model/src/workspace/workspace-role.ts","../../model/src/workspace/workspace-context.ts","../../model/src/workspace/workspace-create.ts","../../model/src/workspace/workspace-invitations.ts","../../model/src/workspace/workspace-membership.ts","../../model/src/workspace/workspace.ts","../../model/src/dsm/desing-system-create.ts","../../model/src/dsm/desing-system-update.ts","../../model/src/dsm/published-doc.ts","../../model/src/codegen/export-jobs.ts","../../model/src/codegen/exporter-workspace-membership-role.ts","../../model/src/codegen/exporter-workspace-membership.ts","../../model/src/codegen/exporter.ts","../../model/src/codegen/git-providers.ts","../../model/src/codegen/pulsar.ts","../../model/src/custom-domains/custom-domains.ts","../../model/src/docs-server/session.ts","../../model/src/users/linked-integrations.ts","../../model/src/users/user-identity.ts","../../model/src/users/user-profile.ts","../../model/src/users/user.ts","../../model/src/feature-flags/feature-flags.ts","../../model/src/integrations/external-oauth-request.ts","../../model/src/integrations/oauth-providers.ts","../../model/src/integrations/oauth-token.ts","../../model/src/multiplayer/design-system-version-room.ts","../../model/src/multiplayer/documentation-page-room.ts","../../model/src/npm/npm-package.ts","../../model/src/npm/npm-proxy-token-payload.ts","../../model/src/tokens/personal-access-token.ts","../../model/src/utils/content-loader-instruction.ts","../src/api/responses/get-block-definitions.ts","../src/docs-editor/model/block.ts","../src/docs-editor/model/page.ts","../src/docs-editor/prosemirror/schema.ts","../src/docs-editor/utils.ts","../src/docs-editor/blocks-to-prosemirror.ts","../src/docs-editor/prosemirror-to-blocks.ts"],"names":["Symbol","require_escape_string_regexp","counter","z","zeroNumberByDefault","PageBlockDefinitionLayoutType","PageBlockDefinitionLayoutGap","PageBlockDefinitionLayoutAlign","PageBlockDefinitionLayoutResizing","PageBlockDefinitionPropertyType","PageBlockDefinitionRichTextPropertyStyle","PageBlockCategory","PageBlockBehaviorDataType","PageBlockBehaviorSelectionType","DS_NAME_MIN_LENGTH","DS_NAME_MAX_LENGTH","DS_DESC_MIN_LENGTH","DS_DESC_MAX_LENGTH","GitProviderNames","OAuthProviderNames","nonNullFilter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAEA,WAAO,UAAU,YAAU;AAC1B,UAAI,OAAO,WAAW,UAAU;AAC/B,cAAM,IAAI,UAAU,mBAAmB;AAAA,MACxC;AAIA,aAAO,OACL,QAAQ,uBAAuB,MAAM,EACrC,QAAQ,MAAM,OAAO;AAAA,IACxB;AAAA;AAAA;;;ACZA;AAAA;AAAA;AAUA,QAAI,WAAW,IAAI;AAGnB,QAAI,YAAY;AAGhB,QAAI,UAAU;AAGd,QAAI,oBAAoB;AAAxB,QACI,sBAAsB;AAG1B,QAAI,UAAU,MAAM,oBAAoB,sBAAsB;AAM9D,QAAI,cAAc,OAAO,SAAS,GAAG;AAGrC,QAAI,kBAAkB;AAAA;AAAA,MAEpB,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAC1E,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAC1E,QAAQ;AAAA,MAAM,QAAQ;AAAA,MACtB,QAAQ;AAAA,MAAM,QAAQ;AAAA,MACtB,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAChD,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAChD,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAChD,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAChD,QAAQ;AAAA,MAAM,QAAQ;AAAA,MACtB,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAC1E,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAC1E,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAChD,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAAK,QAAQ;AAAA,MAChD,QAAQ;AAAA,MAAM,QAAQ;AAAA,MAAK,QAAQ;AAAA,MACnC,QAAQ;AAAA,MAAM,QAAQ;AAAA,MACtB,QAAQ;AAAA,MAAM,QAAQ;AAAA,MACtB,QAAQ;AAAA;AAAA,MAER,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACvE,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACvE,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACvE,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACvE,UAAU;AAAA,MAAM,UAAU;AAAA,MAC1B,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACvE,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACvE,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACxD,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACtF,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MAAK,UAAU;AAAA,MACtF,UAAU;AAAA,MAAM,UAAU;AAAA,MAC1B,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAAK,UAAU;AAAA,MACzC,UAAU;AAAA,MAAM,UAAU;AAAA,MAC1B,UAAU;AAAA,MAAM,UAAU;AAAA,MAC1B,UAAU;AAAA,MAAM,UAAU;AAAA,IAC5B;AAGA,QAAI,aAAa,OAAO,UAAU,YAAY,UAAU,OAAO,WAAW,UAAU;AAGpF,QAAI,WAAW,OAAO,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU;AAG5E,QAAI,OAAO,cAAc,YAAY,SAAS,aAAa,EAAE;AAS7D,aAAS,eAAe,QAAQ;AAC9B,aAAO,SAAS,KAAK;AACnB,eAAO,UAAU,OAAO,SAAY,OAAO,GAAG;AAAA,MAChD;AAAA,IACF;AAUA,QAAI,eAAe,eAAe,eAAe;AAGjD,QAAI,cAAc,OAAO;AAOzB,QAAI,iBAAiB,YAAY;AAGjC,QAAIA,UAAS,KAAK;AAGlB,QAAI,cAAcA,UAASA,QAAO,YAAY;AAA9C,QACI,iBAAiB,cAAc,YAAY,WAAW;AAU1D,aAAS,aAAa,OAAO;AAE3B,UAAI,OAAO,SAAS,UAAU;AAC5B,eAAO;AAAA,MACT;AACA,UAAI,SAAS,KAAK,GAAG;AACnB,eAAO,iBAAiB,eAAe,KAAK,KAAK,IAAI;AAAA,MACvD;AACA,UAAI,SAAU,QAAQ;AACtB,aAAQ,UAAU,OAAQ,IAAI,SAAU,CAAC,WAAY,OAAO;AAAA,IAC9D;AA0BA,aAAS,aAAa,OAAO;AAC3B,aAAO,CAAC,CAAC,SAAS,OAAO,SAAS;AAAA,IACpC;AAmBA,aAAS,SAAS,OAAO;AACvB,aAAO,OAAO,SAAS,YACpB,aAAa,KAAK,KAAK,eAAe,KAAK,KAAK,KAAK;AAAA,IAC1D;AAuBA,aAAS,SAAS,OAAO;AACvB,aAAO,SAAS,OAAO,KAAK,aAAa,KAAK;AAAA,IAChD;AAoBA,aAAS,OAAO,QAAQ;AACtB,eAAS,SAAS,MAAM;AACxB,aAAO,UAAU,OAAO,QAAQ,SAAS,YAAY,EAAE,QAAQ,aAAa,EAAE;AAAA,IAChF;AAEA,WAAO,UAAU;AAAA;AAAA;;;AChQjB,IAAAC,gCAAA;AAAA;AAAA;AAEA,QAAM,sBAAsB;AAE5B,WAAO,UAAU,YAAU;AAC1B,UAAI,OAAO,WAAW,UAAU;AAC/B,cAAM,IAAI,UAAU,mBAAmB;AAAA,MACxC;AAEA,aAAO,OAAO,QAAQ,qBAAqB,MAAM;AAAA,IAClD;AAAA;AAAA;;;ACVA;AAAA;AAAA;AAEA,WAAO,UAAU;AAAA;AAAA,MAEhB,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,IAAI;AAAA;AAAA,MAGV,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,IAAI;AAAA,MACV,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA;AAAA,MAGV,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA,MAGT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,gBAAM,GAAG;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,gBAAM,GAAG;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA,MAGT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA,MAGT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA;AAAA,MAGV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA,MAGT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,KAAK;AAAA,MACX,CAAC,UAAK,KAAK;AAAA,MACX,CAAC,UAAK,EAAE;AAAA,MACR,CAAC,UAAK,EAAE;AAAA,MACR,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,EAAE;AAAA,MACR,CAAC,UAAK,EAAE;AAAA,MACR,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA;AAAA,MAGV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA,MAGT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,QAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA,MAGT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,KAAK;AAAA,MACX,CAAC,UAAK,KAAK;AAAA,MACX,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,gBAAM,GAAG;AAAA,MACV,CAAC,gBAAM,GAAG;AAAA,MACV,CAAC,gBAAM,GAAG;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,KAAK;AAAA;AAAA,MAGX,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,KAAK;AAAA,MACX,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA,MAGT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA,MAGT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,EAAE;AAAA;AAAA,MAGR,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,IAAI;AAAA,MACV,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAAA,MACT,CAAC,UAAK,GAAG;AAA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A;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAC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","sourcesContent":["'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0';\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","'use strict';\n\nconst matchOperatorsRegex = /[|\\\\{}()[\\]^$+*?.-]/g;\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn string.replace(matchOperatorsRegex, '\\\\$&');\n};\n","'use strict';\n\nmodule.exports = [\n\t// German umlauts\n\t['ß', 'ss'],\n\t['ä', 'ae'],\n\t['Ä', 'Ae'],\n\t['ö', 'oe'],\n\t['Ö', 'Oe'],\n\t['ü', 'ue'],\n\t['Ü', 'Ue'],\n\n\t// Latin\n\t['À', 'A'],\n\t['Á', 'A'],\n\t['Â', 'A'],\n\t['Ã', 'A'],\n\t['Ä', 'Ae'],\n\t['Å', 'A'],\n\t['Æ', 'AE'],\n\t['Ç', 'C'],\n\t['È', 'E'],\n\t['É', 'E'],\n\t['Ê', 'E'],\n\t['Ë', 'E'],\n\t['Ì', 'I'],\n\t['Í', 'I'],\n\t['Î', 'I'],\n\t['Ï', 'I'],\n\t['Ð', 'D'],\n\t['Ñ', 'N'],\n\t['Ò', 'O'],\n\t['Ó', 'O'],\n\t['Ô', 'O'],\n\t['Õ', 'O'],\n\t['Ö', 'Oe'],\n\t['Ő', 'O'],\n\t['Ø', 'O'],\n\t['Ù', 'U'],\n\t['Ú', 'U'],\n\t['Û', 'U'],\n\t['Ü', 'Ue'],\n\t['Ű', 'U'],\n\t['Ý', 'Y'],\n\t['Þ', 'TH'],\n\t['ß', 'ss'],\n\t['à', 'a'],\n\t['á', 'a'],\n\t['â', 'a'],\n\t['ã', 'a'],\n\t['ä', 'ae'],\n\t['å', 'a'],\n\t['æ', 'ae'],\n\t['ç', 'c'],\n\t['è', 'e'],\n\t['é', 'e'],\n\t['ê', 'e'],\n\t['ë', 'e'],\n\t['ì', 'i'],\n\t['í', 'i'],\n\t['î', 'i'],\n\t['ï', 'i'],\n\t['ð', 'd'],\n\t['ñ', 'n'],\n\t['ò', 'o'],\n\t['ó', 'o'],\n\t['ô', 'o'],\n\t['õ', 'o'],\n\t['ö', 'oe'],\n\t['ő', 'o'],\n\t['ø', 'o'],\n\t['ù', 'u'],\n\t['ú', 'u'],\n\t['û', 'u'],\n\t['ü', 'ue'],\n\t['ű', 'u'],\n\t['ý', 'y'],\n\t['þ', 'th'],\n\t['ÿ', 'y'],\n\t['ẞ', 'SS'],\n\n\t// Vietnamese\n\t['à', 'a'],\n\t['À', 'A'],\n\t['á', 'a'],\n\t['Á', 'A'],\n\t['â', 'a'],\n\t['Â', 'A'],\n\t['ã', 'a'],\n\t['Ã', 'A'],\n\t['è', 'e'],\n\t['È', 'E'],\n\t['é', 'e'],\n\t['É', 'E'],\n\t['ê', 'e'],\n\t['Ê', 'E'],\n\t['ì', 'i'],\n\t['Ì', 'I'],\n\t['í', 'i'],\n\t['Í', 'I'],\n\t['ò', 'o'],\n\t['Ò', 'O'],\n\t['ó', 'o'],\n\t['Ó', 'O'],\n\t['ô', 'o'],\n\t['Ô', 'O'],\n\t['õ', 'o'],\n\t['Õ', 'O'],\n\t['ù', 'u'],\n\t['Ù', 'U'],\n\t['ú', 'u'],\n\t['Ú', 'U'],\n\t['ý', 'y'],\n\t['Ý', 'Y'],\n\t['ă', 'a'],\n\t['Ă', 'A'],\n\t['Đ', 'D'],\n\t['đ', 'd'],\n\t['ĩ', 'i'],\n\t['Ĩ', 'I'],\n\t['ũ', 'u'],\n\t['Ũ', 'U'],\n\t['ơ', 'o'],\n\t['Ơ', 'O'],\n\t['ư', 'u'],\n\t['Ư', 'U'],\n\t['ạ', 'a'],\n\t['Ạ', 'A'],\n\t['ả', 'a'],\n\t['Ả', 'A'],\n\t['ấ', 'a'],\n\t['Ấ', 'A'],\n\t['ầ', 'a'],\n\t['Ầ', 'A'],\n\t['ẩ', 'a'],\n\t['Ẩ', 'A'],\n\t['ẫ', 'a'],\n\t['Ẫ', 'A'],\n\t['ậ', 'a'],\n\t['Ậ', 'A'],\n\t['ắ', 'a'],\n\t['Ắ', 'A'],\n\t['ằ', 'a'],\n\t['Ằ', 'A'],\n\t['ẳ', 'a'],\n\t['Ẳ', 'A'],\n\t['ẵ', 'a'],\n\t['Ẵ', 'A'],\n\t['ặ', 'a'],\n\t['Ặ', 'A'],\n\t['ẹ', 'e'],\n\t['Ẹ', 'E'],\n\t['ẻ', 'e'],\n\t['Ẻ', 'E'],\n\t['ẽ', 'e'],\n\t['Ẽ', 'E'],\n\t['ế', 'e'],\n\t['Ế', 'E'],\n\t['ề', 'e'],\n\t['Ề', 'E'],\n\t['ể', 'e'],\n\t['Ể', 'E'],\n\t['ễ', 'e'],\n\t['Ễ', 'E'],\n\t['ệ', 'e'],\n\t['Ệ', 'E'],\n\t['ỉ', 'i'],\n\t['Ỉ', 'I'],\n\t['ị', 'i'],\n\t['Ị', 'I'],\n\t['ọ', 'o'],\n\t['Ọ', 'O'],\n\t['ỏ', 'o'],\n\t['Ỏ', 'O'],\n\t['ố', 'o'],\n\t['Ố', 'O'],\n\t['ồ', 'o'],\n\t['Ồ', 'O'],\n\t['ổ', 'o'],\n\t['Ổ', 'O'],\n\t['ỗ', 'o'],\n\t['Ỗ', 'O'],\n\t['ộ', 'o'],\n\t['Ộ', 'O'],\n\t['ớ', 'o'],\n\t['Ớ', 'O'],\n\t['ờ', 'o'],\n\t['Ờ', 'O'],\n\t['ở', 'o'],\n\t['Ở', 'O'],\n\t['ỡ', 'o'],\n\t['Ỡ', 'O'],\n\t['ợ', 'o'],\n\t['Ợ', 'O'],\n\t['ụ', 'u'],\n\t['Ụ', 'U'],\n\t['ủ', 'u'],\n\t['Ủ', 'U'],\n\t['ứ', 'u'],\n\t['Ứ', 'U'],\n\t['ừ', 'u'],\n\t['Ừ', 'U'],\n\t['ử', 'u'],\n\t['Ử', 'U'],\n\t['ữ', 'u'],\n\t['Ữ', 'U'],\n\t['ự', 'u'],\n\t['Ự', 'U'],\n\t['ỳ', 'y'],\n\t['Ỳ', 'Y'],\n\t['ỵ', 'y'],\n\t['Ỵ', 'Y'],\n\t['ỷ', 'y'],\n\t['Ỷ', 'Y'],\n\t['ỹ', 'y'],\n\t['Ỹ', 'Y'],\n\n\t// Arabic\n\t['ء', 'e'],\n\t['آ', 'a'],\n\t['أ', 'a'],\n\t['ؤ', 'w'],\n\t['إ', 'i'],\n\t['ئ', 'y'],\n\t['ا', 'a'],\n\t['ب', 'b'],\n\t['ة', 't'],\n\t['ت', 't'],\n\t['ث', 'th'],\n\t['ج', 'j'],\n\t['ح', 'h'],\n\t['خ', 'kh'],\n\t['د', 'd'],\n\t['ذ', 'dh'],\n\t['ر', 'r'],\n\t['ز', 'z'],\n\t['س', 's'],\n\t['ش', 'sh'],\n\t['ص', 's'],\n\t['ض', 'd'],\n\t['ط', 't'],\n\t['ظ', 'z'],\n\t['ع', 'e'],\n\t['غ', 'gh'],\n\t['ـ', '_'],\n\t['ف', 'f'],\n\t['ق', 'q'],\n\t['ك', 'k'],\n\t['ل', 'l'],\n\t['م', 'm'],\n\t['ن', 'n'],\n\t['ه', 'h'],\n\t['و', 'w'],\n\t['ى', 'a'],\n\t['ي', 'y'],\n\t['َ‎', 'a'],\n\t['ُ', 'u'],\n\t['ِ‎', 'i'],\n\t['٠', '0'],\n\t['١', '1'],\n\t['٢', '2'],\n\t['٣', '3'],\n\t['٤', '4'],\n\t['٥', '5'],\n\t['٦', '6'],\n\t['٧', '7'],\n\t['٨', '8'],\n\t['٩', '9'],\n\n\t// Persian / Farsi\n\t['چ', 'ch'],\n\t['ک', 'k'],\n\t['گ', 'g'],\n\t['پ', 'p'],\n\t['ژ', 'zh'],\n\t['ی', 'y'],\n\t['۰', '0'],\n\t['۱', '1'],\n\t['۲', '2'],\n\t['۳', '3'],\n\t['۴', '4'],\n\t['۵', '5'],\n\t['۶', '6'],\n\t['۷', '7'],\n\t['۸', '8'],\n\t['۹', '9'],\n\n\t// Pashto\n\t['ټ', 'p'],\n\t['ځ', 'z'],\n\t['څ', 'c'],\n\t['ډ', 'd'],\n\t['ﺫ', 'd'],\n\t['ﺭ', 'r'],\n\t['ړ', 'r'],\n\t['ﺯ', 'z'],\n\t['ږ', 'g'],\n\t['ښ', 'x'],\n\t['ګ', 'g'],\n\t['ڼ', 'n'],\n\t['ۀ', 'e'],\n\t['ې', 'e'],\n\t['ۍ', 'ai'],\n\n\t// Urdu\n\t['ٹ', 't'],\n\t['ڈ', 'd'],\n\t['ڑ', 'r'],\n\t['ں', 'n'],\n\t['ہ', 'h'],\n\t['ھ', 'h'],\n\t['ے', 'e'],\n\n\t// Russian\n\t['А', 'A'],\n\t['а', 'a'],\n\t['Б', 'B'],\n\t['б', 'b'],\n\t['В', 'V'],\n\t['в', 'v'],\n\t['Г', 'G'],\n\t['г', 'g'],\n\t['Д', 'D'],\n\t['д', 'd'],\n\t['Е', 'E'],\n\t['е', 'e'],\n\t['Ж', 'Zh'],\n\t['ж', 'zh'],\n\t['З', 'Z'],\n\t['з', 'z'],\n\t['И', 'I'],\n\t['и', 'i'],\n\t['Й', 'J'],\n\t['й', 'j'],\n\t['К', 'K'],\n\t['к', 'k'],\n\t['Л', 'L'],\n\t['л', 'l'],\n\t['М', 'M'],\n\t['м', 'm'],\n\t['Н', 'N'],\n\t['н', 'n'],\n\t['О', 'O'],\n\t['о', 'o'],\n\t['П', 'P'],\n\t['п', 'p'],\n\t['Р', 'R'],\n\t['р', 'r'],\n\t['С', 'S'],\n\t['с', 's'],\n\t['Т', 'T'],\n\t['т', 't'],\n\t['У', 'U'],\n\t['у', 'u'],\n\t['Ф', 'F'],\n\t['ф', 'f'],\n\t['Х', 'H'],\n\t['х', 'h'],\n\t['Ц', 'Cz'],\n\t['ц', 'cz'],\n\t['Ч', 'Ch'],\n\t['ч', 'ch'],\n\t['Ш', 'Sh'],\n\t['ш', 'sh'],\n\t['Щ', 'Shh'],\n\t['щ', 'shh'],\n\t['Ъ', ''],\n\t['ъ', ''],\n\t['Ы', 'Y'],\n\t['ы', 'y'],\n\t['Ь', ''],\n\t['ь', ''],\n\t['Э', 'E'],\n\t['э', 'e'],\n\t['Ю', 'Yu'],\n\t['ю', 'yu'],\n\t['Я', 'Ya'],\n\t['я', 'ya'],\n\t['Ё', 'Yo'],\n\t['ё', 'yo'],\n\n\t// Romanian\n\t['ă', 'a'],\n\t['Ă', 'A'],\n\t['ș', 's'],\n\t['Ș', 'S'],\n\t['ț', 't'],\n\t['Ț', 'T'],\n\t['ţ', 't'],\n\t['Ţ', 'T'],\n\n\t// Turkish\n\t['ş', 's'],\n\t['Ş', 'S'],\n\t['ç', 'c'],\n\t['Ç', 'C'],\n\t['ğ', 'g'],\n\t['Ğ', 'G'],\n\t['ı', 'i'],\n\t['İ', 'I'],\n\n\t// Armenian\n\t['ա', 'a'],\n\t['Ա', 'A'],\n\t['բ', 'b'],\n\t['Բ', 'B'],\n\t['գ', 'g'],\n\t['Գ', 'G'],\n\t['դ', 'd'],\n\t['Դ', 'D'],\n\t['ե', 'ye'],\n\t['Ե', 'Ye'],\n\t['զ', 'z'],\n\t['Զ', 'Z'],\n\t['է', 'e'],\n\t['Է', 'E'],\n\t['ը', 'y'],\n\t['Ը', 'Y'],\n\t['թ', 't'],\n\t['Թ', 'T'],\n\t['ժ', 'zh'],\n\t['Ժ', 'Zh'],\n\t['ի', 'i'],\n\t['Ի', 'I'],\n\t['լ', 'l'],\n\t['Լ', 'L'],\n\t['խ', 'kh'],\n\t['Խ', 'Kh'],\n\t['ծ', 'ts'],\n\t['Ծ', 'Ts'],\n\t['կ', 'k'],\n\t['Կ', 'K'],\n\t['հ', 'h'],\n\t['Հ', 'H'],\n\t['ձ', 'dz'],\n\t['Ձ', 'Dz'],\n\t['ղ', 'gh'],\n\t['Ղ', 'Gh'],\n\t['ճ', 'tch'],\n\t['Ճ', 'Tch'],\n\t['մ', 'm'],\n\t['Մ', 'M'],\n\t['յ', 'y'],\n\t['Յ', 'Y'],\n\t['ն', 'n'],\n\t['Ն', 'N'],\n\t['շ', 'sh'],\n\t['Շ', 'Sh'],\n\t['ո', 'vo'],\n\t['Ո', 'Vo'],\n\t['չ', 'ch'],\n\t['Չ', 'Ch'],\n\t['պ', 'p'],\n\t['Պ', 'P'],\n\t['ջ', 'j'],\n\t['Ջ', 'J'],\n\t['ռ', 'r'],\n\t['Ռ', 'R'],\n\t['ս', 's'],\n\t['Ս', 'S'],\n\t['վ', 'v'],\n\t['Վ', 'V'],\n\t['տ', 't'],\n\t['Տ', 'T'],\n\t['ր', 'r'],\n\t['Ր', 'R'],\n\t['ց', 'c'],\n\t['Ց', 'C'],\n\t['ու', 'u'],\n\t['ՈՒ', 'U'],\n\t['Ու', 'U'],\n\t['փ', 'p'],\n\t['Փ', 'P'],\n\t['ք', 'q'],\n\t['Ք', 'Q'],\n\t['օ', 'o'],\n\t['Օ', 'O'],\n\t['ֆ', 'f'],\n\t['Ֆ', 'F'],\n\t['և', 'yev'],\n\n\t// Georgian\n\t['ა', 'a'],\n\t['ბ', 'b'],\n\t['გ', 'g'],\n\t['დ', 'd'],\n\t['ე', 'e'],\n\t['ვ', 'v'],\n\t['ზ', 'z'],\n\t['თ', 't'],\n\t['ი', 'i'],\n\t['კ', 'k'],\n\t['ლ', 'l'],\n\t['მ', 'm'],\n\t['ნ', 'n'],\n\t['ო', 'o'],\n\t['პ', 'p'],\n\t['ჟ', 'zh'],\n\t['რ', 'r'],\n\t['ს', 's'],\n\t['ტ', 't'],\n\t['უ', 'u'],\n\t['ფ', 'ph'],\n\t['ქ', 'q'],\n\t['ღ', 'gh'],\n\t['ყ', 'k'],\n\t['შ', 'sh'],\n\t['ჩ', 'ch'],\n\t['ც', 'ts'],\n\t['ძ', 'dz'],\n\t['წ', 'ts'],\n\t['ჭ', 'tch'],\n\t['ხ', 'kh'],\n\t['ჯ', 'j'],\n\t['ჰ', 'h'],\n\n\t// Czech\n\t['č', 'c'],\n\t['ď', 'd'],\n\t['ě', 'e'],\n\t['ň', 'n'],\n\t['ř', 'r'],\n\t['š', 's'],\n\t['ť', 't'],\n\t['ů', 'u'],\n\t['ž', 'z'],\n\t['Č', 'C'],\n\t['Ď', 'D'],\n\t['Ě', 'E'],\n\t['Ň', 'N'],\n\t['Ř', 'R'],\n\t['Š', 'S'],\n\t['Ť', 'T'],\n\t['Ů', 'U'],\n\t['Ž', 'Z'],\n\n\t// Dhivehi\n\t['ހ', 'h'],\n\t['ށ', 'sh'],\n\t['ނ', 'n'],\n\t['ރ', 'r'],\n\t['ބ', 'b'],\n\t['ޅ', 'lh'],\n\t['ކ', 'k'],\n\t['އ', 'a'],\n\t['ވ', 'v'],\n\t['މ', 'm'],\n\t['ފ', 'f'],\n\t['ދ', 'dh'],\n\t['ތ', 'th'],\n\t['ލ', 'l'],\n\t['ގ', 'g'],\n\t['ޏ', 'gn'],\n\t['ސ', 's'],\n\t['ޑ', 'd'],\n\t['ޒ', 'z'],\n\t['ޓ', 't'],\n\t['ޔ', 'y'],\n\t['ޕ', 'p'],\n\t['ޖ', 'j'],\n\t['ޗ', 'ch'],\n\t['ޘ', 'tt'],\n\t['ޙ', 'hh'],\n\t['ޚ', 'kh'],\n\t['ޛ', 'th'],\n\t['ޜ', 'z'],\n\t['ޝ', 'sh'],\n\t['ޞ', 's'],\n\t['ޟ', 'd'],\n\t['ޠ', 't'],\n\t['ޡ', 'z'],\n\t['ޢ', 'a'],\n\t['ޣ', 'gh'],\n\t['ޤ', 'q'],\n\t['ޥ', 'w'],\n\t['ަ', 'a'],\n\t['ާ', 'aa'],\n\t['ި', 'i'],\n\t['ީ', 'ee'],\n\t['ު', 'u'],\n\t['ޫ', 'oo'],\n\t['ެ', 'e'],\n\t['ޭ', 'ey'],\n\t['ޮ', 'o'],\n\t['ޯ', 'oa'],\n\t['ް', ''],\n\n\t// Greek\n\t['α', 'a'],\n\t['β', 'v'],\n\t['γ', 'g'],\n\t['δ', 'd'],\n\t['ε', 'e'],\n\t['ζ', 'z'],\n\t['η', 'i'],\n\t['θ', 'th'],\n\t['ι', 'i'],\n\t['κ', 'k'],\n\t['λ', 'l'],\n\t['μ', 'm'],\n\t['ν', 'n'],\n\t['ξ', 'ks'],\n\t['ο', 'o'],\n\t['π', 'p'],\n\t['ρ', 'r'],\n\t['σ', 's'],\n\t['τ', 't'],\n\t['υ', 'y'],\n\t['φ', 'f'],\n\t['χ', 'x'],\n\t['ψ', 'ps'],\n\t['ω', 'o'],\n\t['ά', 'a'],\n\t['έ', 'e'],\n\t['ί', 'i'],\n\t['ό', 'o'],\n\t['ύ', 'y'],\n\t['ή', 'i'],\n\t['ώ', 'o'],\n\t['ς', 's'],\n\t['ϊ', 'i'],\n\t['ΰ', 'y'],\n\t['ϋ', 'y'],\n\t['ΐ', 'i'],\n\t['Α', 'A'],\n\t['Β', 'B'],\n\t['Γ', 'G'],\n\t['Δ', 'D'],\n\t['Ε', 'E'],\n\t['Ζ', 'Z'],\n\t['Η', 'I'],\n\t['Θ', 'TH'],\n\t['Ι', 'I'],\n\t['Κ', 'K'],\n\t['Λ', 'L'],\n\t['Μ', 'M'],\n\t['Ν', 'N'],\n\t['Ξ', 'KS'],\n\t['Ο', 'O'],\n\t['Π', 'P'],\n\t['Ρ', 'R'],\n\t['Σ', 'S'],\n\t['Τ', 'T'],\n\t['Υ', 'Y'],\n\t['Φ', 'F'],\n\t['Χ', 'X'],\n\t['Ψ', 'PS'],\n\t['Ω', 'O'],\n\t['Ά', 'A'],\n\t['Έ', 'E'],\n\t['Ί', 'I'],\n\t['Ό', 'O'],\n\t['Ύ', 'Y'],\n\t['Ή', 'I'],\n\t['Ώ', 'O'],\n\t['Ϊ', 'I'],\n\t['Ϋ', 'Y'],\n\n\t// Disabled as it conflicts with German and Latin.\n\t// Hungarian\n\t// ['ä', 'a'],\n\t// ['Ä', 'A'],\n\t// ['ö', 'o'],\n\t// ['Ö', 'O'],\n\t// ['ü', 'u'],\n\t// ['Ü', 'U'],\n\t// ['ű', 'u'],\n\t// ['Ű', 'U'],\n\n\t// Latvian\n\t['ā', 'a'],\n\t['ē', 'e'],\n\t['ģ', 'g'],\n\t['ī', 'i'],\n\t['ķ', 'k'],\n\t['ļ', 'l'],\n\t['ņ', 'n'],\n\t['ū', 'u'],\n\t['Ā', 'A'],\n\t['Ē', 'E'],\n\t['Ģ', 'G'],\n\t['Ī', 'I'],\n\t['Ķ', 'K'],\n\t['Ļ', 'L'],\n\t['Ņ', 'N'],\n\t['Ū', 'U'],\n\t['č', 'c'],\n\t['š', 's'],\n\t['ž', 'z'],\n\t['Č', 'C'],\n\t['Š', 'S'],\n\t['Ž', 'Z'],\n\n\t// Lithuanian\n\t['ą', 'a'],\n\t['č', 'c'],\n\t['ę', 'e'],\n\t['ė', 'e'],\n\t['į', 'i'],\n\t['š', 's'],\n\t['ų', 'u'],\n\t['ū', 'u'],\n\t['ž', 'z'],\n\t['Ą', 'A'],\n\t['Č', 'C'],\n\t['Ę', 'E'],\n\t['Ė', 'E'],\n\t['Į', 'I'],\n\t['Š', 'S'],\n\t['Ų', 'U'],\n\t['Ū', 'U'],\n\n\t// Macedonian\n\t['Ќ', 'Kj'],\n\t['ќ', 'kj'],\n\t['Љ', 'Lj'],\n\t['љ', 'lj'],\n\t['Њ', 'Nj'],\n\t['њ', 'nj'],\n\t['Тс', 'Ts'],\n\t['тс', 'ts'],\n\n\t// Polish\n\t['ą', 'a'],\n\t['ć', 'c'],\n\t['ę', 'e'],\n\t['ł', 'l'],\n\t['ń', 'n'],\n\t['ś', 's'],\n\t['ź', 'z'],\n\t['ż', 'z'],\n\t['Ą', 'A'],\n\t['Ć', 'C'],\n\t['Ę', 'E'],\n\t['Ł', 'L'],\n\t['Ń', 'N'],\n\t['Ś', 'S'],\n\t['Ź', 'Z'],\n\t['Ż', 'Z'],\n\n\t// Disabled as it conflicts with Vietnamese.\n\t// Serbian\n\t// ['љ', 'lj'],\n\t// ['њ', 'nj'],\n\t// ['Љ', 'Lj'],\n\t// ['Њ', 'Nj'],\n\t// ['đ', 'dj'],\n\t// ['Đ', 'Dj'],\n\t// ['ђ', 'dj'],\n\t// ['ј', 'j'],\n\t// ['ћ', 'c'],\n\t// ['џ', 'dz'],\n\t// ['Ђ', 'Dj'],\n\t// ['Ј', 'j'],\n\t// ['Ћ', 'C'],\n\t// ['Џ', 'Dz'],\n\n\t// Disabled as it conflicts with German and Latin.\n\t// Slovak\n\t// ['ä', 'a'],\n\t// ['Ä', 'A'],\n\t// ['ľ', 'l'],\n\t// ['ĺ', 'l'],\n\t// ['ŕ', 'r'],\n\t// ['Ľ', 'L'],\n\t// ['Ĺ', 'L'],\n\t// ['Ŕ', 'R'],\n\n\t// Disabled as it conflicts with German and Latin.\n\t// Swedish\n\t// ['å', 'o'],\n\t// ['Å', 'o'],\n\t// ['ä', 'a'],\n\t// ['Ä', 'A'],\n\t// ['ë', 'e'],\n\t// ['Ë', 'E'],\n\t// ['ö', 'o'],\n\t// ['Ö', 'O'],\n\n\t// Ukrainian\n\t['Є', 'Ye'],\n\t['І', 'I'],\n\t['Ї', 'Yi'],\n\t['Ґ', 'G'],\n\t['є', 'ye'],\n\t['і', 'i'],\n\t['ї', 'yi'],\n\t['ґ', 'g']\n\n\t// Danish\n\t// ['Æ', 'Ae'],\n\t// ['Ø', 'Oe'],\n\t// ['Å', 'Aa'],\n\t// ['æ', 'ae'],\n\t// ['ø', 'oe'],\n\t// ['å', 'aa']\n];\n","'use strict';\nconst deburr = require('lodash.deburr');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst builtinReplacements = require('./replacements');\n\nconst doCustomReplacements = (string, replacements) => {\n\tfor (const [key, value] of replacements) {\n\t\t// TODO: Use `String#replaceAll()` when targeting Node.js 16.\n\t\tstring = string.replace(new RegExp(escapeStringRegexp(key), 'g'), value);\n\t}\n\n\treturn string;\n};\n\nmodule.exports = (string, options) => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got \\`${typeof string}\\``);\n\t}\n\n\toptions = {\n\t\tcustomReplacements: [],\n\t\t...options\n\t};\n\n\tconst customReplacements = new Map([\n\t\t...builtinReplacements,\n\t\t...options.customReplacements\n\t]);\n\n\tstring = string.normalize();\n\tstring = doCustomReplacements(string, customReplacements);\n\tstring = deburr(string);\n\n\treturn string;\n};\n","'use strict';\n\nmodule.exports = [\n\t['&', ' and '],\n\t['🦄', ' unicorn '],\n\t['♥', ' love ']\n];\n","'use strict';\nconst escapeStringRegexp = require('escape-string-regexp');\nconst transliterate = require('@sindresorhus/transliterate');\nconst builtinOverridableReplacements = require('./overridable-replacements');\n\nconst decamelize = string => {\n\treturn string\n\t\t// Separate capitalized words.\n\t\t.replace(/([A-Z]{2,})(\\d+)/g, '$1 $2')\n\t\t.replace(/([a-z\\d]+)([A-Z]{2,})/g, '$1 $2')\n\n\t\t.replace(/([a-z\\d])([A-Z])/g, '$1 $2')\n\t\t.replace(/([A-Z]+)([A-Z][a-z\\d]+)/g, '$1 $2');\n};\n\nconst removeMootSeparators = (string, separator) => {\n\tconst escapedSeparator = escapeStringRegexp(separator);\n\n\treturn string\n\t\t.replace(new RegExp(`${escapedSeparator}{2,}`, 'g'), separator)\n\t\t.replace(new RegExp(`^${escapedSeparator}|${escapedSeparator}$`, 'g'), '');\n};\n\nconst slugify = (string, options) => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got \\`${typeof string}\\``);\n\t}\n\n\toptions = {\n\t\tseparator: '-',\n\t\tlowercase: true,\n\t\tdecamelize: true,\n\t\tcustomReplacements: [],\n\t\tpreserveLeadingUnderscore: false,\n\t\t...options\n\t};\n\n\tconst shouldPrependUnderscore = options.preserveLeadingUnderscore && string.startsWith('_');\n\n\tconst customReplacements = new Map([\n\t\t...builtinOverridableReplacements,\n\t\t...options.customReplacements\n\t]);\n\n\tstring = transliterate(string, {customReplacements});\n\n\tif (options.decamelize) {\n\t\tstring = decamelize(string);\n\t}\n\n\tlet patternSlug = /[^a-zA-Z\\d]+/g;\n\n\tif (options.lowercase) {\n\t\tstring = string.toLowerCase();\n\t\tpatternSlug = /[^a-z\\d]+/g;\n\t}\n\n\tstring = string.replace(patternSlug, options.separator);\n\tstring = string.replace(/\\\\/g, '');\n\tif (options.separator) {\n\t\tstring = removeMootSeparators(string, options.separator);\n\t}\n\n\tif (shouldPrependUnderscore) {\n\t\tstring = `_${string}`;\n\t}\n\n\treturn string;\n};\n\nconst counter = () => {\n\tconst occurrences = new Map();\n\n\tconst countable = (string, options) => {\n\t\tstring = slugify(string, options);\n\n\t\tif (!string) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst stringLower = string.toLowerCase();\n\t\tconst numberless = occurrences.get(stringLower.replace(/(?:-\\d+?)+?$/, '')) || 0;\n\t\tconst counter = occurrences.get(stringLower);\n\t\toccurrences.set(stringLower, typeof counter === 'number' ? counter + 1 : 1);\n\t\tconst newCounter = occurrences.get(stringLower) || 2;\n\t\tif (newCounter >= 2 || numberless > 2) {\n\t\t\tstring = `${string}-${newCounter}`;\n\t\t}\n\n\t\treturn string;\n\t};\n\n\tcountable.reset = () => {\n\t\toccurrences.clear();\n\t};\n\n\treturn countable;\n};\n\nmodule.exports = slugify;\nmodule.exports.counter = counter;\n","import { z } from \"zod\";\n\nexport const PluginOAuthRequestSchema = z.object({\n id: z.string(),\n codeChallenge: z.string(),\n readKey: z.string(),\n writeKey: z.string(),\n readKeyConsumed: z.boolean(),\n writeKeyConsumed: z.boolean(),\n oAuthCode: z.string().optional(),\n createdAt: z.date(),\n});\n\nexport type PluginOAuthRequest = z.infer<typeof PluginOAuthRequestSchema>;\n","import { z } from \"zod\";\n\nexport const CardSchema = z.object({\n cardId: z.string().nullish(),\n last4: z.string().length(4).nullish(),\n expiryMonth: z.string().nullish(),\n expiryYear: z.string().nullish(),\n brand: z.string().nullish(),\n name: z.string().nullish(),\n});\n\nexport type Card = z.infer<typeof CardSchema>;\n","import { z } from \"zod\";\n\nexport const PostStripeCheckoutBodyInputSchema = z.object({\n priceId: z.string(),\n successUrl: z.string().url(),\n cancelUrl: z.string().url(),\n quantity: z.number().int().min(1).optional(),\n});\n\nexport const PostStripeCheckoutOutputSchema = z.object({\n id: z.string(),\n url: z.string().nullish(),\n});\n\nexport type StripeCheckoutInput = z.infer<typeof PostStripeCheckoutBodyInputSchema>;\nexport type StripeCheckoutOutput = z.infer<typeof PostStripeCheckoutOutputSchema>;\n","import { z } from \"zod\";\n\nexport const Customer = z.object({\n id: z.string(),\n});\n\nexport const Address = z.object({\n street1: z.string().optional(),\n street2: z.string().optional(),\n city: z.string().optional(),\n postal: z.string().optional(),\n country: z.string().optional(),\n state: z.string().optional(),\n});\n\nexport const BillingDetails = z.object({\n address: Address.optional(),\n email: z.string().optional(),\n companyName: z.string().optional(),\n companyId: z.string().optional(),\n notes: z.string().optional(),\n vat: z.string().optional(),\n poNumber: z.string().optional(),\n});\n\nexport type Customer = z.infer<typeof Customer>;\nexport type Address = z.infer<typeof Address>;\nexport type BillingDetails = z.infer<typeof BillingDetails>;\n","import { z } from \"zod\";\n\nconst featureLimitedSchema = z.object({\n max: z.number(),\n errorMessage: z.string(),\n errorReason: z.string(),\n});\n\nconst featureToggleSchema = z.object({\n enabled: z.boolean(),\n errorMessage: z.string(),\n errorReason: z.string(),\n});\n\nconst featureWithImportJobsSchema = featureLimitedSchema.extend({\n noImportJobsErrorMessage: z.string(),\n noImportJobsErrorReason: z.string(),\n});\n\nexport const FeaturesSummary = z.object({\n designSystems: featureLimitedSchema,\n designSystemSources: featureWithImportJobsSchema,\n designSystemVersions: featureLimitedSchema,\n themes: featureLimitedSchema,\n brands: featureLimitedSchema,\n codegenSchedules: featureLimitedSchema,\n publicDocumentation: featureToggleSchema,\n customDocumentationUrl: featureToggleSchema,\n customDocumentationViewButton: featureToggleSchema,\n designSystemSourceAutoImport: featureToggleSchema,\n designSystemSlug: featureToggleSchema,\n ipWhitelisting: featureToggleSchema,\n npmRegistry: featureToggleSchema,\n sso: featureToggleSchema,\n workspacePaidSeats: featureLimitedSchema,\n workspaceViewers: featureLimitedSchema,\n customDocumentationExporter: featureToggleSchema,\n});\n\nexport type FeatureLimitedDetails = z.infer<typeof featureLimitedSchema>;\nexport type FeatureToggleDetails = z.infer<typeof featureToggleSchema>;\nexport type FeatureWithImportJobsDetails = z.infer<typeof featureWithImportJobsSchema>;\nexport type FeaturesSummary = z.infer<typeof FeaturesSummary>;\n","import { z } from \"zod\";\nimport { CardSchema } from \"./card\";\n\nexport const InvoiceSchema = z.object({\n id: z.string(),\n number: z.string(),\n amount_due: z.number(),\n date: z.date(),\n hostedUrl: z.string().url(),\n card: CardSchema.nullish(),\n});\n\nexport const PeriodSchema = z.object({\n start: z.date(),\n end: z.date(),\n});\n\nexport const InvoiceLineSchema = z.object({\n amount: z.number(),\n period: PeriodSchema,\n proration: z.boolean(),\n description: z.string(),\n type: z.string(),\n});\n\nexport const InvoiceCouponSchema = z.object({\n amount_off: z.number(),\n percent_off: z.number(),\n name: z.string(),\n});\n\nexport type Invoice = z.infer<typeof InvoiceSchema>;\nexport type InvoiceLine = z.infer<typeof InvoiceLineSchema>;\nexport type InvoiceCoupon = z.infer<typeof InvoiceCouponSchema>;\n","import { z } from \"zod\";\n\nexport const PostStripePortalUpdateSessionBodyInputSchema = z.object({\n priceId: z.string(),\n numberOfSeats: z.number().int(),\n});\nexport const PostStripePortalSessionBodyInputSchema = z.object({\n returnUrl: z.string().url(),\n update: PostStripePortalUpdateSessionBodyInputSchema.optional(),\n cancel: z.boolean().optional(),\n});\n\nexport const PostStripePortalSessionOutputSchema = z.object({\n id: z.string(),\n url: z.string().nullish(),\n});\n\nexport type StripePortalSessionInput = z.infer<typeof PostStripePortalSessionBodyInputSchema>;\nexport type StripePortalSessionOutput = z.infer<typeof PostStripePortalSessionOutputSchema>;\n","import { z } from \"zod\";\n\nexport const BillingIntervalSchema = z.enum([\"daily\", \"monthly\", \"weekly\", \"yearly\"]);\n\nexport const PriceSchema = z.object({\n stripePriceId: z.string(),\n stripeProductId: z.string(),\n stripeProductName: z.string().optional(),\n stripeProductDescription: z.string().optional(),\n active: z.boolean(),\n amount: z.number(),\n interval: BillingIntervalSchema,\n isPricePerCreator: z.boolean().optional(),\n isTrial: z.boolean().optional(),\n isHidden: z.boolean().optional(),\n minimumSeats: z.number().optional(),\n legacyVersion: z.string().optional(),\n featuresSet: z.string().optional(),\n stripeProductFeatures: z.array(z.string()).optional(),\n stripeProductAdditionalFeatures: z.array(z.string()).optional(),\n});\n\nexport type BillingInterval = z.infer<typeof BillingIntervalSchema>;\nexport type Price = z.infer<typeof PriceSchema>;\n","import { z } from \"zod\";\n\nexport const ProductCodeSchema = z.enum([\"free\", \"team\", \"team_test\", \"company\", \"enterprise\"]);\nexport type ProductCode = z.infer<typeof ProductCodeSchema>;\nexport const ProductCode = ProductCodeSchema.enum;\n","import { CardSchema } from \"./card\";\nimport { ProductCode, ProductCodeSchema } from \"./product\";\nimport { FeaturesSummary } from \"./features\";\nimport { BillingIntervalSchema } from \"./price\";\nimport { z } from \"zod\";\nexport const StripeSubscriptionStatusSchema = z.enum([\n \"trialing\",\n \"active\",\n \"past_due\",\n \"canceled\",\n \"unpaid\",\n \"incomplete_expired\",\n \"incomplete\",\n \"unknown\",\n]);\n\nexport const InternalStatusSchema = z.enum([\"active\", \"suspended\", \"gracePeriod\", \"cancelled\", \"downgraded_to_free\"]);\n\nexport const BillingTypeSchema = z.enum([\"Auto\", \"Invoice\"]);\n\nexport type StripeSubscriptionStatus = z.infer<typeof StripeSubscriptionStatusSchema>;\nexport type InternalStatus = z.infer<typeof InternalStatusSchema>;\nexport type BillingType = z.infer<typeof BillingTypeSchema>;\n\nexport const StripeSubscriptionStatus = StripeSubscriptionStatusSchema.enum;\nexport const InternalStatus = InternalStatusSchema.enum;\nexport const BillingType = BillingTypeSchema.enum;\n\nexport const Subscription = z.object({\n stripeSubscriptionId: z.string().nullish(),\n stripeCustomerId: z.string().nullish(),\n\n status: InternalStatusSchema.optional(),\n subscriptionStatus: StripeSubscriptionStatusSchema.optional(), // the stripe API official status\n internalStatus: InternalStatusSchema.optional(), // TODO: delete when create/get workspace will stop using it in the former API\n\n product: ProductCodeSchema,\n featuresSummary: FeaturesSummary.optional(),\n stripeProductDescription: z.string().optional(),\n stripeProductFeatures: z.array(z.string()).optional(),\n stripeProductAdditionalFeatures: z.array(z.string()).optional(),\n stripeSubscriptionMainItemId: z.string().optional(),\n planPriceId: z.string(),\n planInterval: BillingIntervalSchema,\n isPricePerCreator: z.boolean().optional(),\n legacyVersion: z.string().optional(),\n\n seats: z.number(),\n seatLimit: z.number(),\n\n currentPeriodStart: z.string().optional(),\n currentPeriodEnd: z.string().optional(),\n subscriptionStatusUpdatedAt: z.string().optional(),\n cancelAt: z.string().nullish(),\n\n card: CardSchema.optional(),\n\n // New\n amount: z.number().nullish(),\n isTrial: z.boolean().optional(),\n billingType: BillingTypeSchema.optional(),\n daysUntilDue: z.number().optional(),\n});\n\nexport type Subscription = z.infer<typeof Subscription>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit } from \"../../helpers\";\n\nexport const AssetReference = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n assetId: z.string(),\n persistentId: z.string(),\n});\n\nexport type AssetReference = z.infer<typeof AssetReference>;\n\nexport type CreateAssetReference = DbCreateInputOmit<AssetReference>;\n\nexport type AssetReferenceDiff = {\n toCreate: CreateAssetReference[];\n toDelete: string[];\n};\n","import { z } from \"zod\";\n\nexport const AssetValue = z.object({});\n","import { z } from \"zod\";\nimport { OmitStrict } from \"../../helpers\";\n\nexport const AssetType = z.enum([\"Image\", \"Font\"]);\nexport const AssetScope = z.enum([\"DocumentationFrame\", \"ComponentThumbnail\", \"DesignSystem\", \"Documentation\"]);\n\nexport const AssetFontProperties = z.object({\n family: z.string(),\n subfamily: z.string(),\n});\n\nexport const AssetProperties = z.object({\n fontProperties: z.array(AssetFontProperties),\n});\n\nexport const AssetOrigin = z.object({\n originKey: z.string(),\n});\n\nexport const Asset = z.object({\n id: z.string(),\n designSystemId: z.string().nullish(),\n type: AssetType,\n originalFileName: z.string().nullish(),\n filePath: z.string(),\n scope: AssetScope,\n properties: AssetProperties.nullish(),\n origin: AssetOrigin.nullish(),\n});\n\nexport type AssetType = z.infer<typeof AssetType>;\nexport type AssetScope = z.infer<typeof AssetScope>;\nexport type AssetFontProperties = z.infer<typeof AssetFontProperties>;\nexport type AssetProperties = z.infer<typeof AssetProperties>;\nexport type AssetOrigin = z.infer<typeof AssetOrigin>;\nexport type Asset = z.infer<typeof Asset>;\n\nexport type ImportedAsset = OmitStrict<Asset, \"origin\"> & {\n origin: AssetOrigin;\n};\n\nexport type ResolvedAsset = OmitStrict<Asset, \"filePath\"> & {\n url: string;\n};\n\nexport function isImportedAsset(asset: Asset): asset is ImportedAsset {\n return !!asset.origin;\n}\n","import { z } from \"zod\";\nimport { SourceImportSummary } from \"./import-summary\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\n//\n// Enums\n//\n\nexport const DataSourceRemoteType = z.enum([\"Figma\", \"TokenStudio\", \"FigmaVariablesPlugin\"]);\nexport const DataSourceUploadRemoteSource = z.enum([\"TokenStudio\", \"FigmaVariablesPlugin\", \"Custom\"]);\nexport const DataSourceFigmaState = z.enum([\"Active\", \"MissingIntegration\", \"MissingFileAccess\", \"MissingFileOwner\"]);\nexport const DataSourceAutoImportMode = z.enum([\"Never\", \"Hourly\"]);\n\nexport type DataSourceRemoteType = z.infer<typeof DataSourceRemoteType>;\nexport type DataSourceUploadRemoteSource = z.infer<typeof DataSourceUploadRemoteSource>;\nexport type DataSourceFigmaState = z.infer<typeof DataSourceFigmaState>;\nexport type DataSourceAutoImportMode = z.infer<typeof DataSourceAutoImportMode>;\n\n//\n// Aux\n//\n\nexport const DataSourceStats = z.object({\n tokens: zeroNumberByDefault(),\n components: zeroNumberByDefault(),\n assets: zeroNumberByDefault(),\n frames: zeroNumberByDefault(),\n});\n\nexport type DataSourceStats = z.infer<typeof DataSourceStats>;\n\n//\n// Figma\n//\n\nexport const DataSourceFigmaFileData = z.object({\n lastUpdatedAt: z.coerce.date(),\n});\n\nexport const DataSourceFigmaFileVersionData = z.object({\n id: z.string(),\n label: z.string().optional(),\n description: z.string().optional(),\n createdAt: z.coerce.date(),\n});\n\nexport const DataSourceFigmaScope = z.object({\n assets: z.boolean(),\n components: z.boolean(),\n documentationFrames: z.boolean(),\n tokens: z.boolean(),\n themePersistentId: z.string().optional(),\n});\n\nexport const DataSourceFigmaImportMetadata = z.object({\n fileData: DataSourceFigmaFileData.optional(),\n importedPublishedVersion: DataSourceFigmaFileVersionData.optional(),\n});\n\nexport const DataSourceFigmaRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.Figma),\n fileId: z.string(),\n ownerId: z.string(),\n ownerName: z.string(),\n scope: DataSourceFigmaScope,\n state: DataSourceFigmaState,\n lastImportMetadata: DataSourceFigmaImportMetadata.optional(),\n downloadChunkSize: z.number().optional(),\n});\n\nexport type DataSourceFigmaFileData = z.infer<typeof DataSourceFigmaFileData>;\nexport type DataSourceFigmaFileVersionData = z.infer<typeof DataSourceFigmaFileVersionData>;\nexport type DataSourceFigmaScope = z.infer<typeof DataSourceFigmaScope>;\nexport type DataSourceFigmaImportMetadata = z.infer<typeof DataSourceFigmaImportMetadata>;\nexport type DataSourceFigmaRemote = z.infer<typeof DataSourceFigmaRemote>;\n\n//\n// Token Studio\n//\n\nexport const DataSourceTokenStudioRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.TokenStudio),\n});\n\nexport type DataSourceTokenStudioRemote = z.infer<typeof DataSourceTokenStudioRemote>;\n\n//\n// Figma Variables Plugin\n//\n\nexport const DataSourceUploadImportMetadata = z.record(z.any());\n\nexport const DataSourceUploadRemote = z.object({\n type: z.literal(DataSourceRemoteType.Enum.FigmaVariablesPlugin),\n remoteId: z.string(),\n remoteSourceType: DataSourceUploadRemoteSource,\n lastImportMetadata: DataSourceUploadImportMetadata.optional(),\n});\n\nexport type DataSourceUploadImportMetadata = z.infer<typeof DataSourceUploadImportMetadata>;\nexport type DataSourceUploadRemote = z.infer<typeof DataSourceUploadRemote>;\n\n//\n// Base\n//\n\nexport const DataSourceRemote = z.discriminatedUnion(\"type\", [\n DataSourceFigmaRemote,\n DataSourceUploadRemote,\n DataSourceTokenStudioRemote,\n]);\n\nexport type DataSource = {\n id: string;\n\n name: string;\n thumbnailUrl: string | undefined;\n\n // createdAt: Date;\n // updatedAt: Date;\n\n lastImportedAt: Date | undefined;\n lastImportSummary: SourceImportSummary | undefined;\n\n // lastImportJobId: Nullish<string>;\n // lastNonEmptyImportJobId: Nullish<string>;\n\n designSystemId: string;\n brandPersistentId: string;\n\n autoImportMode: DataSourceAutoImportMode;\n stats: DataSourceStats;\n\n remote: DataSourceRemote;\n\n sortOrder: number;\n};\n\nexport const DataSourceVersion = z.object({\n id: z.string(),\n createdAt: z.date(),\n label: z.string().nullish(),\n description: z.string().nullish(),\n});\n\nexport type DataSourceVersion = z.infer<typeof DataSourceVersion>;\n\nexport type DataSourceRemote = z.infer<typeof DataSourceRemote>;\n\nexport type CreateDataSource = OmitStrict<DbCreateInputOmit<DataSource>, \"sortOrder\">;\nexport type UpdateDataSource = OmitStrict<DbUpdate<DataSource>, \"brandPersistentId\" | \"designSystemId\">;\n\nfunction zeroNumberByDefault() {\n return z\n .number()\n .nullish()\n .transform(v => v ?? 0);\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { DataSourceRemoteType } from \"./data-source\";\nimport { Entity } from \"../../common\";\n\nexport const ImportJobState = z.enum([\"PendingInput\", \"Queued\", \"InProgress\", \"Failed\", \"Success\"]);\nexport const ImportJobOperation = z.enum([\"Check\", \"Import\"]);\n\nexport const ImportJob = Entity.extend({\n designSystemId: z.string(),\n designSystemVersionId: z.string(),\n sourceIds: z.array(z.string()),\n state: ImportJobState,\n createdByUserId: z.string().optional(),\n importContextId: z.string(),\n error: z.string().optional(),\n sourceType: DataSourceRemoteType,\n});\n\nexport type ImportJobState = z.infer<typeof ImportJobState>;\nexport type ImportJobOperation = z.infer<typeof ImportJobOperation>;\nexport type ImportJob = z.infer<typeof ImportJob>;\n\nexport type CreateImportJob = DbCreateInputOmit<ImportJob>;\nexport type UpdateImportJob = OmitStrict<\n DbUpdate<ImportJob>,\n \"designSystemId\" | \"createdByUserId\" | \"sourceIds\" | \"importContextId\"\n>;\n","import { z } from \"zod\";\n\nexport const Entity = z.object({\n id: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type Entity = z.infer<typeof Entity>;\n","import { z } from \"zod\";\n\nexport const ObjectMeta = z.object({\n name: z.string(),\n description: z.string().optional(),\n});\n\nexport type ObjectMeta = z.infer<typeof ObjectMeta>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../elements\";\nimport { nullishToOptional } from \"../../helpers\";\nimport { ImportWarning } from \"../import\";\n\nexport const FileStructureStats = z.object({\n frames: zeroNumberByDefault(),\n components: zeroNumberByDefault(),\n componentSets: zeroNumberByDefault(),\n});\n\nconst SourceImportSummaryByTokenTypeKey = DesignTokenType.or(\n // Backward compatibility\n z.enum([\"Measure\", \"Radius\", \"GenericToken\", \"Font\", \"Text\"])\n);\n\nexport const SourceImportSummaryByTokenType = z.record(SourceImportSummaryByTokenTypeKey, z.number());\n\nexport const SourceImportTokenSummary = z.object({\n tokensCreated: zeroNumberByDefault(),\n tokensUpdated: zeroNumberByDefault(),\n tokensDeleted: zeroNumberByDefault(),\n tokensCreatedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n tokensUpdatedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n tokensDeletedPerType: SourceImportSummaryByTokenType.nullish().transform(v => v ?? {}),\n});\n\nexport const SourceImportComponentSummary = z.object({\n componentsCreated: zeroNumberByDefault(),\n componentsUpdated: zeroNumberByDefault(),\n componentsDeleted: zeroNumberByDefault(),\n componentAssetsCreated: zeroNumberByDefault(),\n componentAssetsUpdated: zeroNumberByDefault(),\n componentAssetsDeleted: zeroNumberByDefault(),\n});\n\nexport const SourceImportFrameSummary = z.object({\n assetsInFile: nullishToOptional(FileStructureStats.optional()),\n invalidReferencesCount: nullishToOptional(z.number().optional()),\n});\n\nexport const SourceImportSummary = z.object({\n sourceId: nullishToOptional(z.string()),\n brandId: nullishToOptional(z.string()),\n versionId: nullishToOptional(z.string()),\n error: nullishToOptional(z.any()),\n isFailed: z.boolean(),\n warnings: z\n .array(ImportWarning)\n .nullish()\n .transform(v => v ?? []),\n\n ...SourceImportTokenSummary.shape,\n ...SourceImportComponentSummary.shape,\n ...FileStructureStats.shape,\n});\n\nexport type FileStructureStats = z.infer<typeof FileStructureStats>;\nexport type SourceImportSummaryByTokenType = z.infer<typeof SourceImportSummaryByTokenType>;\nexport type SourceImportTokenSummary = z.infer<typeof SourceImportTokenSummary>;\nexport type SourceImportComponentSummary = z.infer<typeof SourceImportComponentSummary>;\nexport type SourceImportFrameSummary = z.infer<typeof SourceImportFrameSummary>;\nexport type SourceImportSummary = z.infer<typeof SourceImportSummary>;\n\nfunction zeroNumberByDefault() {\n return z\n .number()\n .nullish()\n .transform(v => v ?? 0);\n}\n","import { ZodSchema, z } from \"zod\";\n\nexport const TokenDataAliasSchema = z.object({\n aliasTo: z\n .string()\n .optional()\n .nullable()\n .transform(v => v ?? undefined),\n});\n\nexport function tokenAliasOrValue<T extends ZodSchema>(value: T) {\n return TokenDataAliasSchema.extend({\n value: value\n .optional()\n .nullable()\n .transform(v => (v ?? undefined) as z.output<T> | undefined),\n });\n}\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\nimport { DimensionTokenData } from \"./dimension\";\n\nexport const BlurType = z.enum([\"Layer\", \"Background\"]);\n\nexport const BlurValue = z.object({\n type: BlurType,\n radius: DimensionTokenData,\n});\n\nexport const BlurTokenData = tokenAliasOrValue(BlurValue);\n\nexport type BlurType = z.infer<typeof BlurType>;\nexport type BlurValue = z.infer<typeof BlurValue>;\nexport type BlurTokenData = z.infer<typeof BlurTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const DimensionUnit = z.enum([\"Pixels\", \"Percent\", \"Rem\", \"Ms\", \"Raw\", \"Points\"]);\n\nexport const DimensionValue = z.object({\n unit: DimensionUnit,\n measure: z.number(),\n});\n\nexport const DimensionTokenData = tokenAliasOrValue(DimensionValue);\n\nexport type DimensionUnit = z.infer<typeof DimensionUnit>;\nexport type DimensionValue = z.infer<typeof DimensionValue>;\nexport type DimensionTokenData = z.infer<typeof DimensionTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderRadiusUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const BorderRadiusValue = z.object({\n unit: BorderRadiusUnit,\n measure: z.number(),\n});\n\nexport const BorderRadiusTokenData = tokenAliasOrValue(BorderRadiusValue);\n\nexport type BorderRadiusUnit = z.infer<typeof BorderRadiusUnit>;\nexport type BorderRadiusValue = z.infer<typeof BorderRadiusValue>;\nexport type BorderRadiusTokenData = z.infer<typeof BorderRadiusTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderWidthUnit = z.enum([\"Pixels\"]);\n\nexport const BorderWidthValue = z.object({\n unit: BorderWidthUnit,\n measure: z.number(),\n});\n\nexport const BorderWidthTokenData = tokenAliasOrValue(BorderWidthValue);\n\nexport type BorderWidthUnit = z.infer<typeof BorderWidthUnit>;\nexport type BorderWidthValue = z.infer<typeof BorderWidthValue>;\nexport type BorderWidthTokenData = z.infer<typeof BorderWidthTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { BorderWidthTokenData } from \"./border-width\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const BorderPosition = z.enum([\"Inside\", \"Center\", \"Outside\"]);\nexport const BorderStyle = z.enum([\"Dashed\", \"Dotted\", \"Solid\", \"Groove\"]);\n\nexport const BorderValue = z.object({\n color: ColorTokenData,\n width: BorderWidthTokenData,\n position: BorderPosition,\n style: BorderStyle.optional(),\n});\n\nexport const BorderTokenData = tokenAliasOrValue(BorderValue);\n\nexport type BorderPosition = z.infer<typeof BorderPosition>;\nexport type BorderStyle = z.infer<typeof BorderStyle>;\nexport type BorderValue = z.infer<typeof BorderValue>;\nexport type BorderTokenData = z.infer<typeof BorderTokenData>;\n","import { z } from \"zod\";\nimport { TokenDataAliasSchema, tokenAliasOrValue } from \"./base\";\nimport { OpacityTokenData } from \"./opacity\";\n\nexport const ColorValue = z.object({\n opacity: OpacityTokenData,\n color: z.string().or(TokenDataAliasSchema),\n});\n\nexport const ColorTokenData = tokenAliasOrValue(ColorValue);\n\nexport type ColorValue = z.infer<typeof ColorValue>;\nexport type ColorTokenData = z.infer<typeof ColorTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const OpacityValue = z.object({\n unit: z.enum([\"Raw\", \"Pixels\"]),\n measure: z.number(),\n});\n\nexport const OpacityTokenData = tokenAliasOrValue(OpacityValue);\n\nexport type OpacityValue = z.infer<typeof OpacityValue>;\nexport type OpacityTokenData = z.infer<typeof OpacityTokenData>;\n","import { z } from \"zod\";\n\nexport const ComponentElementData = z.object({\n value: z.object({\n thumbnailImage: z.object({\n value: z.object({\n url: z.string(),\n assetId: z.string(),\n }),\n }),\n\n svg: z\n .object({\n value: z.object({\n url: z.string(),\n assetId: z.string(),\n }),\n })\n .optional(),\n }),\n});\n\nexport type ComponentElementData = z.infer<typeof ComponentElementData>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../raw-element\";\nimport { DimensionTokenData } from \"./dimension\";\nimport { ColorTokenInlineData } from \"../../properties\";\nimport { Size } from \"../primitives\";\nimport { nullishToOptional } from \"../../../helpers\";\n\n//\n// Enums\n//\n\nexport const PageBlockTypeV1 = z.enum([\n \"Text\",\n \"Heading\",\n \"Code\",\n \"UnorderedList\",\n \"OrderedList\",\n \"Quote\",\n \"Callout\",\n \"Divider\",\n \"Image\",\n \"Embed\",\n \"Link\",\n \"Shortcuts\",\n \"FigmaEmbed\",\n \"YoutubeEmbed\",\n \"StorybookEmbed\",\n \"Token\",\n \"TokenGroup\",\n \"TokenList\",\n \"Component\",\n \"ComponentGroup\",\n \"Theme\",\n \"ComponentSandbox\",\n \"Custom\",\n \"FigmaFrames\",\n \"ComponentAssets\",\n \"RenderCode\",\n \"Tabs\",\n \"TabItem\",\n \"Table\",\n \"TableRow\",\n \"TableCell\",\n]);\n\nexport const PageBlockCodeLanguage = z.enum([\n \"Angular\",\n \"Bash\",\n \"C\",\n \"Cpp\",\n \"Csharp\",\n \"CSS\",\n \"Dart\",\n \"Handlebars\",\n \"HTML\",\n \"Java\",\n \"Javascript\",\n \"JSON\",\n \"ReactJSX\",\n \"ReactTSX\",\n \"Kotlin\",\n \"Lua\",\n \"Markdown\",\n \"ObjectiveC\",\n \"PHP\",\n \"Plain\",\n \"Python\",\n \"Ruby\",\n \"Rust\",\n \"Sass\",\n \"SCSS\",\n \"Svetle\",\n \"Swift\",\n \"Twig\",\n \"Typescript\",\n \"Vue\",\n \"XML\",\n \"YAML\",\n]);\n\nexport const PageBlockCalloutType = z.enum([\"Info\", \"Success\", \"Warning\", \"Error\"]);\nexport const PageBlockAlignment = z.enum([\"Left\", \"Center\", \"Stretch\", \"Right\"]);\nexport const PageBlockThemeType = z.enum([\"Override\", \"Comparison\"]);\nexport const PageBlockAssetType = z.enum([\"image\", \"figmaFrame\"]);\n\nexport const PageBlockTilesAlignment = z.enum([\"Center\", \"FrameHeight\"]);\n\nexport const PageBlockTilesLayout = z.enum([\"C8\", \"C7\", \"C6\", \"C5\", \"C4\", \"C3\", \"C2\", \"C1\", \"C1_75\"]);\n\n//\n// Support types\n//\n\nexport const PageBlockTheme = z.object({\n themeIds: z.array(z.string()),\n type: PageBlockThemeType,\n});\n\nexport const PageBlockUrlPreview = z.object({\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n thumbnailUrl: nullishToOptional(z.string()),\n});\n\nexport const PageBlockFrameOrigin = z.object({\n sourceFileName: nullishToOptional(z.string()),\n title: nullishToOptional(z.string()),\n previewUrl: nullishToOptional(z.string()),\n valid: nullishToOptional(z.boolean()),\n referenceId: nullishToOptional(z.string()),\n assetId: nullishToOptional(z.string()),\n assetScale: nullishToOptional(z.number()),\n width: nullishToOptional(z.number()),\n height: nullishToOptional(z.number()),\n});\n\nexport const PageBlockFrame = z.object({\n persistentId: z.string(),\n sourceId: z.string(),\n sourceFrameId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n origin: nullishToOptional(PageBlockFrameOrigin),\n});\n\nexport const PageBlockAsset = z.object({\n type: PageBlockAssetType,\n id: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n figmaFrame: nullishToOptional(PageBlockFrame),\n});\n\nexport const PageBlockLinkPreview = z.object({\n title: nullishToOptional(z.string()),\n valid: nullishToOptional(z.boolean()),\n});\n\nexport const PageBlockShortcut = z.object({\n persistentId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n asset: nullishToOptional(PageBlockAsset),\n documentationItemId: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n urlPreview: nullishToOptional(PageBlockUrlPreview),\n documentationItemPreview: nullishToOptional(PageBlockLinkPreview),\n});\n\nexport const PageBlockCustomBlockPropertyImageValue = z.object({\n asset: nullishToOptional(PageBlockAsset),\n assetId: nullishToOptional(z.string()),\n assetUrl: nullishToOptional(z.string()),\n});\n\nexport const PageBlockCustomBlockPropertyValue = z.object({\n key: z.string(),\n value: z.any(),\n\n // TODO Artem: for some reason there are cases when there's an array here in the DB\n // e.g. element id 67451 in the dev db\n\n // value: z\n // .boolean()\n // .or(z.number())\n // .or(z.string())\n // .or(ColorTokenData)\n // .or(TypographyTokenData)\n // .or(PageBlockCustomBlockPropertyImageValue),\n});\n\nexport const PageBlockFigmaFrameProperties = z.object({\n alignment: PageBlockTilesAlignment,\n layout: PageBlockTilesLayout,\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n showTitles: z.boolean(),\n});\n\nexport const PageBlockRenderCodeProperties = z.object({\n showCode: z.boolean(),\n});\n\nexport const PageBlockAssetComponent = z.object({\n persistentId: z.string(),\n componentAssetId: z.string(),\n title: nullishToOptional(z.string()),\n description: nullishToOptional(z.string()),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n});\n\nexport const PageBlockTableColumn = z.object({\n id: z.string(),\n width: DimensionTokenData,\n});\n\nexport const PageBlockTableProperties = z.object({\n showBorders: z.boolean(),\n showHeaderRow: z.boolean(),\n showHeaderColumn: z.boolean(),\n columns: z.array(PageBlockTableColumn),\n});\n\nexport const PageBlockTextSpanAttributeType = z.enum([\"Bold\", \"Italic\", \"Link\", \"Strikethrough\", \"Code\"]);\n\nexport const PageBlockTextSpanAttribute = z.object({\n type: PageBlockTextSpanAttributeType,\n link: nullishToOptional(z.string()),\n documentationItemId: nullishToOptional(z.string()),\n openInNewWindow: nullishToOptional(z.boolean()),\n});\n\nexport const PageBlockTextSpan = z.object({\n text: z.string(),\n attributes: z.array(PageBlockTextSpanAttribute),\n});\n\nexport const PageBlockText = z.object({\n spans: z.array(PageBlockTextSpan),\n});\n\nexport type PageBlockTypeV1 = z.infer<typeof PageBlockTypeV1>;\nexport type PageBlockTextSpanAttribute = z.infer<typeof PageBlockTextSpanAttribute>;\nexport type PageBlockTextSpan = z.infer<typeof PageBlockTextSpan>;\nexport type PageBlockText = z.infer<typeof PageBlockText>;\nexport type PageBlockFrame = z.infer<typeof PageBlockFrame>;\nexport type PageBlockFrameOrigin = z.infer<typeof PageBlockFrameOrigin>;\n\n//\n// Block\n//\n\nconst PageBlockBaseV1 = z.object({\n persistentId: z.string(),\n type: PageBlockTypeV1,\n\n // Element linking\n designObjectId: nullishToOptional(z.string()),\n designObjectIds: nullishToOptional(z.array(z.string())),\n tokenType: nullishToOptional(DesignTokenType.or(z.literal(\"Font\"))),\n showNestedGroups: nullishToOptional(z.boolean()),\n brandId: nullishToOptional(z.string()),\n\n // Rich text\n text: nullishToOptional(PageBlockText),\n caption: nullishToOptional(z.string()),\n headingType: nullishToOptional(z.number().min(1).max(3)),\n codeLanguage: nullishToOptional(PageBlockCodeLanguage),\n calloutType: nullishToOptional(PageBlockCalloutType),\n urlInput: nullishToOptional(z.string()),\n url: nullishToOptional(z.string()),\n urlPreview: nullishToOptional(PageBlockUrlPreview),\n\n // Image\n asset: nullishToOptional(PageBlockAsset),\n alignment: nullishToOptional(PageBlockAlignment),\n\n // Shortcuts block\n shortcuts: nullishToOptional(z.array(PageBlockShortcut)),\n\n // Custom blocks\n customBlockKey: nullishToOptional(z.string()),\n customBlockProperties: nullishToOptional(z.array(PageBlockCustomBlockPropertyValue)),\n variantKey: nullishToOptional(z.string()),\n\n // Figma frames\n figmaFrameProperties: nullishToOptional(PageBlockFigmaFrameProperties),\n figmaFrames: nullishToOptional(z.array(PageBlockFrame)),\n\n // Generic\n size: nullishToOptional(Size),\n backgroundColor: nullishToOptional(ColorTokenInlineData),\n\n // Render code\n renderCodeProperties: nullishToOptional(PageBlockRenderCodeProperties),\n\n // Component assets\n componentAssets: nullishToOptional(z.array(PageBlockAssetComponent)),\n\n // Tables\n tableProperties: nullishToOptional(PageBlockTableProperties),\n columnId: nullishToOptional(z.string()),\n\n // Token spreadsheet\n theme: nullishToOptional(PageBlockTheme),\n blacklistedElementProperties: nullishToOptional(z.array(z.string())),\n\n // Arbitrary\n userMetadata: nullishToOptional(z.string()),\n});\n\ntype PageBlockV1Input = z.input<typeof PageBlockBaseV1> & {\n children: PageBlockV1Input[] | null | undefined;\n};\n\nexport const PageBlockV1: z.ZodType<PageBlockV1, z.ZodTypeDef, PageBlockV1Input> = PageBlockBaseV1.extend({\n children: z.lazy(\n () =>\n PageBlockV1.array()\n .nullish()\n .transform(t => t ?? []) as z.ZodType<PageBlockV1[], z.ZodTypeDef, PageBlockV1Input[]>\n ),\n});\n\nexport type PageBlockV1 = z.infer<typeof PageBlockBaseV1> & {\n children: PageBlockV1[];\n};\n\n//\n// Utility methods\n//\n\nexport function traversePageBlocksV1(blocks: PageBlockV1[], action: (block: PageBlockV1) => void) {\n for (const block of blocks) {\n action(block);\n traversePageBlocksV1(block.children, action);\n }\n}\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { ObjectMeta } from \"../../common\";\n\nexport type CreateDesignElement = DbCreateInputOmit<DesignElement>;\nexport type UpdateDesignElement = OmitStrict<\n DbUpdate<DesignElement>,\n \"brandPersistentId\" | \"childType\" | \"designSystemVersionId\" | \"shortPersistentId\" | \"type\"\n>;\n\n//\n// Token types\n//\n\nexport const DesignTokenType = z.enum([\n \"Color\",\n \"Border\",\n \"Gradient\",\n \"Shadow\",\n \"Dimension\",\n \"Duration\",\n \"Size\",\n \"Space\",\n \"Opacity\",\n \"FontSize\",\n \"LineHeight\",\n \"LetterSpacing\",\n \"ParagraphSpacing\",\n \"BorderWidth\",\n \"BorderRadius\",\n \"Duration\",\n \"ZIndex\",\n \"Image\",\n \"String\",\n \"ProductCopy\",\n \"FontFamily\",\n \"FontWeight\",\n \"TextDecoration\",\n \"TextCase\",\n \"Visibility\",\n \"Typography\",\n \"Blur\",\n \"Font\",\n]);\n\nexport const tokenElementTypes: ReadonlyArray<DesignTokenType> = [...DesignTokenType.options.filter(v => v !== \"Font\")];\n\nexport type DesignTokenType = z.infer<typeof DesignTokenType>;\n\n//\n// Non-token types\n//\n\nexport const DesignElementType = DesignTokenType.or(\n z.enum([\n \"Component\",\n \"Theme\",\n \"Documentation\",\n \"DocumentationPage\",\n \"DesignSystemComponent\",\n \"ElementGroup\",\n \"FigmaNodeStructure\",\n \"FigmaNodeReference\",\n \"PageBlock\",\n ])\n);\n\nexport type DesignElementType = z.infer<typeof DesignElementType>;\n\nexport function isTokenType(type: DesignElementType): type is DesignTokenType {\n return DesignTokenType.safeParse(type).success;\n}\n\n//\n// Element category\n//\n\nexport const DesignElementCategory = z.enum([\n \"Token\",\n \"Component\",\n \"DesignSystemComponent\",\n \"DocumentationPage\",\n \"Theme\",\n \"PageBlock\",\n]);\n\nexport type DesignElementCategory = z.infer<typeof DesignElementCategory>;\n\n// Elements\n\nexport const DesignSystemElementExportProps = z.object({\n isAsset: z\n .boolean()\n .nullish()\n .transform(v => v ?? false),\n\n codeName: z.string().nullish(),\n});\n\nexport type DesignSystemElementExportProps = z.infer<typeof DesignSystemElementExportProps>;\n\nexport const ShallowDesignElement = z.object({\n id: z.string(),\n persistentId: z.string(),\n designSystemVersionId: z.string(),\n type: DesignElementType,\n brandPersistentId: z.string().optional(),\n parentPersistentId: z.string().optional(),\n shortPersistentId: z.string().optional(),\n sortOrder: z.number(),\n});\n\nexport const DesignElement = ShallowDesignElement.extend({\n meta: ObjectMeta,\n childType: DesignElementType.optional(),\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n createdAt: z.date(),\n updatedAt: z.date(),\n exportProperties: DesignSystemElementExportProps.optional(),\n data: z.any(), // TODO this should be an object, not any.\n origin: z.any().optional(), // TODO object, not any.\n});\n\nexport type ShallowDesignElement = z.infer<typeof ShallowDesignElement>;\nexport type DesignElement = z.infer<typeof DesignElement>;\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\n\nexport const ElementPropertyType = z.enum([\"Text\", \"Number\", \"Boolean\", \"Select\", \"Generic\", \"Link\", \"URL\"]);\nexport const ElementPropertyTargetType = z.enum([\"Token\", \"Component\", \"DocumentationPage\"]);\nexport const ElementPropertyLinkType = z.enum([\"FigmaComponent\", \"DocumentationPage\"]);\n\nexport const ColorTokenInlineData = z.object({\n value: z.string(),\n});\n\nexport const ElementPropertyDefinitionOption = z.object({\n id: z.string(),\n name: z.string(),\n backgroundColor: ColorTokenInlineData.optional(),\n});\n\nexport const ElementPropertyDefinition = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n persistentId: z.string(),\n name: z.string(),\n codeName: z.string(),\n description: z.string(),\n type: ElementPropertyType,\n targetElementType: ElementPropertyTargetType,\n options: z.array(ElementPropertyDefinitionOption).nullish(),\n linkElementType: ElementPropertyLinkType.nullish(),\n});\n\nexport type ElementPropertyType = z.infer<typeof ElementPropertyType>;\nexport type ElementPropertyTargetType = z.infer<typeof ElementPropertyTargetType>;\nexport type ElementPropertyLinkType = z.infer<typeof ElementPropertyLinkType>;\nexport type ColorTokenInlineData = z.infer<typeof ColorTokenInlineData>;\nexport type ElementPropertyDefinitionOption = z.infer<typeof ElementPropertyDefinitionOption>;\nexport type ElementPropertyDefinition = z.infer<typeof ElementPropertyDefinition>;\n\nexport type CreateElementPropertyDefinition = DbCreateInputOmit<ElementPropertyDefinition>;\nexport type UpdateElementPropertyDefinition = DbUpdate<ElementPropertyDefinition>;\n\nexport type ElementPropertyDefinitionDiff = {\n toCreate: CreateElementPropertyDefinition[];\n toUpdate: UpdateElementPropertyDefinition[];\n};\n","import { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const ElementPropertyValue = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n targetElementPersistentId: z.string(),\n definitionPersistentId: z.string(),\n stringValue: z.string().nullish(),\n numberValue: z.number().nullish(),\n booleanValue: z.boolean().nullish(),\n referenceValue: z.string().nullish(),\n referenceValuePreview: z.string().nullish(),\n});\n\nexport type ElementPropertyValue = z.infer<typeof ElementPropertyValue>;\n\nexport type CreateElementPropertyValue = DbCreateInputOmit<ElementPropertyValue>;\nexport type UpdateElementPropertyValue = OmitStrict<\n DbUpdate<ElementPropertyValue>,\n \"designSystemVersionId\" | \"definitionPersistentId\" | \"targetElementPersistentId\"\n>;\n\nexport type ElementPropertyValueDiff = {\n toCreate: CreateElementPropertyValue[];\n toUpdate: UpdateElementPropertyValue[];\n};\n","import { z } from \"zod\";\n\nexport const Point2D = z.object({\n x: z.number(),\n y: z.number(),\n});\n\nexport type Point2D = z.infer<typeof Point2D>;\n","import { z } from \"zod\";\n\nconst nullSize = { height: -1, width: -1 };\n\nfunction isNullSize(size: Size): boolean {\n return size.height === nullSize.height && size.width === nullSize.width;\n}\n\nexport const Size = z.object({\n width: z\n .number()\n .nullish()\n .transform(v => v ?? nullSize.width),\n\n height: z\n .number()\n .nullish()\n .transform(v => v ?? nullSize.height),\n});\n\nexport const SizeOrUndefined = Size.optional().transform(v => {\n if (!v) return undefined;\n if (isNullSize(v)) return undefined;\n\n return v;\n});\n\nexport type Size = z.infer<typeof Size>;\n","export type DbCreateInputOmit<T> = Omit<T, \"id\" | \"createdAt\" | \"updatedAt\">;\n\nexport type DbUpdateInputOmit<T> = Omit<T, \"createdAt\" | \"updatedAt\" | \"persistentId\">;\n\nexport type DbUpdate<T extends { id: string }> = Partial<OptionalToNullable<DbUpdateInputOmit<Omit<T, \"id\">>>> &\n Pick<T, \"id\">;\n\ntype PickOptional<T> = {\n [P in keyof T as undefined extends T[P] ? P : never]: T[P];\n};\n\ntype PickNotOptional<T> = {\n [P in keyof T as undefined extends T[P] ? never : P]: T[P];\n};\n\nexport type OptionalToNullable<T> = {\n [K in keyof PickOptional<T>]-?: Exclude<T[K], undefined> | null;\n} & {\n [K in keyof PickNotOptional<T>]: T[K];\n};\n\nexport function zodCreateInputOmit() {\n return {\n id: true,\n createdAt: true,\n updatedAt: true,\n } as const;\n}\n\nexport function zodUpdateInputOmit() {\n return {\n id: true,\n createdAt: true,\n updatedAt: true,\n persistentId: true,\n } as const;\n}\n","import { ZodType, z } from \"zod\";\n\n/**\n * Allows both null and undefined as input values in addition to the actual value,\n * but coerces them both to undefined.\n */\nexport function nullishToOptional<T>(type: ZodType<T>) {\n return type.nullish().transform(t => t ?? undefined);\n}\n","import slugifyImplementation from \"@sindresorhus/slugify\";\n\nexport function slugify(str: string, options?: slugifyImplementation.Options): string {\n const slug = slugifyImplementation(str ?? \"\", options);\n return slug?.length > 0 ? slug : \"item\";\n}\n\n// Consists of lowercased letters, digits and hyphens.\n// Can not start or end with hyphen.\n// Warning: does not forbid consecutive hyphens\nexport const SLUG_REGEX = /^[a-z0-9][a-z0-9-]*[a-z0-9]$/;\n\nexport const RESERVED_SLUGS = [\n \"workspaces\",\n \"workspace\",\n \"api0\",\n \"api1\",\n \"api2\",\n \"custom\",\n \"x-sn-reserved\",\n // further elements copied from https://github.com/shouldbee/reserved-usernames/blob/master/reserved-usernames.json\n\n \"0\",\n \"about\",\n \"access\",\n \"account\",\n \"accounts\",\n \"activate\",\n \"activities\",\n \"activity\",\n \"ad\",\n \"add\",\n \"address\",\n \"adm\",\n \"admin\",\n \"administration\",\n \"administrator\",\n \"ads\",\n \"adult\",\n \"advertising\",\n \"affiliate\",\n \"affiliates\",\n \"ajax\",\n \"all\",\n \"alpha\",\n \"analysis\",\n \"analytics\",\n \"android\",\n \"anon\",\n \"anonymous\",\n \"api\",\n \"app\",\n \"apps\",\n \"archive\",\n \"archives\",\n \"article\",\n \"asct\",\n \"asset\",\n \"assets\",\n \"atom\",\n \"auth\",\n \"authentication\",\n \"avatar\",\n \"backup\",\n \"balancer-manager\",\n \"banner\",\n \"banners\",\n \"beta\",\n \"billing\",\n \"bin\",\n \"blog\",\n \"blogs\",\n \"board\",\n \"book\",\n \"bookmark\",\n \"bot\",\n \"bots\",\n \"bug\",\n \"business\",\n \"cache\",\n \"cadastro\",\n \"calendar\",\n \"call\",\n \"campaign\",\n \"cancel\",\n \"captcha\",\n \"career\",\n \"careers\",\n \"cart\",\n \"categories\",\n \"category\",\n \"cgi\",\n \"cgi-bin\",\n \"changelog\",\n \"chat\",\n \"check\",\n \"checking\",\n \"checkout\",\n \"client\",\n \"cliente\",\n \"clients\",\n \"code\",\n \"codereview\",\n \"comercial\",\n \"comment\",\n \"comments\",\n \"communities\",\n \"community\",\n \"company\",\n \"compare\",\n \"compras\",\n \"config\",\n \"configuration\",\n \"connect\",\n \"contact\",\n \"contact-us\",\n \"contact_us\",\n \"contactus\",\n \"contest\",\n \"contribute\",\n \"corp\",\n \"create\",\n \"css\",\n \"dashboard\",\n \"data\",\n \"db\",\n \"default\",\n \"delete\",\n \"demo\",\n \"design\",\n \"designer\",\n \"destroy\",\n \"dev\",\n \"devel\",\n \"developer\",\n \"developers\",\n \"diagram\",\n \"diary\",\n \"dict\",\n \"dictionary\",\n \"die\",\n \"dir\",\n \"direct_messages\",\n \"directory\",\n \"dist\",\n \"doc\",\n \"docs\",\n \"documentation\",\n \"domain\",\n \"download\",\n \"downloads\",\n \"ecommerce\",\n \"edit\",\n \"editor\",\n \"edu\",\n \"education\",\n \"email\",\n \"employment\",\n \"empty\",\n \"end\",\n \"enterprise\",\n \"entries\",\n \"entry\",\n \"error\",\n \"errors\",\n \"eval\",\n \"event\",\n \"exit\",\n \"explore\",\n \"facebook\",\n \"faq\",\n \"favorite\",\n \"favorites\",\n \"feature\",\n \"features\",\n \"feed\",\n \"feedback\",\n \"feeds\",\n \"file\",\n \"files\",\n \"first\",\n \"flash\",\n \"fleet\",\n \"fleets\",\n \"flog\",\n \"follow\",\n \"followers\",\n \"following\",\n \"forgot\",\n \"form\",\n \"forum\",\n \"forums\",\n \"founder\",\n \"free\",\n \"friend\",\n \"friends\",\n \"ftp\",\n \"gadget\",\n \"gadgets\",\n \"game\",\n \"games\",\n \"get\",\n \"ghost\",\n \"gift\",\n \"gifts\",\n \"gist\",\n \"github\",\n \"graph\",\n \"group\",\n \"groups\",\n \"guest\",\n \"guests\",\n \"help\",\n \"home\",\n \"homepage\",\n \"host\",\n \"hosting\",\n \"hostmaster\",\n \"hostname\",\n \"howto\",\n \"hpg\",\n \"html\",\n \"http\",\n \"httpd\",\n \"https\",\n \"i\",\n \"iamges\",\n \"icon\",\n \"icons\",\n \"id\",\n \"idea\",\n \"ideas\",\n \"image\",\n \"images\",\n \"imap\",\n \"img\",\n \"index\",\n \"indice\",\n \"info\",\n \"information\",\n \"inquiry\",\n \"instagram\",\n \"intranet\",\n \"invitations\",\n \"invite\",\n \"ipad\",\n \"iphone\",\n \"irc\",\n \"is\",\n \"issue\",\n \"issues\",\n \"it\",\n \"item\",\n \"items\",\n \"java\",\n \"javascript\",\n \"job\",\n \"jobs\",\n \"join\",\n \"js\",\n \"json\",\n \"jump\",\n \"knowledgebase\",\n \"language\",\n \"languages\",\n \"last\",\n \"ldap-status\",\n \"legal\",\n \"license\",\n \"link\",\n \"links\",\n \"linux\",\n \"list\",\n \"lists\",\n \"log\",\n \"log-in\",\n \"log-out\",\n \"log_in\",\n \"log_out\",\n \"login\",\n \"logout\",\n \"logs\",\n \"m\",\n \"mac\",\n \"mail\",\n \"mail1\",\n \"mail2\",\n \"mail3\",\n \"mail4\",\n \"mail5\",\n \"mailer\",\n \"mailing\",\n \"maintenance\",\n \"manager\",\n \"manual\",\n \"map\",\n \"maps\",\n \"marketing\",\n \"master\",\n \"me\",\n \"media\",\n \"member\",\n \"members\",\n \"message\",\n \"messages\",\n \"messenger\",\n \"microblog\",\n \"microblogs\",\n \"mine\",\n \"mis\",\n \"mob\",\n \"mobile\",\n \"movie\",\n \"movies\",\n \"mp3\",\n \"msg\",\n \"msn\",\n \"music\",\n \"musicas\",\n \"mx\",\n \"my\",\n \"mysql\",\n \"name\",\n \"named\",\n \"nan\",\n \"navi\",\n \"navigation\",\n \"net\",\n \"network\",\n \"new\",\n \"news\",\n \"newsletter\",\n \"nick\",\n \"nickname\",\n \"notes\",\n \"noticias\",\n \"notification\",\n \"notifications\",\n \"notify\",\n \"ns\",\n \"ns1\",\n \"ns10\",\n \"ns2\",\n \"ns3\",\n \"ns4\",\n \"ns5\",\n \"ns6\",\n \"ns7\",\n \"ns8\",\n \"ns9\",\n \"null\",\n \"oauth\",\n \"oauth_clients\",\n \"offer\",\n \"offers\",\n \"official\",\n \"old\",\n \"online\",\n \"openid\",\n \"operator\",\n \"order\",\n \"orders\",\n \"organization\",\n \"organizations\",\n \"overview\",\n \"owner\",\n \"owners\",\n \"page\",\n \"pager\",\n \"pages\",\n \"panel\",\n \"password\",\n \"payment\",\n \"perl\",\n \"phone\",\n \"photo\",\n \"photoalbum\",\n \"photos\",\n \"php\",\n \"phpmyadmin\",\n \"phppgadmin\",\n \"phpredisadmin\",\n \"pic\",\n \"pics\",\n \"ping\",\n \"plan\",\n \"plans\",\n \"plugin\",\n \"plugins\",\n \"policy\",\n \"pop\",\n \"pop3\",\n \"popular\",\n \"portal\",\n \"post\",\n \"postfix\",\n \"postmaster\",\n \"posts\",\n \"pr\",\n \"premium\",\n \"press\",\n \"price\",\n \"pricing\",\n \"privacy\",\n \"privacy-policy\",\n \"privacy_policy\",\n \"privacypolicy\",\n \"private\",\n \"product\",\n \"products\",\n \"profile\",\n \"project\",\n \"projects\",\n \"promo\",\n \"pub\",\n \"public\",\n \"purpose\",\n \"put\",\n \"python\",\n \"query\",\n \"random\",\n \"ranking\",\n \"read\",\n \"readme\",\n \"recent\",\n \"recruit\",\n \"recruitment\",\n \"register\",\n \"registration\",\n \"release\",\n \"remove\",\n \"replies\",\n \"report\",\n \"reports\",\n \"repositories\",\n \"repository\",\n \"req\",\n \"request\",\n \"requests\",\n \"reset\",\n \"roc\",\n \"root\",\n \"rss\",\n \"ruby\",\n \"rule\",\n \"sag\",\n \"sale\",\n \"sales\",\n \"sample\",\n \"samples\",\n \"save\",\n \"school\",\n \"script\",\n \"scripts\",\n \"search\",\n \"secure\",\n \"security\",\n \"self\",\n \"send\",\n \"server\",\n \"server-info\",\n \"server-status\",\n \"service\",\n \"services\",\n \"session\",\n \"sessions\",\n \"setting\",\n \"settings\",\n \"setup\",\n \"share\",\n \"shop\",\n \"show\",\n \"sign-in\",\n \"sign-up\",\n \"sign_in\",\n \"sign_up\",\n \"signin\",\n \"signout\",\n \"signup\",\n \"site\",\n \"sitemap\",\n \"sites\",\n \"smartphone\",\n \"smtp\",\n \"soporte\",\n \"source\",\n \"spec\",\n \"special\",\n \"sql\",\n \"src\",\n \"ssh\",\n \"ssl\",\n \"ssladmin\",\n \"ssladministrator\",\n \"sslwebmaster\",\n \"staff\",\n \"stage\",\n \"staging\",\n \"start\",\n \"stat\",\n \"state\",\n \"static\",\n \"stats\",\n \"status\",\n \"store\",\n \"stores\",\n \"stories\",\n \"style\",\n \"styleguide\",\n \"stylesheet\",\n \"stylesheets\",\n \"subdomain\",\n \"subscribe\",\n \"subscriptions\",\n \"suporte\",\n \"support\",\n \"svn\",\n \"swf\",\n \"sys\",\n \"sysadmin\",\n \"sysadministrator\",\n \"system\",\n \"tablet\",\n \"tablets\",\n \"tag\",\n \"talk\",\n \"task\",\n \"tasks\",\n \"team\",\n \"teams\",\n \"tech\",\n \"telnet\",\n \"term\",\n \"terms\",\n \"terms-of-service\",\n \"terms_of_service\",\n \"termsofservice\",\n \"test\",\n \"test1\",\n \"test2\",\n \"test3\",\n \"teste\",\n \"testing\",\n \"tests\",\n \"theme\",\n \"themes\",\n \"thread\",\n \"threads\",\n \"tmp\",\n \"todo\",\n \"tool\",\n \"tools\",\n \"top\",\n \"topic\",\n \"topics\",\n \"tos\",\n \"tour\",\n \"translations\",\n \"trends\",\n \"tutorial\",\n \"tux\",\n \"tv\",\n \"twitter\",\n \"undef\",\n \"unfollow\",\n \"unsubscribe\",\n \"update\",\n \"upload\",\n \"uploads\",\n \"url\",\n \"usage\",\n \"user\",\n \"username\",\n \"users\",\n \"usuario\",\n \"vendas\",\n \"ver\",\n \"version\",\n \"video\",\n \"videos\",\n \"visitor\",\n \"watch\",\n \"weather\",\n \"web\",\n \"webhook\",\n \"webhooks\",\n \"webmail\",\n \"webmaster\",\n \"website\",\n \"websites\",\n \"welcome\",\n \"widget\",\n \"widgets\",\n \"wiki\",\n \"win\",\n \"windows\",\n \"word\",\n \"work\",\n \"works\",\n \"workshop\",\n \"ww\",\n \"wws\",\n \"www\",\n \"www1\",\n \"www2\",\n \"www3\",\n \"www4\",\n \"www5\",\n \"www6\",\n \"www7\",\n \"wwws\",\n \"wwww\",\n \"xfn\",\n \"xml\",\n \"xmpp\",\n \"xpg\",\n \"xxx\",\n \"yaml\",\n \"year\",\n \"yml\",\n \"you\",\n \"yourdomain\",\n \"yourname\",\n \"yoursite\",\n \"yourusername\",\n \"latest\",\n \"live\",\n \"preview\",\n \"learn\",\n \"supernova\",\n \"super-nova\",\n];\n\nconst RESERVED_SLUGS_SET = new Set(RESERVED_SLUGS);\n\nexport const RESERVED_SLUG_PREFIX = \"x-sn-reserved-\";\n\nconst isSlugReservedInternal = (slug: string) => slug?.startsWith(RESERVED_SLUG_PREFIX);\nexport function isSlugReserved(slug: string) {\n return RESERVED_SLUGS_SET.has(slug) || isSlugReservedInternal(slug);\n}\n","import { z } from \"zod\";\nimport { ColorValue } from \"./color\";\n\nexport const PageBlockAppearanceV2 = z.object({\n itemBackgroundColor: ColorValue,\n});\n\nexport const PageBlockItemPropertyValue = z.any();\n\nexport const PageBlockLinkTypeV2 = z.enum([\"Page\", \"PageHeading\", \"Group\", \"Url\"]);\n\nexport const PageBlockLinkV2 = z.object({\n type: PageBlockLinkTypeV2,\n pageId: z.string().optional(),\n pageHeadingId: z.string().optional(),\n groupId: z.string().optional(),\n url: z.string().optional(),\n openInNewTab: z.boolean().optional(),\n});\n\nexport const PageBlockItemV2 = z\n .object({\n linksTo: PageBlockLinkV2.optional(),\n })\n .and(z.record(PageBlockItemPropertyValue));\n\nexport const PageBlockDataV2 = z.object({\n packageId: z.string(),\n variantId: z.string().optional(),\n indentLevel: z.number(),\n appearance: PageBlockAppearanceV2.optional(),\n items: z.array(PageBlockItemV2),\n});\n\nexport type PageBlockAppearanceV2 = z.infer<typeof PageBlockAppearanceV2>;\nexport type PageBlockItemPropertyValue = z.infer<typeof PageBlockItemPropertyValue>;\nexport type PageBlockLinkTypeV2 = z.infer<typeof PageBlockLinkTypeV2>;\nexport type PageBlockLinkV2 = z.infer<typeof PageBlockLinkV2>;\nexport type PageBlockItemV2 = z.infer<typeof PageBlockItemV2>;\nexport type PageBlockDataV2 = z.infer<typeof PageBlockDataV2>;\n","import { z } from \"zod\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\nimport { PageBlockV1 } from \"./documentation-block-v1\";\nimport { nullishToOptional } from \"../../../helpers\";\n\nexport const DocumentationPageDataV1 = z.object({\n blocks: z.array(PageBlockV1),\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const DocumentationPageElementDataV1 = z.object({\n value: DocumentationPageDataV1,\n});\n","import { z } from \"zod\";\n\nexport const DocumentationItemConfiguration = z.object({\n showSidebar: z.boolean(),\n header: z.any(),\n});\n\nexport type DocumentationItemConfiguration = z.infer<typeof DocumentationItemConfiguration>;\n","import { z } from \"zod\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\nimport { nullishToOptional } from \"../../../helpers\";\n\nexport const DocumentationPageDataV2 = z.object({\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const DocumentationPageElementDataV2 = z.object({\n value: DocumentationPageDataV2,\n});\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const DurationUnit = z.enum([\"Ms\"]);\n\nexport const DurationValue = z.object({\n unit: DurationUnit,\n measure: z.number(),\n});\n\nexport const DurationTokenData = tokenAliasOrValue(DurationValue);\n\nexport type DurationUnit = z.infer<typeof DurationUnit>;\nexport type DurationValue = z.infer<typeof DurationValue>;\nexport type DurationTokenData = z.infer<typeof DurationTokenData>;\n","import { ZodTypeDef, z } from \"zod\";\nimport { Size, SizeOrUndefined } from \"../primitives/size\";\n\nexport const FigmaFileStructureNodeType = z.enum([\"DOCUMENT\", \"CANVAS\", \"FRAME\", \"COMPONENT\", \"COMPONENT_SET\"]);\n\nexport const FigmaFileStructureNodeBase = z.object({\n id: z.string(),\n name: z.string(),\n type: FigmaFileStructureNodeType,\n size: SizeOrUndefined,\n parentComponentSetId: z.string().optional(),\n});\n\nexport const FigmaFileStructureNode: z.ZodType<FigmaFileStructureNode, ZodTypeDef, FigmaFileStructureNodeBaseInput> =\n FigmaFileStructureNodeBase.extend({\n children: z.lazy(() => FigmaFileStructureNode.array()),\n });\n\ntype FigmaFileStructureNodeBaseInput = z.input<typeof FigmaFileStructureNodeBase> & {\n children: FigmaFileStructureNodeBaseInput[];\n};\n\nexport const FigmaFileStructureStatistics = z.object({\n frames: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n components: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n componentSets: z\n .number()\n .nullable()\n .optional()\n .transform(v => v ?? 0),\n});\n\nexport const FigmaFileStructureElementData = z.object({\n value: z.object({\n structure: FigmaFileStructureNode,\n assetsInFile: FigmaFileStructureStatistics,\n }),\n});\n\nexport type FigmaFileStructureNodeBase = z.infer<typeof FigmaFileStructureNodeBase>;\nexport type FigmaFileStructureNodeType = z.infer<typeof FigmaFileStructureStatistics>;\nexport type FigmaFileStructureNode = z.infer<typeof FigmaFileStructureNodeBase> & {\n children: FigmaFileStructureNode[];\n};\nexport type FigmaFileStructureStatistics = z.infer<typeof FigmaFileStructureStatistics>;\nexport type FigmaFileStructureElementData = z.infer<typeof FigmaFileStructureElementData>;\n\nexport function figmaFileStructureToMap(root: FigmaFileStructureNode): Map<string, FigmaFileStructureNode> {\n const map = new Map<string, FigmaFileStructureNode>();\n recursiveFigmaFileStructureToMap(root, map);\n return map;\n}\n\nfunction recursiveFigmaFileStructureToMap(node: FigmaFileStructureNode, map: Map<string, FigmaFileStructureNode>) {\n map.set(node.id, node);\n for (const child of node.children) recursiveFigmaFileStructureToMap(child, map);\n}\n","import { z } from \"zod\";\n\nexport const FigmaNodeReferenceData = z.object({\n structureElementId: z.string(),\n nodeId: z.string(),\n fileId: z.string().optional(),\n valid: z.boolean(),\n assetId: z.string().optional(),\n assetScale: z.number().optional(),\n assetWidth: z.number().optional(),\n assetHeight: z.number().optional(),\n assetUrl: z.string().optional(),\n});\n\nexport const FigmaNodeReferenceElementData = z.object({\n value: FigmaNodeReferenceData,\n});\n\nexport type FigmaNodeReferenceData = z.infer<typeof FigmaNodeReferenceData>;\nexport type FigmaNodeReferenceElementData = z.infer<typeof FigmaNodeReferenceElementData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontFamilyValue = z.string();\nexport const FontFamilyTokenData = tokenAliasOrValue(FontFamilyValue);\n\nexport type FontFamilyValue = z.infer<typeof FontFamilyValue>;\nexport type FontFamilyTokenData = z.infer<typeof FontFamilyTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontSizeUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const FontSizeValue = z.object({\n unit: FontSizeUnit,\n measure: z.number(),\n});\n\nexport const FontSizeTokenData = tokenAliasOrValue(FontSizeValue);\n\nexport type FontSizeUnit = z.infer<typeof FontSizeUnit>;\nexport type FontSizeValue = z.infer<typeof FontSizeValue>;\nexport type FontSizeTokenData = z.infer<typeof FontSizeTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const FontWeightValue = z.string();\nexport const FontWeightTokenData = tokenAliasOrValue(FontWeightValue);\n\nexport type FontWeightValue = z.infer<typeof FontWeightValue>;\nexport type FontWeightTokenData = z.infer<typeof FontWeightTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { tokenAliasOrValue } from \"./base\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { Point2D } from \"../primitives\";\n\nexport const GradientType = z.enum([\"Linear\", \"Radial\", \"Angular\"]);\n\nexport const GradientStop = z.object({\n position: z.number(),\n color: ColorTokenData,\n});\n\nexport const GradientLayerValue = z.object({\n from: Point2D,\n to: Point2D,\n type: GradientType,\n aspectRatio: nullishToOptional(z.number()), // z.number(),\n stops: z.array(GradientStop).min(2),\n});\n\nexport const GradientLayerData = tokenAliasOrValue(GradientLayerValue);\n\nexport const GradientTokenValue = z.array(GradientLayerData);\nexport const GradientTokenData = tokenAliasOrValue(GradientTokenValue);\n\nexport type GradientType = z.infer<typeof GradientType>;\nexport type GradientStop = z.infer<typeof GradientStop>;\nexport type GradientLayerValue = z.infer<typeof GradientLayerValue>;\nexport type GradientLayerData = z.infer<typeof GradientLayerData>;\nexport type GradientTokenValue = z.infer<typeof GradientTokenValue>;\nexport type GradientTokenData = z.infer<typeof GradientTokenData>;\n","import { z } from \"zod\";\nimport { nullishToOptional } from \"../../../helpers\";\nimport { DocumentationItemConfiguration } from \"./documentation\";\n\nexport const DocumentationGroupBehavior = z.enum([\"Group\", \"Tabs\"]);\n\nexport const ElementGroupData = z.object({\n behavior: nullishToOptional(DocumentationGroupBehavior.optional()),\n configuration: nullishToOptional(DocumentationItemConfiguration),\n});\n\nexport const ElementGroupElementData = z.object({\n value: ElementGroupData,\n});\n\nexport type DocumentationGroupBehavior = z.infer<typeof DocumentationGroupBehavior>;\nexport type ElementGroupData = z.infer<typeof ElementGroupData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const LetterSpacingUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const LetterSpacingValue = z.object({\n unit: LetterSpacingUnit,\n measure: z.number(),\n});\n\nexport const LetterSpacingTokenData = tokenAliasOrValue(LetterSpacingValue);\n\nexport type LetterSpacingUnit = z.infer<typeof LetterSpacingUnit>;\nexport type LetterSpacingValue = z.infer<typeof LetterSpacingValue>;\nexport type LetterSpacingTokenData = z.infer<typeof LetterSpacingTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const LineHeightUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\", \"Raw\"]);\n\nexport const LineHeightValue = z.object({\n unit: LineHeightUnit,\n measure: z.number(),\n});\n\nexport const LineHeightTokenData = tokenAliasOrValue(LineHeightValue);\n\nexport type LineHeightUnit = z.infer<typeof LineHeightUnit>;\nexport type LineHeightValue = z.infer<typeof LineHeightValue>;\nexport type LineHeightTokenData = z.infer<typeof LineHeightTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ParagraphIndentUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const ParagraphIndentValue = z.object({\n unit: ParagraphIndentUnit,\n measure: z.number(),\n});\n\nexport const ParagraphIndentTokenData = tokenAliasOrValue(ParagraphIndentValue);\n\nexport type ParagraphIndentUnit = z.infer<typeof ParagraphIndentUnit>;\nexport type ParagraphIndentValue = z.infer<typeof ParagraphIndentValue>;\nexport type ParagraphIndentTokenData = z.infer<typeof ParagraphIndentTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ParagraphSpacingUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const ParagraphSpacingValue = z.object({\n unit: ParagraphSpacingUnit,\n measure: z.number(),\n});\n\nexport const ParagraphSpacingTokenData = tokenAliasOrValue(ParagraphSpacingValue);\n\nexport type ParagraphSpacingUnit = z.infer<typeof ParagraphSpacingUnit>;\nexport type ParagraphSpacingValue = z.infer<typeof ParagraphSpacingValue>;\nexport type ParagraphSpacingTokenData = z.infer<typeof ParagraphSpacingTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ProductCopyValue = z.string();\nexport const ProductCopyTokenData = tokenAliasOrValue(ProductCopyValue);\n\nexport type ProductCopyValue = z.infer<typeof ProductCopyValue>;\nexport type ProductCopyTokenData = z.infer<typeof ProductCopyTokenData>;\n","import { z } from \"zod\";\nimport { ColorTokenData } from \"./color\";\nimport { OpacityTokenData } from \"./opacity\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ShadowType = z.enum([\"Drop\", \"Inner\"]);\n\nexport const ShadowLayerValue = z.object({\n color: ColorTokenData,\n x: z.number(),\n y: z.number(),\n radius: z.number(),\n spread: z.number(),\n opacity: OpacityTokenData,\n type: ShadowType,\n});\n\nconst ShadowTokenDataBase = tokenAliasOrValue(ShadowLayerValue);\nexport const ShadowTokenData = tokenAliasOrValue(z.array(ShadowTokenDataBase));\n\nexport type ShadowType = z.infer<typeof ShadowType>;\nexport type ShadowLayerValue = z.infer<typeof ShadowLayerValue>;\nexport type ShadowTokenData = z.infer<typeof ShadowTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const SizeUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const SizeValue = z.object({\n unit: SizeUnit,\n measure: z.number(),\n});\n\nexport const SizeTokenData = tokenAliasOrValue(SizeValue);\n\nexport type SizeUnit = z.infer<typeof SizeUnit>;\nexport type SizeValue = z.infer<typeof SizeValue>;\nexport type SizeTokenData = z.infer<typeof SizeTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const SpaceUnit = z.enum([\"Pixels\", \"Rem\", \"Percent\"]);\n\nexport const SpaceValue = z.object({\n unit: SpaceUnit,\n measure: z.number(),\n});\n\nexport const SpaceTokenData = tokenAliasOrValue(SpaceValue);\n\nexport type SpaceUnit = z.infer<typeof SpaceUnit>;\nexport type SpaceValue = z.infer<typeof SpaceValue>;\nexport type SpaceTokenData = z.infer<typeof SpaceTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const StringValue = z.string();\nexport const StringTokenData = tokenAliasOrValue(StringValue);\n\nexport type StringValue = z.infer<typeof StringValue>;\nexport type StringTokenData = z.infer<typeof StringTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TextCase = z.enum([\"Original\", \"Upper\", \"Lower\", \"Camel\", \"SmallCaps\"]);\nexport const TextCaseValue = TextCase;\nexport const TextCaseTokenData = tokenAliasOrValue(TextCaseValue);\n\nexport type TextCase = z.infer<typeof TextCase>;\nexport type TextCaseValue = z.infer<typeof TextCaseValue>;\nexport type TextCaseTokenData = z.infer<typeof TextCaseTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TextDecoration = z.enum([\"None\", \"Underline\", \"Strikethrough\"]);\nexport const TextDecorationValue = TextDecoration;\nexport const TextDecorationTokenData = tokenAliasOrValue(TextDecorationValue);\n\nexport type TextDecoration = z.infer<typeof TextDecoration>;\nexport type TextDecorationValue = z.infer<typeof TextDecorationValue>;\nexport type TextDecorationTokenData = z.infer<typeof TextDecorationTokenData>;\n","import { z } from \"zod\";\nimport { FontSizeTokenData } from \"./font-size\";\nimport { FontFamilyTokenData } from \"./font-family\";\nimport { FontWeightTokenData } from \"./font-weight\";\nimport { TextDecorationTokenData } from \"./text-decoration\";\nimport { TextCaseTokenData } from \"./text-case\";\nimport { LetterSpacingTokenData } from \"./letter-spacing\";\nimport { LineHeightTokenData } from \"./line-height\";\nimport { ParagraphIndentTokenData } from \"./paragraph-indent\";\nimport { ParagraphSpacingTokenData } from \"./paragraph-spacing\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const TypographyValue = z.object({\n fontSize: FontSizeTokenData,\n fontFamily: FontFamilyTokenData,\n fontWeight: FontWeightTokenData,\n textDecoration: TextDecorationTokenData,\n textCase: TextCaseTokenData,\n letterSpacing: LetterSpacingTokenData.optional(),\n lineHeight: LineHeightTokenData.optional(),\n paragraphIndent: ParagraphIndentTokenData.optional(),\n paragraphSpacing: ParagraphSpacingTokenData.optional(),\n});\n\nexport const TypographyTokenData = tokenAliasOrValue(TypographyValue);\n\nexport type TypographyValue = z.infer<typeof TypographyValue>;\nexport type TypographyTokenData = z.infer<typeof TypographyTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const Visibility = z.enum([\"Hidden\", \"Visible\"]);\nexport const VisibilityValue = Visibility;\nexport const VisibilityTokenData = tokenAliasOrValue(VisibilityValue);\n\nexport type Visibility = z.infer<typeof Visibility>;\nexport type VisibilityValue = z.infer<typeof VisibilityValue>;\nexport type VisibilityTokenData = z.infer<typeof VisibilityTokenData>;\n","import { z } from \"zod\";\nimport { tokenAliasOrValue } from \"./base\";\n\nexport const ZIndexUnit = z.enum([\"Raw\"]);\n\nexport const ZIndexValue = z.object({\n unit: ZIndexUnit,\n measure: z.number(),\n});\n\nexport const ZIndexTokenData = tokenAliasOrValue(ZIndexValue);\n\nexport type ZIndexUnit = z.infer<typeof ZIndexUnit>;\nexport type ZIndexValue = z.infer<typeof ZIndexValue>;\nexport type ZIndexTokenData = z.infer<typeof ZIndexTokenData>;\n","import { z } from \"zod\";\nimport { ObjectMeta } from \"../../common\";\n\nexport const DesignElementOrigin = z.object({\n id: z.string(),\n sourceId: z.string(),\n name: z.string(),\n});\n\nexport const DesignElementBase = z.object({\n id: z.string(),\n persistentId: z.string(),\n meta: ObjectMeta,\n designSystemVersionId: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport const DesignElementImportedBase = DesignElementBase.extend({\n origin: DesignElementOrigin,\n});\n\nexport const DesignElementGroupablePart = z.object({\n parentPersistentId: z.string().optional(),\n sortOrder: z.number(),\n});\n\nexport const DesignElementGroupableBase = DesignElementBase.extend(DesignElementGroupablePart.shape);\n\nexport const DesignElementGroupableRequiredPart = DesignElementGroupablePart.extend({\n parentPersistentId: z.string(),\n});\n\nexport const DesignElementBrandedPart = z.object({\n brandPersistentId: z.string(),\n});\n\nexport const DesignElementSlugPart = z.object({\n slug: z.string().optional(),\n userSlug: z.string().optional(),\n});\n\nexport type DesignElementOrigin = z.infer<typeof DesignElementOrigin>;\nexport type DesignElementBase = z.infer<typeof DesignElementBase>;\nexport type DesignElementGroupablePart = z.infer<typeof DesignElementGroupablePart>;\nexport type DesignElementGroupableBase = z.infer<typeof DesignElementGroupableBase>;\nexport type DesignElementGroupableRequiredPart = z.infer<typeof DesignElementGroupableRequiredPart>;\nexport type DesignElementBrandedPart = z.infer<typeof DesignElementBrandedPart>;\nexport type DesignElementSlugPart = z.infer<typeof DesignElementSlugPart>;\n","import { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { z } from \"zod\";\nimport {\n DesignElementBase,\n DesignElementBrandedPart,\n DesignElementGroupableRequiredPart,\n DesignElementOrigin,\n} from \"./base\";\n\nexport const ComponentOriginPart = z.object({\n nodeId: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n});\n\nconst ComponentAsset = z.object({\n assetId: z.string(),\n assetPath: z.string(),\n});\n\nexport const ComponentOrigin = DesignElementOrigin.extend(ComponentOriginPart.shape);\n\nexport const Component = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementBrandedPart.shape)\n .extend({\n origin: ComponentOrigin.optional(),\n thumbnail: ComponentAsset,\n svg: ComponentAsset.optional(),\n isAsset: z.boolean(),\n });\n\nexport type ComponentAsset = z.infer<typeof ComponentAsset>;\nexport type Component = z.infer<typeof Component>;\nexport type ComponentOrigin = z.infer<typeof ComponentOrigin>;\nexport type ImportedComponent = OmitStrict<Component, \"origin\"> & { origin: ComponentOrigin };\n\nexport function isImportedComponent(component: Component): component is ImportedComponent {\n return !!component.origin;\n}\n\nexport type CreateComponent = DbCreateInputOmit<Component>;\nexport type UpdateComponent = OmitStrict<DbUpdate<Component>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type ComponentDiff = {\n toCreate: CreateComponent[];\n toUpdate: UpdateComponent[];\n toDelete: Component[\"id\"][];\n};\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart, DesignElementSlugPart } from \"./base\";\nimport { DocumentationPageDataV1 } from \"./data\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const DocumentationPageV1 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend({\n shortPersistentId: z.string(),\n data: DocumentationPageDataV1,\n });\n\nexport type DocumentationPageV1 = z.infer<typeof DocumentationPageV1>;\n\nexport type CreateDocumentationPageV1 = DbCreateInputOmit<DocumentationPageV1>;\nexport type UpdateDocumentationPageV1 = OmitStrict<DbUpdate<DocumentationPageV1>, \"designSystemVersionId\">;\n\nexport const DocumentationPageDTOV1 = DocumentationPageV1.omit({\n data: true,\n meta: true,\n parentPersistentId: true,\n sortOrder: true,\n})\n .extend(DocumentationPageV1.shape.data.shape)\n .extend({\n title: z.string(),\n path: z.string(),\n });\n\nexport type DocumentationPageDTOV1 = z.infer<typeof DocumentationPageDTOV1>;\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart, DesignElementSlugPart } from \"./base\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\nimport { DocumentationPageDataV2 } from \"./data/documentation-page-v2\";\n\nexport const DocumentationPageV2 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend({\n shortPersistentId: z.string(),\n data: DocumentationPageDataV2,\n });\n\nexport type DocumentationPageV2 = z.infer<typeof DocumentationPageV2>;\n\nexport type CreateDocumentationPageV2 = DbCreateInputOmit<DocumentationPageV2>;\nexport type UpdateDocumentationPageV2 = OmitStrict<DbUpdate<DocumentationPageV2>, \"designSystemVersionId\">;\n","import { z } from \"zod\";\nimport { DesignElementBase } from \"./base\";\nimport { FigmaFileStructureNode, FigmaFileStructureStatistics } from \"./data/figma-file-structure\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const FigmaFileStructureOrigin = z.object({\n sourceId: z.string(),\n fileId: z.string().optional(),\n});\n\nexport const FigmaFileStructureData = z.object({\n rootNode: FigmaFileStructureNode,\n assetsInFile: FigmaFileStructureStatistics,\n});\n\nexport const FigmaFileStructure = DesignElementBase.extend({\n origin: FigmaFileStructureOrigin,\n data: FigmaFileStructureData,\n});\n\nexport type FigmaFileStructureOrigin = z.infer<typeof FigmaFileStructureOrigin>;\nexport type FigmaFileStructureData = z.infer<typeof FigmaFileStructureData>;\nexport type FigmaFileStructure = z.infer<typeof FigmaFileStructure>;\n\nexport type CreateFigmaFileStructure = DbCreateInputOmit<FigmaFileStructure>;\nexport type UpdateFigmaFileStructure = OmitStrict<DbUpdate<FigmaFileStructure>, \"designSystemVersionId\">;\n\nexport type FigmaFileStructureDiff = {\n toCreate: CreateFigmaFileStructure[];\n toUpdate: UpdateFigmaFileStructure[];\n};\n\nexport function traverseStructure(node: FigmaFileStructureNode, action: (node: FigmaFileStructureNode) => void) {\n action(node);\n\n for (const child of node.children) {\n traverseStructure(child, action);\n }\n}\n","import { z } from \"zod\";\nimport { DesignElementBase } from \"./base\";\nimport { FigmaNodeReferenceData } from \"./data/figma-node-reference\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\nexport const FigmaNodeReference = DesignElementBase.extend({\n data: FigmaNodeReferenceData,\n});\n\nexport type FigmaNodeReference = z.infer<typeof FigmaNodeReference>;\n\nexport type CreateFigmaNodeReference = DbCreateInputOmit<FigmaNodeReference>;\nexport type UpdateFigmaNodeReference = OmitStrict<DbUpdate<FigmaNodeReference>, \"designSystemVersionId\">;\n\nexport type FigmaNodeReferenceDiff = {\n toUpdate: UpdateFigmaNodeReference[];\n};\n","import { DesignElementType } from \"./raw-element\";\nimport { DesignElementBase, DesignElementBrandedPart, DesignElementGroupablePart, DesignElementSlugPart } from \"./base\";\nimport { z } from \"zod\";\nimport { DbCreateInputOmit, DbUpdate } from \"../../helpers\";\nimport { OmitStrict } from \"../../helpers\";\nimport { DocumentationGroupBehavior, ElementGroupData } from \"./data\";\nimport { DocumentationItemConfiguration } from \"./data\";\nexport const ElementGroup = DesignElementBase.extend(DesignElementGroupablePart.shape)\n .extend(DesignElementSlugPart.shape)\n .extend(DesignElementBrandedPart.partial().shape)\n .extend({\n shortPersistentId: z.string().optional(),\n childType: DesignElementType,\n data: ElementGroupData,\n });\n\nexport const BrandedElementGroup = ElementGroup.extend(DesignElementBrandedPart.shape);\n\nexport type ElementGroup = z.infer<typeof ElementGroup>;\nexport type BrandedElementGroup = z.infer<typeof BrandedElementGroup>;\n\nexport type CreateElementGroup = OmitStrict<DbCreateInputOmit<ElementGroup>, \"parentPersistentId\"> & {\n parentPersistentId: string;\n};\n\nexport type UpdateElementGroup = DbUpdate<\n OmitStrict<ElementGroup, \"brandPersistentId\" | \"childType\" | \"designSystemVersionId\" | \"parentPersistentId\"> & {\n parentPersistentId: string;\n }\n>;\n\nexport type ElementGroupsDiff = {\n toCreate: CreateElementGroup[];\n toUpdate: UpdateElementGroup[];\n toDelete: ElementGroup[\"id\"][];\n};\n\n//\n// DTO\n//\n\nexport const DocumentationGroupDTO = ElementGroup.omit({\n sortOrder: true,\n parentPersistentId: true,\n brandPersistentId: true,\n meta: true,\n childType: true,\n data: true,\n shortPersistentId: true,\n}).extend({\n title: z.string(),\n isRoot: z.boolean(),\n childrenIds: z.array(z.string()),\n groupBehavior: DocumentationGroupBehavior,\n configuration: DocumentationItemConfiguration,\n shortPersistentId: z.string(),\n});\n\nexport type DocumentationGroupDTO = z.infer<typeof DocumentationGroupDTO>;\n","import { z } from \"zod\";\nimport { DesignElementBase, DesignElementGroupableRequiredPart } from \"./base\";\nimport { PageBlockDataV2 } from \"./data\";\n\n//\n// Element\n//\n\nexport const PageBlockV2 = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape).extend({\n data: PageBlockDataV2,\n});\n\nexport type PageBlockV2 = z.infer<typeof PageBlockV2>;\n\n//\n// Editor Model\n//\n\nexport const PageBlockEditorModelV2 = z.object({\n id: z.string(),\n data: PageBlockDataV2,\n});\n\nexport type PageBlockEditorModelV2 = z.infer<typeof PageBlockEditorModelV2>;\n","import { z } from \"zod\";\nimport { DesignTokenOrigin, DesignTokenOriginPart, DesignTokenTypedData } from \"./tokens\";\nimport { DesignTokenType } from \"./raw-element\";\nimport { DesignElementBase, DesignElementBrandedPart } from \"./base\";\nimport { DbCreateInputOmit, DbUpdate, OmitStrict } from \"../../helpers\";\n\n//\n// Overrides\n//\n\nexport const ThemeOverrideOriginPart = DesignTokenOriginPart;\nexport const ThemeOverrideOrigin = DesignTokenOrigin;\n\nexport const ThemeOverride = DesignTokenTypedData.and(\n z.object({\n tokenPersistentId: z.string(),\n origin: ThemeOverrideOrigin.optional()\n .nullable()\n .transform(v => v ?? undefined),\n })\n);\n\nexport type ThemeOverride = z.infer<typeof ThemeOverride>;\nexport type ThemeOverrideOfType<T extends DesignTokenType> = Extract<ThemeOverride, { type: T }>;\n\n//\n// Theme data\n//\n\nexport const ThemeElementData = z.object({\n value: z.object({\n overrides: z.array(ThemeOverride),\n }),\n});\n\nexport type ThemeElementData = z.infer<typeof ThemeElementData>;\n\n//\n// Theme\n//\n\nexport const ThemeOriginPart = z.object({});\n\nexport const ThemeOriginObject = z.object({\n id: z.string(),\n name: z.string(),\n});\n\nexport const ThemeOriginSource = z.object({\n sourceId: z.string(),\n sourceObjects: z.array(ThemeOriginObject),\n});\n\nexport const ThemeOrigin = z.object({\n sources: z.array(ThemeOriginSource),\n});\n\nexport const Theme = DesignElementBase.extend(DesignElementBrandedPart.shape).extend({\n origin: ThemeOrigin.optional(),\n overrides: z.array(ThemeOverride),\n});\n\nexport type Theme = z.infer<typeof Theme>;\nexport type ThemeOrigin = z.infer<typeof ThemeOrigin>;\nexport type ThemeOriginSource = z.infer<typeof ThemeOriginSource>;\nexport type ThemeOriginObject = z.infer<typeof ThemeOriginObject>;\n\nexport type CreateTheme = DbCreateInputOmit<Theme>;\nexport type UpdateTheme = OmitStrict<DbUpdate<Theme>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type ThemeDiff = {\n toCreate: CreateTheme[];\n toUpdate: UpdateTheme[];\n};\n","import { z } from \"zod\";\nimport {\n DesignElementBase,\n DesignElementBrandedPart,\n DesignElementGroupableRequiredPart,\n DesignElementOrigin,\n} from \"./base\";\nimport { DbUpdate, OmitStrict, zodCreateInputOmit, zodUpdateInputOmit } from \"../../helpers\";\nimport { DesignTokenType } from \"./raw-element\";\nimport {\n TextCaseTokenData,\n FontWeightTokenData,\n LetterSpacingTokenData,\n LineHeightTokenData,\n ParagraphSpacingTokenData,\n StringTokenData,\n TextDecorationTokenData,\n BorderRadiusTokenData,\n BorderWidthTokenData,\n BorderTokenData,\n ProductCopyTokenData,\n FontFamilyTokenData,\n FontSizeTokenData,\n DimensionTokenData,\n TypographyTokenData,\n ShadowTokenData,\n OpacityTokenData,\n GradientTokenData,\n ColorTokenData,\n BlurTokenData,\n DurationTokenData,\n ZIndexTokenData,\n VisibilityTokenData,\n SpaceTokenData,\n SizeTokenData,\n} from \"./data\";\n\n//\n// Base\n//\n\nexport const DesignTokenOriginPart = z.object({\n referenceOriginId: z.string().optional(),\n referencePersistentId: z.string().optional(),\n});\n\nexport const DesignTokenOrigin = DesignElementOrigin.extend(DesignTokenOriginPart.shape);\n\nconst DesignTokenBase = DesignElementBase.extend(DesignElementGroupableRequiredPart.shape)\n .extend(DesignElementBrandedPart.shape)\n .extend({\n origin: DesignTokenOrigin.optional(),\n });\n\nconst CreateDesignTokenBase = DesignTokenBase.omit(zodCreateInputOmit());\nconst UpdateDesignTokenBase = DesignTokenBase.omit({\n ...zodUpdateInputOmit(),\n brandPersistentId: true,\n designSystemVersionId: true,\n});\n\n//\n// Per type\n//\n\nconst BlurTokenTypedData = z.object({\n type: z.literal(\"Blur\"),\n data: BlurTokenData,\n});\n\nconst ColorTokenTypedData = z.object({\n type: z.literal(\"Color\"),\n data: ColorTokenData,\n});\n\nconst GradientTokenTypedData = z.object({\n type: z.literal(\"Gradient\"),\n data: GradientTokenData,\n});\n\nconst OpacityTokenTypedData = z.object({\n type: z.literal(\"Opacity\"),\n data: OpacityTokenData,\n});\n\nconst ShadowTokenTypedData = z.object({\n type: z.literal(\"Shadow\"),\n data: ShadowTokenData,\n});\n\nconst TypographyTokenTypedData = z.object({\n type: z.literal(\"Typography\"),\n data: TypographyTokenData,\n});\n\nconst StringTokenTypedData = z.object({\n type: z.literal(\"String\"),\n data: StringTokenData,\n});\n\nconst DimensionTokenTypedData = z.object({\n type: z.literal(\"Dimension\"),\n data: DimensionTokenData,\n});\n\nconst FontSizeTokenTypedData = z.object({\n type: z.literal(\"FontSize\"),\n data: FontSizeTokenData,\n});\n\nconst FontFamilyTokenTypedData = z.object({\n type: z.literal(\"FontFamily\"),\n data: FontFamilyTokenData,\n});\n\nconst FontWeightTokenTypedData = z.object({\n type: z.literal(\"FontWeight\"),\n data: FontWeightTokenData,\n});\n\nconst LetterSpacingTokenTypedData = z.object({\n type: z.literal(\"LetterSpacing\"),\n data: LetterSpacingTokenData,\n});\n\nconst LineHeightTokenTypedData = z.object({\n type: z.literal(\"LineHeight\"),\n data: LineHeightTokenData,\n});\n\nconst ParagraphSpacingTokenTypedData = z.object({\n type: z.literal(\"ParagraphSpacing\"),\n data: ParagraphSpacingTokenData,\n});\n\nconst TextCaseTokenTypedData = z.object({\n type: z.literal(\"TextCase\"),\n data: TextCaseTokenData,\n});\n\nconst TextDecorationTokenTypedData = z.object({\n type: z.literal(\"TextDecoration\"),\n data: TextDecorationTokenData,\n});\n\nconst BorderRadiusTokenTypedData = z.object({\n type: z.literal(\"BorderRadius\"),\n data: BorderRadiusTokenData,\n});\n\nconst BorderWidthTokenTypedData = z.object({\n type: z.literal(\"BorderWidth\"),\n data: BorderWidthTokenData,\n});\n\nconst BorderTypedData = z.object({\n type: z.literal(\"Border\"),\n data: BorderTokenData,\n});\n\nconst ProductCopyTypedData = z.object({\n type: z.literal(\"ProductCopy\"),\n data: ProductCopyTokenData,\n});\n\nconst SizeTypedData = z.object({\n type: z.literal(\"Size\"),\n data: SizeTokenData,\n});\n\nconst SpaceTypedData = z.object({\n type: z.literal(\"Space\"),\n data: SpaceTokenData,\n});\n\nconst VisibilityTypedData = z.object({\n type: z.literal(\"Visibility\"),\n data: VisibilityTokenData,\n});\n\nconst ZIndexTypedData = z.object({\n type: z.literal(\"ZIndex\"),\n data: ZIndexTokenData,\n});\n\nconst DurationTypedData = z.object({\n type: z.literal(\"Duration\"),\n data: DurationTokenData,\n});\n\nconst FontTypedData = z.object({\n type: z.literal(\"Font\"),\n data: z.record(z.any()),\n});\n\n//\n// Global types\n//\n\nexport const DesignTokenTypedData = z.discriminatedUnion(\"type\", [\n BlurTokenTypedData,\n BorderRadiusTokenTypedData,\n BorderWidthTokenTypedData,\n BorderTypedData,\n ColorTokenTypedData,\n\n DimensionTokenTypedData,\n DurationTypedData,\n FontSizeTokenTypedData,\n FontFamilyTokenTypedData,\n FontWeightTokenTypedData,\n\n GradientTokenTypedData,\n LetterSpacingTokenTypedData,\n LineHeightTokenTypedData,\n OpacityTokenTypedData,\n ParagraphSpacingTokenTypedData,\n\n ProductCopyTypedData,\n ShadowTokenTypedData,\n SizeTypedData,\n SpaceTypedData,\n StringTokenTypedData,\n\n TextCaseTokenTypedData,\n TextDecorationTokenTypedData,\n TypographyTokenTypedData,\n VisibilityTypedData,\n ZIndexTypedData,\n FontTypedData,\n]);\n\nexport type DesignTokenOriginPart = z.infer<typeof DesignTokenOriginPart>;\nexport type DesignTokenOrigin = z.infer<typeof DesignTokenOrigin>;\n\nexport type DesignTokenBase = z.infer<typeof DesignTokenBase>;\n\nexport const DesignToken = DesignTokenTypedData.and(DesignTokenBase);\nexport const CreateDesignToken = DesignTokenTypedData.and(CreateDesignTokenBase);\n\nexport type DesignTokenTypedData = z.infer<typeof DesignTokenTypedData>;\nexport type DesignTokenTypedDataOfType<T extends DesignTokenType> = Extract<DesignTokenTypedData, { type: T }>;\n\nexport type DesignToken = z.infer<typeof DesignToken>;\nexport type ImportedDesignToken = OmitStrict<DesignToken, \"origin\"> & { origin: DesignTokenOrigin };\n\nexport type DesignTokenOfType<T extends DesignTokenType> = Extract<DesignToken, { type: T }>;\nexport type ImportedDesignTokenOfType<T extends DesignTokenType> = Extract<ImportedDesignToken, { type: T }>;\n\nexport type CreateDesignToken = z.infer<typeof CreateDesignToken>;\nexport type UpdateDesignToken = OmitStrict<DbUpdate<DesignToken>, \"brandPersistentId\" | \"designSystemVersionId\">;\n\nexport type DesignTokensDiff = {\n toCreate: CreateDesignToken[];\n toUpdate: UpdateDesignToken[];\n};\n\n//\n// Utilities\n//\n\nexport function extractTokenTypedData<T extends DesignTokenType, I extends DesignTokenTypedDataOfType<T>>(\n source: I\n): DesignTokenTypedDataOfType<T> {\n return {\n type: source.type,\n data: source.data,\n } as DesignTokenTypedDataOfType<T>;\n}\n\nexport function isImportedDesignToken<T extends DesignTokenType>(\n designToken: DesignTokenOfType<T>\n): designToken is ImportedDesignTokenOfType<T> {\n return !!designToken.origin;\n}\n\nexport function isDesignTokenOfType<T extends DesignTokenType>(\n designToken: DesignToken,\n type: T\n): designToken is DesignTokenOfType<T> {\n return designToken.type === type;\n}\n\nexport function designTokenTypeFilter<T extends DesignTokenType>(\n type: T\n): (designToken: DesignToken) => designToken is DesignTokenOfType<T> {\n return (designToken): designToken is DesignTokenOfType<T> => isDesignTokenOfType(designToken, type);\n}\n","import { z } from \"zod\";\n\nexport const FigmaFileDownloadScope = z.object({\n styles: z.boolean(),\n components: z.boolean(),\n currentVersion: z.literal(\"__latest__\").nullable(),\n publishedVersion: z.string().nullable(),\n downloadChunkSize: z.number().optional(),\n});\n\nexport const FigmaFileAccessData = z.object({\n accessToken: z.string(),\n});\n\nexport type FigmaFileDownloadScope = z.infer<typeof FigmaFileDownloadScope>;\nexport type FigmaFileAccessData = z.infer<typeof FigmaFileAccessData>;\n","import { z } from \"zod\";\nimport { DataSourceFigmaImportMetadata, DataSourceFigmaRemote } from \"../../data-sources\";\nimport { FigmaFileAccessData, FigmaFileDownloadScope } from \"./figma-files\";\n\n//\n// Importer payload\n//\n\nexport const ImportFunctionInput = z.object({\n importJobId: z.string(),\n importContextId: z.string(),\n designSystemId: z.string().optional(),\n});\n\nexport type ImportFunctionInput = z.infer<typeof ImportFunctionInput>;\n\n//\n// Base context\n//\n\nexport const ImportedFigmaSourceData = z.object({\n sourceId: z.string(),\n figmaRemote: DataSourceFigmaRemote,\n});\n\nexport const FigmaImportBaseContext = z.object({\n designSystemId: z.string(),\n\n /**\n * Data required for accessing Figma files. This should contain access data for all file ids\n * mentioned in the `importedSourceDataBySourceId`\n *\n * fileId: file data\n */\n fileAccessByFileId: z.record(FigmaFileAccessData),\n\n /**\n * Figma source data for which import was requested\n *\n * sourceId: source data\n */\n importedSourceDataBySourceId: z.record(ImportedFigmaSourceData),\n});\n\nexport type ImportedFigmaSourceData = z.infer<typeof ImportedFigmaSourceData>;\nexport type FigmaImportBaseContext = z.infer<typeof FigmaImportBaseContext>;\n\n//\n// Context with file download scope\n//\n\nexport const ChangedImportedFigmaSourceData = ImportedFigmaSourceData.extend({\n importMetadata: DataSourceFigmaImportMetadata,\n});\n\nexport const FigmaImportContextWithDownloadScopes = FigmaImportBaseContext.extend({\n /**\n * Describes what to download from each file, this should contain all file id mentioned in\n * importMetadataBySourceId.\n *\n * File id -> file download scope\n */\n fileDownloadScopesByFileId: z.record(FigmaFileDownloadScope),\n\n /**\n * Sources filtered down to the ones that have changed since last import and therefore need to be\n * imported again.\n *\n * Source id -> import metadata\n */\n changedImportedSourceDataBySourceId: z.record(ChangedImportedFigmaSourceData),\n});\n\nexport type ChangedImportedFigmaSourceData = z.infer<typeof ChangedImportedFigmaSourceData>;\nexport type FigmaImportContextWithDownloadScopes = z.infer<typeof FigmaImportContextWithDownloadScopes>;\n","import { z } from \"zod\";\nimport { AssetImportModelInput, ComponentImportModel, ComponentImportModelInput } from \"../component\";\nimport { ThemeImportModel, ThemeImportModelInput, ThemeUpdateImportModel, ThemeUpdateImportModelInput } from \"../theme\";\nimport { DesignTokenImportModel, DesignTokenImportModelInput } from \"../tokens\";\nimport { FigmaFileStructureImportModel, FigmaFileStructureImportModelInput } from \"../figma-frames\";\nimport { DataSourceImportModel } from \"../data-source\";\n\n//\n// Collections\n//\n\nexport const ImportModelInputCollection = z.object({\n source: DataSourceImportModel,\n tokens: z.array(DesignTokenImportModelInput).default([]),\n components: z.array(ComponentImportModelInput).default([]),\n assets: z.array(AssetImportModelInput).default([]),\n themeUpdates: z.array(ThemeUpdateImportModelInput).default([]),\n themes: z.array(ThemeImportModelInput).default([]),\n figmaFileStructure: FigmaFileStructureImportModelInput.optional(),\n});\n\nexport const ImportModelCollection = z.object({\n sources: z.array(DataSourceImportModel),\n tokens: z.array(DesignTokenImportModel).default([]),\n components: z.array(ComponentImportModel).default([]),\n themeUpdates: z.array(ThemeUpdateImportModel).default([]),\n themes: z.array(ThemeImportModel).default([]),\n figmaFileStructures: z.array(FigmaFileStructureImportModel),\n});\n\nexport type ImportModelCollection = z.infer<typeof ImportModelCollection>;\nexport type ImportModelInputCollection = z.infer<typeof ImportModelInputCollection>;\n\nexport function addImportModelCollections(\n lhs: ImportModelCollection,\n rhs: ImportModelCollection\n): ImportModelCollection {\n return {\n sources: [...lhs.sources, ...rhs.sources],\n tokens: [...lhs.tokens, ...rhs.tokens],\n components: [...lhs.components, ...rhs.components],\n themeUpdates: [...lhs.themeUpdates, ...rhs.themeUpdates],\n themes: [...lhs.themes, ...rhs.themes],\n figmaFileStructures: [...lhs.figmaFileStructures, ...rhs.figmaFileStructures],\n };\n}\n","import { z } from \"zod\";\nimport { AssetScope } from \"../assets\";\n\n//\n// Abstract\n//\n\nexport const ImageImportModelType = z.enum([\"Url\", \"FigmaRender\"]);\nexport type ImageImportModelType = z.infer<typeof ImageImportModelType>;\n\nconst ImageImportModelBase = z.object({\n scope: AssetScope,\n});\n\n//\n// Url\n//\n\nexport const UrlImageImportModel = ImageImportModelBase.extend({\n type: z.literal(ImageImportModelType.enum.Url),\n url: z.string(),\n originKey: z.string(),\n extension: z.enum([\"png\", \"svg\", \"jpg\"]),\n});\n\nexport type UrlImageImportModel = z.infer<typeof UrlImageImportModel>;\n\n//\n// Figma Render\n//\n\nexport const FigmaRenderFormat = z.enum([\"Svg\", \"Png\"]);\n\nconst FigmaRenderBase = ImageImportModelBase.extend({\n type: z.literal(ImageImportModelType.enum.FigmaRender),\n fileId: z.string(),\n fileVersionId: z.string().optional(),\n nodeId: z.string(),\n originKey: z.string(),\n});\n\nexport const FigmaPngRenderImportModel = FigmaRenderBase.extend({\n format: z.literal(FigmaRenderFormat.enum.Png),\n scale: z.number(),\n});\n\nexport const FigmaSvgRenderImportModel = FigmaRenderBase.extend({\n format: z.literal(FigmaRenderFormat.enum.Svg),\n});\n\nexport const FigmaRenderImportModel = z.discriminatedUnion(\"format\", [\n FigmaPngRenderImportModel,\n FigmaSvgRenderImportModel,\n]);\n\n//\n// Union\n//\n\n// Unfortunately discriminated union doesn't support inserting another discriminated union\nexport const ImageImportModel = z.union([UrlImageImportModel, FigmaRenderImportModel]);\n\n//\n// Types\n//\n\nexport type FigmaRenderFormat = z.infer<typeof FigmaRenderFormat>;\nexport type FigmaRenderBase = z.infer<typeof FigmaRenderBase>;\nexport type FigmaPngRenderImportModel = z.infer<typeof FigmaPngRenderImportModel>;\nexport type FigmaSvgRenderImportModel = z.infer<typeof FigmaSvgRenderImportModel>;\nexport type FigmaRenderImportModel = z.infer<typeof FigmaRenderImportModel>;\nexport type ImageImportModel = z.infer<typeof ImageImportModel>;\n","import { FigmaSvgRenderImportModel, ImageImportModel } from \"./image\";\nimport { ComponentOrigin, ComponentOriginPart } from \"../elements\";\nimport { z } from \"zod\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\n\n//\n// Import model\n//\n\nconst ComponentImportModelPart = z.object({\n thumbnail: ImageImportModel,\n});\n\nexport const ComponentImportModel = ImportModelBase.extend(ComponentImportModelPart.shape).extend({\n isAsset: z.boolean(),\n svg: FigmaSvgRenderImportModel.optional(),\n origin: ComponentOrigin,\n});\n\nexport type ComponentImportModel = z.infer<typeof ComponentImportModel>;\n\n//\n// Import model input\n//\n\nexport const ComponentImportModelInput = ImportModelInputBase.extend(ComponentImportModelPart.shape).extend({\n originMetadata: ComponentOriginPart,\n});\n\nexport const AssetImportModelInput = ImportModelInputBase.extend(ComponentImportModelPart.shape).extend({\n svg: FigmaSvgRenderImportModel,\n originMetadata: ComponentOriginPart,\n});\n\nexport type ComponentImportModelInput = z.infer<typeof ComponentImportModelInput>;\nexport type AssetImportModelInput = z.infer<typeof AssetImportModelInput>;\n","import { z } from \"zod\";\nimport { DesignElementOrigin } from \"../elements\";\nimport { ObjectMeta } from \"../../common\";\n\nexport const ImportModelBase = z.object({\n id: z.string(),\n meta: ObjectMeta,\n origin: DesignElementOrigin,\n brandPersistentId: z.string(),\n sortOrder: z.number(),\n});\n\nexport type ImportModelBase = z.infer<typeof ImportModelBase>;\n\nexport const ImportModelInputBase = ImportModelBase.omit({\n brandPersistentId: true,\n origin: true,\n sortOrder: true,\n}).extend({\n originId: z.string(),\n originMetadata: z.record(z.any()),\n});\n\nexport type ImportModelInputBase = z.infer<typeof ImportModelInputBase>;\n","import { z } from \"zod\";\nimport { DesignTokenTypedData } from \"../elements\";\nimport { DesignTokenType } from \"../elements\";\nimport { ThemeOriginObject, ThemeOriginSource, ThemeOverrideOrigin, ThemeOverrideOriginPart } from \"../elements\";\nimport { ObjectMeta } from \"../../common\";\n\n//\n// Overrides\n//\n\nexport const ThemeOverrideImportModelBase = DesignTokenTypedData.and(\n z.object({\n id: z.string(),\n meta: ObjectMeta,\n })\n);\n\nexport const ThemeOverrideImportModel = ThemeOverrideImportModelBase.and(\n z.object({\n origin: ThemeOverrideOrigin,\n })\n);\n\nexport const ThemeOverrideImportModelInput = ThemeOverrideImportModelBase.and(\n z.object({\n originId: z.string(),\n originMetadata: ThemeOverrideOriginPart,\n })\n);\n\nexport type ThemeOverrideImportModel = z.infer<typeof ThemeOverrideImportModel>;\nexport type ThemeOverrideImportModelOfType<T extends DesignTokenType> = Extract<ThemeOverrideImportModel, { type: T }>;\n\nexport type ThemeOverrideImportModelInput = z.infer<typeof ThemeOverrideImportModelInput>;\nexport type ThemeOverrideImportModelInputOfType<T extends DesignTokenType> = Extract<\n ThemeOverrideImportModelInput,\n { type: T }\n>;\n\n//\n// Themes\n//\n\nexport const ThemeImportModel = z.object({\n meta: ObjectMeta,\n brandPersistentId: z.string(),\n originSource: ThemeOriginSource,\n overrides: z.array(ThemeOverrideImportModel),\n sortOrder: z.number(),\n});\n\nexport const ThemeImportModelInput = z.object({\n meta: ObjectMeta,\n originObjects: z.array(ThemeOriginObject),\n overrides: z.array(ThemeOverrideImportModelInput),\n});\n\nexport type ThemeImportModel = z.infer<typeof ThemeImportModel>;\nexport type ThemeImportModelInput = z.infer<typeof ThemeImportModelInput>;\n\n//\n// Theme Update\n//\n\nexport const ThemeUpdateImportModel = z.object({\n themePersistentId: z.string(),\n overrides: z.array(ThemeOverrideImportModel),\n});\n\nexport const ThemeUpdateImportModelInput = z.object({\n themePersistentId: z.string(),\n overrides: z.array(ThemeOverrideImportModelInput),\n});\n\nexport type ThemeUpdateImportModel = z.infer<typeof ThemeUpdateImportModel>;\nexport type ThemeUpdateImportModelInput = z.infer<typeof ThemeUpdateImportModelInput>;\n","import { z } from \"zod\";\nimport { DesignTokenType } from \"../elements\";\nimport { DesignTokenOrigin, DesignTokenOriginPart, DesignTokenTypedData } from \"../elements\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\n\n//\n// Base\n//\n\nconst DesignTokenImportModelPart = z.object({\n collection: z.string().optional(),\n});\n\nexport const DesignTokenImportModelBase = ImportModelBase.extend(DesignTokenImportModelPart.shape).extend({\n origin: DesignTokenOrigin,\n});\n\nexport const DesignTokenImportModelInputBase = ImportModelInputBase.extend(DesignTokenImportModelPart.shape).extend({\n originMetadata: DesignTokenOriginPart,\n});\n\n//\n// Import models\n//\n\nexport const DesignTokenImportModel = DesignTokenTypedData.and(DesignTokenImportModelBase);\nexport const DesignTokenImportModelInput = DesignTokenTypedData.and(DesignTokenImportModelInputBase);\n\nexport type DesignTokenImportModelInputBase = z.infer<typeof DesignTokenImportModelInputBase>;\n\nexport type DesignTokenImportModel = z.infer<typeof DesignTokenImportModel>;\nexport type DesignTokenImportModelOfType<T extends DesignTokenType> = Extract<DesignTokenImportModel, { type: T }>;\n\nexport type DesignTokenImportModelInput = z.infer<typeof DesignTokenImportModelInput>;\nexport type DesignTokenImportModelInputOfType<T extends DesignTokenType> = Extract<DesignTokenImportModel, { type: T }>;\n\nexport function isDesignTokenImportModelOfType<T extends DesignTokenType>(\n designToken: DesignTokenImportModel,\n type: T\n): designToken is DesignTokenImportModelOfType<T> {\n return designToken.type === type;\n}\n\nexport function designTokenImportModelTypeFilter<T extends DesignTokenType>(\n type: T\n): (designToken: DesignTokenImportModel) => designToken is DesignTokenImportModelOfType<T> {\n return (designToken): designToken is DesignTokenImportModelOfType<T> =>\n isDesignTokenImportModelOfType(designToken, type);\n}\n","import { ZodType, ZodTypeDef, z } from \"zod\";\nimport { ImportModelBase, ImportModelInputBase } from \"./base\";\nimport { FigmaFileStructureOrigin } from \"../elements\";\nimport { FigmaFileStructureNodeBase, FigmaFileStructureStatistics } from \"../elements\";\nimport { FigmaPngRenderImportModel } from \"./image\";\n\n//\n// Nodes Import Model\n//\n\nconst FigmaFileStructureNodeImportModelBase = FigmaFileStructureNodeBase.extend({\n image: FigmaPngRenderImportModel,\n});\n\nexport const FigmaFileStructureNodeImportModel: z.ZodType<\n FigmaFileStructureNodeImportModel,\n ZodTypeDef,\n FigmaFileStructureNodeImportModelBaseInput\n> = FigmaFileStructureNodeImportModelBase.extend({\n children: z.lazy(() => FigmaFileStructureNodeImportModel.array()),\n});\n\ntype FigmaFileStructureNodeImportModelBaseInput = z.input<typeof FigmaFileStructureNodeImportModelBase> & {\n children: FigmaFileStructureNodeImportModelBaseInput[];\n};\n\nexport type FigmaFileStructureNodeImportModel = z.infer<typeof FigmaFileStructureNodeImportModelBase> & {\n children: FigmaFileStructureNodeImportModel[];\n};\n\n//\n// Structure Import Model\n//\n\nconst FigmaFileStructureImportModelPart = z.object({\n data: z.object({\n rootNode: FigmaFileStructureNodeImportModel,\n assetsInFile: FigmaFileStructureStatistics,\n }),\n});\n\nexport const FigmaFileStructureImportModel = ImportModelBase.extend(FigmaFileStructureImportModelPart.shape).extend({\n origin: FigmaFileStructureOrigin,\n});\n\nexport type FigmaFileStructureImportModel = z.infer<typeof FigmaFileStructureImportModel>;\n\n//\n// Import model input\n//\n\nexport const FigmaFileStructureImportModelInput = ImportModelInputBase.extend(\n FigmaFileStructureImportModelPart.shape\n).extend({\n fileVersionId: z.string(),\n});\n\nexport type FigmaFileStructureImportModelInput = z.infer<typeof FigmaFileStructureImportModelInput>;\n\nexport function figmaFileStructureImportModelToMap(\n root: FigmaFileStructureNodeImportModel\n): Map<string, FigmaFileStructureNodeImportModel> {\n const map = new Map<string, FigmaFileStructureNodeImportModel>();\n recursiveFigmaFileStructureToMap(root, map);\n return map;\n}\n\nfunction recursiveFigmaFileStructureToMap(\n node: FigmaFileStructureNodeImportModel,\n map: Map<string, FigmaFileStructureNodeImportModel>\n) {\n map.set(node.id, node);\n for (const child of node.children) recursiveFigmaFileStructureToMap(child, map);\n}\n","import { z } from \"zod\";\n\nexport const DataSourceImportModel = z.object({\n id: z.string(),\n fileName: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n});\n\nexport type DataSourceImportModel = z.infer<typeof DataSourceImportModel>;\n","import { z } from \"zod\";\n\nexport const ImportWarningType = z.enum([\n \"NoVersionFound\",\n \"UnsupportedFill\",\n \"UnsupportedStroke\",\n \"UnsupportedEffect\",\n \"NoPublishedElements\",\n \"NoPublishedStyles\",\n \"NoPublishedComponents\",\n \"NoPublishedAssets\",\n \"StyleNotApplied\",\n \"ComponentHasNoThumbnail\",\n \"DuplicateImportedStyleId\",\n \"DuplicateImportedStylePath\",\n]);\n\nexport const ImportWarning = z.object({\n warningType: ImportWarningType,\n componentId: z.string().optional(),\n componentName: z.string().optional(),\n styleId: z.string().optional(),\n styleName: z.string().optional(),\n unsupportedStyleValueType: z.string().optional(),\n});\n\nexport type ImportWarningType = z.infer<typeof ImportWarningType>;\nexport type ImportWarning = z.infer<typeof ImportWarning>;\n","import { z } from \"zod\";\n\nexport const PageBlockDefinitionAppearance = z.object({\n isBordered: z.boolean().optional(),\n hasBackground: z.boolean().optional(),\n});\n\nexport type PageBlockDefinitionAppearance = z.infer<typeof PageBlockDefinitionAppearance>;\n","import { z } from \"zod\";\nimport { AssetValue } from \"../../assets/asset-value\";\nimport { PageBlockDefinitionItem } from \"./item\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\n\n//\n// Enums\n//\n\nexport enum PageBlockCategory {\n /** Shows as a \"Text Blocks\" */\n text = \"Text\",\n /** Show as \"Layout blocks\" */\n layout = \"Layout\",\n /** Show as \"Media blocks\" */\n media = \"Media\",\n /** Show as \"Embed blocks\" */\n embed = \"Embed\",\n /** Show as \"Figma blocks\" */\n figma = \"Figma\",\n /** Show as \"Code blocks\" */\n code = \"Code\",\n /** Show as \"Guidelines blocks\" */\n guidelines = \"Guidelines\",\n /** Show as \"Token blocks\" */\n token = \"Tokens\",\n /** Show as \"Component blocks\" */\n component = \"Components\",\n /** Shows as \"Asset blocks\" */\n asset = \"Assets\",\n /** Show as \"Data blocks\" */\n data = \"Data\",\n /** Shows as \"Other blocks\" */\n other = \"Other\",\n}\n\nexport enum PageBlockBehaviorDataType {\n /** Item type uses item definition alone to construct items - examples of this are RichText, Shortcut, etc. In this mode, data panel will be hidden */\n item = \"Item\",\n /** Token type allows selection of token entity and associated groups * */\n token = \"Token\",\n /** Asset type allows selection of asset entity and associated groups * */\n asset = \"Asset\",\n /** Component type allows selection of asset entity and associated groups * */\n component = \"Component\",\n}\n\nexport enum PageBlockBehaviorSelectionType {\n /** Allows selection of data entities only */\n entity = \"Entity\",\n /** Allows selection of groups only */\n group = \"Group\",\n /** Allows combined selection of data entities and groups */\n entityAndGroup = \"EntityAndGroup\",\n}\n\nexport const PageBlockCategorySchema = z.nativeEnum(PageBlockCategory);\nexport const PageBlockBehaviorDataTypeSchema = z.nativeEnum(PageBlockBehaviorDataType);\nexport const PageBlockBehaviorSelectionTypeSchema = z.nativeEnum(PageBlockBehaviorSelectionType);\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionBehavior = z.object({\n dataType: PageBlockBehaviorDataTypeSchema,\n items: z\n .object({\n numberOfItems: z.number(),\n allowLinks: z.boolean(),\n })\n .optional(),\n entities: z\n .object({\n selectionType: PageBlockBehaviorSelectionTypeSchema,\n maxSelected: z.number(),\n })\n .optional(),\n});\n\nexport const PageBlockDefinitionOnboarding = z.object({\n helpText: z.string(),\n documentationLink: z.string().optional(),\n});\n\nexport const PageBlockDefinition = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n category: PageBlockCategorySchema,\n icon: AssetValue.optional(),\n documentationLink: z.string().optional(),\n searchKeywords: z.array(z.string()).optional(),\n item: PageBlockDefinitionItem,\n behavior: PageBlockDefinitionBehavior,\n editorOptions: z.object({\n onboarding: PageBlockDefinitionOnboarding.optional(),\n }),\n appearance: PageBlockDefinitionAppearance.optional(),\n});\n\nexport type PageBlockDefinitionBehavior = z.infer<typeof PageBlockDefinitionBehavior>;\nexport type PageBlockDefinitionOnboarding = z.infer<typeof PageBlockDefinitionOnboarding>;\nexport type PageBlockDefinition = z.infer<typeof PageBlockDefinition>;\n","import { z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\nimport { PageBlockDefinitionVariant } from \"./variant\";\n\n//\n// Enums\n//\n\nexport enum PageBlockDefinitionPropertyType {\n /** Rich text property allows user to input rich text (with additional attributes like bold, links etc.) */\n richText = \"RichText\",\n /** Text property allows user to input plain text */\n text = \"Text\",\n /** Boolean property allows user to input true/false value */\n boolean = \"Boolean\",\n /** Number property allows user to input number */\n number = \"Number\",\n /** Single-select property allows user to select one of the options */\n singleSelect = \"SingleSelect\",\n /** Multi-select property allows user to select multiple of the options */\n multiSelect = \"MultiSelect\",\n /** Image property allows user to select or upload image */\n image = \"Image\",\n /** Token type allows data access to the tokens defined in design system */\n token = \"Token\",\n /** Token type allows selection of type(s) such as color, typography etc., for further use such as filtering */\n tokenType = \"TokenType\",\n /** Token property allows selection of custom token properties (columns) */\n tokenProperty = \"TokenProperty\",\n /** Component type allows data access to the components defined in design system */\n component = \"Component\",\n /** Component property allows selection of custom component properties (columns) */\n componentProperty = \"ComponentProperty\",\n /** Asset type allows data access to the assets defined in design system */\n asset = \"Asset\",\n /** Asset property allows selection of custom asset properties (columns) */\n assetProperty = \"AssetProperty\",\n /** Page type allows data access to the pages defined in design system */\n /** Page property allows selection of custom page properties (columns) */\n /** Embed property allows user to input page to be embedded via URL */\n embedURL = \"EmbedURL\",\n /** Embed property allows user to input page to be embedded via iframe */\n /** Markdown property allows user to add markdown to render */\n markdown = \"Markdown\",\n /** Code property allows user to add code to render */\n code = \"Code\",\n /** Sandbox property allows user to add code sandbox to render live component */\n codeSandbox = \"CodeSandbox\",\n /** Table property allows user to add table to render */\n table = \"Table\",\n /** Divider property that puts visual divider into the block. It has no user input */\n divider = \"Divider\",\n /** Storybook property allows user to add Storybook story to render */\n storybook = \"Storybook\",\n}\n\nexport enum PageBlockDefinitionRichTextPropertyStyle {\n /** Title type 1, roughly equivalent of h2 in size */\n title1 = \"Title1\",\n /** Title type 2, roughly equivalent of h3 in size */\n title2 = \"Title2\",\n /** Title type 3, roughly equivalent of h4 in size */\n title3 = \"Title3\",\n /** Title type 4, roughly equivalent of h5 in size */\n title4 = \"Title4\",\n /** Title type 5, roughly equivalent of h6 in size */\n title5 = \"Title5\",\n /** Quote */\n quote = \"Quote\",\n /** Callout */\n callout = \"Callout\",\n /** Ordered list */\n ol = \"OL\",\n /** Unordered list */\n ul = \"UL\",\n /** Default option */\n default = \"Default\",\n}\n\nexport const PageBlockDefinitionPropertyTypeSchema = z.nativeEnum(PageBlockDefinitionPropertyType);\nexport const PageBlockDefinitionRichTextPropertyStyleSchema = z.nativeEnum(PageBlockDefinitionRichTextPropertyStyle);\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionPropertyOptions = z\n .object({\n style: PageBlockDefinitionRichTextPropertyStyleSchema.optional(),\n placeholder: z.string().optional(),\n })\n .and(z.record(z.any()));\n\nexport const PageBlockDefinitionProperty = z.object({\n id: z.string(),\n name: z.string(),\n type: PageBlockDefinitionPropertyTypeSchema,\n description: z.string().optional(),\n // TODO Docs\n options: PageBlockDefinitionPropertyOptions.optional(),\n variantOptions: z.record(PageBlockDefinitionPropertyOptions).optional(),\n});\n\nexport const PageBlockDefinitionItem = z.object({\n properties: z.array(PageBlockDefinitionProperty),\n appearance: PageBlockDefinitionAppearance.optional(),\n variants: z.array(PageBlockDefinitionVariant),\n defaultVariantKey: z.string(),\n});\n\nexport type PageBlockDefinitionPropertyOptions = z.infer<typeof PageBlockDefinitionPropertyOptions>;\nexport type PageBlockDefinitionProperty = z.infer<typeof PageBlockDefinitionProperty>;\nexport type PageBlockDefinitionItem = z.infer<typeof PageBlockDefinitionItem>;\n","import { ZodTypeDef, z } from \"zod\";\nimport { PageBlockDefinitionAppearance } from \"./aux\";\n\n//\n// Enums\n//\n\nexport enum PageBlockDefinitionLayoutType {\n /** Layout will stack all its items in this group into column */\n column = \"Column\",\n /** Layout will stack all its items in this group into row */\n row = \"Row\",\n}\n\nexport enum PageBlockDefinitionLayoutGap {\n /** small gap between columns/row */\n small = \"Small\",\n /** medium gap between columns/row */\n medium = \"Medium\",\n /** large gap between columns/row */\n large = \"Large\",\n /** no gap between columns/row */\n none = \"None\",\n}\n\nexport enum PageBlockDefinitionLayoutAlign {\n /** Vertically on top */\n start = \"Start\",\n /** Vertically centered */\n center = \"Center\",\n /** Vertically on the bottom */\n end = \"End\",\n}\n\nexport enum PageBlockDefinitionLayoutResizing {\n /** Will fill all available space for the column */\n fill = \"Fill\",\n /** Will hug content inside the column */\n hug = \"Hug\",\n}\n\nexport const PageBlockDefinitionLayoutTypeSchema = z.nativeEnum(PageBlockDefinitionLayoutType);\nexport const PageBlockDefinitionLayoutGapSchema = z.nativeEnum(PageBlockDefinitionLayoutGap);\nexport const PageBlockDefinitionLayoutAlignSchema = z.nativeEnum(PageBlockDefinitionLayoutAlign);\nexport const PageBlockDefinitionLayoutResizingSchema = z.nativeEnum(PageBlockDefinitionLayoutResizing);\n\n//\n// Definitions\n//\n\nexport const PageBlockDefinitionLayoutBase = z.object({\n type: PageBlockDefinitionLayoutTypeSchema,\n gap: PageBlockDefinitionLayoutGapSchema.optional(),\n columnAlign: PageBlockDefinitionLayoutAlignSchema.optional(),\n columnResizing: PageBlockDefinitionLayoutResizingSchema.optional(),\n});\n\nexport const PageBlockDefinitionLayout: z.ZodType<PageBlockDefinitionLayout, ZodTypeDef, PageBlockDefinitionLayout> =\n PageBlockDefinitionLayoutBase.extend({\n children: z.lazy(() => z.array(PageBlockDefinitionLayout.or(z.string()))),\n });\n\nexport const PageBlockDefinitionVariant = z.object({\n id: z.string(),\n name: z.string(),\n image: z.string().optional(),\n description: z.string().optional(),\n documentationLink: z.string().optional(),\n layout: PageBlockDefinitionLayout,\n maxColumns: z.number().optional(),\n defaultColumns: z.number().optional(),\n appearance: PageBlockDefinitionAppearance.optional(),\n});\n\nexport type PageBlockDefinitionVariant = z.infer<typeof PageBlockDefinitionVariant>;\nexport type PageBlockDefinitionLayout = z.infer<typeof PageBlockDefinitionLayoutBase> & {\n children: (PageBlockDefinitionLayout | string)[];\n};\n","import { z } from \"zod\";\n\nexport const DocumentationPageGroup = z.object({\n type: z.literal(\"ElementGroup\"),\n childType: z.literal(\"DocumentationPage\"),\n id: z.string(),\n persistentId: z.string(),\n shortPersistentId: z.string(),\n designSystemVersionId: z.string(),\n parentPersistentId: z.string().nullish(),\n sortOrder: z.number(),\n title: z.string(),\n slug: z.string(),\n userSlug: z.string().nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type DocumentationPageGroup = z.infer<typeof DocumentationPageGroup>;\n","import { z } from \"zod\";\n\nexport const DocumentationPage = z.object({\n type: z.literal(\"DocumentationPage\"),\n id: z.string(),\n persistentId: z.string(),\n shortPersistentId: z.string(),\n designSystemVersionId: z.string(),\n parentPersistentId: z.string().nullish(),\n sortOrder: z.number(),\n title: z.string(),\n slug: z.string(),\n userSlug: z.string().nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport type DocumentationPage = z.infer<typeof DocumentationPage>;\n","import { z } from \"zod\";\nimport { Workspace } from \"../workspace\";\nexport const DesignSystemSwitcher = z.object({\n isEnabled: z.boolean(),\n designSystemIds: z.string(),\n});\n\nexport const DesignSystem = z.object({\n id: z.string(),\n workspaceId: z.string(),\n name: z.string(),\n description: z.string(),\n docExporterId: z.string().nullish(),\n docSlug: z.string(),\n docUserSlug: z.string().nullish(),\n docSlugDeprecated: z.string(),\n isPublic: z.boolean(),\n isMultibrand: z.boolean(),\n docViewUrl: z.string().nullish(),\n basePrefixes: z.array(z.string()),\n designSystemSwitcher: DesignSystemSwitcher.nullish(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport const DesignSystemWithWorkspace = z.object({\n designSystem: DesignSystem,\n workspace: Workspace,\n});\n\nexport type DesignSystemSwitcher = z.infer<typeof DesignSystemSwitcher>;\nexport type DesignSystem = z.infer<typeof DesignSystem>;\nexport type DesignSystemWithWorkspace = z.infer<typeof DesignSystemWithWorkspace>;\n","import { z } from \"zod\";\n\nexport const NpmRegistryAuthType = z.enum([\"Basic\", \"Bearer\", \"None\", \"Custom\"]);\nexport const NpmRegistryType = z.enum([\"NPMJS\", \"GitHub\", \"AzureDevOps\", \"Artifactory\", \"Custom\"]);\n\nexport const NpmRegistryBasicAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Basic),\n username: z.string(),\n password: z.string(),\n});\n\nexport const NpmRegistryBearerAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Bearer),\n accessToken: z.string(),\n});\n\nexport const NpmRegistryNoAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.None),\n});\n\nexport const NpmRegistrCustomAuthConfig = z.object({\n authType: z.literal(NpmRegistryAuthType.Enum.Custom),\n authHeaderName: z.string(),\n authHeaderValue: z.string(),\n});\n\nexport const NpmRegistryAuthConfig = z.discriminatedUnion(\"authType\", [\n NpmRegistryBasicAuthConfig,\n NpmRegistryBearerAuthConfig,\n NpmRegistryNoAuthConfig,\n NpmRegistrCustomAuthConfig,\n]);\n\nconst NpmRegistryConfigBase = z.object({\n registryType: NpmRegistryType,\n enabledScopes: z.array(z.string()),\n customRegistryUrl: z.string().optional(),\n bypassProxy: z.boolean().default(false),\n npmProxyRegistryConfigId: z.string().optional(),\n npmProxyVersion: z.number().optional(),\n});\n\nexport const NpmRegistryConfig = NpmRegistryConfigBase.and(NpmRegistryAuthConfig);\n\nexport type NpmRegistryConfig = z.infer<typeof NpmRegistryConfig>;\n","import { z } from \"zod\";\nexport const SsoProvider = z.object({\n providerId: z.string(),\n defaultAutoInviteValue: z.boolean(),\n autoInviteDomains: z.record(z.string(), z.boolean()),\n skipDocsSupernovaLogin: z.boolean(),\n areInvitesDisabled: z.boolean(),\n isTestMode: z.boolean(),\n emailDomains: z.array(z.string()),\n metadataXml: z.string().nullish(),\n});\n\nexport type SsoProvider = z.infer<typeof SsoProvider>;\n","import { z } from \"zod\";\nimport { WorkspaceRoleSchema } from \"./workspace-role\";\n\nexport const MAX_MEMBERS_COUNT = 100;\n\nexport const UserInvite = z.object({\n email: z\n .string()\n .email()\n .trim()\n .transform(value => value.toLowerCase()),\n role: WorkspaceRoleSchema,\n});\n\nexport const UserInvites = z.array(UserInvite).max(MAX_MEMBERS_COUNT);\n\nexport type UserInvite = z.infer<typeof UserInvite>;\nexport type UserInvites = z.infer<typeof UserInvites>;\n","import { z } from \"zod\";\n\nexport const WorkspaceRoleSchema = z.enum([\"Owner\", \"Admin\", \"Creator\", \"Viewer\", \"Billing\", \"Guest\"]);\n\nexport type WorkspaceRole = z.infer<typeof WorkspaceRoleSchema>;\nexport const WorkspaceRole = WorkspaceRoleSchema.enum;\n","import { ProductCodeSchema } from \"../billing\";\nimport { z } from \"zod\";\n\nexport const WorkspaceContext = z.object({\n workspaceId: z.string(),\n product: ProductCodeSchema,\n publicDesignSystem: z.boolean().optional(),\n});\n\nexport type WorkspaceContext = z.infer<typeof WorkspaceContext>;\n","import { z } from \"zod\";\nimport { UserInvites } from \"./user-invite\";\nimport { SLUG_REGEX } from \"../helpers\";\nimport { ProductCodeSchema } from \"../billing\";\n\nconst WORKSPACE_NAME_MIN_LENGTH: number = 2;\nconst WORKSPACE_NAME_MAX_LENGTH: number = 64;\nexport const HANDLE_MIN_LENGTH = 2;\nexport const HANDLE_MAX_LENGTH = 64;\n\nexport const CreateWorkspaceInput = z.object({\n name: z.string().min(WORKSPACE_NAME_MIN_LENGTH).max(WORKSPACE_NAME_MAX_LENGTH).trim(),\n product: ProductCodeSchema,\n priceId: z.string(),\n billingEmail: z.string().email().optional(),\n handle: z\n .string()\n .regex(SLUG_REGEX)\n .min(HANDLE_MIN_LENGTH)\n .max(HANDLE_MAX_LENGTH)\n .refine(value => value?.length > 0)\n .optional(),\n invites: UserInvites.optional(),\n promoCode: z.string().optional(),\n});\n\nexport type CreateWorkspaceInput = z.infer<typeof CreateWorkspaceInput>;\n","import { WorkspaceRole } from \"./workspace-role\";\nimport { z } from \"zod\";\n\nexport const WorkspaceInvitation = z.object({\n id: z.string(),\n email: z.string().email(),\n createdAt: z.date(),\n resentAt: z.date().nullish(),\n role: z.nativeEnum(WorkspaceRole),\n workspaceId: z.string(),\n invitedBy: z.string(),\n});\n\nexport type WorkspaceInvitation = z.infer<typeof WorkspaceInvitation>;\n","import { WorkspaceRole } from \"./workspace-role\";\nimport { z } from \"zod\";\n\nexport const WorkspaceMembership = z.object({\n id: z.string(),\n userId: z.string(),\n workspaceId: z.string(),\n workspaceRole: z.nativeEnum(WorkspaceRole),\n});\n\nexport type WorkspaceMembership = z.infer<typeof WorkspaceMembership>;\n","import { z } from \"zod\";\nimport { Subscription } from \"../billing\";\nimport { SsoProvider } from \"./sso-provider\";\nimport { DesignSystem } from \"../dsm\";\nimport { BillingDetails } from \"../billing\";\n\nexport const WorkspaceIpWhitelistEntry = z.object({\n isEnabled: z.boolean(),\n name: z.string(),\n range: z.string(),\n});\n\nexport const WorkspaceIpSettings = z\n .object({\n isEnabledForCloud: z.boolean(),\n isEnabledForDocs: z.boolean(),\n entries: z.array(WorkspaceIpWhitelistEntry),\n })\n .nullish();\n\nexport const WorkspaceProfile = z.object({\n name: z.string(),\n handle: z.string(),\n color: z.string(),\n avatar: z.string().optional(),\n billingDetails: BillingDetails.optional(),\n});\n\nexport const Workspace = z.object({\n id: z.string(),\n profile: WorkspaceProfile,\n subscription: Subscription,\n ipWhitelist: WorkspaceIpSettings,\n sso: SsoProvider.nullish(),\n npmRegistrySettings: z.unknown().optional(),\n designSystems: z.array(DesignSystem).nullish(),\n});\n\nexport const WorkspaceWithDesignSystems = z.object({\n workspace: Workspace,\n designSystems: z.array(DesignSystem),\n});\n\nexport type WorkspaceIpWhitelistEntry = z.infer<typeof WorkspaceIpWhitelistEntry>;\nexport type WorkspaceIpSettings = z.infer<typeof WorkspaceIpSettings>;\nexport type WorkspaceProfile = z.infer<typeof WorkspaceProfile>;\nexport type Workspace = z.infer<typeof Workspace>;\nexport type WorkspaceWithDesignSystems = z.infer<typeof WorkspaceWithDesignSystems>;\n","import { z } from \"zod\";\n\nconst DS_NAME_MIN_LENGTH: number = 2;\nconst DS_NAME_MAX_LENGTH: number = 64;\nconst DS_DESC_MIN_LENGTH: number = 2;\nconst DS_DESC_MAX_LENGTH: number = 64;\n\nconst DesignSystemCreateInputMetadata = z.object({\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim(),\n});\n\nexport const DesignSystemCreateInput = z.object({\n meta: DesignSystemCreateInputMetadata,\n workspaceId: z.string(),\n isPublic: z.boolean().optional(),\n basePrefixes: z.array(z.string()).optional(),\n docUserSlug: z.string().nullish().optional(),\n source: z.array(z.string()).optional(),\n});\n\nexport type DesignSystemCreateInput = z.infer<typeof DesignSystemCreateInput>;\n","import { z } from \"zod\";\n\nconst DS_NAME_MIN_LENGTH: number = 2;\nconst DS_NAME_MAX_LENGTH: number = 64;\nconst DS_DESC_MIN_LENGTH: number = 2;\nconst DS_DESC_MAX_LENGTH: number = 64;\n\nconst DesignSystemUpdateInputMetadata = z.object({\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim().optional(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim().optional(),\n});\n\nexport const DesignSystemUpdateInput = z.object({\n meta: DesignSystemUpdateInputMetadata.optional(),\n workspaceId: z.string().optional(),\n isPublic: z.boolean().optional(),\n basePrefixes: z.array(z.string()).optional(),\n docUserSlug: z.string().nullish().optional(),\n source: z.array(z.string()).optional(),\n name: z.string().min(DS_NAME_MIN_LENGTH).max(DS_NAME_MAX_LENGTH).trim().optional(),\n description: z.string().min(DS_DESC_MIN_LENGTH).max(DS_DESC_MAX_LENGTH).trim().optional(),\n docExporterId: z.string().optional(),\n});\n\nexport type DesignSystemUpdateInput = z.infer<typeof DesignSystemUpdateInput>;\n","import { z } from \"zod\";\n\nexport const publishedDocEnvironments = [\"Live\", \"Preview\"] as const;\nexport const PublishedDocEnvironment = z.enum(publishedDocEnvironments);\n\nexport const PublishedDocsChecksums = z.record(z.string());\n\nexport const PublishedDocRoutingVersion = z.enum([\"1\", \"2\"]);\n\nexport const PublishedDoc = z.object({\n id: z.string(),\n designSystemVersionId: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n lastPublishedAt: z.date(),\n isDefault: z.boolean(),\n isPublic: z.boolean(),\n environment: PublishedDocEnvironment,\n checksums: PublishedDocsChecksums,\n storagePath: z.string(),\n wasMigrated: z.boolean(),\n routingVersion: PublishedDocRoutingVersion,\n usesLocalizations: z.boolean(),\n wasPublishedWithLocalizations: z.boolean(),\n});\n\nexport type PublishedDocEnvironment = z.infer<typeof PublishedDocEnvironment>;\nexport type PublishedDocsChecksums = z.infer<typeof PublishedDocsChecksums>;\nexport type PublishedDocRoutingVersion = z.infer<typeof PublishedDocRoutingVersion>;\nexport type PublishedDoc = z.infer<typeof PublishedDoc>;\n","import { PublishedDocEnvironment } from \"../dsm\";\nimport { z } from \"zod\";\nexport const ExportJobStatus = z.union([\n z.literal(\"Success\"),\n z.literal(\"InProgress\"),\n z.literal(\"Timeout\"),\n z.literal(\"Failed\"),\n]);\n\nexport type ExportJobStatus = z.infer<typeof ExportJobStatus>;\n\nexport const ExportJob = z.object({\n id: z.string(),\n workspaceId: z.string(),\n designSystemId: z.string(),\n designSystemVersionId: z.string(),\n status: ExportJobStatus,\n docsUrl: z.string().nullish(),\n scheduleId: z.string().nullish(),\n exporterId: z.string().nullish(),\n createdAt: z.date(),\n environment: PublishedDocEnvironment,\n finishedAt: z.date().nullish(),\n});\n\nexport type ExportJob = z.infer<typeof ExportJob>;\n","import { z } from \"zod\";\n\nexport const ExporterWorkspaceMembershipRole = z.enum([\"Owner\", \"OwnerArchived\", \"User\"]);\nexport type ExporterWorkspaceMembershipRole = z.infer<typeof ExporterWorkspaceMembershipRole>;\n","import { z } from \"zod\";\nimport { ExporterWorkspaceMembershipRole } from \"./exporter-workspace-membership-role\";\nimport { DbCreateInputOmit } from \"../helpers\";\n\nexport const ExporterWorkspaceMembership = z.object({\n id: z.string(),\n workspaceId: z.string(),\n exporterId: z.string(),\n role: ExporterWorkspaceMembershipRole,\n});\n\nexport type ExporterWorkspaceMembership = z.infer<typeof ExporterWorkspaceMembership>;\n\nexport type CreateExporterMembership = DbCreateInputOmit<ExporterWorkspaceMembership>;\n","import { z } from \"zod\";\nimport { GitProvider } from \"./git-providers\";\nimport { PulsarContributionBlock, PulsarContributionConfigurationProperty, PulsarContributionVariant } from \"./pulsar\";\nimport { nullishToOptional } from \"../helpers\";\n\nexport const ExporterType = z.enum([\"code\", \"documentation\"]);\nexport const ExporterSource = z.enum([\"git\", \"upload\"]);\nexport const ExporterTag = z.string().regex(/^[0-9a-zA-Z]+(\\s[0-9a-zA-Z]+)*$/);\n\nexport const ExporterDetails = z.object({\n packageId: z.string().max(255),\n version: z.string(),\n description: z.string(),\n author: nullishToOptional(z.string()),\n organization: nullishToOptional(z.string()),\n homepage: nullishToOptional(z.string()),\n readme: nullishToOptional(z.string()),\n tags: z.array(ExporterTag).default([]),\n\n routingVersion: nullishToOptional(z.string()),\n\n iconURL: nullishToOptional(z.string()),\n configurationProperties: z.array(PulsarContributionConfigurationProperty).default([]),\n customBlocks: z.array(PulsarContributionBlock).default([]),\n blockVariants: z.record(z.string(), z.array(PulsarContributionVariant)).default({}),\n\n usesBrands: z.boolean().default(false),\n usesThemes: z.boolean().default(false),\n\n source: ExporterSource,\n\n gitProvider: nullishToOptional(GitProvider),\n gitUrl: nullishToOptional(z.string()),\n gitBranch: nullishToOptional(z.string()),\n gitDirectory: nullishToOptional(z.string()),\n});\n\nexport const Exporter = z.object({\n id: z.string(),\n createdAt: z.coerce.date(),\n name: z.string(),\n isPrivate: z.boolean(),\n details: ExporterDetails,\n exporterType: ExporterType.default(\"code\"),\n storagePath: z.string().default(\"\"),\n});\n\nexport type ExporterType = z.infer<typeof ExporterType>;\nexport type ExporterSource = z.infer<typeof ExporterSource>;\nexport type ExporterTag = z.infer<typeof ExporterTag>;\nexport type ExporterDetails = z.infer<typeof ExporterDetails>;\nexport type Exporter = z.infer<typeof Exporter>;\n","import { z } from \"zod\";\n\nexport enum GitProviderNames {\n Azure = \"azure\",\n Github = \"github\",\n Gitlab = \"gitlab\",\n Bitbucket = \"bitbucket\",\n}\n\nexport const GitProvider = z.nativeEnum(GitProviderNames);\nexport type GitProvider = z.infer<typeof GitProvider>;\n","import { z } from \"zod\";\n\nexport const PulsarContributionVariant = z.object({\n key: z.string(),\n name: z.string(),\n isDefault: z.boolean().optional(),\n description: z.string().optional(),\n thumbnailURL: z.string().optional(),\n});\nexport type PulsarContributionVariant = z.infer<typeof PulsarContributionVariant>;\n\nexport const PulsarPropertyType = z.enum([\n \"string\",\n \"number\",\n \"boolean\",\n \"image\",\n \"enum\",\n \"color\",\n \"typography\",\n \"component\",\n \"componentProperties\",\n \"tokenProperties\",\n \"tokenType\",\n]);\nexport type PulsarPropertyType = z.infer<typeof PulsarPropertyType>;\n\n// export type PulsarPropertyValueType =\n// | string\n// | number\n// | boolean\n// | PulsarPropertyImageValue\n// | ColorTokenData // TODO: Should we do smth here? Update Pulsar to get value?!\n// | TypographyTokenData;\n\nexport const BasePulsarProperty = z.object({\n label: z.string(),\n key: z.string(),\n description: z.string().optional(),\n type: PulsarPropertyType,\n values: z.array(z.string()).optional(),\n default: z.union([z.string(), z.boolean(), z.number()]).nullish(), // PulsarPropertyValueType //is optional?\n inputType: z.enum([\"code\", \"plain\"]).optional(), //is optional?\n isMultiline: z.boolean().optional(),\n});\nexport type BasePulsarProperty = z.infer<typeof BasePulsarProperty>;\n\nexport const PulsarContributionBlock = z.object({\n title: z.string(),\n key: z.string(),\n category: z.string(),\n description: z.string().optional(),\n iconURL: z.string(),\n mode: z.enum([\"array\", \"block\"]),\n properties: z.array(BasePulsarProperty),\n});\nexport type PulsarContributionBlock = z.infer<typeof PulsarContributionBlock>;\n\nexport const PulsarContributionConfigurationProperty = BasePulsarProperty.extend({ category: z.string() });\nexport type PulsarContributionConfigurationProperty = z.infer<typeof PulsarContributionConfigurationProperty>;\n","import { z } from \"zod\";\n\nexport type CustomDomainState =\n | \"Initial\"\n | \"DomainSetupInProgress\"\n | \"DomainSetupFailed\"\n | \"DomainSetupSuccess\"\n | \"SSLSetupInProgress\"\n | \"SSLSetupFailed\"\n | \"SSLSetupSuccess\";\n\nexport const CustomDomain = z.object({\n id: z.string(),\n designSystemId: z.string(),\n state: z.string(),\n\n supernovaDomain: z.string(),\n customerDomain: z.string().nullish(),\n\n error: z.string().nullish(),\n errorCode: z.string().nullish(),\n});\n\nexport type CustomDomain = z.infer<typeof CustomDomain>;\n","import { z } from \"zod\";\nimport { User } from \"../users\";\n\nexport const NpmProxyToken = z.object({\n access: z.string(),\n expiresAt: z.number(),\n});\n\nexport type NpmProxyToken = z.infer<typeof NpmProxyToken>;\n\nexport const SessionData = z.object({\n returnToUrl: z.string().optional(),\n npmProxyToken: NpmProxyToken.optional(),\n});\n\nexport type SessionData = z.infer<typeof SessionData>;\n\nexport const Session = z.object({\n id: z.string(),\n expiresAt: z.date(),\n userId: z.string().nullable(),\n data: SessionData,\n});\n\nexport type Session = z.infer<typeof Session>;\n\nexport const AuthTokens = z.object({\n access: z.string(),\n refresh: z.string(),\n});\n\nexport type AuthTokens = z.infer<typeof AuthTokens>;\n\nexport const UserSession = z.object({\n session: Session,\n user: User.nullable(),\n});\n\nexport type UserSession = z.infer<typeof UserSession>;\n","import { z } from \"zod\";\n\nexport const IntegrationAuthType = z.union([z.literal(\"OAuth2\"), z.literal(\"PAT\")]);\n\nexport type IntegrationAuthType = z.infer<typeof IntegrationAuthType>;\n\nexport const ExternalServiceType = z.union([\n z.literal(\"figma\"),\n z.literal(\"github\"),\n z.literal(\"azure\"),\n z.literal(\"gitlab\"),\n z.literal(\"bitbucket\"),\n]);\n\nexport type ExternalServiceType = z.infer<typeof ExternalServiceType>;\n\nexport const IntegrationUserInfo = z.object({\n id: z.string(),\n handle: z.string().optional(),\n avatarUrl: z.string().optional(),\n email: z.string().optional(),\n authType: IntegrationAuthType.optional(),\n customUrl: z.string().optional(),\n});\n\nexport type IntegrationUserInfo = z.infer<typeof IntegrationUserInfo>;\n\nexport const UserLinkedIntegrations = z.object({\n figma: IntegrationUserInfo.optional(),\n github: IntegrationUserInfo.array().optional(),\n azure: IntegrationUserInfo.array().optional(),\n gitlab: IntegrationUserInfo.array().optional(),\n bitbucket: IntegrationUserInfo.array().optional(),\n});\n\nexport type UserLinkedIntegrations = z.infer<typeof UserLinkedIntegrations>;\n","import { z } from \"zod\";\n\nexport const UserIdentity = z.object({\n id: z.string(),\n userId: z.string(),\n});\n\nexport type UserIdentity = z.infer<typeof UserIdentity>;\n","import { z } from \"zod\";\n\nexport const UserOnboardingDepartment = z.enum([\"Design\", \"Engineering\", \"Brand\", \"Other\"]);\n\nexport const UserOnboardingJobLevel = z.enum([\"Executive\", \"Manager\", \"IndividualContributor\", \"Other\"]);\n\nexport const UserOnboarding = z.object({\n companyName: z.string().optional(),\n numberOfPeopleInOrg: z.string().optional(),\n numberOfPeopleInDesignTeam: z.string().optional(),\n department: UserOnboardingDepartment.optional(),\n jobTitle: z.string().optional(),\n phase: z.string().optional(),\n jobLevel: UserOnboardingJobLevel.optional(),\n});\n\nexport type UserOnboarding = z.infer<typeof UserOnboarding>;\n\nexport const UserProfile = z.object({\n name: z.string(),\n // avatar: z.string().optional(),\n nickname: z.string().optional(),\n onboarding: UserOnboarding.optional(),\n});\n\nexport type UserProfile = z.infer<typeof UserProfile>;\n","import { UserLinkedIntegrations } from \"./linked-integrations\";\nimport { UserProfile } from \"./user-profile\";\nimport { z } from \"zod\";\n\nexport const User = z.object({\n id: z.string(),\n email: z.string(),\n emailVerified: z.boolean(),\n createdAt: z.date(),\n trialExpiresAt: z.date().optional(),\n profile: UserProfile,\n linkedIntegrations: UserLinkedIntegrations.optional(),\n loggedOutAt: z.date().optional(),\n isProtected: z.boolean(),\n});\n\nexport type User = z.infer<typeof User>;\n","import { z } from \"zod\";\n\nexport const FlaggedFeature = z.enum([\"FigmaImporterV2\"]);\nexport const FeatureFlagMap = z.record(FlaggedFeature, z.boolean());\nexport const FeatureFlag = z.object({\n id: z.string(),\n feature: FlaggedFeature,\n createdAt: z.date(),\n enabled: z.boolean(),\n});\n\nexport type FlaggedFeature = z.infer<typeof FlaggedFeature>;\nexport type FeatureFlagMap = z.infer<typeof FeatureFlagMap>;\nexport type FeatureFlag = z.infer<typeof FeatureFlag>;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const ExternalOAuthRequest = z.object({\n id: z.string(),\n provider: OAuthProviderSchema,\n userId: z.string(),\n state: z.string(),\n createdAt: z.date(),\n});\n\nexport type ExternalOAuthRequest = z.infer<typeof ExternalOAuthRequest>;\n","import { z } from \"zod\";\n\nexport enum OAuthProviderNames {\n Figma = \"figma\",\n Azure = \"azure\",\n Github = \"github\",\n Gitlab = \"gitlab\",\n Bitbucket = \"bitbucket\",\n}\n\nexport const OAuthProviderSchema = z.nativeEnum(OAuthProviderNames);\nexport type OAuthProvider = z.infer<typeof OAuthProviderSchema>;\nexport const OAuthProvider = OAuthProviderSchema.enum;\n","import { z } from \"zod\";\nimport { OAuthProviderSchema } from \"./oauth-providers\";\n\nexport const IntegrationTokenSchema = z.object({\n id: z.string(),\n provider: OAuthProviderSchema,\n scope: z.string(),\n userId: z.string(),\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresAt: z.date(),\n externalUserId: z.string().nullish(),\n});\n\nexport type IntegrationToken = z.infer<typeof IntegrationTokenSchema>;\n","import { z } from \"zod\";\nimport { Entity } from \"../common/entity\";\nimport { DbCreateInputOmit, DbUpdate } from \"../helpers\";\n\nexport const DesignSystemVersionRoom = Entity.extend({\n designSystemVersionId: z.string(),\n liveblocksId: z.string(),\n});\n\nexport type DesignSystemVersionRoom = z.infer<typeof DesignSystemVersionRoom>;\n\nexport type CreateDesignSystemVersionRoom = DbCreateInputOmit<DesignSystemVersionRoom>;\nexport type UpdateDesignSystemVersionRoom = DbUpdate<DesignSystemVersionRoom>;\n","import { z } from \"zod\";\nimport { Entity } from \"../common/entity\";\nimport { DbCreateInputOmit, DbUpdate } from \"../helpers\";\n\nexport const DocumentationPageRoom = Entity.extend({\n designSystemVersionId: z.string(),\n documentationPageId: z.string(),\n liveblocksId: z.string(),\n});\n\nexport type DocumentationPageRoom = z.infer<typeof DocumentationPageRoom>;\n\nexport type CreateDocumentationPageRoom = DbCreateInputOmit<DocumentationPageRoom>;\nexport type UpdateDocumentationPageRoom = DbUpdate<DocumentationPageRoom>;\n","import { z } from \"zod\";\n\nconst AnyRecord = z.record(z.any());\n\nconst NpmPackageVersionDist = AnyRecord.and(\n z.object({\n tarball: z.string(),\n })\n);\n\nconst NpmPackageVersion = AnyRecord.and(\n z.object({\n dist: NpmPackageVersionDist,\n })\n);\n\nexport const NpmPackage = AnyRecord.and(\n z.object({\n _id: z.string(),\n name: z.string(),\n\n // e.g. \"latest\": \"1.2.3\"\n \"dist-tags\": z.record(z.string(), z.string()),\n\n // \"1.2.3\": {...}\n versions: z.record(NpmPackageVersion),\n })\n);\n\nexport type NpmPackage = z.infer<typeof NpmPackage>;\n","import { z } from \"zod\";\n\nexport const NpmProxyTokenPayload = z.object({\n npmProxyRegistryConfigId: z.string(),\n});\n\nexport type NpmProxyTokenPayload = z.infer<typeof NpmProxyTokenPayload>;\n","import { z } from \"zod\";\nimport { WorkspaceRoleSchema } from \"../workspace\";\n\nexport const PersonalAccessToken = z.object({\n id: z.string(),\n userId: z.string(),\n name: z.string(),\n token: z.string(),\n createdAt: z.date(),\n hidden: z.boolean(),\n workspaceId: z.string().optional(),\n workspaceRole: WorkspaceRoleSchema.optional(),\n expireAt: z.date().optional(),\n scope: z.string().optional(),\n});\n\nexport type PersonalAccessToken = z.infer<typeof PersonalAccessToken>;\n","import { z } from \"zod\";\n\nexport const ContentLoadInstruction = z.object({\n from: z.string(),\n to: z.string(),\n authorizationHeaderKvsId: z.string().optional(),\n timeout: z.number().optional(),\n});\n\nexport type ContentLoadInstruction = z.infer<typeof ContentLoadInstruction>;\n\nexport const ContentLoaderPayload = z\n .object({\n type: z.literal(\"Single\"),\n instruction: ContentLoadInstruction,\n })\n .or(\n z.object({\n type: z.literal(\"Multiple\"),\n loadingChunkSize: z.number().optional(),\n instructions: z.array(ContentLoadInstruction),\n })\n )\n .or(\n z.object({\n type: z.literal(\"S3\"),\n location: z.string(),\n })\n );\n\nexport type ContentLoaderPayload = z.infer<typeof ContentLoaderPayload>;\n","import { PageBlockDefinition } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const GetBlockDefinitionsResponse = z.object({\n definitions: z.array(PageBlockDefinition),\n});\n\nexport type GetBlockDefinitionsResponse = z.infer<typeof GetBlockDefinitionsResponse>;\n","import { PageBlockDataV2 } from \"@supernova-studio/model\";\nimport { z } from \"zod\";\n\nexport const PageBlockEditorModel = z.object({\n id: z.string(),\n data: PageBlockDataV2,\n});\n\nexport type PageBlockEditorModel = z.infer<typeof PageBlockEditorModel>;\n","import { z } from \"zod\";\nimport { PageBlockEditorModel } from \"./block\";\n\nexport const DocumentationPageEditorModel = z.object({\n blocks: z.array(PageBlockEditorModel),\n});\n\nexport type DocumentationPageEditorModel = z.infer<typeof DocumentationPageEditorModel>;\n","import { Schema } from \"prosemirror-model\";\n\nconst newSchema = {\n nodes: {\n paragraph: {\n name: \"paragraph\",\n spec: {\n content: \"inline*\",\n group: \"block\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.rich-text\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"p\",\n },\n ],\n },\n markSet: null,\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.rich-text\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.rich-text\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n reactComponent: {\n name: \"reactComponent\",\n spec: {\n group: \"block\",\n atom: true,\n draggable: true,\n attrs: {\n count: {\n default: 0,\n },\n },\n parseDOM: [\n {\n tag: \"react-component\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n count: {\n hasDefault: true,\n default: 0,\n },\n },\n defaultAttrs: {\n count: 0,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableRow: {\n name: \"tableRow\",\n spec: {\n tableRole: \"row\",\n content: \"(tableCell | tableHeader)*\",\n parseDOM: [\n {\n tag: \"tr\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n table: {\n name: \"table\",\n spec: {\n tableRole: \"table\",\n content: \"tableRow+\",\n group: \"defaultTable\",\n isolating: true,\n parseDOM: [\n {\n tag: \"table\",\n },\n ],\n },\n markSet: [],\n groups: [\"defaultTable\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableCell: {\n name: \"tableCell\",\n spec: {\n tableRole: \"cell\",\n content: \"(paragraph|image)+\",\n isolating: true,\n attrs: {\n textAlign: {\n default: \"left\",\n },\n colspan: {\n default: 1,\n },\n rowspan: {\n default: 1,\n },\n colwidth: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"td\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n textAlign: {\n hasDefault: true,\n default: \"left\",\n },\n colspan: {\n hasDefault: true,\n default: 1,\n },\n rowspan: {\n hasDefault: true,\n default: 1,\n },\n colwidth: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n textAlign: \"left\",\n colspan: 1,\n rowspan: 1,\n colwidth: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableHeader: {\n name: \"tableHeader\",\n spec: {\n tableRole: \"header_cell\",\n content: \"(paragraph|image)+\",\n isolating: true,\n attrs: {\n textAlign: {\n default: \"left\",\n },\n colspan: {\n default: 1,\n },\n rowspan: {\n default: 1,\n },\n colwidth: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"th\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n textAlign: {\n hasDefault: true,\n default: \"left\",\n },\n colspan: {\n hasDefault: true,\n default: 1,\n },\n rowspan: {\n hasDefault: true,\n default: 1,\n },\n colwidth: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n textAlign: \"left\",\n colspan: 1,\n rowspan: 1,\n colwidth: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tableContainer: {\n name: \"tableContainer\",\n spec: {\n content: \"table\",\n group: \"block\",\n atom: true,\n draggable: false,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.table\",\n },\n variantId: {\n default: \"default\",\n },\n hasBorder: {\n default: true,\n },\n },\n parseDOM: [\n {\n tag: \"tableContainer\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.table\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n hasBorder: {\n hasDefault: true,\n default: true,\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.table\",\n variantId: \"default\",\n hasBorder: true,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n image: {\n name: \"image\",\n spec: {\n group: \"block\",\n inline: false,\n draggable: true,\n attrs: {\n src: {\n default: null,\n },\n alt: {\n default: null,\n },\n title: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'img[src]:not([src^=\"data:\"])',\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n src: {\n hasDefault: true,\n default: null,\n },\n alt: {\n hasDefault: true,\n default: null,\n },\n title: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n src: null,\n alt: null,\n title: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n codeBlock: {\n name: \"codeBlock\",\n spec: {\n content: \"text*\",\n marks: \"\",\n group: \"block\",\n code: true,\n defining: true,\n attrs: {\n language: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"pre\",\n preserveWhitespace: \"full\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n language: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n language: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n hardBreak: {\n name: \"hardBreak\",\n spec: {\n group: \"inline\",\n inline: true,\n selectable: false,\n parseDOM: [\n {\n tag: \"br\",\n },\n ],\n },\n markSet: [],\n groups: [\"inline\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: false,\n isText: false,\n },\n text: {\n name: \"text\",\n spec: {\n group: \"inline\",\n },\n markSet: [],\n groups: [\"inline\"],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: false,\n isText: true,\n },\n heading: {\n name: \"heading\",\n spec: {\n content: \"inline*\",\n group: \"block\",\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n level: {\n default: 1,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"h1\",\n attrs: {\n level: 1,\n definitionId: \"io.supernova.block.title1\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h2\",\n attrs: {\n level: 2,\n definitionId: \"io.supernova.block.title2\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h3\",\n attrs: {\n level: 3,\n definitionId: \"io.supernova.block.title3\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h4\",\n attrs: {\n level: 4,\n definitionId: \"io.supernova.block.title4\",\n variantId: \"default\",\n },\n },\n {\n tag: \"h5\",\n attrs: {\n level: 5,\n definitionId: \"io.supernova.block.title5\",\n variantId: \"default\",\n },\n },\n ],\n },\n markSet: null,\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n level: {\n hasDefault: true,\n default: 1,\n },\n definitionId: {\n hasDefault: true,\n default: null,\n },\n variantId: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n level: 1,\n definitionId: null,\n variantId: null,\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n listItem: {\n name: \"listItem\",\n spec: {\n content: \"paragraph (paragraph | list)*\",\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"li\",\n },\n ],\n },\n markSet: [],\n groups: [],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n orderedList: {\n name: \"orderedList\",\n spec: {\n content: \"listItem+\",\n group: \"block list topLevel\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.ordered-list\",\n },\n variantId: {\n default: \"default\",\n },\n start: {\n default: 1,\n },\n },\n parseDOM: [\n {\n tag: \"ol\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\", \"list\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.ordered-list\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n start: {\n hasDefault: true,\n default: 1,\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.ordered-list\",\n variantId: \"default\",\n start: 1,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n bulletList: {\n name: \"bulletList\",\n spec: {\n content: \"listItem+\",\n group: \"block list topLevel\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.unordered-list\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"ul\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\", \"list\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.unordered-list\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.unordered-list\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n horizontalRule: {\n name: \"horizontalRule\",\n spec: {\n group: \"block\",\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.divider\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"div.node-horizontalRule\",\n },\n {\n tag: \"hr\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.divider\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.divider\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n blockquote: {\n name: \"blockquote\",\n spec: {\n content: \"paragraph+\",\n group: \"block\",\n defining: true,\n attrs: {\n definitionId: {\n default: \"io.supernova.block.blockquote\",\n },\n variantId: {\n default: \"default\",\n },\n },\n parseDOM: [\n {\n tag: \"blockquote\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.blockquote\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n },\n defaultAttrs: {\n definitionId: \"io.supernova.block.blockquote\",\n variantId: \"default\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n plainSection: {\n name: \"plainSection\",\n spec: {\n content: \"sectionItem\",\n group: \"section topLevel\",\n atom: true,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"section\",\n attrs: {\n \"data-section-type\": \"plain\",\n },\n },\n ],\n },\n markSet: [],\n groups: [\"section\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n tabsSection: {\n name: \"tabsSection\",\n spec: {\n content: \"sectionItem+\",\n group: \"section topLevel\",\n atom: true,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"div\",\n },\n ],\n },\n markSet: [],\n groups: [\"section\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n sectionItem: {\n name: \"sectionItem\",\n spec: {\n content: \"sectionItemColumn{1, 3}\",\n group: \"sectionItem\",\n atom: true,\n selectable: false,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n title: {\n default: \"\",\n },\n },\n parseDOM: [\n {\n tag: \"section-item\",\n },\n ],\n },\n markSet: [],\n groups: [\"sectionItem\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n title: {\n hasDefault: true,\n default: \"\",\n },\n },\n defaultAttrs: {\n id: null,\n title: \"\",\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n sectionItemColumn: {\n name: \"sectionItemColumn\",\n spec: {\n content: \"block+\",\n group: \"sectionItemColumn\",\n atom: true,\n selectable: false,\n draggable: false,\n isolating: true,\n attrs: {\n id: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: \"section-item-column\",\n },\n ],\n },\n markSet: [],\n groups: [\"sectionItemColumn\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n },\n defaultAttrs: {\n id: null,\n },\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n doc: {\n name: \"doc\",\n spec: {\n content: \"(block|section)+\",\n },\n markSet: [],\n groups: [],\n attrs: {},\n defaultAttrs: {},\n contentMatch: {\n validEnd: false,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n callout: {\n name: \"callout\",\n spec: {\n content: \"inline*\",\n group: \"block topLevel\",\n draggable: true,\n defining: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: \"io.supernova.block.callout\",\n },\n variantId: {\n default: \"default\",\n },\n type: {\n default: \"neutral\",\n },\n },\n parseDOM: [\n {\n tag: \"callout\",\n },\n ],\n },\n markSet: null,\n groups: [\"block\", \"topLevel\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: \"io.supernova.block.callout\",\n },\n variantId: {\n hasDefault: true,\n default: \"default\",\n },\n type: {\n hasDefault: true,\n default: \"neutral\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: \"io.supernova.block.callout\",\n variantId: \"default\",\n type: \"neutral\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: true,\n isBlock: true,\n isText: false,\n },\n blockNode: {\n name: \"blockNode\",\n spec: {\n group: \"block\",\n atom: true,\n attrs: {\n id: {\n default: null,\n },\n definitionId: {\n default: null,\n },\n variantId: {\n default: null,\n },\n columns: {\n default: 1,\n },\n items: {\n default: \"[]\",\n },\n },\n parseDOM: [\n {\n tag: \"block-node\",\n },\n ],\n },\n markSet: [],\n groups: [\"block\"],\n attrs: {\n id: {\n hasDefault: true,\n default: null,\n },\n definitionId: {\n hasDefault: true,\n default: null,\n },\n variantId: {\n hasDefault: true,\n default: null,\n },\n columns: {\n hasDefault: true,\n default: 1,\n },\n items: {\n hasDefault: true,\n default: \"[]\",\n },\n },\n defaultAttrs: {\n id: null,\n definitionId: null,\n variantId: null,\n columns: 1,\n items: \"[]\",\n },\n contentMatch: {\n validEnd: true,\n wrapCache: [],\n },\n inlineContent: false,\n isBlock: true,\n isText: false,\n },\n },\n marks: {\n link: {\n name: \"link\",\n rank: 0,\n spec: {\n inclusive: true,\n attrs: {\n href: {\n default: null,\n },\n target: {\n default: \"_blank\",\n },\n rel: {\n default: \"noopener noreferrer nofollow\",\n },\n class: {\n default: null,\n },\n itemId: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'a[href]:not([href *= \"javascript:\" i])',\n },\n ],\n },\n attrs: {\n href: {\n hasDefault: true,\n default: null,\n },\n target: {\n hasDefault: true,\n default: \"_blank\",\n },\n rel: {\n hasDefault: true,\n default: \"noopener noreferrer nofollow\",\n },\n class: {\n hasDefault: true,\n default: null,\n },\n itemId: {\n hasDefault: true,\n default: null,\n },\n },\n instance: {\n type: \"link\",\n attrs: {\n href: null,\n target: \"_blank\",\n rel: \"noopener noreferrer nofollow\",\n class: null,\n itemId: null,\n },\n },\n },\n bold: {\n name: \"bold\",\n rank: 1,\n spec: {\n parseDOM: [\n {\n tag: \"strong\",\n },\n {\n tag: \"b\",\n },\n {\n style: \"font-weight\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"bold\",\n },\n },\n code: {\n name: \"code\",\n rank: 2,\n spec: {\n excludes: \"_\",\n code: true,\n parseDOM: [\n {\n tag: \"code\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"code\",\n },\n },\n italic: {\n name: \"italic\",\n rank: 3,\n spec: {\n parseDOM: [\n {\n tag: \"em\",\n },\n {\n tag: \"i\",\n },\n {\n style: \"font-style=italic\",\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"italic\",\n },\n },\n strike: {\n name: \"strike\",\n rank: 4,\n spec: {\n parseDOM: [\n {\n tag: \"s\",\n },\n {\n tag: \"del\",\n },\n {\n tag: \"strike\",\n },\n {\n style: \"text-decoration\",\n consuming: false,\n },\n ],\n },\n attrs: {},\n instance: {\n type: \"strike\",\n },\n },\n },\n} as const;\n\nexport const pmSchema = new Schema(newSchema);\n","import { PageBlockEditorModel } from \"./model/block\";\nimport {\n PageBlockDefinition,\n PageBlockDefinitionPropertyType,\n PageBlockItemV2,\n PageBlockText,\n} from \"@supernova-studio/model\";\n\nexport const SDKBlockParsingUtils = {\n singleBlockItem(block: PageBlockEditorModel) {\n if (!block.data.items.length) throw new Error(`Block ${block.id} has no items`);\n if (block.data.items.length > 1) throw new Error(`Block ${block.id} has more than 1 item`);\n\n return block.data.items[0];\n },\n\n richTextPropertyValue(item: PageBlockItemV2, propertyKey: string) {\n const objectValue = this.objectPropertyValue(item, propertyKey);\n const richText = PageBlockText.parse(objectValue);\n\n return richText;\n },\n\n objectPropertyValue(item: PageBlockItemV2, propertyKey: string) {\n const value = this.propertyValue(item, propertyKey);\n\n if (typeof value !== \"object\") {\n throw new Error(`Value for property ${propertyKey} is expected to be an object, but instead is ${typeof value}`);\n }\n\n return value;\n },\n\n propertyValue(item: PageBlockItemV2, propertyKey: string) {\n const value = this.safePropertyValue(item, propertyKey);\n if (!value) throw new Error(`Property ${propertyKey} is not defined on block item`);\n\n return value;\n },\n\n safePropertyValue(item: PageBlockItemV2, propertyKey: string) {\n return item.props[propertyKey] ?? undefined;\n },\n};\n\nexport const BlockDefinitionUtils = {\n firstRichTextProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === PageBlockDefinitionPropertyType.richText);\n if (property) return property;\n return undefined;\n },\n\n firstTableProperty(definition: PageBlockDefinition) {\n const property = definition.item.properties.find(p => p.type === PageBlockDefinitionPropertyType.table);\n if (property) return property;\n return undefined;\n },\n\n richTextProperty(definition: PageBlockDefinition, propertyKey: string) {\n return this.property(definition, propertyKey, PageBlockDefinitionPropertyType.richText);\n },\n\n property(\n definition: PageBlockDefinition,\n propertyKey: string,\n expectedPropertyType?: PageBlockDefinitionPropertyType\n ) {\n const property = definition.item.properties.find(p => p.id === propertyKey);\n if (!property) {\n throw new Error(`Definition ${definition.id} doesn't contain property ${propertyKey}`);\n }\n\n if (expectedPropertyType && property.type !== expectedPropertyType) {\n throw new Error(\n `Property ${propertyKey} of definition ${definition.id} expected to be ${expectedPropertyType} but was ${property.type}`\n );\n }\n\n return property;\n },\n};\n","import * as Y from \"yjs\";\nimport {\n PageBlockDefinition,\n PageBlockDefinitionProperty,\n PageBlockItemV2,\n PageBlockText,\n PageBlockTextSpan,\n PageBlockTextSpanAttribute,\n PageBlockDefinitionRichTextPropertyStyle,\n} from \"@supernova-studio/model\";\nimport { PageBlockEditorModel } from \"./model/block\";\nimport {\n ProsemirrorBlockItem,\n ProsemirrorBlockItemPropertyValue,\n ProsemirrorNode,\n ProsemirrorMark,\n} from \"./prosemirror/types\";\nimport { BlockDefinitionUtils, SDKBlockParsingUtils } from \"./utils\";\nimport { DocumentationPageEditorModel } from \"./model\";\nimport { prosemirrorJSONToYXmlFragment } from \"y-prosemirror\";\nimport { pmSchema } from \"./prosemirror\";\n\ntype Input = {\n block: PageBlockEditorModel;\n definition: PageBlockDefinition;\n richTextProperty: PageBlockDefinitionProperty;\n};\n\ntype InputWithValue = Input & {\n richTextPropertyValue: PageBlockText;\n};\n\nexport function pageToYXmlFragment(\n page: DocumentationPageEditorModel,\n definitions: PageBlockDefinition[],\n fragment: Y.XmlFragment\n): Y.XmlFragment {\n const doc = pageToProsemirrorDoc(page, definitions);\n return prosemirrorJSONToYXmlFragment(pmSchema, doc, fragment);\n}\n\nexport function pageToProsemirrorDoc(\n page: DocumentationPageEditorModel,\n definitions: PageBlockDefinition[]\n): ProsemirrorNode {\n return {\n type: \"doc\",\n content: page.blocks\n .map(b => {\n const definition = blockDefinitionForBlock(b, definitions);\n return blockToProsemirrorNode(b, definition);\n })\n .filter(nonNullFilter),\n };\n}\n\nexport function blockDefinitionForBlock(block: PageBlockEditorModel, definitions: PageBlockDefinition[]) {\n const definition = definitions.find(d => d.id === block.data.packageId);\n if (!definition) throw new Error(`Could not find definition for ${block.id} (${block.data.packageId})`);\n\n return definition;\n}\n\nexport function blockToProsemirrorNode(\n block: PageBlockEditorModel,\n definition: PageBlockDefinition\n): ProsemirrorNode | null {\n const richTextProperty = BlockDefinitionUtils.firstRichTextProperty(definition);\n\n if (richTextProperty) {\n return serializeAsRichTextBlock({\n block: block,\n definition: definition,\n richTextProperty: richTextProperty,\n });\n }\n\n return serializeAsCustomBlock(block, definition);\n}\n\nexport function serializeAsRichTextBlock(input: Input): ProsemirrorNode {\n const { block, definition, richTextProperty } = input;\n\n const blockItem = SDKBlockParsingUtils.singleBlockItem(block);\n const textPropertyValue = SDKBlockParsingUtils.richTextPropertyValue(blockItem, richTextProperty.id);\n\n const enrichedInput: InputWithValue = { ...input, richTextPropertyValue: textPropertyValue };\n\n const style = richTextProperty.options?.style ?? PageBlockDefinitionRichTextPropertyStyle.default;\n\n switch (style) {\n case PageBlockDefinitionRichTextPropertyStyle.callout:\n return serializeAsCallout(enrichedInput);\n case PageBlockDefinitionRichTextPropertyStyle.default:\n return serializeAsParagraph(enrichedInput);\n\n case PageBlockDefinitionRichTextPropertyStyle.quote:\n return serializeAsBlockquote(enrichedInput);\n\n case PageBlockDefinitionRichTextPropertyStyle.title1:\n case PageBlockDefinitionRichTextPropertyStyle.title2:\n case PageBlockDefinitionRichTextPropertyStyle.title3:\n case PageBlockDefinitionRichTextPropertyStyle.title4:\n case PageBlockDefinitionRichTextPropertyStyle.title5:\n return serializeAsHeading(enrichedInput);\n\n // Todo: verify\n case PageBlockDefinitionRichTextPropertyStyle.ol:\n case PageBlockDefinitionRichTextPropertyStyle.ul:\n throw new Error(`Not allowed!`);\n }\n}\n\n//\n// Blocks\n//\n\nfunction serializeAsParagraph(input: InputWithValue): ProsemirrorNode {\n return {\n type: \"paragraph\",\n attrs: serializeBlockNodeAttributes(input),\n content: serializeRichText(input.richTextPropertyValue),\n };\n}\n\nfunction serializeAsHeading(input: InputWithValue): ProsemirrorNode {\n return {\n type: \"heading\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n level: richTextHeadingLevel(input.richTextProperty),\n },\n content: serializeRichText(input.richTextPropertyValue),\n };\n}\n\nfunction serializeAsBlockquote(input: InputWithValue): ProsemirrorNode {\n return {\n type: \"blockquote\",\n attrs: serializeBlockNodeAttributes(input),\n content: serializeRichText(input.richTextPropertyValue),\n };\n}\n\nfunction serializeAsCallout(input: InputWithValue): ProsemirrorNode {\n return {\n type: \"callout\",\n attrs: {\n ...serializeBlockNodeAttributes(input),\n\n // TODO Docs: type\n type: \"neutral\",\n },\n content: serializeRichText(input.richTextPropertyValue),\n };\n}\n\n//\n// Attributes\n//\n\nfunction serializeBlockNodeAttributes(input: InputWithValue) {\n const { block } = input;\n\n return {\n id: block.id,\n definitionId: block.data.packageId,\n ...(input.block.data.variantId && { variantId: input.block.data.variantId }),\n };\n}\n\nfunction richTextHeadingLevel(property: PageBlockDefinitionProperty): number | undefined {\n const style = property.options?.style;\n if (!style) return undefined;\n\n switch (style) {\n case PageBlockDefinitionRichTextPropertyStyle.title1:\n return 1;\n case PageBlockDefinitionRichTextPropertyStyle.title2:\n return 2;\n case PageBlockDefinitionRichTextPropertyStyle.title3:\n return 3;\n case PageBlockDefinitionRichTextPropertyStyle.title4:\n return 4;\n case PageBlockDefinitionRichTextPropertyStyle.title5:\n return 5;\n\n case PageBlockDefinitionRichTextPropertyStyle.ol:\n case PageBlockDefinitionRichTextPropertyStyle.ul:\n case PageBlockDefinitionRichTextPropertyStyle.callout:\n case PageBlockDefinitionRichTextPropertyStyle.default:\n case PageBlockDefinitionRichTextPropertyStyle.quote:\n return undefined;\n }\n}\n\n//\n// Rich text\n//\n\nfunction serializeRichText(richText: PageBlockText) {\n return richText.spans.map(serializeTextSpan).flat();\n}\n\nfunction serializeTextSpan(span: PageBlockTextSpan): ProsemirrorNode[] {\n const marks = span.attributes.map(serializeTextSpanAttribute);\n\n const textParts = span.text.split(\"\\n\");\n const interspersed: ProsemirrorNode[] = [\n {\n type: \"text\",\n text: textParts[0],\n marks: marks,\n },\n ];\n\n for (let i = 1; i < textParts.length; i++) {\n interspersed.push(\n {\n type: \"hardBreak\",\n },\n {\n type: \"text\",\n text: textParts[i],\n marks: marks,\n }\n );\n }\n\n return interspersed;\n}\n\nfunction serializeTextSpanAttribute(spanAttribute: PageBlockTextSpanAttribute): ProsemirrorMark {\n switch (spanAttribute.type) {\n case \"Bold\":\n return { type: \"bold\", attrs: {} };\n case \"Italic\":\n return { type: \"italic\", attrs: {} };\n case \"Strikethrough\":\n return { type: \"strikethrough\", attrs: {} };\n case \"Code\":\n return { type: \"code\", attrs: {} };\n case \"Link\":\n return {\n type: \"link\",\n attrs: {\n itemId: spanAttribute.documentationItemId,\n href: spanAttribute.link,\n target: spanAttribute.openInNewWindow ? \"_blank\" : \"_self\",\n rel: \"noopener noreferrer nofollow\",\n class: null,\n },\n };\n }\n}\n\nexport function serializeAsCustomBlock(block: PageBlockEditorModel, definition: PageBlockDefinition): ProsemirrorNode {\n const items = block.data.items.map(i => serializeItem(i, block, definition));\n\n return {\n type: \"blockNode\",\n attrs: {\n id: block.id,\n definitionId: block.data.packageId,\n variantId: \"default\",\n columns: 1,\n items: JSON.stringify(items),\n\n // TODO Docs: variant, columns\n },\n };\n}\n\nfunction serializeItem(\n item: PageBlockItemV2,\n block: PageBlockEditorModel,\n definition: PageBlockDefinition\n): ProsemirrorBlockItem {\n const result: ProsemirrorBlockItem = {\n properties: [],\n };\n\n for (const property of definition.item.properties) {\n const serializedValue = serializePropertyValue(item, property);\n serializedValue && result.properties.push(serializedValue);\n }\n\n return result;\n}\n\nfunction serializePropertyValue(\n item: PageBlockItemV2,\n property: PageBlockDefinitionProperty\n): ProsemirrorBlockItemPropertyValue | undefined {\n const value = item.props[property.id] ?? undefined;\n if (!value) {\n return undefined;\n }\n\n // TODO Docs: actual property serialization\n\n const result: ProsemirrorBlockItemPropertyValue = {\n id: property.id,\n data: {},\n };\n\n if (typeof value === \"string\") {\n result.data.value = value;\n }\n\n return result;\n}\n\nfunction nonNullFilter<T>(item: T | null): item is T {\n return !!item;\n}\n\n// function serializePropertyValue(item: SDKBlockItem, property: SDKBlockDefinitionProperty) {\n// switch (property.type) {\n// case SDK.DocsBlockItemPropertyType.text: return value as string;\n\n// case SDK.DocsBlockItemPropertyType.richText: return {}\n\n// case SDK.DocsBlockItemPropertyType.boolean: return {}\n// case SDK.DocsBlockItemPropertyType.number: return {}\n// case SDK.DocsBlockItemPropertyType.singleSelect: return {}\n// case SDK.DocsBlockItemPropertyType.multiSelect: return {}\n// case SDK.DocsBlockItemPropertyType.image: return {}\n// case SDK.DocsBlockItemPropertyType.token: return {}\n// case SDK.DocsBlockItemPropertyType.tokenType: return {}\n// case SDK.DocsBlockItemPropertyType.tokenProperty: return {}\n// case SDK.DocsBlockItemPropertyType.component: return {}\n// case SDK.DocsBlockItemPropertyType.componentProperty: return {}\n// case SDK.DocsBlockItemPropertyType.asset: return {}\n// case SDK.DocsBlockItemPropertyType.assetProperty: return {}\n// case SDK.DocsBlockItemPropertyType.page: return {}\n// case SDK.DocsBlockItemPropertyType.pageProperty: return {}\n// case SDK.DocsBlockItemPropertyType.embedURL: return {}\n// case SDK.DocsBlockItemPropertyType.embedFrame: return {}\n// case SDK.DocsBlockItemPropertyType.markdown: return {}\n// case SDK.DocsBlockItemPropertyType.code: return {}\n// case SDK.DocsBlockItemPropertyType.codeSandbox: return {}\n// case SDK.DocsBlockItemPropertyType.table: return {}\n// case SDK.DocsBlockItemPropertyType.divider: return {}\n// case SDK.DocsBlockItemPropertyType.storybook: return {}\n// }\n// }\n\n// richText = \"RichText\",\n// text = \"Text\",\n// boolean = \"Boolean\",\n// number = \"Number\",\n// singleSelect = \"SingleSelect\",\n// multiSelect = \"MultiSelect\",\n// image = \"Image\",\n// token = \"Token\",\n// tokenType = \"TokenType\",\n// tokenProperty = \"TokenProperty\",\n// component = \"Component\",\n// componentProperty = \"ComponentProperty\",\n// asset = \"Asset\",\n// assetProperty = \"AssetProperty\",\n// page = \"Page\",\n// pageProperty = \"PageProperty\",\n// embedURL = \"EmbedURL\",\n// embedFrame = \"EmbedFrame\",\n// markdown = \"Markdown\",\n// code = \"Code\",\n// codeSandbox = \"CodeSandbox\",\n// table = \"Table\",\n// divider = \"Divider\",\n// storybook = \"Storybook\"\n","import * as Y from \"yjs\";\nimport { ProsemirrorNode, ProsemirrorMark } from \"./prosemirror/types\";\nimport {\n PageBlockDefinition,\n PageBlockText,\n PageBlockTextSpan,\n PageBlockTextSpanAttribute,\n PageBlockDefinitionProperty,\n} from \"@supernova-studio/model\";\nimport { PageBlockEditorModel } from \"./model/block\";\nimport { DocumentationPageEditorModel } from \"./model/page\";\nimport { BlockDefinitionUtils } from \"./utils\";\nimport { yXmlFragmentToProsemirrorJSON } from \"y-prosemirror\";\n\nexport function yXmlFragmetToPage(\n fragment: Y.XmlFragment,\n definitions: PageBlockDefinition[]\n): DocumentationPageEditorModel {\n const prosemirrorJson = yXmlFragmentToProsemirrorJSON(fragment) as ProsemirrorNode;\n return prosemirrorDocToPage(prosemirrorJson, definitions);\n}\n\nexport function prosemirrorDocToPage(\n prosemirrorDoc: ProsemirrorNode,\n definitions: PageBlockDefinition[]\n): DocumentationPageEditorModel {\n const definitionsById = mapByUnique(definitions, d => d.id);\n\n return {\n blocks: (prosemirrorDoc.content ?? [])\n .map(prosemirrorNode => {\n const definitionId = prosemirrorNode.attrs?.definitionId;\n if (!definitionId) throw new Error(`Node is missing defintion id`);\n if (typeof definitionId !== \"string\")\n throw new Error(`Definition id is ${typeof definitionId}, has to be string`);\n\n const definition = definitionsById.get(definitionId);\n if (!definition) throw new Error(`Definition by id ${definitionId} doesn't exist`);\n\n return prosemirrorNodeToBlock(prosemirrorNode, definition);\n })\n .filter(nonNullFilter),\n };\n}\n\nexport function prosemirrorNodeToBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n const richTextProperty = BlockDefinitionUtils.firstRichTextProperty(definition);\n if (richTextProperty) {\n return parseAsRichText(prosemirrorNode, definition, richTextProperty);\n }\n\n return parseAsCustomBlock(prosemirrorNode, definition);\n}\n\nfunction parseAsRichText(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition,\n property: PageBlockDefinitionProperty\n): PageBlockEditorModel {\n const id = parseProsemirrorBlockAttribute(prosemirrorNode, \"id\");\n const variantId = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, \"variantId\");\n\n return {\n // TODO Artem: indent\n id: id,\n data: {\n packageId: definition.id,\n indentLevel: 0,\n variantId: variantId,\n items: [\n {\n props: {\n [property.id]: parseRichText(prosemirrorNode.content ?? []),\n },\n },\n ],\n },\n };\n}\n\nfunction parseRichText(spans: ProsemirrorNode[]): PageBlockText {\n return {\n spans: spans.map(parseRichTextSpan).filter(nonNullFilter),\n };\n}\n\nfunction parseRichTextSpan(span: ProsemirrorNode): PageBlockTextSpan | null {\n if (span.type !== \"text\" || !span.text) return null;\n\n const marks = span.marks ?? [];\n\n return {\n text: span.text,\n attributes: marks.map(parseRichTextAttribute).filter(nonNullFilter),\n };\n}\n\nfunction parseRichTextAttribute(mark: ProsemirrorMark): PageBlockTextSpanAttribute | null {\n switch (mark.type) {\n case \"bold\":\n return { type: \"Bold\" };\n case \"italic\":\n return { type: \"Italic\" };\n case \"strikethrough\":\n return { type: \"Strikethrough\" };\n case \"code\":\n return { type: \"Code\" };\n case \"link\":\n const itemId = mark.attrs?.itemId;\n const href = mark.attrs?.href;\n\n return {\n type: \"Link\",\n openInNewWindow: mark.attrs?.target !== \"_self\",\n documentationItemId: itemId,\n link: href,\n };\n }\n\n return null;\n}\n\n//\n// Custom block\n//\n\nfunction parseAsCustomBlock(\n prosemirrorNode: ProsemirrorNode,\n definition: PageBlockDefinition\n): PageBlockEditorModel | null {\n return null;\n}\n\n//\n// Attributes\n//\n\nfunction parseProsemirrorBlockAttribute(prosemirrorNode: ProsemirrorNode, attributeName: string) {\n const attributeValue = parseProsemirrorOptionalBlockAttribute(prosemirrorNode, attributeName); //prosemirrorNode.attrs?.[attributeName];\n if (!attributeValue) {\n throw new Error(`Attribute ${attributeName} was not defined`);\n }\n\n return attributeValue;\n}\n\nfunction parseProsemirrorOptionalBlockAttribute(prosemirrorNode: ProsemirrorNode, attributeName: string) {\n return prosemirrorNode.attrs?.[attributeName] ?? undefined;\n}\n\n//\n// Utils\n//\n\nfunction nonNullFilter<T>(item: T | null): item is T {\n return item !== null;\n}\n\nfunction mapByUnique<V, K>(items: V[], keyFn: (item: V) => K): Map<K, V> {\n const result = new Map<K, V>();\n for (const item of items) {\n result.set(keyFn(item), item);\n }\n return result;\n}\n"]}