@baseplate-dev/plugin-auth 0.6.3 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/dist/auth/core/common.d.ts.map +1 -1
- package/dist/auth/core/common.js +2 -3
- package/dist/auth/core/common.js.map +1 -1
- package/dist/auth/core/components/auth-definition-editor.d.ts.map +1 -1
- package/dist/auth/core/components/auth-definition-editor.js +6 -2
- package/dist/auth/core/components/auth-definition-editor.js.map +1 -1
- package/dist/auth/core/node.d.ts.map +1 -1
- package/dist/auth/core/node.js +1 -0
- package/dist/auth/core/node.js.map +1 -1
- package/dist/auth/core/schema/migrations.d.ts +3 -0
- package/dist/auth/core/schema/migrations.d.ts.map +1 -0
- package/dist/auth/core/schema/migrations.js +54 -0
- package/dist/auth/core/schema/migrations.js.map +1 -0
- package/dist/auth/core/schema/plugin-definition.d.ts +5 -0
- package/dist/auth/core/schema/plugin-definition.d.ts.map +1 -1
- package/dist/auth/core/schema/plugin-definition.js +4 -0
- package/dist/auth/core/schema/plugin-definition.js.map +1 -1
- package/dist/auth/core/schema/roles/constants.d.ts.map +1 -1
- package/dist/auth/core/schema/roles/constants.js +9 -0
- package/dist/auth/core/schema/roles/constants.js.map +1 -1
- package/dist/auth/core/schema/roles/schema.d.ts +8 -0
- package/dist/auth/core/schema/roles/schema.d.ts.map +1 -1
- package/dist/auth/core/schema/roles/schema.js +1 -0
- package/dist/auth/core/schema/roles/schema.js.map +1 -1
- package/dist/better-auth/admin/common.d.ts +5 -0
- package/dist/better-auth/admin/common.d.ts.map +1 -0
- package/dist/better-auth/admin/common.js +29 -0
- package/dist/better-auth/admin/common.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts +510 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.js +123 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts +510 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/index.js +9 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/index.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.d.ts +12 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.js +24 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts +260 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.js +41 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts +249 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.js +20 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/index.d.ts +2 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/index.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/index.js +2 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/index.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.d.ts +22 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js +78 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.tsx +162 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts +509 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.js +114 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts +510 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/index.js +9 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/index.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.d.ts +12 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.js +24 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts +260 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.js +41 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts +495 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.js +22 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/index.d.ts +2 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/index.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/index.js +2 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/index.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.d.ts +22 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js +89 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.tsx +171 -0
- package/dist/better-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.d.ts +244 -0
- package/dist/better-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.js +54 -0
- package/dist/better-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.js.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-roles-column/index.d.ts +2 -0
- package/dist/better-auth/admin/generators/admin-crud-roles-column/index.d.ts.map +1 -0
- package/dist/better-auth/admin/generators/admin-crud-roles-column/index.js +2 -0
- package/dist/better-auth/admin/generators/admin-crud-roles-column/index.js.map +1 -0
- package/dist/better-auth/admin/node.d.ts +5 -0
- package/dist/better-auth/admin/node.d.ts.map +1 -0
- package/dist/better-auth/admin/node.js +57 -0
- package/dist/better-auth/admin/node.js.map +1 -0
- package/dist/better-auth/admin/schema/manage-role-action.d.ts +12 -0
- package/dist/better-auth/admin/schema/manage-role-action.d.ts.map +1 -0
- package/dist/better-auth/admin/schema/manage-role-action.js +6 -0
- package/dist/better-auth/admin/schema/manage-role-action.js.map +1 -0
- package/dist/better-auth/admin/schema/reset-password-action.d.ts +12 -0
- package/dist/better-auth/admin/schema/reset-password-action.d.ts.map +1 -0
- package/dist/better-auth/admin/schema/reset-password-action.js +6 -0
- package/dist/better-auth/admin/schema/reset-password-action.js.map +1 -0
- package/dist/better-auth/admin/schema/roles-column.d.ts +9 -0
- package/dist/better-auth/admin/schema/roles-column.d.ts.map +1 -0
- package/dist/better-auth/admin/schema/roles-column.js +6 -0
- package/dist/better-auth/admin/schema/roles-column.js.map +1 -0
- package/dist/better-auth/admin/web.d.ts +5 -0
- package/dist/better-auth/admin/web.d.ts.map +1 -0
- package/dist/better-auth/admin/web.js +39 -0
- package/dist/better-auth/admin/web.js.map +1 -0
- package/dist/better-auth/core/common.d.ts.map +1 -1
- package/dist/better-auth/core/common.js +5 -2
- package/dist/better-auth/core/common.js.map +1 -1
- package/dist/better-auth/core/components/better-auth-definition-editor.d.ts.map +1 -1
- package/dist/better-auth/core/components/better-auth-definition-editor.js +17 -5
- package/dist/better-auth/core/components/better-auth-definition-editor.js.map +1 -1
- package/dist/better-auth/core/node.d.ts.map +1 -1
- package/dist/better-auth/core/node.js +21 -4
- package/dist/better-auth/core/node.js.map +1 -1
- package/dist/better-auth/core/schema/models.d.ts +1 -1
- package/dist/better-auth/core/schema/models.d.ts.map +1 -1
- package/dist/better-auth/core/schema/models.js +25 -10
- package/dist/better-auth/core/schema/models.js.map +1 -1
- package/dist/better-auth/core/schema/plugin-definition.d.ts +4 -1
- package/dist/better-auth/core/schema/plugin-definition.d.ts.map +1 -1
- package/dist/better-auth/core/schema/plugin-definition.js +7 -2
- package/dist/better-auth/core/schema/plugin-definition.js.map +1 -1
- package/dist/better-auth/core/schema/schema-issue-checker.d.ts +3 -0
- package/dist/better-auth/core/schema/schema-issue-checker.d.ts.map +1 -0
- package/dist/better-auth/core/schema/schema-issue-checker.js +21 -0
- package/dist/better-auth/core/schema/schema-issue-checker.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/better-auth-admin-module.generator.d.ts +72 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/better-auth-admin-module.generator.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/better-auth-admin-module.generator.js +56 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/better-auth-admin-module.generator.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/index.d.ts +109 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/index.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/index.js +11 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/index.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-paths.d.ts +13 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-paths.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-paths.js +25 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-paths.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-renderers.d.ts +55 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-renderers.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-renderers.js +57 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-renderers.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/ts-import-providers.d.ts +21 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/ts-import-providers.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/ts-import-providers.js +30 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/ts-import-providers.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/typed-templates.d.ts +46 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/typed-templates.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/typed-templates.js +33 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/typed-templates.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/index.d.ts +4 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/index.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/index.js +3 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/index.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/templates/module/schema/admin-auth.mutations.ts +48 -0
- package/dist/better-auth/generators/fastify/better-auth-admin-module/templates/module/services/admin-auth.service.ts +106 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/better-auth-email-templates.generator.d.ts +43 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/better-auth-email-templates.generator.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/better-auth-email-templates.generator.js +48 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/better-auth-email-templates.generator.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/index.d.ts +96 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/index.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/index.js +9 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/index.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-paths.d.ts +14 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-paths.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-paths.js +26 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-paths.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-renderers.d.ts +41 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-renderers.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-renderers.js +59 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-renderers.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/typed-templates.d.ts +60 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/typed-templates.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/typed-templates.js +42 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/typed-templates.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/index.d.ts +2 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/index.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/index.js +2 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/index.js.map +1 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/templates/src/emails/auth/account-verification.email.tsx +55 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/templates/src/emails/auth/password-changed.email.tsx +44 -0
- package/dist/better-auth/generators/fastify/better-auth-email-templates/templates/src/emails/auth/password-reset.email.tsx +55 -0
- package/dist/better-auth/generators/fastify/better-auth-module/better-auth-module.generator.d.ts +26 -4
- package/dist/better-auth/generators/fastify/better-auth-module/better-auth-module.generator.d.ts.map +1 -1
- package/dist/better-auth/generators/fastify/better-auth-module/better-auth-module.generator.js +14 -3
- package/dist/better-auth/generators/fastify/better-auth-module/better-auth-module.generator.js.map +1 -1
- package/dist/better-auth/generators/fastify/better-auth-module/generated/index.d.ts +42 -0
- package/dist/better-auth/generators/fastify/better-auth-module/generated/index.d.ts.map +1 -1
- package/dist/better-auth/generators/fastify/better-auth-module/generated/template-renderers.d.ts +20 -0
- package/dist/better-auth/generators/fastify/better-auth-module/generated/template-renderers.d.ts.map +1 -1
- package/dist/better-auth/generators/fastify/better-auth-module/generated/template-renderers.js +4 -1
- package/dist/better-auth/generators/fastify/better-auth-module/generated/template-renderers.js.map +1 -1
- package/dist/better-auth/generators/fastify/better-auth-module/generated/typed-templates.d.ts +22 -0
- package/dist/better-auth/generators/fastify/better-auth-module/generated/typed-templates.d.ts.map +1 -1
- package/dist/better-auth/generators/fastify/better-auth-module/generated/typed-templates.js +7 -1
- package/dist/better-auth/generators/fastify/better-auth-module/generated/typed-templates.js.map +1 -1
- package/dist/better-auth/generators/fastify/better-auth-module/templates/module/services/auth.ts +25 -1
- package/dist/better-auth/generators/fastify/index.d.ts +3 -0
- package/dist/better-auth/generators/fastify/index.d.ts.map +1 -1
- package/dist/better-auth/generators/fastify/index.js +3 -0
- package/dist/better-auth/generators/fastify/index.js.map +1 -1
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/index.d.ts +66 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/index.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/index.js +9 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/index.js.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-paths.d.ts +12 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-paths.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-paths.js +24 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-paths.js.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-renderers.d.ts +38 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-renderers.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-renderers.js +43 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-renderers.js.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/typed-templates.d.ts +27 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/typed-templates.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/typed-templates.js +18 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/generated/typed-templates.js.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/index.d.ts +2 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/index.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/index.js +2 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/index.js.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/seed-initial-user.generator.d.ts +49 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/seed-initial-user.generator.d.ts.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/seed-initial-user.generator.js +60 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/seed-initial-user.generator.js.map +1 -0
- package/dist/better-auth/generators/fastify/seed-initial-user/templates/src/prisma/seed-initial-user.ts +63 -0
- package/dist/better-auth/generators/react/better-auth-pages/better-auth-pages.generator.d.ts +12 -1
- package/dist/better-auth/generators/react/better-auth-pages/better-auth-pages.generator.d.ts.map +1 -1
- package/dist/better-auth/generators/react/better-auth-pages/generated/index.d.ts +771 -3
- package/dist/better-auth/generators/react/better-auth-pages/generated/index.d.ts.map +1 -1
- package/dist/better-auth/generators/react/better-auth-pages/generated/template-paths.d.ts +3 -0
- package/dist/better-auth/generators/react/better-auth-pages/generated/template-paths.d.ts.map +1 -1
- package/dist/better-auth/generators/react/better-auth-pages/generated/template-paths.js +3 -0
- package/dist/better-auth/generators/react/better-auth-pages/generated/template-paths.js.map +1 -1
- package/dist/better-auth/generators/react/better-auth-pages/generated/template-renderers.d.ts +12 -1
- package/dist/better-auth/generators/react/better-auth-pages/generated/template-renderers.d.ts.map +1 -1
- package/dist/better-auth/generators/react/better-auth-pages/generated/typed-templates.d.ts +1543 -29
- package/dist/better-auth/generators/react/better-auth-pages/generated/typed-templates.d.ts.map +1 -1
- package/dist/better-auth/generators/react/better-auth-pages/generated/typed-templates.js +49 -1
- package/dist/better-auth/generators/react/better-auth-pages/generated/typed-templates.js.map +1 -1
- package/dist/better-auth/generators/react/better-auth-pages/templates/routes/forgot-password.tsx +133 -0
- package/dist/better-auth/generators/react/better-auth-pages/templates/routes/login.tsx +9 -1
- package/dist/better-auth/generators/react/better-auth-pages/templates/routes/register.tsx +5 -1
- package/dist/better-auth/generators/react/better-auth-pages/templates/routes/reset-password.tsx +177 -0
- package/dist/better-auth/generators/react/better-auth-pages/templates/routes/verify-email.tsx +109 -0
- package/dist/better-auth/generators/react/react-better-auth/generated/index.d.ts +24 -2
- package/dist/better-auth/generators/react/react-better-auth/generated/index.d.ts.map +1 -1
- package/dist/better-auth/generators/react/react-better-auth/generated/template-renderers.d.ts +12 -1
- package/dist/better-auth/generators/react/react-better-auth/generated/template-renderers.d.ts.map +1 -1
- package/dist/better-auth/generators/react/react-better-auth/generated/typed-templates.d.ts +12 -1
- package/dist/better-auth/generators/react/react-better-auth/generated/typed-templates.d.ts.map +1 -1
- package/dist/better-auth/generators/react/react-better-auth/react-better-auth.generator.d.ts +12 -1
- package/dist/better-auth/generators/react/react-better-auth/react-better-auth.generator.d.ts.map +1 -1
- package/dist/better-auth/plugin.json +1 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts +24 -2
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts +24 -2
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts +12 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts +12 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js +1 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.tsx +1 -3
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts +24 -2
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts +24 -2
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts +12 -1
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts +24 -2
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js +1 -1
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js.map +1 -1
- package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.tsx +1 -1
- package/dist/local-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.d.ts +12 -1
- package/dist/local-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.d.ts.map +1 -1
- package/dist/local-auth/admin/node.js +1 -1
- package/dist/local-auth/admin/node.js.map +1 -1
- package/dist/local-auth/core/common.d.ts.map +1 -1
- package/dist/local-auth/core/common.js +5 -2
- package/dist/local-auth/core/common.js.map +1 -1
- package/dist/local-auth/core/components/local-auth-definition-editor.d.ts.map +1 -1
- package/dist/local-auth/core/components/local-auth-definition-editor.js +9 -5
- package/dist/local-auth/core/components/local-auth-definition-editor.js.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/auth-email-password.generator.d.ts +1 -0
- package/dist/local-auth/core/generators/auth-email-password/auth-email-password.generator.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/auth-email-password.generator.js +7 -1
- package/dist/local-auth/core/generators/auth-email-password/auth-email-password.generator.js.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/generated/index.d.ts +3 -1
- package/dist/local-auth/core/generators/auth-email-password/generated/index.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/generated/typed-templates.d.ts +6 -2
- package/dist/local-auth/core/generators/auth-email-password/generated/typed-templates.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/generated/typed-templates.js +1 -1
- package/dist/local-auth/core/generators/auth-email-password/generated/typed-templates.js.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/user-password.mutations.js +5 -1
- package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/user-password.mutations.js.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/user-password.mutations.ts +5 -1
- package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.d.ts +2 -0
- package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.js +4 -1
- package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.js.map +1 -1
- package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.ts +6 -1
- package/dist/local-auth/core/generators/auth-module/generated/index.d.ts +11 -0
- package/dist/local-auth/core/generators/auth-module/generated/index.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-module/generated/template-renderers.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-module/generated/template-renderers.js +1 -0
- package/dist/local-auth/core/generators/auth-module/generated/template-renderers.js.map +1 -1
- package/dist/local-auth/core/generators/auth-module/generated/typed-templates.d.ts +22 -0
- package/dist/local-auth/core/generators/auth-module/generated/typed-templates.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-module/generated/typed-templates.js +1 -0
- package/dist/local-auth/core/generators/auth-module/generated/typed-templates.js.map +1 -1
- package/dist/local-auth/core/generators/auth-module/templates/module/services/user-roles.service.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-module/templates/module/services/user-roles.service.js +8 -3
- package/dist/local-auth/core/generators/auth-module/templates/module/services/user-roles.service.js.map +1 -1
- package/dist/local-auth/core/generators/auth-module/templates/module/services/user-roles.service.ts +11 -4
- package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.d.ts +16 -2
- package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.js +37 -4
- package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.js.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/generated/index.d.ts +78 -10
- package/dist/local-auth/core/generators/auth-routes/generated/index.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.d.ts +12 -1
- package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.d.ts +120 -17
- package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.js +5 -2
- package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.js.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.js +1 -1
- package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.tsx +1 -1
- package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.js +3 -10
- package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.js.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.tsx +6 -10
- package/dist/local-auth/core/generators/react-session/generated/index.d.ts +24 -2
- package/dist/local-auth/core/generators/react-session/generated/index.d.ts.map +1 -1
- package/dist/local-auth/core/generators/react-session/generated/template-renderers.d.ts +12 -1
- package/dist/local-auth/core/generators/react-session/generated/template-renderers.d.ts.map +1 -1
- package/dist/local-auth/core/generators/react-session/generated/typed-templates.d.ts +24 -2
- package/dist/local-auth/core/generators/react-session/generated/typed-templates.d.ts.map +1 -1
- package/dist/local-auth/core/generators/react-session/react-session.generator.d.ts +12 -1
- package/dist/local-auth/core/generators/react-session/react-session.generator.d.ts.map +1 -1
- package/dist/local-auth/core/generators/seed-initial-user/generated/index.d.ts +0 -9
- package/dist/local-auth/core/generators/seed-initial-user/generated/index.d.ts.map +1 -1
- package/dist/local-auth/core/generators/seed-initial-user/generated/index.js +0 -2
- package/dist/local-auth/core/generators/seed-initial-user/generated/index.js.map +1 -1
- package/dist/local-auth/core/generators/seed-initial-user/generated/typed-templates.d.ts.map +1 -1
- package/dist/local-auth/core/generators/seed-initial-user/generated/typed-templates.js +0 -1
- package/dist/local-auth/core/generators/seed-initial-user/generated/typed-templates.js.map +1 -1
- package/dist/local-auth/core/generators/seed-initial-user/index.d.ts +0 -2
- package/dist/local-auth/core/generators/seed-initial-user/index.d.ts.map +1 -1
- package/dist/local-auth/core/generators/seed-initial-user/index.js +0 -1
- package/dist/local-auth/core/generators/seed-initial-user/index.js.map +1 -1
- package/dist/local-auth/core/node.d.ts.map +1 -1
- package/dist/local-auth/core/node.js +12 -5
- package/dist/local-auth/core/node.js.map +1 -1
- package/dist/local-auth/core/schema/models.d.ts +1 -1
- package/dist/local-auth/core/schema/models.d.ts.map +1 -1
- package/dist/local-auth/core/schema/models.js +25 -10
- package/dist/local-auth/core/schema/models.js.map +1 -1
- package/dist/local-auth/core/schema/plugin-definition.d.ts +2 -2
- package/dist/local-auth/core/schema/plugin-definition.d.ts.map +1 -1
- package/dist/local-auth/core/schema/plugin-definition.js +2 -5
- package/dist/local-auth/core/schema/plugin-definition.js.map +1 -1
- package/dist/local-auth/core/schema/schema-issue-checker.d.ts +3 -0
- package/dist/local-auth/core/schema/schema-issue-checker.d.ts.map +1 -0
- package/dist/local-auth/core/schema/schema-issue-checker.js +21 -0
- package/dist/local-auth/core/schema/schema-issue-checker.js.map +1 -0
- package/dist/local-auth/plugin.json +6 -1
- package/dist/placeholder-auth/core/schema/models.d.ts.map +1 -1
- package/dist/placeholder-auth/core/schema/models.js +17 -2
- package/dist/placeholder-auth/core/schema/models.js.map +1 -1
- package/dist/web/assets/__federation_expose_authCoreCommon-NPAy2Xu2.js +85 -0
- package/dist/web/assets/__federation_expose_authCoreCommon-NPAy2Xu2.js.map +1 -0
- package/dist/web/assets/{__federation_expose_authCoreWeb-BL_U7yuj.js → __federation_expose_authCoreWeb-D0AlXNml.js} +29 -9
- package/dist/web/assets/__federation_expose_authCoreWeb-D0AlXNml.js.map +1 -0
- package/dist/web/assets/__federation_expose_better-authAdminCommon-Bp8fb_BT.js +63 -0
- package/dist/web/assets/__federation_expose_better-authAdminCommon-Bp8fb_BT.js.map +1 -0
- package/dist/web/assets/__federation_expose_better-authAdminWeb-Dggf6fZk.js +41 -0
- package/dist/web/assets/__federation_expose_better-authAdminWeb-Dggf6fZk.js.map +1 -0
- package/dist/web/assets/__federation_expose_better-authCoreCommon-D3bQgHWh.js +54 -0
- package/dist/web/assets/__federation_expose_better-authCoreCommon-D3bQgHWh.js.map +1 -0
- package/dist/web/assets/__federation_expose_better-authCoreWeb-4VA_40fu.js +157 -0
- package/dist/web/assets/__federation_expose_better-authCoreWeb-4VA_40fu.js.map +1 -0
- package/dist/web/assets/{__federation_expose_local-authAdminCommon-LIsARRNU.js → __federation_expose_local-authAdminCommon-Bp8fb_BT.js} +2 -2
- package/dist/web/assets/{__federation_expose_local-authAdminCommon-LIsARRNU.js.map → __federation_expose_local-authAdminCommon-Bp8fb_BT.js.map} +1 -1
- package/dist/web/assets/{__federation_expose_local-authAdminWeb-DyYUDLm9.js → __federation_expose_local-authAdminWeb-BDyZDL1a.js} +2 -2
- package/dist/web/assets/{__federation_expose_local-authAdminWeb-DyYUDLm9.js.map → __federation_expose_local-authAdminWeb-BDyZDL1a.js.map} +1 -1
- package/dist/web/assets/__federation_expose_local-authCoreCommon-C3UyEu-M.js +54 -0
- package/dist/web/assets/__federation_expose_local-authCoreCommon-C3UyEu-M.js.map +1 -0
- package/dist/web/assets/__federation_expose_local-authCoreWeb-BYkl2IGk.js +167 -0
- package/dist/web/assets/__federation_expose_local-authCoreWeb-BYkl2IGk.js.map +1 -0
- package/dist/web/assets/{__federation_expose_placeholder-authCoreCommon-CtZXaDUc.js → __federation_expose_placeholder-authCoreCommon-Bq0ln8n5.js} +3 -3
- package/dist/web/assets/{__federation_expose_placeholder-authCoreCommon-CtZXaDUc.js.map → __federation_expose_placeholder-authCoreCommon-Bq0ln8n5.js.map} +1 -1
- package/dist/web/assets/{__federation_expose_placeholder-authCoreWeb-CZAKokTb.js → __federation_expose_placeholder-authCoreWeb-BNGIcu0Y.js} +22 -7
- package/dist/web/assets/__federation_expose_placeholder-authCoreWeb-BNGIcu0Y.js.map +1 -0
- package/dist/web/assets/{__federation_fn_import-3DENgil8.js → __federation_fn_import-DybuDj1g.js} +2 -2
- package/dist/web/assets/{__federation_fn_import-3DENgil8.js.map → __federation_fn_import-DybuDj1g.js.map} +1 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/{web-B5bdbzFj.js → web-CAuxM6sN.js} +16 -14
- package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-CAuxM6sN.js.map +1 -0
- package/dist/web/assets/__federation_shared_@baseplate-dev/{project-builder-lib-DCA3vO4J.js → project-builder-lib-DkaXS95C.js} +11341 -10287
- package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib-DkaXS95C.js.map +1 -0
- package/dist/web/assets/__federation_shared_@baseplate-dev/{ui-components-BvL7RO9S.js → ui-components-DX4jbl4M.js} +219 -53
- package/dist/web/assets/__federation_shared_@baseplate-dev/ui-components-DX4jbl4M.js.map +1 -0
- package/dist/web/assets/__federation_shared_@baseplate-dev/{utils-0-N5BG4T.js → utils-B-MiuXg4.js} +49 -16
- package/dist/web/assets/__federation_shared_@baseplate-dev/utils-B-MiuXg4.js.map +1 -0
- package/dist/web/assets/__federation_shared_@tanstack/{react-router-DSniiJ6U.js → react-router-DyqK0P1G.js} +2 -2
- package/dist/web/assets/__federation_shared_@tanstack/{react-router-DSniiJ6U.js.map → react-router-DyqK0P1G.js.map} +1 -1
- package/dist/web/assets/{get-auth-plugin-definition-DHcbFujw.js → get-auth-plugin-definition-BigT75An.js} +2 -2
- package/dist/web/assets/{get-auth-plugin-definition-DHcbFujw.js.map → get-auth-plugin-definition-BigT75An.js.map} +1 -1
- package/dist/web/assets/{index-DQKNnI1w.js → index-BwviOVwi.js} +3 -5
- package/dist/web/assets/{index-DQKNnI1w.js.map → index-BwviOVwi.js.map} +1 -1
- package/dist/web/assets/{index.esm-Dpqxgpya.js → index.esm-Db6zPKK9.js} +2 -2
- package/dist/web/assets/{index.esm-Dpqxgpya.js.map → index.esm-Db6zPKK9.js.map} +1 -1
- package/dist/web/assets/model-names-D7UT0B8x.js +10 -0
- package/dist/web/assets/model-names-D7UT0B8x.js.map +1 -0
- package/dist/web/assets/{model-utils-BFX3c3dn.js → model-utils-D0sDtkf1.js} +165 -19
- package/dist/web/assets/model-utils-D0sDtkf1.js.map +1 -0
- package/dist/web/assets/plugin-definition-BQN6LXOW.js +304 -0
- package/dist/web/assets/plugin-definition-BQN6LXOW.js.map +1 -0
- package/dist/web/assets/{plugin-definition-KEpaSB6p.js → plugin-definition-Cg8Gij5x.js} +2 -2
- package/dist/web/assets/{plugin-definition-KEpaSB6p.js.map → plugin-definition-Cg8Gij5x.js.map} +1 -1
- package/dist/web/assets/{plugin-definition-B86WQ7Ni.js → plugin-definition-ChoxTjiw.js} +20 -6
- package/dist/web/assets/plugin-definition-ChoxTjiw.js.map +1 -0
- package/dist/web/assets/{__federation_expose_better-authCoreWeb-CXHL-Ghf.js → plugin-definition-D9-5sSEf.js} +43 -130
- package/dist/web/assets/plugin-definition-D9-5sSEf.js.map +1 -0
- package/dist/web/assets/{react-hu8Hx0R4.js → react-CcDhDxl8.js} +2 -2
- package/dist/web/assets/{react-hu8Hx0R4.js.map → react-CcDhDxl8.js.map} +1 -1
- package/dist/web/assets/remoteEntry.js +16 -10
- package/dist/web/assets/remoteEntry.js.map +1 -1
- package/dist/web/assets/{styles-CpKtlIgU.js → styles-Otn_yxD1.js} +3 -3
- package/dist/web/assets/{styles-CpKtlIgU.js.map → styles-Otn_yxD1.js.map} +1 -1
- package/package.json +15 -15
- package/dist/local-auth/core/generators/seed-initial-user/generated/ts-import-providers.d.ts +0 -18
- package/dist/local-auth/core/generators/seed-initial-user/generated/ts-import-providers.d.ts.map +0 -1
- package/dist/local-auth/core/generators/seed-initial-user/generated/ts-import-providers.js +0 -26
- package/dist/local-auth/core/generators/seed-initial-user/generated/ts-import-providers.js.map +0 -1
- package/dist/web/assets/__federation_expose_authCoreCommon-CnNoa4tF.js +0 -30
- package/dist/web/assets/__federation_expose_authCoreCommon-CnNoa4tF.js.map +0 -1
- package/dist/web/assets/__federation_expose_authCoreWeb-BL_U7yuj.js.map +0 -1
- package/dist/web/assets/__federation_expose_better-authCoreCommon-D-mTcxYO.js +0 -20
- package/dist/web/assets/__federation_expose_better-authCoreCommon-D-mTcxYO.js.map +0 -1
- package/dist/web/assets/__federation_expose_better-authCoreWeb-CXHL-Ghf.js.map +0 -1
- package/dist/web/assets/__federation_expose_local-authCoreCommon-p_UbExc7.js +0 -21
- package/dist/web/assets/__federation_expose_local-authCoreCommon-p_UbExc7.js.map +0 -1
- package/dist/web/assets/__federation_expose_local-authCoreWeb-8TcUJFT6.js +0 -432
- package/dist/web/assets/__federation_expose_local-authCoreWeb-8TcUJFT6.js.map +0 -1
- package/dist/web/assets/__federation_expose_placeholder-authCoreWeb-CZAKokTb.js.map +0 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-B5bdbzFj.js.map +0 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib-DCA3vO4J.js.map +0 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/ui-components-BvL7RO9S.js.map +0 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/utils-0-N5BG4T.js.map +0 -1
- package/dist/web/assets/model-utils-BFX3c3dn.js.map +0 -1
- package/dist/web/assets/plugin-definition-B86WQ7Ni.js.map +0 -1
- package/dist/web/assets/plugin-definition-CEQb6mWV.js +0 -20
- package/dist/web/assets/plugin-definition-CEQb6mWV.js.map +0 -1
- package/dist/web/assets/plugin-definition-DrsKbcJc.js +0 -31
- package/dist/web/assets/plugin-definition-DrsKbcJc.js.map +0 -1
package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib-DCA3vO4J.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-builder-lib-DCA3vO4J.js","sources":["../../../../../../packages/project-builder-lib/dist/compiler/admin-crud-action-compiler.js","../../../../../../packages/project-builder-lib/dist/compiler/admin-crud-column-compiler-spec.js","../../../../../../packages/project-builder-lib/dist/compiler/admin-crud-input-spec.js","../../../../../../packages/project-builder-lib/dist/compiler/app-compiler-spec.js","../../../../../../packages/project-builder-lib/dist/compiler/model-transformer-compiler-spec.js","../../../../../../packages/project-builder-lib/dist/constants/colors.js","../../../../../../packages/project-builder-lib/dist/constants/theme-colors.js","../../../../../../packages/project-builder-lib/dist/utils/path.js","../../../../../../packages/project-builder-lib/dist/definition/apps/app-utils.js","../../../../../../packages/project-builder-lib/dist/schema/apps/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/base.js","../../../../../../packages/project-builder-lib/dist/schema/apps/backend/index.js","../../../../../../packages/project-builder-lib/dist/schema/auth/index.js","../../../../../../node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.mjs","../../../../../../packages/project-builder-lib/dist/schema/models/authorizer/authorizer-expression-ast.js","../../../../../../packages/project-builder-lib/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js","../../../../../../packages/project-builder-lib/dist/references/expression-types.js","../../../../../../packages/project-builder-lib/dist/plugins/spec/auth-config-spec.js","../../../../../../packages/project-builder-lib/dist/schema/models/authorizer/authorizer-expression-validator.js","../../../../../../packages/project-builder-lib/dist/schema/models/authorizer/authorizer-expression-parser.js","../../../../../../packages/project-builder-lib/dist/schema/utils/validation.js","../../../../../../packages/project-builder-lib/dist/references/definition-ref-builder.js","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/array/groupBy.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/array/keyBy.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/predicate/isSymbol.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/array/uniq.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/function/flow.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/function/identity.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/predicate/isPrimitive.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/object/clone.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/object/cloneDeepWith.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/object/cloneDeep.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/object/mapValues.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/object/omit.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/object/pickBy.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/string/capitalize.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/object/toMerged.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/predicate/isLength.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/_internal/toKey.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/util/toString.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/util/toPath.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/object/get.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/object/property.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/predicate/isObject.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/predicate/isMatchWith.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/predicate/isMatch.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/predicate/matches.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/object/cloneDeepWith.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/object/cloneDeep.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/_internal/isIndex.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/object/has.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/util/iteratee.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/array/groupBy.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/_internal/isKey.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/_internal/assignValue.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/object/updateWith.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/object/set.mjs","../../../../../../node_modules/.pnpm/es-toolkit@1.44.0/node_modules/es-toolkit/dist/compat/string/capitalize.mjs","../../../../../../packages/project-builder-lib/dist/parser/schema-structure.js","../../../../../../packages/project-builder-lib/dist/parser/walk-data-with-schema.js","../../../../../../packages/project-builder-lib/dist/references/ref-schema-visitor.js","../../../../../../packages/project-builder-lib/dist/references/resolve-slots.js","../../../../../../packages/project-builder-lib/dist/references/extract-definition-refs.js","../../../../../../packages/project-builder-lib/dist/references/resolve-zod-ref-payload-names.js","../../../../../../packages/project-builder-lib/dist/references/parse-schema-with-references.js","../../../../../../packages/project-builder-lib/dist/references/deserialize-schema.js","../../../../../../packages/project-builder-lib/dist/references/fix-ref-deletions.js","../../../../../../node_modules/.pnpm/immer@11.1.4/node_modules/immer/dist/immer.mjs","../../../../../../packages/project-builder-lib/dist/parser/transform-data-with-schema.js","../../../../../../packages/project-builder-lib/dist/parser/clean-default-values.js","../../../../../../packages/project-builder-lib/dist/references/serialize-schema.js","../../../../../../packages/project-builder-lib/dist/schema/models/types.js","../../../../../../packages/project-builder-lib/dist/schema/models/authorizer/types.js","../../../../../../packages/project-builder-lib/dist/schema/models/authorizer/authorizer.js","../../../../../../packages/project-builder-lib/dist/schema/models/enums.js","../../../../../../packages/project-builder-lib/dist/schema/creator/definition-fix-registry.js","../../../../../../packages/project-builder-lib/dist/schema/creator/definition-issue-checker-spec.js","../../../../../../packages/project-builder-lib/dist/schema/creator/definition-issue-checkers.js","../../../../../../packages/project-builder-lib/dist/schema/creator/definition-issue-registry.js","../../../../../../packages/project-builder-lib/dist/tools/merge-schema/merge-rule-registry.js","../../../../../../packages/project-builder-lib/dist/schema/models/graphql.js","../../../../../../packages/project-builder-lib/dist/schema/models/transformers/types.js","../../../../../../packages/project-builder-lib/dist/schema/models/transformers/built-in-transformers.js","../../../../../../packages/project-builder-lib/dist/schema/models/transformers/model-transformer-spec.js","../../../../../../packages/project-builder-lib/dist/schema/models/transformers/transformers.js","../../../../../../packages/project-builder-lib/dist/schema/models/models.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/base.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-actions/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-actions/built-in-actions.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-actions/admin-action-spec.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-columns/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-columns/built-in-columns.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-columns/admin-column-spec.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-form/types.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-form/built-in-input.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-form/admin-input-spec.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/sections/crud.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/admin/admin.js","../../../../../../packages/project-builder-lib/dist/schema/apps/web/web-app.js","../../../../../../packages/project-builder-lib/dist/schema/libraries/types.js","../../../../../../packages/project-builder-lib/dist/schema/libraries/base.js","../../../../../../packages/project-builder-lib/dist/utils/strip.js","../../../../../../packages/project-builder-lib/dist/plugins/store/store.js","../../../../../../packages/project-builder-lib/dist/plugins/imports/loader.js","../../../../../../packages/project-builder-lib/dist/plugins/imports/types.js","../../../../../../packages/project-builder-lib/dist/plugins/imports/utils.js","../../../../../../packages/project-builder-lib/dist/plugins/metadata/types.js","../../../../../../packages/project-builder-lib/dist/schema/plugins/entity-types.js","../../../../../../packages/project-builder-lib/dist/plugins/spec/config-spec.js","../../../../../../packages/project-builder-lib/dist/plugins/migrations/run-migrations.js","../../../../../../packages/project-builder-lib/dist/plugins/spec/auth-models-spec.js","../../../../../../packages/project-builder-lib/dist/plugins/spec/web-config-spec.js","../../../../../../packages/project-builder-lib/dist/schema/plugins/definition.js","../../../../../../packages/project-builder-lib/dist/specs/packages/library-type-spec.js","../../../../../../packages/project-builder-lib/dist/schema/libraries/library.js","../../../../../../packages/project-builder-lib/dist/schema/settings/general.js","../../../../../../packages/project-builder-lib/dist/schema/settings/infrastructure.js","../../../../../../packages/project-builder-lib/dist/schema/settings/monorepo.js","../../../../../../packages/project-builder-lib/dist/schema/settings/template-extractor.js","../../../../../../packages/project-builder-lib/dist/schema/settings/theme.js","../../../../../../packages/project-builder-lib/dist/schema/settings/settings.js","../../../../../../packages/project-builder-lib/dist/schema/project-definition.js","../../../../../../packages/project-builder-lib/dist/definition/model/enum-utils.js","../../../../../../packages/project-builder-lib/dist/definition/model/model-field-utils.js","../../../../../../packages/project-builder-lib/dist/definition/model/model-transformer-utils.js","../../../../../../packages/project-builder-lib/dist/definition/packages/package-utils.js","../../../../../../packages/project-builder-lib/dist/parser/parser.js","../../../../../../packages/project-builder-lib/dist/definition/plugins/plugin-utils.js","../../../../../../packages/project-builder-lib/dist/parser/walk-schema-structure.js","../../../../../../packages/project-builder-lib/dist/tools/merge-schema/entity-utils.js","../../../../../../packages/project-builder-lib/dist/tools/entity-service/entity-type-map.js","../../../../../../packages/project-builder-lib/dist/definition/project-definition-container.js","../../../../../../packages/project-builder-lib/dist/feature-flags/flags.js","../../../../../../packages/project-builder-lib/dist/migrations/types.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-005-primary-unique-refs.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-006-individual-service-controllers.js","../../../../../../packages/project-builder-lib/dist/migrations/utils.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-007-model-graphql.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-008-anonymous-public-role.js","../../../../../../packages/project-builder-lib/dist/migrations/transform-json-path.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-009-rename-refs.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseNumber.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/colors/named.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseNamed.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseHex.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/util/regex.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseRgbLegacy.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/_prepare.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/converter.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/modes.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/parse.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/parseTransparent.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/interpolate/lerp.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/interpolate/piecewise.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/interpolate/linear.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/fixup/alpha.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rgb/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/a98/convertA98ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/a98/convertXyz65ToA98.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lrgb/convertRgbToLrgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/convertRgbToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lrgb/convertLrgbToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/convertXyz65ToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/a98/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/util/normalizeHue.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/fixup/hue.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/cubehelix/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/cubehelix/convertRgbToCubehelix.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/cubehelix/convertCubehelixToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/difference.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/average.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/cubehelix/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch/convertLabToLch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch/convertLchToLab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertLab65ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertLab65ToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertXyz65ToLab65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/convertRgbToLab65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlch/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlch/convertDlchToLab65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlch/convertLab65ToDlch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlab/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/dlch/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsi/convertHsiToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsi/convertRgbToHsi.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsi/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/convertHslToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/convertRgbToHsl.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/util/hue.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/parseHslLegacy.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/parseHsl.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsl/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsv/convertHsvToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsv/convertRgbToHsv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hsv/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/convertHwbToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/convertRgbToHwb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/parseHwb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hwb/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hdr/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/hdr/transfer.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/itp/convertItpToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/itp/convertXyz65ToItp.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/itp/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/convertXyz65ToJab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/convertJabToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/convertRgbToJab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/convertJabToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jab/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jch/convertJabToJch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jch/convertJchToJab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/jch/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertLabToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/convertXyz50ToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertLabToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/convertRgbToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertXyz50ToLab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/convertRgbToLab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/parseLab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lab65/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch/parseLch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lch65/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lchuv/convertLuvToLchuv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lchuv/convertLchuvToLuv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/luv/convertXyz50ToLuv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/luv/convertLuvToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lchuv/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/lrgb/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/luv/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/convertLrgbToOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/convertRgbToOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/convertOklabToLrgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/convertOklabToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/helpers.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/convertOklabToOkhsl.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/convertOkhslToOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsl/modeOkhsl.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/convertOklabToOkhsv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/convertOkhsvToOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/okhsv/modeOkhsv.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/parseOklab.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklab/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklch/parseOklch.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/oklch/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/p3/convertP3ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/p3/convertXyz65ToP3.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/p3/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/prophoto/convertXyz50ToProphoto.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/prophoto/convertProphotoToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/prophoto/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rec2020/convertXyz65ToRec2020.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rec2020/convertRec2020ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/rec2020/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyb/constants.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyb/convertRgbToXyb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyb/convertXybToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyb/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz50/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/convertXyz65ToXyz50.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/convertXyz50ToXyz65.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/xyz65/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/yiq/convertRgbToYiq.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/yiq/convertYiqToRgb.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/yiq/definition.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/formatter.js","../../../../../../node_modules/.pnpm/culori@4.0.1/node_modules/culori/src/index.js","../../../../../../packages/project-builder-lib/dist/utils/color-conversions.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-010-hex-to-oklch.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-011-plugin-id.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-012-migrate-auth-config.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-013-move-general-settings.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-014-migrate-plugin-ids.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-015-null-parent-refs.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-016-web-admin-config.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-017-rename-auth-plugin.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-018-crud-name-field-ref.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-019-column-type-based.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-020-move-redis-to-infrastructure.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-021-migrate-bullmq-to-plugin.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-022-rename-packages-to-libraries.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-023-assign-app-ports.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-024-graphql-object-type-field-auth.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-025-service-method-auth.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-026-query-shared-roles.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-027-enable-sentry-plugin.js","../../../../../../packages/project-builder-lib/dist/migrations/migration-028-enable-stripe-plugin.js","../../../../../../packages/project-builder-lib/dist/migrations/index.js","../../../../../../packages/project-builder-lib/dist/parser/apply-definition-fixes.js","../../../../../../packages/project-builder-lib/dist/parser/collect-expression-issues.js","../../../../../../packages/project-builder-lib/dist/parser/definition-issue-utils.js","../../../../../../packages/project-builder-lib/dist/parser/definition-issue-checkers/mutation-roles-checker.js","../../../../../../packages/project-builder-lib/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.js","../../../../../../packages/project-builder-lib/dist/parser/collect-definition-issues.js","../../../../../../packages/project-builder-lib/dist/specs/packages/package-compiler-types.js","../../../../../../packages/project-builder-lib/dist/tools/entity-service/entity-navigation.js","../../../../../../packages/project-builder-lib/dist/tools/entity-service/entity-read.js","../../../../../../packages/project-builder-lib/dist/tools/assign-entity-ids.js","../../../../../../packages/project-builder-lib/dist/tools/entity-service/entity-write.js","../../../../../../packages/project-builder-lib/dist/tools/merge-schema/merge-data-with-schema.js","../../../../../../packages/project-builder-lib/dist/tools/merge-schema/merge-definition.js","../../../../../../packages/project-builder-lib/dist/tools/merge-schema/walk-schema.js","../../../../../../packages/project-builder-lib/dist/tools/merge-schema/diff-definition.js","../../../../../../packages/project-builder-lib/dist/types/field-types.js","../../../../../../packages/project-builder-lib/dist/utils/color-names.js","../../../../../../packages/project-builder-lib/dist/utils/definition-diff/definition-diff.js","../../../../../../node_modules/.pnpm/inflection@3.0.0/node_modules/inflection/lib/inflection.js","../../../../../../packages/project-builder-lib/dist/utils/theme.js"],"sourcesContent":["import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\nexport const adminCrudActionCompilerSpec = createFieldMapSpec('core/admin-crud-action-compiler', (t) => ({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- plugins register varying action types at runtime\n actions: t.namedArrayToMap(),\n}));\n//# sourceMappingURL=admin-crud-action-compiler.js.map","import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\nexport function createAdminCrudColumnCompiler(input) {\n return input;\n}\n/**\n * Spec for registering admin CRUD column compilers\n */\nexport const adminCrudColumnCompilerSpec = createFieldMapSpec('core/admin-crud-column-compiler', (t) => ({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- plugins register varying column types at runtime\n columns: t.namedArrayToMap(),\n}));\n//# sourceMappingURL=admin-crud-column-compiler-spec.js.map","import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\n/**\n * Spec for registering admin CRUD input compilers\n */\nexport const adminCrudInputCompilerSpec = createFieldMapSpec('core/admin-crud-input-compiler', (t) => ({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- plugins register varying input types at runtime\n inputs: t.namedArrayToMap(),\n}));\n//# sourceMappingURL=admin-crud-input-spec.js.map","import { safeMerge } from '@baseplate-dev/utils';\nimport { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\nexport function createAppCompiler() {\n const children = {};\n let rootChildren = {};\n return {\n addChildrenToFeature(featureId, newChildren) {\n children[featureId] = safeMerge(children[featureId] ?? {}, newChildren);\n },\n getChildrenForFeature(featureId) {\n return children[featureId] ?? {};\n },\n addRootChildren(newChildren) {\n rootChildren = safeMerge(rootChildren, newChildren);\n },\n getRootChildren() {\n return rootChildren;\n },\n };\n}\nexport function pluginAppCompiler(options) {\n return options;\n}\n/**\n * Spec for registering app compilers\n */\nexport const appCompilerSpec = createFieldMapSpec('core/app-compiler', (t) => ({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- plugins register varying app definition types at runtime\n compilers: t.array(),\n}), {\n use: (values) => ({\n getAppCompilers: (appType) => values.compilers.filter((c) => c.appType === appType),\n }),\n});\n//# sourceMappingURL=app-compiler-spec.js.map","import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\n/**\n * Spec for registering model transformer compilers\n */\nexport const modelTransformerCompilerSpec = createFieldMapSpec('core/model-transformer-compiler', (t) => ({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- plugins register varying transformer types at runtime\n transformers: t.namedArrayToMap(),\n}));\n//# sourceMappingURL=model-transformer-compiler-spec.js.map","// obtained from Tailwind (https://github.com/tailwindlabs/tailwindcss/blob/master/src/public/colors.js)\nexport const PALETTE_SHADES = [\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '950',\n];\nexport const FIXED_COLOR_MAPPINGS = {\n white: 'oklch(1 0 0)',\n black: 'oklch(0 0 0)',\n};\nexport const COLOR_PALETTES = {\n red: {\n '50': 'oklch(0.971 0.013 17.38)',\n '100': 'oklch(0.936 0.032 17.717)',\n '200': 'oklch(0.885 0.062 18.334)',\n '300': 'oklch(0.808 0.114 19.571)',\n '400': 'oklch(0.704 0.191 22.216)',\n '500': 'oklch(0.637 0.237 25.331)',\n '600': 'oklch(0.577 0.245 27.325)',\n '700': 'oklch(0.505 0.213 27.518)',\n '800': 'oklch(0.444 0.177 26.899)',\n '900': 'oklch(0.396 0.141 25.723)',\n '950': 'oklch(0.258 0.092 26.042)',\n },\n orange: {\n '50': 'oklch(0.98 0.016 73.684)',\n '100': 'oklch(0.954 0.038 75.164)',\n '200': 'oklch(0.901 0.076 70.697)',\n '300': 'oklch(0.837 0.128 66.29)',\n '400': 'oklch(0.75 0.183 55.934)',\n '500': 'oklch(0.705 0.213 47.604)',\n '600': 'oklch(0.646 0.222 41.116)',\n '700': 'oklch(0.553 0.195 38.402)',\n '800': 'oklch(0.47 0.157 37.304)',\n '900': 'oklch(0.408 0.123 38.172)',\n '950': 'oklch(0.266 0.079 36.259)',\n },\n amber: {\n '50': 'oklch(0.987 0.022 95.277)',\n '100': 'oklch(0.962 0.059 95.617)',\n '200': 'oklch(0.924 0.12 95.746)',\n '300': 'oklch(0.879 0.169 91.605)',\n '400': 'oklch(0.828 0.189 84.429)',\n '500': 'oklch(0.769 0.188 70.08)',\n '600': 'oklch(0.666 0.179 58.318)',\n '700': 'oklch(0.555 0.163 48.998)',\n '800': 'oklch(0.473 0.137 46.201)',\n '900': 'oklch(0.414 0.112 45.904)',\n '950': 'oklch(0.279 0.077 45.635)',\n },\n yellow: {\n '50': 'oklch(0.987 0.026 102.212)',\n '100': 'oklch(0.973 0.071 103.193)',\n '200': 'oklch(0.945 0.129 101.54)',\n '300': 'oklch(0.905 0.182 98.111)',\n '400': 'oklch(0.852 0.199 91.936)',\n '500': 'oklch(0.795 0.184 86.047)',\n '600': 'oklch(0.681 0.162 75.834)',\n '700': 'oklch(0.554 0.135 66.442)',\n '800': 'oklch(0.476 0.114 61.907)',\n '900': 'oklch(0.421 0.095 57.708)',\n '950': 'oklch(0.286 0.066 53.813)',\n },\n lime: {\n '50': 'oklch(0.986 0.031 120.757)',\n '100': 'oklch(0.967 0.067 122.328)',\n '200': 'oklch(0.938 0.127 124.321)',\n '300': 'oklch(0.897 0.196 126.665)',\n '400': 'oklch(0.841 0.238 128.85)',\n '500': 'oklch(0.768 0.233 130.85)',\n '600': 'oklch(0.648 0.2 131.684)',\n '700': 'oklch(0.532 0.157 131.589)',\n '800': 'oklch(0.453 0.124 130.933)',\n '900': 'oklch(0.405 0.101 131.063)',\n '950': 'oklch(0.274 0.072 132.109)',\n },\n green: {\n '50': 'oklch(0.982 0.018 155.826)',\n '100': 'oklch(0.962 0.044 156.743)',\n '200': 'oklch(0.925 0.084 155.995)',\n '300': 'oklch(0.871 0.15 154.449)',\n '400': 'oklch(0.792 0.209 151.711)',\n '500': 'oklch(0.723 0.219 149.579)',\n '600': 'oklch(0.627 0.194 149.214)',\n '700': 'oklch(0.527 0.154 150.069)',\n '800': 'oklch(0.448 0.119 151.328)',\n '900': 'oklch(0.393 0.095 152.535)',\n '950': 'oklch(0.266 0.065 152.934)',\n },\n emerald: {\n '50': 'oklch(0.979 0.021 166.113)',\n '100': 'oklch(0.95 0.052 163.051)',\n '200': 'oklch(0.905 0.093 164.15)',\n '300': 'oklch(0.845 0.143 164.978)',\n '400': 'oklch(0.765 0.177 163.223)',\n '500': 'oklch(0.696 0.17 162.48)',\n '600': 'oklch(0.596 0.145 163.225)',\n '700': 'oklch(0.508 0.118 165.612)',\n '800': 'oklch(0.432 0.095 166.913)',\n '900': 'oklch(0.378 0.077 168.94)',\n '950': 'oklch(0.262 0.051 172.552)',\n },\n teal: {\n '50': 'oklch(0.984 0.014 180.72)',\n '100': 'oklch(0.953 0.051 180.801)',\n '200': 'oklch(0.91 0.096 180.426)',\n '300': 'oklch(0.855 0.138 181.071)',\n '400': 'oklch(0.777 0.152 181.912)',\n '500': 'oklch(0.704 0.14 182.503)',\n '600': 'oklch(0.6 0.118 184.704)',\n '700': 'oklch(0.511 0.096 186.391)',\n '800': 'oklch(0.437 0.078 188.216)',\n '900': 'oklch(0.386 0.063 188.416)',\n '950': 'oklch(0.277 0.046 192.524)',\n },\n cyan: {\n '50': 'oklch(0.984 0.019 200.873)',\n '100': 'oklch(0.956 0.045 203.388)',\n '200': 'oklch(0.917 0.08 205.041)',\n '300': 'oklch(0.865 0.127 207.078)',\n '400': 'oklch(0.789 0.154 211.53)',\n '500': 'oklch(0.715 0.143 215.221)',\n '600': 'oklch(0.609 0.126 221.723)',\n '700': 'oklch(0.52 0.105 223.128)',\n '800': 'oklch(0.45 0.085 224.283)',\n '900': 'oklch(0.398 0.07 227.392)',\n '950': 'oklch(0.302 0.056 229.695)',\n },\n sky: {\n '50': 'oklch(0.977 0.013 236.62)',\n '100': 'oklch(0.951 0.026 236.824)',\n '200': 'oklch(0.901 0.058 230.902)',\n '300': 'oklch(0.828 0.111 230.318)',\n '400': 'oklch(0.746 0.16 232.661)',\n '500': 'oklch(0.685 0.169 237.323)',\n '600': 'oklch(0.588 0.158 241.966)',\n '700': 'oklch(0.5 0.134 242.749)',\n '800': 'oklch(0.443 0.11 240.79)',\n '900': 'oklch(0.391 0.09 240.876)',\n '950': 'oklch(0.293 0.066 243.157)',\n },\n blue: {\n '50': 'oklch(0.97 0.014 254.604)',\n '100': 'oklch(0.932 0.032 255.585)',\n '200': 'oklch(0.882 0.059 254.128)',\n '300': 'oklch(0.809 0.105 251.813)',\n '400': 'oklch(0.707 0.165 254.624)',\n '500': 'oklch(0.623 0.214 259.815)',\n '600': 'oklch(0.546 0.245 262.881)',\n '700': 'oklch(0.488 0.243 264.376)',\n '800': 'oklch(0.424 0.199 265.638)',\n '900': 'oklch(0.379 0.146 265.522)',\n '950': 'oklch(0.282 0.091 267.935)',\n },\n indigo: {\n '50': 'oklch(0.962 0.018 272.314)',\n '100': 'oklch(0.93 0.034 272.788)',\n '200': 'oklch(0.87 0.065 274.039)',\n '300': 'oklch(0.785 0.115 274.713)',\n '400': 'oklch(0.673 0.182 276.935)',\n '500': 'oklch(0.585 0.233 277.117)',\n '600': 'oklch(0.511 0.262 276.966)',\n '700': 'oklch(0.457 0.24 277.023)',\n '800': 'oklch(0.398 0.195 277.366)',\n '900': 'oklch(0.359 0.144 278.697)',\n '950': 'oklch(0.257 0.09 281.288)',\n },\n violet: {\n '50': 'oklch(0.969 0.016 293.756)',\n '100': 'oklch(0.943 0.029 294.588)',\n '200': 'oklch(0.894 0.057 293.283)',\n '300': 'oklch(0.811 0.111 293.571)',\n '400': 'oklch(0.702 0.183 293.541)',\n '500': 'oklch(0.606 0.25 292.717)',\n '600': 'oklch(0.541 0.281 293.009)',\n '700': 'oklch(0.491 0.27 292.581)',\n '800': 'oklch(0.432 0.232 292.759)',\n '900': 'oklch(0.38 0.189 293.745)',\n '950': 'oklch(0.283 0.141 291.089)',\n },\n purple: {\n '50': 'oklch(0.977 0.014 308.299)',\n '100': 'oklch(0.946 0.033 307.174)',\n '200': 'oklch(0.902 0.063 306.703)',\n '300': 'oklch(0.827 0.119 306.383)',\n '400': 'oklch(0.714 0.203 305.504)',\n '500': 'oklch(0.627 0.265 303.9)',\n '600': 'oklch(0.558 0.288 302.321)',\n '700': 'oklch(0.496 0.265 301.924)',\n '800': 'oklch(0.438 0.218 303.724)',\n '900': 'oklch(0.381 0.176 304.987)',\n '950': 'oklch(0.291 0.149 302.717)',\n },\n fuchsia: {\n '50': 'oklch(0.977 0.017 320.058)',\n '100': 'oklch(0.952 0.037 318.852)',\n '200': 'oklch(0.903 0.076 319.62)',\n '300': 'oklch(0.833 0.145 321.434)',\n '400': 'oklch(0.74 0.238 322.16)',\n '500': 'oklch(0.667 0.295 322.15)',\n '600': 'oklch(0.591 0.293 322.896)',\n '700': 'oklch(0.518 0.253 323.949)',\n '800': 'oklch(0.452 0.211 324.591)',\n '900': 'oklch(0.401 0.17 325.612)',\n '950': 'oklch(0.293 0.136 325.661)',\n },\n pink: {\n '50': 'oklch(0.971 0.014 343.198)',\n '100': 'oklch(0.948 0.028 342.258)',\n '200': 'oklch(0.899 0.061 343.231)',\n '300': 'oklch(0.823 0.12 346.018)',\n '400': 'oklch(0.718 0.202 349.761)',\n '500': 'oklch(0.656 0.241 354.308)',\n '600': 'oklch(0.592 0.249 0.584)',\n '700': 'oklch(0.525 0.223 3.958)',\n '800': 'oklch(0.459 0.187 3.815)',\n '900': 'oklch(0.408 0.153 2.432)',\n '950': 'oklch(0.284 0.109 3.907)',\n },\n rose: {\n '50': 'oklch(0.969 0.015 12.422)',\n '100': 'oklch(0.941 0.03 12.58)',\n '200': 'oklch(0.892 0.058 10.001)',\n '300': 'oklch(0.81 0.117 11.638)',\n '400': 'oklch(0.712 0.194 13.428)',\n '500': 'oklch(0.645 0.246 16.439)',\n '600': 'oklch(0.586 0.253 17.585)',\n '700': 'oklch(0.514 0.222 16.935)',\n '800': 'oklch(0.455 0.188 13.697)',\n '900': 'oklch(0.41 0.159 10.272)',\n '950': 'oklch(0.271 0.105 12.094)',\n },\n slate: {\n '50': 'oklch(0.984 0.003 247.858)',\n '100': 'oklch(0.968 0.007 247.896)',\n '200': 'oklch(0.929 0.013 255.508)',\n '300': 'oklch(0.869 0.022 252.894)',\n '400': 'oklch(0.704 0.04 256.788)',\n '500': 'oklch(0.554 0.046 257.417)',\n '600': 'oklch(0.446 0.043 257.281)',\n '700': 'oklch(0.372 0.044 257.287)',\n '800': 'oklch(0.279 0.041 260.031)',\n '900': 'oklch(0.208 0.042 265.755)',\n '950': 'oklch(0.129 0.042 264.695)',\n },\n gray: {\n '50': 'oklch(0.985 0.002 247.839)',\n '100': 'oklch(0.967 0.003 264.542)',\n '200': 'oklch(0.928 0.006 264.531)',\n '300': 'oklch(0.872 0.01 258.338)',\n '400': 'oklch(0.707 0.022 261.325)',\n '500': 'oklch(0.551 0.027 264.364)',\n '600': 'oklch(0.446 0.03 256.802)',\n '700': 'oklch(0.373 0.034 259.733)',\n '800': 'oklch(0.278 0.033 256.848)',\n '900': 'oklch(0.21 0.034 264.665)',\n '950': 'oklch(0.13 0.028 261.692)',\n },\n zinc: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.967 0.001 286.375)',\n '200': 'oklch(0.92 0.004 286.32)',\n '300': 'oklch(0.871 0.006 286.286)',\n '400': 'oklch(0.705 0.015 286.067)',\n '500': 'oklch(0.552 0.016 285.938)',\n '600': 'oklch(0.442 0.017 285.786)',\n '700': 'oklch(0.37 0.013 285.805)',\n '800': 'oklch(0.274 0.006 286.033)',\n '900': 'oklch(0.21 0.006 285.885)',\n '950': 'oklch(0.141 0.005 285.823)',\n },\n neutral: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.97 0 0)',\n '200': 'oklch(0.922 0 0)',\n '300': 'oklch(0.87 0 0)',\n '400': 'oklch(0.708 0 0)',\n '500': 'oklch(0.556 0 0)',\n '600': 'oklch(0.439 0 0)',\n '700': 'oklch(0.371 0 0)',\n '800': 'oklch(0.269 0 0)',\n '900': 'oklch(0.205 0 0)',\n '950': 'oklch(0.145 0 0)',\n },\n stone: {\n '50': 'oklch(0.985 0.001 106.423)',\n '100': 'oklch(0.97 0.001 106.424)',\n '200': 'oklch(0.923 0.003 48.717)',\n '300': 'oklch(0.869 0.005 56.366)',\n '400': 'oklch(0.709 0.01 56.259)',\n '500': 'oklch(0.553 0.013 58.071)',\n '600': 'oklch(0.444 0.011 73.639)',\n '700': 'oklch(0.374 0.01 67.558)',\n '800': 'oklch(0.268 0.007 34.298)',\n '900': 'oklch(0.216 0.006 56.043)',\n '950': 'oklch(0.147 0.004 49.25)',\n },\n};\n//# sourceMappingURL=colors.js.map","export const THEME_COLORS = {\n // Surface Colors\n background: {\n name: 'Background',\n description: 'The background color of the page',\n lightDefault: { color: 'white' },\n darkDefault: { baseShade: '950' },\n groupKey: 'page',\n category: 'surface',\n },\n foreground: {\n name: 'Foreground',\n description: 'The foreground color of the page',\n lightDefault: { baseShade: '950' },\n darkDefault: { baseShade: '50' },\n groupKey: 'page',\n category: 'surface',\n },\n muted: {\n name: 'Muted Background',\n description: 'Muted backgrounds such as <TabsList />, <Skeleton /> and <Switch />, also used as background for containers on white background or vice versa',\n lightDefault: { baseShade: '100' },\n darkDefault: { baseShade: '800' },\n groupKey: 'muted',\n category: 'surface',\n },\n mutedForeground: {\n name: 'Muted Foreground',\n description: 'Used for secondary text and subtitles',\n lightDefault: { baseShade: '500' },\n darkDefault: { baseShade: '400' },\n groupKey: 'muted',\n category: 'surface',\n },\n card: {\n name: 'Card Background',\n description: 'Background color for <Card />',\n lightDefault: { color: 'white' },\n darkDefault: { baseShade: '950' },\n groupKey: 'card',\n category: 'surface',\n },\n cardForeground: {\n name: 'Card Foreground',\n description: 'Foreground color for <Card />',\n lightDefault: { baseShade: '950' },\n darkDefault: { baseShade: '50' },\n groupKey: 'card',\n category: 'surface',\n },\n popover: {\n name: 'Popover Background',\n description: 'Background color for popovers such as <DropdownMenu />, <HoverCard />, <Popover />',\n lightDefault: { color: 'white' },\n darkDefault: { baseShade: '950' },\n groupKey: 'popover',\n category: 'surface',\n },\n popoverForeground: {\n name: 'Popover Foreground',\n description: 'Foreground color for popovers such as <DropdownMenu />, <HoverCard />, <Popover />',\n lightDefault: { baseShade: '950' },\n darkDefault: { baseShade: '50' },\n groupKey: 'popover',\n category: 'surface',\n },\n accent: {\n name: 'Accent',\n description: 'Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...',\n lightDefault: { baseShade: '100' },\n darkDefault: { baseShade: '800' },\n groupKey: 'accent',\n category: 'surface',\n },\n accentForeground: {\n name: 'Accent Foreground',\n description: 'Used for accent foregrounds such as hover effects on <DropdownMenuItem>, <SelectItem>...',\n lightDefault: { baseShade: '900' },\n darkDefault: { baseShade: '50' },\n groupKey: 'accent',\n category: 'surface',\n },\n success: {\n name: 'Success',\n description: 'Used for success state on input fields, toast or alerts',\n lightDefault: { color: 'emerald-50' },\n darkDefault: { color: 'emerald-950' },\n groupKey: 'success',\n category: 'surface',\n },\n successForeground: {\n name: 'Success Foreground',\n description: 'Used for success foregrounds',\n lightDefault: { color: 'emerald-950' },\n darkDefault: { color: 'emerald-50' },\n groupKey: 'success',\n category: 'surface',\n },\n warning: {\n name: 'Warning',\n description: 'Used for warning color on toast or alert',\n lightDefault: { color: 'amber-50' },\n darkDefault: { color: 'amber-950' },\n groupKey: 'warning',\n category: 'surface',\n },\n warningForeground: {\n name: 'Warning Foreground',\n description: 'Used for warning foregrounds',\n lightDefault: { color: 'amber-950' },\n darkDefault: { color: 'amber-50' },\n groupKey: 'warning',\n category: 'surface',\n },\n error: {\n name: 'Error',\n description: 'Used for error state on input fields, toast or alerts',\n lightDefault: { color: 'red-50' },\n darkDefault: { color: 'red-950' },\n groupKey: 'error',\n category: 'surface',\n },\n errorForeground: {\n name: 'Error Foreground',\n description: 'Used for error foregrounds',\n lightDefault: { color: 'red-950' },\n darkDefault: { color: 'red-50' },\n groupKey: 'error',\n category: 'surface',\n },\n // Interactive Element Colors\n primary: {\n name: 'Primary',\n description: 'Primary colors for <Button /> and other active states for interactive elements such as checkbox',\n lightDefault: { primaryShade: '800' },\n darkDefault: { primaryShade: '950' },\n groupKey: 'primary',\n category: 'interactive',\n },\n primaryHover: {\n name: 'Primary Hover',\n description: 'Hover background for primary color',\n lightDefault: { primaryShade: '900' },\n darkDefault: { primaryShade: '800' },\n groupKey: 'primary',\n category: 'interactive',\n },\n primaryForeground: {\n name: 'Primary Foreground',\n description: 'Text color for primary button',\n lightDefault: { baseShade: '50' },\n darkDefault: { baseShade: '50' },\n groupKey: 'primary',\n category: 'interactive',\n },\n secondary: {\n name: 'Secondary',\n description: 'Secondary colors for <Button />',\n lightDefault: { baseShade: '100' },\n darkDefault: { baseShade: '800' },\n groupKey: 'secondary',\n category: 'interactive',\n },\n secondaryHover: {\n name: 'Secondary Hover',\n description: 'Hover background for secondary color',\n lightDefault: { baseShade: '300' },\n darkDefault: { baseShade: '600' },\n groupKey: 'secondary',\n category: 'interactive',\n },\n secondaryForeground: {\n name: 'Secondary Foreground',\n description: 'Text color for secondary button',\n lightDefault: { baseShade: '900' },\n darkDefault: { baseShade: '50' },\n groupKey: 'secondary',\n category: 'interactive',\n },\n destructive: {\n name: 'Destructive',\n description: 'Used for destructive actions such as <Button variant=\"destructive\">',\n lightDefault: { color: 'red-500' },\n darkDefault: { color: 'red-900' },\n groupKey: 'destructive',\n category: 'interactive',\n },\n destructiveHover: {\n name: 'Destructive Hover',\n description: 'Hover color for destructive background',\n lightDefault: { color: 'red-700' },\n darkDefault: { color: 'red-700' },\n groupKey: 'destructive',\n category: 'interactive',\n },\n destructiveForeground: {\n name: 'Destructive Foreground',\n description: 'Hover color for destructive background',\n lightDefault: { baseShade: '50' },\n darkDefault: { baseShade: '50' },\n groupKey: 'destructive',\n category: 'interactive',\n },\n link: {\n name: 'Link',\n description: 'Used for interactive links mostly in text',\n lightDefault: { primaryShade: '700' },\n darkDefault: { primaryShade: '600' },\n groupKey: 'link',\n category: 'interactive',\n },\n linkVisited: {\n name: 'Visited Link',\n description: 'Color for link after being visited',\n lightDefault: { primaryShade: '800' },\n darkDefault: { primaryShade: '700' },\n groupKey: 'link',\n category: 'interactive',\n },\n // Utility Colors\n border: {\n name: 'Border',\n description: 'Default border color',\n lightDefault: { baseShade: '200' },\n darkDefault: { baseShade: '800' },\n groupKey: 'border',\n category: 'utility',\n },\n input: {\n name: 'Input Border',\n description: 'Border color for inputs such as <Input />, <Select />, <Textarea />',\n lightDefault: { baseShade: '200' },\n darkDefault: { baseShade: '800' },\n groupKey: 'border',\n category: 'utility',\n },\n ring: {\n name: 'Focus Ring',\n description: 'Used for focus ring.',\n lightDefault: { primaryShade: '400' },\n darkDefault: { primaryShade: '500' },\n groupKey: 'ring',\n category: 'utility',\n },\n};\nexport const THEME_COLOR_KEYS = Object.keys(THEME_COLORS);\n//# sourceMappingURL=theme-colors.js.map","function cleanAndSplitPath(path) {\n return path\n .replace(/^\\./, '')\n .split('/')\n .filter((segment) => segment !== '');\n}\n/**\n * Computes the relative path from one path to another.\n */\nexport function computeRelativePath(fromPath, toPath) {\n const fromSegments = cleanAndSplitPath(fromPath);\n const toSegments = cleanAndSplitPath(toPath);\n // Remove the common segments from the beginning\n while (fromSegments.length > 0 &&\n toSegments.length > 0 &&\n fromSegments[0] === toSegments[0]) {\n fromSegments.shift();\n toSegments.shift();\n }\n // Add the necessary number of '../' to go up the directory hierarchy\n const numParentDirs = fromSegments.length;\n const parentDirs = Array.from({ length: numParentDirs }).fill('..');\n // Construct the relative path\n const relativePath = [...parentDirs, ...toSegments].join('/');\n return relativePath;\n}\n//# sourceMappingURL=path.js.map","import { computeRelativePath } from '#src/utils/path.js';\nfunction byId(projectDefinition, id) {\n const config = projectDefinition.apps.find((app) => app.id === id);\n if (!config) {\n throw new Error(`Unable to find app with ID ${id}`);\n }\n return config;\n}\nfunction getBackendApp(projectDefinition) {\n const backendApps = projectDefinition.apps.filter((a) => a.type === 'backend');\n if (backendApps.length > 1 || backendApps.length === 0) {\n throw new Error(`Only one backend app is supported and must exist`);\n }\n const backendApp = backendApps[0];\n return backendApp;\n}\n/**\n * Given an app config, get the relative directory of the app\n *\n * @param appConfig The app config\n * @param monorepoSettings Optional monorepo settings to determine apps folder location\n * @returns The directory of the app\n */\nfunction getAppDirectory(appConfig, monorepoSettings) {\n const appsFolder = monorepoSettings?.appsFolder ?? 'apps';\n return `${appsFolder}/${appConfig.name}`;\n}\nexport function getBackendRelativePath(appConfig, backendApp, monorepoSettings) {\n const backendRelativePath = computeRelativePath(getAppDirectory(appConfig, monorepoSettings), getAppDirectory(backendApp, monorepoSettings));\n return backendRelativePath;\n}\nexport const AppUtils = {\n byId,\n getBackendApp,\n getBackendRelativePath,\n getAppDirectory,\n};\n//# sourceMappingURL=app-utils.js.map","import { createEntityType } from '#src/references/types.js';\nexport const appEntityType = createEntityType('app');\nexport function createAppEntryType(name) {\n return name;\n}\n//# sourceMappingURL=types.js.map","import { CASE_VALIDATORS } from '@baseplate-dev/utils';\nimport { z } from 'zod';\nimport { appEntityType } from './types.js';\nexport const baseAppValidators = {\n id: z.string().default(appEntityType.generateNewId()),\n name: CASE_VALIDATORS.KEBAB_CASE,\n type: z.string(),\n devPort: z.number().int().positive().max(65_535).optional(),\n};\nexport const baseAppSchema = z.object(baseAppValidators);\n//# sourceMappingURL=base.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { baseAppValidators } from '../base.js';\nimport { appEntityType, createAppEntryType } from '../types.js';\nexport const createBackendAppSchema = definitionSchemaWithSlots({ appSlot: appEntityType }, () => z.object({\n ...baseAppValidators,\n type: z.literal('backend'),\n devPort: z.number().int().positive(),\n enableSubscriptions: z.boolean().optional(),\n enableAxios: z.boolean().optional(),\n}));\nexport const backendAppEntryType = createAppEntryType('backend');\n//# sourceMappingURL=index.js.map","import { createEntityType } from '#src/references/types.js';\nexport const authRoleEntityType = createEntityType('role');\n//# sourceMappingURL=index.js.map","// This file was generated. Do not modify manually!\nvar astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\n\n// This file was generated. Do not modify manually!\nvar astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];\n\n// This file was generated. Do not modify manually!\nvar nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0897-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1ace\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\n// This file was generated. Do not modify manually!\nvar nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088e\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c8a\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7cd\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7dc\\ua7f2-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range.\n\n// Reserved word lists for various dialects of the language\n\nvar reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n};\n\n// And the keywords\n\nvar ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\nvar keywords$1 = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n};\n\nvar keywordRelationalOperator = /^in(stanceof)?$/;\n\n// ## Character categories\n\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n return false\n}\n\n// Test whether a given character code starts an identifier.\n\nfunction isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nfunction isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n};\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nvar beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n// Map keyword names to token types.\n\nvar keywords = {};\n\n// Succinct definitions of keyword token types\nfunction kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords[name] = new TokenType(name, options)\n}\n\nvar types$1 = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n privateId: new TokenType(\"privateId\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n};\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\nvar lineBreakG = new RegExp(lineBreak.source, \"g\");\n\nfunction isNewLine(code) {\n return code === 10 || code === 13 || code === 0x2028 || code === 0x2029\n}\n\nfunction nextLineBreak(code, from, end) {\n if ( end === void 0 ) end = code.length;\n\n for (var i = from; i < end; i++) {\n var next = code.charCodeAt(i);\n if (isNewLine(next))\n { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }\n }\n return -1\n}\n\nvar nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\nvar skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nvar ref = Object.prototype;\nvar hasOwnProperty = ref.hasOwnProperty;\nvar toString = ref.toString;\n\nvar hasOwn = Object.hasOwn || (function (obj, propName) { return (\n hasOwnProperty.call(obj, propName)\n); });\n\nvar isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n); });\n\nvar regexpCache = Object.create(null);\n\nfunction wordsRegexp(words) {\n return regexpCache[words] || (regexpCache[words] = new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\"))\n}\n\nfunction codePointToString(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\nvar loneSurrogate = /(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/;\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nvar Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n};\n\nPosition.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n};\n\nvar SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n};\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nfunction getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n var nextBreak = nextLineBreak(input, cur, offset);\n if (nextBreak < 0) { return new Position(line, offset - cur) }\n ++line;\n cur = nextBreak;\n }\n}\n\n// A second argument must be given to configure the parser process.\n// These options are recognized (only `ecmaVersion` is required):\n\nvar defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `\"latest\"`\n // (the latest version the library supports). This influences\n // support for strict mode, the set of reserved words, and support\n // for new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called when\n // a semicolon is automatically inserted. It will be passed the\n // position of the inserted semicolon as an offset, and if\n // `locations` is enabled, it is given the location as a `{line,\n // column}` object as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program, and an import.meta expression\n // in a script isn't considered an error.\n allowImportExportEverywhere: false,\n // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: null,\n // When enabled, super identifiers are not constrained to\n // appearing in methods and do not raise an error when they appear elsewhere.\n allowSuperOutsideMethod: null,\n // When enabled, hashbang directive in the beginning of file is\n // allowed and treated as a line comment. Enabled by default when\n // `ecmaVersion` >= 2023.\n allowHashBang: false,\n // By default, the parser will verify that private properties are\n // only used in places where they are valid and have been declared.\n // Set this to false to turn such checks off.\n checkPrivateFields: true,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n // When this option has an array as value, objects representing the\n // comments are pushed to it.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n};\n\n// Interpret and default an options object\n\nvar warnedAboutEcmaVersion = false;\n\nfunction getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (!opts || opts.allowHashBang == null)\n { options.allowHashBang = options.ecmaVersion >= 14; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n}\n\n// Each scope gets a bitset that may contain these flags\nvar\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128,\n SCOPE_CLASS_STATIC_BLOCK = 256,\n SCOPE_CLASS_FIELD_INIT = 512,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;\n\nfunction functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal* and declareName to determine the type of a binding\nvar\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\nvar Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types$1.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n this.potentialArrowInForAwait = false;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = Object.create(null);\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(SCOPE_TOP);\n\n // For RegExp validation\n this.regexpState = null;\n\n // The stack of private names.\n // Each element has two properties: 'declared' and 'used'.\n // When it exited from the outermost class definition, all used private names must be declared.\n this.privateNameStack = [];\n};\n\nvar prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },inClassStaticBlock: { configurable: true } };\n\nParser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n};\n\nprototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\n\nprototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };\n\nprototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };\n\nprototypeAccessors.canAwait.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var ref = this.scopeStack[i];\n var flags = ref.flags;\n if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false }\n if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 }\n }\n return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction\n};\n\nprototypeAccessors.allowSuper.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod\n};\n\nprototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\n\nprototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n\nprototypeAccessors.allowNewDotTarget.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var ref = this.scopeStack[i];\n var flags = ref.flags;\n if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) ||\n ((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true }\n }\n return false\n};\n\nprototypeAccessors.inClassStaticBlock.get = function () {\n return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0\n};\n\nParser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n};\n\nParser.parse = function parse (input, options) {\n return new this(options, input).parse()\n};\n\nParser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n};\n\nParser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n};\n\nObject.defineProperties( Parser.prototype, prototypeAccessors );\n\nvar pp$9 = Parser.prototype;\n\n// ## Parser utilities\n\nvar literal = /^(?:'((?:\\\\[^]|[^'\\\\])*?)'|\"((?:\\\\[^]|[^\"\\\\])*?)\")/;\npp$9.strictDirective = function(start) {\n if (this.options.ecmaVersion < 5) { return false }\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n};\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp$9.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n};\n\n// Tests whether parsed token is a contextual keyword.\n\npp$9.isContextual = function(name) {\n return this.type === types$1.name && this.value === name && !this.containsEsc\n};\n\n// Consumes contextual keyword if possible.\n\npp$9.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n};\n\n// Asserts that following token is given contextual keyword.\n\npp$9.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n};\n\n// Test whether a semicolon can be inserted at the current position.\n\npp$9.canInsertSemicolon = function() {\n return this.type === types$1.eof ||\n this.type === types$1.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\npp$9.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n};\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp$9.semicolon = function() {\n if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }\n};\n\npp$9.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n};\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp$9.expect = function(type) {\n this.eat(type) || this.unexpected();\n};\n\n// Raise an unexpected token error.\n\npp$9.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n};\n\nvar DestructuringErrors = function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n};\n\npp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, isAssign ? \"Assigning to rvalue\" : \"Parenthesized pattern\"); }\n};\n\npp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n};\n\npp$9.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n};\n\npp$9.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n};\n\nvar pp$8 = Parser.prototype;\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp$8.parseTopLevel = function(node) {\n var exports = Object.create(null);\n if (!node.body) { node.body = []; }\n while (this.type !== types$1.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType;\n return this.finishNode(node, \"Program\")\n};\n\nvar loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\npp$8.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91 || nextCh === 92) { return true } // '[', '\\'\n if (context) { return false }\n\n if (nextCh === 123 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '{', astral\n if (isIdentifierStart(nextCh, true)) {\n var pos = next + 1;\n while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; }\n if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true }\n var ident = this.input.slice(next, pos);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n};\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp$8.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, after;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length ||\n !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00))\n};\n\npp$8.isUsingKeyword = function(isAwaitUsing, isFor) {\n if (this.options.ecmaVersion < 17 || !this.isContextual(isAwaitUsing ? \"await\" : \"using\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length;\n\n if (lineBreak.test(this.input.slice(this.pos, next))) { return false }\n\n if (isAwaitUsing) {\n var awaitEndPos = next + 5 /* await */, after;\n if (this.input.slice(next, awaitEndPos) !== \"using\" ||\n awaitEndPos === this.input.length ||\n isIdentifierChar(after = this.input.charCodeAt(awaitEndPos)) ||\n (after > 0xd7ff && after < 0xdc00)\n ) { return false }\n\n skipWhiteSpace.lastIndex = awaitEndPos;\n var skipAfterUsing = skipWhiteSpace.exec(this.input);\n if (skipAfterUsing && lineBreak.test(this.input.slice(awaitEndPos, awaitEndPos + skipAfterUsing[0].length))) { return false }\n }\n\n if (isFor) {\n var ofEndPos = next + 2 /* of */, after$1;\n if (this.input.slice(next, ofEndPos) === \"of\") {\n if (ofEndPos === this.input.length ||\n (!isIdentifierChar(after$1 = this.input.charCodeAt(ofEndPos)) && !(after$1 > 0xd7ff && after$1 < 0xdc00))) { return false }\n }\n }\n\n var ch = this.input.charCodeAt(next);\n return isIdentifierStart(ch, true) || ch === 92 // '\\'\n};\n\npp$8.isAwaitUsing = function(isFor) {\n return this.isUsingKeyword(true, isFor)\n};\n\npp$8.isUsing = function(isFor) {\n return this.isUsingKeyword(false, isFor)\n};\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp$8.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types$1._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types$1._debugger: return this.parseDebuggerStatement(node)\n case types$1._do: return this.parseDoStatement(node)\n case types$1._for: return this.parseForStatement(node)\n case types$1._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types$1._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types$1._if: return this.parseIfStatement(node)\n case types$1._return: return this.parseReturnStatement(node)\n case types$1._switch: return this.parseSwitchStatement(node)\n case types$1._throw: return this.parseThrowStatement(node)\n case types$1._try: return this.parseTryStatement(node)\n case types$1._const: case types$1._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types$1._while: return this.parseWhileStatement(node)\n case types$1._with: return this.parseWithStatement(node)\n case types$1.braceL: return this.parseBlock(true, node)\n case types$1.semi: return this.parseEmptyStatement(node)\n case types$1._export:\n case types$1._import:\n if (this.options.ecmaVersion > 10 && starttype === types$1._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var usingKind = this.isAwaitUsing(false) ? \"await using\" : this.isUsing(false) ? \"using\" : null;\n if (usingKind) {\n if (topLevel && this.options.sourceType === \"script\") {\n this.raise(this.start, \"Using declaration cannot appear in the top level when source type is `script`\");\n }\n if (usingKind === \"await using\") {\n if (!this.canAwait) {\n this.raise(this.start, \"Await using cannot appear outside of async function\");\n }\n this.next();\n }\n this.next();\n this.parseVar(node, false, usingKind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types$1.name && expr.type === \"Identifier\" && this.eat(types$1.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n};\n\npp$8.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types$1.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n};\n\npp$8.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n};\n\npp$8.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types$1._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types$1.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n};\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp$8.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types$1.parenL);\n if (this.type === types$1.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types$1._var || this.type === types$1._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n return this.parseForAfterInit(node, init$1, awaitAt)\n }\n var startsWithLet = this.isContextual(\"let\"), isForOf = false;\n\n var usingKind = this.isUsing(true) ? \"using\" : this.isAwaitUsing(true) ? \"await using\" : null;\n if (usingKind) {\n var init$2 = this.startNode();\n this.next();\n if (usingKind === \"await using\") { this.next(); }\n this.parseVar(init$2, true, usingKind);\n this.finishNode(init$2, \"VariableDeclaration\");\n return this.parseForAfterInit(node, init$2, awaitAt)\n }\n var containsEsc = this.containsEsc;\n var refDestructuringErrors = new DestructuringErrors;\n var initPos = this.start;\n var init = awaitAt > -1\n ? this.parseExprSubscripts(refDestructuringErrors, \"await\")\n : this.parseExpression(true, refDestructuringErrors);\n if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (awaitAt > -1) { // implies `ecmaVersion >= 9` (see declaration of awaitAt)\n if (this.type === types$1._in) { this.unexpected(awaitAt); }\n node.await = true;\n } else if (isForOf && this.options.ecmaVersion >= 8) {\n if (init.start === initPos && !containsEsc && init.type === \"Identifier\" && init.name === \"async\") { this.unexpected(); }\n else if (this.options.ecmaVersion >= 9) { node.await = false; }\n }\n if (startsWithLet && isForOf) { this.raise(init.start, \"The left-hand side of a for-of loop may not start with 'let'.\"); }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\n// Helper method to parse for loop after variable initialization\npp$8.parseForAfterInit = function(node, init, awaitAt) {\n if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types$1._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\npp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n};\n\npp$8.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types$1._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n};\n\npp$8.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n};\n\npp$8.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types$1.braceL);\n this.labels.push(switchLabel);\n this.enterScope(0);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types$1.braceR;) {\n if (this.type === types$1._case || this.type === types$1._default) {\n var isCase = this.type === types$1._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types$1.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n};\n\npp$8.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n};\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty$1 = [];\n\npp$8.parseCatchClauseParam = function() {\n var param = this.parseBindingAtom();\n var simple = param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types$1.parenR);\n\n return param\n};\n\npp$8.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types$1._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types$1.parenL)) {\n clause.param = this.parseCatchClauseParam();\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n};\n\npp$8.parseVarStatement = function(node, kind, allowMissingInitializer) {\n this.next();\n this.parseVar(node, false, kind, allowMissingInitializer);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n};\n\npp$8.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n};\n\npp$8.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n};\n\npp$8.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n};\n\npp$8.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types$1._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n};\n\npp$8.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n};\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types$1.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n};\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp$8.parseFor = function(node, init) {\n node.init = init;\n this.expect(types$1.semi);\n node.test = this.type === types$1.semi ? null : this.parseExpression();\n this.expect(types$1.semi);\n node.update = this.type === types$1.parenR ? null : this.parseExpression();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n};\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp$8.parseForIn = function(node, init) {\n var isForIn = this.type === types$1._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n};\n\n// Parse a list of variable declarations.\n\npp$8.parseVar = function(node, isFor, kind, allowMissingInitializer) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types$1.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (!allowMissingInitializer && kind === \"const\" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (!allowMissingInitializer && (kind === \"using\" || kind === \"await using\") && this.options.ecmaVersion >= 17 && this.type !== types$1._in && !this.isContextual(\"of\")) {\n this.raise(this.lastTokEnd, (\"Missing initializer in \" + kind + \" declaration\"));\n } else if (!allowMissingInitializer && decl.id.type !== \"Identifier\" && !(isFor && (this.type === types$1._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types$1.comma)) { break }\n }\n return node\n};\n\npp$8.parseVarId = function(decl, kind) {\n decl.id = kind === \"using\" || kind === \"await using\"\n ? this.parseIdent()\n : this.parseBindingAtom();\n\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n};\n\nvar FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types$1.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types$1.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n};\n\npp$8.parseFunctionParams = function(node) {\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n};\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp$8.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var privateNameMap = this.enterClassBody();\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types$1.braceL);\n while (this.type !== types$1.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raiseRecoverable(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n } else if (element.key && element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.exitClassBody();\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n};\n\npp$8.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(types$1.semi)) { return null }\n\n var ecmaVersion = this.options.ecmaVersion;\n var node = this.startNode();\n var keyName = \"\";\n var isGenerator = false;\n var isAsync = false;\n var kind = \"method\";\n var isStatic = false;\n\n if (this.eatContextual(\"static\")) {\n // Parse static init block\n if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {\n this.parseClassStaticBlock(node);\n return node\n }\n if (this.isClassElementNameStart() || this.type === types$1.star) {\n isStatic = true;\n } else {\n keyName = \"static\";\n }\n }\n node.static = isStatic;\n if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {\n isAsync = true;\n } else {\n keyName = \"async\";\n }\n }\n if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {\n isGenerator = true;\n }\n if (!keyName && !isAsync && !isGenerator) {\n var lastValue = this.value;\n if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n if (this.isClassElementNameStart()) {\n kind = lastValue;\n } else {\n keyName = lastValue;\n }\n }\n }\n\n // Parse element name\n if (keyName) {\n // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n // The last token is any of those. Make it the element name.\n node.computed = false;\n node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n node.key.name = keyName;\n this.finishNode(node.key, \"Identifier\");\n } else {\n this.parseClassElementName(node);\n }\n\n // Parse element value\n if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== \"method\" || isGenerator || isAsync) {\n var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n node.kind = isConstructor ? \"constructor\" : kind;\n this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n } else {\n this.parseClassField(node);\n }\n\n return node\n};\n\npp$8.isClassElementNameStart = function() {\n return (\n this.type === types$1.name ||\n this.type === types$1.privateId ||\n this.type === types$1.num ||\n this.type === types$1.string ||\n this.type === types$1.bracketL ||\n this.type.keyword\n )\n};\n\npp$8.parseClassElementName = function(element) {\n if (this.type === types$1.privateId) {\n if (this.value === \"constructor\") {\n this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n }\n element.computed = false;\n element.key = this.parsePrivateIdent();\n } else {\n this.parsePropertyName(element);\n }\n};\n\npp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n // Check key and flags\n var key = method.key;\n if (method.kind === \"constructor\") {\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n } else if (method.static && checkKeyName(method, \"prototype\")) {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n\n // Parse value\n var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n // Check value\n if (method.kind === \"get\" && value.params.length !== 0)\n { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && value.params.length !== 1)\n { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n return this.finishNode(method, \"MethodDefinition\")\n};\n\npp$8.parseClassField = function(field) {\n if (checkKeyName(field, \"constructor\")) {\n this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n } else if (field.static && checkKeyName(field, \"prototype\")) {\n this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n }\n\n if (this.eat(types$1.eq)) {\n // To raise SyntaxError if 'arguments' exists in the initializer.\n this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);\n field.value = this.parseMaybeAssign();\n this.exitScope();\n } else {\n field.value = null;\n }\n this.semicolon();\n\n return this.finishNode(field, \"PropertyDefinition\")\n};\n\npp$8.parseClassStaticBlock = function(node) {\n node.body = [];\n\n var oldLabels = this.labels;\n this.labels = [];\n this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n this.next();\n this.exitScope();\n this.labels = oldLabels;\n\n return this.finishNode(node, \"StaticBlock\")\n};\n\npp$8.parseClassId = function(node, isStatement) {\n if (this.type === types$1.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n};\n\npp$8.parseClassSuper = function(node) {\n node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null;\n};\n\npp$8.enterClassBody = function() {\n var element = {declared: Object.create(null), used: []};\n this.privateNameStack.push(element);\n return element.declared\n};\n\npp$8.exitClassBody = function() {\n var ref = this.privateNameStack.pop();\n var declared = ref.declared;\n var used = ref.used;\n if (!this.options.checkPrivateFields) { return }\n var len = this.privateNameStack.length;\n var parent = len === 0 ? null : this.privateNameStack[len - 1];\n for (var i = 0; i < used.length; ++i) {\n var id = used[i];\n if (!hasOwn(declared, id.name)) {\n if (parent) {\n parent.used.push(id);\n } else {\n this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n }\n }\n }\n};\n\nfunction isPrivateNameConflicted(privateNameMap, element) {\n var name = element.key.name;\n var curr = privateNameMap[name];\n\n var next = \"true\";\n if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n next = (element.static ? \"s\" : \"i\") + element.kind;\n }\n\n // `class { get #a(){}; static set #a(_){} }` is also conflict.\n if (\n curr === \"iget\" && next === \"iset\" ||\n curr === \"iset\" && next === \"iget\" ||\n curr === \"sget\" && next === \"sset\" ||\n curr === \"sset\" && next === \"sget\"\n ) {\n privateNameMap[name] = \"true\";\n return false\n } else if (!curr) {\n privateNameMap[name] = next;\n return false\n } else {\n return true\n }\n}\n\nfunction checkKeyName(node, name) {\n var computed = node.computed;\n var key = node.key;\n return !computed && (\n key.type === \"Identifier\" && key.name === name ||\n key.type === \"Literal\" && key.value === name\n )\n}\n\n// Parses module export declaration.\n\npp$8.parseExportAllDeclaration = function(node, exports) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseModuleExportName();\n this.checkExport(exports, node.exported, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n};\n\npp$8.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types$1.star)) {\n return this.parseExportAllDeclaration(node, exports)\n }\n if (this.eat(types$1._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n node.declaration = this.parseExportDefaultDeclaration();\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseExportDeclaration(node);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n if (this.options.ecmaVersion >= 16)\n { node.attributes = []; }\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n\n if (spec.local.type === \"Literal\") {\n this.raise(spec.local.start, \"A string literal cannot be used as an exported binding without `from`.\");\n }\n }\n\n node.source = null;\n if (this.options.ecmaVersion >= 16)\n { node.attributes = []; }\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n};\n\npp$8.parseExportDeclaration = function(node) {\n return this.parseStatement(null)\n};\n\npp$8.parseExportDefaultDeclaration = function() {\n var isAsync;\n if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n return this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n } else if (this.type === types$1._class) {\n var cNode = this.startNode();\n return this.parseClass(cNode, \"nullableID\")\n } else {\n var declaration = this.parseMaybeAssign();\n this.semicolon();\n return declaration\n }\n};\n\npp$8.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (typeof name !== \"string\")\n { name = name.type === \"Identifier\" ? name.name : name.value; }\n if (hasOwn(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n};\n\npp$8.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n};\n\npp$8.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n};\n\npp$8.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n};\n\n// Parses a comma-separated list of module exports.\n\npp$8.parseExportSpecifier = function(exports) {\n var node = this.startNode();\n node.local = this.parseModuleExportName();\n\n node.exported = this.eatContextual(\"as\") ? this.parseModuleExportName() : node.local;\n this.checkExport(\n exports,\n node.exported,\n node.exported.start\n );\n\n return this.finishNode(node, \"ExportSpecifier\")\n};\n\npp$8.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n nodes.push(this.parseExportSpecifier(exports));\n }\n return nodes\n};\n\n// Parses import declaration.\n\npp$8.parseImport = function(node) {\n this.next();\n\n // import '...'\n if (this.type === types$1.string) {\n node.specifiers = empty$1;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();\n }\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n};\n\n// Parses a comma-separated list of module imports.\n\npp$8.parseImportSpecifier = function() {\n var node = this.startNode();\n node.imported = this.parseModuleExportName();\n\n if (this.eatContextual(\"as\")) {\n node.local = this.parseIdent();\n } else {\n this.checkUnreserved(node.imported);\n node.local = node.imported;\n }\n this.checkLValSimple(node.local, BIND_LEXICAL);\n\n return this.finishNode(node, \"ImportSpecifier\")\n};\n\npp$8.parseImportDefaultSpecifier = function() {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n return this.finishNode(node, \"ImportDefaultSpecifier\")\n};\n\npp$8.parseImportNamespaceSpecifier = function() {\n var node = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n return this.finishNode(node, \"ImportNamespaceSpecifier\")\n};\n\npp$8.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types$1.name) {\n nodes.push(this.parseImportDefaultSpecifier());\n if (!this.eat(types$1.comma)) { return nodes }\n }\n if (this.type === types$1.star) {\n nodes.push(this.parseImportNamespaceSpecifier());\n return nodes\n }\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n nodes.push(this.parseImportSpecifier());\n }\n return nodes\n};\n\npp$8.parseWithClause = function() {\n var nodes = [];\n if (!this.eat(types$1._with)) {\n return nodes\n }\n this.expect(types$1.braceL);\n var attributeKeys = {};\n var first = true;\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var attr = this.parseImportAttribute();\n var keyName = attr.key.type === \"Identifier\" ? attr.key.name : attr.key.value;\n if (hasOwn(attributeKeys, keyName))\n { this.raiseRecoverable(attr.key.start, \"Duplicate attribute key '\" + keyName + \"'\"); }\n attributeKeys[keyName] = true;\n nodes.push(attr);\n }\n return nodes\n};\n\npp$8.parseImportAttribute = function() {\n var node = this.startNode();\n node.key = this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\");\n this.expect(types$1.colon);\n if (this.type !== types$1.string) {\n this.unexpected();\n }\n node.value = this.parseExprAtom();\n return this.finishNode(node, \"ImportAttribute\")\n};\n\npp$8.parseModuleExportName = function() {\n if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {\n var stringLiteral = this.parseLiteral(this.value);\n if (loneSurrogate.test(stringLiteral.value)) {\n this.raise(stringLiteral.start, \"An export name cannot include a lone surrogate.\");\n }\n return stringLiteral\n }\n return this.parseIdent(true)\n};\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp$8.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n};\npp$8.isDirectiveCandidate = function(statement) {\n return (\n this.options.ecmaVersion >= 5 &&\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n};\n\nvar pp$7 = Parser.prototype;\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n};\n\n// Convert list of expression atoms to binding list.\n\npp$7.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n};\n\n// Parses spread element.\n\npp$7.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n};\n\npp$7.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types$1.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n};\n\n// Parses lvalue (assignable) atom.\n\npp$7.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types$1.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types$1.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types$1.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n};\n\npp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowModifiers) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types$1.comma); }\n if (allowEmpty && this.type === types$1.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types$1.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types$1.comma) { this.raiseRecoverable(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n elts.push(this.parseAssignableListItem(allowModifiers));\n }\n }\n return elts\n};\n\npp$7.parseAssignableListItem = function(allowModifiers) {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n return elem\n};\n\npp$7.parseBindingListItem = function(param) {\n return param\n};\n\n// Parses assignment pattern around given atom if possible.\n\npp$7.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n};\n\n// The following three functions all verify that a node is an lvalue —\n// something that can be bound, or assigned to. In order to do so, they perform\n// a variety of checks:\n//\n// - Check that none of the bound/assigned-to identifiers are reserved words.\n// - Record name declarations for bindings in the appropriate scope.\n// - Check duplicate argument names, if checkClashes is set.\n//\n// If a complex binding pattern is encountered (e.g., object and array\n// destructuring), the entire pattern is recursively checked.\n//\n// There are three versions of checkLVal*() appropriate for different\n// circumstances:\n//\n// - checkLValSimple() shall be used if the syntactic construct supports\n// nothing other than identifiers and member expressions. Parenthesized\n// expressions are also correctly handled. This is generally appropriate for\n// constructs for which the spec says\n//\n// > It is a Syntax Error if AssignmentTargetType of [the production] is not\n// > simple.\n//\n// It is also appropriate for checking if an identifier is valid and not\n// defined elsewhere, like import declarations or function/class identifiers.\n//\n// Examples where this is used include:\n// a += …;\n// import a from '…';\n// where a is the node to be checked.\n//\n// - checkLValPattern() shall be used if the syntactic construct supports\n// anything checkLValSimple() supports, as well as object and array\n// destructuring patterns. This is generally appropriate for constructs for\n// which the spec says\n//\n// > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n// > an ArrayLiteral and AssignmentTargetType of [the production] is not\n// > simple.\n//\n// Examples where this is used include:\n// (a = …);\n// const a = …;\n// try { … } catch (a) { … }\n// where a is the node to be checked.\n//\n// - checkLValInnerPattern() shall be used if the syntactic construct supports\n// anything checkLValPattern() supports, as well as default assignment\n// patterns, rest elements, and other constructs that may appear within an\n// object or array destructuring pattern.\n//\n// As a special case, function parameters also use checkLValInnerPattern(),\n// as they also support defaults and rest constructs.\n//\n// These functions deliberately support both assignment and binding constructs,\n// as the logic for both is exceedingly similar. If the node is the target of\n// an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n// should be set to the appropriate BIND_* constant, like BIND_VAR or\n// BIND_LEXICAL.\n//\n// If the function is called with a non-BIND_NONE bindingType, then\n// additionally a checkClashes object may be specified to allow checking for\n// duplicate argument names. checkClashes is ignored if the provided construct\n// is an assignment (i.e., bindingType is BIND_NONE).\n\npp$7.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (hasOwn(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n};\n\npp$7.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n};\n\npp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n};\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\n\nvar TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n};\n\nvar types = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n};\n\nvar pp$6 = Parser.prototype;\n\npp$6.initialContext = function() {\n return [types.b_stat]\n};\n\npp$6.curContext = function() {\n return this.context[this.context.length - 1]\n};\n\npp$6.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types.f_expr || parent === types.f_stat)\n { return true }\n if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)\n { return true }\n if (prevType === types$1.braceL)\n { return parent === types.b_stat }\n if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)\n { return false }\n return !this.exprAllowed\n};\n\npp$6.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n};\n\npp$6.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types$1.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n};\n\n// Used to handle edge cases when token context could not be inferred correctly during tokenization phase\n\npp$6.overrideContext = function(tokenCtx) {\n if (this.curContext() !== tokenCtx) {\n this.context[this.context.length - 1] = tokenCtx;\n }\n};\n\n// Token-specific context update code\n\ntypes$1.parenR.updateContext = types$1.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n};\n\ntypes$1.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\n this.exprAllowed = true;\n};\n\ntypes$1.dollarBraceL.updateContext = function() {\n this.context.push(types.b_tmpl);\n this.exprAllowed = true;\n};\n\ntypes$1.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;\n this.context.push(statementParens ? types.p_stat : types.p_expr);\n this.exprAllowed = true;\n};\n\ntypes$1.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n};\n\ntypes$1._function.updateContext = types$1._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types$1._else &&\n !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&\n !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))\n { this.context.push(types.f_expr); }\n else\n { this.context.push(types.f_stat); }\n this.exprAllowed = false;\n};\n\ntypes$1.colon.updateContext = function() {\n if (this.curContext().token === \"function\") { this.context.pop(); }\n this.exprAllowed = true;\n};\n\ntypes$1.backQuote.updateContext = function() {\n if (this.curContext() === types.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types.q_tmpl); }\n this.exprAllowed = false;\n};\n\ntypes$1.star.updateContext = function(prevType) {\n if (prevType === types$1._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types.f_expr)\n { this.context[index] = types.f_expr_gen; }\n else\n { this.context[index] = types.f_gen; }\n }\n this.exprAllowed = true;\n};\n\ntypes$1.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n};\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\n\nvar pp$5 = Parser.prototype;\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0) {\n refDestructuringErrors.doubleProto = key.start;\n }\n } else {\n this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\");\n }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n};\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp$5.parseExpression = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n if (this.type === types$1.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n};\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(forInit) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n oldDoubleProto = refDestructuringErrors.doubleProto;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types$1.parenL || this.type === types$1.name) {\n this.potentialArrowAt = this.start;\n this.potentialArrowInForAwait = forInit === \"await\";\n }\n var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types$1.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types$1.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(forInit);\n if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n};\n\n// Parse a ternary conditional (`?:`) operator.\n\npp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(forInit, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types$1.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types$1.colon);\n node.alternate = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n};\n\n// Start the precedence parser.\n\npp$5.parseExprOps = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n};\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n var prec = this.type.binop;\n if (prec != null && (!forInit || this.type !== types$1._in)) {\n if (prec > minPrec) {\n var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;\n var coalesce = this.type === types$1.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types$1.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n }\n }\n return left\n};\n\npp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n if (right.type === \"PrivateIdentifier\") { this.raise(right.start, \"Private identifier can only be left side of binary expression\"); }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n};\n\n// Parse unary operators, both prefix and postfix.\n\npp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && this.canAwait) {\n expr = this.parseAwait(forInit);\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types$1.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true, update, forInit);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" && isLocalVariableAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else if (!sawUnary && this.type === types$1.privateId) {\n if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) { this.unexpected(); }\n expr = this.parsePrivateIdent();\n // only could be private fields in 'in', such as #x in obj\n if (this.type !== types$1._in) { this.unexpected(); }\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!incDec && this.eat(types$1.starstar)) {\n if (sawUnary)\n { this.unexpected(this.lastTokStart); }\n else\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), \"**\", false) }\n } else {\n return expr\n }\n};\n\nfunction isLocalVariableAccess(node) {\n return (\n node.type === \"Identifier\" ||\n node.type === \"ParenthesizedExpression\" && isLocalVariableAccess(node.expression)\n )\n}\n\nfunction isPrivateFieldAccess(node) {\n return (\n node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression) ||\n node.type === \"ParenthesizedExpression\" && isPrivateFieldAccess(node.expression)\n )\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors, forInit);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n }\n return result\n};\n\npp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n};\n\npp$5.shouldParseAsyncArrow = function() {\n return !this.canInsertSemicolon() && this.eat(types$1.arrow)\n};\n\npp$5.parseSubscriptAsyncArrow = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit)\n};\n\npp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types$1.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types$1.bracketL);\n if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(types$1.bracketR);\n } else if (this.type === types$1.privateId && base.type !== \"Super\") {\n node.property = this.parsePrivateIdent();\n } else {\n node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n }\n node.computed = !!computed;\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types$1.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && this.shouldParseAsyncArrow()) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types$1.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n};\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp$5.parseExprAtom = function(refDestructuringErrors, forInit, forNew) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types$1.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types$1._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types$1.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types$1._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types$1.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types$1._function)) {\n this.overrideContext(types.f_expr);\n return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)\n }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types$1.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types$1.name && !containsEsc &&\n (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types$1.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)\n }\n }\n return id\n\n case types$1.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types$1.num: case types$1.string:\n return this.parseLiteral(this.value)\n\n case types$1._null: case types$1._true: case types$1._false:\n node = this.startNode();\n node.value = this.type === types$1._null ? null : this.type === types$1._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types$1.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types$1.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types$1.braceL:\n this.overrideContext(types.b_expr);\n return this.parseObj(false, refDestructuringErrors)\n\n case types$1._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types$1._class:\n return this.parseClass(this.startNode(), false)\n\n case types$1._new:\n return this.parseNew()\n\n case types$1.backQuote:\n return this.parseTemplate()\n\n case types$1._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport(forNew)\n } else {\n return this.unexpected()\n }\n\n default:\n return this.parseExprAtomDefault()\n }\n};\n\npp$5.parseExprAtomDefault = function() {\n this.unexpected();\n};\n\npp$5.parseExprImport = function(forNew) {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n this.next();\n\n if (this.type === types$1.parenL && !forNew) {\n return this.parseDynamicImport(node)\n } else if (this.type === types$1.dot) {\n var meta = this.startNodeAt(node.start, node.loc && node.loc.start);\n meta.name = \"import\";\n node.meta = this.finishNode(meta, \"Identifier\");\n return this.parseImportMeta(node)\n } else {\n this.unexpected();\n }\n};\n\npp$5.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n if (this.options.ecmaVersion >= 16) {\n if (!this.eat(types$1.parenR)) {\n this.expect(types$1.comma);\n if (!this.afterTrailingComma(types$1.parenR)) {\n node.options = this.parseMaybeAssign();\n if (!this.eat(types$1.parenR)) {\n this.expect(types$1.comma);\n if (!this.afterTrailingComma(types$1.parenR)) {\n this.unexpected();\n }\n }\n } else {\n node.options = null;\n }\n } else {\n node.options = null;\n }\n } else {\n // Verify ending.\n if (!this.eat(types$1.parenR)) {\n var errorPos = this.start;\n if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n};\n\npp$5.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n};\n\npp$5.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110)\n { node.bigint = node.value != null ? node.value.toString() : node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n};\n\npp$5.parseParenExpression = function() {\n this.expect(types$1.parenL);\n var val = this.parseExpression();\n this.expect(types$1.parenR);\n return val\n};\n\npp$5.shouldParseArrow = function(exprList) {\n return !this.canInsertSemicolon()\n};\n\npp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types$1.parenR) {\n first ? first = false : this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types$1.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types$1.comma) {\n this.raiseRecoverable(\n this.start,\n \"Comma is not permitted after the rest element\"\n );\n }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;\n this.expect(types$1.parenR);\n\n if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$1.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList, forInit)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n};\n\npp$5.parseParenItem = function(item) {\n return item\n};\n\npp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)\n};\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nvar empty = [];\n\npp$5.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n this.next();\n if (this.options.ecmaVersion >= 6 && this.type === types$1.dot) {\n var meta = this.startNodeAt(node.start, node.loc && node.loc.start);\n meta.name = \"new\";\n node.meta = this.finishNode(meta, \"Identifier\");\n this.next();\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.allowNewDotTarget)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions and class static block\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc;\n node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false);\n if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty; }\n return this.finishNode(node, \"NewExpression\")\n};\n\n// Parse template expression.\n\npp$5.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types$1.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value.replace(/\\r\\n?/g, \"\\n\"),\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types$1.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n};\n\npp$5.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types$1.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types$1.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types$1.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n};\n\npp$5.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\n// Parse an object literal or binding pattern.\n\npp$5.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n};\n\npp$5.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types$1.comma) {\n this.raiseRecoverable(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types$1.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);\n this.parsePropertyName(prop);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n};\n\npp$5.parseGetterSetter = function(prop) {\n var kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n prop.kind = kind;\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n};\n\npp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types$1.colon)\n { this.unexpected(); }\n\n if (this.eat(types$1.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n prop.kind = \"init\";\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.parseGetterSetter(prop);\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types$1.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.kind = \"init\";\n prop.shorthand = true;\n } else { this.unexpected(); }\n};\n\npp$5.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types$1.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types$1.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n};\n\n// Initialize empty function node.\n\npp$5.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n};\n\n// Parse object or class method.\n\npp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n};\n\n// Parse arrow function expression with given parameters.\n\npp$5.parseArrowExpression = function(node, params, isAsync, forInit) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n};\n\n// Parse function body and check parameters.\n\npp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {\n var isExpression = isArrowFunction && this.type !== types$1.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign(forInit);\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n};\n\npp$5.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n};\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp$5.checkParams = function(node, allowDuplicates) {\n var nameHash = Object.create(null);\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n};\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types$1.comma)\n { elt = null; }\n else if (this.type === types$1.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n};\n\npp$5.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (!(this.currentThisScope().flags & SCOPE_VAR) && name === \"arguments\")\n { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n if (this.inClassStaticBlock && (name === \"arguments\" || name === \"await\"))\n { this.raise(start, (\"Cannot use \" + name + \" in class static initialization block\")); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n};\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp$5.parseIdent = function(liberal) {\n var node = this.parseIdentNode();\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n};\n\npp$5.parseIdentNode = function() {\n var node = this.startNode();\n if (this.type === types$1.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n this.type = types$1.name;\n } else {\n this.unexpected();\n }\n return node\n};\n\npp$5.parsePrivateIdent = function() {\n var node = this.startNode();\n if (this.type === types$1.privateId) {\n node.name = this.value;\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"PrivateIdentifier\");\n\n // For validating existence\n if (this.options.checkPrivateFields) {\n if (this.privateNameStack.length === 0) {\n this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n } else {\n this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n }\n }\n\n return node\n};\n\n// Parses yield expression inside generator.\n\npp$5.parseYield = function(forInit) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types$1.star);\n node.argument = this.parseMaybeAssign(forInit);\n }\n return this.finishNode(node, \"YieldExpression\")\n};\n\npp$5.parseAwait = function(forInit) {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true, false, forInit);\n return this.finishNode(node, \"AwaitExpression\")\n};\n\nvar pp$4 = Parser.prototype;\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n if (this.sourceFile) {\n message += \" in \" + this.sourceFile;\n }\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n};\n\npp$4.raiseRecoverable = pp$4.raise;\n\npp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n};\n\nvar pp$3 = Parser.prototype;\n\nvar Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n};\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp$3.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n};\n\npp$3.exitScope = function() {\n this.scopeStack.pop();\n};\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp$3.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n};\n\npp$3.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n};\n\npp$3.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n};\n\npp$3.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n};\n\npp$3.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope }\n }\n};\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp$3.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) &&\n !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n};\n\nvar Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n};\n\n// Start an AST node, attaching a start offset.\n\nvar pp$2 = Parser.prototype;\n\npp$2.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n};\n\npp$2.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n};\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n}\n\npp$2.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n};\n\n// Finish node at given position\n\npp$2.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n};\n\npp$2.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n};\n\n// This file was generated by \"bin/generate-unicode-script-values.js\". Do not modify manually!\nvar scriptValuesAddedInUnicode = \"Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz\";\n\n// This file contains Unicode properties extracted from the ECMAScript specification.\n// The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nvar ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\nvar ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\nvar ecma11BinaryProperties = ecma10BinaryProperties;\nvar ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\nvar ecma13BinaryProperties = ecma12BinaryProperties;\nvar ecma14BinaryProperties = ecma13BinaryProperties;\n\nvar unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties,\n 13: ecma13BinaryProperties,\n 14: ecma14BinaryProperties\n};\n\n// #table-binary-unicode-properties-of-strings\nvar ecma14BinaryPropertiesOfStrings = \"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji\";\n\nvar unicodeBinaryPropertiesOfStrings = {\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: ecma14BinaryPropertiesOfStrings\n};\n\n// #table-unicode-general-category-values\nvar unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n// #table-unicode-script-values\nvar ecma9ScriptValues = \"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\nvar ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\nvar ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\nvar ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\nvar ecma13ScriptValues = ecma12ScriptValues + \" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\";\nvar ecma14ScriptValues = ecma13ScriptValues + \" \" + scriptValuesAddedInUnicode;\n\nvar unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues,\n 13: ecma13ScriptValues,\n 14: ecma14ScriptValues\n};\n\nvar data = {};\nfunction buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n binaryOfStrings: wordsRegexp(unicodeBinaryPropertiesOfStrings[ecmaVersion]),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n}\n\nfor (var i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) {\n var ecmaVersion = list[i];\n\n buildUnicodeData(ecmaVersion);\n}\n\nvar pp$1 = Parser.prototype;\n\n// Track disjunction structure to determine whether a duplicate\n// capture group name is allowed because it is in a separate branch.\nvar BranchID = function BranchID(parent, base) {\n // Parent disjunction branch\n this.parent = parent;\n // Identifies this set of sibling branches\n this.base = base || this;\n};\n\nBranchID.prototype.separatedFrom = function separatedFrom (alt) {\n // A branch is separate from another branch if they or any of\n // their parents are siblings in a given disjunction\n for (var self = this; self; self = self.parent) {\n for (var other = alt; other; other = other.parent) {\n if (self.base === other.base && self !== other) { return true }\n }\n }\n return false\n};\n\nBranchID.prototype.sibling = function sibling () {\n return new BranchID(this.parent, this.base)\n};\n\nvar RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\") + (parser.options.ecmaVersion >= 15 ? \"v\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchV = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = Object.create(null);\n this.backReferenceNames = [];\n this.branchID = null;\n};\n\nRegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicodeSets = flags.indexOf(\"v\") !== -1;\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n if (unicodeSets && this.parser.options.ecmaVersion >= 15) {\n this.switchU = true;\n this.switchV = true;\n this.switchN = true;\n } else {\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchV = false;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n }\n};\n\nRegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n};\n\n// If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n// Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\nRegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n};\n\nRegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n};\n\nRegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n};\n\nRegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n};\n\nRegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n};\n\nRegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n};\n\nRegExpValidationState.prototype.eatChars = function eatChars (chs, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var pos = this.pos;\n for (var i = 0, list = chs; i < list.length; i += 1) {\n var ch = list[i];\n\n var current = this.at(pos, forceU);\n if (current === -1 || current !== ch) {\n return false\n }\n pos = this.nextIndex(pos, forceU);\n }\n this.pos = pos;\n return true\n};\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n var u = false;\n var v = false;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n if (flag === \"u\") { u = true; }\n if (flag === \"v\") { v = true; }\n }\n if (this.options.ecmaVersion >= 15 && u && v) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n};\n\nfunction hasProp(obj) {\n for (var _ in obj) { return true }\n return false\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && hasProp(state.groupNames)) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp$1.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames = Object.create(null);\n state.backReferenceNames.length = 0;\n state.branchID = null;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (!state.groupNames[name]) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp$1.regexp_disjunction = function(state) {\n var trackDisjunction = this.options.ecmaVersion >= 16;\n if (trackDisjunction) { state.branchID = new BranchID(state.branchID, null); }\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n if (trackDisjunction) { state.branchID = state.branchID.sibling(); }\n this.regexp_alternative(state);\n }\n if (trackDisjunction) { state.branchID = state.branchID.parent; }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp$1.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state)) {}\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp$1.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp$1.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp$1.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp$1.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n};\npp$1.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp$1.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n};\npp$1.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */)) {\n if (this.options.ecmaVersion >= 16) {\n var addModifiers = this.regexp_eatModifiers(state);\n var hasHyphen = state.eat(0x2D /* - */);\n if (addModifiers || hasHyphen) {\n for (var i = 0; i < addModifiers.length; i++) {\n var modifier = addModifiers.charAt(i);\n if (addModifiers.indexOf(modifier, i + 1) > -1) {\n state.raise(\"Duplicate regular expression modifiers\");\n }\n }\n if (hasHyphen) {\n var removeModifiers = this.regexp_eatModifiers(state);\n if (!addModifiers && !removeModifiers && state.current() === 0x3A /* : */) {\n state.raise(\"Invalid regular expression modifiers\");\n }\n for (var i$1 = 0; i$1 < removeModifiers.length; i$1++) {\n var modifier$1 = removeModifiers.charAt(i$1);\n if (\n removeModifiers.indexOf(modifier$1, i$1 + 1) > -1 ||\n addModifiers.indexOf(modifier$1) > -1\n ) {\n state.raise(\"Duplicate regular expression modifiers\");\n }\n }\n }\n }\n }\n if (state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n};\n// RegularExpressionModifiers ::\n// [empty]\n// RegularExpressionModifiers RegularExpressionModifier\npp$1.regexp_eatModifiers = function(state) {\n var modifiers = \"\";\n var ch = 0;\n while ((ch = state.current()) !== -1 && isRegularExpressionModifier(ch)) {\n modifiers += codePointToString(ch);\n state.advance();\n }\n return modifiers\n};\n// RegularExpressionModifier :: one of\n// `i` `m` `s`\nfunction isRegularExpressionModifier(ch) {\n return ch === 0x69 /* i */ || ch === 0x6d /* m */ || ch === 0x73 /* s */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp$1.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp$1.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp$1.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp$1.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp$1.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n};\n\n// GroupSpecifier ::\n// [empty]\n// `?` GroupName\npp$1.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (!this.regexp_eatGroupName(state)) { state.raise(\"Invalid group\"); }\n var trackDisjunction = this.options.ecmaVersion >= 16;\n var known = state.groupNames[state.lastStringValue];\n if (known) {\n if (trackDisjunction) {\n for (var i = 0, list = known; i < list.length; i += 1) {\n var altID = list[i];\n\n if (!altID.separatedFrom(state.branchID))\n { state.raise(\"Duplicate capture group name\"); }\n }\n } else {\n state.raise(\"Duplicate capture group name\");\n }\n }\n if (trackDisjunction) {\n (known || (state.groupNames[state.lastStringValue] = [])).push(state.branchID);\n } else {\n state.groupNames[state.lastStringValue] = true;\n }\n }\n};\n\n// GroupName ::\n// `<` RegExpIdentifierName `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n};\n\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierPart\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n};\n\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\npp$1.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\n// <ZWNJ>\n// <ZWJ>\npp$1.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp$1.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n};\npp$1.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp$1.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n};\npp$1.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp$1.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp$1.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n};\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp$1.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp$1.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n};\n\n// Return values used by character set parsing methods, needed to\n// forbid negation of sets that can match strings.\nvar CharSetNone = 0; // Nothing parsed\nvar CharSetOk = 1; // Construct parsed, cannot contain strings\nvar CharSetString = 2; // Construct parsed, can contain strings\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp$1.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return CharSetOk\n }\n\n var negate = false;\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n ((negate = ch === 0x50 /* P */) || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n var result;\n if (\n state.eat(0x7B /* { */) &&\n (result = this.regexp_eatUnicodePropertyValueExpression(state)) &&\n state.eat(0x7D /* } */)\n ) {\n if (negate && result === CharSetString) { state.raise(\"Invalid property name\"); }\n return result\n }\n state.raise(\"Invalid property name\");\n }\n\n return CharSetNone\n};\n\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp$1.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return CharSetOk\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n }\n return CharSetNone\n};\n\npp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!hasOwn(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n};\n\npp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (state.unicodeProperties.binary.test(nameOrValue)) { return CharSetOk }\n if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) { return CharSetString }\n state.raise(\"Invalid property name\");\n};\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp$1.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\n\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp$1.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp$1.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n var negate = state.eat(0x5E /* ^ */);\n var result = this.regexp_classContents(state);\n if (!state.eat(0x5D /* ] */))\n { state.raise(\"Unterminated character class\"); }\n if (negate && result === CharSetString)\n { state.raise(\"Negated character class may contain strings\"); }\n return true\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassContents\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\npp$1.regexp_classContents = function(state) {\n if (state.current() === 0x5D /* ] */) { return CharSetOk }\n if (state.switchV) { return this.regexp_classSetExpression(state) }\n this.regexp_nonEmptyClassRanges(state);\n return CharSetOk\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp$1.regexp_nonEmptyClassRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp$1.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp$1.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetExpression\n// https://tc39.es/ecma262/#prod-ClassUnion\n// https://tc39.es/ecma262/#prod-ClassIntersection\n// https://tc39.es/ecma262/#prod-ClassSubtraction\npp$1.regexp_classSetExpression = function(state) {\n var result = CharSetOk, subResult;\n if (this.regexp_eatClassSetRange(state)) ; else if (subResult = this.regexp_eatClassSetOperand(state)) {\n if (subResult === CharSetString) { result = CharSetString; }\n // https://tc39.es/ecma262/#prod-ClassIntersection\n var start = state.pos;\n while (state.eatChars([0x26, 0x26] /* && */)) {\n if (\n state.current() !== 0x26 /* & */ &&\n (subResult = this.regexp_eatClassSetOperand(state))\n ) {\n if (subResult !== CharSetString) { result = CharSetOk; }\n continue\n }\n state.raise(\"Invalid character in character class\");\n }\n if (start !== state.pos) { return result }\n // https://tc39.es/ecma262/#prod-ClassSubtraction\n while (state.eatChars([0x2D, 0x2D] /* -- */)) {\n if (this.regexp_eatClassSetOperand(state)) { continue }\n state.raise(\"Invalid character in character class\");\n }\n if (start !== state.pos) { return result }\n } else {\n state.raise(\"Invalid character in character class\");\n }\n // https://tc39.es/ecma262/#prod-ClassUnion\n for (;;) {\n if (this.regexp_eatClassSetRange(state)) { continue }\n subResult = this.regexp_eatClassSetOperand(state);\n if (!subResult) { return result }\n if (subResult === CharSetString) { result = CharSetString; }\n }\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetRange\npp$1.regexp_eatClassSetRange = function(state) {\n var start = state.pos;\n if (this.regexp_eatClassSetCharacter(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassSetCharacter(state)) {\n var right = state.lastIntValue;\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n return true\n }\n state.pos = start;\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetOperand\npp$1.regexp_eatClassSetOperand = function(state) {\n if (this.regexp_eatClassSetCharacter(state)) { return CharSetOk }\n return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state)\n};\n\n// https://tc39.es/ecma262/#prod-NestedClass\npp$1.regexp_eatNestedClass = function(state) {\n var start = state.pos;\n if (state.eat(0x5B /* [ */)) {\n var negate = state.eat(0x5E /* ^ */);\n var result = this.regexp_classContents(state);\n if (state.eat(0x5D /* ] */)) {\n if (negate && result === CharSetString) {\n state.raise(\"Negated character class may contain strings\");\n }\n return result\n }\n state.pos = start;\n }\n if (state.eat(0x5C /* \\ */)) {\n var result$1 = this.regexp_eatCharacterClassEscape(state);\n if (result$1) {\n return result$1\n }\n state.pos = start;\n }\n return null\n};\n\n// https://tc39.es/ecma262/#prod-ClassStringDisjunction\npp$1.regexp_eatClassStringDisjunction = function(state) {\n var start = state.pos;\n if (state.eatChars([0x5C, 0x71] /* \\q */)) {\n if (state.eat(0x7B /* { */)) {\n var result = this.regexp_classStringDisjunctionContents(state);\n if (state.eat(0x7D /* } */)) {\n return result\n }\n } else {\n // Make the same message as V8.\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return null\n};\n\n// https://tc39.es/ecma262/#prod-ClassStringDisjunctionContents\npp$1.regexp_classStringDisjunctionContents = function(state) {\n var result = this.regexp_classString(state);\n while (state.eat(0x7C /* | */)) {\n if (this.regexp_classString(state) === CharSetString) { result = CharSetString; }\n }\n return result\n};\n\n// https://tc39.es/ecma262/#prod-ClassString\n// https://tc39.es/ecma262/#prod-NonEmptyClassString\npp$1.regexp_classString = function(state) {\n var count = 0;\n while (this.regexp_eatClassSetCharacter(state)) { count++; }\n return count === 1 ? CharSetOk : CharSetString\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetCharacter\npp$1.regexp_eatClassSetCharacter = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (\n this.regexp_eatCharacterEscape(state) ||\n this.regexp_eatClassSetReservedPunctuator(state)\n ) {\n return true\n }\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n state.pos = start;\n return false\n }\n var ch = state.current();\n if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter(ch)) { return false }\n if (isClassSetSyntaxCharacter(ch)) { return false }\n state.advance();\n state.lastIntValue = ch;\n return true\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedDoublePunctuator\nfunction isClassSetReservedDoublePunctuatorCharacter(ch) {\n return (\n ch === 0x21 /* ! */ ||\n ch >= 0x23 /* # */ && ch <= 0x26 /* & */ ||\n ch >= 0x2A /* * */ && ch <= 0x2C /* , */ ||\n ch === 0x2E /* . */ ||\n ch >= 0x3A /* : */ && ch <= 0x40 /* @ */ ||\n ch === 0x5E /* ^ */ ||\n ch === 0x60 /* ` */ ||\n ch === 0x7E /* ~ */\n )\n}\n\n// https://tc39.es/ecma262/#prod-ClassSetSyntaxCharacter\nfunction isClassSetSyntaxCharacter(ch) {\n return (\n ch === 0x28 /* ( */ ||\n ch === 0x29 /* ) */ ||\n ch === 0x2D /* - */ ||\n ch === 0x2F /* / */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5D /* ] */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator\npp$1.regexp_eatClassSetReservedPunctuator = function(state) {\n var ch = state.current();\n if (isClassSetReservedPunctuator(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator\nfunction isClassSetReservedPunctuator(ch) {\n return (\n ch === 0x21 /* ! */ ||\n ch === 0x23 /* # */ ||\n ch === 0x25 /* % */ ||\n ch === 0x26 /* & */ ||\n ch === 0x2C /* , */ ||\n ch === 0x2D /* - */ ||\n ch >= 0x3A /* : */ && ch <= 0x3E /* > */ ||\n ch === 0x40 /* @ */ ||\n ch === 0x60 /* ` */ ||\n ch === 0x7E /* ~ */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp$1.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp$1.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp$1.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp$1.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n};\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n};\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nvar Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n};\n\n// ## Tokenizer\n\nvar pp = Parser.prototype;\n\n// Move to the next token\n\npp.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n};\n\npp.getToken = function() {\n this.next();\n return new Token(this)\n};\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n { pp[Symbol.iterator] = function() {\n var this$1$1 = this;\n\n return {\n next: function () {\n var token = this$1$1.getToken();\n return {\n done: token.type === types$1.eof,\n value: token\n }\n }\n }\n }; }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n};\n\npp.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n};\n\npp.fullCharCodeAtPos = function() {\n var code = this.input.charCodeAt(this.pos);\n if (code <= 0xd7ff || code >= 0xdc00) { return code }\n var next = this.input.charCodeAt(this.pos + 1);\n return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n};\n\npp.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {\n ++this.curLine;\n pos = this.lineStart = nextBreak;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\npp.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n};\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n};\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types$1.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types$1.dot)\n }\n};\n\npp.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.slash, 1)\n};\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types$1.star : types$1.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types$1.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(tokentype, size)\n};\n\npp.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)\n};\n\npp.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.bitwiseXOR, 1)\n};\n\npp.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types$1.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.plusMin, 1)\n};\n\npp.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(types$1.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types$1.relational, size)\n};\n\npp.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types$1.arrow)\n }\n return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1)\n};\n\npp.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(types$1.coalesce, 2)\n }\n }\n return this.finishOp(types$1.question, 1)\n};\n\npp.readToken_numberSign = function() { // '#'\n var ecmaVersion = this.options.ecmaVersion;\n var code = 35; // '#'\n if (ecmaVersion >= 13) {\n ++this.pos;\n code = this.fullCharCodeAtPos();\n if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n return this.finishToken(types$1.privateId, this.readWord1())\n }\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types$1.parenL)\n case 41: ++this.pos; return this.finishToken(types$1.parenR)\n case 59: ++this.pos; return this.finishToken(types$1.semi)\n case 44: ++this.pos; return this.finishToken(types$1.comma)\n case 91: ++this.pos; return this.finishToken(types$1.bracketL)\n case 93: ++this.pos; return this.finishToken(types$1.bracketR)\n case 123: ++this.pos; return this.finishToken(types$1.braceL)\n case 125: ++this.pos; return this.finishToken(types$1.braceR)\n case 58: ++this.pos; return this.finishToken(types$1.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types$1.prefix, 1)\n\n case 35: // '#'\n return this.readToken_numberSign()\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n};\n\npp.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value})\n};\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n};\n\nfunction stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n}\n\nfunction stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n}\n\npp.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val)\n};\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types$1.num, val)\n};\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n};\n\npp.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else if (ch === 0x2028 || ch === 0x2029) {\n if (this.options.ecmaVersion < 10) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n if (this.options.locations) {\n this.curLine++;\n this.lineStart = this.pos;\n }\n } else {\n if (isNewLine(ch)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types$1.string, out)\n};\n\n// Reads template string tokens.\n\nvar INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\npp.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n};\n\npp.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n};\n\npp.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types$1.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types$1.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n};\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") { break }\n // fall through\n case \"`\":\n return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos))\n\n case \"\\r\":\n if (this.input[this.pos + 1] === \"\\n\") { ++this.pos; }\n // fall through\n case \"\\n\": case \"\\u2028\": case \"\\u2029\":\n ++this.curLine;\n this.lineStart = this.pos + 1;\n break\n }\n }\n this.raise(this.start, \"Unterminated template\");\n};\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n};\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n};\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n};\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n var word = this.readWord1();\n var type = types$1.name;\n if (this.keywords.test(word)) {\n type = keywords[word];\n }\n return this.finishToken(type, word)\n};\n\n// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n//\n// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and\n// various contributors and released under an MIT license.\n//\n// Git repositories for Acorn are available at\n//\n// http://marijnhaverbeke.nl/git/acorn\n// https://github.com/acornjs/acorn.git\n//\n// Please use the [github bug tracker][ghbt] to report issues.\n//\n// [ghbt]: https://github.com/acornjs/acorn/issues\n\n\nvar version = \"8.15.0\";\n\nParser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types$1,\n keywordTypes: keywords,\n TokContext: TokContext,\n tokContexts: types,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n};\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and returns\n// an abstract syntax tree as specified by the [ESTree spec][estree].\n//\n// [estree]: https://github.com/estree/estree\n\nfunction parse(input, options) {\n return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nfunction parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nfunction tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n}\n\nexport { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types as tokContexts, types$1 as tokTypes, tokenizer, version };\n","/**\n * AST node types for authorizer expressions.\n *\n * These represent the semantic structure of expressions like:\n * - `model.id === userId`\n * - `hasRole('admin')`\n * - `hasSomeRole(['admin', 'moderator'])`\n * - `model.id === userId || hasRole('admin')`\n *\n * The AST is produced by parsing with Acorn and converting from ESTree.\n */\n/**\n * Error thrown when parsing an authorizer expression fails.\n */\nexport class AuthorizerExpressionParseError extends Error {\n startPosition;\n endPosition;\n constructor(message, positionOrStart, endPosition) {\n super(message);\n this.name = 'AuthorizerExpressionParseError';\n if (typeof positionOrStart === 'object') {\n this.startPosition = positionOrStart.start;\n this.endPosition = positionOrStart.end;\n }\n else {\n this.startPosition = positionOrStart;\n this.endPosition = endPosition;\n }\n }\n}\n//# sourceMappingURL=authorizer-expression-ast.js.map","/**\n * Parser for authorizer expressions using Acorn.\n *\n * Parses expressions with implicit auth context:\n * - `model.id === userId`\n * - `hasRole('admin')`\n * - `hasSomeRole(['admin', 'moderator'])`\n * - `model.id === userId || hasRole('admin')`\n *\n * Uses Acorn to parse as JavaScript, then converts the ESTree AST\n * to our domain-specific AST, rejecting unsupported constructs.\n */\nimport { parse } from 'acorn';\nimport { AuthorizerExpressionParseError } from './authorizer-expression-ast.js';\n/**\n * Parse an authorizer expression string into our domain AST.\n *\n * @param input - The expression string to parse\n * @returns The parsed expression info including AST and dependencies\n * @throws {AuthorizerExpressionParseError} If the expression is invalid\n *\n * @example\n * ```typescript\n * const result = parseAuthorizerExpression(\"model.id === auth.userId\");\n * // result.ast = { type: 'fieldComparison', ... }\n * // result.modelFieldRefs = ['id']\n * // result.authFieldRefs = ['userId']\n * ```\n */\nexport function parseAuthorizerExpression(input) {\n // Parse with Acorn\n let program;\n try {\n program = parse(input, {\n ecmaVersion: 2020,\n });\n }\n catch (error) {\n if (error instanceof SyntaxError) {\n throw new AuthorizerExpressionParseError(`Invalid expression syntax: ${error.message}`, \n // SyntaxError thrown by Acorn have a pos property\n error.pos);\n }\n throw error;\n }\n // Check body is an expression\n if (program.body.length !== 1) {\n throw new AuthorizerExpressionParseError('Expression must be a single expression statement, e.g. model.id === auth.userId', 0, input.length);\n }\n const expressionStatement = program.body[0];\n if (expressionStatement.type !== 'ExpressionStatement') {\n throw new AuthorizerExpressionParseError('Line must be an expression statement, e.g. model.id === auth.userId', expressionStatement);\n }\n // Convert ESTree to our domain AST\n const ast = convertNode(expressionStatement.expression);\n // Extract dependency information\n const info = extractInfo(ast);\n return {\n ast,\n ...info,\n };\n}\n/**\n * Convert an ESTree expression node to our domain AST.\n */\nfunction convertNode(node) {\n switch (node.type) {\n case 'LogicalExpression': {\n return convertLogicalExpression(node);\n }\n case 'BinaryExpression': {\n return convertBinaryExpression(node);\n }\n case 'CallExpression': {\n return convertCallExpression(node);\n }\n case 'Identifier': {\n if (node.name === 'isAuthenticated') {\n return { type: 'isAuthenticated' };\n }\n throw new AuthorizerExpressionParseError(`Unknown identifier '${node.name}'. Use hasRole(), hasSomeRole(), isAuthenticated, or a comparison like model.id === userId.`, node);\n }\n case 'MemberExpression': {\n // A bare member expression like `model.id` without comparison\n throw new AuthorizerExpressionParseError('Field reference must be part of a comparison (e.g., model.id === auth.userId)', node);\n }\n default: {\n throw new AuthorizerExpressionParseError(`Unsupported expression type: ${node.type}`, node);\n }\n }\n}\n/**\n * Convert a LogicalExpression (|| or &&) to BinaryLogicalNode.\n */\nfunction convertLogicalExpression(node) {\n if (node.operator !== '||' && node.operator !== '&&') {\n throw new AuthorizerExpressionParseError(`Unsupported logical operator: ${node.operator}. Only || and && are supported.`, node.left.end, node.right.start);\n }\n return {\n type: 'binaryLogical',\n operator: node.operator,\n left: convertNode(node.left),\n right: convertNode(node.right),\n };\n}\n/**\n * Convert a BinaryExpression (=== or !==) to FieldComparisonNode.\n */\nfunction convertBinaryExpression(node) {\n if (node.operator !== '===' && node.operator !== '!==') {\n throw new AuthorizerExpressionParseError(`Unsupported comparison operator: ${node.operator}. Only === and !== are supported.`, node.left.end, node.right.start);\n }\n const left = convertFieldRefOrLiteral(node.left);\n const right = convertFieldRefOrLiteral(node.right);\n // At least one side must be a field reference — comparing two literals is not allowed.\n if (left.type === 'literalValue' && right.type === 'literalValue') {\n throw new AuthorizerExpressionParseError('At least one side of a comparison must be a field reference (e.g., model.field or userId).', node);\n }\n return {\n type: 'fieldComparison',\n operator: node.operator,\n left,\n right,\n };\n}\n/**\n * Convert an expression node to either a FieldRefNode or a LiteralValueNode.\n * Supports string, number, and boolean literals.\n */\nfunction convertFieldRefOrLiteral(node) {\n if (node.type === 'UnaryExpression' &&\n (node.operator === '-' || node.operator === '+') &&\n node.argument.type === 'Literal' &&\n typeof node.argument.value === 'number') {\n return {\n type: 'literalValue',\n value: node.operator === '-' ? -node.argument.value : node.argument.value,\n start: node.start,\n end: node.end,\n };\n }\n if (node.type === 'Literal') {\n const { value } = node;\n if (typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean') {\n return {\n type: 'literalValue',\n value,\n start: node.start,\n end: node.end,\n };\n }\n throw new AuthorizerExpressionParseError('Unsupported literal type. Only string, number, and boolean literals are supported.', node);\n }\n return convertFieldRef(node);\n}\n/**\n * Convert a CallExpression to HasRoleNode or HasSomeRoleNode.\n * Supports:\n * - `hasRole('admin')`\n * - `hasSomeRole(['admin', 'moderator'])`\n */\nfunction convertCallExpression(node) {\n // Only support direct calls (e.g., hasRole(...))\n if (node.callee.type !== 'Identifier') {\n throw new AuthorizerExpressionParseError('Function calls must be standalone (hasRole, hasSomeRole)', node.callee);\n }\n const funcName = node.callee.name;\n if (funcName === 'hasRole') {\n return parseHasRoleArgs(node, 'hasRole()');\n }\n if (funcName === 'hasSomeRole') {\n return parseHasSomeRoleArgs(node, 'hasSomeRole()');\n }\n throw new AuthorizerExpressionParseError(`Unknown function '${funcName}'. Use hasRole() or hasSomeRole().`, node.callee);\n}\n/**\n * Parse a `model.X` MemberExpression argument for nested role checks.\n * Returns the relation name and position info.\n */\nfunction parseModelRelationArg(arg, funcName) {\n if (arg.type !== 'MemberExpression') {\n throw new AuthorizerExpressionParseError(`${funcName} first argument must be a model relation (e.g., model.todoList)`, arg);\n }\n if (arg.object.type !== 'Identifier' || arg.object.name !== 'model') {\n throw new AuthorizerExpressionParseError(`${funcName} first argument must start with 'model' (e.g., model.todoList)`, arg.object);\n }\n if (arg.computed) {\n throw new AuthorizerExpressionParseError(`${funcName} computed property access (e.g., model[\"relation\"]) is not supported`, arg.property);\n }\n if (arg.property.type !== 'Identifier') {\n throw new AuthorizerExpressionParseError(`${funcName} expected relation name identifier`, arg.property);\n }\n return {\n relationName: arg.property.name,\n relationStart: arg.start,\n relationEnd: arg.end,\n };\n}\n/**\n * Parse hasRole('role') or hasRole(model.relation, 'role') arguments.\n */\nfunction parseHasRoleArgs(node, funcName) {\n if (node.arguments.length === 1) {\n // Global role check: hasRole('admin')\n const arg = node.arguments[0];\n if (arg.type !== 'Literal' || typeof arg.value !== 'string') {\n throw new AuthorizerExpressionParseError(`${funcName} argument must be a string literal`, arg);\n }\n return {\n type: 'hasRole',\n role: arg.value,\n roleStart: arg.start,\n roleEnd: arg.end,\n };\n }\n if (node.arguments.length === 2) {\n // Nested role check: hasRole(model.relation, 'role')\n const relationArg = node.arguments[0];\n const roleArg = node.arguments[1];\n const relation = parseModelRelationArg(relationArg, funcName);\n if (roleArg.type !== 'Literal' || typeof roleArg.value !== 'string') {\n throw new AuthorizerExpressionParseError(`${funcName} second argument must be a string literal (role name)`, roleArg);\n }\n return {\n type: 'nestedHasRole',\n relationName: relation.relationName,\n relationStart: relation.relationStart,\n relationEnd: relation.relationEnd,\n role: roleArg.value,\n roleStart: roleArg.start,\n roleEnd: roleArg.end,\n };\n }\n throw new AuthorizerExpressionParseError(`${funcName} requires 1 argument (hasRole('role')) or 2 arguments (hasRole(model.relation, 'role')), got ${node.arguments.length}`, node);\n}\n/**\n * Parse a roles array argument from an ArrayExpression.\n * Returns the extracted role names and their positions.\n */\nfunction parseRolesArrayArg(arg, funcName) {\n if (arg.type !== 'ArrayExpression') {\n throw new AuthorizerExpressionParseError(`${funcName} argument must be an array literal (e.g., ['admin', 'moderator'])`, arg);\n }\n const roles = [];\n const rolesStart = [];\n const rolesEnd = [];\n for (const element of arg.elements) {\n if (!element) {\n throw new AuthorizerExpressionParseError(`${funcName} array cannot have empty elements`, arg);\n }\n if (element.type !== 'Literal' || typeof element.value !== 'string') {\n throw new AuthorizerExpressionParseError(`${funcName} array elements must be string literals`, element);\n }\n roles.push(element.value);\n rolesStart.push(element.start);\n rolesEnd.push(element.end);\n }\n if (roles.length === 0) {\n throw new AuthorizerExpressionParseError(`${funcName} requires at least one role`, arg);\n }\n return { roles, rolesStart, rolesEnd };\n}\n/**\n * Parse hasSomeRole(['role1', 'role2']) or hasSomeRole(model.relation, ['role1', 'role2']) arguments.\n */\nfunction parseHasSomeRoleArgs(node, funcName) {\n if (node.arguments.length === 1) {\n // Global role check: hasSomeRole(['admin', 'moderator'])\n const { roles, rolesStart, rolesEnd } = parseRolesArrayArg(node.arguments[0], funcName);\n return {\n type: 'hasSomeRole',\n roles,\n rolesStart,\n rolesEnd,\n };\n }\n if (node.arguments.length === 2) {\n // Nested role check: hasSomeRole(model.relation, ['role1', 'role2'])\n const relationArg = node.arguments[0];\n const rolesArg = node.arguments[1];\n const relation = parseModelRelationArg(relationArg, funcName);\n const { roles, rolesStart, rolesEnd } = parseRolesArrayArg(rolesArg, funcName);\n return {\n type: 'nestedHasSomeRole',\n relationName: relation.relationName,\n relationStart: relation.relationStart,\n relationEnd: relation.relationEnd,\n roles,\n rolesStart,\n rolesEnd,\n };\n }\n throw new AuthorizerExpressionParseError(`${funcName} requires 1 argument (hasSomeRole(['role1'])) or 2 arguments (hasSomeRole(model.relation, ['role1'])), got ${node.arguments.length}`, node);\n}\n/**\n * Convert to FieldRefNode.\n * Supports:\n * - Standalone identifier for implicit auth context: `userId`\n * - Member expressions: `model.field`\n */\nfunction convertFieldRef(node) {\n // Handle standalone identifier (implicit auth context)\n if (node.type === 'Identifier') {\n const identifier = node;\n const { name } = identifier;\n // Only userId is valid as a standalone identifier (implicit auth context)\n if (name === 'userId') {\n return {\n type: 'fieldRef',\n source: 'auth',\n field: 'userId',\n start: node.start,\n end: node.end,\n };\n }\n throw new AuthorizerExpressionParseError(`Unknown identifier '${name}'. Did you mean 'model.${name}' or use 'userId' for auth context?`, node);\n }\n if (node.type !== 'MemberExpression') {\n throw new AuthorizerExpressionParseError('Expected field reference (model.field or userId)', node);\n }\n const memberExpr = node;\n // Object must be an identifier\n if (memberExpr.object.type !== 'Identifier') {\n throw new AuthorizerExpressionParseError('Field reference must start with model', memberExpr.object);\n }\n const source = memberExpr.object.name;\n if (source !== 'model') {\n throw new AuthorizerExpressionParseError(`Field reference must start with 'model', not '${source}'`, memberExpr.object);\n }\n // Property must be a simple identifier (not computed)\n if (memberExpr.computed) {\n throw new AuthorizerExpressionParseError('Computed property access (e.g., model[\"field\"]) is not supported', memberExpr.property);\n }\n if (memberExpr.property.type !== 'Identifier') {\n throw new AuthorizerExpressionParseError('Expected field name identifier', memberExpr.property);\n }\n const field = memberExpr.property.name;\n return {\n type: 'fieldRef',\n source: 'model',\n field,\n start: node.start,\n end: node.end,\n };\n}\n/**\n * Extract dependency information from the parsed AST.\n */\nfunction extractInfo(ast) {\n const modelFieldRefs = [];\n const authFieldRefs = [];\n const roleRefs = [];\n const nestedRoleRefs = [];\n let requiresModel = false;\n function walk(node) {\n switch (node.type) {\n case 'fieldComparison': {\n if (node.left.type === 'fieldRef') {\n walkFieldRef(node.left);\n }\n if (node.right.type === 'fieldRef') {\n walkFieldRef(node.right);\n }\n break;\n }\n case 'hasRole': {\n roleRefs.push(node.role);\n break;\n }\n case 'hasSomeRole': {\n roleRefs.push(...node.roles);\n break;\n }\n case 'nestedHasRole': {\n nestedRoleRefs.push({\n relationName: node.relationName,\n roles: [node.role],\n });\n requiresModel = true;\n break;\n }\n case 'nestedHasSomeRole': {\n nestedRoleRefs.push({\n relationName: node.relationName,\n roles: node.roles,\n });\n requiresModel = true;\n break;\n }\n case 'isAuthenticated': {\n // No dependencies to track\n break;\n }\n case 'binaryLogical': {\n walk(node.left);\n walk(node.right);\n break;\n }\n }\n }\n function walkFieldRef(node) {\n if (node.source === 'model') {\n modelFieldRefs.push(node.field);\n requiresModel = true;\n }\n else {\n authFieldRefs.push(node.field);\n }\n }\n walk(ast);\n return {\n modelFieldRefs: [...new Set(modelFieldRefs)],\n authFieldRefs: [...new Set(authFieldRefs)],\n roleRefs: [...new Set(roleRefs)],\n nestedRoleRefs,\n requiresModel,\n };\n}\n//# sourceMappingURL=authorizer-expression-acorn-parser.js.map","/**\n * A pluggable parser for ref expressions.\n *\n * The parser is format-agnostic - the core references system\n * doesn't know or care what format the expressions are in. The parser\n * handles all parsing, validation, and rename handling.\n *\n * Parsers can declare required slots via the TRequiredSlots generic parameter.\n * When a parser requires slots, TypeScript enforces that they are provided\n * when calling `withExpression()`.\n *\n * @typeParam TValue - The type of the raw expression value (e.g., string for TS expressions)\n * @typeParam TParseResult - The type of the parsed result (e.g., AST for TS expressions)\n * @typeParam TRequiredSlots - Record of required slot names to entity types\n *\n * @example\n * ```typescript\n * // A simple parser with no required slots\n * class StubParser extends RefExpressionParser<string, undefined> {\n * readonly name = 'stub';\n * parse(): undefined { return undefined; }\n * getWarnings(): [] { return []; }\n * getDependencies(): [] { return []; }\n * updateForRename(value: string): string { return value; }\n * }\n *\n * // A parser that requires a model slot\n * class AuthorizerParser extends RefExpressionParser<\n * string,\n * TsAst,\n * { model: typeof modelEntityType }\n * > {\n * readonly name = 'authorizer';\n * // TypeScript enforces slot requirement in withExpression()\n * }\n * ```\n */\nexport class RefExpressionParser {\n /**\n * Convenience method that combines parse() and getWarnings() into a single call.\n * Parses the expression and returns all validation warnings (including parse errors).\n *\n * @param value - The raw expression value\n * @param projectDef - The project definition for context\n * @param context - Validation context with project definition and plugin store\n * @param resolvedSlots - The resolved slot paths for this expression\n * @returns Array of warnings (empty if valid)\n */\n validate(value, projectDef, context, resolvedSlots) {\n const parseResult = this.parse(value, projectDef);\n if (!parseResult.success) {\n return [{ message: parseResult.error }];\n }\n return this.getWarnings(parseResult.value, context, resolvedSlots);\n }\n /**\n * Phantom property for TRequiredSlots type inference.\n * This is never actually used at runtime.\n * @internal\n */\n _requiredSlots;\n}\n//# sourceMappingURL=expression-types.js.map","import { createFieldMapSpec } from '../utils/create-field-map-spec.js';\n/**\n * Spec for allowing plugins to declare standard auth configurations\n */\nexport const authConfigSpec = createFieldMapSpec('core/auth-config', (t) => ({\n getAuthConfig: t.scalar(),\n pluginKey: t.scalar(),\n}), {\n use: (values) => ({\n pluginKey: values.pluginKey,\n getAuthConfig: (definition) => values.getAuthConfig?.(definition),\n getAuthConfigOrThrow: (definition) => {\n const config = values.getAuthConfig?.(definition);\n if (!config) {\n throw new Error('Auth config not found');\n }\n return config;\n },\n }),\n});\n//# sourceMappingURL=auth-config-spec.js.map","/**\n * Validator for authorizer expressions.\n *\n * Validates that:\n * - Model field references exist on the parent model\n * - Auth field references are valid AuthContext properties\n * - Role names exist in project config (warning only)\n */\nimport { authConfigSpec } from '#src/plugins/spec/auth-config-spec.js';\n/**\n * Valid auth context field names that can be accessed.\n */\nconst VALID_AUTH_FIELDS = new Set(['userId']);\n/**\n * Get role info from the project definition using the auth config spec.\n *\n * @param pluginStore - The plugin spec store\n * @param definition - The raw project definition data\n * @returns Role information including built-in status\n */\nfunction getAuthRoleInfo(pluginStore, definition) {\n const authConfig = pluginStore.use(authConfigSpec);\n const roles = authConfig.getAuthConfig(definition)?.roles;\n return {\n allRoleNames: new Set(roles?.map((role) => role.name)),\n builtInRoleNames: new Set(roles?.filter((role) => role.builtIn).map((role) => role.name)),\n };\n}\n/**\n * Validate an authorizer expression AST against model and project context.\n *\n * @param ast - The parsed expression AST\n * @param modelContext - Information about the parent model\n * @param pluginStore - The plugin spec store for accessing auth config\n * @param definition - The raw project definition data\n * @returns Array of warnings (errors are thrown, warnings are returned)\n *\n * @example\n * ```typescript\n * const warnings = validateAuthorizerExpression(\n * ast,\n * { modelName: 'User', scalarFieldNames: new Set(['id', 'email']) },\n * pluginStore,\n * definition,\n * );\n * ```\n */\nexport function validateAuthorizerExpression(ast, modelContext, pluginStore, definition) {\n const warnings = [];\n const { allRoleNames, builtInRoleNames } = getAuthRoleInfo(pluginStore, definition);\n const nonBuiltInRoleNames = [...allRoleNames].filter((name) => !builtInRoleNames.has(name));\n function warnIfBuiltInRole(role, start, end) {\n if (builtInRoleNames.has(role)) {\n const message = role === 'user'\n ? `Role 'user' is a built-in role. Use 'isAuthenticated' instead to check if the user is authenticated.`\n : `Role '${role}' is a built-in role and should not be used in authorizer expressions. Use non-built-in roles: ${nonBuiltInRoleNames.join(', ')}.`;\n warnings.push({ message, start, end });\n }\n }\n function walk(node) {\n switch (node.type) {\n case 'fieldComparison': {\n if (node.left.type === 'fieldRef') {\n validateFieldRef(node.left);\n }\n if (node.right.type === 'fieldRef') {\n validateFieldRef(node.right);\n }\n // Type-check: warn if a model field is compared to an incompatible literal\n const fieldRef = node.left.type === 'fieldRef' ? node.left : node.right;\n const literalNode = node.left.type === 'literalValue'\n ? node.left\n : node.right.type === 'literalValue'\n ? node.right\n : null;\n if (fieldRef.type === 'fieldRef' &&\n fieldRef.source === 'model' &&\n literalNode !== null) {\n validateLiteralTypeCompatibility(fieldRef, literalNode);\n }\n break;\n }\n case 'hasRole': {\n // Warn if role doesn't exist (but allow - plugins may define roles)\n if (allRoleNames.has(node.role)) {\n warnIfBuiltInRole(node.role, node.roleStart, node.roleEnd);\n }\n else {\n warnings.push({\n message: `Role '${node.role}' is not defined in the project configuration. Available roles: ${[...allRoleNames].join(', ')}.`,\n start: node.roleStart,\n end: node.roleEnd,\n });\n }\n break;\n }\n case 'hasSomeRole': {\n for (let i = 0; i < node.roles.length; i++) {\n const role = node.roles[i];\n const start = node.rolesStart[i];\n const end = node.rolesEnd[i];\n if (allRoleNames.has(role)) {\n warnIfBuiltInRole(role, start, end);\n }\n else {\n warnings.push({\n message: `Role '${role}' is not defined in the project configuration. Available roles: ${[...allRoleNames].join(', ')}.`,\n start,\n end,\n });\n }\n }\n break;\n }\n case 'nestedHasRole': {\n validateNestedRelation(node.relationName, node.relationStart, node.relationEnd, [node.role], [node.roleStart], [node.roleEnd]);\n break;\n }\n case 'nestedHasSomeRole': {\n validateNestedRelation(node.relationName, node.relationStart, node.relationEnd, node.roles, node.rolesStart, node.rolesEnd);\n break;\n }\n case 'isAuthenticated': {\n // No validation needed\n break;\n }\n case 'binaryLogical': {\n walk(node.left);\n walk(node.right);\n break;\n }\n }\n }\n function validateNestedRelation(relationName, relationStart, relationEnd, roles, rolesStart, rolesEnd) {\n const { relationInfo } = modelContext;\n if (!relationInfo) {\n // Can't validate without relation info\n return;\n }\n const relation = relationInfo.get(relationName);\n if (!relation) {\n const availableRelations = [...relationInfo.keys()].join(', ');\n warnings.push({\n message: `Relation '${relationName}' does not exist on model '${modelContext.modelName}'.${availableRelations ? ` Available relations: ${availableRelations}.` : ''}`,\n start: relationStart,\n end: relationEnd,\n });\n return;\n }\n if (relation.referenceCount !== 1) {\n warnings.push({\n message: `Relation '${relationName}' has ${relation.referenceCount} foreign key references. Nested authorizer checks only support single-key relations.`,\n start: relationStart,\n end: relationEnd,\n });\n return;\n }\n // Validate each role exists on the foreign model's authorizer\n for (const [i, role] of roles.entries()) {\n if (!relation.foreignAuthorizerRoleNames.has(role)) {\n const availableRoles = [...relation.foreignAuthorizerRoleNames].join(', ');\n warnings.push({\n message: `Role '${role}' is not defined on model '${relation.foreignModelName}' authorizer.${availableRoles ? ` Available roles: ${availableRoles}.` : ''}`,\n start: rolesStart[i],\n end: rolesEnd[i],\n });\n }\n }\n }\n function validateLiteralTypeCompatibility(fieldRefNode, literalNode) {\n const { fieldTypes } = modelContext;\n const fieldType = fieldTypes.get(fieldRefNode.field);\n if (!fieldType)\n return;\n const literalJsType = typeof literalNode.value;\n // Determine which JS types are compatible with each field type\n const isCompatible = (() => {\n switch (fieldType) {\n case 'boolean': {\n return literalJsType === 'boolean';\n }\n case 'int': {\n return (typeof literalNode.value === 'number' &&\n Number.isInteger(literalNode.value));\n }\n case 'float':\n case 'decimal': {\n return literalJsType === 'number';\n }\n case 'string':\n case 'uuid':\n case 'enum': {\n return literalJsType === 'string';\n }\n default: {\n // Unknown or unsupported field type — no warning\n return true;\n }\n }\n })();\n if (!isCompatible) {\n warnings.push({\n message: `Literal value type '${literalJsType}' is not compatible with field '${fieldRefNode.field}' of type '${fieldType}'.`,\n start: literalNode.start,\n end: literalNode.end,\n });\n }\n }\n function validateFieldRef(node) {\n if (node.source === 'model') {\n // Check if field exists on model\n if (!modelContext.scalarFieldNames.has(node.field)) {\n warnings.push({\n message: `Field '${node.field}' does not exist on model '${modelContext.modelName}'.`,\n start: node.start,\n end: node.end,\n });\n }\n }\n else if (!VALID_AUTH_FIELDS.has(node.field)) {\n // node.source === 'auth' is implied since source is 'model' | 'auth'\n warnings.push({\n message: `Invalid auth property '${node.field}'. Valid properties are: ${[...VALID_AUTH_FIELDS].join(', ')}.`,\n start: node.start,\n end: node.end,\n });\n }\n }\n walk(ast);\n return warnings;\n}\n/**\n * Build relation validation info from model relations and the full list of models.\n *\n * Uses structural typing so both raw JSON shapes and typed `ModelConfig` objects\n * can be passed directly.\n *\n * @param modelRelations - The relations on the current model\n * @param allModels - All models in the project (for foreign model lookup)\n * @returns Map of relation name → validation info\n */\nexport function buildRelationValidationInfo(modelRelations, allModels) {\n const relationInfo = new Map();\n // Build lookups by both id and name for flexible matching\n const modelsById = new Map(allModels\n .filter((m) => m.id != null)\n .map((m) => [m.id, m]));\n const modelsByName = new Map(allModels.map((m) => [m.name, m]));\n for (const relation of modelRelations) {\n const foreignModel = modelsById.get(relation.modelRef) ?? modelsByName.get(relation.modelRef);\n const foreignAuthorizerRoleNames = new Set();\n if (foreignModel?.authorizer?.roles) {\n for (const role of foreignModel.authorizer.roles) {\n foreignAuthorizerRoleNames.add(role.name);\n }\n }\n relationInfo.set(relation.name, {\n referenceCount: relation.references.length,\n foreignModelName: foreignModel?.name ?? relation.modelRef,\n foreignAuthorizerRoleNames,\n });\n }\n return relationInfo;\n}\n/**\n * Extract model validation context from a model configuration.\n *\n * @param modelConfig - The parsed model configuration\n * @returns Model validation context for the validator\n */\nexport function createModelValidationContext(modelConfig) {\n const scalarFieldNames = new Set();\n const fieldTypes = new Map();\n for (const field of modelConfig.model.fields) {\n scalarFieldNames.add(field.name);\n fieldTypes.set(field.name, field.type);\n }\n return {\n modelName: modelConfig.name,\n scalarFieldNames,\n fieldTypes,\n };\n}\n//# sourceMappingURL=authorizer-expression-validator.js.map","import { z } from 'zod';\nimport { RefExpressionParser } from '#src/references/expression-types.js';\nimport { parseAuthorizerExpression } from './authorizer-expression-acorn-parser.js';\nimport { AuthorizerExpressionParseError } from './authorizer-expression-ast.js';\nimport { buildRelationValidationInfo, validateAuthorizerExpression, } from './authorizer-expression-validator.js';\n/**\n * Expression parser for model authorizer role expressions.\n *\n * Parses expressions like:\n * - `model.id === auth.userId` (ownership check)\n * - `auth.hasRole('admin')` (global role check)\n * - `model.id === auth.userId || auth.hasRole('admin')` (combined)\n *\n * Uses Acorn to parse JavaScript expressions and validates\n * that only supported constructs are used.\n *\n * @example\n * ```typescript\n * const schema = z.object({\n * expression: ctx.withExpression(authorizerExpressionParser, { model: modelSlot }),\n * });\n * ```\n */\nexport class AuthorizerExpressionParser extends RefExpressionParser {\n name = 'authorizer-expression';\n /**\n * Creates a Zod schema for validating expression strings.\n * Requires a non-empty string value.\n */\n createSchema() {\n return z.string().min(1, 'Expression is required');\n }\n /**\n * Parse the expression string into an AST.\n *\n * @param value - The expression string\n * @returns Success with parsed expression info, or failure with error message\n */\n parse(value) {\n try {\n return { success: true, value: parseAuthorizerExpression(value) };\n }\n catch (error) {\n if (error instanceof AuthorizerExpressionParseError) {\n return { success: false, error: error.message };\n }\n throw error;\n }\n }\n /**\n * Get validation warnings for the expression.\n *\n * Validates:\n * - Syntax errors from parsing\n * - Model field references exist\n * - Auth field references are valid\n * - Role names exist in project config (warning only)\n */\n getWarnings(parseResult, context, resolvedSlots) {\n // Get model context from resolved slots\n const modelContext = this.getModelContext(context.definition, resolvedSlots);\n if (!modelContext) {\n // Can't validate without model context\n return [];\n }\n // Validate the expression against model fields and roles\n return validateAuthorizerExpression(parseResult.ast, modelContext, context.pluginStore, context.definition);\n }\n /**\n * Get entity/field dependencies from the expression.\n *\n * Currently returns empty array as we don't yet track\n * entity-level dependencies (just field names).\n * Future: could track model field entity references for renames.\n */\n getDependencies() {\n // TODO: Track model field entities for rename support\n return [];\n }\n /**\n * Update the expression when dependencies are renamed.\n *\n * Currently returns value unchanged as we don't yet\n * support field renames in expressions.\n */\n updateForRename(value) {\n // TODO: Implement rename support using AST position info\n return value;\n }\n /**\n * Extract model context from the project definition using resolved slots.\n */\n getModelContext(definition, resolvedSlots) {\n const modelPath = resolvedSlots.model;\n if (modelPath.length === 0) {\n return undefined;\n }\n // Navigate to the model in the project definition\n // The path is like ['models', 0] for models[0]\n let current = definition;\n for (const segment of modelPath) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[segment];\n }\n const model = current;\n if (!model || typeof model.name !== 'string') {\n return undefined;\n }\n // Model fields are nested under model.model.fields in the definition\n const scalarFieldNames = new Set();\n const fieldTypes = new Map();\n for (const field of model.model?.fields ?? []) {\n if (typeof field.name === 'string') {\n scalarFieldNames.add(field.name);\n if (typeof field.type === 'string') {\n fieldTypes.set(field.name, field.type);\n }\n }\n }\n // Build relation info for nested authorizer validation\n const relations = (model.model?.relations ?? []).filter((r) => typeof r.name === 'string' && typeof r.modelRef === 'string');\n const allModels = (definition.models ?? []).filter((m) => typeof m.name === 'string');\n const relationInfo = buildRelationValidationInfo(relations.map((r) => ({\n name: r.name,\n modelRef: r.modelRef,\n references: r.references ?? [],\n })), allModels.map((m) => ({\n name: m.name,\n authorizer: m.authorizer,\n })));\n return {\n modelName: model.name,\n scalarFieldNames,\n fieldTypes,\n relationInfo,\n };\n }\n}\n/**\n * Singleton instance of AuthorizerExpressionParser.\n */\nexport const authorizerExpressionParser = new AuthorizerExpressionParser();\n//# sourceMappingURL=authorizer-expression-parser.js.map","import { z } from 'zod';\nexport const VALIDATORS = {\n PASCAL_CASE_STRING: z\n .string()\n .regex(/^[A-Z][a-zA-Z0-9]*$/, \"Should be PascalCase, e.g. 'MyModel'\"),\n CAMEL_CASE_STRING: z\n .string()\n .regex(/^[a-z][a-zA-Z0-9]*$/, \"Should be camelCase, e.g. 'myField'\"),\n CONSTANT_CASE_STRING: z\n .string()\n .regex(/^[A-Z][A-Z0-9_]*$/, \"Should be CONSTANT_CASE, e.g. 'MY_CONSTANT'\"),\n OPTIONAL_CONSTANT_CASE_STRING: z\n .string()\n .regex(/^[A-Z][A-Z0-9_]*$/, \"Should be CONSTANT_CASE, e.g. 'MY_CONSTANT'\")\n .or(z.literal(''))\n .optional(),\n};\n//# sourceMappingURL=validation.js.map","/**\n * Creates a definition entity name resolver.\n * @param entityNameResolver - The entity name resolver.\n * @returns The definition entity name resolver.\n */\nexport function createDefinitionEntityNameResolver(entityNameResolver) {\n return entityNameResolver;\n}\n//# sourceMappingURL=definition-ref-builder.js.map","function groupBy(arr, getKeyFromItem) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = getKeyFromItem(item, i, arr);\n if (!Object.hasOwn(result, key)) {\n result[key] = [];\n }\n result[key].push(item);\n }\n return result;\n}\n\nexport { groupBy };\n","function keyBy(arr, getKeyFromItem) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = getKeyFromItem(item, i, arr);\n result[key] = item;\n }\n return result;\n}\n\nexport { keyBy };\n","function isSymbol(value) {\n return typeof value === 'symbol' || value instanceof Symbol;\n}\n\nexport { isSymbol };\n","function uniq(arr) {\n return [...new Set(arr)];\n}\n\nexport { uniq };\n","function flow(...funcs) {\n return function (...args) {\n let result = funcs.length ? funcs[0].apply(this, args) : args[0];\n for (let i = 1; i < funcs.length; i++) {\n result = funcs[i].call(this, result);\n }\n return result;\n };\n}\n\nexport { flow };\n","function identity(x) {\n return x;\n}\n\nexport { identity };\n","function isPrimitive(value) {\n return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexport { isPrimitive };\n","function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","import { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction clone(obj) {\n if (isPrimitive(obj)) {\n return obj;\n }\n if (Array.isArray(obj) ||\n isTypedArray(obj) ||\n obj instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && obj instanceof SharedArrayBuffer)) {\n return obj.slice(0);\n }\n const prototype = Object.getPrototypeOf(obj);\n if (prototype == null) {\n return Object.assign(Object.create(prototype), obj);\n }\n const Constructor = prototype.constructor;\n if (obj instanceof Date || obj instanceof Map || obj instanceof Set) {\n return new Constructor(obj);\n }\n if (obj instanceof RegExp) {\n const newRegExp = new Constructor(obj);\n newRegExp.lastIndex = obj.lastIndex;\n return newRegExp;\n }\n if (obj instanceof DataView) {\n return new Constructor(obj.buffer.slice(0));\n }\n if (obj instanceof Error) {\n let newError;\n if (obj instanceof AggregateError) {\n newError = new Constructor(obj.errors, obj.message, { cause: obj.cause });\n }\n else {\n newError = new Constructor(obj.message, { cause: obj.cause });\n }\n newError.stack = obj.stack;\n Object.assign(newError, obj);\n return newError;\n }\n if (typeof File !== 'undefined' && obj instanceof File) {\n const newFile = new Constructor([obj], obj.name, { type: obj.type, lastModified: obj.lastModified });\n return newFile;\n }\n if (typeof obj === 'object') {\n const newObject = Object.create(prototype);\n return Object.assign(newObject, obj);\n }\n return obj;\n}\n\nexport { clone };\n","import { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, symbolTag, stringTag, setTag, regexpTag, objectTag, numberTag, mapTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, dateTag, booleanTag, dataViewTag, arrayBufferTag, arrayTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction cloneDeepWith(obj, cloneValue) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (isPrimitive(valueToClone)) {\n return valueToClone;\n }\n if (stack.has(valueToClone)) {\n return stack.get(valueToClone);\n }\n if (Array.isArray(valueToClone)) {\n const result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n if (Object.hasOwn(valueToClone, 'index')) {\n result.index = valueToClone.index;\n }\n if (Object.hasOwn(valueToClone, 'input')) {\n result.input = valueToClone.input;\n }\n return result;\n }\n if (valueToClone instanceof Date) {\n return new Date(valueToClone.getTime());\n }\n if (valueToClone instanceof RegExp) {\n const result = new RegExp(valueToClone.source, valueToClone.flags);\n result.lastIndex = valueToClone.lastIndex;\n return result;\n }\n if (valueToClone instanceof Map) {\n const result = new Map();\n stack.set(valueToClone, result);\n for (const [key, value] of valueToClone) {\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (valueToClone instanceof Set) {\n const result = new Set();\n stack.set(valueToClone, result);\n for (const value of valueToClone) {\n result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n return valueToClone.subarray();\n }\n if (isTypedArray(valueToClone)) {\n const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n return result;\n }\n if (valueToClone instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n return valueToClone.slice(0);\n }\n if (valueToClone instanceof DataView) {\n const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof File !== 'undefined' && valueToClone instanceof File) {\n const result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type,\n });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {\n const result = new Blob([valueToClone], { type: valueToClone.type });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Error) {\n const result = new valueToClone.constructor();\n stack.set(valueToClone, result);\n result.message = valueToClone.message;\n result.name = valueToClone.name;\n result.stack = valueToClone.stack;\n result.cause = valueToClone.cause;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Boolean) {\n const result = new Boolean(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Number) {\n const result = new Number(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof String) {\n const result = new String(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag(object)) {\n case argumentsTag:\n case arrayTag:\n case arrayBufferTag:\n case dataViewTag:\n case booleanTag:\n case dateTag:\n case float32ArrayTag:\n case float64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case mapTag:\n case numberTag:\n case objectTag:\n case regexpTag:\n case setTag:\n case stringTag:\n case symbolTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport { cloneDeepWith, cloneDeepWithImpl, copyProperties };\n","import { cloneDeepWithImpl } from './cloneDeepWith.mjs';\n\nfunction cloneDeep(obj) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);\n}\n\nexport { cloneDeep };\n","function mapValues(object, getNewValue) {\n const result = {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = object[key];\n result[key] = getNewValue(value, key, object);\n }\n return result;\n}\n\nexport { mapValues };\n","function omit(obj, keys) {\n const result = { ...obj };\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n delete result[key];\n }\n return result;\n}\n\nexport { omit };\n","function pickBy(obj, shouldPick) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (shouldPick(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\nexport { pickBy };\n","function capitalize(str) {\n return (str.charAt(0).toUpperCase() + str.slice(1).toLowerCase());\n}\n\nexport { capitalize };\n","import { clone } from './clone.mjs';\nimport { mergeWith } from './mergeWith.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction toMerged(target, source) {\n return mergeWith(clone(target), source, function mergeRecursively(targetValue, sourceValue) {\n if (Array.isArray(sourceValue)) {\n if (Array.isArray(targetValue)) {\n return mergeWith(clone(targetValue), sourceValue, mergeRecursively);\n }\n else {\n return mergeWith([], sourceValue, mergeRecursively);\n }\n }\n else if (isPlainObject(sourceValue)) {\n if (isPlainObject(targetValue)) {\n return mergeWith(clone(targetValue), sourceValue, mergeRecursively);\n }\n else {\n return mergeWith({}, sourceValue, mergeRecursively);\n }\n }\n });\n}\n\nexport { toMerged };\n","function isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexport { isLength };\n","import { isLength } from '../../predicate/isLength.mjs';\n\nfunction isArrayLike(value) {\n return value != null && typeof value !== 'function' && isLength(value.length);\n}\n\nexport { isArrayLike };\n","function isDeepKey(key) {\n switch (typeof key) {\n case 'number':\n case 'symbol': {\n return false;\n }\n case 'string': {\n return key.includes('.') || key.includes('[') || key.includes(']');\n }\n }\n}\n\nexport { isDeepKey };\n","function toKey(value) {\n if (typeof value === 'string' || typeof value === 'symbol') {\n return value;\n }\n if (Object.is(value?.valueOf?.(), -0)) {\n return '-0';\n }\n return String(value);\n}\n\nexport { toKey };\n","function toString(value) {\n if (value == null) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(toString).join(',');\n }\n const result = String(value);\n if (result === '0' && Object.is(Number(value), -0)) {\n return '-0';\n }\n return result;\n}\n\nexport { toString };\n","import { toString } from './toString.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\n\nfunction toPath(deepKey) {\n if (Array.isArray(deepKey)) {\n return deepKey.map(toKey);\n }\n if (typeof deepKey === 'symbol') {\n return [deepKey];\n }\n deepKey = toString(deepKey);\n const result = [];\n const length = deepKey.length;\n if (length === 0) {\n return result;\n }\n let index = 0;\n let key = '';\n let quoteChar = '';\n let bracket = false;\n if (deepKey.charCodeAt(0) === 46) {\n result.push('');\n index++;\n }\n while (index < length) {\n const char = deepKey[index];\n if (quoteChar) {\n if (char === '\\\\' && index + 1 < length) {\n index++;\n key += deepKey[index];\n }\n else if (char === quoteChar) {\n quoteChar = '';\n }\n else {\n key += char;\n }\n }\n else if (bracket) {\n if (char === '\"' || char === \"'\") {\n quoteChar = char;\n }\n else if (char === ']') {\n bracket = false;\n result.push(key);\n key = '';\n }\n else {\n key += char;\n }\n }\n else {\n if (char === '[') {\n bracket = true;\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else if (char === '.') {\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else {\n key += char;\n }\n }\n index++;\n }\n if (key) {\n result.push(key);\n }\n return result;\n}\n\nexport { toPath };\n","import { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';\nimport { isDeepKey } from '../_internal/isDeepKey.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction get(object, path, defaultValue) {\n if (object == null) {\n return defaultValue;\n }\n switch (typeof path) {\n case 'string': {\n if (isUnsafeProperty(path)) {\n return defaultValue;\n }\n const result = object[path];\n if (result === undefined) {\n if (isDeepKey(path)) {\n return get(object, toPath(path), defaultValue);\n }\n else {\n return defaultValue;\n }\n }\n return result;\n }\n case 'number':\n case 'symbol': {\n if (typeof path === 'number') {\n path = toKey(path);\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n default: {\n if (Array.isArray(path)) {\n return getWithPath(object, path, defaultValue);\n }\n if (Object.is(path?.valueOf(), -0)) {\n path = '-0';\n }\n else {\n path = String(path);\n }\n if (isUnsafeProperty(path)) {\n return defaultValue;\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n }\n}\nfunction getWithPath(object, path, defaultValue) {\n if (path.length === 0) {\n return defaultValue;\n }\n let current = object;\n for (let index = 0; index < path.length; index++) {\n if (current == null) {\n return defaultValue;\n }\n if (isUnsafeProperty(path[index])) {\n return defaultValue;\n }\n current = current[path[index]];\n }\n if (current === undefined) {\n return defaultValue;\n }\n return current;\n}\n\nexport { get };\n","import { get } from './get.mjs';\n\nfunction property(path) {\n return function (object) {\n return get(object, path);\n };\n}\n\nexport { property };\n","function isObject(value) {\n return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n\nexport { isObject };\n","import { isObject } from './isObject.mjs';\nimport { isPrimitive } from '../../predicate/isPrimitive.mjs';\nimport { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';\n\nfunction isMatchWith(target, source, compare) {\n if (typeof compare !== 'function') {\n return isMatchWith(target, source, () => undefined);\n }\n return isMatchWithInternal(target, source, function doesMatch(objValue, srcValue, key, object, source, stack) {\n const isEqual = compare(objValue, srcValue, key, object, source, stack);\n if (isEqual !== undefined) {\n return Boolean(isEqual);\n }\n return isMatchWithInternal(objValue, srcValue, doesMatch, stack);\n }, new Map());\n}\nfunction isMatchWithInternal(target, source, compare, stack) {\n if (source === target) {\n return true;\n }\n switch (typeof source) {\n case 'object': {\n return isObjectMatch(target, source, compare, stack);\n }\n case 'function': {\n const sourceKeys = Object.keys(source);\n if (sourceKeys.length > 0) {\n return isMatchWithInternal(target, { ...source }, compare, stack);\n }\n return isEqualsSameValueZero(target, source);\n }\n default: {\n if (!isObject(target)) {\n return isEqualsSameValueZero(target, source);\n }\n if (typeof source === 'string') {\n return source === '';\n }\n return true;\n }\n }\n}\nfunction isObjectMatch(target, source, compare, stack) {\n if (source == null) {\n return true;\n }\n if (Array.isArray(source)) {\n return isArrayMatch(target, source, compare, stack);\n }\n if (source instanceof Map) {\n return isMapMatch(target, source, compare, stack);\n }\n if (source instanceof Set) {\n return isSetMatch(target, source, compare, stack);\n }\n const keys = Object.keys(source);\n if (target == null || isPrimitive(target)) {\n return keys.length === 0;\n }\n if (keys.length === 0) {\n return true;\n }\n if (stack?.has(source)) {\n return stack.get(source) === target;\n }\n stack?.set(source, target);\n try {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!isPrimitive(target) && !(key in target)) {\n return false;\n }\n if (source[key] === undefined && target[key] !== undefined) {\n return false;\n }\n if (source[key] === null && target[key] !== null) {\n return false;\n }\n const isEqual = compare(target[key], source[key], key, target, source, stack);\n if (!isEqual) {\n return false;\n }\n }\n return true;\n }\n finally {\n stack?.delete(source);\n }\n}\nfunction isMapMatch(target, source, compare, stack) {\n if (source.size === 0) {\n return true;\n }\n if (!(target instanceof Map)) {\n return false;\n }\n for (const [key, sourceValue] of source.entries()) {\n const targetValue = target.get(key);\n const isEqual = compare(targetValue, sourceValue, key, target, source, stack);\n if (isEqual === false) {\n return false;\n }\n }\n return true;\n}\nfunction isArrayMatch(target, source, compare, stack) {\n if (source.length === 0) {\n return true;\n }\n if (!Array.isArray(target)) {\n return false;\n }\n const countedIndex = new Set();\n for (let i = 0; i < source.length; i++) {\n const sourceItem = source[i];\n let found = false;\n for (let j = 0; j < target.length; j++) {\n if (countedIndex.has(j)) {\n continue;\n }\n const targetItem = target[j];\n let matches = false;\n const isEqual = compare(targetItem, sourceItem, i, target, source, stack);\n if (isEqual) {\n matches = true;\n }\n if (matches) {\n countedIndex.add(j);\n found = true;\n break;\n }\n }\n if (!found) {\n return false;\n }\n }\n return true;\n}\nfunction isSetMatch(target, source, compare, stack) {\n if (source.size === 0) {\n return true;\n }\n if (!(target instanceof Set)) {\n return false;\n }\n return isArrayMatch([...target], [...source], compare, stack);\n}\n\nexport { isMatchWith, isSetMatch };\n","import { isMatchWith } from './isMatchWith.mjs';\n\nfunction isMatch(target, source) {\n return isMatchWith(target, source, () => undefined);\n}\n\nexport { isMatch };\n","import { isMatch } from './isMatch.mjs';\nimport { cloneDeep } from '../../object/cloneDeep.mjs';\n\nfunction matches(source) {\n source = cloneDeep(source);\n return (target) => {\n return isMatch(target, source);\n };\n}\n\nexport { matches };\n","import { cloneDeepWith as cloneDeepWith$1, copyProperties } from '../../object/cloneDeepWith.mjs';\nimport { getTag } from '../_internal/getTag.mjs';\nimport { objectTag, argumentsTag, booleanTag, stringTag, numberTag } from '../_internal/tags.mjs';\n\nfunction cloneDeepWith(obj, customizer) {\n return cloneDeepWith$1(obj, (value, key, object, stack) => {\n const cloned = customizer?.(value, key, object, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (typeof obj !== 'object') {\n return undefined;\n }\n if (getTag(obj) === objectTag && typeof obj.constructor !== 'function') {\n const result = {};\n stack.set(obj, result);\n copyProperties(result, obj, object, stack);\n return result;\n }\n switch (Object.prototype.toString.call(obj)) {\n case numberTag:\n case stringTag:\n case booleanTag: {\n const result = new obj.constructor(obj?.valueOf());\n copyProperties(result, obj);\n return result;\n }\n case argumentsTag: {\n const result = {};\n copyProperties(result, obj);\n result.length = obj.length;\n result[Symbol.iterator] = obj[Symbol.iterator];\n return result;\n }\n default: {\n return undefined;\n }\n }\n });\n}\n\nexport { cloneDeepWith };\n","import { cloneDeepWith } from './cloneDeepWith.mjs';\n\nfunction cloneDeep(obj) {\n return cloneDeepWith(obj);\n}\n\nexport { cloneDeep };\n","const IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length = Number.MAX_SAFE_INTEGER) {\n switch (typeof value) {\n case 'number': {\n return Number.isInteger(value) && value >= 0 && value < length;\n }\n case 'symbol': {\n return false;\n }\n case 'string': {\n return IS_UNSIGNED_INTEGER.test(value);\n }\n }\n}\n\nexport { isIndex };\n","import { getTag } from '../_internal/getTag.mjs';\n\nfunction isArguments(value) {\n return value !== null && typeof value === 'object' && getTag(value) === '[object Arguments]';\n}\n\nexport { isArguments };\n","import { isDeepKey } from '../_internal/isDeepKey.mjs';\nimport { isIndex } from '../_internal/isIndex.mjs';\nimport { isArguments } from '../predicate/isArguments.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction has(object, path) {\n let resolvedPath;\n if (Array.isArray(path)) {\n resolvedPath = path;\n }\n else if (typeof path === 'string' && isDeepKey(path) && object?.[path] == null) {\n resolvedPath = toPath(path);\n }\n else {\n resolvedPath = [path];\n }\n if (resolvedPath.length === 0) {\n return false;\n }\n let current = object;\n for (let i = 0; i < resolvedPath.length; i++) {\n const key = resolvedPath[i];\n if (current == null || !Object.hasOwn(current, key)) {\n const isSparseIndex = (Array.isArray(current) || isArguments(current)) && isIndex(key) && key < current.length;\n if (!isSparseIndex) {\n return false;\n }\n }\n current = current[key];\n }\n return true;\n}\n\nexport { has };\n","import { isMatch } from './isMatch.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { cloneDeep } from '../object/cloneDeep.mjs';\nimport { get } from '../object/get.mjs';\nimport { has } from '../object/has.mjs';\n\nfunction matchesProperty(property, source) {\n switch (typeof property) {\n case 'object': {\n if (Object.is(property?.valueOf(), -0)) {\n property = '-0';\n }\n break;\n }\n case 'number': {\n property = toKey(property);\n break;\n }\n }\n source = cloneDeep(source);\n return function (target) {\n const result = get(target, property);\n if (result === undefined) {\n return has(target, property);\n }\n if (source === undefined) {\n return result === undefined;\n }\n return isMatch(result, source);\n };\n}\n\nexport { matchesProperty };\n","import { identity } from '../../function/identity.mjs';\nimport { property } from '../object/property.mjs';\nimport { matches } from '../predicate/matches.mjs';\nimport { matchesProperty } from '../predicate/matchesProperty.mjs';\n\nfunction iteratee(value) {\n if (value == null) {\n return identity;\n }\n switch (typeof value) {\n case 'function': {\n return value;\n }\n case 'object': {\n if (Array.isArray(value) && value.length === 2) {\n return matchesProperty(value[0], value[1]);\n }\n return matches(value);\n }\n case 'string':\n case 'symbol':\n case 'number': {\n return property(value);\n }\n }\n}\n\nexport { iteratee };\n","import { groupBy as groupBy$1 } from '../../array/groupBy.mjs';\nimport { identity } from '../../function/identity.mjs';\nimport { isArrayLike } from '../predicate/isArrayLike.mjs';\nimport { iteratee } from '../util/iteratee.mjs';\n\nfunction groupBy(source, _getKeyFromItem) {\n if (source == null) {\n return {};\n }\n const items = isArrayLike(source) ? Array.from(source) : Object.values(source);\n const getKeyFromItem = iteratee(_getKeyFromItem ?? identity);\n return groupBy$1(items, getKeyFromItem);\n}\n\nexport { groupBy };\n","import { isSymbol } from '../predicate/isSymbol.mjs';\n\nconst regexIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/;\nconst regexIsPlainProp = /^\\w*$/;\nfunction isKey(value, object) {\n if (Array.isArray(value)) {\n return false;\n }\n if (typeof value === 'number' || typeof value === 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n return ((typeof value === 'string' && (regexIsPlainProp.test(value) || !regexIsDeepProp.test(value))) ||\n (object != null && Object.hasOwn(object, value)));\n}\n\nexport { isKey };\n","import { isEqualsSameValueZero } from '../../_internal/isEqualsSameValueZero.mjs';\n\nconst assignValue = (object, key, value) => {\n const objValue = object[key];\n if (!(Object.hasOwn(object, key) && isEqualsSameValueZero(objValue, value)) || (value === undefined && !(key in object))) {\n object[key] = value;\n }\n};\n\nexport { assignValue };\n","import { get } from './get.mjs';\nimport { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';\nimport { assignValue } from '../_internal/assignValue.mjs';\nimport { isIndex } from '../_internal/isIndex.mjs';\nimport { isKey } from '../_internal/isKey.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { isObject } from '../predicate/isObject.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction updateWith(obj, path, updater, customizer) {\n if (obj == null && !isObject(obj)) {\n return obj;\n }\n let resolvedPath;\n if (isKey(path, obj)) {\n resolvedPath = [path];\n }\n else if (Array.isArray(path)) {\n resolvedPath = path;\n }\n else {\n resolvedPath = toPath(path);\n }\n const updateValue = updater(get(obj, resolvedPath));\n let current = obj;\n for (let i = 0; i < resolvedPath.length && current != null; i++) {\n const key = toKey(resolvedPath[i]);\n if (isUnsafeProperty(key)) {\n continue;\n }\n let newValue;\n if (i === resolvedPath.length - 1) {\n newValue = updateValue;\n }\n else {\n const objValue = current[key];\n const customizerResult = customizer?.(objValue, key, obj);\n newValue =\n customizerResult !== undefined\n ? customizerResult\n : isObject(objValue)\n ? objValue\n : isIndex(resolvedPath[i + 1])\n ? []\n : {};\n }\n assignValue(current, key, newValue);\n current = current[key];\n }\n return obj;\n}\n\nexport { updateWith };\n","import { updateWith } from './updateWith.mjs';\n\nfunction set(obj, path, value) {\n return updateWith(obj, path, () => value, () => undefined);\n}\n\nexport { set };\n","import { capitalize as capitalize$1 } from '../../string/capitalize.mjs';\nimport { toString } from '../util/toString.mjs';\n\nfunction capitalize(str) {\n return capitalize$1(toString(str));\n}\n\nexport { capitalize };\n","// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n/** Leaf types that are allowed in a plain `z.union()` without a discriminator. */\nconst LEAF_UNION_TYPES = new Set(['string', 'enum', 'literal']);\n/**\n * Returns `true` if every option in the union is a leaf type\n * (string, enum, or literal), meaning no structural descent is needed.\n */\nfunction isLeafUnion(options) {\n return options.every((opt) => LEAF_UNION_TYPES.has(opt._zod.def.type));\n}\n/**\n * Given a list of discriminated union options, finds the branch whose\n * discriminator literal includes the value found at `data[discriminator]`.\n *\n * Returns `undefined` if:\n * - `data` is not a plain object or doesn't contain the discriminator key\n * - no option matches the discriminator value in the data\n *\n * Throws if any option is not a ZodObject or its discriminator field is not a literal schema.\n */\nexport function findDiscriminatedUnionMatch(options, discriminator, data) {\n if (data === null ||\n data === undefined ||\n typeof data !== 'object' ||\n !(discriminator in data)) {\n return undefined;\n }\n const discValue = data[discriminator];\n for (const option of options) {\n if (option._zod.def.type !== 'object') {\n throw new Error(`findDiscriminatedUnionMatch: discriminated union option must be an object schema (got type: \"${option._zod.def.type}\")`);\n }\n const { shape } = option;\n const discField = shape[discriminator];\n if (discField?._zod.def.type !== 'literal') {\n throw new Error(`findDiscriminatedUnionMatch: discriminator field \"${discriminator}\" must be a literal schema on each union option`);\n }\n const { values } = discField._zod.def;\n if (values.includes(discValue)) {\n return option;\n }\n }\n return undefined;\n}\n// ---------------------------------------------------------------------------\n// getSchemaChildren — single exhaustive type switch\n// ---------------------------------------------------------------------------\n/**\n * Classifies a Zod schema node and returns a descriptor of its child schemas.\n *\n * This is the single source of truth for schema structure traversal.\n * Both `walkDataWithSchema` and `transformDataWithSchema` delegate here\n * instead of duplicating the exhaustive type switch.\n *\n * Throws for unsupported schema types (transform, pipe, custom, etc.).\n */\nexport function getSchemaChildren(schema, data, path) {\n const { type } = schema._zod.def;\n switch (type) {\n case 'object': {\n const typed = schema;\n return {\n kind: 'object',\n entries: Object.entries(typed.shape),\n };\n }\n case 'array': {\n const typed = schema;\n return {\n kind: 'array',\n elementSchema: typed.element,\n };\n }\n case 'optional':\n case 'nullable':\n case 'nonoptional':\n case 'readonly': {\n const innerSchema = schema.unwrap();\n return { kind: 'wrapper', innerSchema, skipIfNullish: true };\n }\n case 'default':\n case 'prefault': {\n // Default/prefault wrappers always descend regardless of data value.\n // Both support `.unwrap()` to access the inner schema.\n const innerSchema = schema.unwrap();\n return { kind: 'wrapper', innerSchema, skipIfNullish: false };\n }\n case 'union': {\n const typed = schema;\n const options = typed.options;\n // discriminator has no public API — must use internal access\n const { discriminator } = typed._zod.def;\n if (discriminator) {\n const match = findDiscriminatedUnionMatch(options, discriminator, data);\n return { kind: 'discriminated-union', match };\n }\n if (isLeafUnion(options)) {\n return { kind: 'leaf-union' };\n }\n throw new Error(`Plain z.union() is not supported unless all options are string/enum/literal (path: ${path.join('.')})`);\n }\n case 'tuple': {\n // items/rest have no public API on ZodTuple — must use internal access\n const typed = schema;\n return {\n kind: 'tuple',\n items: typed._zod.def.items,\n rest: typed._zod.def.rest ?? null,\n };\n }\n case 'record': {\n const typed = schema;\n return {\n kind: 'record',\n valueSchema: typed.valueType,\n };\n }\n case 'intersection': {\n // left/right have no public API on ZodIntersection — must use internal access\n const typed = schema;\n return {\n kind: 'intersection',\n left: typed._zod.def.left,\n right: typed._zod.def.right,\n };\n }\n // Opaque / non-structural types are not supported in definition schemas.\n case 'transform':\n case 'pipe':\n case 'custom':\n case 'file':\n case 'symbol':\n case 'promise':\n case 'function':\n case 'bigint':\n case 'void':\n case 'nan':\n case 'lazy':\n case 'catch':\n case 'map':\n case 'set':\n case 'success':\n case 'template_literal': {\n throw new Error(`Schema type \"${type}\" is not supported in definition schemas (path: ${path.join('.')})`);\n }\n // Serializable leaf types — no structural descent needed.\n case 'string':\n case 'number':\n case 'int':\n case 'boolean':\n case 'null':\n case 'undefined':\n case 'never':\n case 'any':\n case 'unknown':\n case 'date':\n case 'enum':\n case 'literal': {\n return { kind: 'leaf' };\n }\n default: {\n // Exhaustive guard: if Zod adds a new type, this will fail to compile.\n const _exhaustiveCheck = type;\n void _exhaustiveCheck;\n return { kind: 'leaf' };\n }\n }\n}\n//# sourceMappingURL=schema-structure.js.map","import { isPlainObject } from 'es-toolkit';\nimport { get } from 'es-toolkit/compat';\nimport { definitionRefRegistry } from '#src/references/definition-ref-registry.js';\nimport { getSchemaChildren } from './schema-structure.js';\n/**\n * Walks a Zod schema structure in parallel with parsed data, invoking\n * registered visitors whenever schema nodes are encountered.\n *\n * Each visitor's `visit()` is called for every node. If it returns a cleanup\n * function, that function is called after all children have been visited —\n * similar to the React `useEffect` cleanup pattern.\n *\n * The walker is entity-aware: it detects entity boundaries via\n * `definitionRefRegistry` annotations and tracks the current entity ID and\n * relative path, exposing them through `SchemaWalkContext`.\n *\n * Only serializable, structurally-traversable schema types are supported.\n * Non-serializable types (transform, custom, file, symbol, promise, function,\n * lazy, etc.) will throw at walk time.\n *\n * Discriminated unions are fully supported. Plain `z.union()` is allowed only\n * when every option is a leaf type (string, enum, or literal); otherwise it throws.\n */\nexport function walkDataWithSchema(schema, data, visitors) {\n const entityCtx = {\n entityId: undefined,\n entityBasePath: [],\n };\n walkNode(schema, data, [], visitors, entityCtx);\n}\nfunction walkNode(schema, data, path, visitors, entityCtx) {\n // Check for entity boundary before visiting\n let entityRestore;\n const metaList = definitionRefRegistry.getAll(schema);\n for (const meta of metaList) {\n if (meta.kind === 'entity' && isPlainObject(data)) {\n const id = get(data, meta.idPath);\n if (typeof id === 'string' && id) {\n const prevEntityId = entityCtx.entityId;\n const prevEntityBasePath = entityCtx.entityBasePath;\n entityCtx.entityId = id;\n entityCtx.entityBasePath = path;\n entityRestore = () => {\n entityCtx.entityId = prevEntityId;\n entityCtx.entityBasePath = prevEntityBasePath;\n };\n break;\n }\n }\n }\n const entityRelativePath = path.slice(entityCtx.entityBasePath.length);\n const ctx = {\n path,\n entityId: entityCtx.entityId,\n entityRelativePath,\n };\n // Step 1: Call all visitors, collect any cleanup functions returned.\n const cleanups = [];\n for (const visitor of visitors) {\n const cleanup = visitor.visit(schema, data, ctx);\n if (cleanup)\n cleanups.push(cleanup);\n }\n // Step 2: Structural descent based on schema children.\n const children = getSchemaChildren(schema, data, path);\n switch (children.kind) {\n case 'leaf': {\n break;\n }\n case 'leaf-union': {\n break;\n }\n case 'wrapper': {\n if (children.skipIfNullish && (data === undefined || data === null))\n break;\n walkNode(children.innerSchema, data, path, visitors, entityCtx);\n break;\n }\n case 'object': {\n if (data === null || data === undefined || typeof data !== 'object')\n break;\n for (const [key, fieldSchema] of children.entries) {\n walkNode(fieldSchema, data[key], [...path, key], visitors, entityCtx);\n }\n break;\n }\n case 'array': {\n if (!Array.isArray(data))\n break;\n for (const [i, datum] of data.entries()) {\n walkNode(children.elementSchema, datum, [...path, i], visitors, entityCtx);\n }\n break;\n }\n case 'tuple': {\n if (!Array.isArray(data))\n break;\n for (const [i, itemSchema] of children.items.entries()) {\n if (i < data.length) {\n walkNode(itemSchema, data[i], [...path, i], visitors, entityCtx);\n }\n }\n if (children.rest) {\n for (let i = children.items.length; i < data.length; i++) {\n walkNode(children.rest, data[i], [...path, i], visitors, entityCtx);\n }\n }\n break;\n }\n case 'record': {\n if (data === null || data === undefined || typeof data !== 'object')\n break;\n for (const [key, value] of Object.entries(data)) {\n walkNode(children.valueSchema, value, [...path, key], visitors, entityCtx);\n }\n break;\n }\n case 'discriminated-union': {\n if (children.match) {\n walkNode(children.match, data, path, visitors, entityCtx);\n }\n break;\n }\n case 'intersection': {\n // Walk both sides — data satisfies both schemas simultaneously\n walkNode(children.left, data, path, visitors, entityCtx);\n walkNode(children.right, data, path, visitors, entityCtx);\n break;\n }\n }\n // Step 3: Run cleanup functions in reverse order (innermost first).\n for (let i = cleanups.length - 1; i >= 0; i--) {\n cleanups[i]();\n }\n // Step 4: Restore entity context if we crossed a boundary.\n if (entityRestore) {\n entityRestore();\n }\n}\n//# sourceMappingURL=walk-data-with-schema.js.map","import { definitionRefRegistry } from './definition-ref-registry.js';\n/**\n * Creates a typed `RefSchemaCollector` with the correct narrowed `meta` type\n * inferred from the `kind` field.\n */\nexport function createRefSchemaCollector(collector) {\n return collector;\n}\n/**\n * Creates a `SchemaNodeVisitor` for the ref subsystem.\n *\n * Uses the `visit()` + cleanup pattern: each call to `visit()` may return a\n * cleanup function that restores slot scope state after children are walked,\n * analogous to React's `useEffect` cleanup.\n *\n * When a `ref-context` annotation is encountered, the active slot map is\n * extended for all descendant nodes and restored on cleanup.\n */\nexport function createRefSchemaVisitor(collectors) {\n // Current active slot paths — updated when entering ref-context nodes,\n // restored via cleanup closures on exit.\n let activeSlotPaths = new Map();\n return {\n visit(schema, data, ctx) {\n const metaList = definitionRefRegistry.getAll(schema);\n if (metaList.length === 0)\n return undefined;\n const slotPathsAtEntry = activeSlotPaths;\n for (const meta of metaList) {\n // Extend slot scope if this is a ref-context annotation\n if (meta.kind === 'ref-context') {\n const contextMeta = meta;\n const extended = new Map(activeSlotPaths);\n for (const slot of contextMeta.slots) {\n extended.set(slot.id, ctx.path);\n }\n activeSlotPaths = extended;\n }\n const refCtx = {\n path: ctx.path,\n entityId: ctx.entityId,\n entityRelativePath: ctx.entityRelativePath,\n activeSlotPaths,\n };\n for (const collector of collectors) {\n if (collector.kind === meta.kind) {\n collector.visit(meta, data, refCtx);\n }\n }\n }\n // Return cleanup only if slot scope was extended\n if (activeSlotPaths !== slotPathsAtEntry) {\n return () => {\n activeSlotPaths = slotPathsAtEntry;\n };\n }\n return undefined;\n },\n };\n}\n//# sourceMappingURL=ref-schema-visitor.js.map","import { mapGroupBy } from '@baseplate-dev/utils';\n/**\n * Calculates the length of the common prefix of two paths.\n *\n * @param a - The first path\n * @param b - The second path\n * @returns The length of the common prefix of the two paths\n */\nfunction commonPrefixLength(a, b) {\n let length = 0;\n const maxLength = Math.min(a.length, b.length);\n for (let i = 0; i < maxLength; i++) {\n if (a[i] !== b[i])\n break;\n length++;\n }\n return length;\n}\n/**\n * Finds the nearest ancestor slot for a given target path.\n *\n * @param candidateSlots - The candidate slots to search through.\n * @param targetPath - The target path to find the nearest ancestor slot for.\n * @returns The nearest ancestor slot, or undefined if no slot is found.\n */\nexport function findNearestAncestorSlot(candidateSlots = [], targetPath) {\n let bestMatch;\n for (const candidateSlot of candidateSlots) {\n const prefixLength = commonPrefixLength(candidateSlot.path, targetPath);\n // A slot at path [] (root) is a valid ancestor of any path\n // For non-root slots, require at least 1 common prefix element\n const isValidAncestor = candidateSlot.path.length === 0 || prefixLength > 0;\n if (isValidAncestor &&\n (!bestMatch || prefixLength > bestMatch.prefixLength)) {\n bestMatch = { prefixLength, slot: candidateSlot };\n }\n }\n return bestMatch?.slot;\n}\n/**\n * Resolves all slot references to actual paths.\n *\n * This function takes the collected refs (which have `parentSlot` references)\n * and resolves them to `parentPath` values using the slotPaths map.\n *\n * For scoped slots (where the same slot can be registered multiple times),\n * we find the registration whose path is the nearest ancestor of the entity/reference.\n *\n * @param collected - The collected refs with unresolved slots.\n * @returns The resolved refs with parentPath instead of parentSlot.\n * @throws If a required slot is not found in the slotPaths map.\n */\nexport function resolveSlots(collected) {\n const { entities, references, slots } = collected;\n // Collect all slots by path\n const slotsByType = mapGroupBy(slots, (slot) => slot.slot.id);\n const resolvedSlotsByType = new Map();\n function registerSlot(slot, resolvedPath) {\n const slotId = slot.id;\n const candidateSlots = slotsByType.get(slotId) ?? [];\n const nearestAncestorSlot = findNearestAncestorSlot(candidateSlots, resolvedPath);\n if (!nearestAncestorSlot) {\n throw new Error(`Could not find slot \"${slotId.description ?? 'unknown'}\" ` +\n `within path ${resolvedPath.join('.')}. Make sure the slot is registered for this path.`);\n }\n const existingSlots = resolvedSlotsByType.get(slotId) ?? [];\n resolvedSlotsByType.set(slotId, [\n ...existingSlots,\n { resolvedPath, path: nearestAncestorSlot.path },\n ]);\n }\n // Collect entity provides\n for (const entity of entities) {\n if (entity.provides) {\n registerSlot(entity.provides, [...entity.path, ...entity.idPath]);\n }\n }\n // Collect reference provides\n for (const reference of references) {\n if (reference.provides) {\n registerSlot(reference.provides, reference.path);\n }\n }\n return resolvedSlotsByType;\n}\n//# sourceMappingURL=resolve-slots.js.map","import { get } from 'es-toolkit/compat';\nimport { walkDataWithSchema } from '#src/parser/walk-data-with-schema.js';\nimport { createRefSchemaCollector, createRefSchemaVisitor, } from './ref-schema-visitor.js';\nimport { findNearestAncestorSlot, resolveSlots } from './resolve-slots.js';\n/**\n * Extracts definition refs by walking the schema structure alongside the parsed data.\n *\n * Flow:\n * 1. Walk schema+data in parallel using registered collectors\n * 2. Resolve all slot references to actual paths\n * 3. Resolve entity, reference, and expression parent/slot paths\n * 4. Validate no duplicate IDs\n *\n * @param schema - The Zod schema used to validate the data\n * @param value - The parsed value (output of schema.parse())\n * @returns The extracted refs with the original data unchanged\n */\nexport function extractDefinitionRefs(schema, value) {\n const entities = [];\n const references = [];\n const slots = [];\n const expressionAnnotations = [];\n // Entity collector: validates ID and captures name resolver\n const entityCollector = createRefSchemaCollector({\n kind: 'entity',\n visit(meta, data, context) {\n if (data === null || data === undefined || typeof data !== 'object')\n return;\n const id = get(data, meta.idPath);\n if (typeof id !== 'string' || !id) {\n throw new Error(`Unable to find id field '${meta.idPath.join('.')}' in entity ${meta.type.name} at path ${context.path.join('.')}`);\n }\n if (!meta.type.isId(id)) {\n throw new Error(`Invalid id field '${id}' in entity ${meta.type.name} at path ${context.path.join('.')}. Expected prefix: ${meta.type.prefix}. Got: ${id}`);\n }\n const nameResolver = (() => {\n if (meta.getNameResolver) {\n return meta.getNameResolver(data);\n }\n if (!('name' in data) ||\n typeof data.name !== 'string') {\n throw new Error(`Unable to find string name field in entity ${meta.type.name} at path ${context.path.join('.')}`);\n }\n return data.name;\n })();\n entities.push({\n id,\n idPath: meta.idPath,\n path: context.path,\n type: meta.type,\n nameResolver,\n parentSlot: meta.parentSlot,\n provides: meta.provides,\n });\n },\n });\n // Reference collector: records non-empty string references\n const referenceCollector = createRefSchemaCollector({\n kind: 'reference',\n visit(meta, data, context) {\n // Skip empty/undefined references\n if (typeof data !== 'string' || !data)\n return;\n references.push({\n path: context.path,\n type: meta.type,\n onDelete: meta.onDelete,\n parentSlot: meta.parentSlot,\n provides: meta.provides,\n });\n },\n });\n // Slot collector: records which ref-context scopes exist and where\n const slotCollector = createRefSchemaCollector({\n kind: 'ref-context',\n visit(meta, _data, context) {\n for (const slot of meta.slots) {\n slots.push({ path: context.path, slot });\n }\n },\n });\n // Expression collector: records expression annotations\n const expressionCollector = createRefSchemaCollector({\n kind: 'expression',\n visit(meta, data, context) {\n if (data === undefined || data === null)\n return;\n expressionAnnotations.push({\n path: context.path,\n value: data,\n parser: meta.parser,\n slots: meta.slots,\n });\n },\n });\n // Walk schema+data in parallel to collect all metadata\n const refVisitor = createRefSchemaVisitor([\n entityCollector,\n referenceCollector,\n slotCollector,\n expressionCollector,\n ]);\n walkDataWithSchema(schema, value, [refVisitor]);\n // Resolve all slots to paths (reuses existing slot resolution logic)\n const resolvedSlots = resolveSlots({\n entities,\n references,\n slots,\n expressions: expressionAnnotations,\n });\n // Helper to resolve a parentSlot to a path\n function resolveParentPath(parentSlot, path) {\n const resolvedSlot = findNearestAncestorSlot(resolvedSlots.get(parentSlot.id), path);\n if (!resolvedSlot) {\n throw new Error(`Could not resolve parent path from ${path.join('.')} for slot ${String(parentSlot.id.description)}`);\n }\n return resolvedSlot.resolvedPath;\n }\n const entitiesWithNameResolver = entities.map((entity) => ({\n id: entity.id,\n idPath: entity.idPath,\n nameResolver: entity.nameResolver,\n type: entity.type,\n path: entity.path,\n parentPath: entity.parentSlot\n ? resolveParentPath(entity.parentSlot, entity.path)\n : undefined,\n }));\n const resolvedReferences = references.map((reference) => ({\n type: reference.type,\n path: reference.path,\n onDelete: reference.onDelete,\n parentPath: reference.parentSlot\n ? resolveParentPath(reference.parentSlot, reference.path)\n : undefined,\n }));\n // Resolve expression slots\n const expressions = expressionAnnotations.map((expression) => {\n const resolvedSlotPaths = {};\n if (expression.slots) {\n for (const [key, slot] of Object.entries(expression.slots)) {\n const resolvedSlot = findNearestAncestorSlot(resolvedSlots.get(slot.id), expression.path);\n if (!resolvedSlot) {\n throw new Error(`Could not resolve expression slot \"${key}\" at path ${expression.path.join('.')}`);\n }\n resolvedSlotPaths[key] = resolvedSlot.resolvedPath;\n }\n }\n return {\n path: expression.path,\n value: expression.value,\n parser: expression.parser,\n resolvedSlots: resolvedSlotPaths,\n };\n });\n // Validate no duplicate entity IDs\n const idSet = new Set();\n for (const entity of entities) {\n if (idSet.has(entity.id)) {\n throw new Error(`Duplicate ID found: ${entity.id}`);\n }\n idSet.add(entity.id);\n }\n return {\n data: value,\n references: resolvedReferences,\n entitiesWithNameResolver,\n expressions,\n };\n}\n//# sourceMappingURL=extract-definition-refs.js.map","import { toposort } from '@baseplate-dev/utils';\nimport { keyBy, mapValues } from 'es-toolkit';\n/**\n * Resolves entity names in a ZodRefPayload.\n *\n * @param payload - The ZodRefPayload to resolve.\n * @param options - The options for resolving entity names.\n *\n * @template T - The type of the payload.\n */\nexport function resolveZodRefPayloadNames(payload, { skipReferenceNameResolution = false, allowInvalidReferences = false, } = {}) {\n const { entitiesWithNameResolver, references, data } = payload;\n const entitiesById = keyBy(entitiesWithNameResolver, (entity) => entity.id);\n const resolvedEntitiesById = new Map();\n // sort entities by dependency order\n const orderedEntities = toposort(entitiesWithNameResolver.map((entity) => entity.id), entitiesWithNameResolver.flatMap((entity) => {\n if (typeof entity.nameResolver !== 'object') {\n return [];\n }\n const entityIds = entity.nameResolver.idsToResolve ?? {};\n return Object.values(entityIds)\n .flat()\n .filter((id) => id in entitiesById)\n .map((id) => [id, entity.id]);\n }));\n function resolveIdToName(id) {\n if (skipReferenceNameResolution) {\n return id;\n }\n const entity = resolvedEntitiesById.get(id);\n if (!entity) {\n if (allowInvalidReferences) {\n return id;\n }\n throw new Error(`Could not resolve entity name for id: ${id}`);\n }\n return entity.name;\n }\n for (const id of orderedEntities) {\n const { nameResolver, ...rest } = entitiesById[id];\n if (typeof nameResolver === 'string') {\n resolvedEntitiesById.set(rest.id, {\n ...rest,\n name: nameResolver,\n });\n }\n else {\n const resolvedIds = mapValues(nameResolver.idsToResolve ?? {}, (idOrIds) => Array.isArray(idOrIds)\n ? idOrIds.map((id) => resolveIdToName(id))\n : resolveIdToName(idOrIds));\n resolvedEntitiesById.set(rest.id, {\n ...rest,\n name: nameResolver.resolveName(resolvedIds),\n });\n }\n }\n return {\n entities: [...resolvedEntitiesById.values()],\n references,\n data,\n expressions: payload.expressions,\n };\n}\n//# sourceMappingURL=resolve-zod-ref-payload-names.js.map","import { extractDefinitionRefs } from './extract-definition-refs.js';\nimport { resolveZodRefPayloadNames } from './resolve-zod-ref-payload-names.js';\n/**\n * Parses a schema with references.\n *\n * Validates the input using Zod, then walks the schema structure alongside\n * the parsed data to extract entity/reference/expression metadata.\n *\n * @param schema - The already-constructed Zod schema\n * @param input - The input to parse\n * @param options - Options for resolving ref payload names\n * @returns The parsed data with resolved ref metadata\n */\nexport function parseSchemaWithTransformedReferences(schema, input, options) {\n // Step 1: Validate with Zod\n const value = schema.parse(input);\n // Step 2: Walk schema+data in parallel to extract ref metadata\n const refPayload = extractDefinitionRefs(schema, value);\n return resolveZodRefPayloadNames(refPayload, options);\n}\n//# sourceMappingURL=parse-schema-with-references.js.map","import { toposort } from '@baseplate-dev/utils';\nimport { groupBy, keyBy, uniq } from 'es-toolkit';\nimport { get, set } from 'es-toolkit/compat';\nimport { parseSchemaWithTransformedReferences } from './parse-schema-with-references.js';\nfunction referenceToNameParentId(name, parentId) {\n return JSON.stringify({ name, parentId });\n}\n/**\n * Deserialize a schema with references using the new transform-based approach.\n * This function converts human-readable names back to entity IDs.\n *\n * @template T - The Zod schema type\n * @param schema - The already-constructed Zod schema\n * @param input - The input data with names instead of IDs\n * @returns The resolved payload with IDs instead of names\n */\nexport function deserializeSchemaWithTransformedReferences(schema, input) {\n const payload = parseSchemaWithTransformedReferences(schema, input, {\n skipReferenceNameResolution: true,\n });\n // Use the same resolution logic as the original function\n return resolveReferencesToIds(payload);\n}\n/**\n * Internal function to resolve entity names to IDs in the payload.\n * This is shared logic between the old and new approaches.\n *\n * @param payload - The parsed payload with entities and references\n * @returns The payload with references resolved to IDs\n */\nfunction resolveReferencesToIds(payload) {\n const { references, entities, data } = payload;\n if (typeof data !== 'object' || data === null) {\n throw new TypeError('Data is not an object');\n }\n // check we don't have more entities than IDs\n const entitiesById = groupBy(entities, (entity) => entity.id);\n const duplicateEntityIds = Object.values(entitiesById).filter((e) => e.length > 1);\n if (duplicateEntityIds.length > 0) {\n throw new Error(`Found multiple duplicate entity IDs: ${duplicateEntityIds\n .map((ents) => `${ents[0].id} (${ents.map((e) => e.path.join('.')).join(',')})`)\n .join(', ')}`);\n }\n const uniqueEntityIds = uniq(entities.map((e) => e.id));\n if (uniqueEntityIds.length !== entities.length) {\n throw new Error(`Found duplicate entity IDs`);\n }\n // collect reference entity types\n const entityTypes = uniq(entities.map((e) => e.type));\n const entityTypeNames = uniq(entityTypes.map((t) => t.name));\n if (entityTypeNames.length !== entityTypes.length) {\n throw new Error(`Found more entity types than entity type names implying duplicate entity type name`);\n }\n const entityTypeOrder = toposort(entityTypeNames, entityTypes\n .filter((entityType) => !!entityType.parentType)\n .map((entityType) => [\n entityType.parentType?.name ?? '',\n entityType.name,\n ]));\n const entitiesByType = groupBy(entities, (e) => e.type.name);\n const referencesByType = groupBy(references, (r) => r.type.name);\n for (const name of entityTypeOrder) {\n const entities = entitiesByType[name] ?? [];\n const references = referencesByType[name] ?? [];\n // resolve references to their ID\n const entitiesByParentIdName = keyBy(entities, (e) => {\n const { parentPath } = e;\n const parentId = parentPath\n ? get(data, parentPath)\n : undefined;\n if (parentPath && typeof parentId !== 'string') {\n throw new Error(`Could not resolve parent path: ${parentPath.join('.')}`);\n }\n return referenceToNameParentId(e.name, parentId);\n });\n for (const ref of references) {\n const name = get(data, ref.path);\n // parent ID should have already been resolved due to order of resolving references\n const parentId = ref.parentPath && get(data, ref.parentPath);\n const parentIdName = referenceToNameParentId(name, parentId);\n const resolvedEntity = entitiesByParentIdName[parentIdName];\n if (!resolvedEntity) {\n throw new Error(`Unable to resolve reference: ${ref.path.join('.')} (${ref.type.name} ${parentIdName})`);\n }\n set(data, ref.path, resolvedEntity.id);\n }\n }\n return payload;\n}\n//# sourceMappingURL=deserialize-schema.js.map","import { sortBy } from 'es-toolkit';\nimport { get, groupBy, set } from 'es-toolkit/compat';\nimport { parseSchemaWithTransformedReferences } from './parse-schema-with-references.js';\n// sentinel ID to signify the reference has been flagged for deletion\nconst DELETED_SENTINEL_ID = 'deleted-sentinel-id';\n/**\n * Fixes any reference deletions by performing the appropriate action for the reference\n */\nexport function fixRefDeletions(schema, value) {\n const issues = [];\n // find all references that do not have a corresponding entity\n let iterations;\n let valueToEdit = value;\n for (iterations = 0; iterations < 100; iterations++) {\n const parseResult = parseSchemaWithTransformedReferences(schema, valueToEdit, {\n allowInvalidReferences: true,\n });\n const { references, entities } = parseResult;\n valueToEdit = parseResult.data;\n const entitiesById = new Map(entities.map((e) => [e.id, e]));\n const referencesMissingEntity = references.filter((r) => {\n const id = get(valueToEdit, r.path);\n return id !== DELETED_SENTINEL_ID && !entitiesById.has(id);\n });\n if (referencesMissingEntity.length === 0) {\n if (issues.length > 0) {\n return {\n type: 'failure',\n issues,\n };\n }\n return {\n type: 'success',\n value: valueToEdit,\n refPayload: parseResult,\n };\n }\n const objectsToDeleteInArray = [];\n function tryDeleteParent(path) {\n if (path.length === 0) {\n return false;\n }\n const parentPath = path.slice(0, -1);\n const parent = get(valueToEdit, parentPath);\n if (!Array.isArray(parent)) {\n return false;\n }\n objectsToDeleteInArray.push({\n path: parentPath,\n idx: path.at(-1),\n });\n return true;\n }\n // attempt to fix reference\n for (const ref of referencesMissingEntity) {\n const id = get(valueToEdit, ref.path);\n switch (ref.onDelete) {\n case 'SET_UNDEFINED': {\n // Check if reference is inside an array\n if (ref.path.length > 0) {\n const parentPath = ref.path.slice(0, -1);\n const parent = get(valueToEdit, parentPath);\n if (Array.isArray(parent)) {\n throw new TypeError(`SET_UNDEFINED cannot be used for references inside arrays at path ${ref.path.join('.')}. Use DELETE instead to remove the array element.`);\n }\n }\n set(valueToEdit, ref.path, undefined);\n break;\n }\n case 'RESTRICT': {\n issues.push({ ref, entityId: id });\n set(valueToEdit, ref.path, DELETED_SENTINEL_ID);\n break;\n }\n case 'DELETE': {\n if (!tryDeleteParent(ref.path)) {\n throw new Error(`Unable to find ref to cascade delete to`);\n }\n break;\n }\n case 'DELETE_PARENT': {\n if (!tryDeleteParent(ref.path.slice(0, -1))) {\n throw new Error(`Unable to find ref to cascade delete to`);\n }\n break;\n }\n default: {\n throw new Error(`Unknown onDelete action ${ref.onDelete}`);\n }\n }\n }\n const objectsToDeleteByPath = groupBy(objectsToDeleteInArray, (o) => o.path.join('.'));\n // delete objects in reverse order to avoid index shifting\n for (const [, objects] of Object.entries(objectsToDeleteByPath)) {\n const sortedObjects = sortBy(objects, [(o) => -o.idx]);\n for (const o of sortedObjects) {\n const parent = get(valueToEdit, o.path);\n if (!Array.isArray(parent)) {\n throw new TypeError(`Expected parent to be an array at path ${o.path.join('.')}`);\n }\n parent.splice(o.idx, 1);\n }\n }\n }\n throw new Error(`Exceeded max iterations fixing deletions`);\n}\n//# sourceMappingURL=fix-ref-deletions.js.map","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = isFunction(e) ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar O = Object;\nvar getPrototypeOf = O.getPrototypeOf;\nvar CONSTRUCTOR = \"constructor\";\nvar PROTOTYPE = \"prototype\";\nvar CONFIGURABLE = \"configurable\";\nvar ENUMERABLE = \"enumerable\";\nvar WRITABLE = \"writable\";\nvar VALUE = \"value\";\nvar isDraft = (value) => !!value && !!value[DRAFT_STATE];\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || isArray(value) || !!value[DRAFTABLE] || !!value[CONSTRUCTOR]?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString();\nvar cachedCtorStrings = /* @__PURE__ */ new WeakMap();\nfunction isPlainObject(value) {\n if (!value || !isObjectish(value))\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null || proto === O[PROTOTYPE])\n return true;\n const Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR];\n if (Ctor === Object)\n return true;\n if (!isFunction(Ctor))\n return false;\n let ctorString = cachedCtorStrings.get(Ctor);\n if (ctorString === void 0) {\n ctorString = Function.toString.call(Ctor);\n cachedCtorStrings.set(Ctor, ctorString);\n }\n return ctorString === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter, strict = true) {\n if (getArchtype(obj) === 0 /* Object */) {\n const keys = strict ? Reflect.ownKeys(obj) : O.keys(obj);\n keys.forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nvar has = (thing, prop, type = getArchtype(thing)) => type === 2 /* Map */ ? thing.has(prop) : O[PROTOTYPE].hasOwnProperty.call(thing, prop);\nvar get = (thing, prop, type = getArchtype(thing)) => (\n // @ts-ignore\n type === 2 /* Map */ ? thing.get(prop) : thing[prop]\n);\nvar set = (thing, propOrOldValue, value, type = getArchtype(thing)) => {\n if (type === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (type === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n};\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nvar isArray = Array.isArray;\nvar isMap = (target) => target instanceof Map;\nvar isSet = (target) => target instanceof Set;\nvar isObjectish = (target) => typeof target === \"object\";\nvar isFunction = (target) => typeof target === \"function\";\nvar isBoolean = (target) => typeof target === \"boolean\";\nfunction isArrayIndex(value) {\n const n = +value;\n return Number.isInteger(n) && String(n) === value;\n}\nvar getProxyDraft = (value) => {\n if (!isObjectish(value))\n return null;\n return value?.[DRAFT_STATE];\n};\nvar latest = (state) => state.copy_ || state.base_;\nvar getValue = (value) => {\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value;\n};\nvar getFinalValue = (state) => state.modified_ ? state.copy_ : state.base_;\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (isArray(base))\n return Array[PROTOTYPE].slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = O.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc[WRITABLE] === false) {\n desc[WRITABLE] = true;\n desc[CONFIGURABLE] = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n [CONFIGURABLE]: true,\n [WRITABLE]: true,\n // could live with !!desc.set as well here...\n [ENUMERABLE]: desc[ENUMERABLE],\n [VALUE]: base[key]\n };\n }\n return O.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = O.create(proto);\n return O.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n O.defineProperties(obj, {\n set: dontMutateMethodOverride,\n add: dontMutateMethodOverride,\n clear: dontMutateMethodOverride,\n delete: dontMutateMethodOverride\n });\n }\n O.freeze(obj);\n if (deep)\n each(\n obj,\n (_key, value) => {\n freeze(value, true);\n },\n false\n );\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nvar dontMutateMethodOverride = {\n [VALUE]: dontMutateFrozenCollections\n};\nfunction isFrozen(obj) {\n if (obj === null || !isObjectish(obj))\n return true;\n return O.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar PluginMapSet = \"MapSet\";\nvar PluginPatches = \"Patches\";\nvar PluginArrayMethods = \"ArrayMethods\";\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nvar isPluginLoaded = (pluginKey) => !!plugins[pluginKey];\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nvar getCurrentScope = () => currentScope;\nvar createScope = (parent_, immer_) => ({\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0,\n handledSet_: /* @__PURE__ */ new Set(),\n processedForPatches_: /* @__PURE__ */ new Set(),\n mapSetPlugin_: isPluginLoaded(PluginMapSet) ? getPlugin(PluginMapSet) : void 0,\n arrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods) ? getPlugin(PluginArrayMethods) : void 0\n});\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n scope.patchPlugin_ = getPlugin(PluginPatches);\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nvar enterScope = (immer2) => currentScope = createScope(currentScope, immer2);\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n }\n const { patchPlugin_ } = scope;\n if (patchPlugin_) {\n patchPlugin_.generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope\n );\n }\n } else {\n result = finalize(scope, baseDraft);\n }\n maybeFreeze(scope, result, true);\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n const finalValue = handleValue(value, rootScope.handledSet_, rootScope);\n return finalValue;\n }\n if (!isSameScope(state, rootScope)) {\n return value;\n }\n if (!state.modified_) {\n return state.base_;\n }\n if (!state.finalized_) {\n const { callbacks_ } = state;\n if (callbacks_) {\n while (callbacks_.length > 0) {\n const callback = callbacks_.pop();\n callback(rootScope);\n }\n }\n generatePatchesAndFinalize(state, rootScope);\n }\n return state.copy_;\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\nfunction markStateFinalized(state) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n}\nvar isSameScope = (state, rootScope) => state.scope_ === rootScope;\nvar EMPTY_LOCATIONS_RESULT = [];\nfunction updateDraftInParent(parent, draftValue, finalizedValue, originalKey) {\n const parentCopy = latest(parent);\n const parentType = parent.type_;\n if (originalKey !== void 0) {\n const currentValue = get(parentCopy, originalKey, parentType);\n if (currentValue === draftValue) {\n set(parentCopy, originalKey, finalizedValue, parentType);\n return;\n }\n }\n if (!parent.draftLocations_) {\n const draftLocations = parent.draftLocations_ = /* @__PURE__ */ new Map();\n each(parentCopy, (key, value) => {\n if (isDraft(value)) {\n const keys = draftLocations.get(value) || [];\n keys.push(key);\n draftLocations.set(value, keys);\n }\n });\n }\n const locations = parent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT;\n for (const location of locations) {\n set(parentCopy, location, finalizedValue, parentType);\n }\n}\nfunction registerChildFinalizationCallback(parent, child, key) {\n parent.callbacks_.push(function childCleanup(rootScope) {\n const state = child;\n if (!state || !isSameScope(state, rootScope)) {\n return;\n }\n rootScope.mapSetPlugin_?.fixSetContents(state);\n const finalizedValue = getFinalValue(state);\n updateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key);\n generatePatchesAndFinalize(state, rootScope);\n });\n}\nfunction generatePatchesAndFinalize(state, rootScope) {\n const shouldFinalize = state.modified_ && !state.finalized_ && (state.type_ === 3 /* Set */ || state.type_ === 1 /* Array */ && state.allIndicesReassigned_ || (state.assigned_?.size ?? 0) > 0);\n if (shouldFinalize) {\n const { patchPlugin_ } = rootScope;\n if (patchPlugin_) {\n const basePath = patchPlugin_.getPath(state);\n if (basePath) {\n patchPlugin_.generatePatches_(state, basePath, rootScope);\n }\n }\n markStateFinalized(state);\n }\n}\nfunction handleCrossReference(target, key, value) {\n const { scope_ } = target;\n if (isDraft(value)) {\n const state = value[DRAFT_STATE];\n if (isSameScope(state, scope_)) {\n state.callbacks_.push(function crossReferenceCleanup() {\n prepareCopy(target);\n const finalizedValue = getFinalValue(state);\n updateDraftInParent(target, value, finalizedValue, key);\n });\n }\n } else if (isDraftable(value)) {\n target.callbacks_.push(function nestedDraftCleanup() {\n const targetCopy = latest(target);\n if (target.type_ === 3 /* Set */) {\n if (targetCopy.has(value)) {\n handleValue(value, scope_.handledSet_, scope_);\n }\n } else {\n if (get(targetCopy, key, target.type_) === value) {\n if (scope_.drafts_.length > 1 && (target.assigned_.get(key) ?? false) === true && target.copy_) {\n handleValue(\n get(target.copy_, key, target.type_),\n scope_.handledSet_,\n scope_\n );\n }\n }\n }\n });\n }\n}\nfunction handleValue(target, handledSet, rootScope) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return target;\n }\n if (isDraft(target) || handledSet.has(target) || !isDraftable(target) || isFrozen(target)) {\n return target;\n }\n handledSet.add(target);\n each(target, (key, value) => {\n if (isDraft(value)) {\n const state = value[DRAFT_STATE];\n if (isSameScope(state, rootScope)) {\n const updatedValue = getFinalValue(state);\n set(target, key, updatedValue, target.type_);\n markStateFinalized(state);\n }\n } else if (isDraftable(value)) {\n handleValue(value, handledSet, rootScope);\n }\n });\n return target;\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const baseIsArray = isArray(base);\n const state = {\n type_: baseIsArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n // actually instantiated in `prepareCopy()`\n assigned_: void 0,\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false,\n // `callbacks` actually gets assigned in `createProxy`\n callbacks_: void 0\n };\n let target = state;\n let traps = objectTraps;\n if (baseIsArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return [proxy, state];\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n let arrayPlugin = state.scope_.arrayMethodsPlugin_;\n const isArrayWithStringProp = state.type_ === 1 /* Array */ && typeof prop === \"string\";\n if (isArrayWithStringProp) {\n if (arrayPlugin?.isArrayOperationMethod(prop)) {\n return arrayPlugin.createMethodInterceptor(state, prop);\n }\n }\n const source = latest(state);\n if (!has(source, prop, state.type_)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (isArrayWithStringProp && state.operationMethod && arrayPlugin?.isMutatingArrayMethod(\n state.operationMethod\n ) && isArrayIndex(prop)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n const childKey = state.type_ === 1 /* Array */ ? +prop : prop;\n const childDraft = createProxy(state.scope_, value, state, childKey);\n return state.copy_[childKey] = childDraft;\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_.set(prop, false);\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop, state.type_)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_.set(prop, true);\n handleCrossReference(state, prop, value);\n return true;\n },\n deleteProperty(state, prop) {\n prepareCopy(state);\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_.set(prop, false);\n markChanged(state);\n } else {\n state.assigned_.delete(prop);\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n [WRITABLE]: true,\n [CONFIGURABLE]: state.type_ !== 1 /* Array */ || prop !== \"length\",\n [ENUMERABLE]: desc[ENUMERABLE],\n [VALUE]: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\nfor (let key in objectTraps) {\n let fn = objectTraps[key];\n arrayTraps[key] = function() {\n const args = arguments;\n args[0] = args[0][0];\n return fn.apply(this, args);\n };\n}\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? VALUE in desc ? desc[VALUE] : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n this.useStrictIteration_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (isFunction(base) && !isFunction(recipe)) {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (!isFunction(recipe))\n die(6);\n if (patchListener !== void 0 && !isFunction(patchListener))\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(scope, base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || !isObjectish(base)) {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(PluginPatches).generateReplacementPatches_(base, result, {\n patches_: p,\n inversePatches_: ip\n });\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (isFunction(base)) {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (isBoolean(config?.autoFreeze))\n this.setAutoFreeze(config.autoFreeze);\n if (isBoolean(config?.useStrictShallowCopy))\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n if (isBoolean(config?.useStrictIteration))\n this.setUseStrictIteration(config.useStrictIteration);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(scope, base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n /**\n * Pass false to use faster iteration that skips non-enumerable properties\n * but still handles symbols for compatibility.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\n setUseStrictIteration(value) {\n this.useStrictIteration_ = value;\n }\n shouldUseStrictIteration() {\n return this.useStrictIteration_;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(PluginPatches).applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(rootScope, value, parent, key) {\n const [draft, state] = isMap(value) ? getPlugin(PluginMapSet).proxyMap_(value, parent) : isSet(value) ? getPlugin(PluginMapSet).proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent?.scope_ ?? getCurrentScope();\n scope.drafts_.push(draft);\n state.callbacks_ = parent?.callbacks_ ?? [];\n state.key_ = key;\n if (parent && key !== void 0) {\n registerChildFinalizationCallback(parent, state, key);\n } else {\n state.callbacks_.push(function rootDraftCleanup(rootScope2) {\n rootScope2.mapSetPlugin_?.fixSetContents(state);\n const { patchPlugin_ } = rootScope2;\n if (state.modified_ && patchPlugin_) {\n patchPlugin_.generatePatches_(state, [], rootScope2);\n }\n });\n }\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n let strict = true;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n strict = state.scope_.immer_.shouldUseStrictIteration();\n } else {\n copy = shallowCopy(value, true);\n }\n each(\n copy,\n (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n },\n strict\n );\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n function getPath(state, path = []) {\n if (state.key_ !== void 0) {\n const parentCopy = state.parent_.copy_ ?? state.parent_.base_;\n const proxyDraft = getProxyDraft(get(parentCopy, state.key_));\n const valueAtKey = get(parentCopy, state.key_);\n if (valueAtKey === void 0) {\n return null;\n }\n if (valueAtKey !== state.draft_ && valueAtKey !== state.base_ && valueAtKey !== state.copy_) {\n return null;\n }\n if (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n return null;\n }\n const isSet2 = state.parent_.type_ === 3 /* Set */;\n let key;\n if (isSet2) {\n const setParent = state.parent_;\n key = Array.from(setParent.drafts_.keys()).indexOf(state.key_);\n } else {\n key = state.key_;\n }\n if (!(isSet2 && parentCopy.size > key || has(parentCopy, key))) {\n return null;\n }\n path.push(key);\n }\n if (state.parent_) {\n return getPath(state.parent_, path);\n }\n path.reverse();\n try {\n resolvePath(state.copy_, path);\n } catch (e) {\n return null;\n }\n return path;\n }\n function resolvePath(base, path) {\n let current2 = base;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n current2 = get(current2, key);\n if (!isObjectish(current2) || current2 === null) {\n throw new Error(`Cannot resolve path at '${path.join(\"/\")}'`);\n }\n }\n return current2;\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, scope) {\n if (state.scope_.processedForPatches_.has(state)) {\n return;\n }\n state.scope_.processedForPatches_.add(state);\n const { patches_, inversePatches_ } = scope;\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n case 1 /* Array */:\n return generateArrayPatches(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n const allReassigned = state.allIndicesReassigned_ === true;\n for (let i = 0; i < base_.length; i++) {\n const copiedItem = copy_[i];\n const baseItem = base_[i];\n const isAssigned = allReassigned || assigned_?.get(i.toString());\n if (isAssigned && copiedItem !== baseItem) {\n const childState = copiedItem?.[DRAFT_STATE];\n if (childState && childState.modified_) {\n continue;\n }\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copiedItem)\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(baseItem)\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_, type_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key, type_);\n const value = get(copy_, key, type_);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(\n op === REMOVE ? { op, path } : { op, path, value: clonePatchValueIfNeeded(value) }\n );\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, scope) {\n const { patches_, inversePatches_ } = scope;\n patches_.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches_.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === CONSTRUCTOR))\n die(errorOffset + 3);\n if (isFunction(base) && p === PROTOTYPE)\n die(errorOffset + 3);\n base = get(base, p);\n if (!isObjectish(base))\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(PluginPatches, {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_,\n getPath\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false,\n callbacks_: []\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n handleCrossReference(state, key, value);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(state.scope_, value, state, key);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n const map = new DraftMap(target, parent);\n return [map, map[DRAFT_STATE]];\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false,\n assigned_: void 0,\n callbacks_: []\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n handleCrossReference(state, value, value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n const set2 = new DraftSet(target, parent);\n return [set2, set2[DRAFT_STATE]];\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(state.scope_, value, state, value);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n function fixSetContents(target) {\n if (target.type_ === 3 /* Set */ && target.copy_) {\n const copy = new Set(target.copy_);\n target.copy_.clear();\n copy.forEach((value) => {\n target.copy_.add(getValue(value));\n });\n }\n }\n loadPlugin(PluginMapSet, { proxyMap_, proxySet_, fixSetContents });\n}\n\n// src/plugins/arrayMethods.ts\nfunction enableArrayMethods() {\n const SHIFTING_METHODS = /* @__PURE__ */ new Set([\"shift\", \"unshift\"]);\n const QUEUE_METHODS = /* @__PURE__ */ new Set([\"push\", \"pop\"]);\n const RESULT_RETURNING_METHODS = /* @__PURE__ */ new Set([\n ...QUEUE_METHODS,\n ...SHIFTING_METHODS\n ]);\n const REORDERING_METHODS = /* @__PURE__ */ new Set([\"reverse\", \"sort\"]);\n const MUTATING_METHODS = /* @__PURE__ */ new Set([\n ...RESULT_RETURNING_METHODS,\n ...REORDERING_METHODS,\n \"splice\"\n ]);\n const FIND_METHODS = /* @__PURE__ */ new Set([\"find\", \"findLast\"]);\n const NON_MUTATING_METHODS = /* @__PURE__ */ new Set([\n \"filter\",\n \"slice\",\n \"concat\",\n \"flat\",\n ...FIND_METHODS,\n \"findIndex\",\n \"findLastIndex\",\n \"some\",\n \"every\",\n \"indexOf\",\n \"lastIndexOf\",\n \"includes\",\n \"join\",\n \"toString\",\n \"toLocaleString\"\n ]);\n function isMutatingArrayMethod(method) {\n return MUTATING_METHODS.has(method);\n }\n function isNonMutatingArrayMethod(method) {\n return NON_MUTATING_METHODS.has(method);\n }\n function isArrayOperationMethod(method) {\n return isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method);\n }\n function enterOperation(state, method) {\n state.operationMethod = method;\n }\n function exitOperation(state) {\n state.operationMethod = void 0;\n }\n function executeArrayMethod(state, operation, markLength = true) {\n prepareCopy(state);\n const result = operation();\n markChanged(state);\n if (markLength)\n state.assigned_.set(\"length\", true);\n return result;\n }\n function markAllIndicesReassigned(state) {\n state.allIndicesReassigned_ = true;\n }\n function normalizeSliceIndex(index, length) {\n if (index < 0) {\n return Math.max(length + index, 0);\n }\n return Math.min(index, length);\n }\n function handleInsertedValues(state, startIndex, values) {\n for (let i = 0; i < values.length; i++) {\n const index = startIndex + i;\n state.assigned_.set(index, true);\n handleCrossReference(state, index, values[i]);\n }\n }\n function handleSimpleOperation(state, method, args) {\n return executeArrayMethod(state, () => {\n const lengthBefore = state.copy_.length;\n const result = state.copy_[method](...args);\n if (SHIFTING_METHODS.has(method)) {\n markAllIndicesReassigned(state);\n }\n if (method === \"push\" && args.length > 0) {\n handleInsertedValues(state, lengthBefore, args);\n } else if (method === \"unshift\" && args.length > 0) {\n handleInsertedValues(state, 0, args);\n }\n return RESULT_RETURNING_METHODS.has(method) ? result : state.draft_;\n });\n }\n function handleReorderingOperation(state, method, args) {\n return executeArrayMethod(\n state,\n () => {\n ;\n state.copy_[method](...args);\n markAllIndicesReassigned(state);\n return state.draft_;\n },\n false\n );\n }\n function createMethodInterceptor(state, originalMethod) {\n return function interceptedMethod(...args) {\n const method = originalMethod;\n enterOperation(state, method);\n try {\n if (isMutatingArrayMethod(method)) {\n if (RESULT_RETURNING_METHODS.has(method)) {\n return handleSimpleOperation(state, method, args);\n }\n if (REORDERING_METHODS.has(method)) {\n return handleReorderingOperation(state, method, args);\n }\n if (method === \"splice\") {\n const res = executeArrayMethod(\n state,\n () => state.copy_.splice(...args)\n );\n markAllIndicesReassigned(state);\n if (args.length > 2) {\n const startIndex = normalizeSliceIndex(\n args[0] ?? 0,\n state.copy_.length\n );\n handleInsertedValues(state, startIndex, args.slice(2));\n }\n return res;\n }\n } else {\n return handleNonMutatingOperation(state, method, args);\n }\n } finally {\n exitOperation(state);\n }\n };\n }\n function handleNonMutatingOperation(state, method, args) {\n const source = latest(state);\n if (method === \"filter\") {\n const predicate = args[0];\n const result = [];\n for (let i = 0; i < source.length; i++) {\n if (predicate(source[i], i, source)) {\n result.push(state.draft_[i]);\n }\n }\n return result;\n }\n if (FIND_METHODS.has(method)) {\n const predicate = args[0];\n const isForward = method === \"find\";\n const step = isForward ? 1 : -1;\n const start = isForward ? 0 : source.length - 1;\n for (let i = start; i >= 0 && i < source.length; i += step) {\n if (predicate(source[i], i, source)) {\n return state.draft_[i];\n }\n }\n return void 0;\n }\n if (method === \"slice\") {\n const rawStart = args[0] ?? 0;\n const rawEnd = args[1] ?? source.length;\n const start = normalizeSliceIndex(rawStart, source.length);\n const end = normalizeSliceIndex(rawEnd, source.length);\n const result = [];\n for (let i = start; i < end; i++) {\n result.push(state.draft_[i]);\n }\n return result;\n }\n return source[method](...args);\n }\n loadPlugin(PluginArrayMethods, {\n createMethodInterceptor,\n isArrayOperationMethod,\n isMutatingArrayMethod\n });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n immer\n);\nvar setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n immer\n);\nvar applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);\nvar createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);\nvar finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);\nvar castDraft = (value) => value;\nvar castImmutable = (value) => value;\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableArrayMethods,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictIteration,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","import { getSchemaChildren } from './schema-structure.js';\n/**\n * Walks a Zod schema in parallel with data, applying a transform function\n * bottom-up. Children are transformed first, then the parent transform\n * sees the already-transformed children.\n *\n * Returns a new data tree with transformations applied. Preserves object\n * references when no changes occur in a subtree (structural sharing).\n *\n * Transform semantics for `undefined` returns:\n * - Object keys: the key is omitted from the result\n * - Array elements: `undefined` is kept in place (indices must be preserved)\n */\nexport function transformDataWithSchema(schema, data, transform) {\n return transformNode(schema, data, [], transform);\n}\nfunction transformNode(schema, data, path, transform) {\n // Step 1: Structural descent — recurse into children first (bottom-up).\n let childResult = data;\n const children = getSchemaChildren(schema, data, path);\n switch (children.kind) {\n case 'leaf': {\n break;\n }\n case 'leaf-union': {\n break;\n }\n case 'wrapper': {\n if (children.skipIfNullish && (data === undefined || data === null))\n break;\n childResult = transformNode(children.innerSchema, data, path, transform);\n break;\n }\n case 'object': {\n if (data === null || data === undefined || typeof data !== 'object')\n break;\n const obj = data;\n let changed = false;\n const entries = [];\n for (const [key, fieldSchema] of children.entries) {\n const original = obj[key];\n const transformed = transformNode(fieldSchema, original, [...path, key], transform);\n if (transformed !== original)\n changed = true;\n entries.push([key, transformed]);\n }\n if (changed) {\n // Spread original first to preserve keys not in schema shape,\n // then overlay transformed entries.\n const result = { ...obj };\n for (const [key, value] of entries) {\n if (value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete result[key];\n }\n else {\n result[key] = value;\n }\n }\n childResult = result;\n }\n break;\n }\n case 'array': {\n if (!Array.isArray(data))\n break;\n let changed = false;\n const items = [];\n for (const [i, datum] of data.entries()) {\n const transformed = transformNode(children.elementSchema, datum, [...path, i], transform);\n if (transformed !== datum)\n changed = true;\n items.push(transformed);\n }\n if (changed) {\n childResult = items;\n }\n break;\n }\n case 'tuple': {\n if (!Array.isArray(data))\n break;\n let changed = false;\n const resultItems = [];\n for (const [i, itemSchema] of children.items.entries()) {\n if (i < data.length) {\n const transformed = transformNode(itemSchema, data[i], [...path, i], transform);\n if (transformed !== data[i])\n changed = true;\n resultItems.push(transformed);\n }\n }\n // Transform rest elements if the tuple has a rest schema\n if (children.rest) {\n for (let i = children.items.length; i < data.length; i++) {\n const transformed = transformNode(children.rest, data[i], [...path, i], transform);\n if (transformed !== data[i])\n changed = true;\n resultItems.push(transformed);\n }\n }\n if (changed) {\n childResult = resultItems;\n }\n break;\n }\n case 'record': {\n if (data === null || data === undefined || typeof data !== 'object')\n break;\n const obj = data;\n let changed = false;\n const entries = [];\n for (const [key, value] of Object.entries(obj)) {\n const transformed = transformNode(children.valueSchema, value, [...path, key], transform);\n if (transformed !== value)\n changed = true;\n entries.push([key, transformed]);\n }\n if (changed) {\n childResult = Object.fromEntries(entries.filter(([, v]) => v !== undefined));\n }\n break;\n }\n case 'discriminated-union': {\n if (children.match) {\n childResult = transformNode(children.match, data, path, transform);\n }\n break;\n }\n case 'intersection': {\n // Transform left first, then transform the result via right\n const leftResult = transformNode(children.left, data, path, transform);\n childResult = transformNode(children.right, leftResult, path, transform);\n break;\n }\n }\n // Step 2: Apply transform to the (already-transformed) child result.\n return transform(childResult, { path, schema });\n}\n//# sourceMappingURL=transform-data-with-schema.js.map","import { isEqual } from 'es-toolkit';\nimport { definitionDefaultRegistry } from '#src/schema/creator/definition-default-registry.js';\nimport { transformDataWithSchema } from './transform-data-with-schema.js';\n/**\n * Walks schema+data bottom-up, removing values that match their registered\n * defaults. Children are cleaned first, so cascading happens naturally:\n * if cleaning children produces a result matching the parent's default,\n * the parent is also stripped.\n *\n * The operation is fully reversible via `.prefault()`.\n *\n * Returns a new object with default-matching values removed, or the original\n * reference if nothing was changed.\n */\nexport function cleanDefaultValues(schema, data) {\n return transformDataWithSchema(schema, data, (value, ctx) => {\n const meta = definitionDefaultRegistry.get(ctx.schema);\n if (meta && isEqual(value, meta.defaultValue)) {\n return undefined;\n }\n return value;\n });\n}\n//# sourceMappingURL=clean-default-values.js.map","import { get, set } from 'es-toolkit/compat';\nimport { produce } from 'immer';\nimport { cleanDefaultValues } from '#src/parser/clean-default-values.js';\nimport { extractDefinitionRefs } from './extract-definition-refs.js';\nimport { resolveZodRefPayloadNames } from './resolve-zod-ref-payload-names.js';\nexport function serializeSchemaFromRefPayload(payload) {\n const { references, entities, data } = payload;\n if (typeof data !== 'object' || data === null) {\n throw new TypeError('Data is not an object');\n }\n const entitiesById = new Map(entities.map((e) => [e.id, e]));\n return produce((draftData) => {\n for (const reference of references) {\n const entityId = get(draftData, reference.path);\n const entity = entitiesById.get(entityId);\n if (!entity) {\n throw new Error(`Could not find entity with ID: ${entityId} at ${reference.path.join('.')}`);\n }\n set(draftData, reference.path, entity.name);\n }\n })(data);\n}\n/**\n * Serializes a schema value by:\n * 1. Parsing the input with Zod (populating defaults)\n * 2. Stripping values that match their registered defaults\n * 3. Extracting and resolving entity/reference metadata\n * 4. Replacing entity IDs with their human-readable names\n */\nexport function serializeSchema(schema, value) {\n // Step 1: Validate with Zod (prefault populates defaults)\n const rawValue = schema.parse(value);\n // Step 2: Strip values matching their registered defaults\n const cleanedValue = cleanDefaultValues(schema, rawValue);\n // Step 3: Walk schema+data to extract ref metadata\n const refPayload = extractDefinitionRefs(schema, cleanedValue);\n const resolvedPayload = resolveZodRefPayloadNames(refPayload);\n // Step 4: Replace entity IDs with names\n return serializeSchemaFromRefPayload(resolvedPayload);\n}\n//# sourceMappingURL=serialize-schema.js.map","import { createEntityType } from '#src/references/index.js';\nexport const modelEntityType = createEntityType('model');\nexport const modelScalarFieldEntityType = createEntityType('model-scalar-field', {\n parentType: modelEntityType,\n});\nexport const modelLocalRelationEntityType = createEntityType('model-local-relation', { parentType: modelEntityType });\nexport const modelForeignRelationEntityType = createEntityType('model-foreign-relation', { parentType: modelEntityType });\nexport const modelUniqueConstraintEntityType = createEntityType('model-unique-constraint', { parentType: modelEntityType });\nexport const modelIndexEntityType = createEntityType('model-index', {\n parentType: modelEntityType,\n});\nexport const modelTransformerEntityType = createEntityType('model-transformer', { parentType: modelEntityType });\nexport const modelEnumEntityType = createEntityType('model-enum');\nexport const modelEnumValueEntityType = createEntityType('model-enum-value', {\n parentType: modelEnumEntityType,\n});\n//# sourceMappingURL=types.js.map","import { createEntityType } from '#src/references/index.js';\nimport { modelEntityType } from '../types.js';\n/**\n * Entity type for model authorizer roles.\n * Each role is a child of the model it belongs to.\n */\nexport const modelAuthorizerRoleEntityType = createEntityType('model-authorizer-role', { parentType: modelEntityType });\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { VALIDATORS } from '#src/schema/utils/validation.js';\nimport { modelEntityType } from '../types.js';\nimport { authorizerExpressionParser } from './authorizer-expression-parser.js';\nimport { modelAuthorizerRoleEntityType } from './types.js';\n/**\n * Schema for a single authorizer role.\n *\n * A role defines a named authorization check that can be referenced\n * by operations (GraphQL queries/mutations, service methods).\n */\nexport const createAuthorizerRoleSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx.withEnt(z.object({\n /** Unique identifier for this role */\n id: z.string(),\n /**\n * Name of the role (camelCase).\n * Used as the key in the generated roles object.\n * @example 'owner', 'viewer', 'organizationMember'\n */\n name: VALIDATORS.CAMEL_CASE_STRING,\n /**\n * TypeScript expression that evaluates to a boolean.\n *\n * Available context variables:\n * - `model` - The model instance being authorized\n * - `userId` - The authenticated user's ID (implicit auth context)\n * - `hasRole()` / `hasSomeRole()` - Role checking functions\n *\n * @example 'model.id === userId'\n * @example 'hasRole(\"admin\")'\n * @example 'model.authorId === userId || hasRole(\"admin\")'\n */\n expression: ctx.withExpression(authorizerExpressionParser, {\n model: modelSlot,\n }),\n}), {\n type: modelAuthorizerRoleEntityType,\n parentSlot: modelSlot,\n}));\n/**\n * Schema for model authorizer configuration.\n *\n * The authorizer defines instance-level authorization checks\n * that operations can reference.\n */\nexport const createModelAuthorizerSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => z.object({\n /**\n * Array of role definitions for this model.\n * Each role is a named authorization check.\n */\n roles: z\n .array(createAuthorizerRoleSchema(ctx, { modelSlot }))\n .default([]),\n}));\n//# sourceMappingURL=authorizer.js.map","import { z } from 'zod';\nimport { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';\nimport { featureEntityType } from '../features/index.js';\nimport { modelEnumEntityType, modelEnumValueEntityType } from './types.js';\nexport const createEnumValueSchema = definitionSchemaWithSlots({ enumSlot: modelEnumEntityType }, (ctx, { enumSlot }) => ctx.withEnt(z.object({\n id: z.string(),\n name: z.string().min(1),\n friendlyName: z.string().min(1),\n}), {\n type: modelEnumValueEntityType,\n parentSlot: enumSlot,\n}));\nexport const createEnumBaseSchema = definitionSchemaWithSlots({ enumSlot: modelEnumEntityType }, (ctx, { enumSlot }) => z.object({\n id: z.string(),\n name: z.string().min(1),\n featureRef: ctx.withRef({\n type: featureEntityType,\n onDelete: 'RESTRICT',\n }),\n values: z.array(createEnumValueSchema(ctx, { enumSlot })),\n isExposed: z.boolean(),\n}));\nexport const createEnumSchema = definitionSchema((ctx) => ctx.refContext({ enumSlot: modelEnumEntityType }, ({ enumSlot }) => ctx.withEnt(createEnumBaseSchema(ctx, { enumSlot }), {\n type: modelEnumEntityType,\n provides: enumSlot,\n})));\n//# sourceMappingURL=enums.js.map","/**\n * Registry that stores fix metadata on Zod schema instances.\n *\n * Uses a WeakMap to avoid interfering with Zod's type system.\n * Annotated by `withFix()`; read by `applyDefinitionFixes()`.\n */\nexport const definitionFixRegistry = (() => {\n const map = new WeakMap();\n return {\n add(schema, fix) {\n const existing = map.get(schema);\n if (existing) {\n existing.fixes.push(fix);\n }\n else {\n map.set(schema, { fixes: [fix] });\n }\n },\n get(schema) {\n return map.get(schema);\n },\n };\n})();\n/**\n * Creates a schema decorator that registers a silent auto-fix.\n *\n * Used with `.apply()`:\n * ```typescript\n * z.object({ ... }).apply(withFix<MyType>((value, ctx) => fixedValue))\n * ```\n *\n * @param fix - The fix function to register\n * @returns A function that decorates a schema with the fix\n */\nexport function withFix(fix) {\n return (schema) => {\n definitionFixRegistry.add(schema, fix);\n return schema;\n };\n}\n//# sourceMappingURL=definition-fix-registry.js.map","import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\n/**\n * Plugin spec for registering definition-level issue checkers.\n *\n * Built-in checkers (relation type mismatch, mutation roles) are registered\n * by `collectDefinitionIssues` at runtime to avoid circular imports between\n * schema/creator/ and parser/. Plugins can register additional checkers during\n * initialization:\n * ```typescript\n * createPluginModule({\n * dependencies: { issueCheckers: definitionIssueCheckerSpec },\n * initialize: ({ issueCheckers }, { pluginKey }) => {\n * issueCheckers.checkers.set(pluginKey, (container) => {\n * // validate container.definition and return issues\n * return [];\n * });\n * },\n * });\n * ```\n */\nexport const definitionIssueCheckerSpec = createFieldMapSpec('core/definition-issue-checkers', (t) => ({\n checkers: t.map(),\n}), {\n use: (values) => ({\n getAllCheckers: () => values.checkers,\n }),\n});\n//# sourceMappingURL=definition-issue-checker-spec.js.map","/**\n * Creates an issue checker that detects duplicate values for a given field\n * in an array of objects.\n *\n * Used with `.apply(withIssueChecker(checkUniqueField(...)))` on array schemas.\n *\n * @param field - The field name to check for uniqueness\n * @param options.label - Human-readable label for the field (e.g. \"name\", \"port\")\n * @param options.severity - Severity level for duplicate issues (default: 'error')\n */\nexport function checkUniqueField(field, options = {}) {\n const { label = field, severity = 'error' } = options;\n return (items) => {\n const issues = [];\n const seen = new Map();\n for (const [i, item] of items.entries()) {\n const value = item[field];\n if (value === undefined || value === null || value === '')\n continue;\n const existingPath = seen.get(value);\n if (existingPath) {\n issues.push({\n message: `Duplicate ${label} \"${String(value)}\"`,\n path: [i, field],\n severity,\n });\n }\n else {\n seen.set(value, [i, field]);\n }\n }\n return issues;\n };\n}\n//# sourceMappingURL=definition-issue-checkers.js.map","/**\n * Registry that stores field-level issue checker metadata on Zod schema instances.\n *\n * Uses a WeakMap to avoid interfering with Zod's type system.\n * Annotated by `withIssueChecker()`; read by `collectFieldIssues()`.\n */\nexport const definitionFieldIssueRegistry = (() => {\n const map = new WeakMap();\n return {\n add(schema, checker) {\n const existing = map.get(schema);\n if (existing) {\n existing.checkers.push(checker);\n }\n else {\n map.set(schema, { checkers: [checker] });\n }\n },\n get(schema) {\n return map.get(schema);\n },\n };\n})();\n/**\n * Creates a schema decorator that registers a field-level issue checker.\n *\n * Used with `.apply()`:\n * ```typescript\n * z.object({ ... }).apply(withIssueChecker<MyType>((value) => {\n * const issues: FieldIssueResult[] = [];\n * if (someCondition) {\n * issues.push({ message: '...', path: ['fieldName'], severity: 'error' });\n * }\n * return issues;\n * }))\n * ```\n *\n * @param checker - The issue checker function to register\n * @returns A function that decorates a schema with the checker\n */\nexport function withIssueChecker(checker) {\n return (schema) => {\n definitionFieldIssueRegistry.add(schema, checker);\n return schema;\n };\n}\n//# sourceMappingURL=definition-issue-registry.js.map","/**\n * Registry that stores merge rule metadata on Zod schema instances.\n *\n * Uses a WeakMap to avoid interfering with Zod's type system.\n * Annotated by `withMergeRule()`; read by `mergeDataWithSchema()`.\n */\nconst mergeRuleRegistry = new WeakMap();\n/**\n * Retrieves the merge rule attached to a schema node, if any.\n */\nexport function getMergeRule(schema) {\n return mergeRuleRegistry.get(schema);\n}\n/**\n * Creates a schema decorator that registers a merge rule on the schema node.\n *\n * ```typescript\n * z.object({ ... }).apply(withMergeRule({ kind: 'replace' }))\n * ```\n *\n * @param rule - The merge rule to attach\n * @returns A function that decorates a schema with the rule\n */\nexport function withMergeRule(rule) {\n return (schema) => {\n mergeRuleRegistry.set(schema, rule);\n return schema;\n };\n}\n/**\n * Creates a schema decorator that registers a `by-key` merge rule on an array schema.\n *\n * Infers the element type from the array schema so `getKey` is strongly typed.\n *\n * ```typescript\n * z\n * .array(z.object({ ref: z.string(), value: z.number() }))\n * .apply(withByKeyMergeRule({ getKey: (item) => item.ref }))\n * ```\n *\n * @param options - Options with a typed `getKey` function\n * @returns A schema decorator that annotates the array node with a by-key merge rule\n */\nexport function withByKeyMergeRule(options) {\n return (schema) => {\n mergeRuleRegistry.set(schema, {\n kind: 'by-key',\n getKey: options.getKey,\n });\n return schema;\n };\n}\n//# sourceMappingURL=merge-rule-registry.js.map","import { z } from 'zod';\nimport { withDefault } from '#src/schema/creator/index.js';\nimport { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';\nimport { withByKeyMergeRule } from '#src/tools/merge-schema/merge-rule-registry.js';\nimport { authRoleEntityType } from '../auth/index.js';\nimport { modelAuthorizerRoleEntityType } from './authorizer/types.js';\nimport { modelEntityType, modelForeignRelationEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, } from './types.js';\nconst createRoleArray = definitionSchema((ctx) => ctx.withDefault(z.array(ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n})), []));\nexport const createModelGraphqlSchema = definitionSchemaWithSlots({\n modelSlot: modelEntityType,\n}, (ctx, { modelSlot }) => z.object({\n objectType: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n fields: z\n .array(z.object({\n ref: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }),\n globalRoles: createRoleArray(ctx),\n instanceRoles: ctx.withDefault(z.array(ctx.withRef({\n type: modelAuthorizerRoleEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n })), []),\n }))\n .apply(withByKeyMergeRule({ getKey: (item) => item.ref }))\n .apply(withDefault([])),\n localRelations: z\n .array(z.object({\n ref: ctx.withRef({\n type: modelLocalRelationEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }),\n globalRoles: createRoleArray(ctx),\n instanceRoles: ctx.withDefault(z.array(ctx.withRef({\n type: modelAuthorizerRoleEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n })), []),\n }))\n .apply(withByKeyMergeRule({ getKey: (item) => item.ref }))\n .apply(withDefault([])),\n foreignRelations: z\n .array(z.object({\n ref: ctx.withRef({\n type: modelForeignRelationEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }),\n globalRoles: createRoleArray(ctx),\n instanceRoles: ctx.withDefault(z.array(ctx.withRef({\n type: modelAuthorizerRoleEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n })), []),\n }))\n .apply(withByKeyMergeRule({ getKey: (item) => item.ref }))\n .apply(withDefault([])),\n }), {}),\n queries: ctx.withDefault(z.object({\n globalRoles: createRoleArray(ctx),\n instanceRoles: ctx.withDefault(z.array(ctx.withRef({\n type: modelAuthorizerRoleEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n })), []),\n get: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n }), {}),\n list: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n count: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n }), {}),\n }), {}),\n }), {}),\n mutations: ctx.withDefault(z.object({\n create: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n }), {}),\n update: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n }), {}),\n delete: ctx.withDefault(z.object({\n enabled: ctx.withDefault(z.boolean(), false),\n }), {}),\n }), {}),\n}));\n//# sourceMappingURL=graphql.js.map","import { z } from 'zod';\nexport const baseTransformerFields = {\n id: z.string(),\n type: z.string().min(1),\n};\nexport const baseTransformerSchema = z.looseObject(baseTransformerFields);\nexport function createModelTransformerType(payload) {\n return payload;\n}\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { createDefinitionEntityNameResolver } from '#src/references/index.js';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType, modelForeignRelationEntityType, modelScalarFieldEntityType, modelTransformerEntityType, } from '../types.js';\nimport { baseTransformerFields, createModelTransformerType } from './types.js';\nexport const createEmbeddedRelationTransformerSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx.refContext({ embeddedModelSlot: modelEntityType }, ({ embeddedModelSlot }) => ctx.withEnt(z.object({\n ...baseTransformerFields,\n foreignRelationRef: ctx.withRef({\n type: modelForeignRelationEntityType,\n onDelete: 'DELETE_PARENT',\n parentSlot: modelSlot,\n }),\n type: z.literal('embeddedRelation'),\n embeddedFieldNames: z.array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: embeddedModelSlot,\n })),\n embeddedTransformerNames: z\n .array(ctx.withRef({\n type: modelTransformerEntityType,\n onDelete: 'RESTRICT',\n parentSlot: embeddedModelSlot,\n }))\n .optional(),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: embeddedModelSlot,\n }),\n}), {\n type: modelTransformerEntityType,\n parentSlot: modelSlot,\n getNameResolver: (entity) => createDefinitionEntityNameResolver({\n idsToResolve: { foreignRelation: entity.foreignRelationRef },\n resolveName: (entityNames) => entityNames.foreignRelation,\n }),\n})));\nexport const BUILT_IN_TRANSFORMERS = [\n createModelTransformerType({\n name: 'embeddedRelation',\n createSchema: createEmbeddedRelationTransformerSchema,\n getName: (definitionContainer, definition) => definitionContainer.nameFromId(definition.foreignRelationRef),\n }),\n];\n//# sourceMappingURL=built-in-transformers.js.map","import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\nimport { BUILT_IN_TRANSFORMERS } from './built-in-transformers.js';\n/**\n * Spec for registering additional model transformer types\n */\nexport const modelTransformerSpec = createFieldMapSpec('core/model-transformer', (t) => ({\n transformers: t.namedArrayToMap(BUILT_IN_TRANSFORMERS),\n}));\n//# sourceMappingURL=model-transformer-spec.js.map","import z from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType } from '../types.js';\nimport { modelTransformerSpec } from './model-transformer-spec.js';\nexport const createTransformerSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, slots) => {\n const { transformers } = ctx.plugins.use(modelTransformerSpec);\n return z.discriminatedUnion('type', [...transformers.values()].map((transformer) => transformer.createSchema(ctx, slots)));\n});\n//# sourceMappingURL=transformers.js.map","import { z } from 'zod';\nimport { createDefinitionEntityNameResolver } from '#src/references/index.js';\nimport { withFix } from '#src/schema/creator/definition-fix-registry.js';\nimport { withIssueChecker } from '#src/schema/creator/definition-issue-registry.js';\nimport { withDefault } from '#src/schema/creator/index.js';\nimport { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';\nimport { authRoleEntityType } from '../auth/index.js';\nimport { featureEntityType } from '../features/index.js';\nimport { VALIDATORS } from '../utils/validation.js';\nimport { createModelAuthorizerSchema } from './authorizer/authorizer.js';\nimport { modelAuthorizerRoleEntityType } from './authorizer/types.js';\nimport { createModelGraphqlSchema } from './graphql.js';\nimport { createTransformerSchema } from './transformers/transformers.js';\nimport { modelEntityType, modelEnumEntityType, modelEnumValueEntityType, modelForeignRelationEntityType, modelIndexEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, modelTransformerEntityType, modelUniqueConstraintEntityType, } from './types.js';\nexport const createModelScalarFieldSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => {\n const commonFields = {\n id: z.string(),\n name: VALIDATORS.CAMEL_CASE_STRING,\n isOptional: z.boolean().default(false),\n };\n const defaultOptionsSchema = z\n .object({ default: z.string().optional() })\n .default({ default: '' });\n const union = z.discriminatedUnion('type', [\n z.object({\n ...commonFields,\n type: z.literal('string'),\n options: defaultOptionsSchema,\n }),\n z.object({\n ...commonFields,\n type: z.literal('uuid'),\n options: z\n .object({\n default: z.string().optional(),\n genUuid: z.boolean().optional(),\n })\n .default({ default: '' }),\n }),\n z.object({\n ...commonFields,\n type: z.literal('int'),\n options: z\n .object({\n default: z\n .string()\n .regex(/^-?\\d*$/, { error: 'Default value must be a number' })\n .optional(),\n })\n .default({ default: '' }),\n }),\n z.object({\n ...commonFields,\n type: z.literal('boolean'),\n options: z\n .object({ default: z.enum(['', 'true', 'false']).optional() })\n .default({}),\n }),\n z.object({\n ...commonFields,\n type: z.literal('dateTime'),\n options: z\n .object({\n defaultToNow: z.boolean().optional(),\n updatedAt: z.boolean().optional(),\n })\n .default({}),\n }),\n z.object({\n ...commonFields,\n type: z.literal('float'),\n options: defaultOptionsSchema,\n }),\n z.object({\n ...commonFields,\n type: z.literal('decimal'),\n options: z.object({ default: z.string().optional() }).default({}),\n }),\n z.object({\n ...commonFields,\n type: z.literal('json'),\n options: z.object({ default: z.string().optional() }).default({}),\n }),\n z.object({\n ...commonFields,\n type: z.literal('date'),\n options: z\n .object({\n default: z.string().optional(),\n defaultToNow: z.boolean().optional(),\n })\n .prefault({}),\n }),\n z.object({\n ...commonFields,\n type: z.literal('enum'),\n options: ctx.refContext({ enumSlot: modelEnumEntityType }, ({ enumSlot }) => z.object({\n enumRef: ctx.withRef({\n type: modelEnumEntityType,\n onDelete: 'RESTRICT',\n provides: enumSlot,\n }),\n defaultEnumValueRef: ctx\n .withRef({\n type: modelEnumValueEntityType,\n onDelete: 'RESTRICT',\n parentSlot: enumSlot,\n })\n .optional(),\n })),\n }),\n ]);\n return ctx.withEnt(union, {\n type: modelScalarFieldEntityType,\n parentSlot: modelSlot,\n });\n});\nexport const REFERENTIAL_ACTIONS = [\n 'Cascade',\n 'Restrict',\n 'NoAction',\n 'SetNull',\n 'SetDefault',\n];\nexport const createModelRelationFieldSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx.refContext({ foreignModelSlot: modelEntityType }, ({ foreignModelSlot }) => ctx.withEnt(ctx.withEnt(z.object({\n id: z.string(),\n foreignId: z\n .string()\n .default(() => modelForeignRelationEntityType.generateNewId()),\n name: VALIDATORS.CAMEL_CASE_STRING,\n references: z.array(z.object({\n localRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n foreignRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: foreignModelSlot,\n }),\n })),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: foreignModelSlot,\n }),\n foreignRelationName: VALIDATORS.CAMEL_CASE_STRING,\n onDelete: z.enum(REFERENTIAL_ACTIONS).default('Cascade'),\n onUpdate: z.enum(REFERENTIAL_ACTIONS).default('Restrict'),\n}), {\n type: modelLocalRelationEntityType,\n parentSlot: modelSlot,\n}), {\n type: modelForeignRelationEntityType,\n idPath: ['foreignId'],\n getNameResolver: (entity) => entity.foreignRelationName,\n parentSlot: foreignModelSlot,\n})));\nexport const createModelUniqueConstraintSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx.withEnt(z.object({\n id: z.string(),\n fields: z.array(z.object({\n fieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n })),\n}), {\n type: modelUniqueConstraintEntityType,\n parentSlot: modelSlot,\n getNameResolver(value) {\n return createDefinitionEntityNameResolver({\n idsToResolve: { fields: value.fields.map((f) => f.fieldRef) },\n resolveName: (entityNames) => entityNames.fields.join('_'),\n });\n },\n}));\nexport const createModelIndexSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx.withEnt(z.object({\n id: z.string(),\n fields: z.array(z.object({\n fieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n })),\n}), {\n type: modelIndexEntityType,\n parentSlot: modelSlot,\n getNameResolver(value) {\n return createDefinitionEntityNameResolver({\n idsToResolve: { fields: value.fields.map((f) => f.fieldRef) },\n resolveName: (entityNames) => entityNames.fields.join('_'),\n });\n },\n}));\n/**\n * Checks that enabled service methods have at least one field or transformer.\n */\nfunction checkServiceMethods(value) {\n const service = value;\n const issues = [];\n if (service.create.enabled &&\n !service.create.fields?.length &&\n !service.create.transformerNames?.length) {\n issues.push({\n message: 'Create method must have at least one field or transformer.',\n path: ['create'],\n severity: 'error',\n });\n }\n if (service.update.enabled &&\n !service.update.fields?.length &&\n !service.update.transformerNames?.length) {\n issues.push({\n message: 'Update method must have at least one field or transformer.',\n path: ['update'],\n severity: 'error',\n });\n }\n return issues;\n}\nexport const createModelServiceSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => z\n .object({\n create: z\n .object({\n enabled: z.boolean().default(false),\n fields: z\n .array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .optional(),\n transformerNames: z\n .array(ctx.withRef({\n type: modelTransformerEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .optional(),\n globalRoles: z\n .array(ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n }))\n .apply(withDefault([])),\n })\n .apply(withDefault({ enabled: false })),\n update: z\n .object({\n enabled: z.boolean().default(false),\n fields: z\n .array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .optional(),\n transformerNames: z\n .array(ctx.withRef({\n type: modelTransformerEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .optional(),\n globalRoles: z\n .array(ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n }))\n .apply(withDefault([])),\n instanceRoles: z\n .array(ctx.withRef({\n type: modelAuthorizerRoleEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .apply(withDefault([])),\n })\n .apply(withDefault({ enabled: false })),\n delete: z\n .object({\n enabled: z.boolean().default(false),\n globalRoles: z\n .array(ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n }))\n .apply(withDefault([])),\n instanceRoles: z\n .array(ctx.withRef({\n type: modelAuthorizerRoleEntityType,\n onDelete: 'DELETE',\n parentSlot: modelSlot,\n }))\n .apply(withDefault([])),\n })\n .apply(withDefault({ enabled: false })),\n transformers: z\n .array(createTransformerSchema(ctx, { modelSlot }))\n .default([]),\n})\n .apply(withFix((value) => {\n const fixed = { ...value };\n if (!fixed.create.enabled) {\n fixed.create = { enabled: false, globalRoles: [] };\n }\n if (!fixed.update.enabled) {\n fixed.update = {\n enabled: false,\n globalRoles: [],\n instanceRoles: [],\n };\n }\n if (!fixed.delete.enabled) {\n fixed.delete = {\n enabled: false,\n globalRoles: [],\n instanceRoles: [],\n };\n }\n // If nothing is enabled and there are no transformers, reset entirely\n if (!fixed.create.enabled &&\n !fixed.update.enabled &&\n !fixed.delete.enabled &&\n fixed.transformers.length === 0) {\n return {\n create: { enabled: false, globalRoles: [] },\n update: {\n enabled: false,\n globalRoles: [],\n instanceRoles: [],\n },\n delete: {\n enabled: false,\n globalRoles: [],\n instanceRoles: [],\n },\n transformers: [],\n };\n }\n return fixed;\n}))\n .apply(withIssueChecker(checkServiceMethods)));\n/**\n * Checks model-level constraints: must have fields and primary keys.\n */\nfunction checkModelConstraints(value) {\n const model = value;\n const issues = [];\n if (model.model.fields.length === 0) {\n issues.push({\n message: 'Model must have at least one field.',\n path: ['model', 'fields'],\n severity: 'error',\n });\n }\n if (model.model.primaryKeyFieldRefs.length === 0) {\n issues.push({\n message: 'Model must have at least one primary key field.',\n path: ['model', 'primaryKeyFieldRefs'],\n severity: 'error',\n });\n }\n return issues;\n}\nexport const createModelBaseSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, slots) => z\n .object({\n id: z.string(),\n name: VALIDATORS.PASCAL_CASE_STRING,\n featureRef: ctx.withRef({\n type: featureEntityType,\n onDelete: 'RESTRICT',\n }),\n model: z.object({\n fields: z.array(createModelScalarFieldSchema(ctx, slots)),\n relations: z\n .array(createModelRelationFieldSchema(ctx, slots))\n .apply(withDefault([])),\n primaryKeyFieldRefs: z\n .array(ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: slots.modelSlot,\n }))\n .min(1),\n uniqueConstraints: z\n .array(createModelUniqueConstraintSchema(ctx, slots))\n .apply(withDefault([])),\n indexes: z\n .array(createModelIndexSchema(ctx, slots))\n .apply(withDefault([])),\n }),\n service: createModelServiceSchema(ctx, slots).apply(withDefault({})),\n graphql: ctx.withDefault(createModelGraphqlSchema(ctx, slots), {}),\n authorizer: ctx.withDefault(createModelAuthorizerSchema(ctx, slots), {\n roles: [],\n }),\n})\n .apply(withFix((value) => {\n if (!value.service.create.enabled) {\n value.graphql.mutations.create = { enabled: false };\n }\n if (!value.service.update.enabled) {\n value.graphql.mutations.update = { enabled: false };\n }\n if (!value.service.delete.enabled) {\n value.graphql.mutations.delete = { enabled: false };\n }\n return value;\n}))\n .apply(withIssueChecker(checkModelConstraints)));\nexport const createModelSchema = definitionSchema((ctx) => ctx.refContext({ modelSlot: modelEntityType }, ({ modelSlot }) => ctx.withEnt(createModelBaseSchema(ctx, { modelSlot }), {\n type: modelEntityType,\n provides: modelSlot,\n})));\n//# sourceMappingURL=models.js.map","import { createEntityType } from '#src/references/index.js';\nimport { appEntityType } from '../../../types.js';\nexport const adminSectionEntityType = createEntityType('admin-section', {\n parentType: appEntityType,\n});\nexport const adminCrudSectionColumnEntityType = createEntityType('admin-crud-section-column', {\n parentType: adminSectionEntityType,\n});\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { featureEntityType } from '#src/schema/features/index.js';\nimport { adminSectionEntityType } from './types.js';\nexport const createBaseAdminSectionValidators = definitionSchema((ctx) => z.object({\n id: z.string().default(adminSectionEntityType.generateNewId()),\n name: z.string().min(1),\n featureRef: ctx.withRef({\n type: featureEntityType,\n onDelete: 'RESTRICT',\n }),\n icon: z.string().optional(),\n type: z.string().min(1),\n}));\n//# sourceMappingURL=base.js.map","import { z } from 'zod';\nimport { createEntityType } from '#src/references/types.js';\nimport { adminSectionEntityType } from '../types.js';\nexport const baseAdminCrudActionSchema = z.looseObject({\n id: z\n .string()\n .min(1)\n .default(() => adminCrudActionEntityType.generateNewId()),\n type: z.string().min(1),\n position: z.enum(['inline', 'dropdown']).default('dropdown'),\n});\nexport function createAdminCrudActionType(payload) {\n return payload;\n}\nexport const adminCrudActionEntityType = createEntityType('admin-crud-action', {\n parentType: adminSectionEntityType,\n});\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { baseAdminCrudActionSchema, createAdminCrudActionType, } from './types.js';\nexport const createAdminCrudEditActionSchema = definitionSchema(() => baseAdminCrudActionSchema.extend({\n type: z.literal('edit'),\n}));\nconst adminCrudEditActionType = createAdminCrudActionType({\n name: 'edit',\n createSchema: createAdminCrudEditActionSchema,\n});\nexport const createAdminCrudDeleteActionSchema = definitionSchema(() => baseAdminCrudActionSchema.extend({\n type: z.literal('delete'),\n}));\nconst adminCrudDeleteActionType = createAdminCrudActionType({\n name: 'delete',\n createSchema: createAdminCrudDeleteActionSchema,\n});\nexport const BUILT_IN_ADMIN_CRUD_ACTIONS = [\n adminCrudEditActionType,\n adminCrudDeleteActionType,\n];\n//# sourceMappingURL=built-in-actions.js.map","import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\nimport { BUILT_IN_ADMIN_CRUD_ACTIONS } from './built-in-actions.js';\n/**\n * Spec for registering additional admin CRUD table actions\n */\nexport const adminCrudActionSpec = createFieldMapSpec('core/admin-crud-action', (t) => ({\n actions: t.namedArrayToMap(BUILT_IN_ADMIN_CRUD_ACTIONS),\n}));\n//# sourceMappingURL=admin-action-spec.js.map","import z from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { adminCrudActionSpec } from './admin-action-spec.js';\nexport const createAdminCrudActionSchema = definitionSchema((ctx) => {\n const { actions } = ctx.plugins.use(adminCrudActionSpec);\n return z.discriminatedUnion('type', [...actions.values()].map((action) => action.createSchema(ctx)));\n});\n//# sourceMappingURL=admin-crud-action.js.map","import { z } from 'zod';\nimport { createEntityType } from '#src/references/types.js';\nimport { adminSectionEntityType } from '../types.js';\nexport const baseAdminCrudColumnSchema = z.looseObject({\n id: z\n .string()\n .min(1)\n .default(() => adminCrudColumnEntityType.generateNewId()),\n type: z.string().min(1),\n label: z.string().min(1),\n});\nexport function createAdminCrudColumnType(payload) {\n return payload;\n}\nexport const adminCrudColumnEntityType = createEntityType('admin-crud-column', {\n parentType: adminSectionEntityType,\n});\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, } from '#src/schema/models/index.js';\nimport { baseAdminCrudColumnSchema, createAdminCrudColumnType, } from './types.js';\n// Text Column\nexport const createAdminCrudTextColumnSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => baseAdminCrudColumnSchema.extend({\n type: z.literal('text'),\n modelFieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n}));\nconst adminCrudTextColumnType = createAdminCrudColumnType({\n name: 'text',\n createSchema: createAdminCrudTextColumnSchema,\n});\n// Foreign Column\nexport const createAdminCrudForeignColumnSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => baseAdminCrudColumnSchema.extend({\n type: z.literal('foreign'),\n localRelationRef: ctx.withRef({\n type: modelLocalRelationEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n labelExpression: z.string().min(1),\n valueExpression: z.string().min(1),\n}));\nconst adminCrudForeignColumnType = createAdminCrudColumnType({\n name: 'foreign',\n createSchema: createAdminCrudForeignColumnSchema,\n});\nexport const BUILT_IN_ADMIN_CRUD_COLUMNS = [\n adminCrudTextColumnType,\n adminCrudForeignColumnType,\n];\n//# sourceMappingURL=built-in-columns.js.map","import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\nimport { BUILT_IN_ADMIN_CRUD_COLUMNS } from './built-in-columns.js';\n/**\n * Spec for registering additional admin CRUD table columns\n */\nexport const adminCrudColumnSpec = createFieldMapSpec('core/admin-crud-column', (t) => ({\n columns: t.namedArrayToMap(BUILT_IN_ADMIN_CRUD_COLUMNS),\n}));\n//# sourceMappingURL=admin-column-spec.js.map","import z from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType } from '#src/schema/models/index.js';\nimport { adminCrudColumnSpec } from './admin-column-spec.js';\nexport const createAdminCrudColumnSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, slots) => {\n const { columns } = ctx.plugins.use(adminCrudColumnSpec);\n return z.discriminatedUnion('type', [...columns.values()].map((column) => column.createSchema(ctx, slots)));\n});\n//# sourceMappingURL=admin-crud-column.js.map","import { z } from 'zod';\nimport { createEntityType } from '#src/references/types.js';\nimport { adminSectionEntityType } from '../types.js';\nexport const baseAdminCrudInputSchema = z.looseObject({\n id: z\n .string()\n .min(1)\n .default(() => adminCrudInputEntityType.generateNewId()),\n type: z.string().min(1),\n label: z.string().min(1),\n});\nexport function createAdminCrudInputType(payload) {\n return payload;\n}\nexport const adminCrudEmbeddedFormEntityType = createEntityType('admin-crud-embedded-form', {\n parentType: adminSectionEntityType,\n});\nexport const adminCrudInputEntityType = createEntityType('admin-crud-input', {\n parentType: adminSectionEntityType,\n});\n//# sourceMappingURL=types.js.map","import { z } from 'zod';\nimport { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType, modelForeignRelationEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, } from '#src/schema/models/index.js';\nimport { adminSectionEntityType } from '../types.js';\nimport { adminCrudEmbeddedFormEntityType, baseAdminCrudInputSchema, createAdminCrudInputType, } from './types.js';\nexport const createAdminCrudTextInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('text'),\n label: z.string().min(1),\n modelFieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n validation: z.string().optional(),\n}));\nconst adminCrudTextInputType = createAdminCrudInputType({\n name: 'text',\n createSchema: createAdminCrudTextInputSchema,\n});\nexport const createAdminCrudForeignInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('foreign'),\n label: z.string().min(1),\n localRelationRef: ctx.withRef({\n type: modelLocalRelationEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n labelExpression: z.string().min(1),\n valueExpression: z.string().min(1),\n defaultLabel: z.string().optional(),\n nullLabel: z.string().optional(),\n}));\nconst adminCrudForeignInputType = createAdminCrudInputType({\n name: 'foreign',\n createSchema: createAdminCrudForeignInputSchema,\n});\nexport const createAdminCrudEnumInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('enum'),\n label: z.string().min(1),\n modelFieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n}));\nconst adminCrudEnumInputType = createAdminCrudInputType({\n name: 'enum',\n createSchema: createAdminCrudEnumInputSchema,\n});\nexport const createAdminCrudEmbeddedInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot, adminSectionSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('embedded'),\n label: z.string().min(1),\n modelRelationRef: ctx.withRef({\n type: modelForeignRelationEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n embeddedFormRef: ctx.withRef({\n type: adminCrudEmbeddedFormEntityType,\n parentSlot: adminSectionSlot,\n onDelete: 'RESTRICT',\n }),\n}));\nexport const adminCrudEmbeddedInputType = createAdminCrudInputType({\n name: 'embedded',\n createSchema: createAdminCrudEmbeddedInputSchema,\n});\nexport const createAdminCrudEmbeddedLocalInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot, adminSectionSlot }) => baseAdminCrudInputSchema.extend({\n type: z.literal('embeddedLocal'),\n label: z.string().min(1),\n localRelationRef: ctx.withRef({\n type: modelLocalRelationEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n embeddedFormRef: ctx.withRef({\n type: adminCrudEmbeddedFormEntityType,\n parentSlot: adminSectionSlot,\n onDelete: 'RESTRICT',\n }),\n}));\nexport const adminCrudEmbeddedLocalInputType = createAdminCrudInputType({\n name: 'embeddedLocal',\n createSchema: createAdminCrudEmbeddedLocalInputSchema,\n});\nexport const createAdminCrudPasswordInputSchema = definitionSchema(() => baseAdminCrudInputSchema.extend({\n type: z.literal('password'),\n label: z.string().min(1),\n}));\nconst adminCrudPasswordInputType = createAdminCrudInputType({\n name: 'password',\n createSchema: createAdminCrudPasswordInputSchema,\n});\nexport const BUILT_IN_ADMIN_CRUD_INPUTS = [\n adminCrudTextInputType,\n adminCrudForeignInputType,\n adminCrudEnumInputType,\n adminCrudEmbeddedInputType,\n adminCrudEmbeddedLocalInputType,\n adminCrudPasswordInputType,\n];\n//# sourceMappingURL=built-in-input.js.map","import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';\nimport { BUILT_IN_ADMIN_CRUD_INPUTS } from './built-in-input.js';\n/**\n * Spec for registering additional admin CRUD form inputs\n */\nexport const adminCrudInputSpec = createFieldMapSpec('core/admin-crud-input', (t) => ({\n inputs: t.namedArrayToMap(BUILT_IN_ADMIN_CRUD_INPUTS),\n}));\n//# sourceMappingURL=admin-input-spec.js.map","import z from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType } from '#src/schema/models/index.js';\nimport { adminSectionEntityType } from '../types.js';\nimport { adminCrudInputSpec } from './admin-input-spec.js';\nexport const createAdminCrudInputSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, slots) => {\n const { inputs } = ctx.plugins.use(adminCrudInputSpec);\n return z.discriminatedUnion('type', [...inputs.values()].map((input) => input.createSchema(ctx, slots)));\n});\n//# sourceMappingURL=admin-crud-input.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { modelEntityType, modelScalarFieldEntityType, } from '#src/schema/models/index.js';\nimport { createBaseAdminSectionValidators } from './base.js';\nimport { createAdminCrudActionSchema } from './crud-actions/admin-crud-action.js';\nimport { createAdminCrudColumnSchema } from './crud-columns/admin-crud-column.js';\nimport { createAdminCrudInputSchema } from './crud-form/admin-crud-input.js';\nimport { adminCrudEmbeddedFormEntityType } from './crud-form/types.js';\nimport { adminSectionEntityType } from './types.js';\n// Embedded Crud\nconst createAdminCrudEmbeddedObjectSchemaInternal = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot, adminSectionSlot }) => z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: modelSlot,\n }),\n includeIdField: z.boolean().optional(),\n type: z.literal('object'),\n form: z.object({\n fields: z.array(createAdminCrudInputSchema(ctx, { modelSlot, adminSectionSlot })),\n }),\n}));\nconst createAdminCrudEmbeddedListSchemaInternal = definitionSchemaWithSlots({ modelSlot: modelEntityType, adminSectionSlot: adminSectionEntityType }, (ctx, { modelSlot, adminSectionSlot }) => z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: modelSlot,\n }),\n includeIdField: z.boolean().optional(),\n type: z.literal('list'),\n table: z.object({\n columns: z.array(createAdminCrudColumnSchema(ctx, { modelSlot })),\n }),\n form: z.object({\n fields: z.array(createAdminCrudInputSchema(ctx, { modelSlot, adminSectionSlot })),\n }),\n}));\nexport const createAdminCrudEmbeddedFormSchema = definitionSchemaWithSlots({ adminSectionSlot: adminSectionEntityType }, (ctx, { adminSectionSlot }) => ctx.refContext({ modelSlot: modelEntityType }, ({ modelSlot }) => ctx.withEnt(z.discriminatedUnion('type', [\n createAdminCrudEmbeddedObjectSchemaInternal(ctx, {\n modelSlot,\n adminSectionSlot,\n }),\n createAdminCrudEmbeddedListSchemaInternal(ctx, {\n modelSlot,\n adminSectionSlot,\n }),\n]), {\n type: adminCrudEmbeddedFormEntityType,\n parentSlot: adminSectionSlot,\n})));\n// Admin Section\nexport const createAdminCrudSectionSchema = definitionSchemaWithSlots({ adminSectionSlot: adminSectionEntityType }, (ctx, { adminSectionSlot }) => ctx.refContext({ modelSlot: modelEntityType }, ({ modelSlot }) => createBaseAdminSectionValidators(ctx).and(z.object({\n type: z.literal('crud'),\n modelRef: ctx.withRef({\n type: modelEntityType,\n onDelete: 'RESTRICT',\n provides: modelSlot,\n }),\n /* The field that will be used to display the name of the entity in the form */\n nameFieldRef: ctx.withRef({\n type: modelScalarFieldEntityType,\n onDelete: 'RESTRICT',\n parentSlot: modelSlot,\n }),\n disableCreate: ctx.withDefault(z.boolean(), false),\n table: z.object({\n columns: z.array(createAdminCrudColumnSchema(ctx, { modelSlot })),\n actions: ctx.withDefault(z.array(createAdminCrudActionSchema(ctx)), [\n { type: 'edit', position: 'inline' },\n { type: 'delete', position: 'dropdown' },\n ]),\n }),\n form: z.object({\n fields: z.array(createAdminCrudInputSchema(ctx, {\n modelSlot,\n adminSectionSlot,\n })),\n }),\n embeddedForms: z\n .array(createAdminCrudEmbeddedFormSchema(ctx, { adminSectionSlot }))\n .optional(),\n}))));\n//# sourceMappingURL=crud.js.map","import { z } from 'zod';\nimport { appEntityType } from '#src/schema/apps/types.js';\nimport { authRoleEntityType } from '#src/schema/auth/index.js';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { createAdminCrudSectionSchema } from './sections/crud.js';\nimport { adminSectionEntityType } from './sections/types.js';\nexport const createWebAdminSectionSchema = definitionSchemaWithSlots({ appSlot: appEntityType }, (ctx, { appSlot }) => ctx.refContext({ adminSectionSlot: adminSectionEntityType }, ({ adminSectionSlot }) => ctx.withEnt(createAdminCrudSectionSchema(ctx, { adminSectionSlot }), {\n type: adminSectionEntityType,\n parentSlot: appSlot,\n provides: adminSectionSlot,\n})));\nexport const createAdminAppSchema = definitionSchemaWithSlots({ appSlot: appEntityType }, (ctx, { appSlot }) => ctx.withDefault(z.object({\n enabled: z.boolean(),\n pathPrefix: z.string().default('/admin'),\n allowedRoles: ctx.withDefault(z.array(ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n })), []),\n sections: ctx.withDefault(z.array(createWebAdminSectionSchema(ctx, { appSlot })), []),\n}), { enabled: false, pathPrefix: '/admin' }));\n//# sourceMappingURL=admin.js.map","import { z } from 'zod';\nimport { definitionSchemaWithSlots } from '#src/schema/creator/schema-creator.js';\nimport { baseAppValidators } from '../base.js';\nimport { appEntityType, createAppEntryType } from '../types.js';\nimport { createAdminAppSchema } from './admin/admin.js';\nexport const createWebAppSchema = definitionSchemaWithSlots({ appSlot: appEntityType }, (ctx, { appSlot }) => z.object({\n ...baseAppValidators,\n devPort: z.number().int().positive(),\n type: z.literal('web'),\n includeAuth: ctx.withDefault(z.boolean(), false),\n title: z.string().default(''),\n description: z.string().default(''),\n includeUploadComponents: ctx.withDefault(z.boolean(), false),\n enableSubscriptions: ctx.withDefault(z.boolean(), false),\n adminApp: createAdminAppSchema(ctx, { appSlot }),\n}));\nexport const webAppEntryType = createAppEntryType('web');\n//# sourceMappingURL=web-app.js.map","import { createEntityType } from '#src/references/types.js';\nexport const libraryEntityType = createEntityType('library');\n//# sourceMappingURL=types.js.map","import { CASE_VALIDATORS } from '@baseplate-dev/utils';\nimport { z } from 'zod';\nimport { libraryEntityType } from './types.js';\nexport const baseLibraryValidators = {\n id: z.string().default(libraryEntityType.generateNewId()),\n name: CASE_VALIDATORS.KEBAB_CASE,\n type: z.string(),\n};\nexport const baseLibrarySchema = z.object(baseLibraryValidators);\n//# sourceMappingURL=base.js.map","import { pickBy } from 'es-toolkit';\n/**\n * Strip object of any values that are empty arrays, empty objects, null, or undefined\n */\nexport function stripEmptyGeneratorChildren(children) {\n return pickBy(children, (value) => value !== undefined && !(Array.isArray(value) && value.length === 0));\n}\n/**\n * Strip object of any values that are undefined\n */\nexport function stripUndefinedValues(obj) {\n return pickBy(obj, (value) => value !== undefined);\n}\n/**\n * Returns undefined if the value is an empty object (as defined by all values are undefined)/array/null, otherwise return value.\n */\nexport function undefinedIfEmpty(value) {\n if (value === null)\n return undefined;\n if (Array.isArray(value) && value.length === 0) {\n return undefined;\n }\n if (typeof value === 'object' &&\n Object.keys(value).every((key) => value[key] === undefined)) {\n return undefined;\n }\n return value;\n}\n/**\n * Returns undefined if the value is falsy, otherwise return value.\n */\nexport function undefinedIfFalsy(value) {\n if (!value)\n return undefined;\n return value;\n}\n//# sourceMappingURL=strip.js.map","/**\n * Store for managing plugin spec instances with lazy initialization.\n *\n * Each spec is initialized once on first access, and both its init and use\n * interfaces are cached for subsequent access.\n */\nexport class PluginSpecStore {\n instances;\n useInstances = new Map();\n pluginKeys_;\n constructor(instances = new Map(), pluginKeys = []) {\n this.instances = instances;\n this.pluginKeys_ = pluginKeys;\n }\n /**\n * Gets the plugin keys that were loaded into this store.\n */\n getPluginKeys() {\n return this.pluginKeys_;\n }\n /**\n * Gets the use interface for a spec.\n *\n * Use this after initialization to access registered items.\n * The use interface provides read-only methods for consumption.\n *\n * @param spec - The plugin spec to get the use interface for\n * @returns The use interface for the spec\n */\n use(spec) {\n let specInstance = this.instances.get(spec.name);\n if (!specInstance) {\n specInstance = spec.initializer();\n this.instances.set(spec.name, specInstance);\n }\n let useInstance = this.useInstances.get(spec.name);\n if (!useInstance) {\n useInstance = specInstance.use();\n this.useInstances.set(spec.name, useInstance);\n }\n return useInstance;\n }\n}\n//# sourceMappingURL=store.js.map","import { assertNoDuplicates } from '@baseplate-dev/utils';\nimport { mapValues } from 'es-toolkit';\nimport { stripUndefinedValues } from '#src/utils/strip.js';\nimport { runInPluginContext } from '../context/plugin-context.js';\nimport { PluginSpecStore } from '../store/store.js';\n/**\n * Initialize ordered plugin modules.\n * Each module's initialize function is called within a plugin context.\n */\nexport function initializeOrderedModules(orderedModules) {\n const instances = new Map();\n function use(spec) {\n if (!instances.has(spec.name)) {\n const instance = spec.initializer();\n instances.set(spec.name, instance);\n }\n return instances.get(spec.name);\n }\n for (const { module, key: moduleKey, pluginKey } of orderedModules) {\n // Resolve dependencies by getting their setup interfaces\n const dependencies = module.dependencies\n ? stripUndefinedValues(mapValues(module.dependencies, (spec) => use(spec).init))\n : {};\n // Run initialize within plugin context for source tracking\n runInPluginContext({ moduleKey, pluginKey }, () => {\n module.initialize(dependencies, { moduleKey, pluginKey });\n });\n }\n return instances;\n}\n/**\n * Initialize the plugins based on their interdependencies.\n * Returns a store that can be used to access spec implementations.\n */\nexport function initializePlugins(pluginModules, pluginKeys = []) {\n assertNoDuplicates(pluginModules, 'plugin modules', (m) => m.key);\n const instances = initializeOrderedModules(pluginModules);\n return new PluginSpecStore(instances, pluginKeys);\n}\n//# sourceMappingURL=loader.js.map","/**\n * Creates a plugin module export.\n *\n * @example\n * ```typescript\n * export default createPluginModule({\n * name: 'node',\n * dependencies: {\n * config: pluginConfigSpec,\n * },\n * initialize: ({ config }, ctx) => {\n * config.registerSchemaCreator(ctx.pluginKey, createSchema);\n * },\n * });\n * ```\n */\nexport function createPluginModule(config) {\n return config;\n}\n//# sourceMappingURL=types.js.map","/**\n * Gets a plugin metadata object by its key.\n *\n * @param pluginStore The plugin store to use\n * @param key The key of the plugin to get\n * @returns The plugin metadata object or undefined if the plugin is not found\n */\nexport function getPluginMetadataByKey(pluginStore, key) {\n return pluginStore.availablePlugins.find((p) => p.metadata.key === key)\n ?.metadata;\n}\n/**\n * Gets a plugin metadata object by its key.\n *\n * @param pluginStore The plugin store to use\n * @param key The key of the plugin to get\n * @returns The plugin metadata object\n * @throws An error if the plugin is not found\n */\nexport function getPluginMetadataByKeyOrThrow(pluginStore, key) {\n const metadata = getPluginMetadataByKey(pluginStore, key);\n if (!metadata) {\n throw new Error(`Could not find plugin with key ${key}`);\n }\n return metadata;\n}\nexport function getManagedPluginsForPlugin(pluginStore, pluginKey) {\n const plugin = getPluginMetadataByKeyOrThrow(pluginStore, pluginKey);\n return pluginStore.availablePlugins\n .filter((p) => p.metadata.managedBy === plugin.fullyQualifiedName)\n .map((p) => p.metadata);\n}\n//# sourceMappingURL=utils.js.map","import { z } from 'zod';\n// matches semver\nconst versionSchema = z.string().regex(/^(\\d+\\.\\d+\\.\\d+)$/);\nexport const pluginSpecSupportSchema = z.object({\n spec: z.string().min(1),\n version: z.string().min(1),\n});\nexport const pluginSpecDependencySchema = z.object({\n spec: z.string(),\n version: z.string(),\n});\n/**\n * Schema for the plugin's metadata (plugin.json)\n */\nexport const pluginMetadataSchema = z.object({\n /**\n * The name of the plugin - must be lowercase and contain only letters, numbers, and hyphens\n */\n name: z\n .string()\n .min(1)\n .regex(/^[a-z0-9-]+$/),\n /**\n * A list of directories with entrypoints in them. Defaults to ['.']\n */\n moduleDirectories: z.array(z.string()).optional(),\n /**\n * The display name of the plugin\n */\n displayName: z.string().min(1),\n /**\n * The icon to display for the plugin as a pointer to the icon in the plugin's static folder\n */\n icon: z.string().optional(),\n /**\n * A description of the plugin\n */\n description: z.string(),\n /**\n * The fully qualified name of the plugin that manages this plugin,\n * e.g. \"@baseplate-dev/plugin-auth:better-auth\" would be managed by the \"@baseplate-dev/plugin-auth:auth\" plugin.\n *\n * Managed plugins do not appear in the plugin list but are managed by the base plugin. If the base\n * plugin is disabled, the managed plugins will also be disabled.\n */\n managedBy: z.string().optional(),\n /**\n * The version of the plugin using semver\n */\n version: versionSchema,\n /**\n * Configuration for the specs that the plugin exports/depends on\n */\n specs: z\n .object({\n /**\n * The specs that the plugin exports\n */\n exports: z.array(pluginSpecSupportSchema).optional(),\n /**\n * The specs that the plugin depends on\n */\n dependencies: z.array(pluginSpecDependencySchema).optional(),\n })\n .optional(),\n /**\n * Whether the plugin should be hidden in the project builder UI\n *\n * (It can be used once in the definition but cannot be added)\n */\n hidden: z.boolean().optional(),\n});\n//# sourceMappingURL=types.js.map","import { createEntityType } from '#src/references/types.js';\nexport const pluginEntityType = createEntityType('plugin');\n//# sourceMappingURL=entity-types.js.map","import { mapValuesOfMap } from '@baseplate-dev/utils';\nimport { createFieldMapSpec } from '../utils/create-field-map-spec.js';\nfunction sortAndValidateMigrations(migrations, pluginKey) {\n // make sure migrations are sorted by version and they are all unique\n const sortedMigrations = [...migrations].toSorted((a, b) => a.version - b.version);\n if (sortedMigrations.some((m) => m.version <= 0)) {\n throw new Error(`All migrations for plugin ${pluginKey} must have a positive version`);\n }\n for (let i = 0; i < sortedMigrations.length - 1; i++) {\n if (sortedMigrations[i].version === sortedMigrations[i + 1].version) {\n throw new Error(`All migrations for plugin ${pluginKey} must have a unique version`);\n }\n }\n return sortedMigrations;\n}\n/**\n * Spec for adding config for the plugin in the core plugin e.g.\n * {\n * \"plugins\": [{\n * \"id\": \"...\",\n * \"config\": {\n * ...PluginConfig schema\n * }\n * }]\n * }\n */\nexport const pluginConfigSpec = createFieldMapSpec('core/plugin-config', (t) => ({\n schemas: t.map(),\n migrations: t.map(),\n}), {\n use: (values) => {\n const validatedMigrations = mapValuesOfMap(values.migrations, (migrations, pluginKey) => sortAndValidateMigrations(migrations, pluginKey));\n return {\n getAllSchemaCreators: () => values.schemas,\n getSchemaCreator: (pluginKey) => values.schemas.get(pluginKey),\n getMigrations: (pluginKey) => validatedMigrations.get(pluginKey),\n getLastMigrationVersion: (pluginKey) => {\n const migrations = values.migrations.get(pluginKey);\n return migrations?.at(-1)?.version;\n },\n };\n },\n});\n//# sourceMappingURL=config-spec.js.map","import { enhanceErrorWithContext } from '@baseplate-dev/utils';\nimport { produce } from 'immer';\nimport { pluginEntityType } from '#src/schema/plugins/entity-types.js';\nimport { pluginConfigSpec } from '../spec/config-spec.js';\nexport function runPluginMigrations(projectDefinition, pluginSpecStore) {\n const pluginConfigService = pluginSpecStore.use(pluginConfigSpec);\n return produce(projectDefinition, (draft) => {\n for (const pluginDefinition of draft.plugins ?? []) {\n const pluginMigrations = pluginConfigService.getMigrations(pluginEntityType.keyFromId(pluginDefinition.id));\n const currentSchemaVersion = pluginDefinition.configSchemaVersion ?? -1;\n if (!pluginMigrations)\n continue;\n const lastPluginMigration = pluginMigrations.at(-1);\n if (!lastPluginMigration)\n continue;\n for (const migration of pluginMigrations) {\n if (migration.version > currentSchemaVersion) {\n try {\n const migrationResult = migration.migrate(pluginDefinition.config, draft);\n if (migrationResult.updatedConfig !== undefined) {\n pluginDefinition.config = migrationResult.updatedConfig;\n }\n if (migrationResult.updateProjectDefinition) {\n migrationResult.updateProjectDefinition(draft);\n }\n }\n catch (error) {\n throw enhanceErrorWithContext(error, `Error migrating plugin ${pluginDefinition.id} to version ${migration.version}`);\n }\n }\n }\n pluginDefinition.configSchemaVersion = lastPluginMigration.version;\n }\n });\n}\n//# sourceMappingURL=run-migrations.js.map","import { createFieldMapSpec } from '../utils/create-field-map-spec.js';\nexport const authModelsSpec = createFieldMapSpec('core/auth-models', (t) => ({\n getAuthModels: t.scalar(),\n}), {\n use: (values) => ({\n getAuthModels: (definition) => values.getAuthModels?.(definition),\n getAuthModelsOrThrow: (definition) => {\n const authModels = values.getAuthModels?.(definition);\n if (!authModels) {\n throw new Error('Auth models not found');\n }\n return authModels;\n },\n }),\n});\n//# sourceMappingURL=auth-models-spec.js.map","import { createFieldMapSpec } from '../utils/create-field-map-spec.js';\n/**\n * Spec for adding config component for plugin\n *\n * Keyed by plugin key, value is the config component.\n */\nexport const webConfigSpec = createFieldMapSpec('core/web-config', (t) => ({\n components: t.map(),\n}));\n//# sourceMappingURL=web-config-spec.js.map","import { z } from 'zod';\nimport { pluginConfigSpec } from '#src/plugins/index.js';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { pluginEntityType } from './entity-types.js';\nexport const basePluginDefinitionSchema = z.object({\n id: z.string(),\n packageName: z.string(),\n name: z.string(),\n version: z.string(),\n config: z.unknown(),\n configSchemaVersion: z.number().optional(),\n});\nexport const createPluginWithConfigSchema = definitionSchema((ctx) => {\n const pluginKeys = ctx.plugins.getPluginKeys();\n const schemaCreators = ctx.plugins\n .use(pluginConfigSpec)\n .getAllSchemaCreators();\n if (pluginKeys.length === 0) {\n // Create a fresh schema instance to avoid accumulating entity metadata\n // on the shared basePluginDefinitionSchema via the global ref registry.\n return ctx.withEnt(basePluginDefinitionSchema.refine(() => true), {\n type: pluginEntityType,\n });\n }\n const variants = pluginKeys.map((key) => {\n const configSchema = schemaCreators.get(key)?.(ctx) ?? z.unknown();\n return z.object({\n id: z.literal(pluginEntityType.idFromKey(key)),\n packageName: z.string(),\n name: z.string(),\n version: z.string(),\n config: configSchema,\n configSchemaVersion: z.number().optional(),\n });\n });\n return ctx.withEnt(z.discriminatedUnion('id', variants), {\n type: pluginEntityType,\n });\n});\nexport const createPluginsSchema = definitionSchema((ctx) => z.array(createPluginWithConfigSchema(ctx)));\n//# sourceMappingURL=definition.js.map","import z from 'zod';\nimport { createFieldMapSpec } from '#src/plugins/index.js';\nimport { definitionSchemaWithSlots, libraryEntityType, } from '#src/schema/index.js';\nimport { baseLibraryValidators } from '#src/schema/libraries/base.js';\nconst createNodeLibrarySchema = definitionSchemaWithSlots({ librarySlot: libraryEntityType }, () => z.object({\n ...baseLibraryValidators,\n type: z.literal('node-library'),\n}));\nexport const nodeLibraryDefinitionSchemaEntry = {\n name: 'node-library',\n definitionSchema: createNodeLibrarySchema,\n};\n/**\n * Creates a typed library web config\n */\nexport function createLibraryWebConfig(config) {\n return config;\n}\n/**\n * Package type spec for registering package schemas, compilers, and web configs.\n */\nexport const libraryTypeSpec = createFieldMapSpec('core/library-type', (t) => ({\n schemaCreators: t.namedArrayToMap([\n nodeLibraryDefinitionSchemaEntry,\n ]),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n compilerCreators: t.namedArrayToMap(),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n webConfigs: t.namedArrayToMap(),\n}));\n//# sourceMappingURL=library-type-spec.js.map","import z from 'zod';\nimport { libraryTypeSpec } from '#src/specs/packages/library-type-spec.js';\nimport { definitionSchema } from '../creator/schema-creator.js';\nimport { libraryEntityType } from './types.js';\nexport const createLibrarySchema = definitionSchema((ctx) => ctx.refContext({ librarySlot: libraryEntityType }, ({ librarySlot }) => {\n const packageTypes = ctx.plugins.use(libraryTypeSpec);\n const schemas = [...packageTypes.schemaCreators.values()].map((entry) => entry.definitionSchema(ctx, { librarySlot }));\n return ctx.withEnt(z.discriminatedUnion('type', schemas), {\n type: libraryEntityType,\n provides: librarySlot,\n });\n}));\n//# sourceMappingURL=library.js.map","import { CASE_VALIDATORS } from '@baseplate-dev/utils';\nimport { z } from 'zod';\n/**\n * General project settings schema\n *\n * Includes basic project configuration like name, package scope, and port offset.\n */\nexport const generalSettingsSchema = z.object({\n /**\n * The name of the project.\n *\n * Must be in kebab-case format (lowercase letters and dashes only).\n * Example: \"my-awesome-project\"\n */\n name: CASE_VALIDATORS.KEBAB_CASE,\n /**\n * The package scope of the project if any.\n *\n * Used for scoped npm packages, e.g. \"my-org\" results in \"@my-org/package-name\".\n * Must be in kebab-case format or empty string.\n * Example: \"my-org\" → \"@my-org/backend\", \"@my-org/web\"\n */\n packageScope: z\n .string()\n .regex(/^([a-z0-9-]+)?$/, {\n message: 'Must be kebab case (e.g. \"my-org\") or empty',\n })\n .default(''),\n /**\n * The port offset to base the app ports on for development.\n *\n * Must be a multiple of 1000 between 1000 and 60000.\n * Each app will use offset + specific port number (e.g. offset 8000 → DB at 8432, API at 8001).\n * This allows running multiple Baseplate projects without port conflicts.\n *\n * Example: 3000 → backend API at 3001, database at 3432, Redis at 3379\n */\n portOffset: z\n .number()\n .min(1000)\n .max(60_000)\n .int()\n .refine((portOffset) => portOffset % 1000 === 0, 'Port offset must be a multiple of 1000, e.g. 1000, 2000, 3000, etc.'),\n});\n//# sourceMappingURL=general.js.map","import { z } from 'zod';\n/**\n * Infrastructure settings schema\n *\n * Configures optional infrastructure services for the project.\n * These services are shared across all backend applications in the monorepo.\n *\n * Note: PostgreSQL is always enabled for backend apps and doesn't require configuration.\n * Port is calculated as portOffset + 432 (e.g., 3000 → 3432).\n * Password defaults to \"{projectName}-password\" and database defaults to project name.\n */\nexport const infrastructureSettingsSchema = z.object({\n /**\n * Redis configuration (optional)\n *\n * Redis can be used for caching, sessions, and queue management.\n * Port is calculated as portOffset + 379 (e.g., 3000 → 3379).\n * Password defaults to \"{projectName}-password\".\n */\n redis: z\n .object({\n /**\n * Whether to enable Redis service\n */\n enabled: z.boolean().default(false),\n })\n .optional(),\n});\n//# sourceMappingURL=infrastructure.js.map","import { CASE_VALIDATORS } from '@baseplate-dev/utils';\nimport { z } from 'zod';\n/**\n * Monorepo settings schema\n *\n * Configures the folder structure for monorepo apps and libraries.\n */\nexport const monorepoSettingsSchema = z.object({\n /**\n * The folder where apps are located in the monorepo.\n *\n * Must be in kebab-case format (lowercase letters and dashes only).\n * Apps will be placed in {appsFolder}/{app-name}, e.g. \"apps/backend\", \"apps/web\".\n *\n * @default \"apps\"\n * @example \"apps\" → apps/backend, apps/web\n * @example \"applications\" → applications/backend, applications/web\n */\n appsFolder: CASE_VALIDATORS.KEBAB_CASE.min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/, {\n message: 'Apps folder must contain only lowercase letters, numbers, and dashes (no slashes)',\n })\n .default('apps'),\n /**\n * The folder where libraries are located in the monorepo.\n *\n * Must be in kebab-case format (lowercase letters and dashes only).\n * Libraries will be placed in {librariesFolder}/{library-name}, e.g. \"libs/shared-utils\".\n *\n * @default \"libs\"\n * @example \"libs\" → libs/shared-utils, libs/common\n * @example \"packages\" → packages/shared-utils, packages/common\n */\n librariesFolder: CASE_VALIDATORS.KEBAB_CASE.min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/, {\n message: 'Libraries folder must contain only lowercase letters, numbers, and dashes (no slashes)',\n })\n .default('libs'),\n});\n//# sourceMappingURL=monorepo.js.map","import { z } from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\n/**\n * Template extractor configuration schema\n *\n * Controls how template extraction works when syncing projects.\n * Template extraction allows updating generator templates from working code.\n */\nexport const createTemplateExtractorSchema = definitionSchema(() => z.object({\n /**\n * Whether to write template extractor metadata when writing files to the project.\n *\n * When enabled, Baseplate will write `.templates-info.json` files that track\n * which generated files correspond to which templates. This metadata enables\n * the template extraction process to update the generator's templates from\n * your working code.\n *\n * Useful for: Generator development, template refinement, extracting patterns\n * Default: false\n */\n writeMetadata: z.boolean().default(false),\n /**\n * A list of file IDs to include in the template extractor metadata.\n *\n * Used for generators that have manually assigned file IDs, particularly\n * generators with multiple instances (e.g. one generator per model).\n *\n * Format: Newline-delimited list of patterns\n * Supports wildcards: Use * to match any number of characters\n *\n * Example:\n * ```\n * user-*\n * post-*\n * comment-service-*\n * ```\n *\n * Default: empty string (no file ID whitelist)\n */\n fileIdRegexWhitelist: z.string().default(''),\n}));\n//# sourceMappingURL=template-extractor.js.map","import { z } from 'zod';\nimport { PALETTE_SHADES } from '#src/constants/colors.js';\nimport { THEME_COLOR_KEYS } from '#src/constants/theme-colors.js';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\n/**\n * OKLCH color format validator\n *\n * OKLCH is a perceptually uniform color space that provides better color manipulation than RGB/HEX.\n * Format: oklch(l c h [/ a]) where:\n * - l (lightness): 0-1\n * - c (chroma): 0-1\n * - h (hue): 0-360\n * - a (alpha, optional): 0-100\n *\n * Example: \"oklch(0.5 0.2 180)\" or \"oklch(0.5 0.2 180 / 50)\"\n */\nexport const oklchColor = z\n .string()\n .regex(/^oklch\\(\\s*([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.]+))?\\s*\\)$/, {\n message: 'OKLCH color must be of the format \"oklch(l c h [/ a])\" where l and c are between 0 and 1 and h is between 0 and 360 and a is between 0 and 100',\n});\n/**\n * Theme color configuration\n *\n * Maps semantic color keys (e.g. \"background\", \"foreground\", \"primary\") to OKLCH color values.\n */\nexport const themeColorSchema = z.record(z.enum(THEME_COLOR_KEYS), oklchColor.optional());\n/**\n * Palette configuration schema\n *\n * Defines a color palette with a base color and generated shades.\n * Palettes can use predefined bases (zinc, slate, etc.) or a custom base color.\n */\nexport const paletteSchema = z\n .object({\n /**\n * Name of the palette base (e.g. \"zinc\", \"slate\") or \"custom\" for custom base color\n */\n paletteName: z.string().min(1),\n /**\n * Custom base color in OKLCH format.\n * Required when paletteName is \"custom\", ignored otherwise.\n */\n customBase: oklchColor.nullish(),\n /**\n * Generated color shades (50, 100, 200, ..., 950)\n * Automatically computed from the base color\n */\n shades: z.record(z.enum(PALETTE_SHADES), oklchColor),\n})\n .refine((data) => data.paletteName !== 'custom' || !!data.customBase, {\n message: 'A custom base color is required if using a custom base palette',\n path: ['customBase'],\n});\n/**\n * Palettes configuration schema\n *\n * Defines base (neutral colors) and primary (brand colors) palettes\n */\nexport const palettesSchema = z.object({\n /**\n * Base palette used for neutral colors (backgrounds, borders, text)\n */\n base: paletteSchema,\n /**\n * Primary palette used for brand colors (buttons, links, highlights)\n */\n primary: paletteSchema,\n});\n/**\n * Theme configuration schema\n *\n * Defines the complete theme including palettes and semantic color mappings for light and dark modes.\n */\nexport const createThemeSchema = definitionSchema(() => z.object({\n /**\n * Color palettes for base and primary colors\n */\n palettes: z.object({\n base: paletteSchema,\n primary: paletteSchema,\n }),\n /**\n * Semantic color mappings for light and dark modes\n */\n colors: z.object({\n /**\n * Light mode color mappings\n */\n light: themeColorSchema,\n /**\n * Dark mode color mappings\n */\n dark: themeColorSchema,\n }),\n}));\n//# sourceMappingURL=theme.js.map","import { z } from 'zod';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nimport { generalSettingsSchema } from './general.js';\nimport { infrastructureSettingsSchema } from './infrastructure.js';\nimport { monorepoSettingsSchema } from './monorepo.js';\nimport { createTemplateExtractorSchema } from './template-extractor.js';\nimport { createThemeSchema } from './theme.js';\n/**\n * Complete project settings schema\n *\n * Combines all settings categories:\n * - general: Project name, scope, and port configuration\n * - infrastructure: Infrastructure services (Postgres, Redis)\n * - monorepo: Monorepo folder configuration (optional)\n * - templateExtractor: Template extraction configuration (optional)\n * - theme: UI theme and color palette configuration (optional)\n */\nexport const createSettingsSchema = definitionSchema((ctx) => z.object({\n /**\n * General project settings (required)\n */\n general: generalSettingsSchema,\n /**\n * Infrastructure settings (optional)\n *\n * Configures infrastructure services like Postgres and Redis.\n * When omitted, uses default configuration (Postgres enabled, Redis disabled).\n */\n infrastructure: infrastructureSettingsSchema.optional(),\n /**\n * Monorepo configuration (optional)\n *\n * Configures the folder structure for monorepo packages.\n * When omitted, uses default folder structure (apps/*).\n */\n monorepo: monorepoSettingsSchema.optional(),\n /**\n * Template extractor configuration (optional)\n *\n * Controls how template extraction works when syncing projects.\n * Only needed when developing generators or extracting templates.\n */\n templateExtractor: createTemplateExtractorSchema(ctx).optional(),\n /**\n * Theme configuration (optional)\n *\n * Defines color palettes and semantic color mappings for the UI.\n * When omitted, uses default theme configuration.\n */\n theme: createThemeSchema(ctx).optional(),\n}));\n//# sourceMappingURL=settings.js.map","import { z } from 'zod';\nimport { createBackendAppSchema } from './apps/backend/index.js';\nimport { createWebAppSchema } from './apps/index.js';\nimport { appEntityType } from './apps/types.js';\nimport { checkUniqueField } from './creator/definition-issue-checkers.js';\nimport { withIssueChecker } from './creator/definition-issue-registry.js';\nimport { definitionSchema } from './creator/schema-creator.js';\nimport { createFeaturesSchema } from './features/index.js';\nimport { createLibrarySchema } from './libraries/library.js';\nimport { createEnumSchema } from './models/enums.js';\nimport { createModelSchema } from './models/index.js';\nimport { createPluginsSchema } from './plugins/index.js';\nimport { createSettingsSchema } from './settings/index.js';\nexport const createAppSchema = definitionSchema((ctx) => ctx.refContext({ appSlot: appEntityType }, ({ appSlot }) => ctx.withEnt(z.discriminatedUnion('type', [\n createBackendAppSchema(ctx, { appSlot }),\n createWebAppSchema(ctx, { appSlot }),\n]), {\n type: appEntityType,\n provides: appSlot,\n})));\nexport const createProjectDefinitionSchema = definitionSchema((ctx) => z.object({\n cliVersion: z.string().nullish(),\n apps: z\n .array(createAppSchema(ctx))\n .apply(withIssueChecker(checkUniqueField('name', { label: 'app name' })))\n .apply(withIssueChecker(checkUniqueField('devPort', { label: 'dev port' })))\n .default([]),\n libraries: z.array(createLibrarySchema(ctx)).default([]),\n features: createFeaturesSchema(ctx),\n models: z\n .array(createModelSchema(ctx))\n .apply(withIssueChecker(checkUniqueField('name', { label: 'model name' })))\n .default([]),\n enums: z\n .array(createEnumSchema(ctx))\n .apply(withIssueChecker(checkUniqueField('name', { label: 'enum name' })))\n .optional(),\n isInitialized: z.boolean().default(false),\n schemaVersion: z.number(),\n plugins: createPluginsSchema(ctx).optional(),\n settings: createSettingsSchema(ctx),\n}));\n//# sourceMappingURL=project-definition.js.map","function byId(projectDefinition, id) {\n return projectDefinition.enums?.find((e) => e.id === id);\n}\nfunction byIdOrThrow(projectDefinition, id) {\n const enumConfig = byId(projectDefinition, id);\n if (!enumConfig) {\n throw new Error(`Could not find enum with ID ${id}`);\n }\n return enumConfig;\n}\nexport const EnumUtils = {\n byId,\n byIdOrThrow,\n};\n//# sourceMappingURL=enum-utils.js.map","import { isEqual } from 'es-toolkit';\nimport { ModelUtils } from './model-utils.js';\nfunction isScalarUnique(model, fieldId) {\n const { primaryKeyFieldRefs } = model.model;\n const { uniqueConstraints } = model.model;\n return ((primaryKeyFieldRefs.length === 1 &&\n primaryKeyFieldRefs.includes(fieldId)) ||\n uniqueConstraints.some((c) => c.fields.length === 1 && c.fields[0].fieldRef === fieldId));\n}\nfunction areScalarsUnique(model, fieldIds) {\n const sortedFieldIds = [...fieldIds].toSorted();\n return ((isEqual([...model.model.primaryKeyFieldRefs].toSorted(), sortedFieldIds) ||\n model.model.uniqueConstraints?.some((c) => isEqual(c.fields.map((f) => f.fieldRef).toSorted(), sortedFieldIds))) ??\n false);\n}\nfunction getRelationLocalFields(model, relation) {\n return relation.references.map((r) => {\n const field = model.model.fields.find((f) => f.id === r.localRef);\n if (!field) {\n throw new Error(`Could not find field ${r.localRef} from relation ${relation.name} in model ${model.name}`);\n }\n return field;\n });\n}\nfunction relationByIdOrThrow(model, relationId) {\n const relation = model.model.relations.find((r) => r.id === relationId);\n if (!relation) {\n throw new Error(`Relation ${relationId} not found in model ${model.name}`);\n }\n return relation;\n}\nfunction isRelationOptional(model, relation) {\n const localFields = getRelationLocalFields(model, relation);\n return localFields.some((f) => f.isOptional);\n}\nfunction isRelationOneToOne(model, relation) {\n const localFields = getRelationLocalFields(model, relation);\n const localFieldIds = localFields.map((f) => f.id).toSorted();\n // check if the local fields are a primary key or unique constraint\n return areScalarsUnique(model, localFieldIds);\n}\nfunction getModelValidator(modelField) {\n switch (modelField.type) {\n case 'boolean': {\n return 'boolean()';\n }\n case 'date': {\n return 'string()';\n }\n case 'int': {\n return 'int()';\n }\n case 'float': {\n return 'number()';\n }\n case 'dateTime':\n case 'string':\n case 'decimal':\n case 'uuid': {\n return 'string()';\n }\n case 'json': {\n return 'unknown()';\n }\n default: {\n throw new Error(`Unsupported validator for ${modelField.type}`);\n }\n }\n}\nfunction getModelFieldValidation(projectDefinition, modelId, fieldId, preProcess) {\n const model = ModelUtils.byIdOrThrow(projectDefinition, modelId);\n const field = model.model.fields.find((f) => f.id === fieldId);\n if (!field) {\n throw new Error(`Field ${fieldId} not found in model ${model.name}`);\n }\n const nullishSuffix = field.isOptional ? '.nullish()' : '';\n const validator = `z.${getModelValidator(field)}${nullishSuffix}`;\n if (!preProcess) {\n return validator;\n }\n return validator;\n}\nexport const ModelFieldUtils = {\n isScalarUnique,\n areScalarsUnique,\n getRelationLocalFields,\n isRelationOptional,\n isRelationOneToOne,\n getModelFieldValidation,\n relationByIdOrThrow,\n};\n//# sourceMappingURL=model-field-utils.js.map","import { modelTransformerSpec } from '#src/schema/index.js';\nfunction getTransformerName(definitionContainer, transformer, pluginStore) {\n const { transformers } = pluginStore.use(modelTransformerSpec);\n const transformerType = transformers.get(transformer.type);\n if (!transformerType) {\n throw new Error(`Unable to find transformer with name ${transformer.type}`);\n }\n return transformerType.getName(definitionContainer, transformer);\n}\nexport const ModelTransformerUtils = { getTransformerName };\n//# sourceMappingURL=model-transformer-utils.js.map","function byId(projectDefinition, id) {\n const config = projectDefinition.libraries.find((lib) => lib.id === id);\n if (!config) {\n throw new Error(`Unable to find library with ID ${id}`);\n }\n return config;\n}\nfunction byUniqueTypeOrThrow(projectDefinition, type) {\n const config = projectDefinition.libraries.filter((lib) => lib.type === type);\n if (config.length === 0) {\n throw new Error(`Unable to find library with type ${type}`);\n }\n if (config.length > 1) {\n throw new Error(`Multiple libraries with type ${type} found and only one is expected (${config.map((lib) => lib.name).join(', ')})`);\n }\n return config[0];\n}\n/**\n * Given a library config, get the relative directory of the library\n *\n * @param libraryConfig The library config\n * @param monorepoSettings Optional monorepo settings to determine libraries folder location\n * @returns The directory of the library\n */\nfunction getLibraryDirectory(libraryConfig, monorepoSettings) {\n const librariesFolder = monorepoSettings?.librariesFolder ?? 'libs';\n return `${librariesFolder}/${libraryConfig.name}`;\n}\nexport const LibraryUtils = {\n byId,\n byUniqueTypeOrThrow,\n getLibraryDirectory,\n};\n//# sourceMappingURL=package-utils.js.map","import { z } from 'zod';\nimport { initializePlugins } from '#src/plugins/imports/loader.js';\nimport { parseSchemaWithTransformedReferences } from '#src/references/parse-schema-with-references.js';\nimport { createDefinitionSchemaParserContext, pluginEntityType, } from '#src/schema/index.js';\nimport { basePluginDefinitionSchema } from '#src/schema/plugins/definition.js';\nimport { createProjectDefinitionSchema } from '#src/schema/project-definition.js';\n/**\n * Creates a plugin implementation store from the project definition and plugin store,\n * initializing the set of plugins enabled in the project definition.\n *\n * @param pluginStore The plugin store to use\n * @param projectDefinition The project definition to use\n * @returns The plugin implementation store\n */\nexport function createPluginSpecStore(pluginStore, projectDefinition) {\n const { availablePlugins, coreModules } = pluginStore;\n const pluginData = z\n .object({\n plugins: z.array(basePluginDefinitionSchema).optional(),\n })\n .parse(projectDefinition);\n const { plugins = [] } = pluginData;\n // initialize plugins\n const modulesWithKey = plugins.flatMap((p) => {\n const plugin = availablePlugins.find(({ metadata }) => metadata.name === p.name && metadata.packageName === p.packageName);\n if (!plugin) {\n throw new Error(`Unable to find plugin ${p.packageName}/${p.name}!`);\n }\n return plugin.modules.map((m) => ({\n key: `${plugin.metadata.key}/${m.directory}/${m.module.name}`,\n pluginKey: plugin.metadata.key,\n module: m.module,\n }));\n });\n const pluginKeys = plugins.map((p) => pluginEntityType.keyFromId(p.id));\n return initializePlugins([...modulesWithKey, ...coreModules], pluginKeys);\n}\n/**\n * Creates a plugin implementation store with the given plugins added to the project definition.\n *\n * @param pluginStore The plugin store to use\n * @param plugins The plugins to add to the project definition\n * @param projectDefinition The project definition to use\n * @returns The plugin implementation store\n */\nexport function createPluginImplementationStoreWithNewPlugins(pluginStore, plugins, projectDefinition) {\n const newProjectDefinition = {\n ...projectDefinition,\n plugins: [\n ...(projectDefinition.plugins ?? []),\n ...plugins\n .filter((p) => !projectDefinition.plugins?.some((p2) => p2.id === pluginEntityType.idFromKey(p.key)))\n .map((p) => ({\n id: pluginEntityType.idFromKey(p.key),\n version: p.version,\n name: p.name,\n packageName: p.packageName,\n config: undefined,\n })),\n ],\n };\n return createPluginSpecStore(pluginStore, newProjectDefinition);\n}\n/**\n * Creates a project definition schema with the given context.\n *\n * @param projectDefinition The project definition to create a schema for\n * @param context The context to use\n * @return The project definition schema\n */\nexport function createProjectDefinitionSchemaWithContext(projectDefinition, context) {\n const { pluginStore } = context;\n const pluginSpecStore = createPluginSpecStore(pluginStore, projectDefinition);\n const definitionContext = createDefinitionSchemaParserContext({\n plugins: pluginSpecStore,\n });\n return createProjectDefinitionSchema(definitionContext);\n}\nexport function parseProjectDefinitionWithContext(projectDefinition, context) {\n const schema = createProjectDefinitionSchemaWithContext(projectDefinition, context);\n return schema.parse(projectDefinition);\n}\n/**\n * Parses a project definition and obtains entities/references from it.\n *\n * @param projectDefinition The project definition to parse\n * @param context The context to use\n * @returns The parsed project definition with entities/references\n */\nexport function parseProjectDefinitionWithReferences(projectDefinition, context) {\n const { pluginStore } = context;\n const pluginSpecStore = createPluginSpecStore(pluginStore, projectDefinition);\n const definitionContext = createDefinitionSchemaParserContext({\n plugins: pluginSpecStore,\n });\n const schema = createProjectDefinitionSchema(definitionContext);\n const definition = parseSchemaWithTransformedReferences(schema, projectDefinition);\n return { definition, pluginStore: pluginSpecStore };\n}\n//# sourceMappingURL=parser.js.map","import { createPluginImplementationStoreWithNewPlugins } from '#src/parser/parser.js';\nimport { getPluginMetadataByKeyOrThrow, pluginConfigSpec, } from '#src/plugins/index.js';\nimport { pluginEntityType } from '#src/schema/index.js';\nfunction byKey(projectDefinition, key) {\n const pluginEntityId = pluginEntityType.idFromKey(key);\n const plugin = projectDefinition.plugins?.find((m) => m.id === pluginEntityId);\n return plugin;\n}\nfunction byKeyOrThrow(projectDefinition, id) {\n const plugin = byKey(projectDefinition, id);\n if (!plugin) {\n throw new Error(`Could not find plugin with ID ${id}`);\n }\n return plugin;\n}\nfunction configByKey(projectDefinition, key) {\n const def = byKey(projectDefinition, key);\n return def?.config;\n}\nfunction configByKeyOrThrow(projectDefinition, key) {\n const def = byKeyOrThrow(projectDefinition, key);\n return def.config;\n}\nfunction setPluginConfig(projectDefinition, plugin, pluginConfig, definitionContainer) {\n const plugins = projectDefinition.plugins ?? [];\n const pluginEntityId = pluginEntityType.idFromKey(plugin.key);\n const isNewPlugin = !plugins.some((p) => p.id === pluginEntityId);\n if (isNewPlugin) {\n // When adding a new plugin, we need to create an implementation store\n // that includes this plugin so its migrations are properly registered\n const pluginSpecStore = createPluginImplementationStoreWithNewPlugins(definitionContainer.parserContext.pluginStore, [plugin], definitionContainer.definition);\n const pluginConfigService = pluginSpecStore.use(pluginConfigSpec);\n const lastMigrationVersion = pluginConfigService.getLastMigrationVersion(plugin.key);\n projectDefinition.plugins = [\n ...plugins,\n {\n id: pluginEntityId,\n name: plugin.name,\n version: plugin.version,\n packageName: plugin.packageName,\n config: pluginConfig,\n configSchemaVersion: lastMigrationVersion,\n },\n ];\n }\n else {\n // When updating an existing plugin, just update the config\n projectDefinition.plugins = plugins.map((p) => pluginEntityId === p.id ? { ...p, config: pluginConfig } : p);\n }\n}\n/**\n * Disables a plugin and all plugins that it manages recursively.\n *\n * @param projectDefinition The project definition to disable the plugin in\n * @param pluginKey The ID of the plugin to disable\n * @param context The schema parser context to use\n */\nfunction disablePlugin(projectDefinition, pluginKey, context) {\n // Get plugin metadata to be disabled\n const pluginMetadata = getPluginMetadataByKeyOrThrow(context.pluginStore, pluginKey);\n // Make sure we disable any plugins that are managed by this plugin\n const managedPlugins = projectDefinition.plugins?.filter((p) => {\n const managedPlugin = getPluginMetadataByKeyOrThrow(context.pluginStore, pluginEntityType.keyFromId(p.id));\n return managedPlugin.managedBy === pluginMetadata.fullyQualifiedName;\n });\n if (managedPlugins) {\n for (const p of managedPlugins)\n disablePlugin(projectDefinition, p.id, context);\n }\n projectDefinition.plugins = projectDefinition.plugins?.filter((p) => p.id !== pluginEntityType.idFromKey(pluginKey));\n}\nexport const PluginUtils = {\n byKey,\n byKeyOrThrow,\n configByKey,\n setPluginConfig,\n configByKeyOrThrow,\n disablePlugin,\n};\n//# sourceMappingURL=plugin-utils.js.map","import { getSchemaChildren } from './schema-structure.js';\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n/**\n * Walks a Zod schema structure (without data) invoking registered visitors\n * at every schema node.\n *\n * Unlike `walkDataWithSchema`, this operates on the schema alone.\n * Every structural descent produces a path element:\n * - Object keys → `object-key`\n * - Tuple indices → `tuple-index`\n * - Arrays of discriminated unions → `discriminated-union-array` (one per branch)\n * - Plain arrays → `array`\n * - Records → `record`\n * - Discriminated unions on objects are transparent (no path element)\n *\n * Uses a `Set<z.ZodType>` circular-reference guard with delete-on-backtrack\n * so the same schema can appear at different paths.\n */\nexport function walkSchemaStructure(schema, visitors) {\n walkNode(schema, [], visitors, new Set());\n}\n// ---------------------------------------------------------------------------\n// Internal walker\n// ---------------------------------------------------------------------------\nfunction walkNode(schema, path, visitors, visited) {\n // Circular reference guard\n if (visited.has(schema)) {\n return;\n }\n visited.add(schema);\n const ctx = { path };\n // Step 1: Call all visitors, collect any cleanup functions returned.\n const cleanups = [];\n for (const visitor of visitors) {\n const cleanup = visitor.visit(schema, ctx);\n if (cleanup)\n cleanups.push(cleanup);\n }\n // Step 2: Structural descent based on schema children (no data).\n const children = getSchemaChildren(schema, undefined, []);\n switch (children.kind) {\n case 'leaf':\n case 'leaf-union': {\n break;\n }\n case 'wrapper': {\n walkNode(children.innerSchema, path, visitors, visited);\n break;\n }\n case 'object': {\n for (const [key, fieldSchema] of children.entries) {\n walkNode(fieldSchema, [...path, { type: 'object-key', key }], visitors, visited);\n }\n break;\n }\n case 'array': {\n // Check if the element schema is a discriminated union.\n // If so, walk each branch with a discriminated-union-array path element.\n // Otherwise, walk the element schema with no path element (non-deterministic).\n const unwrappedElement = unwrapSchema(children.elementSchema);\n const elementChildren = getSchemaChildren(unwrappedElement, undefined, []);\n if (elementChildren.kind === 'discriminated-union') {\n walkDiscriminatedUnionArrayBranches(unwrappedElement, path, visitors, visited);\n }\n else {\n // Plain array — descend with an array path element\n walkNode(children.elementSchema, [...path, { type: 'array' }], visitors, visited);\n }\n break;\n }\n case 'discriminated-union': {\n // Transparent on objects — walk all branches with the same path.\n const unwrapped = unwrapSchema(schema);\n for (const option of unwrapped.options) {\n walkNode(option, path, visitors, visited);\n }\n break;\n }\n case 'tuple': {\n for (const [i, itemSchema] of children.items.entries()) {\n walkNode(itemSchema, [...path, { type: 'tuple-index', index: i }], visitors, visited);\n }\n if (children.rest) {\n // Rest elements don't have a fixed index; walk without path element\n walkNode(children.rest, path, visitors, visited);\n }\n break;\n }\n case 'record': {\n // Record — descend with a record path element\n walkNode(children.valueSchema, [...path, { type: 'record' }], visitors, visited);\n break;\n }\n case 'intersection': {\n walkNode(children.left, path, visitors, visited);\n walkNode(children.right, path, visitors, visited);\n break;\n }\n }\n // Step 3: Run cleanup functions in reverse order (innermost first).\n for (let i = cleanups.length - 1; i >= 0; i--) {\n cleanups[i]();\n }\n visited.delete(schema);\n}\n/**\n * Walks each branch of a discriminated union that is an array element,\n * pushing a `discriminated-union-array` path element for each branch.\n */\nfunction walkDiscriminatedUnionArrayBranches(unionSchema, path, visitors, visited) {\n const discriminatorKey = unionSchema._zod.def.discriminator;\n for (const option of unionSchema.options) {\n const literalValue = extractDiscriminatorValue(option, discriminatorKey);\n if (literalValue == null) {\n // Fallback: walk without path element\n walkNode(option, path, visitors, visited);\n continue;\n }\n walkNode(option, [\n ...path,\n {\n type: 'discriminated-union-array',\n discriminatorKey,\n value: literalValue,\n },\n ], visitors, visited);\n }\n}\n/**\n * Extracts the literal discriminator value from a union branch schema.\n */\nfunction extractDiscriminatorValue(branchSchema, discriminatorKey) {\n const branchChildren = getSchemaChildren(branchSchema, undefined, []);\n if (branchChildren.kind !== 'object') {\n return undefined;\n }\n const discEntry = branchChildren.entries.find(([key]) => key === discriminatorKey);\n if (!discEntry) {\n return undefined;\n }\n const discSchema = unwrapSchema(discEntry[1]);\n const discChildren = getSchemaChildren(discSchema, undefined, []);\n if (discChildren.kind !== 'leaf') {\n return undefined;\n }\n const { values } = discSchema._zod.def;\n return values[0];\n}\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n/**\n * Unwraps wrapper schemas (optional, nullable, default, etc.) to the underlying schema.\n */\nfunction unwrapSchema(schema) {\n const children = getSchemaChildren(schema, undefined, []);\n if (children.kind === 'wrapper') {\n return unwrapSchema(children.innerSchema);\n }\n return schema;\n}\n//# sourceMappingURL=walk-schema-structure.js.map","import { getSchemaChildren } from '#src/parser/schema-structure.js';\nimport { definitionRefRegistry } from '#src/references/definition-ref-registry.js';\n/**\n * Returns the first EntitySchemaMeta found on the given schema or any inner\n * schema reachable through wrappers (optional/nullable/default).\n */\nexport function getEntityMeta(schema) {\n const meta = definitionRefRegistry\n .getAll(schema)\n .find((m) => m.kind === 'entity');\n if (meta) {\n return meta;\n }\n const children = getSchemaChildren(schema, undefined, []);\n if (children.kind === 'wrapper') {\n return getEntityMeta(children.innerSchema);\n }\n return undefined;\n}\n/**\n * Resolves the name of an entity from its serialized (name-based) data using\n * the entity schema's name resolver.\n *\n * Since the data is already serialized, reference IDs are already names —\n * no cross-entity resolution or toposort is needed.\n */\nexport function getEntityName(entityMeta, item) {\n if (!entityMeta.getNameResolver) {\n return item.name;\n }\n const resolver = entityMeta.getNameResolver(item);\n if (typeof resolver === 'string') {\n return resolver;\n }\n // In serialized data, reference IDs are already names — pass them through\n const resolvedIds = Object.fromEntries(Object.entries(resolver.idsToResolve ?? {}).map(([key, idOrIds]) => [\n key,\n idOrIds,\n ]));\n return resolver.resolveName(resolvedIds);\n}\n//# sourceMappingURL=entity-utils.js.map","import { getSchemaChildren } from '#src/parser/schema-structure.js';\nimport { walkSchemaStructure } from '#src/parser/walk-schema-structure.js';\nimport { getEntityMeta } from '../merge-schema/entity-utils.js';\n/**\n * Collects entity metadata from a Zod schema by walking its structure.\n *\n * Walks the schema once, detecting entity arrays (via `definitionRefRegistry`\n * annotations) and building metadata for each entity type including its\n * relative path from the parent entity (or root) and parent entity type linkage.\n *\n * Parent relationships are determined by `entityType.parentType` on the\n * `DefinitionEntityType` instance — when a parent type is set, the walker\n * finds the matching ancestor entity in its stack and computes the relative\n * path from there.\n *\n * Call once per schema and reuse the result.\n */\nexport function collectEntityMetadata(schema) {\n const map = new Map();\n // Stack of entity types encountered during the walk, used to determine\n // parent-child relationships and compute relative paths.\n const entityStack = [];\n walkSchemaStructure(schema, [\n {\n visit(innerSchema, ctx) {\n const children = getSchemaChildren(innerSchema, undefined, []);\n if (children.kind !== 'array') {\n return undefined;\n }\n const entityMeta = getEntityMeta(children.elementSchema);\n if (!entityMeta) {\n return undefined;\n }\n const entityTypeName = entityMeta.type.name;\n const { parentType } = entityMeta.type;\n let parentEntityTypeName;\n let relativePath;\n if (parentType) {\n // Find the parent entity in the stack\n const parentEntry = entityStack.findLast((entry) => entry.entityTypeName === parentType.name);\n if (!parentEntry) {\n throw new Error(`Entity type \"${entityTypeName}\" declares parent type \"${parentType.name}\" ` +\n `but no such entity was found in the ancestor chain`);\n }\n parentEntityTypeName = parentType.name;\n // Strip the first element — it is always an array or\n // discriminated-union-array that describes how to enter the parent's\n // array, not how to navigate from the parent entity to this child.\n relativePath = ctx.path.slice(parentEntry.pathAtEntity.length + 1);\n }\n else {\n // Top-level entity: relative path is the full path\n relativePath = ctx.path;\n }\n map.set(entityTypeName, {\n name: entityTypeName,\n entityType: entityMeta.type,\n entityMeta,\n elementSchema: children.elementSchema,\n relativePath,\n parentEntityTypeName,\n });\n // Push onto entity stack. Child relative paths are computed by\n // slicing from this position — the walker adds discriminated-union-array\n // elements when descending into array branches.\n entityStack.push({\n entityTypeName,\n pathAtEntity: ctx.path,\n });\n return () => {\n entityStack.pop();\n };\n },\n },\n ]);\n return map;\n}\n//# sourceMappingURL=entity-type-map.js.map","import { stringifyPrettyStable } from '@baseplate-dev/utils';\nimport { produce } from 'immer';\nimport { createPluginSpecStore } from '#src/parser/parser.js';\nimport { deserializeSchemaWithTransformedReferences, fixRefDeletions, serializeSchema, serializeSchemaFromRefPayload, } from '#src/references/index.js';\nimport { createDefinitionSchemaParserContext, createProjectDefinitionSchema, } from '#src/schema/index.js';\nimport { collectEntityMetadata } from '#src/tools/entity-service/entity-type-map.js';\n/**\n * Container for a project definition that includes references and entities.\n *\n * This class provides utility methods for working with a project definition\n * such as the ability to fetch an entity by ID.\n */\nexport class ProjectDefinitionContainer {\n refPayload;\n definition;\n references;\n entities;\n parserContext;\n pluginStore;\n schema;\n _entityTypeMap;\n constructor(config, parserContext, pluginStore, schema) {\n this.refPayload = config;\n this.definition = config.data;\n this.references = config.references;\n this.entities = config.entities;\n this.parserContext = parserContext;\n this.pluginStore = pluginStore;\n this.schema = schema;\n }\n /**\n * Fetches a DefinitionEntity by its ID, returning undefined if not found.\n *\n * @param id The ID of the entity to fetch\n * @returns The DefinitionEntity, or undefined if not found\n */\n entityFromId(id) {\n if (!id)\n return undefined;\n return this.entities.find((e) => e.id === id);\n }\n nameFromId(id) {\n if (!id)\n return undefined;\n const name = this.entities.find((e) => e.id === id)?.name;\n if (!name) {\n throw new Error(`Could not find name for id ${id}`);\n }\n return name;\n }\n /**\n * Fetches the name of an entity by its ID, returning undefined if the ID is not found.\n *\n * @param id The ID of the entity to fetch\n * @returns The name of the entity, or undefined if the ID is not found\n */\n safeNameFromId(id) {\n if (!id)\n return undefined;\n const name = this.entities.find((e) => e.id === id)?.name;\n return name;\n }\n /**\n * Fix any reference deletions that would occur when applying the given setter.\n *\n * @param setter A function that modifies the project definition\n * @returns A result indicating whether the reference deletions were fixed\n */\n fixRefDeletions(setter) {\n const newDefinition = produce(setter)(this.definition);\n return fixRefDeletions(this.schema, newDefinition);\n }\n /**\n * Creates an EntityServiceContext for use with entity read/write operations.\n *\n * Builds the entity type map from the schema and serializes the definition\n * with references resolved to names.\n */\n getEntityTypeMap() {\n this._entityTypeMap ??= collectEntityMetadata(this.schema);\n return this._entityTypeMap;\n }\n toEntityServiceContext() {\n const entityTypeMap = this.getEntityTypeMap();\n const serializedDefinition = serializeSchemaFromRefPayload(this.refPayload);\n return {\n serializedDefinition,\n entityTypeMap,\n lookupEntity: (id) => this.entityFromId(id),\n };\n }\n /**\n * Serializes the project definition resolving references to their names for easier reading.\n *\n * @returns The serialized contents of the project definition\n */\n toSerializedContents() {\n const serializedContents = serializeSchema(this.schema, this.definition);\n return stringifyPrettyStable(serializedContents);\n }\n /**\n * Creates a new ProjectDefinitionContainer from a serialized configuration.\n *\n * @param config The serialized configuration\n * @param context The parser context to use\n * @returns A new ProjectDefinitionContainer\n */\n static fromSerializedConfig(config, context) {\n const plugins = createPluginSpecStore(context.pluginStore, config);\n const schema = createProjectDefinitionSchema(createDefinitionSchemaParserContext({ plugins }));\n return new ProjectDefinitionContainer(deserializeSchemaWithTransformedReferences(schema, config), context, plugins, schema);\n }\n}\n//# sourceMappingURL=project-definition-container.js.map","export const AVAILABLE_FLAGS = ['TEMPLATE_EXTRACTOR'];\n//# sourceMappingURL=flags.js.map","export function createSchemaMigration(migration) {\n return migration;\n}\n//# sourceMappingURL=types.js.map","import { omit } from 'es-toolkit';\nimport { modelUniqueConstraintEntityType } from '../schema/index.js';\nimport { createSchemaMigration } from './types.js';\nexport const migration005PrimaryUniqueRefs = createSchemaMigration({\n version: 5,\n name: 'primaryUniqueRefs',\n description: 'Store primary key in primaryKeyFieldRefs field and unique constraints in unique constraints field',\n migrate: (config) => ({\n ...config,\n models: config.models.map((model) => {\n const oldModel = model.model;\n const primaryKeyFieldRefs = oldModel.primaryKeys?.length\n ? oldModel.primaryKeys\n : oldModel.fields.filter((f) => f.isId).map((f) => f.name);\n return {\n ...model,\n model: {\n ...omit(oldModel, ['primaryKeys', 'uniqueConstraints']),\n primaryKeyFieldRefs,\n fields: oldModel.fields.map((f) => omit(f, ['isId', 'isUnique'])),\n uniqueConstraints: [\n ...(oldModel.uniqueConstraints?.map((c) => ({\n id: modelUniqueConstraintEntityType.generateNewId(),\n fields: c.fields.map((f) => ({\n fieldRef: f.name,\n })),\n })) ?? []),\n ...oldModel.fields\n .filter((f) => f.isUnique)\n .map((f) => ({\n id: modelUniqueConstraintEntityType.generateNewId(),\n fields: [{ fieldRef: f.name }],\n })),\n ],\n },\n };\n }),\n }),\n});\n//# sourceMappingURL=migration-005-primary-unique-refs.js.map","import { omit } from 'es-toolkit';\nimport { createSchemaMigration } from './types.js';\nexport const migration006IndividualServiceControllers = createSchemaMigration({\n version: 6,\n name: 'individualServiceControllers',\n description: 'Make service controller fields individually enabled',\n migrate: (config) => ({\n ...config,\n models: config.models.map((model) => {\n const { build, create, update, delete: deleteOp, ...rest } = model.service ?? {};\n if (!build) {\n return omit(model, ['service']);\n }\n const isCreateEnabled = create &&\n (!!create.fields?.length || !!create.transformerNames?.length);\n const isUpdateEnabled = update &&\n (!!update.fields?.length || !!update.transformerNames?.length);\n const isDeleteEnabled = !deleteOp?.disabled;\n return {\n ...model,\n service: {\n ...rest,\n create: isCreateEnabled ? { ...create, enabled: true } : undefined,\n update: isUpdateEnabled ? { ...update, enabled: true } : undefined,\n delete: isDeleteEnabled ? { enabled: true } : undefined,\n },\n };\n }),\n }),\n});\n//# sourceMappingURL=migration-006-individual-service-controllers.js.map","import { pickBy } from 'es-toolkit';\nexport function stripUndefinedChildren(obj) {\n return pickBy(obj, (value) => value !== undefined);\n}\nexport function undefinedIfEmptyObject(obj) {\n return Object.keys(obj).every((key) => obj[key] === undefined)\n ? undefined\n : obj;\n}\n//# sourceMappingURL=utils.js.map","import { createSchemaMigration } from './types.js';\nimport { stripUndefinedChildren, undefinedIfEmptyObject } from './utils.js';\nexport const migration007ModelGraphql = createSchemaMigration({\n version: 7,\n name: 'modelGraphql',\n description: 'Migrate model schema to GraphQL schema',\n migrate: (config) => ({\n ...config,\n models: config.models.map((model) => {\n const { schema, ...rest } = model;\n const { buildObjectType, exposedFields, exposedLocalRelations, exposedForeignRelations, buildQuery, buildMutations, authorize, } = schema ?? {};\n return stripUndefinedChildren({\n ...rest,\n graphql: undefinedIfEmptyObject(stripUndefinedChildren({\n objectType: buildObjectType\n ? {\n enabled: buildObjectType,\n fields: exposedFields ?? [],\n localRelations: exposedLocalRelations ?? [],\n foreignRelations: exposedForeignRelations ?? [],\n }\n : undefined,\n queries: buildQuery\n ? {\n get: {\n enabled: buildQuery,\n roles: authorize?.read ?? [],\n },\n list: {\n enabled: buildQuery,\n roles: authorize?.read ?? [],\n },\n }\n : undefined,\n mutations: buildMutations\n ? undefinedIfEmptyObject({\n create: !authorize || authorize.create.length > 0\n ? {\n enabled: true,\n roles: authorize?.create ?? [],\n }\n : undefined,\n update: !authorize || authorize.update.length > 0\n ? {\n enabled: true,\n roles: authorize?.update ?? [],\n }\n : undefined,\n delete: !authorize || authorize.delete.length > 0\n ? {\n enabled: true,\n roles: authorize?.delete ?? [],\n }\n : undefined,\n })\n : undefined,\n })),\n });\n }),\n }),\n});\n//# sourceMappingURL=migration-007-model-graphql.js.map","import { authRoleEntityType } from '#src/schema/index.js';\nimport { createSchemaMigration } from './types.js';\nconst AUTH_DEFAULT_ROLES = [\n {\n name: 'public',\n comment: 'All users (including unauthenticated and authenticated users)',\n builtIn: true,\n },\n {\n name: 'user',\n comment: 'All authenticated users',\n builtIn: true,\n },\n {\n name: 'system',\n comment: 'System processes without a user context, e.g. background jobs',\n builtIn: true,\n },\n];\nexport const migration008AnonymousPublicRole = createSchemaMigration({\n version: 8,\n name: 'anonymousPublicRole',\n description: 'Migrate anonymous to public role',\n migrate: (config) => ({\n ...config,\n auth: config.auth && {\n ...config.auth,\n roles: [\n ...AUTH_DEFAULT_ROLES.map((role) => {\n const existingRole = config.auth?.roles?.find((r) => r.name === role.name ||\n (r.name === 'anonymous' && role.name === 'public'));\n return {\n id: existingRole?.id ?? authRoleEntityType.generateNewId(),\n name: role.name,\n comment: role.comment,\n builtIn: true,\n };\n }),\n ...(config.auth.roles\n ?.filter((r) => !AUTH_DEFAULT_ROLES.some((role) => role.name === r.name) &&\n r.name !== 'anonymous')\n .map((r) => ({\n id: r.id,\n name: r.name,\n comment: r.comment,\n builtIn: false,\n })) ?? []),\n ],\n },\n }),\n});\n//# sourceMappingURL=migration-008-anonymous-public-role.js.map","import { cloneDeep } from 'es-toolkit';\n/**\n * Transform a value at a specific path in a JSON object.\n *\n * @param data - The JSON object to transform.\n * @param path - The path to the value to transform, using dot notation (* matches all elements in an array and ** matches all elements in an object).\n * @param transformFn - The transformation function to apply to the value.\n * @returns The transformed JSON object.\n */\nexport function transformJsonPath(data, path, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- make it easier to use any transform functions\ntransformFn) {\n // Split the path into parts\n const pathParts = path.split('.');\n // Recursive function to navigate and transform the JSON\n const navigateAndTransform = (current, parts) => {\n if (parts.length === 0) {\n // If at the end of the path, apply the transformation function\n return transformFn(cloneDeep(current));\n }\n const [currentPart, ...remainingParts] = parts;\n if (currentPart === '*') {\n // If the current path part is a wildcard\n if (!Array.isArray(current)) {\n throw new TypeError(`Expected an array at ${pathParts.join('.')}`);\n }\n // Apply transformation recursively for each item\n return current.map((item) => navigateAndTransform(item, remainingParts));\n }\n else {\n if (typeof current !== 'object') {\n throw new TypeError(`Expected an object at ${pathParts.join('.')}, got ${typeof current}`);\n }\n // Navigate deeper\n if (current === null) {\n return current;\n }\n if (currentPart === '**') {\n return Object.fromEntries(Object.entries(current).map(([key, value]) => [\n key,\n navigateAndTransform(value, remainingParts),\n ]));\n }\n if (!(currentPart in current)) {\n return current;\n }\n return {\n ...current,\n [currentPart]: navigateAndTransform(current[currentPart], remainingParts),\n };\n }\n };\n // Start the navigation and transformation process\n return navigateAndTransform(data, pathParts);\n}\nexport function renameObjectKeysTransform(renames) {\n return (data) => {\n if (data === null)\n return null;\n if (typeof data !== 'object') {\n throw new TypeError(`Expected an object, got ${typeof data}`);\n }\n return Object.fromEntries(Object.entries(data).map(([key, value]) => [renames[key] || key, value]));\n };\n}\n//# sourceMappingURL=transform-json-path.js.map","import { flow } from 'es-toolkit';\nimport { renameObjectKeysTransform, transformJsonPath, } from './transform-json-path.js';\nimport { createSchemaMigration } from './types.js';\nexport const migration009RenameRefs = createSchemaMigration({\n version: 9,\n name: 'renameRefs',\n description: 'Rename zRefs to be suffixed with \"Ref\"',\n migrate: (config) => {\n // const definition: ProjectDefinition = config;\n // const adminConfig: AdminAppConfig;\n // adminConfig.sections?.[0].form.fields[0];\n const transform = flow((c) => transformJsonPath(c, 'apps.*.sections.*', renameObjectKeysTransform({\n feature: 'featureRef',\n modelName: 'modelRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.form.fields.*', renameObjectKeysTransform({\n localRelationName: 'localRelationRef',\n modelField: 'modelFieldRef',\n localRelation: 'localRelationRef',\n modelRelation: 'modelRelationRef',\n embeddedFormName: 'embeddedFormRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.embeddedForms.*.form.fields.*', renameObjectKeysTransform({\n localRelationName: 'localRelationRef',\n localRelation: 'localRelationRef',\n modelField: 'modelFieldRef',\n modelRelation: 'modelRelationRef',\n embeddedFormName: 'embeddedFormRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.table.columns.*.display', renameObjectKeysTransform({\n modelField: 'modelFieldRef',\n localRelationName: 'localRelationRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.embeddedForms.*.table.columns.*.display', renameObjectKeysTransform({\n modelField: 'modelFieldRef',\n localRelationName: 'localRelationRef',\n })), (c) => transformJsonPath(c, 'apps.*.sections.*.embeddedForms.*', renameObjectKeysTransform({\n modelName: 'modelRef',\n })), (c) => transformJsonPath(c, 'auth', renameObjectKeysTransform({\n userModel: 'userModelRef',\n userRoleModel: 'userRoleModelRef',\n authFeaturePath: 'authFeatureRef',\n accountsFeaturePath: 'accountsFeatureRef',\n })), (c) => transformJsonPath(c, 'enums.*', renameObjectKeysTransform({\n feature: 'featureRef',\n })), (c) => transformJsonPath(c, 'models.*.model.fields.*.options', renameObjectKeysTransform({\n enumType: 'enumRef',\n defaultEnumValue: 'defaultEnumValueRef',\n })), (c) => transformJsonPath(c, 'models.*', renameObjectKeysTransform({\n feature: 'featureRef',\n })), (c) => transformJsonPath(c, 'models.*.model.relations.*.references.*', renameObjectKeysTransform({\n local: 'localRef',\n foreign: 'foreignRef',\n })), (c) => transformJsonPath(c, 'models.*.model.relations.*', renameObjectKeysTransform({\n modelName: 'modelRef',\n })), (c) => transformJsonPath(c, 'plugins.*.config.categories.*', renameObjectKeysTransform({\n usedByRelation: 'usedByRelationRef',\n defaultAdapter: 'defaultAdapterRef',\n })));\n return transform(config);\n },\n});\n//# sourceMappingURL=migration-009-rename-refs.js.map","const parseNumber = (color, len) => {\n\tif (typeof color !== 'number') return;\n\n\t// hex3: #c93 -> #cc9933\n\tif (len === 3) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: (((color >> 8) & 0xf) | ((color >> 4) & 0xf0)) / 255,\n\t\t\tg: (((color >> 4) & 0xf) | (color & 0xf0)) / 255,\n\t\t\tb: ((color & 0xf) | ((color << 4) & 0xf0)) / 255\n\t\t};\n\t}\n\n\t// hex4: #c931 -> #cc993311\n\tif (len === 4) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: (((color >> 12) & 0xf) | ((color >> 8) & 0xf0)) / 255,\n\t\t\tg: (((color >> 8) & 0xf) | ((color >> 4) & 0xf0)) / 255,\n\t\t\tb: (((color >> 4) & 0xf) | (color & 0xf0)) / 255,\n\t\t\talpha: ((color & 0xf) | ((color << 4) & 0xf0)) / 255\n\t\t};\n\t}\n\n\t// hex6: #f0f1f2\n\tif (len === 6) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: ((color >> 16) & 0xff) / 255,\n\t\t\tg: ((color >> 8) & 0xff) / 255,\n\t\t\tb: (color & 0xff) / 255\n\t\t};\n\t}\n\n\t// hex8: #f0f1f2ff\n\tif (len === 8) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: ((color >> 24) & 0xff) / 255,\n\t\t\tg: ((color >> 16) & 0xff) / 255,\n\t\t\tb: ((color >> 8) & 0xff) / 255,\n\t\t\talpha: (color & 0xff) / 255\n\t\t};\n\t}\n};\n\nexport default parseNumber;\n","const named = {\n\taliceblue: 0xf0f8ff,\n\tantiquewhite: 0xfaebd7,\n\taqua: 0x00ffff,\n\taquamarine: 0x7fffd4,\n\tazure: 0xf0ffff,\n\tbeige: 0xf5f5dc,\n\tbisque: 0xffe4c4,\n\tblack: 0x000000,\n\tblanchedalmond: 0xffebcd,\n\tblue: 0x0000ff,\n\tblueviolet: 0x8a2be2,\n\tbrown: 0xa52a2a,\n\tburlywood: 0xdeb887,\n\tcadetblue: 0x5f9ea0,\n\tchartreuse: 0x7fff00,\n\tchocolate: 0xd2691e,\n\tcoral: 0xff7f50,\n\tcornflowerblue: 0x6495ed,\n\tcornsilk: 0xfff8dc,\n\tcrimson: 0xdc143c,\n\tcyan: 0x00ffff,\n\tdarkblue: 0x00008b,\n\tdarkcyan: 0x008b8b,\n\tdarkgoldenrod: 0xb8860b,\n\tdarkgray: 0xa9a9a9,\n\tdarkgreen: 0x006400,\n\tdarkgrey: 0xa9a9a9,\n\tdarkkhaki: 0xbdb76b,\n\tdarkmagenta: 0x8b008b,\n\tdarkolivegreen: 0x556b2f,\n\tdarkorange: 0xff8c00,\n\tdarkorchid: 0x9932cc,\n\tdarkred: 0x8b0000,\n\tdarksalmon: 0xe9967a,\n\tdarkseagreen: 0x8fbc8f,\n\tdarkslateblue: 0x483d8b,\n\tdarkslategray: 0x2f4f4f,\n\tdarkslategrey: 0x2f4f4f,\n\tdarkturquoise: 0x00ced1,\n\tdarkviolet: 0x9400d3,\n\tdeeppink: 0xff1493,\n\tdeepskyblue: 0x00bfff,\n\tdimgray: 0x696969,\n\tdimgrey: 0x696969,\n\tdodgerblue: 0x1e90ff,\n\tfirebrick: 0xb22222,\n\tfloralwhite: 0xfffaf0,\n\tforestgreen: 0x228b22,\n\tfuchsia: 0xff00ff,\n\tgainsboro: 0xdcdcdc,\n\tghostwhite: 0xf8f8ff,\n\tgold: 0xffd700,\n\tgoldenrod: 0xdaa520,\n\tgray: 0x808080,\n\tgreen: 0x008000,\n\tgreenyellow: 0xadff2f,\n\tgrey: 0x808080,\n\thoneydew: 0xf0fff0,\n\thotpink: 0xff69b4,\n\tindianred: 0xcd5c5c,\n\tindigo: 0x4b0082,\n\tivory: 0xfffff0,\n\tkhaki: 0xf0e68c,\n\tlavender: 0xe6e6fa,\n\tlavenderblush: 0xfff0f5,\n\tlawngreen: 0x7cfc00,\n\tlemonchiffon: 0xfffacd,\n\tlightblue: 0xadd8e6,\n\tlightcoral: 0xf08080,\n\tlightcyan: 0xe0ffff,\n\tlightgoldenrodyellow: 0xfafad2,\n\tlightgray: 0xd3d3d3,\n\tlightgreen: 0x90ee90,\n\tlightgrey: 0xd3d3d3,\n\tlightpink: 0xffb6c1,\n\tlightsalmon: 0xffa07a,\n\tlightseagreen: 0x20b2aa,\n\tlightskyblue: 0x87cefa,\n\tlightslategray: 0x778899,\n\tlightslategrey: 0x778899,\n\tlightsteelblue: 0xb0c4de,\n\tlightyellow: 0xffffe0,\n\tlime: 0x00ff00,\n\tlimegreen: 0x32cd32,\n\tlinen: 0xfaf0e6,\n\tmagenta: 0xff00ff,\n\tmaroon: 0x800000,\n\tmediumaquamarine: 0x66cdaa,\n\tmediumblue: 0x0000cd,\n\tmediumorchid: 0xba55d3,\n\tmediumpurple: 0x9370db,\n\tmediumseagreen: 0x3cb371,\n\tmediumslateblue: 0x7b68ee,\n\tmediumspringgreen: 0x00fa9a,\n\tmediumturquoise: 0x48d1cc,\n\tmediumvioletred: 0xc71585,\n\tmidnightblue: 0x191970,\n\tmintcream: 0xf5fffa,\n\tmistyrose: 0xffe4e1,\n\tmoccasin: 0xffe4b5,\n\tnavajowhite: 0xffdead,\n\tnavy: 0x000080,\n\toldlace: 0xfdf5e6,\n\tolive: 0x808000,\n\tolivedrab: 0x6b8e23,\n\torange: 0xffa500,\n\torangered: 0xff4500,\n\torchid: 0xda70d6,\n\tpalegoldenrod: 0xeee8aa,\n\tpalegreen: 0x98fb98,\n\tpaleturquoise: 0xafeeee,\n\tpalevioletred: 0xdb7093,\n\tpapayawhip: 0xffefd5,\n\tpeachpuff: 0xffdab9,\n\tperu: 0xcd853f,\n\tpink: 0xffc0cb,\n\tplum: 0xdda0dd,\n\tpowderblue: 0xb0e0e6,\n\tpurple: 0x800080,\n\n\t// Added in CSS Colors Level 4:\n\t// https://drafts.csswg.org/css-color/#changes-from-3\n\trebeccapurple: 0x663399,\n\n\tred: 0xff0000,\n\trosybrown: 0xbc8f8f,\n\troyalblue: 0x4169e1,\n\tsaddlebrown: 0x8b4513,\n\tsalmon: 0xfa8072,\n\tsandybrown: 0xf4a460,\n\tseagreen: 0x2e8b57,\n\tseashell: 0xfff5ee,\n\tsienna: 0xa0522d,\n\tsilver: 0xc0c0c0,\n\tskyblue: 0x87ceeb,\n\tslateblue: 0x6a5acd,\n\tslategray: 0x708090,\n\tslategrey: 0x708090,\n\tsnow: 0xfffafa,\n\tspringgreen: 0x00ff7f,\n\tsteelblue: 0x4682b4,\n\ttan: 0xd2b48c,\n\tteal: 0x008080,\n\tthistle: 0xd8bfd8,\n\ttomato: 0xff6347,\n\tturquoise: 0x40e0d0,\n\tviolet: 0xee82ee,\n\twheat: 0xf5deb3,\n\twhite: 0xffffff,\n\twhitesmoke: 0xf5f5f5,\n\tyellow: 0xffff00,\n\tyellowgreen: 0x9acd32\n};\n\nexport default named;\n","import parseNumber from './parseNumber.js';\nimport named from '../colors/named.js';\n\n// Also supports the `transparent` color as defined in:\n// https://drafts.csswg.org/css-color/#transparent-black\nconst parseNamed = color => {\n\treturn parseNumber(named[color.toLowerCase()], 6);\n};\n\nexport default parseNamed;\n","import parseNumber from './parseNumber.js';\n\nconst hex = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;\n\nconst parseHex = color => {\n\tlet match;\n\t// eslint-disable-next-line no-cond-assign\n\treturn (match = color.match(hex))\n\t\t? parseNumber(parseInt(match[1], 16), match[1].length)\n\t\t: undefined;\n};\n\nexport default parseHex;\n","/*\n\tBasic building blocks for color regexes\n\t---------------------------------------\n\n\tThese regexes are expressed as strings\n\tto be interpolated in the color regexes.\n */\n\n// <number>\nexport const num = '([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)';\n\n// <number> or 'none'\nexport const num_none = `(?:${num}|none)`;\n\n// <percentage>\nexport const per = `${num}%`;\n\n// <percent> or 'none'\nexport const per_none = `(?:${num}%|none)`;\n\n// <number-percentage> (<alpha-value>)\nexport const num_per = `(?:${num}%|${num})`;\n\n// <number-percentage> (<alpha-value>) or 'none'\nexport const num_per_none = `(?:${num}%|${num}|none)`;\n\n// <hue>\nexport const hue = `(?:${num}(deg|grad|rad|turn)|${num})`;\n\n// <hue> or 'none'\nexport const hue_none = `(?:${num}(deg|grad|rad|turn)|${num}|none)`;\n\nexport const c = `\\\\s*,\\\\s*`; // comma\nexport const so = '\\\\s*'; // space, optional\nexport const s = `\\\\s+`; // space\n\nexport const rx_num_per_none = new RegExp('^' + num_per_none + '$');\n","import { num, per, num_per, c } from '../util/regex.js';\n\n/*\n\trgb() regular expressions for legacy format\n\tReference: https://drafts.csswg.org/css-color/#rgb-functions\n */\nconst rgb_num_old = new RegExp(\n\t`^rgba?\\\\(\\\\s*${num}${c}${num}${c}${num}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst rgb_per_old = new RegExp(\n\t`^rgba?\\\\(\\\\s*${per}${c}${per}${c}${per}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst parseRgbLegacy = color => {\n\tlet res = { mode: 'rgb' };\n\tlet match;\n\tif ((match = color.match(rgb_num_old))) {\n\t\tif (match[1] !== undefined) {\n\t\t\tres.r = match[1] / 255;\n\t\t}\n\t\tif (match[2] !== undefined) {\n\t\t\tres.g = match[2] / 255;\n\t\t}\n\t\tif (match[3] !== undefined) {\n\t\t\tres.b = match[3] / 255;\n\t\t}\n\t} else if ((match = color.match(rgb_per_old))) {\n\t\tif (match[1] !== undefined) {\n\t\t\tres.r = match[1] / 100;\n\t\t}\n\t\tif (match[2] !== undefined) {\n\t\t\tres.g = match[2] / 100;\n\t\t}\n\t\tif (match[3] !== undefined) {\n\t\t\tres.b = match[3] / 100;\n\t\t}\n\t} else {\n\t\treturn undefined;\n\t}\n\n\tif (match[4] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, match[4] / 100));\n\t} else if (match[5] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, +match[5]));\n\t}\n\n\treturn res;\n};\n\nexport default parseRgbLegacy;\n","import parse from './parse.js';\n\nconst prepare = (color, mode) =>\n\tcolor === undefined\n\t\t? undefined\n\t\t: typeof color !== 'object'\n\t\t? parse(color)\n\t\t: color.mode !== undefined\n\t\t? color\n\t\t: mode\n\t\t? { ...color, mode }\n\t\t: undefined;\n\nexport default prepare;\n","import { converters } from './modes.js';\nimport prepare from './_prepare.js';\n\nconst converter =\n\t(target_mode = 'rgb') =>\n\tcolor =>\n\t\t(color = prepare(color, target_mode)) !== undefined\n\t\t\t? // if the color's mode corresponds to our target mode\n\t\t\t color.mode === target_mode\n\t\t\t\t? // then just return the color\n\t\t\t\t color\n\t\t\t\t: // otherwise check to see if we have a dedicated\n\t\t\t\t// converter for the target mode\n\t\t\t\tconverters[color.mode][target_mode]\n\t\t\t\t? // and return its result...\n\t\t\t\t converters[color.mode][target_mode](color)\n\t\t\t\t: // ...otherwise pass through RGB as an intermediary step.\n\t\t\t\t// if the target mode is RGB...\n\t\t\t\ttarget_mode === 'rgb'\n\t\t\t\t? // just return the RGB\n\t\t\t\t converters[color.mode].rgb(color)\n\t\t\t\t: // otherwise convert color.mode -> RGB -> target_mode\n\t\t\t\t converters.rgb[target_mode](converters[color.mode].rgb(color))\n\t\t\t: undefined;\n\nexport default converter;\n","import converter from './converter.js';\n\nconst converters = {};\nconst modes = {};\n\nconst parsers = [];\nconst colorProfiles = {};\n\nconst identity = v => v;\n\nconst useMode = definition => {\n\tconverters[definition.mode] = {\n\t\t...converters[definition.mode],\n\t\t...definition.toMode\n\t};\n\n\tObject.keys(definition.fromMode || {}).forEach(k => {\n\t\tif (!converters[k]) {\n\t\t\tconverters[k] = {};\n\t\t}\n\t\tconverters[k][definition.mode] = definition.fromMode[k];\n\t});\n\n\t// Color space channel ranges\n\tif (!definition.ranges) {\n\t\tdefinition.ranges = {};\n\t}\n\n\tif (!definition.difference) {\n\t\tdefinition.difference = {};\n\t}\n\n\tdefinition.channels.forEach(channel => {\n\t\t// undefined channel ranges default to the [0, 1] interval\n\t\tif (definition.ranges[channel] === undefined) {\n\t\t\tdefinition.ranges[channel] = [0, 1];\n\t\t}\n\n\t\tif (!definition.interpolate[channel]) {\n\t\t\tthrow new Error(`Missing interpolator for: ${channel}`);\n\t\t}\n\n\t\tif (typeof definition.interpolate[channel] === 'function') {\n\t\t\tdefinition.interpolate[channel] = {\n\t\t\t\tuse: definition.interpolate[channel]\n\t\t\t};\n\t\t}\n\n\t\tif (!definition.interpolate[channel].fixup) {\n\t\t\tdefinition.interpolate[channel].fixup = identity;\n\t\t}\n\t});\n\n\tmodes[definition.mode] = definition;\n\t(definition.parse || []).forEach(parser => {\n\t\tuseParser(parser, definition.mode);\n\t});\n\n\treturn converter(definition.mode);\n};\n\nconst getMode = mode => modes[mode];\n\nconst useParser = (parser, mode) => {\n\tif (typeof parser === 'string') {\n\t\tif (!mode) {\n\t\t\tthrow new Error(`'mode' required when 'parser' is a string`);\n\t\t}\n\t\tcolorProfiles[parser] = mode;\n\t} else if (typeof parser === 'function') {\n\t\tif (parsers.indexOf(parser) < 0) {\n\t\t\tparsers.push(parser);\n\t\t}\n\t}\n};\n\nconst removeParser = parser => {\n\tif (typeof parser === 'string') {\n\t\tdelete colorProfiles[parser];\n\t} else if (typeof parser === 'function') {\n\t\tconst idx = parsers.indexOf(parser);\n\t\tif (idx > 0) {\n\t\t\tparsers.splice(idx, 1);\n\t\t}\n\t}\n};\n\nexport {\n\tuseMode,\n\tgetMode,\n\tuseParser,\n\tremoveParser,\n\tconverters,\n\tparsers,\n\tcolorProfiles\n};\n","import { parsers, colorProfiles, getMode } from './modes.js';\n\n/* eslint-disable-next-line no-control-regex */\nconst IdentStartCodePoint = /[^\\x00-\\x7F]|[a-zA-Z_]/;\n\n/* eslint-disable-next-line no-control-regex */\nconst IdentCodePoint = /[^\\x00-\\x7F]|[-\\w]/;\n\nexport const Tok = {\n\tFunction: 'function',\n\tIdent: 'ident',\n\tNumber: 'number',\n\tPercentage: 'percentage',\n\tParenClose: ')',\n\tNone: 'none',\n\tHue: 'hue',\n\tAlpha: 'alpha'\n};\n\nlet _i = 0;\n\n/*\n\t4.3.10. Check if three code points would start a number\n\thttps://drafts.csswg.org/css-syntax/#starts-with-a-number\n */\nfunction is_num(chars) {\n\tlet ch = chars[_i];\n\tlet ch1 = chars[_i + 1];\n\tif (ch === '-' || ch === '+') {\n\t\treturn /\\d/.test(ch1) || (ch1 === '.' && /\\d/.test(chars[_i + 2]));\n\t}\n\tif (ch === '.') {\n\t\treturn /\\d/.test(ch1);\n\t}\n\treturn /\\d/.test(ch);\n}\n\n/*\n\tCheck if the stream starts with an identifier.\n */\n\nfunction is_ident(chars) {\n\tif (_i >= chars.length) {\n\t\treturn false;\n\t}\n\tlet ch = chars[_i];\n\tif (IdentStartCodePoint.test(ch)) {\n\t\treturn true;\n\t}\n\tif (ch === '-') {\n\t\tif (chars.length - _i < 2) {\n\t\t\treturn false;\n\t\t}\n\t\tlet ch1 = chars[_i + 1];\n\t\tif (ch1 === '-' || IdentStartCodePoint.test(ch1)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\treturn false;\n}\n\n/*\n\t4.3.3. Consume a numeric token\n\thttps://drafts.csswg.org/css-syntax/#consume-numeric-token\n */\n\nconst huenits = {\n\tdeg: 1,\n\trad: 180 / Math.PI,\n\tgrad: 9 / 10,\n\tturn: 360\n};\n\nfunction num(chars) {\n\tlet value = '';\n\tif (chars[_i] === '-' || chars[_i] === '+') {\n\t\tvalue += chars[_i++];\n\t}\n\tvalue += digits(chars);\n\tif (chars[_i] === '.' && /\\d/.test(chars[_i + 1])) {\n\t\tvalue += chars[_i++] + digits(chars);\n\t}\n\tif (chars[_i] === 'e' || chars[_i] === 'E') {\n\t\tif (\n\t\t\t(chars[_i + 1] === '-' || chars[_i + 1] === '+') &&\n\t\t\t/\\d/.test(chars[_i + 2])\n\t\t) {\n\t\t\tvalue += chars[_i++] + chars[_i++] + digits(chars);\n\t\t} else if (/\\d/.test(chars[_i + 1])) {\n\t\t\tvalue += chars[_i++] + digits(chars);\n\t\t}\n\t}\n\tif (is_ident(chars)) {\n\t\tlet id = ident(chars);\n\t\tif (id === 'deg' || id === 'rad' || id === 'turn' || id === 'grad') {\n\t\t\treturn { type: Tok.Hue, value: value * huenits[id] };\n\t\t}\n\t\treturn undefined;\n\t}\n\tif (chars[_i] === '%') {\n\t\t_i++;\n\t\treturn { type: Tok.Percentage, value: +value };\n\t}\n\treturn { type: Tok.Number, value: +value };\n}\n\n/*\n\tConsume digits.\n */\nfunction digits(chars) {\n\tlet v = '';\n\twhile (/\\d/.test(chars[_i])) {\n\t\tv += chars[_i++];\n\t}\n\treturn v;\n}\n\n/*\n\tConsume an identifier.\n */\nfunction ident(chars) {\n\tlet v = '';\n\twhile (_i < chars.length && IdentCodePoint.test(chars[_i])) {\n\t\tv += chars[_i++];\n\t}\n\treturn v;\n}\n\n/*\n\tConsume an ident-like token.\n */\nfunction identlike(chars) {\n\tlet v = ident(chars);\n\tif (chars[_i] === '(') {\n\t\t_i++;\n\t\treturn { type: Tok.Function, value: v };\n\t}\n\tif (v === 'none') {\n\t\treturn { type: Tok.None, value: undefined };\n\t}\n\treturn { type: Tok.Ident, value: v };\n}\n\nexport function tokenize(str = '') {\n\tlet chars = str.trim();\n\tlet tokens = [];\n\tlet ch;\n\n\t/* reset counter */\n\t_i = 0;\n\n\twhile (_i < chars.length) {\n\t\tch = chars[_i++];\n\n\t\t/*\n\t\t\tConsume whitespace without emitting it\n\t\t */\n\t\tif (ch === '\\n' || ch === '\\t' || ch === ' ') {\n\t\t\twhile (\n\t\t\t\t_i < chars.length &&\n\t\t\t\t(chars[_i] === '\\n' || chars[_i] === '\\t' || chars[_i] === ' ')\n\t\t\t) {\n\t\t\t\t_i++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ch === ',') {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === ')') {\n\t\t\ttokens.push({ type: Tok.ParenClose });\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ch === '+') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '-') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (is_ident(chars)) {\n\t\t\t\ttokens.push({ type: Tok.Ident, value: ident(chars) });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '.') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '/') {\n\t\t\twhile (\n\t\t\t\t_i < chars.length &&\n\t\t\t\t(chars[_i] === '\\n' || chars[_i] === '\\t' || chars[_i] === ' ')\n\t\t\t) {\n\t\t\t\t_i++;\n\t\t\t}\n\t\t\tlet alpha;\n\t\t\tif (is_num(chars)) {\n\t\t\t\talpha = num(chars);\n\t\t\t\tif (alpha.type !== Tok.Hue) {\n\t\t\t\t\ttokens.push({ type: Tok.Alpha, value: alpha });\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (is_ident(chars)) {\n\t\t\t\tif (ident(chars) === 'none') {\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\ttype: Tok.Alpha,\n\t\t\t\t\t\tvalue: { type: Tok.None, value: undefined }\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (/\\d/.test(ch)) {\n\t\t\t_i--;\n\t\t\ttokens.push(num(chars));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (IdentStartCodePoint.test(ch)) {\n\t\t\t_i--;\n\t\t\ttokens.push(identlike(chars));\n\t\t\tcontinue;\n\t\t}\n\n\t\t/*\n\t\t\tTreat everything not already handled as an error.\n\t\t */\n\t\treturn undefined;\n\t}\n\n\treturn tokens;\n}\n\nexport function parseColorSyntax(tokens) {\n\ttokens._i = 0;\n\tlet token = tokens[tokens._i++];\n\tif (!token || token.type !== Tok.Function || token.value !== 'color') {\n\t\treturn undefined;\n\t}\n\ttoken = tokens[tokens._i++];\n\tif (token.type !== Tok.Ident) {\n\t\treturn undefined;\n\t}\n\tconst mode = colorProfiles[token.value];\n\tif (!mode) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode };\n\tconst coords = consumeCoords(tokens, false);\n\tif (!coords) {\n\t\treturn undefined;\n\t}\n\tconst channels = getMode(mode).channels;\n\tfor (let ii = 0, c, ch; ii < channels.length; ii++) {\n\t\tc = coords[ii];\n\t\tch = channels[ii];\n\t\tif (c.type !== Tok.None) {\n\t\t\tres[ch] = c.type === Tok.Number ? c.value : c.value / 100;\n\t\t\tif (ch === 'alpha') {\n\t\t\t\tres[ch] = Math.max(0, Math.min(1, res[ch]));\n\t\t\t}\n\t\t}\n\t}\n\treturn res;\n}\n\nfunction consumeCoords(tokens, includeHue) {\n\tconst coords = [];\n\tlet token;\n\twhile (tokens._i < tokens.length) {\n\t\ttoken = tokens[tokens._i++];\n\t\tif (\n\t\t\ttoken.type === Tok.None ||\n\t\t\ttoken.type === Tok.Number ||\n\t\t\ttoken.type === Tok.Alpha ||\n\t\t\ttoken.type === Tok.Percentage ||\n\t\t\t(includeHue && token.type === Tok.Hue)\n\t\t) {\n\t\t\tcoords.push(token);\n\t\t\tcontinue;\n\t\t}\n\t\tif (token.type === Tok.ParenClose) {\n\t\t\tif (tokens._i < tokens.length) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tif (coords.length < 3 || coords.length > 4) {\n\t\treturn undefined;\n\t}\n\n\tif (coords.length === 4) {\n\t\tif (coords[3].type !== Tok.Alpha) {\n\t\t\treturn undefined;\n\t\t}\n\t\tcoords[3] = coords[3].value;\n\t}\n\tif (coords.length === 3) {\n\t\tcoords.push({ type: Tok.None, value: undefined });\n\t}\n\n\treturn coords.every(c => c.type !== Tok.Alpha) ? coords : undefined;\n}\n\nexport function parseModernSyntax(tokens, includeHue) {\n\ttokens._i = 0;\n\tlet token = tokens[tokens._i++];\n\tif (!token || token.type !== Tok.Function) {\n\t\treturn undefined;\n\t}\n\tlet coords = consumeCoords(tokens, includeHue);\n\tif (!coords) {\n\t\treturn undefined;\n\t}\n\tcoords.unshift(token.value);\n\treturn coords;\n}\n\nconst parse = color => {\n\tif (typeof color !== 'string') {\n\t\treturn undefined;\n\t}\n\tconst tokens = tokenize(color);\n\tconst parsed = tokens ? parseModernSyntax(tokens, true) : undefined;\n\tlet result = undefined;\n\tlet i = 0;\n\tlet len = parsers.length;\n\twhile (i < len) {\n\t\tif ((result = parsers[i++](color, parsed)) !== undefined) {\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn tokens ? parseColorSyntax(tokens) : undefined;\n};\n\nexport default parse;\n","import { Tok } from '../parse.js';\n\nfunction parseRgb(color, parsed) {\n\tif (!parsed || (parsed[0] !== 'rgb' && parsed[0] !== 'rgba')) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'rgb' };\n\tconst [, r, g, b, alpha] = parsed;\n\tif (r.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (r.type !== Tok.None) {\n\t\tres.r = r.type === Tok.Number ? r.value / 255 : r.value / 100;\n\t}\n\tif (g.type !== Tok.None) {\n\t\tres.g = g.type === Tok.Number ? g.value / 255 : g.value / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value / 255 : b.value / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseRgb;\n","const parseTransparent = c =>\n\tc === 'transparent'\n\t\t? { mode: 'rgb', r: 0, g: 0, b: 0, alpha: 0 }\n\t\t: undefined;\n\nexport default parseTransparent;\n","const lerp = (a, b, t) => a + t * (b - a);\nconst unlerp = (a, b, v) => (v - a) / (b - a);\n\nconst blerp = (a00, a01, a10, a11, tx, ty) => {\n\treturn lerp(lerp(a00, a01, tx), lerp(a10, a11, tx), ty);\n};\n\nconst trilerp = (\n\ta000,\n\ta010,\n\ta100,\n\ta110,\n\ta001,\n\ta011,\n\ta101,\n\ta111,\n\ttx,\n\tty,\n\ttz\n) => {\n\treturn lerp(\n\t\tblerp(a000, a010, a100, a110, tx, ty),\n\t\tblerp(a001, a011, a101, a111, tx, ty),\n\t\ttz\n\t);\n};\n\nexport { lerp, blerp, trilerp, unlerp };\n","const get_classes = arr => {\n\tlet classes = [];\n\tfor (let i = 0; i < arr.length - 1; i++) {\n\t\tlet a = arr[i];\n\t\tlet b = arr[i + 1];\n\t\tif (a === undefined && b === undefined) {\n\t\t\tclasses.push(undefined);\n\t\t} else if (a !== undefined && b !== undefined) {\n\t\t\tclasses.push([a, b]);\n\t\t} else {\n\t\t\tclasses.push(a !== undefined ? [a, a] : [b, b]);\n\t\t}\n\t}\n\treturn classes;\n};\n\nconst interpolatorPiecewise = interpolator => arr => {\n\tlet classes = get_classes(arr);\n\treturn t => {\n\t\tlet cls = t * classes.length;\n\t\tlet idx = t >= 1 ? classes.length - 1 : Math.max(Math.floor(cls), 0);\n\t\tlet pair = classes[idx];\n\t\treturn pair === undefined\n\t\t\t? undefined\n\t\t\t: interpolator(pair[0], pair[1], cls - idx);\n\t};\n};\n\nexport { interpolatorPiecewise };\n","import { lerp } from './lerp.js';\nimport { interpolatorPiecewise } from './piecewise.js';\n\nexport const interpolatorLinear = interpolatorPiecewise(lerp);\n","const fixupAlpha = arr => {\n\tlet some_defined = false;\n\tlet res = arr.map(v => {\n\t\tif (v !== undefined) {\n\t\t\tsome_defined = true;\n\t\t\treturn v;\n\t\t}\n\t\treturn 1;\n\t});\n\treturn some_defined ? res : arr;\n};\n\nexport { fixupAlpha };\n","import parseNamed from './parseNamed.js';\nimport parseHex from './parseHex.js';\nimport parseRgbLegacy from './parseRgbLegacy.js';\nimport parseRgb from './parseRgb.js';\nimport parseTransparent from './parseTransparent.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\n/*\n\tsRGB color space\n */\n\nconst definition = {\n\tmode: 'rgb',\n\tchannels: ['r', 'g', 'b', 'alpha'],\n\tparse: [\n\t\tparseRgb,\n\t\tparseHex,\n\t\tparseRgbLegacy,\n\t\tparseNamed,\n\t\tparseTransparent,\n\t\t'srgb'\n\t],\n\tserialize: 'srgb',\n\tinterpolate: {\n\t\tr: interpolatorLinear,\n\t\tg: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\tgamut: true,\n\twhite: { r: 1, g: 1, b: 1 },\n\tblack: { r: 0, g: 0, b: 0 }\n};\n\nexport default definition;\n","/*\n\tConvert A98 RGB values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf\n*/\n\nconst linearize = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);\n\nconst convertA98ToXyz65 = a98 => {\n\tlet r = linearize(a98.r);\n\tlet g = linearize(a98.g);\n\tlet b = linearize(a98.b);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.5766690429101305 * r +\n\t\t\t0.1855582379065463 * g +\n\t\t\t0.1882286462349947 * b,\n\t\ty:\n\t\t\t0.297344975250536 * r +\n\t\t\t0.6273635662554661 * g +\n\t\t\t0.0752914584939979 * b,\n\t\tz:\n\t\t\t0.0270313613864123 * r +\n\t\t\t0.0706888525358272 * g +\n\t\t\t0.9913375368376386 * b\n\t};\n\tif (a98.alpha !== undefined) {\n\t\tres.alpha = a98.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertA98ToXyz65;\n","/*\n\tConvert CIE XYZ D65 values to A98 RGB\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst gamma = v => Math.pow(Math.abs(v), 256 / 563) * Math.sign(v);\n\nconst convertXyz65ToA98 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'a98',\n\t\tr: gamma(\n\t\t\tx * 2.0415879038107465 -\n\t\t\t\ty * 0.5650069742788597 -\n\t\t\t\t0.3447313507783297 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.9692436362808798 +\n\t\t\t\ty * 1.8759675015077206 +\n\t\t\t\t0.0415550574071756 * z\n\t\t),\n\t\tb: gamma(\n\t\t\tx * 0.0134442806320312 -\n\t\t\t\ty * 0.1183623922310184 +\n\t\t\t\t1.0151749943912058 * z\n\t\t)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToA98;\n","const fn = (c = 0) => {\n\tconst abs = Math.abs(c);\n\tif (abs <= 0.04045) {\n\t\treturn c / 12.92;\n\t}\n\treturn (Math.sign(c) || 1) * Math.pow((abs + 0.055) / 1.055, 2.4);\n};\n\nconst convertRgbToLrgb = ({ r, g, b, alpha }) => {\n\tlet res = {\n\t\tmode: 'lrgb',\n\t\tr: fn(r),\n\t\tg: fn(g),\n\t\tb: fn(b)\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToLrgb;\n","/*\n\tConvert sRGB values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://observablehq.com/@danburzo/color-matrix-calculator\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertRgbToXyz65 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.4123907992659593 * r +\n\t\t\t0.357584339383878 * g +\n\t\t\t0.1804807884018343 * b,\n\t\ty:\n\t\t\t0.2126390058715102 * r +\n\t\t\t0.715168678767756 * g +\n\t\t\t0.0721923153607337 * b,\n\t\tz:\n\t\t\t0.0193308187155918 * r +\n\t\t\t0.119194779794626 * g +\n\t\t\t0.9505321522496607 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToXyz65;\n","const fn = (c = 0) => {\n\tconst abs = Math.abs(c);\n\tif (abs > 0.0031308) {\n\t\treturn (Math.sign(c) || 1) * (1.055 * Math.pow(abs, 1 / 2.4) - 0.055);\n\t}\n\treturn c * 12.92;\n};\n\nconst convertLrgbToRgb = ({ r, g, b, alpha }, mode = 'rgb') => {\n\tlet res = {\n\t\tmode,\n\t\tr: fn(r),\n\t\tg: fn(g),\n\t\tb: fn(b)\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLrgbToRgb;\n","/*\n\tCIE XYZ D65 values to sRGB.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://observablehq.com/@danburzo/color-matrix-calculator\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz65ToRgb = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb({\n\t\tr:\n\t\t\tx * 3.2409699419045226 -\n\t\t\ty * 1.5373831775700939 -\n\t\t\t0.4986107602930034 * z,\n\t\tg:\n\t\t\tx * -0.9692436362808796 +\n\t\t\ty * 1.8759675015077204 +\n\t\t\t0.0415550574071756 * z,\n\t\tb:\n\t\t\tx * 0.0556300796969936 -\n\t\t\ty * 0.2039769588889765 +\n\t\t\t1.0569715142428784 * z\n\t});\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToRgb;\n","import rgb from '../rgb/definition.js';\n\nimport convertA98ToXyz65 from './convertA98ToXyz65.js';\nimport convertXyz65ToA98 from './convertXyz65ToA98.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'a98',\n\tparse: ['a98-rgb'],\n\tserialize: 'a98-rgb',\n\n\tfromMode: {\n\t\trgb: color => convertXyz65ToA98(convertRgbToXyz65(color)),\n\t\txyz65: convertXyz65ToA98\n\t},\n\n\ttoMode: {\n\t\trgb: color => convertXyz65ToRgb(convertA98ToXyz65(color)),\n\t\txyz65: convertA98ToXyz65\n\t}\n};\n\nexport default definition;\n","const normalizeHue = hue => ((hue = hue % 360) < 0 ? hue + 360 : hue);\n\nexport default normalizeHue;\n","import normalizeHue from '../util/normalizeHue.js';\n\nconst hue = (hues, fn) => {\n\treturn hues\n\t\t.map((hue, idx, arr) => {\n\t\t\tif (hue === undefined) {\n\t\t\t\treturn hue;\n\t\t\t}\n\t\t\tlet normalized = normalizeHue(hue);\n\t\t\tif (idx === 0 || hues[idx - 1] === undefined) {\n\t\t\t\treturn normalized;\n\t\t\t}\n\t\t\treturn fn(normalized - normalizeHue(arr[idx - 1]));\n\t\t})\n\t\t.reduce((acc, curr) => {\n\t\t\tif (\n\t\t\t\t!acc.length ||\n\t\t\t\tcurr === undefined ||\n\t\t\t\tacc[acc.length - 1] === undefined\n\t\t\t) {\n\t\t\t\tacc.push(curr);\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\tacc.push(curr + acc[acc.length - 1]);\n\t\t\treturn acc;\n\t\t}, []);\n};\n\nconst fixupHueShorter = arr =>\n\thue(arr, d => (Math.abs(d) <= 180 ? d : d - 360 * Math.sign(d)));\nconst fixupHueLonger = arr =>\n\thue(arr, d => (Math.abs(d) >= 180 || d === 0 ? d : d - 360 * Math.sign(d)));\nconst fixupHueIncreasing = arr => hue(arr, d => (d >= 0 ? d : d + 360));\nconst fixupHueDecreasing = arr => hue(arr, d => (d <= 0 ? d : d - 360));\n\nexport {\n\tfixupHueShorter,\n\tfixupHueLonger,\n\tfixupHueIncreasing,\n\tfixupHueDecreasing\n};\n","export const M = [-0.14861, 1.78277, -0.29227, -0.90649, 1.97294, 0];\n\nexport const degToRad = Math.PI / 180;\nexport const radToDeg = 180 / Math.PI;\n","/*\n\tConvert a RGB color to the Cubehelix HSL color space.\n\n\tThis computation is not present in Green's paper:\n\thttps://arxiv.org/pdf/1108.5083.pdf\n\n\t...but can be derived from the inverse, HSL to RGB conversion.\n\n\tIt matches the math in Mike Bostock's D3 implementation:\n\n\thttps://github.com/d3/d3-color/blob/master/src/cubehelix.js\n */\n\nimport { radToDeg, M } from './constants.js';\n\nlet DE = M[3] * M[4];\nlet BE = M[1] * M[4];\nlet BCAD = M[1] * M[2] - M[0] * M[3];\n\nconst convertRgbToCubehelix = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet l = (BCAD * b + r * DE - g * BE) / (BCAD + DE - BE);\n\tlet x = b - l;\n\tlet y = (M[4] * (g - l) - M[2] * x) / M[3];\n\n\tlet res = {\n\t\tmode: 'cubehelix',\n\t\tl: l,\n\t\ts:\n\t\t\tl === 0 || l === 1\n\t\t\t\t? undefined\n\t\t\t\t: Math.sqrt(x * x + y * y) / (M[4] * l * (1 - l))\n\t};\n\n\tif (res.s) res.h = Math.atan2(y, x) * radToDeg - 120;\n\tif (alpha !== undefined) res.alpha = alpha;\n\n\treturn res;\n};\n\nexport default convertRgbToCubehelix;\n","import { degToRad, M } from './constants.js';\n\nconst convertCubehelixToRgb = ({ h, s, l, alpha }) => {\n\tlet res = { mode: 'rgb' };\n\n\th = (h === undefined ? 0 : h + 120) * degToRad;\n\tif (l === undefined) l = 0;\n\n\tlet amp = s === undefined ? 0 : s * l * (1 - l);\n\n\tlet cosh = Math.cos(h);\n\tlet sinh = Math.sin(h);\n\n\tres.r = l + amp * (M[0] * cosh + M[1] * sinh);\n\tres.g = l + amp * (M[2] * cosh + M[3] * sinh);\n\tres.b = l + amp * (M[4] * cosh + M[5] * sinh);\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertCubehelixToRgb;\n","import { getMode } from './modes.js';\nimport converter from './converter.js';\nimport normalizeHue from './util/normalizeHue.js';\n\nconst differenceHueSaturation = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined || !std.s || !smp.s) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tlet dH = Math.sin((((smp_h - std_h + 360) / 2) * Math.PI) / 180);\n\treturn 2 * Math.sqrt(std.s * smp.s) * dH;\n};\n\nconst differenceHueNaive = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tif (Math.abs(smp_h - std_h) > 180) {\n\t\t// todo should this be normalized once again?\n\t\treturn std_h - (smp_h - 360 * Math.sign(smp_h - std_h));\n\t}\n\treturn smp_h - std_h;\n};\n\nconst differenceHueChroma = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined || !std.c || !smp.c) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tlet dH = Math.sin((((smp_h - std_h + 360) / 2) * Math.PI) / 180);\n\treturn 2 * Math.sqrt(std.c * smp.c) * dH;\n};\n\nconst differenceEuclidean = (mode = 'rgb', weights = [1, 1, 1, 0]) => {\n\tlet def = getMode(mode);\n\tlet channels = def.channels;\n\tlet diffs = def.difference;\n\tlet conv = converter(mode);\n\treturn (std, smp) => {\n\t\tlet ConvStd = conv(std);\n\t\tlet ConvSmp = conv(smp);\n\t\treturn Math.sqrt(\n\t\t\tchannels.reduce((sum, k, idx) => {\n\t\t\t\tlet delta = diffs[k]\n\t\t\t\t\t? diffs[k](ConvStd, ConvSmp)\n\t\t\t\t\t: ConvStd[k] - ConvSmp[k];\n\t\t\t\treturn (\n\t\t\t\t\tsum +\n\t\t\t\t\t(weights[idx] || 0) * Math.pow(isNaN(delta) ? 0 : delta, 2)\n\t\t\t\t);\n\t\t\t}, 0)\n\t\t);\n\t};\n};\n\nconst differenceCie76 = () => differenceEuclidean('lab65');\n\nconst differenceCie94 = (kL = 1, K1 = 0.045, K2 = 0.015) => {\n\tlet lab = converter('lab65');\n\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\n\t\t// Extract Lab values, and compute Chroma\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\tlet dL2 = Math.pow(lStd - lSmp, 2);\n\t\tlet dC2 = Math.pow(cStd - cSmp, 2);\n\t\tlet dH2 = Math.pow(aStd - aSmp, 2) + Math.pow(bStd - bSmp, 2) - dC2;\n\n\t\treturn Math.sqrt(\n\t\t\tdL2 / Math.pow(kL, 2) +\n\t\t\t\tdC2 / Math.pow(1 + K1 * cStd, 2) +\n\t\t\t\tdH2 / Math.pow(1 + K2 * cStd, 2)\n\t\t);\n\t};\n};\n\n/*\n\tCIEDE2000 color difference, original Matlab implementation by Gaurav Sharma\n\tBased on \"The CIEDE2000 Color-Difference Formula: Implementation Notes, Supplementary Test Data, and Mathematical Observations\" \n\tby Gaurav Sharma, Wencheng Wu, Edul N. Dalal in Color Research and Application, vol. 30. No. 1, pp. 21-30, February 2005.\n\thttp://www2.ece.rochester.edu/~gsharma/ciede2000/\n */\n\nconst differenceCiede2000 = (Kl = 1, Kc = 1, Kh = 1) => {\n\tlet lab = converter('lab65');\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\tlet cAvg = (cStd + cSmp) / 2;\n\n\t\tlet G =\n\t\t\t0.5 *\n\t\t\t(1 -\n\t\t\t\tMath.sqrt(\n\t\t\t\t\tMath.pow(cAvg, 7) / (Math.pow(cAvg, 7) + Math.pow(25, 7))\n\t\t\t\t));\n\n\t\tlet apStd = aStd * (1 + G);\n\t\tlet apSmp = aSmp * (1 + G);\n\n\t\tlet cpStd = Math.sqrt(apStd * apStd + bStd * bStd);\n\t\tlet cpSmp = Math.sqrt(apSmp * apSmp + bSmp * bSmp);\n\n\t\tlet hpStd =\n\t\t\tMath.abs(apStd) + Math.abs(bStd) === 0\n\t\t\t\t? 0\n\t\t\t\t: Math.atan2(bStd, apStd);\n\t\thpStd += (hpStd < 0) * 2 * Math.PI;\n\n\t\tlet hpSmp =\n\t\t\tMath.abs(apSmp) + Math.abs(bSmp) === 0\n\t\t\t\t? 0\n\t\t\t\t: Math.atan2(bSmp, apSmp);\n\t\thpSmp += (hpSmp < 0) * 2 * Math.PI;\n\n\t\tlet dL = lSmp - lStd;\n\t\tlet dC = cpSmp - cpStd;\n\n\t\tlet dhp = cpStd * cpSmp === 0 ? 0 : hpSmp - hpStd;\n\t\tdhp -= (dhp > Math.PI) * 2 * Math.PI;\n\t\tdhp += (dhp < -Math.PI) * 2 * Math.PI;\n\n\t\tlet dH = 2 * Math.sqrt(cpStd * cpSmp) * Math.sin(dhp / 2);\n\n\t\tlet Lp = (lStd + lSmp) / 2;\n\t\tlet Cp = (cpStd + cpSmp) / 2;\n\n\t\tlet hp;\n\t\tif (cpStd * cpSmp === 0) {\n\t\t\thp = hpStd + hpSmp;\n\t\t} else {\n\t\t\thp = (hpStd + hpSmp) / 2;\n\t\t\thp -= (Math.abs(hpStd - hpSmp) > Math.PI) * Math.PI;\n\t\t\thp += (hp < 0) * 2 * Math.PI;\n\t\t}\n\n\t\tlet Lpm50 = Math.pow(Lp - 50, 2);\n\t\tlet T =\n\t\t\t1 -\n\t\t\t0.17 * Math.cos(hp - Math.PI / 6) +\n\t\t\t0.24 * Math.cos(2 * hp) +\n\t\t\t0.32 * Math.cos(3 * hp + Math.PI / 30) -\n\t\t\t0.2 * Math.cos(4 * hp - (63 * Math.PI) / 180);\n\n\t\tlet Sl = 1 + (0.015 * Lpm50) / Math.sqrt(20 + Lpm50);\n\t\tlet Sc = 1 + 0.045 * Cp;\n\t\tlet Sh = 1 + 0.015 * Cp * T;\n\n\t\tlet deltaTheta =\n\t\t\t((30 * Math.PI) / 180) *\n\t\t\tMath.exp(-1 * Math.pow(((180 / Math.PI) * hp - 275) / 25, 2));\n\t\tlet Rc =\n\t\t\t2 *\n\t\t\tMath.sqrt(Math.pow(Cp, 7) / (Math.pow(Cp, 7) + Math.pow(25, 7)));\n\n\t\tlet Rt = -1 * Math.sin(2 * deltaTheta) * Rc;\n\n\t\treturn Math.sqrt(\n\t\t\tMath.pow(dL / (Kl * Sl), 2) +\n\t\t\t\tMath.pow(dC / (Kc * Sc), 2) +\n\t\t\t\tMath.pow(dH / (Kh * Sh), 2) +\n\t\t\t\t(((Rt * dC) / (Kc * Sc)) * dH) / (Kh * Sh)\n\t\t);\n\t};\n};\n\n/*\n\tCMC (l:c) difference formula\n\n\tReferences:\n\t\thttps://en.wikipedia.org/wiki/Color_difference#CMC_l:c_(1984)\n\t\thttp://www.brucelindbloom.com/index.html?Eqn_DeltaE_CMC.html\n */\nconst differenceCmc = (l = 1, c = 1) => {\n\tlet lab = converter('lab65');\n\n\t/*\n\t\tComparte two colors:\n\t\tstd - standard (first) color\n\t\tsmp - sample (second) color\n\t */\n\treturn (std, smp) => {\n\t\t// convert standard color to Lab\n\t\tlet LabStd = lab(std);\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\n\t\t// Obtain hue/chroma\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\t\tlet hStd = Math.atan2(bStd, aStd);\n\t\thStd = hStd + 2 * Math.PI * (hStd < 0);\n\n\t\t// convert sample color to Lab, obtain LCh\n\t\tlet LabSmp = lab(smp);\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\n\t\t// Obtain chroma\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\t// lightness delta squared\n\t\tlet dL2 = Math.pow(lStd - lSmp, 2);\n\n\t\t// chroma delta squared\n\t\tlet dC2 = Math.pow(cStd - cSmp, 2);\n\n\t\t// hue delta squared\n\t\tlet dH2 = Math.pow(aStd - aSmp, 2) + Math.pow(bStd - bSmp, 2) - dC2;\n\n\t\tlet F = Math.sqrt(Math.pow(cStd, 4) / (Math.pow(cStd, 4) + 1900));\n\t\tlet T =\n\t\t\thStd >= (164 / 180) * Math.PI && hStd <= (345 / 180) * Math.PI\n\t\t\t\t? 0.56 + Math.abs(0.2 * Math.cos(hStd + (168 / 180) * Math.PI))\n\t\t\t\t: 0.36 + Math.abs(0.4 * Math.cos(hStd + (35 / 180) * Math.PI));\n\n\t\tlet Sl = lStd < 16 ? 0.511 : (0.040975 * lStd) / (1 + 0.01765 * lStd);\n\t\tlet Sc = (0.0638 * cStd) / (1 + 0.0131 * cStd) + 0.638;\n\t\tlet Sh = Sc * (F * T + 1 - F);\n\n\t\treturn Math.sqrt(\n\t\t\tdL2 / Math.pow(l * Sl, 2) +\n\t\t\t\tdC2 / Math.pow(c * Sc, 2) +\n\t\t\t\tdH2 / Math.pow(Sh, 2)\n\t\t);\n\t};\n};\n\n/*\n\n\tHyAB color difference formula, introduced in:\n\n\t\tAbasi S, Amani Tehran M, Fairchild MD. \n\t\t\"Distance metrics for very large color differences.\"\n\t\tColor Res Appl. 2019; 1–16. \n\t\thttps://doi.org/10.1002/col.22451\n\n\tPDF available at:\n\t\n\t\thttp://markfairchild.org/PDFs/PAP40.pdf\n */\nconst differenceHyab = () => {\n\tlet lab = converter('lab65');\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\t\tlet dL = LabStd.l - LabSmp.l;\n\t\tlet dA = LabStd.a - LabSmp.a;\n\t\tlet dB = LabStd.b - LabSmp.b;\n\t\treturn Math.abs(dL) + Math.sqrt(dA * dA + dB * dB);\n\t};\n};\n\n/*\n\t\"Measuring perceived color difference using YIQ NTSC\n\ttransmission color space in mobile applications\"\n\t\t\n\t\tby Yuriy Kotsarenko, Fernando Ramos in:\n\t\tProgramación Matemática y Software (2010) \n\n\tAvailable at:\n\t\t\n\t\thttp://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf\n */\nconst differenceKotsarenkoRamos = () =>\n\tdifferenceEuclidean('yiq', [0.5053, 0.299, 0.1957]);\n\n/*\n\tΔE_ITP, as defined in Rec. ITU-R BT.2124:\n\n\thttps://www.itu.int/rec/R-REC-BT.2124/en\n*/\nconst differenceItp = () =>\n\tdifferenceEuclidean('itp', [518400, 129600, 518400]);\n\nexport {\n\tdifferenceHueChroma,\n\tdifferenceHueSaturation,\n\tdifferenceHueNaive,\n\tdifferenceEuclidean,\n\tdifferenceCie76,\n\tdifferenceCie94,\n\tdifferenceCiede2000,\n\tdifferenceCmc,\n\tdifferenceHyab,\n\tdifferenceKotsarenkoRamos,\n\tdifferenceItp\n};\n","import converter from './converter.js';\nimport { getMode } from './modes.js';\n\nconst averageAngle = val => {\n\t// See: https://en.wikipedia.org/wiki/Mean_of_circular_quantities\n\tlet sum = val.reduce(\n\t\t(sum, val) => {\n\t\t\tif (val !== undefined) {\n\t\t\t\tlet rad = (val * Math.PI) / 180;\n\t\t\t\tsum.sin += Math.sin(rad);\n\t\t\t\tsum.cos += Math.cos(rad);\n\t\t\t}\n\t\t\treturn sum;\n\t\t},\n\t\t{ sin: 0, cos: 0 }\n\t);\n\tlet angle = (Math.atan2(sum.sin, sum.cos) * 180) / Math.PI;\n\treturn angle < 0 ? 360 + angle : angle;\n};\n\nconst averageNumber = val => {\n\tlet a = val.filter(v => v !== undefined);\n\treturn a.length ? a.reduce((sum, v) => sum + v, 0) / a.length : undefined;\n};\n\nconst isfn = o => typeof o === 'function';\n\nfunction average(colors, mode = 'rgb', overrides) {\n\tlet def = getMode(mode);\n\tlet cc = colors.map(converter(mode));\n\treturn def.channels.reduce(\n\t\t(res, ch) => {\n\t\t\tlet arr = cc.map(c => c[ch]).filter(val => val !== undefined);\n\t\t\tif (arr.length) {\n\t\t\t\tlet fn;\n\t\t\t\tif (isfn(overrides)) {\n\t\t\t\t\tfn = overrides;\n\t\t\t\t} else if (overrides && isfn(overrides[ch])) {\n\t\t\t\t\tfn = overrides[ch];\n\t\t\t\t} else if (def.average && isfn(def.average[ch])) {\n\t\t\t\t\tfn = def.average[ch];\n\t\t\t\t} else {\n\t\t\t\t\tfn = averageNumber;\n\t\t\t\t}\n\t\t\t\tres[ch] = fn(arr, ch);\n\t\t\t}\n\t\t\treturn res;\n\t\t},\n\t\t{ mode }\n\t);\n}\n\nexport { average, averageAngle, averageNumber };\n","/* \n\tDave Green's Cubehelix\n\t----------------------\n\n\tGreen, D. A., 2011, \"A colour scheme for the display of astronomical intensity images\", \n\tBulletin of the Astronomical Society of India, 39, 289. (2011BASI...39..289G at ADS.) \n\n\thttps://www.mrao.cam.ac.uk/%7Edag/CUBEHELIX/\n\thttps://arxiv.org/pdf/1108.5083.pdf\n\n\tAlthough Cubehelix was defined to be a method to obtain a colour scheme,\n\tit actually contains a definition of a colour space, as identified by \n\tMike Bostock and implemented in D3.js.\n\n\tGreen's paper introduces the following terminology:\n\n\t* \ta `lightness` dimension in the interval [0, 1] \n\t\ton which we interpolate to obtain the colour scheme\n\t*\ta `start` colour that is analogous to a Hue in HSL space\n\t*\ta number of `rotations` around the Hue cylinder.\n\t*\ta `hue` parameter which should more appropriately be called `saturation`\n\t\n\tAs such, the original definition of the Cubehelix scheme is actually an\n\tinterpolation between two colors in the Cubehelix space:\n\n\tH: start \t\t\t\tH: start + 360 * rotations\n\tS: hue \t\t\t->\t\tS: hue\n\tL: 0\t\t\t\t\tL: 1\n\n\tWe can therefore extend the interpolation to any two colors in this space,\n\twith a variable Saturation and a Lightness interval other than the fixed 0 -> 1.\n*/\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport convertRgbToCubehelix from './convertRgbToCubehelix.js';\nimport convertCubehelixToRgb from './convertCubehelixToRgb.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'cubehelix',\n\tchannels: ['h', 's', 'l', 'alpha'],\n\tparse: ['--cubehelix'],\n\tserialize: '--cubehelix',\n\n\tranges: {\n\t\th: [0, 360],\n\t\ts: [0, 4.614],\n\t\tl: [0, 1]\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToCubehelix\n\t},\n\n\ttoMode: {\n\t\trgb: convertCubehelixToRgb\n\t},\n\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\ts: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\n/* \n\tReferences: \n\t\t* https://drafts.csswg.org/css-color/#lab-to-lch\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n*/\nconst convertLabToLch = ({ l, a, b, alpha }, mode = 'lch') => {\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet c = Math.sqrt(a * a + b * b);\n\tlet res = { mode, l, c };\n\tif (c) res.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLabToLch;\n","/* \n\tReferences: \n\t\t* https://drafts.csswg.org/css-color/#lch-to-lab\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n*/\nconst convertLchToLab = ({ l, c, h, alpha }, mode = 'lab') => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode,\n\t\tl,\n\t\ta: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tb: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLchToLab;\n","export const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n","/*\n\tThe XYZ tristimulus values (white point)\n\tof standard illuminants for the CIE 1931 2° \n\tstandard observer.\n\n\tSee: https://en.wikipedia.org/wiki/Standard_illuminant\n */\n\nexport const D50 = {\n\tX: 0.3457 / 0.3585,\n\tY: 1,\n\tZ: (1 - 0.3457 - 0.3585) / 0.3585\n};\n\nexport const D65 = {\n\tX: 0.3127 / 0.329,\n\tY: 1,\n\tZ: (1 - 0.3127 - 0.329) / 0.329\n};\n\nexport const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n","import { k, e } from '../xyz65/constants.js';\nimport { D65 } from '../constants.js';\n\nlet fn = v => (Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k);\n\nconst convertLab65ToXyz65 = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\n\tlet fy = (l + 16) / 116;\n\tlet fx = a / 500 + fy;\n\tlet fz = fy - b / 200;\n\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx: fn(fx) * D65.X,\n\t\ty: fn(fy) * D65.Y,\n\t\tz: fn(fz) * D65.Z\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLab65ToXyz65;\n","import convertLab65ToXyz65 from './convertLab65ToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst convertLab65ToRgb = lab => convertXyz65ToRgb(convertLab65ToXyz65(lab));\n\nexport default convertLab65ToRgb;\n","import { k, e } from '../xyz65/constants.js';\nimport { D65 } from '../constants.js';\n\nconst f = value => (value > e ? Math.cbrt(value) : (k * value + 16) / 116);\n\nconst convertXyz65ToLab65 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet f0 = f(x / D65.X);\n\tlet f1 = f(y / D65.Y);\n\tlet f2 = f(z / D65.Z);\n\n\tlet res = {\n\t\tmode: 'lab65',\n\t\tl: 116 * f1 - 16,\n\t\ta: 500 * (f0 - f1),\n\t\tb: 200 * (f1 - f2)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToLab65;\n","import convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToLab65 from './convertXyz65ToLab65.js';\n\nconst convertRgbToLab65 = rgb => {\n\tlet res = convertXyz65ToLab65(convertRgbToXyz65(rgb));\n\n\t// Fixes achromatic RGB colors having a _slight_ chroma due to floating-point errors\n\t// and approximated computations in sRGB <-> CIELab.\n\t// See: https://github.com/d3/d3-color/pull/46\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToLab65;\n","export const kE = 1;\nexport const kCH = 1;\nexport const θ = (26 / 180) * Math.PI;\nexport const cosθ = Math.cos(θ);\nexport const sinθ = Math.sin(θ);\nexport const factor = 100 / Math.log(139 / 100); // ~ 303.67\n","import { kCH, kE, sinθ, cosθ, θ, factor } from './constants.js';\n\n/*\n\tConvert DIN99o LCh to CIELab D65\n\t--------------------------------\n */\n\nconst convertDlchToLab65 = ({ l, c, h, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (c === undefined) c = 0;\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'lab65',\n\t\tl: (Math.exp((l * kE) / factor) - 1) / 0.0039\n\t};\n\n\tlet G = (Math.exp(0.0435 * c * kCH * kE) - 1) / 0.075;\n\tlet e = G * Math.cos((h / 180) * Math.PI - θ);\n\tlet f = G * Math.sin((h / 180) * Math.PI - θ);\n\tres.a = e * cosθ - (f / 0.83) * sinθ;\n\tres.b = e * sinθ + (f / 0.83) * cosθ;\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertDlchToLab65;\n","import { kCH, kE, sinθ, cosθ, θ, factor } from './constants.js';\nimport normalizeHue from '../util/normalizeHue.js';\n\n/*\n\tConvert CIELab D65 to DIN99o LCh\n\t================================\n */\n\nconst convertLab65ToDlch = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet e = a * cosθ + b * sinθ;\n\tlet f = 0.83 * (b * cosθ - a * sinθ);\n\tlet G = Math.sqrt(e * e + f * f);\n\tlet res = {\n\t\tmode: 'dlch',\n\t\tl: (factor / kE) * Math.log(1 + 0.0039 * l),\n\t\tc: Math.log(1 + 0.075 * G) / (0.0435 * kCH * kE)\n\t};\n\n\tif (res.c) {\n\t\tres.h = normalizeHue(((Math.atan2(f, e) + θ) / Math.PI) * 180);\n\t}\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLab65ToDlch;\n","import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\nimport convertDlchToLab65 from '../dlch/convertDlchToLab65.js';\nimport convertLab65ToDlch from '../dlch/convertLab65ToDlch.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst convertDlabToLab65 = c => convertDlchToLab65(convertLabToLch(c, 'dlch'));\nconst convertLab65ToDlab = c => convertLchToLab(convertLab65ToDlch(c), 'dlab');\n\nconst definition = {\n\tmode: 'dlab',\n\n\tparse: ['--din99o-lab'],\n\tserialize: '--din99o-lab',\n\n\ttoMode: {\n\t\tlab65: convertDlabToLab65,\n\t\trgb: c => convertLab65ToRgb(convertDlabToLab65(c))\n\t},\n\n\tfromMode: {\n\t\tlab65: convertLab65ToDlab,\n\t\trgb: c => convertLab65ToDlab(convertRgbToLab65(c))\n\t},\n\n\tchannels: ['l', 'a', 'b', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-40.09, 45.501],\n\t\tb: [-40.469, 44.344]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\n\nexport default definition;\n","import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertDlchToLab65 from './convertDlchToLab65.js';\nimport convertLab65ToDlch from './convertLab65ToDlch.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'dlch',\n\n\tparse: ['--din99o-lch'],\n\tserialize: '--din99o-lch',\n\n\ttoMode: {\n\t\tlab65: convertDlchToLab65,\n\t\tdlab: c => convertLchToLab(c, 'dlab'),\n\t\trgb: c => convertLab65ToRgb(convertDlchToLab65(c))\n\t},\n\n\tfromMode: {\n\t\tlab65: convertLab65ToDlch,\n\t\tdlab: c => convertLabToLch(c, 'dlch'),\n\t\trgb: c => convertLab65ToDlch(convertRgbToLab65(c))\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 51.484],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\tc: interpolatorLinear,\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHsiToRgb({ h, s, i, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (i === undefined) i = 0;\n\tlet f = Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tg: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tb: i * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tg: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tb: i * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = {\n\t\t\t\tr: i * (1 - s),\n\t\t\t\tg: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tb: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = {\n\t\t\t\tr: i * (1 - s),\n\t\t\t\tg: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tb: i * (1 + s * (3 / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tg: i * (1 - s),\n\t\t\t\tb: i * (1 + s * (3 / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tg: i * (1 - s),\n\t\t\t\tb: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: i * (1 - s), g: i * (1 - s), b: i * (1 - s) };\n\t}\n\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsi({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsi',\n\t\ts: r + g + b === 0 ? 0 : 1 - (3 * m) / (r + g + b),\n\t\ti: (r + g + b) / 3\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","import convertHsiToRgb from './convertHsiToRgb.js';\nimport convertRgbToHsi from './convertRgbToHsi.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsi',\n\n\ttoMode: {\n\t\trgb: convertHsiToRgb\n\t},\n\n\tparse: ['--hsi'],\n\tserialize: '--hsi',\n\n\tfromMode: {\n\t\trgb: convertRgbToHsi\n\t},\n\n\tchannels: ['h', 's', 'i', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\ti: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHslToRgb({ h, s, l, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (l === undefined) l = 0;\n\tlet m1 = l + s * (l < 0.5 ? l : 1 - l);\n\tlet m2 = m1 - (m1 - l) * 2 * Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = { r: m1, g: m2, b: 2 * l - m1 };\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = { r: m2, g: m1, b: 2 * l - m1 };\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = { r: 2 * l - m1, g: m1, b: m2 };\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = { r: 2 * l - m1, g: m2, b: m1 };\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = { r: m2, g: 2 * l - m1, b: m1 };\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = { r: m1, g: 2 * l - m1, b: m2 };\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: 2 * l - m1, g: 2 * l - m1, b: 2 * l - m1 };\n\t}\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsl({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsl',\n\t\ts: M === m ? 0 : (M - m) / (1 - Math.abs(M + m - 1)),\n\t\tl: 0.5 * (M + m)\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","const hueToDeg = (val, unit) => {\n\tswitch (unit) {\n\t\tcase 'deg':\n\t\t\treturn +val;\n\t\tcase 'rad':\n\t\t\treturn (val / Math.PI) * 180;\n\t\tcase 'grad':\n\t\t\treturn (val / 10) * 9;\n\t\tcase 'turn':\n\t\t\treturn val * 360;\n\t}\n};\n\nexport default hueToDeg;\n","import hueToDeg from '../util/hue.js';\nimport { hue, per, num_per, c } from '../util/regex.js';\n\n/*\n\thsl() regular expressions for legacy format\n\tReference: https://drafts.csswg.org/css-color/#the-hsl-notation\n */\nconst hsl_old = new RegExp(\n\t`^hsla?\\\\(\\\\s*${hue}${c}${per}${c}${per}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst parseHslLegacy = color => {\n\tlet match = color.match(hsl_old);\n\tif (!match) return;\n\tlet res = { mode: 'hsl' };\n\n\tif (match[3] !== undefined) {\n\t\tres.h = +match[3];\n\t} else if (match[1] !== undefined && match[2] !== undefined) {\n\t\tres.h = hueToDeg(match[1], match[2]);\n\t}\n\n\tif (match[4] !== undefined) {\n\t\tres.s = Math.min(Math.max(0, match[4] / 100), 1);\n\t}\n\n\tif (match[5] !== undefined) {\n\t\tres.l = Math.min(Math.max(0, match[5] / 100), 1);\n\t}\n\n\tif (match[6] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, match[6] / 100));\n\t} else if (match[7] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, +match[7]));\n\t}\n\treturn res;\n};\n\nexport default parseHslLegacy;\n","import { Tok } from '../parse.js';\n\nfunction parseHsl(color, parsed) {\n\tif (!parsed || (parsed[0] !== 'hsl' && parsed[0] !== 'hsla')) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'hsl' };\n\tconst [, h, s, l, alpha] = parsed;\n\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\n\tif (s.type !== Tok.None) {\n\t\tif (s.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.s = s.value / 100;\n\t}\n\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = l.value / 100;\n\t}\n\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseHsl;\n","import convertHslToRgb from './convertHslToRgb.js';\nimport convertRgbToHsl from './convertRgbToHsl.js';\nimport parseHslLegacy from './parseHslLegacy.js';\nimport parseHsl from './parseHsl.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsl',\n\n\ttoMode: {\n\t\trgb: convertHslToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToHsl\n\t},\n\n\tchannels: ['h', 's', 'l', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tparse: [parseHsl, parseHslLegacy],\n\tserialize: c =>\n\t\t`hsl(${c.h !== undefined ? c.h : 'none'} ${\n\t\t\tc.s !== undefined ? c.s * 100 + '%' : 'none'\n\t\t} ${c.l !== undefined ? c.l * 100 + '%' : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHsvToRgb({ h, s, v, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (v === undefined) v = 0;\n\tlet f = Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = { r: v, g: v * (1 - s * f), b: v * (1 - s) };\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = { r: v * (1 - s * f), g: v, b: v * (1 - s) };\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = { r: v * (1 - s), g: v, b: v * (1 - s * f) };\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = { r: v * (1 - s), g: v * (1 - s * f), b: v };\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = { r: v * (1 - s * f), g: v * (1 - s), b: v };\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = { r: v, g: v * (1 - s), b: v * (1 - s * f) };\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: v * (1 - s), g: v * (1 - s), b: v * (1 - s) };\n\t}\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsv({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsv',\n\t\ts: M === 0 ? 0 : 1 - m / M,\n\t\tv: M\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n","import convertHsvToRgb from './convertHsvToRgb.js';\nimport convertRgbToHsv from './convertRgbToHsv.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsv',\n\n\ttoMode: {\n\t\trgb: convertHsvToRgb\n\t},\n\n\tparse: ['--hsv'],\n\tserialize: '--hsv',\n\n\tfromMode: {\n\t\trgb: convertRgbToHsv\n\t},\n\n\tchannels: ['h', 's', 'v', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\tv: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","/*\n\tHWB to RGB converter\n\t--------------------\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#hwb-to-rgb\n\t\t* https://en.wikipedia.org/wiki/HWB_color_model\n\t\t* http://alvyray.com/Papers/CG/HWB_JGTv208.pdf\n */\n\nimport convertHsvToRgb from '../hsv/convertHsvToRgb.js';\n\nexport default function convertHwbToRgb({ h, w, b, alpha }) {\n\tif (w === undefined) w = 0;\n\tif (b === undefined) b = 0;\n\t// normalize w + b to 1\n\tif (w + b > 1) {\n\t\tlet s = w + b;\n\t\tw /= s;\n\t\tb /= s;\n\t}\n\treturn convertHsvToRgb({\n\t\th: h,\n\t\ts: b === 1 ? 1 : 1 - w / (1 - b),\n\t\tv: 1 - b,\n\t\talpha: alpha\n\t});\n}\n","/*\n\tRGB to HWB converter\n\t--------------------\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#hwb-to-rgb\n\t\t* https://en.wikipedia.org/wiki/HWB_color_model\n\t\t* http://alvyray.com/Papers/CG/HWB_JGTv208.pdf\n */\n\nimport convertRgbToHsv from '../hsv/convertRgbToHsv.js';\n\nexport default function convertRgbToHwb(rgba) {\n\tlet hsv = convertRgbToHsv(rgba);\n\tif (hsv === undefined) return undefined;\n\tlet s = hsv.s !== undefined ? hsv.s : 0;\n\tlet v = hsv.v !== undefined ? hsv.v : 0;\n\tlet res = {\n\t\tmode: 'hwb',\n\t\tw: (1 - s) * v,\n\t\tb: 1 - v\n\t};\n\tif (hsv.h !== undefined) res.h = hsv.h;\n\tif (hsv.alpha !== undefined) res.alpha = hsv.alpha;\n\treturn res;\n}\n","import { Tok } from '../parse.js';\n\nfunction ParseHwb(color, parsed) {\n\tif (!parsed || parsed[0] !== 'hwb') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'hwb' };\n\tconst [, h, w, b, alpha] = parsed;\n\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\n\tif (w.type !== Tok.None) {\n\t\tif (w.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.w = w.value / 100;\n\t}\n\n\tif (b.type !== Tok.None) {\n\t\tif (b.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.b = b.value / 100;\n\t}\n\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default ParseHwb;\n","import convertHwbToRgb from './convertHwbToRgb.js';\nimport convertRgbToHwb from './convertRgbToHwb.js';\nimport parseHwb from './parseHwb.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueNaive } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hwb',\n\n\ttoMode: {\n\t\trgb: convertHwbToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToHwb\n\t},\n\n\tchannels: ['h', 'w', 'b', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tparse: [parseHwb],\n\tserialize: c =>\n\t\t`hwb(${c.h !== undefined ? c.h : 'none'} ${\n\t\t\tc.w !== undefined ? c.w * 100 + '%' : 'none'\n\t\t} ${c.b !== undefined ? c.b * 100 + '%' : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tw: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueNaive\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","/*\n\tRelative XYZ has Y=1 for media white,\n\tBT.2048 says media white Y=203 (at PQ 58).\n\tSee: https://www.itu.int/dms_pub/itu-r/opb/rep/R-REP-BT.2408-3-2019-PDF-E.pdf\n*/\nexport const YW = 203;\n","/*\n\thttps://en.wikipedia.org/wiki/Transfer_functions_in_imaging\n*/\n\nexport const M1 = 0.1593017578125;\nexport const M2 = 78.84375;\nexport const C1 = 0.8359375;\nexport const C2 = 18.8515625;\nexport const C3 = 18.6875;\n\n/*\n\tPerceptual Quantizer, as defined in Rec. BT 2100-2 (2018)\n\n\t* https://www.itu.int/rec/R-REC-BT.2100-2-201807-I/en\n\t* https://en.wikipedia.org/wiki/Perceptual_quantizer\n*/\n\n/* PQ EOTF, defined for `v` in [0,1]. */\nexport function transferPqDecode(v) {\n\tif (v < 0) return 0;\n\tconst c = Math.pow(v, 1 / M2);\n\treturn 1e4 * Math.pow(Math.max(0, c - C1) / (C2 - C3 * c), 1 / M1);\n}\n\n/* PQ EOTF^-1, defined for `v` in [0, 1e4]. */\nexport function transferPqEncode(v) {\n\tif (v < 0) return 0;\n\tconst c = Math.pow(v / 1e4, M1);\n\treturn Math.pow((C1 + C2 * c) / (1 + C3 * c), M2);\n}\n","import { YW } from '../hdr/constants.js';\nimport { transferPqDecode } from '../hdr/transfer.js';\n\nconst toRel = c => Math.max(c / YW, 0);\n\nconst convertItpToXyz65 = ({ i, t, p, alpha }) => {\n\tif (i === undefined) i = 0;\n\tif (t === undefined) t = 0;\n\tif (p === undefined) p = 0;\n\n\tconst l = transferPqDecode(\n\t\ti + 0.008609037037932761 * t + 0.11102962500302593 * p\n\t);\n\tconst m = transferPqDecode(\n\t\ti - 0.00860903703793275 * t - 0.11102962500302599 * p\n\t);\n\tconst s = transferPqDecode(\n\t\ti + 0.5600313357106791 * t - 0.32062717498731885 * p\n\t);\n\n\tconst res = {\n\t\tmode: 'xyz65',\n\t\tx: toRel(\n\t\t\t2.0701522183894219 * l -\n\t\t\t\t1.3263473389671556 * m +\n\t\t\t\t0.2066510476294051 * s\n\t\t),\n\t\ty: toRel(\n\t\t\t0.3647385209748074 * l +\n\t\t\t\t0.680566024947227 * m -\n\t\t\t\t0.0453045459220346 * s\n\t\t),\n\t\tz: toRel(\n\t\t\t-0.049747207535812 * l -\n\t\t\t\t0.0492609666966138 * m +\n\t\t\t\t1.1880659249923042 * s\n\t\t)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertItpToXyz65;\n","import { YW } from '../hdr/constants.js';\nimport { transferPqEncode } from '../hdr/transfer.js';\n\nconst toAbs = (c = 0) => Math.max(c * YW, 0);\n\nconst convertXyz65ToItp = ({ x, y, z, alpha }) => {\n\tconst absX = toAbs(x);\n\tconst absY = toAbs(y);\n\tconst absZ = toAbs(z);\n\tconst l = transferPqEncode(\n\t\t0.3592832590121217 * absX +\n\t\t\t0.6976051147779502 * absY -\n\t\t\t0.0358915932320289 * absZ\n\t);\n\tconst m = transferPqEncode(\n\t\t-0.1920808463704995 * absX +\n\t\t\t1.1004767970374323 * absY +\n\t\t\t0.0753748658519118 * absZ\n\t);\n\tconst s = transferPqEncode(\n\t\t0.0070797844607477 * absX +\n\t\t\t0.0748396662186366 * absY +\n\t\t\t0.8433265453898765 * absZ\n\t);\n\n\tconst i = 0.5 * l + 0.5 * m;\n\tconst t = 1.61376953125 * l - 3.323486328125 * m + 1.709716796875 * s;\n\tconst p = 4.378173828125 * l - 4.24560546875 * m - 0.132568359375 * s;\n\n\tconst res = { mode: 'itp', i, t, p };\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToItp;\n","import { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport convertItpToXyz65 from './convertItpToXyz65.js';\nimport convertXyz65ToItp from './convertXyz65ToItp.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\n/*\n ICtCp (or ITP) color space, as defined in ITU-R Recommendation BT.2100.\n\n ICtCp is drafted to be supported in CSS within\n [CSS Color HDR Module Level 1](https://drafts.csswg.org/css-color-hdr/#ICtCp) spec.\n*/\n\nconst definition = {\n\tmode: 'itp',\n\tchannels: ['i', 't', 'p', 'alpha'],\n\tparse: ['--ictcp'],\n\tserialize: '--ictcp',\n\n\ttoMode: {\n\t\txyz65: convertItpToXyz65,\n\t\trgb: color => convertXyz65ToRgb(convertItpToXyz65(color))\n\t},\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToItp,\n\t\trgb: color => convertXyz65ToItp(convertRgbToXyz65(color))\n\t},\n\n\tranges: {\n\t\ti: [0, 0.581],\n\t\tt: [-0.369, 0.272],\n\t\tp: [-0.164, 0.331]\n\t},\n\n\tinterpolate: {\n\t\ti: interpolatorLinear,\n\t\tt: interpolatorLinear,\n\t\tp: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","import { M1 as n, C1, C2, C3 } from '../hdr/transfer.js';\nconst p = 134.03437499999998; // = 1.7 * 2523 / Math.pow(2, 5);\nconst d0 = 1.6295499532821566e-11;\n\n/* \n\tThe encoding function is derived from Perceptual Quantizer.\n*/\nconst jabPqEncode = v => {\n\tif (v < 0) return 0;\n\tlet vn = Math.pow(v / 10000, n);\n\treturn Math.pow((C1 + C2 * vn) / (1 + C3 * vn), p);\n};\n\n// Convert to Absolute XYZ\nconst abs = (v = 0) => Math.max(v * 203, 0);\n\nconst convertXyz65ToJab = ({ x, y, z, alpha }) => {\n\tx = abs(x);\n\ty = abs(y);\n\tz = abs(z);\n\n\tlet xp = 1.15 * x - 0.15 * z;\n\tlet yp = 0.66 * y + 0.34 * x;\n\n\tlet l = jabPqEncode(0.41478972 * xp + 0.579999 * yp + 0.014648 * z);\n\tlet m = jabPqEncode(-0.20151 * xp + 1.120649 * yp + 0.0531008 * z);\n\tlet s = jabPqEncode(-0.0166008 * xp + 0.2648 * yp + 0.6684799 * z);\n\n\tlet i = (l + m) / 2;\n\n\tlet res = {\n\t\tmode: 'jab',\n\t\tj: (0.44 * i) / (1 - 0.56 * i) - d0,\n\t\ta: 3.524 * l - 4.066708 * m + 0.542708 * s,\n\t\tb: 0.199076 * l + 1.096799 * m - 1.295875 * s\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToJab;\n","import { M1 as n, C1, C2, C3 } from '../hdr/transfer.js';\nconst p = 134.03437499999998; // = 1.7 * 2523 / Math.pow(2, 5);\nconst d0 = 1.6295499532821566e-11;\n\n/* \n\tThe encoding function is derived from Perceptual Quantizer.\n*/\nconst jabPqDecode = v => {\n\tif (v < 0) return 0;\n\tlet vp = Math.pow(v, 1 / p);\n\treturn 10000 * Math.pow((C1 - vp) / (C3 * vp - C2), 1 / n);\n};\n\nconst rel = v => v / 203;\n\nconst convertJabToXyz65 = ({ j, a, b, alpha }) => {\n\tif (j === undefined) j = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet i = (j + d0) / (0.44 + 0.56 * (j + d0));\n\n\tlet l = jabPqDecode(i + 0.13860504 * a + 0.058047316 * b);\n\tlet m = jabPqDecode(i - 0.13860504 * a - 0.058047316 * b);\n\tlet s = jabPqDecode(i - 0.096019242 * a - 0.8118919 * b);\n\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx: rel(\n\t\t\t1.661373024652174 * l -\n\t\t\t\t0.914523081304348 * m +\n\t\t\t\t0.23136208173913045 * s\n\t\t),\n\t\ty: rel(\n\t\t\t-0.3250758611844533 * l +\n\t\t\t\t1.571847026732543 * m -\n\t\t\t\t0.21825383453227928 * s\n\t\t),\n\t\tz: rel(-0.090982811 * l - 0.31272829 * m + 1.5227666 * s)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertJabToXyz65;\n","/*\n\tConvert sRGB to JzAzBz.\n\n\tFor achromatic sRGB colors, adjust the equivalent JzAzBz color\n\tto be achromatic as well, insteading of having a very slight chroma.\n */\n\nimport convertXyz65ToJab from './convertXyz65ToJab.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\n\nconst convertRgbToJab = rgb => {\n\tlet res = convertXyz65ToJab(convertRgbToXyz65(rgb));\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToJab;\n","import convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\nimport convertJabToXyz65 from './convertJabToXyz65.js';\n\nconst convertJabToRgb = color => convertXyz65ToRgb(convertJabToXyz65(color));\n\nexport default convertJabToRgb;\n","/*\n\tThe JzAzBz color space.\n\n\tBased on:\n\n\tMuhammad Safdar, Guihua Cui, Youn Jin Kim, and Ming Ronnier Luo, \n\t\"Perceptually uniform color space for image signals \n\tincluding high dynamic range and wide gamut,\" \n\tOpt. Express 25, 15131-15151 (2017) \n\n\thttps://doi.org/10.1364/OE.25.015131\n */\n\nimport convertXyz65ToJab from './convertXyz65ToJab.js';\nimport convertJabToXyz65 from './convertJabToXyz65.js';\nimport convertRgbToJab from './convertRgbToJab.js';\nimport convertJabToRgb from './convertJabToRgb.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'jab',\n\tchannels: ['j', 'a', 'b', 'alpha'],\n\n\tparse: ['--jzazbz'],\n\tserialize: '--jzazbz',\n\n\tfromMode: {\n\t\trgb: convertRgbToJab,\n\t\txyz65: convertXyz65ToJab\n\t},\n\n\ttoMode: {\n\t\trgb: convertJabToRgb,\n\t\txyz65: convertJabToXyz65\n\t},\n\n\tranges: {\n\t\tj: [0, 0.222],\n\t\ta: [-0.109, 0.129],\n\t\tb: [-0.185, 0.134]\n\t},\n\n\tinterpolate: {\n\t\tj: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\nconst convertJabToJch = ({ j, a, b, alpha }) => {\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet c = Math.sqrt(a * a + b * b);\n\tlet res = {\n\t\tmode: 'jch',\n\t\tj,\n\t\tc\n\t};\n\tif (c) {\n\t\tres.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertJabToJch;\n","const convertJchToJab = ({ j, c, h, alpha }) => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'jab',\n\t\tj,\n\t\ta: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tb: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertJchToJab;\n","import convertJabToJch from './convertJabToJch.js';\nimport convertJchToJab from './convertJchToJab.js';\nimport convertJabToRgb from '../jab/convertJabToRgb.js';\nimport convertRgbToJab from '../jab/convertRgbToJab.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'jch',\n\n\tparse: ['--jzczhz'],\n\tserialize: '--jzczhz',\n\n\ttoMode: {\n\t\tjab: convertJchToJab,\n\t\trgb: c => convertJabToRgb(convertJchToJab(c))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertJabToJch(convertRgbToJab(c)),\n\t\tjab: convertJabToJch\n\t},\n\n\tchannels: ['j', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tj: [0, 0.221],\n\t\tc: [0, 0.19],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tj: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","export const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n","import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nlet fn = v => (Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k);\n\nconst convertLabToXyz50 = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet fy = (l + 16) / 116;\n\tlet fx = a / 500 + fy;\n\tlet fz = fy - b / 200;\n\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx: fn(fx) * D50.X,\n\t\ty: fn(fy) * D50.Y,\n\t\tz: fn(fz) * D50.Z\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLabToXyz50;\n","/*\n\tCIE XYZ D50 values to sRGB.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz50ToRgb = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb({\n\t\tr:\n\t\t\tx * 3.1341359569958707 -\n\t\t\ty * 1.6173863321612538 -\n\t\t\t0.4906619460083532 * z,\n\t\tg:\n\t\t\tx * -0.978795502912089 +\n\t\t\ty * 1.916254567259524 +\n\t\t\t0.03344273116131949 * z,\n\t\tb:\n\t\t\tx * 0.07195537988411677 -\n\t\t\ty * 0.2289768264158322 +\n\t\t\t1.405386058324125 * z\n\t});\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToRgb;\n","import convertLabToXyz50 from './convertLabToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\n\nconst convertLabToRgb = lab => convertXyz50ToRgb(convertLabToXyz50(lab));\n\nexport default convertLabToRgb;\n","/*\n\tConvert sRGB values to CIE XYZ D50\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertRgbToXyz50 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t0.436065742824811 * r +\n\t\t\t0.3851514688337912 * g +\n\t\t\t0.14307845442264197 * b,\n\t\ty:\n\t\t\t0.22249319175623702 * r +\n\t\t\t0.7168870538238823 * g +\n\t\t\t0.06061979053616537 * b,\n\t\tz:\n\t\t\t0.013923904500943465 * r +\n\t\t\t0.09708128566574634 * g +\n\t\t\t0.7140993584005155 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToXyz50;\n","import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nconst f = value => (value > e ? Math.cbrt(value) : (k * value + 16) / 116);\n\nconst convertXyz50ToLab = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet f0 = f(x / D50.X);\n\tlet f1 = f(y / D50.Y);\n\tlet f2 = f(z / D50.Z);\n\n\tlet res = {\n\t\tmode: 'lab',\n\t\tl: 116 * f1 - 16,\n\t\ta: 500 * (f0 - f1),\n\t\tb: 200 * (f1 - f2)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz50ToLab;\n","import convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\nimport convertXyz50ToLab from './convertXyz50ToLab.js';\n\nconst convertRgbToLab = rgb => {\n\tlet res = convertXyz50ToLab(convertRgbToXyz50(rgb));\n\n\t// Fixes achromatic RGB colors having a _slight_ chroma due to floating-point errors\n\t// and approximated computations in sRGB <-> CIELab.\n\t// See: https://github.com/d3/d3-color/pull/46\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToLab;\n","import { Tok } from '../parse.js';\n\nfunction parseLab(color, parsed) {\n\tif (!parsed || parsed[0] !== 'lab') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'lab' };\n\tconst [, l, a, b, alpha] = parsed;\n\tif (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (l.type !== Tok.None) {\n\t\tres.l = Math.min(Math.max(0, l.value), 100);\n\t}\n\tif (a.type !== Tok.None) {\n\t\tres.a = a.type === Tok.Number ? a.value : (a.value * 125) / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value : (b.value * 125) / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseLab;\n","import convertLabToRgb from './convertLabToRgb.js';\nimport convertLabToXyz50 from './convertLabToXyz50.js';\nimport convertRgbToLab from './convertRgbToLab.js';\nimport convertXyz50ToLab from './convertXyz50ToLab.js';\nimport parseLab from './parseLab.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'lab',\n\n\ttoMode: {\n\t\txyz50: convertLabToXyz50,\n\t\trgb: convertLabToRgb\n\t},\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToLab,\n\t\trgb: convertRgbToLab\n\t},\n\n\tchannels: ['l', 'a', 'b', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-100, 100],\n\t\tb: [-100, 100]\n\t},\n\n\tparse: [parseLab],\n\tserialize: c =>\n\t\t`lab(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.a !== undefined ? c.a : 'none'\n\t\t} ${c.b !== undefined ? c.b : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","import convertLab65ToRgb from './convertLab65ToRgb.js';\nimport convertLab65ToXyz65 from './convertLab65ToXyz65.js';\nimport convertRgbToLab65 from './convertRgbToLab65.js';\nimport convertXyz65ToLab65 from './convertXyz65ToLab65.js';\nimport lab from '../lab/definition.js';\n\nconst definition = {\n\t...lab,\n\tmode: 'lab65',\n\n\tparse: ['--lab-d65'],\n\tserialize: '--lab-d65',\n\n\ttoMode: {\n\t\txyz65: convertLab65ToXyz65,\n\t\trgb: convertLab65ToRgb\n\t},\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToLab65,\n\t\trgb: convertRgbToLab65\n\t},\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-86.182, 98.234],\n\t\tb: [-107.86, 94.477]\n\t}\n};\n\nexport default definition;\n","import { Tok } from '../parse.js';\n\nfunction parseLch(color, parsed) {\n\tif (!parsed || parsed[0] !== 'lch') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'lch' };\n\tconst [, l, c, h, alpha] = parsed;\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = Math.min(Math.max(0, l.value), 100);\n\t}\n\tif (c.type !== Tok.None) {\n\t\tres.c = Math.max(\n\t\t\t0,\n\t\t\tc.type === Tok.Number ? c.value : (c.value * 150) / 100\n\t\t);\n\t}\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseLch;\n","import convertLabToLch from './convertLabToLch.js';\nimport convertLchToLab from './convertLchToLab.js';\nimport convertLabToRgb from '../lab/convertLabToRgb.js';\nimport convertRgbToLab from '../lab/convertRgbToLab.js';\nimport parseLch from './parseLch.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'lch',\n\n\ttoMode: {\n\t\tlab: convertLchToLab,\n\t\trgb: c => convertLabToRgb(convertLchToLab(c))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToLab(c)),\n\t\tlab: convertLabToLch\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 150],\n\t\th: [0, 360]\n\t},\n\n\tparse: [parseLch],\n\tserialize: c =>\n\t\t`lch(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.c !== undefined ? c.c : 'none'\n\t\t} ${c.h !== undefined ? c.h : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\nimport lch from '../lch/definition.js';\n\nconst definition = {\n\t...lch,\n\tmode: 'lch65',\n\n\tparse: ['--lch-d65'],\n\tserialize: '--lch-d65',\n\n\ttoMode: {\n\t\tlab65: c => convertLchToLab(c, 'lab65'),\n\t\trgb: c => convertLab65ToRgb(convertLchToLab(c, 'lab65'))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToLab65(c), 'lch65'),\n\t\tlab65: c => convertLabToLch(c, 'lch65')\n\t},\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 133.807],\n\t\th: [0, 360]\n\t}\n};\n\nexport default definition;\n","import normalizeHue from '../util/normalizeHue.js';\n\nconst convertLuvToLchuv = ({ l, u, v, alpha }) => {\n\tif (u === undefined) u = 0;\n\tif (v === undefined) v = 0;\n\tlet c = Math.sqrt(u * u + v * v);\n\tlet res = {\n\t\tmode: 'lchuv',\n\t\tl: l,\n\t\tc: c\n\t};\n\tif (c) {\n\t\tres.h = normalizeHue((Math.atan2(v, u) * 180) / Math.PI);\n\t}\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertLuvToLchuv;\n","const convertLchuvToLuv = ({ l, c, h, alpha }) => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'luv',\n\t\tl: l,\n\t\tu: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tv: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertLchuvToLuv;\n","import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nexport const u_fn = (x, y, z) => (4 * x) / (x + 15 * y + 3 * z);\nexport const v_fn = (x, y, z) => (9 * y) / (x + 15 * y + 3 * z);\n\nexport const un = u_fn(D50.X, D50.Y, D50.Z);\nexport const vn = v_fn(D50.X, D50.Y, D50.Z);\n\nconst l_fn = value => (value <= e ? k * value : 116 * Math.cbrt(value) - 16);\n\nconst convertXyz50ToLuv = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet l = l_fn(y / D50.Y);\n\tlet u = u_fn(x, y, z);\n\tlet v = v_fn(x, y, z);\n\n\t// guard against NaNs produced by `xyz(0 0 0)` black\n\tif (!isFinite(u) || !isFinite(v)) {\n\t\tl = u = v = 0;\n\t} else {\n\t\tu = 13 * l * (u - un);\n\t\tv = 13 * l * (v - vn);\n\t}\n\n\tlet res = {\n\t\tmode: 'luv',\n\t\tl,\n\t\tu,\n\t\tv\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz50ToLuv;\n","import { k } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nexport const u_fn = (x, y, z) => (4 * x) / (x + 15 * y + 3 * z);\nexport const v_fn = (x, y, z) => (9 * y) / (x + 15 * y + 3 * z);\n\nexport const un = u_fn(D50.X, D50.Y, D50.Z);\nexport const vn = v_fn(D50.X, D50.Y, D50.Z);\n\nconst convertLuvToXyz50 = ({ l, u, v, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (l === 0) {\n\t\treturn { mode: 'xyz50', x: 0, y: 0, z: 0 };\n\t}\n\n\tif (u === undefined) u = 0;\n\tif (v === undefined) v = 0;\n\n\tlet up = u / (13 * l) + un;\n\tlet vp = v / (13 * l) + vn;\n\tlet y = D50.Y * (l <= 8 ? l / k : Math.pow((l + 16) / 116, 3));\n\tlet x = (y * (9 * up)) / (4 * vp);\n\tlet z = (y * (12 - 3 * up - 20 * vp)) / (4 * vp);\n\n\tlet res = { mode: 'xyz50', x, y, z };\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLuvToXyz50;\n","/*\n\tCIELChuv color space\n\t--------------------\n\n\tReference: \n\n\t\thttps://en.wikipedia.org/wiki/CIELUV\n */\n\nimport convertLuvToLchuv from './convertLuvToLchuv.js';\nimport convertLchuvToLuv from './convertLchuvToLuv.js';\nimport convertXyz50ToLuv from '../luv/convertXyz50ToLuv.js';\nimport convertLuvToXyz50 from '../luv/convertLuvToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst convertRgbToLchuv = rgb =>\n\tconvertLuvToLchuv(convertXyz50ToLuv(convertRgbToXyz50(rgb)));\nconst convertLchuvToRgb = lchuv =>\n\tconvertXyz50ToRgb(convertLuvToXyz50(convertLchuvToLuv(lchuv)));\n\nconst definition = {\n\tmode: 'lchuv',\n\n\ttoMode: {\n\t\tluv: convertLchuvToLuv,\n\t\trgb: convertLchuvToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToLchuv,\n\t\tluv: convertLuvToLchuv\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tparse: ['--lchuv'],\n\tserialize: '--lchuv',\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 176.956],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n","import rgb from '../rgb/definition.js';\nimport convertRgbToLrgb from './convertRgbToLrgb.js';\nimport convertLrgbToRgb from './convertLrgbToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'lrgb',\n\n\ttoMode: {\n\t\trgb: convertLrgbToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToLrgb\n\t},\n\n\tparse: ['srgb-linear'],\n\tserialize: 'srgb-linear'\n};\n\nexport default definition;\n","/*\n\tCIELUV color space\n\t------------------\n\n\tReference: \n\n\t\thttps://en.wikipedia.org/wiki/CIELUV\n */\n\nimport convertXyz50ToLuv from './convertXyz50ToLuv.js';\nimport convertLuvToXyz50 from './convertLuvToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'luv',\n\n\ttoMode: {\n\t\txyz50: convertLuvToXyz50,\n\t\trgb: luv => convertXyz50ToRgb(convertLuvToXyz50(luv))\n\t},\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToLuv,\n\t\trgb: rgb => convertXyz50ToLuv(convertRgbToXyz50(rgb))\n\t},\n\n\tchannels: ['l', 'u', 'v', 'alpha'],\n\n\tparse: ['--luv'],\n\tserialize: '--luv',\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tu: [-84.936, 175.042],\n\t\tv: [-125.882, 87.243]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\tu: interpolatorLinear,\n\t\tv: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","const convertLrgbToOklab = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet L = Math.cbrt(\n\t\t0.41222147079999993 * r + 0.5363325363 * g + 0.0514459929 * b\n\t);\n\tlet M = Math.cbrt(\n\t\t0.2119034981999999 * r + 0.6806995450999999 * g + 0.1073969566 * b\n\t);\n\tlet S = Math.cbrt(\n\t\t0.08830246189999998 * r + 0.2817188376 * g + 0.6299787005000002 * b\n\t);\n\n\tlet res = {\n\t\tmode: 'oklab',\n\t\tl: 0.2104542553 * L + 0.793617785 * M - 0.0040720468 * S,\n\t\ta: 1.9779984951 * L - 2.428592205 * M + 0.4505937099 * S,\n\t\tb: 0.0259040371 * L + 0.7827717662 * M - 0.808675766 * S\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLrgbToOklab;\n","import convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\nimport convertLrgbToOklab from './convertLrgbToOklab.js';\n\nconst convertRgbToOklab = rgb => {\n\tlet res = convertLrgbToOklab(convertRgbToLrgb(rgb));\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToOklab;\n","const convertOklabToLrgb = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet L = Math.pow(\n\t\tl * 0.99999999845051981432 +\n\t\t\t0.39633779217376785678 * a +\n\t\t\t0.21580375806075880339 * b,\n\t\t3\n\t);\n\tlet M = Math.pow(\n\t\tl * 1.0000000088817607767 -\n\t\t\t0.1055613423236563494 * a -\n\t\t\t0.063854174771705903402 * b,\n\t\t3\n\t);\n\tlet S = Math.pow(\n\t\tl * 1.0000000546724109177 -\n\t\t\t0.089484182094965759684 * a -\n\t\t\t1.2914855378640917399 * b,\n\t\t3\n\t);\n\n\tlet res = {\n\t\tmode: 'lrgb',\n\t\tr:\n\t\t\t+4.076741661347994 * L -\n\t\t\t3.307711590408193 * M +\n\t\t\t0.230969928729428 * S,\n\t\tg:\n\t\t\t-1.2684380040921763 * L +\n\t\t\t2.6097574006633715 * M -\n\t\t\t0.3413193963102197 * S,\n\t\tb:\n\t\t\t-0.004196086541837188 * L -\n\t\t\t0.7034186144594493 * M +\n\t\t\t1.7076147009309444 * S\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertOklabToLrgb;\n","import convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\nimport convertOklabToLrgb from './convertOklabToLrgb.js';\n\nconst convertOklabToRgb = c => convertLrgbToRgb(convertOklabToLrgb(c));\n\nexport default convertOklabToRgb;\n","/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\n\nexport function toe(x) {\n\tconst k_1 = 0.206;\n\tconst k_2 = 0.03;\n\tconst k_3 = (1 + k_1) / (1 + k_2);\n\treturn (\n\t\t0.5 *\n\t\t(k_3 * x -\n\t\t\tk_1 +\n\t\t\tMath.sqrt((k_3 * x - k_1) * (k_3 * x - k_1) + 4 * k_2 * k_3 * x))\n\t);\n}\n\nexport function toe_inv(x) {\n\tconst k_1 = 0.206;\n\tconst k_2 = 0.03;\n\tconst k_3 = (1 + k_1) / (1 + k_2);\n\treturn (x * x + k_1 * x) / (k_3 * (x + k_2));\n}\n\n// Finds the maximum saturation possible for a given hue that fits in sRGB\n// Saturation here is defined as S = C/L\n// a and b must be normalized so a^2 + b^2 == 1\nfunction compute_max_saturation(a, b) {\n\t// Max saturation will be when one of r, g or b goes below zero.\n\n\t// Select different coefficients depending on which component goes below zero first\n\tlet k0, k1, k2, k3, k4, wl, wm, ws;\n\n\tif (-1.88170328 * a - 0.80936493 * b > 1) {\n\t\t// Red component\n\t\tk0 = +1.19086277;\n\t\tk1 = +1.76576728;\n\t\tk2 = +0.59662641;\n\t\tk3 = +0.75515197;\n\t\tk4 = +0.56771245;\n\t\twl = +4.0767416621;\n\t\twm = -3.3077115913;\n\t\tws = +0.2309699292;\n\t} else if (1.81444104 * a - 1.19445276 * b > 1) {\n\t\t// Green component\n\t\tk0 = +0.73956515;\n\t\tk1 = -0.45954404;\n\t\tk2 = +0.08285427;\n\t\tk3 = +0.1254107;\n\t\tk4 = +0.14503204;\n\t\twl = -1.2684380046;\n\t\twm = +2.6097574011;\n\t\tws = -0.3413193965;\n\t} else {\n\t\t// Blue component\n\t\tk0 = +1.35733652;\n\t\tk1 = -0.00915799;\n\t\tk2 = -1.1513021;\n\t\tk3 = -0.50559606;\n\t\tk4 = +0.00692167;\n\t\twl = -0.0041960863;\n\t\twm = -0.7034186147;\n\t\tws = +1.707614701;\n\t}\n\n\t// Approximate max saturation using a polynomial:\n\tlet S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;\n\n\t// Do one step Halley's method to get closer\n\t// this gives an error less than 10e6, except for some blue hues where the dS/dh is close to infinite\n\t// this should be sufficient for most applications, otherwise do two/three steps\n\n\tlet k_l = +0.3963377774 * a + 0.2158037573 * b;\n\tlet k_m = -0.1055613458 * a - 0.0638541728 * b;\n\tlet k_s = -0.0894841775 * a - 1.291485548 * b;\n\n\t{\n\t\tlet l_ = 1 + S * k_l;\n\t\tlet m_ = 1 + S * k_m;\n\t\tlet s_ = 1 + S * k_s;\n\n\t\tlet l = l_ * l_ * l_;\n\t\tlet m = m_ * m_ * m_;\n\t\tlet s = s_ * s_ * s_;\n\n\t\tlet l_dS = 3 * k_l * l_ * l_;\n\t\tlet m_dS = 3 * k_m * m_ * m_;\n\t\tlet s_dS = 3 * k_s * s_ * s_;\n\n\t\tlet l_dS2 = 6 * k_l * k_l * l_;\n\t\tlet m_dS2 = 6 * k_m * k_m * m_;\n\t\tlet s_dS2 = 6 * k_s * k_s * s_;\n\n\t\tlet f = wl * l + wm * m + ws * s;\n\t\tlet f1 = wl * l_dS + wm * m_dS + ws * s_dS;\n\t\tlet f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;\n\n\t\tS = S - (f * f1) / (f1 * f1 - 0.5 * f * f2);\n\t}\n\n\treturn S;\n}\n\nexport function find_cusp(a, b) {\n\t// First, find the maximum saturation (saturation S = C/L)\n\tlet S_cusp = compute_max_saturation(a, b);\n\n\t// Convert to linear sRGB to find the first point where at least one of r,g or b >= 1:\n\tlet rgb = convertOklabToLrgb({ l: 1, a: S_cusp * a, b: S_cusp * b });\n\tlet L_cusp = Math.cbrt(1 / Math.max(rgb.r, rgb.g, rgb.b));\n\tlet C_cusp = L_cusp * S_cusp;\n\n\treturn [L_cusp, C_cusp];\n}\n\n// Finds intersection of the line defined by\n// L = L0 * (1 - t) + t * L1;\n// C = t * C1;\n// a and b must be normalized so a^2 + b^2 == 1\nfunction find_gamut_intersection(a, b, L1, C1, L0, cusp = null) {\n\tif (!cusp) {\n\t\t// Find the cusp of the gamut triangle\n\t\tcusp = find_cusp(a, b);\n\t}\n\n\t// Find the intersection for upper and lower half seprately\n\tlet t;\n\tif ((L1 - L0) * cusp[1] - (cusp[0] - L0) * C1 <= 0) {\n\t\t// Lower half\n\n\t\tt = (cusp[1] * L0) / (C1 * cusp[0] + cusp[1] * (L0 - L1));\n\t} else {\n\t\t// Upper half\n\n\t\t// First intersect with triangle\n\t\tt = (cusp[1] * (L0 - 1)) / (C1 * (cusp[0] - 1) + cusp[1] * (L0 - L1));\n\n\t\t// Then one step Halley's method\n\t\t{\n\t\t\tlet dL = L1 - L0;\n\t\t\tlet dC = C1;\n\n\t\t\tlet k_l = +0.3963377774 * a + 0.2158037573 * b;\n\t\t\tlet k_m = -0.1055613458 * a - 0.0638541728 * b;\n\t\t\tlet k_s = -0.0894841775 * a - 1.291485548 * b;\n\n\t\t\tlet l_dt = dL + dC * k_l;\n\t\t\tlet m_dt = dL + dC * k_m;\n\t\t\tlet s_dt = dL + dC * k_s;\n\n\t\t\t// If higher accuracy is required, 2 or 3 iterations of the following block can be used:\n\t\t\t{\n\t\t\t\tlet L = L0 * (1 - t) + t * L1;\n\t\t\t\tlet C = t * C1;\n\n\t\t\t\tlet l_ = L + C * k_l;\n\t\t\t\tlet m_ = L + C * k_m;\n\t\t\t\tlet s_ = L + C * k_s;\n\n\t\t\t\tlet l = l_ * l_ * l_;\n\t\t\t\tlet m = m_ * m_ * m_;\n\t\t\t\tlet s = s_ * s_ * s_;\n\n\t\t\t\tlet ldt = 3 * l_dt * l_ * l_;\n\t\t\t\tlet mdt = 3 * m_dt * m_ * m_;\n\t\t\t\tlet sdt = 3 * s_dt * s_ * s_;\n\n\t\t\t\tlet ldt2 = 6 * l_dt * l_dt * l_;\n\t\t\t\tlet mdt2 = 6 * m_dt * m_dt * m_;\n\t\t\t\tlet sdt2 = 6 * s_dt * s_dt * s_;\n\n\t\t\t\tlet r =\n\t\t\t\t\t4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s - 1;\n\t\t\t\tlet r1 =\n\t\t\t\t\t4.0767416621 * ldt -\n\t\t\t\t\t3.3077115913 * mdt +\n\t\t\t\t\t0.2309699292 * sdt;\n\t\t\t\tlet r2 =\n\t\t\t\t\t4.0767416621 * ldt2 -\n\t\t\t\t\t3.3077115913 * mdt2 +\n\t\t\t\t\t0.2309699292 * sdt2;\n\n\t\t\t\tlet u_r = r1 / (r1 * r1 - 0.5 * r * r2);\n\t\t\t\tlet t_r = -r * u_r;\n\n\t\t\t\tlet g =\n\t\t\t\t\t-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s - 1;\n\t\t\t\tlet g1 =\n\t\t\t\t\t-1.2684380046 * ldt +\n\t\t\t\t\t2.6097574011 * mdt -\n\t\t\t\t\t0.3413193965 * sdt;\n\t\t\t\tlet g2 =\n\t\t\t\t\t-1.2684380046 * ldt2 +\n\t\t\t\t\t2.6097574011 * mdt2 -\n\t\t\t\t\t0.3413193965 * sdt2;\n\n\t\t\t\tlet u_g = g1 / (g1 * g1 - 0.5 * g * g2);\n\t\t\t\tlet t_g = -g * u_g;\n\n\t\t\t\tlet b =\n\t\t\t\t\t-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s - 1;\n\t\t\t\tlet b1 =\n\t\t\t\t\t-0.0041960863 * ldt -\n\t\t\t\t\t0.7034186147 * mdt +\n\t\t\t\t\t1.707614701 * sdt;\n\t\t\t\tlet b2 =\n\t\t\t\t\t-0.0041960863 * ldt2 -\n\t\t\t\t\t0.7034186147 * mdt2 +\n\t\t\t\t\t1.707614701 * sdt2;\n\n\t\t\t\tlet u_b = b1 / (b1 * b1 - 0.5 * b * b2);\n\t\t\t\tlet t_b = -b * u_b;\n\n\t\t\t\tt_r = u_r >= 0 ? t_r : 10e5;\n\t\t\t\tt_g = u_g >= 0 ? t_g : 10e5;\n\t\t\t\tt_b = u_b >= 0 ? t_b : 10e5;\n\n\t\t\t\tt += Math.min(t_r, Math.min(t_g, t_b));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn t;\n}\n\nexport function get_ST_max(a_, b_, cusp = null) {\n\tif (!cusp) {\n\t\tcusp = find_cusp(a_, b_);\n\t}\n\tlet L = cusp[0];\n\tlet C = cusp[1];\n\treturn [C / L, C / (1 - L)];\n}\n\nexport function get_ST_mid(a_, b_) {\n\tlet S =\n\t\t0.11516993 +\n\t\t1 /\n\t\t\t(+7.4477897 +\n\t\t\t\t4.1590124 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(-2.19557347 +\n\t\t\t\t\t\t1.75198401 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-2.13704948 -\n\t\t\t\t\t\t\t\t10.02301043 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(-4.24894561 +\n\t\t\t\t\t\t\t\t\t\t5.38770819 * b_ +\n\t\t\t\t\t\t\t\t\t\t4.69891013 * a_))));\n\n\tlet T =\n\t\t0.11239642 +\n\t\t1 /\n\t\t\t(+1.6132032 -\n\t\t\t\t0.68124379 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(+0.40370612 +\n\t\t\t\t\t\t0.90148123 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-0.27087943 +\n\t\t\t\t\t\t\t\t0.6122399 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(+0.00299215 -\n\t\t\t\t\t\t\t\t\t\t0.45399568 * b_ -\n\t\t\t\t\t\t\t\t\t\t0.14661872 * a_))));\n\n\treturn [S, T];\n}\n\nexport function get_Cs(L, a_, b_) {\n\tlet cusp = find_cusp(a_, b_);\n\n\tlet C_max = find_gamut_intersection(a_, b_, L, 1, L, cusp);\n\tlet ST_max = get_ST_max(a_, b_, cusp);\n\n\tlet S_mid =\n\t\t0.11516993 +\n\t\t1 /\n\t\t\t(+7.4477897 +\n\t\t\t\t4.1590124 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(-2.19557347 +\n\t\t\t\t\t\t1.75198401 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-2.13704948 -\n\t\t\t\t\t\t\t\t10.02301043 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(-4.24894561 +\n\t\t\t\t\t\t\t\t\t\t5.38770819 * b_ +\n\t\t\t\t\t\t\t\t\t\t4.69891013 * a_))));\n\n\tlet T_mid =\n\t\t0.11239642 +\n\t\t1 /\n\t\t\t(+1.6132032 -\n\t\t\t\t0.68124379 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(+0.40370612 +\n\t\t\t\t\t\t0.90148123 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-0.27087943 +\n\t\t\t\t\t\t\t\t0.6122399 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(+0.00299215 -\n\t\t\t\t\t\t\t\t\t\t0.45399568 * b_ -\n\t\t\t\t\t\t\t\t\t\t0.14661872 * a_))));\n\n\tlet k = C_max / Math.min(L * ST_max[0], (1 - L) * ST_max[1]);\n\n\tlet C_a = L * S_mid;\n\tlet C_b = (1 - L) * T_mid;\n\tlet C_mid =\n\t\t0.9 *\n\t\tk *\n\t\tMath.sqrt(\n\t\t\tMath.sqrt(\n\t\t\t\t1 / (1 / (C_a * C_a * C_a * C_a) + 1 / (C_b * C_b * C_b * C_b))\n\t\t\t)\n\t\t);\n\n\tC_a = L * 0.4;\n\tC_b = (1 - L) * 0.8;\n\tlet C_0 = Math.sqrt(1 / (1 / (C_a * C_a) + 1 / (C_b * C_b)));\n\treturn [C_0, C_mid, C_max];\n}\n","/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport normalizeHue from '../util/normalizeHue.js';\nimport { get_Cs, toe } from './helpers.js';\n\nexport default function convertOklabToOkhsl(lab) {\n\tconst l = lab.l !== undefined ? lab.l : 0;\n\tconst a = lab.a !== undefined ? lab.a : 0;\n\tconst b = lab.b !== undefined ? lab.b : 0;\n\n\tconst ret = { mode: 'okhsl', l: toe(l) };\n\n\tif (lab.alpha !== undefined) {\n\t\tret.alpha = lab.alpha;\n\t}\n\tlet c = Math.sqrt(a * a + b * b);\n\tif (!c) {\n\t\tret.s = 0;\n\t\treturn ret;\n\t}\n\tlet [C_0, C_mid, C_max] = get_Cs(l, a / c, b / c);\n\tlet s;\n\tif (c < C_mid) {\n\t\tlet k_0 = 0;\n\t\tlet k_1 = 0.8 * C_0;\n\t\tlet k_2 = 1 - k_1 / C_mid;\n\t\tlet t = (c - k_0) / (k_1 + k_2 * (c - k_0));\n\t\ts = t * 0.8;\n\t} else {\n\t\tlet k_0 = C_mid;\n\t\tlet k_1 = (0.2 * C_mid * C_mid * 1.25 * 1.25) / C_0;\n\t\tlet k_2 = 1 - k_1 / (C_max - C_mid);\n\t\tlet t = (c - k_0) / (k_1 + k_2 * (c - k_0));\n\t\ts = 0.8 + 0.2 * t;\n\t}\n\tif (s) {\n\t\tret.s = s;\n\t\tret.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\treturn ret;\n}\n","/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport { toe_inv, get_Cs } from './helpers.js';\n\nexport default function convertOkhslToOklab(hsl) {\n\tlet h = hsl.h !== undefined ? hsl.h : 0;\n\tlet s = hsl.s !== undefined ? hsl.s : 0;\n\tlet l = hsl.l !== undefined ? hsl.l : 0;\n\n\tconst ret = { mode: 'oklab', l: toe_inv(l) };\n\n\tif (hsl.alpha !== undefined) {\n\t\tret.alpha = hsl.alpha;\n\t}\n\n\tif (!s || l === 1) {\n\t\tret.a = ret.b = 0;\n\t\treturn ret;\n\t}\n\n\tlet a_ = Math.cos((h / 180) * Math.PI);\n\tlet b_ = Math.sin((h / 180) * Math.PI);\n\tlet [C_0, C_mid, C_max] = get_Cs(ret.l, a_, b_);\n\tlet t, k_0, k_1, k_2;\n\tif (s < 0.8) {\n\t\tt = 1.25 * s;\n\t\tk_0 = 0;\n\t\tk_1 = 0.8 * C_0;\n\t\tk_2 = 1 - k_1 / C_mid;\n\t} else {\n\t\tt = 5 * (s - 0.8);\n\t\tk_0 = C_mid;\n\t\tk_1 = (0.2 * C_mid * C_mid * 1.25 * 1.25) / C_0;\n\t\tk_2 = 1 - k_1 / (C_max - C_mid);\n\t}\n\tlet C = k_0 + (t * k_1) / (1 - k_2 * t);\n\tret.a = C * a_;\n\tret.b = C * b_;\n\n\treturn ret;\n}\n","import convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertOklabToOkhsl from './convertOklabToOkhsl.js';\nimport convertOkhslToOklab from './convertOkhslToOklab.js';\n\nimport modeHsl from '../hsl/definition.js';\n\nconst modeOkhsl = {\n\t...modeHsl,\n\tmode: 'okhsl',\n\tchannels: ['h', 's', 'l', 'alpha'],\n\tparse: ['--okhsl'],\n\tserialize: '--okhsl',\n\tfromMode: {\n\t\toklab: convertOklabToOkhsl,\n\t\trgb: c => convertOklabToOkhsl(convertRgbToOklab(c))\n\t},\n\ttoMode: {\n\t\toklab: convertOkhslToOklab,\n\t\trgb: c => convertOklabToRgb(convertOkhslToOklab(c))\n\t}\n};\n\nexport default modeOkhsl;\n","/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport normalizeHue from '../util/normalizeHue.js';\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\nimport { get_ST_max, toe_inv, toe } from '../okhsl/helpers.js';\n\nexport default function convertOklabToOkhsv(lab) {\n\tlet l = lab.l !== undefined ? lab.l : 0;\n\tlet a = lab.a !== undefined ? lab.a : 0;\n\tlet b = lab.b !== undefined ? lab.b : 0;\n\n\tlet c = Math.sqrt(a * a + b * b);\n\n\t// TODO: c = 0\n\tlet a_ = c ? a / c : 1;\n\tlet b_ = c ? b / c : 1;\n\n\tlet [S_max, T] = get_ST_max(a_, b_);\n\tlet S_0 = 0.5;\n\tlet k = 1 - S_0 / S_max;\n\n\tlet t = T / (c + l * T);\n\tlet L_v = t * l;\n\tlet C_v = t * c;\n\n\tlet L_vt = toe_inv(L_v);\n\tlet C_vt = (C_v * L_vt) / L_v;\n\n\tlet rgb_scale = convertOklabToLrgb({ l: L_vt, a: a_ * C_vt, b: b_ * C_vt });\n\tlet scale_L = Math.cbrt(\n\t\t1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0)\n\t);\n\n\tl = l / scale_L;\n\tc = ((c / scale_L) * toe(l)) / l;\n\tl = toe(l);\n\n\tconst ret = {\n\t\tmode: 'okhsv',\n\t\ts: c ? ((S_0 + T) * C_v) / (T * S_0 + T * k * C_v) : 0,\n\t\tv: l ? l / L_v : 0\n\t};\n\tif (ret.s) {\n\t\tret.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\tif (lab.alpha !== undefined) {\n\t\tret.alpha = lab.alpha;\n\t}\n\treturn ret;\n}\n","/*\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\nimport { get_ST_max, toe_inv } from '../okhsl/helpers.js';\n\nexport default function convertOkhsvToOklab(hsv) {\n\tconst ret = { mode: 'oklab' };\n\tif (hsv.alpha !== undefined) {\n\t\tret.alpha = hsv.alpha;\n\t}\n\n\tconst h = hsv.h !== undefined ? hsv.h : 0;\n\tconst s = hsv.s !== undefined ? hsv.s : 0;\n\tconst v = hsv.v !== undefined ? hsv.v : 0;\n\n\tconst a_ = Math.cos((h / 180) * Math.PI);\n\tconst b_ = Math.sin((h / 180) * Math.PI);\n\n\tconst [S_max, T] = get_ST_max(a_, b_);\n\tconst S_0 = 0.5;\n\tconst k = 1 - S_0 / S_max;\n\tconst L_v = 1 - (s * S_0) / (S_0 + T - T * k * s);\n\tconst C_v = (s * T * S_0) / (S_0 + T - T * k * s);\n\n\tconst L_vt = toe_inv(L_v);\n\tconst C_vt = (C_v * L_vt) / L_v;\n\tconst rgb_scale = convertOklabToLrgb({\n\t\tl: L_vt,\n\t\ta: a_ * C_vt,\n\t\tb: b_ * C_vt\n\t});\n\tconst scale_L = Math.cbrt(\n\t\t1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0)\n\t);\n\n\tconst L_new = toe_inv(v * L_v);\n\tconst C = (C_v * L_new) / L_v;\n\n\tret.l = L_new * scale_L;\n\tret.a = C * a_ * scale_L;\n\tret.b = C * b_ * scale_L;\n\n\treturn ret;\n}\n","import convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertOklabToOkhsv from './convertOklabToOkhsv.js';\nimport convertOkhsvToOklab from './convertOkhsvToOklab.js';\n\nimport modeHsv from '../hsv/definition.js';\n\nconst modeOkhsv = {\n\t...modeHsv,\n\tmode: 'okhsv',\n\tchannels: ['h', 's', 'v', 'alpha'],\n\tparse: ['--okhsv'],\n\tserialize: '--okhsv',\n\tfromMode: {\n\t\toklab: convertOklabToOkhsv,\n\t\trgb: c => convertOklabToOkhsv(convertRgbToOklab(c))\n\t},\n\ttoMode: {\n\t\toklab: convertOkhsvToOklab,\n\t\trgb: c => convertOklabToRgb(convertOkhsvToOklab(c))\n\t}\n};\n\nexport default modeOkhsv;\n","import { Tok } from '../parse.js';\n\nfunction parseOklab(color, parsed) {\n\tif (!parsed || parsed[0] !== 'oklab') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'oklab' };\n\tconst [, l, a, b, alpha] = parsed;\n\tif (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (l.type !== Tok.None) {\n\t\tres.l = Math.min(\n\t\t\tMath.max(0, l.type === Tok.Number ? l.value : l.value / 100),\n\t\t\t1\n\t\t);\n\t}\n\tif (a.type !== Tok.None) {\n\t\tres.a = a.type === Tok.Number ? a.value : (a.value * 0.4) / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value : (b.value * 0.4) / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseOklab;\n","import convertOklabToLrgb from './convertOklabToLrgb.js';\nimport convertLrgbToOklab from './convertLrgbToOklab.js';\nimport convertRgbToOklab from './convertRgbToOklab.js';\nimport convertOklabToRgb from './convertOklabToRgb.js';\nimport parseOklab from './parseOklab.js';\n\nimport lab from '../lab/definition.js';\n\n/*\n\tOklab, a perceptual color space for image processing by Björn Ottosson\n\tReference: https://bottosson.github.io/posts/oklab/\n */\n\nconst definition = {\n\t...lab,\n\tmode: 'oklab',\n\n\ttoMode: {\n\t\tlrgb: convertOklabToLrgb,\n\t\trgb: convertOklabToRgb\n\t},\n\n\tfromMode: {\n\t\tlrgb: convertLrgbToOklab,\n\t\trgb: convertRgbToOklab\n\t},\n\n\tranges: {\n\t\tl: [0, 1],\n\t\ta: [-0.4, 0.4],\n\t\tb: [-0.4, 0.4]\n\t},\n\n\tparse: [parseOklab],\n\tserialize: c =>\n\t\t`oklab(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.a !== undefined ? c.a : 'none'\n\t\t} ${c.b !== undefined ? c.b : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`\n};\n\nexport default definition;\n","import { Tok } from '../parse.js';\n\nfunction parseOklch(color, parsed) {\n\tif (!parsed || parsed[0] !== 'oklch') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'oklch' };\n\tconst [, l, c, h, alpha] = parsed;\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = Math.min(\n\t\t\tMath.max(0, l.type === Tok.Number ? l.value : l.value / 100),\n\t\t\t1\n\t\t);\n\t}\n\tif (c.type !== Tok.None) {\n\t\tres.c = Math.max(\n\t\t\t0,\n\t\t\tc.type === Tok.Number ? c.value : (c.value * 0.4) / 100\n\t\t);\n\t}\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseOklch;\n","import lch from '../lch/definition.js';\nimport convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport parseOklch from './parseOklch.js';\n\nconst definition = {\n\t...lch,\n\tmode: 'oklch',\n\n\ttoMode: {\n\t\toklab: c => convertLchToLab(c, 'oklab'),\n\t\trgb: c => convertOklabToRgb(convertLchToLab(c, 'oklab'))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToOklab(c), 'oklch'),\n\t\toklab: c => convertLabToLch(c, 'oklch')\n\t},\n\n\tparse: [parseOklch],\n\tserialize: c =>\n\t\t`oklch(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.c !== undefined ? c.c : 'none'\n\t\t} ${c.h !== undefined ? c.h : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tranges: {\n\t\tl: [0, 1],\n\t\tc: [0, 0.4],\n\t\th: [0, 360]\n\t}\n};\n\nexport default definition;\n","/*\n\tConvert Display P3 values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertP3ToXyz65 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.486570948648216 * r +\n\t\t\t0.265667693169093 * g +\n\t\t\t0.1982172852343625 * b,\n\t\ty:\n\t\t\t0.2289745640697487 * r +\n\t\t\t0.6917385218365062 * g +\n\t\t\t0.079286914093745 * b,\n\t\tz: 0.0 * r + 0.0451133818589026 * g + 1.043944368900976 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertP3ToXyz65;\n","/*\n\tCIE XYZ D65 values to Display P3.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz65ToP3 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb(\n\t\t{\n\t\t\tr:\n\t\t\t\tx * 2.4934969119414263 -\n\t\t\t\ty * 0.9313836179191242 -\n\t\t\t\t0.402710784450717 * z,\n\t\t\tg:\n\t\t\t\tx * -0.8294889695615749 +\n\t\t\t\ty * 1.7626640603183465 +\n\t\t\t\t0.0236246858419436 * z,\n\t\t\tb:\n\t\t\t\tx * 0.0358458302437845 -\n\t\t\t\ty * 0.0761723892680418 +\n\t\t\t\t0.9568845240076871 * z\n\t\t},\n\t\t'p3'\n\t);\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToP3;\n","import rgb from '../rgb/definition.js';\nimport convertP3ToXyz65 from './convertP3ToXyz65.js';\nimport convertXyz65ToP3 from './convertXyz65ToP3.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'p3',\n\tparse: ['display-p3'],\n\tserialize: 'display-p3',\n\n\tfromMode: {\n\t\trgb: color => convertXyz65ToP3(convertRgbToXyz65(color)),\n\t\txyz65: convertXyz65ToP3\n\t},\n\n\ttoMode: {\n\t\trgb: color => convertXyz65ToRgb(convertP3ToXyz65(color)),\n\t\txyz65: convertP3ToXyz65\n\t}\n};\n\nexport default definition;\n","/*\n\tConvert CIE XYZ D50 values to ProPhoto RGB\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst gamma = v => {\n\tlet abs = Math.abs(v);\n\tif (abs >= 1 / 512) {\n\t\treturn Math.sign(v) * Math.pow(abs, 1 / 1.8);\n\t}\n\treturn 16 * v;\n};\n\nconst convertXyz50ToProphoto = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'prophoto',\n\t\tr: gamma(\n\t\t\tx * 1.3457868816471585 -\n\t\t\t\ty * 0.2555720873797946 -\n\t\t\t\t0.0511018649755453 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.5446307051249019 +\n\t\t\t\ty * 1.5082477428451466 +\n\t\t\t\t0.0205274474364214 * z\n\t\t),\n\t\tb: gamma(x * 0.0 + y * 0.0 + 1.2119675456389452 * z)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToProphoto;\n","/*\n\tConvert ProPhoto RGB values to CIE XYZ D50\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst linearize = (v = 0) => {\n\tlet abs = Math.abs(v);\n\tif (abs >= 16 / 512) {\n\t\treturn Math.sign(v) * Math.pow(abs, 1.8);\n\t}\n\treturn v / 16;\n};\n\nconst convertProphotoToXyz50 = prophoto => {\n\tlet r = linearize(prophoto.r);\n\tlet g = linearize(prophoto.g);\n\tlet b = linearize(prophoto.b);\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t0.7977666449006423 * r +\n\t\t\t0.1351812974005331 * g +\n\t\t\t0.0313477341283922 * b,\n\t\ty:\n\t\t\t0.2880748288194013 * r +\n\t\t\t0.7118352342418731 * g +\n\t\t\t0.0000899369387256 * b,\n\t\tz: 0 * r + 0 * g + 0.8251046025104602 * b\n\t};\n\tif (prophoto.alpha !== undefined) {\n\t\tres.alpha = prophoto.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertProphotoToXyz50;\n","import rgb from '../rgb/definition.js';\n\nimport convertXyz50ToProphoto from './convertXyz50ToProphoto.js';\nimport convertProphotoToXyz50 from './convertProphotoToXyz50.js';\n\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\n/*\n\tProPhoto RGB Color space\n\n\tReferences:\n\t\t* https://en.wikipedia.org/wiki/ProPhoto_RGB_color_space\n */\n\nconst definition = {\n\t...rgb,\n\tmode: 'prophoto',\n\tparse: ['prophoto-rgb'],\n\tserialize: 'prophoto-rgb',\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToProphoto,\n\t\trgb: color => convertXyz50ToProphoto(convertRgbToXyz50(color))\n\t},\n\n\ttoMode: {\n\t\txyz50: convertProphotoToXyz50,\n\t\trgb: color => convertXyz50ToRgb(convertProphotoToXyz50(color))\n\t}\n};\n\nexport default definition;\n","/*\n\tConvert CIE XYZ D65 values to Rec. 2020\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.itu.int/rec/R-REC-BT.2020/en\n*/\n\nconst α = 1.09929682680944;\nconst β = 0.018053968510807;\nconst gamma = v => {\n\tconst abs = Math.abs(v);\n\tif (abs > β) {\n\t\treturn (Math.sign(v) || 1) * (α * Math.pow(abs, 0.45) - (α - 1));\n\t}\n\treturn 4.5 * v;\n};\n\nconst convertXyz65ToRec2020 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'rec2020',\n\t\tr: gamma(\n\t\t\tx * 1.7166511879712683 -\n\t\t\t\ty * 0.3556707837763925 -\n\t\t\t\t0.2533662813736599 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.6666843518324893 +\n\t\t\t\ty * 1.6164812366349395 +\n\t\t\t\t0.0157685458139111 * z\n\t\t),\n\t\tb: gamma(\n\t\t\tx * 0.0176398574453108 -\n\t\t\t\ty * 0.0427706132578085 +\n\t\t\t\t0.9421031212354739 * z\n\t\t)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToRec2020;\n","/*\n\tConvert Rec. 2020 values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.itu.int/rec/R-REC-BT.2020/en\n*/\n\nconst α = 1.09929682680944;\nconst β = 0.018053968510807;\n\nconst linearize = (v = 0) => {\n\tlet abs = Math.abs(v);\n\tif (abs < β * 4.5) {\n\t\treturn v / 4.5;\n\t}\n\treturn (Math.sign(v) || 1) * Math.pow((abs + α - 1) / α, 1 / 0.45);\n};\n\nconst convertRec2020ToXyz65 = rec2020 => {\n\tlet r = linearize(rec2020.r);\n\tlet g = linearize(rec2020.g);\n\tlet b = linearize(rec2020.b);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.6369580483012911 * r +\n\t\t\t0.1446169035862083 * g +\n\t\t\t0.1688809751641721 * b,\n\t\ty:\n\t\t\t0.262700212011267 * r +\n\t\t\t0.6779980715188708 * g +\n\t\t\t0.059301716469862 * b,\n\t\tz: 0 * r + 0.0280726930490874 * g + 1.0609850577107909 * b\n\t};\n\tif (rec2020.alpha !== undefined) {\n\t\tres.alpha = rec2020.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRec2020ToXyz65;\n","import rgb from '../rgb/definition.js';\n\nimport convertXyz65ToRec2020 from './convertXyz65ToRec2020.js';\nimport convertRec2020ToXyz65 from './convertRec2020ToXyz65.js';\n\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'rec2020',\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToRec2020,\n\t\trgb: color => convertXyz65ToRec2020(convertRgbToXyz65(color))\n\t},\n\n\ttoMode: {\n\t\txyz65: convertRec2020ToXyz65,\n\t\trgb: color => convertXyz65ToRgb(convertRec2020ToXyz65(color))\n\t},\n\n\tparse: ['rec2020'],\n\tserialize: 'rec2020'\n};\n\nexport default definition;\n","export const bias = 0.00379307325527544933;\nexport const bias_cbrt = Math.cbrt(bias);\n","import convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\nimport { bias, bias_cbrt } from './constants.js';\n\nconst transfer = v => Math.cbrt(v) - bias_cbrt;\n\nconst convertRgbToXyb = color => {\n\tconst { r, g, b, alpha } = convertRgbToLrgb(color);\n\tconst l = transfer(0.3 * r + 0.622 * g + 0.078 * b + bias);\n\tconst m = transfer(0.23 * r + 0.692 * g + 0.078 * b + bias);\n\tconst s = transfer(\n\t\t0.24342268924547819 * r +\n\t\t\t0.20476744424496821 * g +\n\t\t\t0.5518098665095536 * b +\n\t\t\tbias\n\t);\n\tconst res = {\n\t\tmode: 'xyb',\n\t\tx: (l - m) / 2,\n\t\ty: (l + m) / 2,\n\t\t/* Apply default chroma from luma (subtract Y from B) */\n\t\tb: s - (l + m) / 2\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToXyb;\n","import convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\nimport { bias, bias_cbrt } from './constants.js';\n\nconst transfer = v => Math.pow(v + bias_cbrt, 3);\n\nconst convertXybToRgb = ({ x, y, b, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (b === undefined) b = 0;\n\tconst l = transfer(x + y) - bias;\n\tconst m = transfer(y - x) - bias;\n\t/* Account for chroma from luma: add Y back to B */\n\tconst s = transfer(b + y) - bias;\n\n\tconst res = convertLrgbToRgb({\n\t\tr:\n\t\t\t11.031566904639861 * l -\n\t\t\t9.866943908131562 * m -\n\t\t\t0.16462299650829934 * s,\n\t\tg:\n\t\t\t-3.2541473810744237 * l +\n\t\t\t4.418770377582723 * m -\n\t\t\t0.16462299650829934 * s,\n\t\tb:\n\t\t\t-3.6588512867136815 * l +\n\t\t\t2.7129230459360922 * m +\n\t\t\t1.9459282407775895 * s\n\t});\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertXybToRgb;\n","import { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport convertRgbToXyb from './convertRgbToXyb.js';\nimport convertXybToRgb from './convertXybToRgb.js';\n\n/*\n\tThe XYB color space, used in JPEG XL.\n\tReference: https://ds.jpeg.org/whitepapers/jpeg-xl-whitepaper.pdf\n*/\n\nconst definition = {\n\tmode: 'xyb',\n\tchannels: ['x', 'y', 'b', 'alpha'],\n\tparse: ['--xyb'],\n\tserialize: '--xyb',\n\n\ttoMode: {\n\t\trgb: convertXybToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyb\n\t},\n\n\tranges: {\n\t\tx: [-0.0154, 0.0281],\n\t\ty: [0, 0.8453],\n\t\tb: [-0.2778, 0.388]\n\t},\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","/*\n\tThe XYZ D50 color space\n\t-----------------------\n */\n\nimport convertXyz50ToRgb from './convertXyz50ToRgb.js';\nimport convertXyz50ToLab from '../lab/convertXyz50ToLab.js';\nimport convertRgbToXyz50 from './convertRgbToXyz50.js';\nimport convertLabToXyz50 from '../lab/convertLabToXyz50.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'xyz50',\n\tparse: ['xyz-d50'],\n\tserialize: 'xyz-d50',\n\n\ttoMode: {\n\t\trgb: convertXyz50ToRgb,\n\t\tlab: convertXyz50ToLab\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyz50,\n\t\tlab: convertLabToXyz50\n\t},\n\n\tchannels: ['x', 'y', 'z', 'alpha'],\n\n\tranges: {\n\t\tx: [0, 0.964],\n\t\ty: [0, 0.999],\n\t\tz: [0, 0.825]\n\t},\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tz: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","/*\n\tChromatic adaptation of CIE XYZ from D65 to D50 white point\n\tusing the Bradford method.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html\t\n*/\n\nconst convertXyz65ToXyz50 = xyz65 => {\n\tlet { x, y, z, alpha } = xyz65;\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t1.0479298208405488 * x +\n\t\t\t0.0229467933410191 * y -\n\t\t\t0.0501922295431356 * z,\n\t\ty:\n\t\t\t0.0296278156881593 * x +\n\t\t\t0.990434484573249 * y -\n\t\t\t0.0170738250293851 * z,\n\t\tz:\n\t\t\t-0.0092430581525912 * x +\n\t\t\t0.0150551448965779 * y +\n\t\t\t0.7518742899580008 * z\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToXyz50;\n","/*\n\tChromatic adaptation of CIE XYZ from D50 to D65 white point\n\tusing the Bradford method.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html\t\n*/\n\nconst convertXyz50ToXyz65 = xyz50 => {\n\tlet { x, y, z, alpha } = xyz50;\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.9554734527042182 * x -\n\t\t\t0.0230985368742614 * y +\n\t\t\t0.0632593086610217 * z,\n\t\ty:\n\t\t\t-0.0283697069632081 * x +\n\t\t\t1.0099954580058226 * y +\n\t\t\t0.021041398966943 * z,\n\t\tz:\n\t\t\t0.0123140016883199 * x -\n\t\t\t0.0205076964334779 * y +\n\t\t\t1.3303659366080753 * z\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToXyz65;\n","/*\n\tThe XYZ D65 color space\n\t-----------------------\n */\n\nimport convertXyz65ToRgb from './convertXyz65ToRgb.js';\nimport convertRgbToXyz65 from './convertRgbToXyz65.js';\n\nimport convertXyz65ToXyz50 from './convertXyz65ToXyz50.js';\nimport convertXyz50ToXyz65 from './convertXyz50ToXyz65.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'xyz65',\n\n\ttoMode: {\n\t\trgb: convertXyz65ToRgb,\n\t\txyz50: convertXyz65ToXyz50\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyz65,\n\t\txyz50: convertXyz50ToXyz65\n\t},\n\n\tranges: {\n\t\tx: [0, 0.95],\n\t\ty: [0, 1],\n\t\tz: [0, 1.088]\n\t},\n\n\tchannels: ['x', 'y', 'z', 'alpha'],\n\n\tparse: ['xyz', 'xyz-d65'],\n\tserialize: 'xyz-d65',\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tz: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","const convertRgbToYiq = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tconst res = {\n\t\tmode: 'yiq',\n\t\ty: 0.29889531 * r + 0.58662247 * g + 0.11448223 * b,\n\t\ti: 0.59597799 * r - 0.2741761 * g - 0.32180189 * b,\n\t\tq: 0.21147017 * r - 0.52261711 * g + 0.31114694 * b\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToYiq;\n","const convertYiqToRgb = ({ y, i, q, alpha }) => {\n\tif (y === undefined) y = 0;\n\tif (i === undefined) i = 0;\n\tif (q === undefined) q = 0;\n\tconst res = {\n\t\tmode: 'rgb',\n\t\tr: y + 0.95608445 * i + 0.6208885 * q,\n\t\tg: y - 0.27137664 * i - 0.6486059 * q,\n\t\tb: y - 1.10561724 * i + 1.70250126 * q\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertYiqToRgb;\n","import convertRgbToYiq from './convertRgbToYiq.js';\nimport convertYiqToRgb from './convertYiqToRgb.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\n/*\n\tYIQ Color Space\n\n\tReferences\n\t----------\n\n\tWikipedia:\n\t\thttps://en.wikipedia.org/wiki/YIQ\n\n\t\"Measuring perceived color difference using YIQ NTSC\n\ttransmission color space in mobile applications\"\n\t\t\n\t\tby Yuriy Kotsarenko, Fernando Ramos in:\n\t\tProgramación Matemática y Software (2010) \n\n\tAvailable at:\n\t\t\n\t\thttp://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf\n */\n\nconst definition = {\n\tmode: 'yiq',\n\n\ttoMode: {\n\t\trgb: convertYiqToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToYiq\n\t},\n\n\tchannels: ['y', 'i', 'q', 'alpha'],\n\n\tparse: ['--yiq'],\n\tserialize: '--yiq',\n\n\tranges: {\n\t\ti: [-0.595, 0.595],\n\t\tq: [-0.522, 0.522]\n\t},\n\n\tinterpolate: {\n\t\ty: interpolatorLinear,\n\t\ti: interpolatorLinear,\n\t\tq: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n","import converter from './converter.js';\nimport round from './round.js';\nimport prepare from './_prepare.js';\nimport { getMode } from './modes.js';\n\nlet twoDecimals = round(2);\n\nconst clamp = value => Math.max(0, Math.min(1, value || 0));\nconst fixup = value => Math.round(clamp(value) * 255);\n\nconst rgb = converter('rgb');\nconst hsl = converter('hsl');\n\nexport const serializeHex = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet r = fixup(color.r);\n\tlet g = fixup(color.g);\n\tlet b = fixup(color.b);\n\n\treturn '#' + ((1 << 24) | (r << 16) | (g << 8) | b).toString(16).slice(1);\n};\n\nexport const serializeHex8 = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet a = fixup(color.alpha !== undefined ? color.alpha : 1);\n\treturn serializeHex(color) + ((1 << 8) | a).toString(16).slice(1);\n};\n\nexport const serializeRgb = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet r = fixup(color.r);\n\tlet g = fixup(color.g);\n\tlet b = fixup(color.b);\n\n\tif (color.alpha === undefined || color.alpha === 1) {\n\t\t// opaque color\n\t\treturn `rgb(${r}, ${g}, ${b})`;\n\t} else {\n\t\t// transparent color\n\t\treturn `rgba(${r}, ${g}, ${b}, ${twoDecimals(clamp(color.alpha))})`;\n\t}\n};\n\nexport const serializeHsl = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tconst h = twoDecimals(color.h || 0);\n\tconst s = twoDecimals(clamp(color.s) * 100) + '%';\n\tconst l = twoDecimals(clamp(color.l) * 100) + '%';\n\n\tif (color.alpha === undefined || color.alpha === 1) {\n\t\t// opaque color\n\t\treturn `hsl(${h}, ${s}, ${l})`;\n\t} else {\n\t\t// transparent color\n\t\treturn `hsla(${h}, ${s}, ${l}, ${twoDecimals(clamp(color.alpha))})`;\n\t}\n};\n\nexport const formatCss = c => {\n\tconst color = prepare(c);\n\tif (!color) {\n\t\treturn undefined;\n\t}\n\tconst def = getMode(color.mode);\n\tif (!def.serialize || typeof def.serialize === 'string') {\n\t\tlet res = `color(${def.serialize || `--${color.mode}`} `;\n\t\tdef.channels.forEach((ch, i) => {\n\t\t\tif (ch !== 'alpha') {\n\t\t\t\tres +=\n\t\t\t\t\t(i ? ' ' : '') +\n\t\t\t\t\t(color[ch] !== undefined ? color[ch] : 'none');\n\t\t\t}\n\t\t});\n\t\tif (color.alpha !== undefined && color.alpha < 1) {\n\t\t\tres += ` / ${color.alpha}`;\n\t\t}\n\t\treturn res + ')';\n\t}\n\tif (typeof def.serialize === 'function') {\n\t\treturn def.serialize(color);\n\t}\n\treturn undefined;\n};\n\nexport const formatHex = c => serializeHex(rgb(c));\nexport const formatHex8 = c => serializeHex8(rgb(c));\nexport const formatRgb = c => serializeRgb(rgb(c));\nexport const formatHsl = c => serializeHsl(hsl(c));\n","// Color space definitions\nimport modeA98 from './a98/definition.js';\nimport modeCubehelix from './cubehelix/definition.js';\nimport modeDlab from './dlab/definition.js';\nimport modeDlch from './dlch/definition.js';\nimport modeHsi from './hsi/definition.js';\nimport modeHsl from './hsl/definition.js';\nimport modeHsv from './hsv/definition.js';\nimport modeHwb from './hwb/definition.js';\nimport modeItp from './itp/definition.js';\nimport modeJab from './jab/definition.js';\nimport modeJch from './jch/definition.js';\nimport modeLab from './lab/definition.js';\nimport modeLab65 from './lab65/definition.js';\nimport modeLch from './lch/definition.js';\nimport modeLch65 from './lch65/definition.js';\nimport modeLchuv from './lchuv/definition.js';\nimport modeLrgb from './lrgb/definition.js';\nimport modeLuv from './luv/definition.js';\nimport modeOkhsl from './okhsl/modeOkhsl.js';\nimport modeOkhsv from './okhsv/modeOkhsv.js';\nimport modeOklab from './oklab/definition.js';\nimport modeOklch from './oklch/definition.js';\nimport modeP3 from './p3/definition.js';\nimport modeProphoto from './prophoto/definition.js';\nimport modeRec2020 from './rec2020/definition.js';\nimport modeRgb from './rgb/definition.js';\nimport modeXyb from './xyb/definition.js';\nimport modeXyz50 from './xyz50/definition.js';\nimport modeXyz65 from './xyz65/definition.js';\nimport modeYiq from './yiq/definition.js';\nimport { useMode } from './modes.js';\n\nexport { default as converter } from './converter.js';\n\nexport {\n\tserializeHex,\n\tserializeHex8,\n\tserializeRgb,\n\tserializeHsl,\n\tformatHex,\n\tformatHex8,\n\tformatRgb,\n\tformatHsl,\n\tformatCss\n} from './formatter.js';\n\nexport { default as colorsNamed } from './colors/named.js';\nexport { default as blend } from './blend.js';\nexport { default as random } from './random.js';\n\nexport {\n\tfixupHueShorter,\n\tfixupHueLonger,\n\tfixupHueIncreasing,\n\tfixupHueDecreasing\n} from './fixup/hue.js';\n\nexport { fixupAlpha } from './fixup/alpha.js';\n\nexport {\n\tmapper,\n\tmapAlphaMultiply,\n\tmapAlphaDivide,\n\tmapTransferLinear,\n\tmapTransferGamma\n} from './map.js';\n\nexport { average, averageAngle, averageNumber } from './average.js';\n\nexport { default as round } from './round.js';\nexport {\n\tinterpolate,\n\tinterpolateWith,\n\tinterpolateWithPremultipliedAlpha\n} from './interpolate/interpolate.js';\n\nexport { interpolatorLinear } from './interpolate/linear.js';\n\nexport { interpolatorPiecewise } from './interpolate/piecewise.js';\n\nexport {\n\tinterpolatorSplineBasis,\n\tinterpolatorSplineBasisClosed\n} from './interpolate/splineBasis.js';\n\nexport {\n\tinterpolatorSplineNatural,\n\tinterpolatorSplineNaturalClosed\n} from './interpolate/splineNatural.js';\n\nexport {\n\tinterpolatorSplineMonotone,\n\tinterpolatorSplineMonotone2,\n\tinterpolatorSplineMonotoneClosed\n} from './interpolate/splineMonotone.js';\n\nexport { lerp, unlerp, blerp, trilerp } from './interpolate/lerp.js';\nexport { default as samples } from './samples.js';\nexport {\n\tdisplayable,\n\tinGamut,\n\tclampRgb,\n\tclampChroma,\n\tclampGamut,\n\ttoGamut\n} from './clamp.js';\nexport { default as nearest } from './nearest.js';\nexport { useMode, getMode, useParser, removeParser } from './modes.js';\nexport { default as parse } from './parse.js';\n\nexport {\n\tdifferenceEuclidean,\n\tdifferenceCie76,\n\tdifferenceCie94,\n\tdifferenceCiede2000,\n\tdifferenceCmc,\n\tdifferenceHyab,\n\tdifferenceHueSaturation,\n\tdifferenceHueChroma,\n\tdifferenceHueNaive,\n\tdifferenceKotsarenkoRamos,\n\tdifferenceItp\n} from './difference.js';\n\nexport {\n\tfilterBrightness,\n\tfilterContrast,\n\tfilterSepia,\n\tfilterInvert,\n\tfilterSaturate,\n\tfilterGrayscale,\n\tfilterHueRotate\n} from './filter.js';\n\nexport {\n\tfilterDeficiencyProt,\n\tfilterDeficiencyDeuter,\n\tfilterDeficiencyTrit\n} from './deficiency.js';\n\n// Easings\nexport { default as easingMidpoint } from './easing/midpoint.js';\nexport {\n\teasingSmoothstep,\n\teasingSmoothstepInverse\n} from './easing/smoothstep.js';\nexport { default as easingSmootherstep } from './easing/smootherstep.js';\nexport { default as easingInOutSine } from './easing/inOutSine.js';\nexport { default as easingGamma } from './easing/gamma.js';\n\nexport {\n\tluminance as wcagLuminance,\n\tcontrast as wcagContrast\n} from './wcag.js';\n\nexport { default as parseHsl } from './hsl/parseHsl.js';\nexport { default as parseHwb } from './hwb/parseHwb.js';\nexport { default as parseLab } from './lab/parseLab.js';\nexport { default as parseLch } from './lch/parseLch.js';\nexport { default as parseNamed } from './rgb/parseNamed.js';\nexport { default as parseTransparent } from './rgb/parseTransparent.js';\nexport { default as parseHex } from './rgb/parseHex.js';\nexport { default as parseRgb } from './rgb/parseRgb.js';\nexport { default as parseHslLegacy } from './hsl/parseHslLegacy.js';\nexport { default as parseRgbLegacy } from './rgb/parseRgbLegacy.js';\nexport { default as parseOklab } from './oklab/parseOklab.js';\nexport { default as parseOklch } from './oklch/parseOklch.js';\n\nexport { default as convertA98ToXyz65 } from './a98/convertA98ToXyz65.js';\nexport { default as convertCubehelixToRgb } from './cubehelix/convertCubehelixToRgb.js';\nexport { default as convertDlchToLab65 } from './dlch/convertDlchToLab65.js';\nexport { default as convertHsiToRgb } from './hsi/convertHsiToRgb.js';\nexport { default as convertHslToRgb } from './hsl/convertHslToRgb.js';\nexport { default as convertHsvToRgb } from './hsv/convertHsvToRgb.js';\nexport { default as convertHwbToRgb } from './hwb/convertHwbToRgb.js';\nexport { default as convertItpToXyz65 } from './itp/convertItpToXyz65.js';\nexport { default as convertJabToJch } from './jch/convertJabToJch.js';\nexport { default as convertJabToRgb } from './jab/convertJabToRgb.js';\nexport { default as convertJabToXyz65 } from './jab/convertJabToXyz65.js';\nexport { default as convertJchToJab } from './jch/convertJchToJab.js';\nexport { default as convertLab65ToDlch } from './dlch/convertLab65ToDlch.js';\nexport { default as convertLab65ToRgb } from './lab65/convertLab65ToRgb.js';\nexport { default as convertLab65ToXyz65 } from './lab65/convertLab65ToXyz65.js';\nexport { default as convertLabToLch } from './lch/convertLabToLch.js';\nexport { default as convertLabToRgb } from './lab/convertLabToRgb.js';\nexport { default as convertLabToXyz50 } from './lab/convertLabToXyz50.js';\nexport { default as convertLchToLab } from './lch/convertLchToLab.js';\nexport { default as convertLchuvToLuv } from './lchuv/convertLchuvToLuv.js';\nexport { default as convertLrgbToOklab } from './oklab/convertLrgbToOklab.js';\nexport { default as convertLrgbToRgb } from './lrgb/convertLrgbToRgb.js';\nexport { default as convertLuvToLchuv } from './lchuv/convertLuvToLchuv.js';\nexport { default as convertLuvToXyz50 } from './luv/convertLuvToXyz50.js';\nexport { default as convertOkhslToOklab } from './okhsl/convertOkhslToOklab.js';\nexport { default as convertOkhsvToOklab } from './okhsv/convertOkhsvToOklab.js';\nexport { default as convertOklabToLrgb } from './oklab/convertOklabToLrgb.js';\nexport { default as convertOklabToOkhsl } from './okhsl/convertOklabToOkhsl.js';\nexport { default as convertOklabToOkhsv } from './okhsv/convertOklabToOkhsv.js';\nexport { default as convertOklabToRgb } from './oklab/convertOklabToRgb.js';\nexport { default as convertP3ToXyz65 } from './p3/convertP3ToXyz65.js';\nexport { default as convertProphotoToXyz50 } from './prophoto/convertProphotoToXyz50.js';\nexport { default as convertRec2020ToXyz65 } from './rec2020/convertRec2020ToXyz65.js';\nexport { default as convertRgbToCubehelix } from './cubehelix/convertRgbToCubehelix.js';\nexport { default as convertRgbToHsi } from './hsi/convertRgbToHsi.js';\nexport { default as convertRgbToHsl } from './hsl/convertRgbToHsl.js';\nexport { default as convertRgbToHsv } from './hsv/convertRgbToHsv.js';\nexport { default as convertRgbToHwb } from './hwb/convertRgbToHwb.js';\nexport { default as convertRgbToJab } from './jab/convertRgbToJab.js';\nexport { default as convertRgbToLab } from './lab/convertRgbToLab.js';\nexport { default as convertRgbToLab65 } from './lab65/convertRgbToLab65.js';\nexport { default as convertRgbToLrgb } from './lrgb/convertRgbToLrgb.js';\nexport { default as convertRgbToOklab } from './oklab/convertRgbToOklab.js';\nexport { default as convertRgbToXyb } from './xyb/convertRgbToXyb.js';\nexport { default as convertRgbToXyz50 } from './xyz50/convertRgbToXyz50.js';\nexport { default as convertRgbToXyz65 } from './xyz65/convertRgbToXyz65.js';\nexport { default as convertRgbToYiq } from './yiq/convertRgbToYiq.js';\nexport { default as convertXybToRgb } from './xyb/convertXybToRgb.js';\nexport { default as convertXyz50ToLab } from './lab/convertXyz50ToLab.js';\nexport { default as convertXyz50ToLuv } from './luv/convertXyz50ToLuv.js';\nexport { default as convertXyz50ToProphoto } from './prophoto/convertXyz50ToProphoto.js';\nexport { default as convertXyz50ToRgb } from './xyz50/convertXyz50ToRgb.js';\nexport { default as convertXyz50ToXyz65 } from './xyz65/convertXyz50ToXyz65.js';\nexport { default as convertXyz65ToA98 } from './a98/convertXyz65ToA98.js';\nexport { default as convertXyz65ToItp } from './itp/convertXyz65ToItp.js';\nexport { default as convertXyz65ToJab } from './jab/convertXyz65ToJab.js';\nexport { default as convertXyz65ToLab65 } from './lab65/convertXyz65ToLab65.js';\nexport { default as convertXyz65ToP3 } from './p3/convertXyz65ToP3.js';\nexport { default as convertXyz65ToRec2020 } from './rec2020/convertXyz65ToRec2020.js';\nexport { default as convertXyz65ToRgb } from './xyz65/convertXyz65ToRgb.js';\nexport { default as convertXyz65ToXyz50 } from './xyz65/convertXyz65ToXyz50.js';\nexport { default as convertYiqToRgb } from './yiq/convertYiqToRgb.js';\n\nexport {\n\tmodeA98,\n\tmodeCubehelix,\n\tmodeDlab,\n\tmodeDlch,\n\tmodeHsi,\n\tmodeHsl,\n\tmodeHsv,\n\tmodeHwb,\n\tmodeItp,\n\tmodeJab,\n\tmodeJch,\n\tmodeLab,\n\tmodeLab65,\n\tmodeLch,\n\tmodeLch65,\n\tmodeLchuv,\n\tmodeLrgb,\n\tmodeLuv,\n\tmodeOkhsl,\n\tmodeOkhsv,\n\tmodeOklab,\n\tmodeOklch,\n\tmodeP3,\n\tmodeProphoto,\n\tmodeRec2020,\n\tmodeRgb,\n\tmodeXyb,\n\tmodeXyz50,\n\tmodeXyz65,\n\tmodeYiq\n};\n\nexport const a98 = useMode(modeA98);\nexport const cubehelix = useMode(modeCubehelix);\nexport const dlab = useMode(modeDlab);\nexport const dlch = useMode(modeDlch);\nexport const hsi = useMode(modeHsi);\nexport const hsl = useMode(modeHsl);\nexport const hsv = useMode(modeHsv);\nexport const hwb = useMode(modeHwb);\nexport const itp = useMode(modeItp);\nexport const jab = useMode(modeJab);\nexport const jch = useMode(modeJch);\nexport const lab = useMode(modeLab);\nexport const lab65 = useMode(modeLab65);\nexport const lch = useMode(modeLch);\nexport const lch65 = useMode(modeLch65);\nexport const lchuv = useMode(modeLchuv);\nexport const lrgb = useMode(modeLrgb);\nexport const luv = useMode(modeLuv);\nexport const okhsl = useMode(modeOkhsl);\nexport const okhsv = useMode(modeOkhsv);\nexport const oklab = useMode(modeOklab);\nexport const oklch = useMode(modeOklch);\nexport const p3 = useMode(modeP3);\nexport const prophoto = useMode(modeProphoto);\nexport const rec2020 = useMode(modeRec2020);\nexport const rgb = useMode(modeRgb);\nexport const xyb = useMode(modeXyb);\nexport const xyz50 = useMode(modeXyz50);\nexport const xyz65 = useMode(modeXyz65);\nexport const yiq = useMode(modeYiq);\n","import { converter, formatHex, parse } from 'culori';\n/**\n * Parse an OKLCH color string into an Oklch object.\n * @param oklch - The OKLCH color string in format \"oklch(l c h [/ a])\" (e.g. \"oklch(0.5 0.2 180 / 0.3)\")\n * @returns The Oklch object\n */\nexport function parseOklch(color) {\n const parsedColor = parse(color);\n if (parsedColor?.mode !== 'oklch') {\n throw new Error(`Invalid OKLCH color string: ${color}`);\n }\n return parsedColor;\n}\n/**\n * Convert an OKLCH color string to a hex color.\n * @param oklch - The OKLCH color string in format \"l c h\" (e.g. \"0.5 0.2 180\")\n * @returns The hex color string\n */\nexport function convertOklchToHex(oklch) {\n const color = typeof oklch === 'string' ? parseOklch(oklch) : oklch;\n const convert = converter('rgb');\n const rgb = convert(color);\n return formatHex(rgb);\n}\n/**\n * Convert a hex color to an OKLCH color string.\n * @param hex - The hex color string\n * @returns The OKLCH color string in format \"oklch(l c h [/ a])\"\n */\nexport function convertHexToOklch(hex) {\n const convert = converter('oklch');\n const oklch = convert(hex);\n if (!oklch) {\n return 'oklch(0 0 0)';\n }\n return `oklch(${oklch.l.toFixed(3)} ${oklch.c.toFixed(3)} ${oklch.h?.toFixed(3) ?? 0}${oklch.alpha === undefined ? '' : `/ ${oklch.alpha.toFixed(3)}`})`;\n}\n//# sourceMappingURL=color-conversions.js.map","import { flow } from 'es-toolkit';\nimport { convertHexToOklch } from '#src/utils/color-conversions.js';\nimport { transformJsonPath } from './transform-json-path.js';\nimport { createSchemaMigration } from './types.js';\nfunction transformThemeColor(color) {\n if (color.startsWith('oklch'))\n return color;\n if (color.startsWith('#'))\n return convertHexToOklch(color);\n throw new Error(`Invalid color: ${color}`);\n}\nexport const migration010HexToOklch = createSchemaMigration({\n version: 10,\n name: 'hexToOklch',\n description: 'Convert hex colors to OKLCH in theme configuration',\n migrate: (config) => {\n if (!config.theme) {\n return config;\n }\n const transform = flow((c) => transformJsonPath(c, 'theme.palettes.**.customBase', transformThemeColor), (c) => transformJsonPath(c, 'theme.palettes.**.shades.**', transformThemeColor), (c) => transformJsonPath(c, 'theme.colors.**.**', transformThemeColor));\n return transform(config);\n },\n});\n//# sourceMappingURL=migration-010-hex-to-oklch.js.map","import { pluginEntityType } from '#src/schema/plugins/index.js';\nimport { transformJsonPath } from './transform-json-path.js';\nimport { createSchemaMigration } from './types.js';\nexport const migration011PluginId = createSchemaMigration({\n version: 11,\n name: 'pluginId',\n description: 'Convert plugin ids to use the plugin entity type',\n migrate: (config) => transformJsonPath(config, 'plugins.*.id', (id) => pluginEntityType.idFromKey(id)),\n});\n//# sourceMappingURL=migration-011-plugin-id.js.map","import { createSchemaMigration } from './types.js';\nexport const migration012MigrateAuthConfig = createSchemaMigration({\n version: 12,\n name: 'migrateAuthConfig',\n description: 'Migrate auth config to auth0 plugin config',\n migrate: (config) => {\n if (!config.auth?.useAuth0) {\n return {\n ...config,\n auth: undefined,\n };\n }\n const auth0PluginId = 'plugin:halfdomelabs_baseplate-plugin-auth_auth0';\n const auth0Config = {\n userAccountModelRef: config.auth.userModelRef,\n authFeatureRef: config.auth.authFeatureRef,\n roles: config.auth.roles.map((role) => ({\n id: role.id,\n name: role.name,\n comment: role.comment,\n builtIn: role.builtIn,\n })),\n };\n const plugins = config.plugins ?? [];\n const pluginIndex = plugins.findIndex((p) => p.id === auth0PluginId);\n if (pluginIndex === -1) {\n plugins.push({\n id: auth0PluginId,\n name: 'auth0',\n packageName: '@halfdomelabs/baseplate-plugin-auth',\n version: '0.1.0',\n config: auth0Config,\n });\n }\n else {\n plugins[pluginIndex] = {\n ...plugins[pluginIndex],\n config: auth0Config,\n };\n }\n return {\n ...config,\n auth: undefined,\n plugins,\n };\n },\n});\n//# sourceMappingURL=migration-012-migrate-auth-config.js.map","import { createSchemaMigration } from './types.js';\nexport const migration013MoveGeneralSettings = createSchemaMigration({\n version: 13,\n name: 'moveGeneralSettings',\n description: 'Move general settings fields from root to settings.general',\n migrate: (config) => {\n const { name, packageScope, portOffset, templateExtractor, theme, ...rest } = config;\n return {\n ...rest,\n settings: {\n general: {\n name,\n packageScope,\n portOffset,\n },\n templateExtractor,\n theme,\n },\n };\n },\n});\n//# sourceMappingURL=migration-013-move-general-settings.js.map","import { createSchemaMigration } from './types.js';\nconst PLUGIN_MAPPINGS = {\n 'plugin:halfdomelabs_baseplate-plugin-auth_auth0': 'plugin:baseplate-dev_plugin-auth_auth0',\n 'plugin:halfdomelabs_baseplate-plugin-storage_storage': 'plugin:baseplate-dev_plugin-storage_storage',\n};\nexport const migration014MigratePluginIds = createSchemaMigration({\n version: 14,\n name: 'migratePluginIds',\n description: 'Migrate plugin IDs and package names to new format and resets client version in preparation for 0.1.0 reset',\n migrate: (config) => {\n if (!config.plugins) {\n return config;\n }\n const plugins = config.plugins.map((plugin) => {\n const newId = plugin.id in PLUGIN_MAPPINGS\n ? PLUGIN_MAPPINGS[plugin.id]\n : plugin.id;\n const newPackageName = plugin.packageName.replace('@halfdomelabs/baseplate-', '@baseplate-dev/');\n return {\n ...plugin,\n id: newId,\n packageName: newPackageName,\n };\n });\n return {\n ...config,\n plugins,\n cliVersion: '0.1.0',\n };\n },\n});\n//# sourceMappingURL=migration-014-migrate-plugin-ids.js.map","import { createSchemaMigration } from './types.js';\nexport const migration015NullParentRefs = createSchemaMigration({\n version: 15,\n name: 'nullParentRefs',\n description: 'Convert null parentRefs to undefined in features',\n migrate: (config) => {\n if (!config.features) {\n return config;\n }\n const features = config.features.map((feature) => ({\n ...feature,\n parentRef: feature.parentRef ?? undefined,\n }));\n return {\n ...config,\n features,\n };\n },\n});\n//# sourceMappingURL=migration-015-null-parent-refs.js.map","import { createSchemaMigration } from './types.js';\nexport const migration016WebAdminConfig = createSchemaMigration({\n version: 16,\n name: 'webAdminApp',\n description: 'Convert admin apps to web apps with adminApp and add adminApp to existing web apps',\n migrate: (config) => {\n if (!config.apps) {\n return config;\n }\n const apps = config.apps.map((app) => {\n // Convert admin apps to web apps with adminConfig enabled\n if (app.type === 'admin') {\n const { sections, allowedRoles, ...restApp } = app;\n return {\n ...restApp,\n type: 'web',\n adminApp: {\n enabled: true,\n pathPrefix: '/admin',\n sections: sections ?? [],\n allowedRoles: allowedRoles ?? undefined,\n },\n };\n }\n // Add adminApp to web apps that don't already have it\n if (app.type === 'web' && !('adminApp' in app)) {\n return {\n ...app,\n adminApp: {\n enabled: false,\n pathPrefix: '/admin',\n },\n };\n }\n return app;\n });\n return {\n ...config,\n apps,\n };\n },\n});\n//# sourceMappingURL=migration-016-web-admin-config.js.map","import { createSchemaMigration } from './types.js';\nexport const migration017RenameAuthPlugin = createSchemaMigration({\n version: 17,\n name: 'renameAuthPlugin',\n description: 'Rename plugin plugin-auth_auth to plugin-auth_local-auth and auto-activate auth manager plugin',\n migrate: (config) => {\n if (!config.plugins) {\n return config;\n }\n let plugins = [...config.plugins];\n let renamedPlugin = null;\n // Step 1: Rename plugin-auth_auth to plugin-auth_local-auth\n plugins = plugins.map((plugin) => {\n if (plugin.id === 'plugin:baseplate-dev_plugin-auth_auth') {\n renamedPlugin = {\n ...plugin,\n name: 'local-auth',\n id: 'plugin:baseplate-dev_plugin-auth_local-auth',\n };\n return renamedPlugin;\n }\n return plugin;\n });\n // Step 2: Check for any auth implementation plugins\n const authImplementationPlugins = plugins.filter((plugin) => plugin.id === 'plugin:baseplate-dev_plugin-auth_local-auth' ||\n plugin.id === 'plugin:baseplate-dev_plugin-auth_auth0' ||\n plugin.id === 'plugin:baseplate-dev_plugin-auth_placeholder-auth');\n // Step 3: If any implementation plugins exist, create main auth plugin with ported config\n if (authImplementationPlugins.length > 0) {\n // Determine the primary implementation plugin (prioritize local-auth > auth0 > placeholder)\n const primaryImplementationPlugin = authImplementationPlugins.find((p) => p.id === 'plugin:baseplate-dev_plugin-auth_local-auth') ??\n authImplementationPlugins.find((p) => p.id === 'plugin:baseplate-dev_plugin-auth_auth0') ??\n authImplementationPlugins.find((p) => p.id === 'plugin:baseplate-dev_plugin-auth_placeholder-auth');\n if (primaryImplementationPlugin) {\n // Extract implementation key from plugin ID\n const implementationPluginKey = primaryImplementationPlugin.id.replace('plugin:', '');\n // Port configuration from the implementation plugin\n const implementationConfig = (primaryImplementationPlugin.config ??\n {});\n // Create main auth plugin with ported configuration\n plugins.push({\n id: 'plugin:baseplate-dev_plugin-auth_auth',\n name: 'auth',\n packageName: '@baseplate-dev/plugin-auth',\n version: '1.0.0',\n config: {\n implementationPluginKey,\n authFeatureRef: implementationConfig.authFeatureRef,\n roles: implementationConfig.roles,\n },\n });\n }\n }\n return {\n ...config,\n plugins,\n };\n },\n});\n//# sourceMappingURL=migration-017-rename-auth-plugin.js.map","import { createSchemaMigration } from './types.js';\nexport const migration018CrudNameFieldRef = createSchemaMigration({\n version: 18,\n name: 'crudNameFieldRef',\n description: 'Add nameFieldRef to CRUD sections, defaulting to name, title, id, or first field',\n migrate: (config) => {\n if (!config.apps || !config.models) {\n return config;\n }\n const apps = config.apps.map((app) => {\n // Only process apps with adminApp and sections\n if (!app.adminApp?.sections) {\n return app;\n }\n const sections = app.adminApp.sections.map((section) => {\n // Only process CRUD sections without nameFieldRef\n if (section.type !== 'crud' || section.nameFieldRef) {\n return section;\n }\n // Find the model for this section\n const model = config.models?.find((m) => m.name === section.modelRef);\n if (!model?.model.fields || model.model.fields.length === 0) {\n throw new Error(`Model ${section.modelRef} has no fields`);\n }\n // Find field by priority: name, title, id, then first field\n let selectedField = model.model.fields.find((f) => f.name === 'name');\n selectedField ??= model.model.fields.find((f) => f.name === 'title');\n selectedField ??= model.model.fields.find((f) => f.name === 'id');\n selectedField ??= model.model.fields[0];\n return {\n ...section,\n nameFieldRef: selectedField.name,\n };\n });\n return {\n ...app,\n adminApp: {\n ...app.adminApp,\n sections,\n },\n };\n });\n return {\n ...config,\n apps,\n };\n },\n});\n//# sourceMappingURL=migration-018-crud-name-field-ref.js.map","import { createSchemaMigration } from './types.js';\nfunction migrateColumn(oldColumn) {\n const { display, id, ...rest } = oldColumn;\n return {\n id: id?.replace('admin-crud-section-column', 'admin-crud-column'),\n ...rest,\n type: display.type,\n ...(display.modelFieldRef && { modelFieldRef: display.modelFieldRef }),\n ...(display.localRelationRef && {\n localRelationRef: display.localRelationRef,\n }),\n ...(display.labelExpression && {\n labelExpression: display.labelExpression,\n }),\n ...(display.valueExpression && {\n valueExpression: display.valueExpression,\n }),\n };\n}\nfunction migrateColumns(columns) {\n if (!columns || columns.length === 0) {\n return [];\n }\n return columns.map(migrateColumn);\n}\nexport const migration019ColumnTypeBased = createSchemaMigration({\n version: 19,\n name: 'columnTypeBased',\n description: 'Migrate admin CRUD columns from display-based to type-based structure',\n migrate: (config) => {\n if (!config.apps) {\n return config;\n }\n const apps = config.apps.map((app) => {\n // Only process apps with adminApp and sections\n if (!app.adminApp?.sections) {\n return app;\n }\n const sections = app.adminApp.sections.map((section) => {\n const updatedSection = { ...section };\n // Migrate main table columns\n if (section.table?.columns) {\n updatedSection.table = {\n ...section.table,\n columns: migrateColumns(section.table.columns),\n };\n }\n // Migrate embedded form table columns\n if (section.embeddedForms) {\n updatedSection.embeddedForms = section.embeddedForms.map((form) => {\n if (form.table?.columns) {\n return {\n ...form,\n table: {\n ...form.table,\n columns: migrateColumns(form.table.columns),\n },\n };\n }\n return form;\n });\n }\n return updatedSection;\n });\n return {\n ...app,\n adminApp: {\n ...app.adminApp,\n sections,\n },\n };\n });\n return {\n ...config,\n apps,\n };\n },\n});\n//# sourceMappingURL=migration-019-column-type-based.js.map","import { createSchemaMigration } from './types.js';\n/**\n * Migration to move enableRedis from backend apps to infrastructure settings\n *\n * This migration:\n * 1. Finds the first backend app with enableRedis property\n * 2. Moves that value to settings.infrastructure.redis.enabled\n * 3. Removes enableRedis from all backend apps\n */\nexport const migration020MoveRedisToInfrastructure = createSchemaMigration({\n version: 20,\n name: 'moveRedisToInfrastructure',\n description: 'Move enableRedis from backend apps to settings.infrastructure.redis.enabled',\n migrate: (config) => {\n // Find the first backend app with enableRedis\n const firstBackendApp = config.apps?.find((app) => app.type === 'backend' && 'enableRedis' in app);\n // Get the enableRedis value (default to false if not found)\n const enableRedis = firstBackendApp?.enableRedis ?? false;\n // Remove enableRedis from all apps\n const apps = config.apps?.map((app) => {\n if (app.type === 'backend' && 'enableRedis' in app) {\n const { enableRedis: _enableRedis, ...rest } = app;\n return rest;\n }\n return app;\n });\n // Update settings with infrastructure.redis.enabled\n const settings = {\n ...config.settings,\n infrastructure: {\n ...config.settings?.infrastructure,\n redis: {\n enabled: enableRedis,\n },\n },\n };\n return {\n ...config,\n apps,\n settings,\n };\n },\n});\n//# sourceMappingURL=migration-020-move-redis-to-infrastructure.js.map","import { createSchemaMigration } from './types.js';\n/**\n * Migration to move enableBullQueue from backend apps to queue/bullmq plugins\n *\n * This migration:\n * 1. Finds backend apps with enableBullQueue: true\n * 2. If found, adds the queue parent plugin with implementationPluginKey pointing to bullmq\n * 3. Adds the bullmq child plugin with default config\n * 4. Removes enableBullQueue from all backend apps\n */\nexport const migration021MigrateBullmqToPlugin = createSchemaMigration({\n version: 21,\n name: 'migrateBullmqToPlugin',\n description: 'Migrate enableBullQueue from backend apps to queue/bullmq plugins',\n migrate: (config) => {\n // Find if any backend app has enableBullQueue: true\n const hasBullQueue = config.apps?.some((app) => app.type === 'backend' && app.enableBullQueue === true);\n // Remove enableBullQueue from all apps\n const apps = config.apps?.map((app) => {\n if (app.type === 'backend' && 'enableBullQueue' in app) {\n const { enableBullQueue: _enableBullQueue, ...rest } = app;\n return rest;\n }\n return app;\n });\n // If enableBullQueue was set, add the plugins\n const plugins = config.plugins ? [...config.plugins] : [];\n if (hasBullQueue) {\n const queuePluginId = 'plugin:baseplate-dev_plugin-queue_queue';\n const bullmqPluginId = 'plugin:baseplate-dev_plugin-queue_bullmq';\n // Add/update queue parent plugin\n const queuePluginIndex = plugins.findIndex((p) => p.id === queuePluginId);\n if (queuePluginIndex === -1) {\n plugins.push({\n id: queuePluginId,\n name: 'queue',\n packageName: '@baseplate-dev/plugin-queue',\n version: '1.0.0',\n config: {\n implementationPluginKey: 'baseplate-dev_plugin-queue_bullmq',\n },\n });\n }\n else {\n plugins[queuePluginIndex] = {\n ...plugins[queuePluginIndex],\n config: {\n ...plugins[queuePluginIndex].config,\n implementationPluginKey: 'baseplate-dev_plugin-queue_bullmq',\n },\n };\n }\n // Add bullmq child plugin if not exists\n const bullmqPluginIndex = plugins.findIndex((p) => p.id === bullmqPluginId);\n if (bullmqPluginIndex === -1) {\n plugins.push({\n id: bullmqPluginId,\n name: 'bullmq',\n packageName: '@baseplate-dev/plugin-queue',\n version: '1.0.0',\n config: {\n bullmqOptions: {\n deleteAfterDays: 7,\n },\n },\n });\n }\n }\n return {\n ...config,\n apps,\n plugins,\n };\n },\n});\n//# sourceMappingURL=migration-021-migrate-bullmq-to-plugin.js.map","import { createSchemaMigration } from './types.js';\n/**\n * Migration to rename packages to libraries\n *\n * This migration:\n * 1. Renames the top-level `packages` field to `libraries`\n * 2. Updates package IDs from `package:*` to `library:*`\n * 3. Renames `settings.monorepo.packagesFolder` to `settings.monorepo.librariesFolder`\n * and changes the default from 'packages' to 'libs'\n */\nexport const migration022RenamePackagesToLibraries = createSchemaMigration({\n version: 22,\n name: 'renamePackagesToLibraries',\n description: 'Rename packages to libraries and packagesFolder to librariesFolder',\n migrate: (config) => {\n const { packages, settings, ...rest } = config;\n // Rename packages to libraries and update IDs\n const libraries = packages?.map((pkg) => ({\n ...pkg,\n id: pkg.id.replace(/^package:/, 'library:'),\n }));\n // Update monorepo settings if present\n let newSettings = settings;\n if (settings?.monorepo) {\n const { packagesFolder, ...restMonorepo } = settings.monorepo;\n newSettings = {\n ...settings,\n monorepo: {\n ...restMonorepo,\n // If packagesFolder was explicitly set to 'packages' (old default) or not set,\n // use 'libs' (new default). Otherwise preserve the custom value.\n librariesFolder: packagesFolder === undefined || packagesFolder === 'packages'\n ? 'libs'\n : packagesFolder,\n },\n };\n }\n return {\n ...rest,\n libraries,\n settings: newSettings,\n };\n },\n});\n//# sourceMappingURL=migration-022-rename-packages-to-libraries.js.map","import { compareStrings } from '@baseplate-dev/utils';\nimport { createSchemaMigration } from './types.js';\n/**\n * Migration to assign development ports to apps\n *\n * This migration assigns devPort to all existing apps based on their type:\n * - Backend apps: portOffset + 1\n * - Web apps: portOffset + 30 + alphabeticalIndex\n */\nexport const migration023AssignAppPorts = createSchemaMigration({\n version: 23,\n name: 'assignAppPorts',\n description: 'Assign development ports to all apps',\n migrate: (config) => {\n if (!config.apps) {\n return config;\n }\n const { portOffset } = config.settings.general;\n // Sort web apps alphabetically to assign ports deterministically\n const webApps = config.apps\n .filter((app) => app.type === 'web')\n .toSorted((a, b) => compareStrings(a.name, b.name));\n const updatedApps = config.apps.map((app) => {\n // Skip if devPort already assigned\n if (app.devPort !== undefined) {\n return app;\n }\n // Assign devPort based on app type\n switch (app.type) {\n case 'backend': {\n return { ...app, devPort: portOffset + 1 };\n }\n case 'web': {\n const webAppIndex = webApps.findIndex((webApp) => webApp.id === app.id);\n return { ...app, devPort: portOffset + 30 + webAppIndex };\n }\n default: {\n // Other app types don't get devPort\n return app;\n }\n }\n });\n return {\n ...config,\n apps: updatedApps,\n };\n },\n});\n//# sourceMappingURL=migration-023-assign-app-ports.js.map","import { createSchemaMigration } from './types.js';\nfunction migrateRefArray(refs) {\n if (!refs) {\n return undefined;\n }\n return refs.map((ref) => {\n if (typeof ref === 'string') {\n return { ref, globalRoles: [], instanceRoles: [] };\n }\n return {\n ref: ref.ref,\n globalRoles: ref.globalRoles ?? ref.roles ?? [],\n instanceRoles: ref.instanceRoles ?? [],\n };\n });\n}\n/**\n * Migration to convert GraphQL objectType fields, localRelations, and\n * foreignRelations from string[] (plain ID refs) to Array<{ ref, globalRoles, instanceRoles }>\n * to support per-field authorization configuration.\n */\nexport const migration024GraphqlObjectTypeFieldAuth = createSchemaMigration({\n version: 24,\n name: 'graphqlObjectTypeFieldAuth',\n description: 'Convert GraphQL objectType field/relation arrays to objects with per-field auth support',\n migrate: (config) => {\n if (!config.models) {\n return config;\n }\n const updatedModels = config.models.map((model) => {\n const objectType = model.graphql?.objectType;\n if (!objectType) {\n return model;\n }\n return {\n ...model,\n graphql: {\n ...model.graphql,\n objectType: {\n ...objectType,\n fields: migrateRefArray(objectType.fields),\n localRelations: migrateRefArray(objectType.localRelations),\n foreignRelations: migrateRefArray(objectType.foreignRelations),\n },\n },\n };\n });\n return {\n ...config,\n models: updatedModels,\n };\n },\n});\n//# sourceMappingURL=migration-024-graphql-object-type-field-auth.js.map","import { createSchemaMigration } from './types.js';\n/**\n * Migration to move mutation authorization roles from graphql.mutations to\n * service methods. This enables service-level authorization with support for\n * both global and instance roles.\n */\nexport const migration025ServiceMethodAuth = createSchemaMigration({\n version: 25,\n name: 'serviceMethodAuth',\n description: 'Move mutation authorization roles from graphql.mutations to service methods',\n migrate: (config) => {\n if (!config.models) {\n return config;\n }\n const updatedModels = config.models.map((model) => {\n const mutations = model.graphql?.mutations;\n if (!mutations) {\n return model;\n }\n const createRoles = mutations.create?.roles ?? [];\n const updateRoles = mutations.update?.roles ?? [];\n const deleteRoles = mutations.delete?.roles ?? [];\n // Only add globalRoles to service methods that have roles to migrate\n const serviceUpdate = { ...model.service };\n if (createRoles.length > 0) {\n serviceUpdate.create = {\n ...model.service?.create,\n globalRoles: createRoles,\n };\n }\n if (updateRoles.length > 0) {\n serviceUpdate.update = {\n ...model.service?.update,\n globalRoles: updateRoles,\n };\n }\n if (deleteRoles.length > 0) {\n serviceUpdate.delete = {\n ...model.service?.delete,\n globalRoles: deleteRoles,\n };\n }\n return {\n ...model,\n service: serviceUpdate,\n graphql: {\n ...model.graphql,\n mutations: {\n create: { enabled: mutations.create?.enabled ?? false },\n update: { enabled: mutations.update?.enabled ?? false },\n delete: { enabled: mutations.delete?.enabled ?? false },\n },\n },\n };\n });\n return {\n ...config,\n models: updatedModels,\n };\n },\n});\n//# sourceMappingURL=migration-025-service-method-auth.js.map","import { uniq } from 'es-toolkit';\nimport { createSchemaMigration } from './types.js';\n/**\n * Migration to merge per-query roles (get.roles, list.roles) into shared\n * queries.globalRoles + queries.instanceRoles for unified read permissions.\n */\nexport const migration026QuerySharedRoles = createSchemaMigration({\n version: 26,\n name: 'querySharedRoles',\n description: 'Merge per-query roles into shared queries.globalRoles and queries.instanceRoles',\n migrate: (config) => {\n if (!config.models) {\n return config;\n }\n const updatedModels = config.models.map((model) => {\n const queries = model.graphql?.queries;\n if (!queries) {\n return model;\n }\n const getRoles = queries.get?.roles ?? [];\n const listRoles = queries.list?.roles ?? [];\n // Merge roles from get and list (deduplicated)\n const globalRoles = uniq([...getRoles, ...listRoles]);\n return {\n ...model,\n graphql: {\n ...model.graphql,\n queries: {\n globalRoles,\n instanceRoles: [],\n get: {\n enabled: queries.get?.enabled ?? false,\n },\n list: {\n enabled: queries.list?.enabled ?? false,\n count: queries.list?.count ?? {},\n },\n },\n },\n };\n });\n return {\n ...config,\n models: updatedModels,\n };\n },\n});\n//# sourceMappingURL=migration-026-query-shared-roles.js.map","import { createSchemaMigration } from './types.js';\nconst SENTRY_PLUGIN_ID = 'plugin:baseplate-dev_plugin-observability_sentry';\n/**\n * Migration to auto-enable the Sentry plugin on all existing projects.\n *\n * Sentry was previously always-on (hardcoded in compilers). Now that it's been\n * extracted into plugin-observability, existing projects need the plugin entry\n * added so they don't lose Sentry when upgrading.\n */\nexport const migration027EnableSentryPlugin = createSchemaMigration({\n version: 27,\n name: 'enableSentryPlugin',\n description: 'Auto-enable Sentry plugin for existing projects (previously always-on)',\n migrate: (config) => {\n const plugins = config.plugins ? [...config.plugins] : [];\n // Skip if sentry plugin already exists\n const existingIndex = plugins.findIndex((p) => p.id === SENTRY_PLUGIN_ID);\n if (existingIndex === -1) {\n plugins.push({\n id: SENTRY_PLUGIN_ID,\n name: 'sentry',\n packageName: '@baseplate-dev/plugin-observability',\n version: '0.1.0',\n config: {\n sentryOptions: {},\n },\n });\n }\n return {\n ...config,\n plugins,\n };\n },\n});\n//# sourceMappingURL=migration-027-enable-sentry-plugin.js.map","import { createSchemaMigration } from './types.js';\nconst STRIPE_PLUGIN_ID = 'plugin:baseplate-dev_plugin-payments_stripe';\n/**\n * Migration to convert enableStripe boolean on backend apps into a\n * plugin-payments:stripe plugin entry, and remove enableStripe from app configs.\n *\n * Stripe was previously toggled via a boolean on the backend app config.\n * Now that it's been extracted into plugin-payments, existing projects need\n * the plugin entry added so they don't lose Stripe when upgrading.\n */\nexport const migration028EnableStripePlugin = createSchemaMigration({\n version: 28,\n name: 'enableStripePlugin',\n description: 'Convert enableStripe boolean to plugin-payments:stripe plugin entry',\n migrate: (config) => {\n const apps = config.apps ? [...config.apps] : [];\n const plugins = config.plugins ? [...config.plugins] : [];\n // Check if any app has enableStripe\n const hasStripeEnabled = apps.some((app) => app.enableStripe);\n // Add stripe plugin if any app had it enabled and it doesn't already exist\n if (hasStripeEnabled) {\n const existingIndex = plugins.findIndex((p) => p.id === STRIPE_PLUGIN_ID);\n if (existingIndex === -1) {\n plugins.push({\n id: STRIPE_PLUGIN_ID,\n name: 'stripe',\n packageName: '@baseplate-dev/plugin-payments',\n version: '0.1.0',\n config: {\n stripeOptions: {},\n },\n });\n }\n }\n // Remove enableStripe from all app configs\n const updatedApps = apps.map((app) => {\n const { enableStripe: _, ...rest } = app;\n return rest;\n });\n return {\n ...config,\n apps: updatedApps,\n plugins,\n };\n },\n});\n//# sourceMappingURL=migration-028-enable-stripe-plugin.js.map","import { migration005PrimaryUniqueRefs } from './migration-005-primary-unique-refs.js';\nimport { migration006IndividualServiceControllers } from './migration-006-individual-service-controllers.js';\nimport { migration007ModelGraphql } from './migration-007-model-graphql.js';\nimport { migration008AnonymousPublicRole } from './migration-008-anonymous-public-role.js';\nimport { migration009RenameRefs } from './migration-009-rename-refs.js';\nimport { migration010HexToOklch } from './migration-010-hex-to-oklch.js';\nimport { migration011PluginId } from './migration-011-plugin-id.js';\nimport { migration012MigrateAuthConfig } from './migration-012-migrate-auth-config.js';\nimport { migration013MoveGeneralSettings } from './migration-013-move-general-settings.js';\nimport { migration014MigratePluginIds } from './migration-014-migrate-plugin-ids.js';\nimport { migration015NullParentRefs } from './migration-015-null-parent-refs.js';\nimport { migration016WebAdminConfig } from './migration-016-web-admin-config.js';\nimport { migration017RenameAuthPlugin } from './migration-017-rename-auth-plugin.js';\nimport { migration018CrudNameFieldRef } from './migration-018-crud-name-field-ref.js';\nimport { migration019ColumnTypeBased } from './migration-019-column-type-based.js';\nimport { migration020MoveRedisToInfrastructure } from './migration-020-move-redis-to-infrastructure.js';\nimport { migration021MigrateBullmqToPlugin } from './migration-021-migrate-bullmq-to-plugin.js';\nimport { migration022RenamePackagesToLibraries } from './migration-022-rename-packages-to-libraries.js';\nimport { migration023AssignAppPorts } from './migration-023-assign-app-ports.js';\nimport { migration024GraphqlObjectTypeFieldAuth } from './migration-024-graphql-object-type-field-auth.js';\nimport { migration025ServiceMethodAuth } from './migration-025-service-method-auth.js';\nimport { migration026QuerySharedRoles } from './migration-026-query-shared-roles.js';\nimport { migration027EnableSentryPlugin } from './migration-027-enable-sentry-plugin.js';\nimport { migration028EnableStripePlugin } from './migration-028-enable-stripe-plugin.js';\nexport const SCHEMA_MIGRATIONS = [\n migration005PrimaryUniqueRefs,\n migration006IndividualServiceControllers,\n migration007ModelGraphql,\n migration008AnonymousPublicRole,\n migration009RenameRefs,\n migration010HexToOklch,\n migration011PluginId,\n migration012MigrateAuthConfig,\n migration013MoveGeneralSettings,\n migration014MigratePluginIds,\n migration015NullParentRefs,\n migration016WebAdminConfig,\n migration017RenameAuthPlugin,\n migration018CrudNameFieldRef,\n migration019ColumnTypeBased,\n migration020MoveRedisToInfrastructure,\n migration021MigrateBullmqToPlugin,\n migration022RenamePackagesToLibraries,\n migration023AssignAppPorts,\n migration024GraphqlObjectTypeFieldAuth,\n migration025ServiceMethodAuth,\n migration026QuerySharedRoles,\n migration027EnableSentryPlugin,\n migration028EnableStripePlugin,\n];\nexport function isMigrateableProjectDefinition(projectDefinition) {\n return (typeof projectDefinition === 'object' &&\n !!projectDefinition &&\n 'schemaVersion' in projectDefinition);\n}\nexport class SchemaMigrationError extends Error {\n migrationName;\n cause;\n constructor(migrationName, cause) {\n super(`Schema migration ${migrationName} failed: ${cause instanceof Error ? cause.message : String(cause)}`);\n this.name = 'SchemaMigrationError';\n this.migrationName = migrationName;\n this.cause = cause;\n }\n}\nexport function runSchemaMigrations(config) {\n const { schemaVersion } = config;\n const unappliedMigrations = SCHEMA_MIGRATIONS.filter((m) => m.version > schemaVersion).toSorted((a, b) => a.version - b.version);\n let migratedDefinition = config;\n for (const migration of unappliedMigrations) {\n try {\n migratedDefinition = {\n ...migration.migrate(migratedDefinition),\n schemaVersion: migration.version,\n };\n }\n catch (cause) {\n throw new SchemaMigrationError(migration.name, cause);\n }\n }\n return { migratedDefinition, appliedMigrations: unappliedMigrations };\n}\nexport function getLatestMigrationVersion() {\n return SCHEMA_MIGRATIONS.at(-1)?.version ?? 0;\n}\n//# sourceMappingURL=index.js.map","import { definitionFixRegistry } from '#src/schema/creator/definition-fix-registry.js';\nimport { transformDataWithSchema } from './transform-data-with-schema.js';\n/**\n * Walks schema+data bottom-up, applying registered fix functions to produce\n * a new data object. Children are fixed before parents, so parent fixes\n * see the already-fixed child values.\n *\n * Applied during the save pipeline after producing changes but before\n * `fixRefDeletions`.\n *\n * Returns the original reference if no fixes were needed.\n */\nexport function applyDefinitionFixes(schema, data) {\n return transformDataWithSchema(schema, data, (value, ctx) => {\n const meta = definitionFixRegistry.get(ctx.schema);\n if (!meta)\n return value;\n let current = value;\n for (const fix of meta.fixes) {\n current = fix(current, { path: ctx.path });\n }\n return current;\n });\n}\n//# sourceMappingURL=apply-definition-fixes.js.map","import { extractDefinitionRefs } from '#src/references/extract-definition-refs.js';\n/**\n * Collects validation issues from expression parsers registered on the schema.\n *\n * Walks the schema+data to find expression annotations, resolves their slots,\n * then calls each parser's `validate()` method. Warnings are mapped to\n * `DefinitionIssue` objects with warning severity.\n *\n * @param schema - The Zod schema to walk\n * @param data - The parsed definition data\n * @param pluginStore - The plugin spec store for validation context\n * @returns Array of definition issues from expression validation\n */\nexport function collectExpressionIssues(schema, data, pluginStore) {\n const refPayload = extractDefinitionRefs(schema, data);\n const context = {\n definition: data,\n pluginStore,\n };\n const issues = [];\n for (const expression of refPayload.expressions) {\n const warnings = expression.parser.validate(expression.value, data, context, expression.resolvedSlots);\n for (const warning of warnings) {\n issues.push({\n message: warning.message,\n path: expression.path,\n severity: 'warning',\n });\n }\n }\n return issues;\n}\n//# sourceMappingURL=collect-expression-issues.js.map","import { get, set } from 'es-toolkit/compat';\n/**\n * Resolves a definition issue's path to an absolute path in the definition.\n *\n * If the issue is scoped to an entity, combines the entity's path with the\n * issue's relative path. If no entity, returns the path as-is.\n */\nexport function resolveIssuePath(issue, container) {\n if (!issue.entityId)\n return issue.path;\n const entity = container.entityFromId(issue.entityId);\n if (!entity)\n return issue.path;\n return [...entity.path, ...issue.path];\n}\n/**\n * Creates a definition issue scoped to a specific entity.\n *\n * Validates that the entity exists in the container and returns an issue\n * with the entity ID and a relative path from the entity root.\n *\n * @param container - The project definition container\n * @param entityId - The entity ID to scope the issue to\n * @param relativePath - Path relative to the entity\n * @param issue - The issue message, severity, and optional fix\n */\nexport function createEntityIssue(container, entityId, relativePath, issue) {\n const entity = container.entityFromId(entityId);\n if (!entity) {\n throw new Error(`Entity not found: ${entityId}`);\n }\n return { ...issue, entityId, path: relativePath };\n}\n/**\n * Creates a definition setter function from an issue's fix.\n *\n * Handles both fix variants:\n * - `applySetter`: returned directly (definition-level fixes)\n * - `apply`: wrapped in a setter that resolves the issue path and applies the\n * local-value transform (field-level fixes)\n *\n * Returns `undefined` if the issue has no fix.\n */\nexport function createIssueFixSetter(issue, container) {\n const { fix } = issue;\n if (!fix)\n return undefined;\n if (fix.applySetter) {\n return fix.applySetter;\n }\n if (fix.apply) {\n const applyFn = fix.apply;\n return (draft) => {\n const absolutePath = resolveIssuePath(issue, container);\n const currentValue = get(draft, absolutePath);\n set(draft, absolutePath, applyFn(currentValue));\n };\n }\n return undefined;\n}\n//# sourceMappingURL=definition-issue-utils.js.map","import { createEntityIssue } from '#src/parser/definition-issue-utils.js';\nimport { authConfigSpec } from '#src/plugins/spec/auth-config-spec.js';\nconst MUTATION_METHODS = ['create', 'update', 'delete'];\n/**\n * Checks that service mutations exposed to GraphQL have roles assigned when auth is enabled.\n *\n * Skips validation when no auth plugin is configured. For each model with\n * enabled service methods that are also exposed via GraphQL mutations,\n * warns if no global roles (or instance roles for update/delete) are assigned.\n */\nexport function checkMutationRoles(container) {\n const { definition, pluginStore } = container;\n const authConfig = pluginStore.use(authConfigSpec);\n // If auth is not configured, skip validation\n if (!authConfig.getAuthConfig(definition)) {\n return [];\n }\n const { models } = definition;\n const issues = [];\n for (const model of models) {\n for (const method of MUTATION_METHODS) {\n const serviceMethod = model.service[method];\n const graphqlMutation = model.graphql.mutations[method];\n if (!serviceMethod.enabled || !graphqlMutation.enabled) {\n continue;\n }\n const hasGlobalRoles = serviceMethod.globalRoles.length > 0;\n const hasInstanceRoles = method !== 'create' &&\n 'instanceRoles' in serviceMethod &&\n serviceMethod.instanceRoles.length > 0;\n if (!hasGlobalRoles && !hasInstanceRoles) {\n issues.push(createEntityIssue(container, model.id, ['service', method, 'globalRoles'], {\n message: `Model '${model.name}' ${method} mutation is exposed to GraphQL but has no roles assigned`,\n severity: 'warning',\n }));\n }\n }\n }\n return issues;\n}\n//# sourceMappingURL=mutation-roles-checker.js.map","import { ModelUtils } from '#src/definition/index.js';\nimport { createEntityIssue } from '#src/parser/definition-issue-utils.js';\n/**\n * Creates a fix that changes the local field's type to match the foreign field's type.\n */\nfunction createTypeMismatchFix(modelId, localField, foreignField) {\n return {\n label: `Change '${localField.name}' type to '${foreignField.type}'`,\n applySetter: (draft) => {\n const draftModel = ModelUtils.byIdOrThrow(draft, modelId);\n const draftField = ModelUtils.getScalarFieldById(draftModel, localField.id);\n // Update the field type and reset options for the new type.\n // For enum fields, copy the enumRef from the foreign field.\n if (foreignField.type === 'enum') {\n draftField.type = 'enum';\n draftField.options = { ...foreignField.options };\n Object.assign(draftField, {\n type: 'enum',\n options: { ...foreignField.options },\n });\n }\n else {\n Object.assign(draftField, {\n type: foreignField.type,\n options: {},\n });\n }\n },\n };\n}\n/**\n * Checks that relation reference pairs have matching scalar field types.\n *\n * For each relation, compares the type of the local scalar field with the\n * type of the foreign scalar field. Emits a warning when types differ.\n */\nexport function checkRelationTypeMismatch(container) {\n const { models } = container.definition;\n const issues = [];\n for (const model of models) {\n const { relations } = model.model;\n for (const [relationIndex, relation] of relations.entries()) {\n const foreignModel = ModelUtils.byId(container.definition, relation.modelRef);\n if (!foreignModel) {\n continue;\n }\n for (const ref of relation.references) {\n const localField = model.model.fields.find((f) => f.id === ref.localRef);\n const foreignField = foreignModel.model.fields.find((f) => f.id === ref.foreignRef);\n if (!localField || !foreignField) {\n continue;\n }\n if (localField.type !== foreignField.type) {\n const fix = createTypeMismatchFix(model.id, localField, foreignField);\n issues.push(createEntityIssue(container, model.id, ['model', 'relations', relationIndex], {\n message: `Relation '${relation.name}' type mismatch: '${localField.name}' is '${localField.type}' but '${foreignField.name}' on '${foreignModel.name}' is '${foreignField.type}'`,\n severity: 'warning',\n fix,\n }));\n }\n }\n }\n }\n return issues;\n}\n//# sourceMappingURL=relation-type-mismatch-checker.js.map","import { definitionIssueCheckerSpec } from '#src/schema/creator/definition-issue-checker-spec.js';\nimport { definitionFieldIssueRegistry } from '#src/schema/creator/definition-issue-registry.js';\nimport { collectExpressionIssues } from './collect-expression-issues.js';\nimport { checkMutationRoles } from './definition-issue-checkers/mutation-roles-checker.js';\nimport { checkRelationTypeMismatch } from './definition-issue-checkers/relation-type-mismatch-checker.js';\nimport { walkDataWithSchema } from './walk-data-with-schema.js';\n/**\n * Built-in definition-level checkers registered at runtime to avoid\n * circular dependencies between schema/creator/ and parser/.\n */\nconst BUILT_IN_CHECKERS = [\n checkRelationTypeMismatch,\n checkMutationRoles,\n];\n/**\n * Splits issues into errors (block save) and warnings (block sync only).\n */\nexport function partitionIssuesBySeverity(issues) {\n const errors = [];\n const warnings = [];\n for (const issue of issues) {\n if (issue.severity === 'error') {\n errors.push(issue);\n }\n else {\n warnings.push(issue);\n }\n }\n return { errors, warnings };\n}\n/**\n * Walks schema+data to collect issues from field-level issue checkers\n * registered via `withIssueChecker`.\n *\n * Field-level checkers operate on the local value at each schema node\n * without access to the full definition.\n */\nexport function collectFieldIssues(schema, data) {\n const issues = [];\n walkDataWithSchema(schema, data, [\n {\n visit(schemaNode, value, ctx) {\n const meta = definitionFieldIssueRegistry.get(schemaNode);\n if (meta) {\n for (const checker of meta.checkers) {\n const results = checker(value);\n for (const result of results) {\n const path = [...ctx.entityRelativePath, ...result.path];\n if (ctx.entityId) {\n issues.push({ ...result, entityId: ctx.entityId, path });\n }\n else {\n issues.push({ ...result, path });\n }\n }\n }\n }\n return undefined;\n },\n },\n ]);\n return issues;\n}\n/**\n * Collects all definition issues from both field-level and definition-level checkers.\n *\n * - Field-level checkers are registered on schema nodes via `withIssueChecker`\n * and operate on local values.\n * - Definition-level checkers are registered via `definitionIssueCheckerSpec`\n * and operate on the full project definition.\n *\n * Error-severity issues block saving; warning-severity issues allow saving but block syncing.\n */\nexport function collectDefinitionIssues(container) {\n const { schema, definition, pluginStore } = container;\n // Collect field-level issues from schema walk\n const issues = collectFieldIssues(schema, definition);\n // Collect definition-level issues from built-in checkers\n for (const checker of BUILT_IN_CHECKERS) {\n const result = checker(container);\n issues.push(...result);\n }\n // Collect definition-level issues from plugin spec checkers\n const checkerSpec = pluginStore.use(definitionIssueCheckerSpec);\n for (const checker of checkerSpec.getAllCheckers().values()) {\n const result = checker(container);\n issues.push(...result);\n }\n // Collect expression validation issues\n const expressionIssues = collectExpressionIssues(schema, definition, pluginStore);\n issues.push(...expressionIssues);\n return issues;\n}\n//# sourceMappingURL=collect-definition-issues.js.map","/**\n * Abstract base class for package type compilers\n *\n * Each package type (backend, web, library, etc.) extends this class\n * to define how it should be compiled into a PackageEntry with generator bundles.\n *\n * Each child class defines its own constructor requirements based on what\n * information it needs (e.g., app config, definition container).\n */\nexport class PackageCompiler {\n definitionContainer;\n constructor(definitionContainer) {\n this.definitionContainer = definitionContainer;\n }\n /**\n * Get the tasks for a package used in turbo configuration\n *\n * @returns Object with build, check, dev, and watch tasks\n */\n getTasks() {\n return {\n build: [],\n check: [],\n dev: [],\n watch: [],\n };\n }\n}\n// ============================================================================\n// Package Directory Helpers\n// ============================================================================\nexport const DEFAULT_APPS_FOLDER = 'apps';\nexport const DEFAULT_LIBRARIES_FOLDER = 'libs';\n/**\n * Build a scoped package name using the package scope or project name as scope\n *\n * @example\n * ```typescript\n * buildPackageName({ name: 'blog', packageScope: 'acme' }, 'utils')\n * // Returns: '@acme/utils'\n *\n * buildPackageName({ name: 'blog', packageScope: '' }, 'utils')\n * // Returns: '@blog/utils'\n * ```\n */\nexport function buildPackageName(generalSettings, packageName) {\n const scope = generalSettings.packageScope || generalSettings.name;\n return `@${scope}/${packageName}`;\n}\n/**\n * Get the package directory for an app or library package based off\n * the monorepo settings and package name\n */\nexport function getPackageDirectory(monorepoSettings, packageName, packageType) {\n const folder = packageType === 'app'\n ? (monorepoSettings?.appsFolder ?? DEFAULT_APPS_FOLDER)\n : (monorepoSettings?.librariesFolder ?? DEFAULT_LIBRARIES_FOLDER);\n return `${folder}/${packageName}`;\n}\n// ============================================================================\n// Library Compiler Base Class\n// ============================================================================\n/**\n * Abstract base class for library package compilers\n *\n * Library packages differ from app packages in that they:\n * - Don't use the plugin system (no AppEntryBuilder)\n * - Use the librariesFolder instead of appsFolder\n * - Have simpler compilation without app-specific features\n */\nexport class LibraryCompiler extends PackageCompiler {\n packageConfig;\n constructor(definitionContainer, packageConfig) {\n super(definitionContainer);\n this.packageConfig = packageConfig;\n }\n getPackageName() {\n const generalSettings = this.definitionContainer.definition.settings.general;\n return buildPackageName(generalSettings, this.packageConfig.name);\n }\n getPackageDirectory() {\n const monorepoSettings = this.definitionContainer.definition.settings.monorepo;\n return getPackageDirectory(monorepoSettings, this.packageConfig.name, 'library');\n }\n}\n//# sourceMappingURL=package-compiler-types.js.map","import { isPlainObject } from 'es-toolkit';\nimport { get } from 'es-toolkit/compat';\n/**\n * Navigates from a starting object through a schema relative path to reach the entity array.\n * Returns the array at the end of the path, or throws an error if the path is invalid.\n */\nfunction navigateToEntityArrayFromSchemaPath(obj, relativePath, pathPrefix) {\n let current = obj;\n const path = [...pathPrefix];\n for (const element of relativePath) {\n switch (element.type) {\n case 'object-key': {\n if (!isPlainObject(current)) {\n throw new TypeError(`Expected object at path \"${path.join('.')}\" but got ${typeof current}`);\n }\n current = current[element.key];\n path.push(element.key);\n break;\n }\n case 'tuple-index': {\n if (!Array.isArray(current)) {\n throw new TypeError(`Expected array at path \"${path.join('.')}\" but got ${typeof current}`);\n }\n current = current[element.index];\n path.push(element.index);\n break;\n }\n case 'discriminated-union-array': {\n // Enter the array and find the unique element matching the discriminator\n if (!Array.isArray(current)) {\n throw new TypeError(`Expected array at path \"${path.join('.')}\" but got ${typeof current}`);\n }\n const match = current.findIndex((item) => {\n if (!isPlainObject(item)) {\n throw new TypeError(`Expected object at path \"${path.join('.')}\" but got ${typeof item}`);\n }\n return item[element.discriminatorKey] === element.value;\n });\n if (match === -1) {\n throw new Error(`No element found in array at path \"${path.join('.')}\" with discriminator key \"${element.discriminatorKey}\" and value \"${element.value}\"`);\n }\n current = current[match];\n path.push(match);\n break;\n }\n case 'array': {\n throw new Error(`Cannot navigate through plain array at path \"${path.join('.')}\": non-deterministic structure`);\n }\n case 'record': {\n throw new Error(`Cannot navigate through record at path \"${path.join('.')}\": non-deterministic structure`);\n }\n }\n }\n if (!Array.isArray(current)) {\n throw new TypeError(`Expected array at path \"${path.join('.')}\" but got ${typeof current}`);\n }\n return { array: current, path };\n}\n/**\n * Finds the entity array containing entities of the given type.\n *\n * For top-level types: navigates from the definition root.\n * For nested types: finds the parent entity by ID, then navigates from there.\n */\nexport function resolveEntityArray(entityTypeName, parentEntityId, { entityTypeMap, lookupEntity, serializedDefinition }) {\n const metadata = entityTypeMap.get(entityTypeName);\n if (!metadata) {\n throw new Error(`Unknown entity type: ${entityTypeName}`);\n }\n let startPath = [];\n if (metadata.parentEntityTypeName) {\n // Nested entity: find the parent first\n if (!parentEntityId) {\n throw new Error(`Entity type \"${entityTypeName}\" requires a parent entity ID (parent type: \"${metadata.parentEntityTypeName}\")`);\n }\n const parentResult = lookupEntity(parentEntityId);\n if (!parentResult) {\n throw new Error(`Parent entity \"${parentEntityId}\" not found for entity type \"${entityTypeName}\"`);\n }\n startPath = parentResult.path;\n }\n const parentEntity = (startPath.length === 0\n ? serializedDefinition\n : get(serializedDefinition, startPath));\n if (!isPlainObject(parentEntity)) {\n throw new Error(`Parent entity at path \"${startPath.join('.')}\" is not a plain object`);\n }\n return navigateToEntityArrayFromSchemaPath(parentEntity, metadata.relativePath, startPath);\n}\n//# sourceMappingURL=entity-navigation.js.map","import { isPlainObject } from 'es-toolkit';\nimport { get } from 'es-toolkit/compat';\nimport { getEntityName } from '../merge-schema/entity-utils.js';\nimport { resolveEntityArray } from './entity-navigation.js';\n/**\n * Lists all entities of a given type, returning lightweight stubs.\n *\n * For nested entity types, `parentEntityId` is required to scope the listing\n * to entities within a specific parent.\n *\n * @param container - The project definition container\n * @param entityTypeMap - The entity type map built from the schema\n * @param entityTypeName - The entity type to list\n * @param parentEntityId - Required for nested entity types\n * @returns Array of entity stubs with id, name, and type\n */\nexport function listEntities({ entityTypeName, parentEntityId }, context) {\n const metadata = context.entityTypeMap.get(entityTypeName);\n if (!metadata) {\n throw new Error(`Unknown entity type: ${entityTypeName}`);\n }\n const { array, path } = resolveEntityArray(entityTypeName, parentEntityId, context);\n return array.map((item, index) => {\n if (!isPlainObject(item)) {\n throw new TypeError(`Expected plain object at path \"${path.join('.')}[${index}]\" but got ${typeof item}`);\n }\n const id = get(item, metadata.entityMeta.idPath);\n if (typeof id !== 'string') {\n throw new TypeError(`Expected string id at path \"${metadata.entityMeta.idPath.join('.')}\" but got ${typeof id}`);\n }\n const name = getEntityName(metadata.entityMeta, item);\n return { id, name, type: entityTypeName };\n });\n}\n/**\n * Gets a single entity by ID, returning its full serialized (name-based) data.\n *\n * @param container - The project definition container\n * @param entityTypeMap - The entity type map built from the schema\n * @param serializedDef - The serialized project definition (with names)\n * @param entityTypeName - The entity type to get\n * @param entityId - The entity ID\n * @returns The serialized entity data, or undefined if not found\n */\nexport function getEntity(entityId, context) {\n const result = context.lookupEntity(entityId);\n if (!result) {\n return undefined;\n }\n const item = get(context.serializedDefinition, result.path);\n if (!isPlainObject(item)) {\n throw new TypeError(`Expected plain object at path \"${result.path.join('.')}\" but got ${typeof item}`);\n }\n return item;\n}\n//# sourceMappingURL=entity-read.js.map","import { immutableSet } from '@baseplate-dev/utils';\nimport { get } from 'es-toolkit/compat';\nimport { transformDataWithSchema } from '#src/parser/transform-data-with-schema.js';\nimport { getEntityMeta } from './merge-schema/entity-utils.js';\n/**\n * Recursively assigns IDs to an entity and all nested child entities.\n *\n * Walks the schema using `transformDataWithSchema` to detect entity nodes\n * (via `getEntityMeta`). At each entity boundary, generates a new ID unless\n * the existing ID is preserved by the `isExistingId` callback.\n *\n * Returns a new object with IDs assigned (immutable, structural sharing).\n */\nexport function assignEntityIds(schema, data, options) {\n return transformDataWithSchema(schema, data, (value, ctx) => {\n const entityMeta = getEntityMeta(ctx.schema);\n if (!entityMeta) {\n return value;\n }\n if (value === null || value === undefined || typeof value !== 'object') {\n return value;\n }\n const currentId = get(value, entityMeta.idPath);\n if (currentId !== undefined && typeof currentId !== 'string') {\n throw new TypeError(`Expected string id at path \"${entityMeta.idPath.join('.')}\" but got ${typeof currentId}`);\n }\n if (currentId && options?.isExistingId?.(currentId)) {\n return value;\n }\n const newId = entityMeta.type.generateNewId();\n return immutableSet(value, entityMeta.idPath, newId);\n });\n}\n//# sourceMappingURL=assign-entity-ids.js.map","import { isPlainObject } from 'es-toolkit';\nimport { get } from 'es-toolkit/compat';\nimport { produce } from 'immer';\nimport { assignEntityIds } from '../assign-entity-ids.js';\nimport { resolveEntityArray } from './entity-navigation.js';\n/**\n * Creates a new entity in the definition.\n *\n * Generates a new ID for the entity using the entity type's ID generation.\n * For nested entity types, `parentEntityId` specifies which parent to add to.\n *\n * @returns A new definition with the entity added (original is not modified)\n */\nexport function createEntity({ entityTypeName, entityData, parentEntityId }, context) {\n const metadata = context.entityTypeMap.get(entityTypeName);\n if (!metadata) {\n throw new Error(`Unknown entity type: ${entityTypeName}`);\n }\n // Resolve the array path on the original definition\n const { path } = resolveEntityArray(entityTypeName, parentEntityId, context);\n // Assign IDs to the entity and all nested child entities\n const entityWithIds = assignEntityIds(metadata.elementSchema, entityData);\n return produce(context.serializedDefinition, (draft) => {\n const array = get(draft, path);\n if (!Array.isArray(array)) {\n throw new TypeError(`Expected array at path \"${path.join('.')}\" but got ${typeof array}`);\n }\n array.push(entityWithIds);\n });\n}\n/**\n * Updates an existing entity by ID.\n *\n * Replaces the entity data while preserving the entity's ID.\n *\n * @returns A new definition with the entity updated (original is not modified)\n */\nexport function updateEntity({ entityTypeName, entityId, entityData }, context) {\n const metadata = context.entityTypeMap.get(entityTypeName);\n if (!metadata) {\n throw new Error(`Unknown entity type: ${entityTypeName}`);\n }\n // Verify the entity exists and get its path\n const entity = context.lookupEntity(entityId);\n if (!entity) {\n throw new Error(`Entity \"${entityId}\" of type \"${entityTypeName}\" not found`);\n }\n // Preserve the ID in the updated data but populate any children entities with new IDs if they don't have an ID yet.\n const updatedEntity = assignEntityIds(metadata.elementSchema, entityData, {\n isExistingId: (id) => !!context.lookupEntity(id),\n });\n return produce(context.serializedDefinition, (draft) => {\n const target = get(draft, entity.path);\n if (!isPlainObject(target)) {\n throw new TypeError(`Expected plain object at path \"${entity.path.join('.')}\" but got ${typeof target}`);\n }\n // Find the parent array and the entity's index within it\n const parentPath = entity.path.slice(0, -1);\n const entityIndex = entity.path.at(-1);\n if (typeof entityIndex !== 'number') {\n throw new TypeError(`Expected numeric index at end of entity path \"${entity.path.join('.')}\"`);\n }\n const parentArray = get(draft, parentPath);\n if (!Array.isArray(parentArray)) {\n throw new TypeError(`Expected array at path \"${parentPath.join('.')}\" but got ${typeof parentArray}`);\n }\n parentArray[entityIndex] = updatedEntity;\n });\n}\n/**\n * Deletes an entity by ID.\n *\n * @returns A new definition with the entity removed (original is not modified)\n */\nexport function deleteEntity({ entityTypeName, entityId }, context) {\n const metadata = context.entityTypeMap.get(entityTypeName);\n if (!metadata) {\n throw new Error(`Unknown entity type: ${entityTypeName}`);\n }\n // Verify the entity exists and get its path\n const entity = context.lookupEntity(entityId);\n if (!entity) {\n throw new Error(`Entity \"${entityId}\" of type \"${entityTypeName}\" not found`);\n }\n // Find the parent array and remove the entity by index\n const parentPath = entity.path.slice(0, -1);\n const entityIndex = entity.path.at(-1);\n if (typeof entityIndex !== 'number') {\n throw new TypeError(`Expected numeric index at end of entity path \"${entity.path.join('.')}\"`);\n }\n return produce(context.serializedDefinition, (draft) => {\n const parentArray = get(draft, parentPath);\n if (!Array.isArray(parentArray)) {\n throw new TypeError(`Expected array at path \"${parentPath.join('.')}\" but got ${typeof parentArray}`);\n }\n parentArray.splice(entityIndex, 1);\n });\n}\n//# sourceMappingURL=entity-write.js.map","import { toMerged } from 'es-toolkit';\nimport { getSchemaChildren } from '#src/parser/schema-structure.js';\nimport { assignEntityIds } from '../assign-entity-ids.js';\nimport { getEntityMeta, getEntityName } from './entity-utils.js';\nimport { getMergeRule } from './merge-rule-registry.js';\n/**\n * Merges two values according to the given Zod schema and any registered merge rules.\n *\n * Default behaviors:\n * - Leaf scalar → desired replaces current\n * - Object → merge fields recursively; `undefined` desired fields keep current value (partial patch)\n * - Array whose element has `withEnt` annotation → merge by entity name (add-only, order-preserving)\n * - Any other array → full replace with desired\n * - Wrapper (optional/nullable/default) → descend to inner schema\n * - Discriminated union → find matching branch by discriminator, merge\n *\n * Explicit rules from `withMergeRule` override the defaults:\n * - `replace` → always return desired value\n * - `by-key` → merge array by a custom key function (add-only)\n */\nexport function mergeDataWithSchema(schema, current, desired) {\n return mergeDataWithSchemaInternal(schema, current, desired);\n}\n/**\n * Internal untyped implementation of the schema-driven merge walker.\n */\nfunction mergeDataWithSchemaInternal(schema, current, desired) {\n // If desired is undefined, always keep current (partial patch semantics)\n if (desired === undefined) {\n return current;\n }\n // Check for explicit merge rule registered via withMergeRule\n const rule = getMergeRule(schema);\n if (rule) {\n switch (rule.kind) {\n case 'replace': {\n return desired;\n }\n case 'by-key': {\n return mergeByKey(current, desired, rule.getKey);\n }\n }\n }\n const children = getSchemaChildren(schema, desired, []);\n switch (children.kind) {\n case 'leaf':\n case 'leaf-union': {\n return desired;\n }\n case 'wrapper': {\n return mergeDataWithSchemaInternal(children.innerSchema, current, desired);\n }\n case 'object': {\n const currentObj = (current ?? {});\n const desiredObj = desired;\n const merged = { ...currentObj };\n for (const [key, fieldSchema] of children.entries) {\n const desiredValue = desiredObj[key];\n if (desiredValue === undefined) {\n // Keep current value — partial patch semantics\n continue;\n }\n merged[key] = mergeDataWithSchemaInternal(fieldSchema, currentObj[key], desiredValue);\n }\n return merged;\n }\n case 'array': {\n const { elementSchema } = children;\n const entityMeta = getEntityMeta(elementSchema);\n // Auto-detect entity arrays: merge by `name` field\n if (entityMeta) {\n return mergeEntityArray(current, desired, elementSchema, entityMeta);\n }\n // Default: full replace\n return desired;\n }\n case 'discriminated-union': {\n if (!children.match) {\n // No matching branch found for desired — replace\n return desired;\n }\n // If current matches a different branch, replace to avoid leaking stale fields\n const currentChildren = getSchemaChildren(schema, current, []);\n if (currentChildren.kind !== 'discriminated-union' ||\n currentChildren.match !== children.match) {\n return desired;\n }\n return mergeDataWithSchemaInternal(children.match, current, desired);\n }\n case 'tuple':\n case 'record':\n case 'intersection': {\n // For these structural types, default to full replace\n return desired;\n }\n }\n}\n/**\n * Merges an array of entity objects by name (add-only, order-preserving).\n *\n * - Current items are kept in their original order\n * - Matched items (by name) are merged recursively via schema\n * - Current items not in desired are kept as-is\n * - New desired items are appended at the end with fresh generated IDs\n */\nfunction mergeEntityArray(current, desired, elementSchema, entityMeta) {\n const currentItems = current ?? [];\n const desiredByName = new Map(desired.map((item) => [getEntityName(entityMeta, item), item]));\n const seen = new Set();\n const result = [];\n // Walk current items in order — merge matched, keep unmatched\n for (const currentItem of currentItems) {\n const name = getEntityName(entityMeta, currentItem);\n const desiredItem = desiredByName.get(name);\n if (desiredItem) {\n result.push(mergeDataWithSchemaInternal(elementSchema, currentItem, desiredItem));\n seen.add(name);\n }\n else {\n result.push(currentItem);\n }\n }\n // Append new desired items at the end, with fresh IDs\n for (const desiredItem of desired) {\n const name = getEntityName(entityMeta, desiredItem);\n if (!seen.has(name)) {\n const baseItem = assignEntityIds(elementSchema, desiredItem);\n result.push(mergeDataWithSchemaInternal(elementSchema, {}, baseItem));\n seen.add(name);\n }\n }\n return result;\n}\n/**\n * Merges an array by a custom key function (add-only).\n *\n * - Items in `desired` that match a `current` item (by key) are merged with `toMerged`\n * - Items in `desired` not in `current` are appended\n * - Items in `current` not in `desired` are kept (add-only semantics)\n */\nfunction mergeByKey(current, desired, getKey) {\n const currentItems = current ?? [];\n const desiredByKey = new Map(desired.map((item) => [getKey(item), item]));\n const seen = new Set();\n const result = [];\n // Walk current items in order — merge matched, keep unmatched\n for (const currentItem of currentItems) {\n const key = getKey(currentItem);\n const desiredItem = desiredByKey.get(key);\n if (desiredItem) {\n result.push(toMerged(currentItem, desiredItem));\n seen.add(key);\n }\n else {\n result.push(currentItem);\n }\n }\n // Append new desired items (not in current) at the end\n for (const desiredItem of desired) {\n const key = getKey(desiredItem);\n if (!seen.has(key)) {\n result.push(desiredItem);\n seen.add(key);\n }\n }\n return result;\n}\n//# sourceMappingURL=merge-data-with-schema.js.map","import { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js';\nimport { serializeSchema } from '#src/references/serialize-schema.js';\nimport { mergeDataWithSchema } from './merge-data-with-schema.js';\n/**\n * Merges a partial serialized definition into a project definition,\n * returning the merged serialized definition (input form with names, not IDs).\n *\n * Uses a schema-driven merge:\n * 1. Serialize the current definition (IDs → names)\n * 2. Merge the partial definition into the serialized definition using `mergeDataWithSchema`\n *\n * Entity arrays (models, fields, relations, etc.) are auto-merged by name.\n * Non-entity arrays use `withMergeRule` annotations or default to full-replace.\n * Undefined fields in `partialDef` are untouched (partial patch semantics).\n *\n * @param schema - The project definition Zod schema\n * @param definition - The current parsed project definition (with IDs)\n * @param partialDef - A partial serialized definition to merge in (uses entity names, not IDs)\n * @returns The merged serialized definition (input form)\n */\nexport function mergeDefinition(schema, definition, partialDef) {\n const serializedDef = serializeSchema(schema, definition);\n return mergeDataWithSchema(schema, serializedDef, partialDef);\n}\n/**\n * Merges a partial serialized definition and returns a new ProjectDefinitionContainer.\n *\n * Convenience wrapper around `mergeDefinition` that performs the full round-trip:\n * serialize → merge → deserialize (names → IDs).\n *\n * @param container - The current project definition container\n * @param partialDef - A partial serialized definition to merge in (uses entity names, not IDs)\n * @returns A new ProjectDefinitionContainer with the merged definition\n */\nexport function mergeDefinitionContainer(container, partialDef) {\n const merged = mergeDefinition(container.schema, container.definition, partialDef);\n return ProjectDefinitionContainer.fromSerializedConfig(merged, container.parserContext);\n}\n/**\n * Creates a function that applies a partial definition merge to a draft config.\n * Use with `saveDefinitionWithFeedback`.\n *\n * @param container - The current project definition container\n * @param partialDef - A partial serialized definition to merge in\n * @returns A setter function that replaces the draft config with the merged definition\n */\nexport function applyMergedDefinition(container, partialDef) {\n const mergedContainer = mergeDefinitionContainer(container, partialDef);\n return (draftConfig) => {\n Object.assign(draftConfig, mergedContainer.definition);\n };\n}\n//# sourceMappingURL=merge-definition.js.map","import { getSchemaChildren } from '#src/parser/schema-structure.js';\nimport { getEntityMeta } from './entity-utils.js';\n/**\n * Unwraps wrapper schemas (optional, nullable, default, prefault, readonly)\n * to reach the underlying structural schema.\n */\nfunction unwrapSchema(schema) {\n const children = getSchemaChildren(schema, undefined, []);\n if (children.kind === 'wrapper') {\n return unwrapSchema(children.innerSchema);\n }\n return schema;\n}\n/**\n * Recursively walks a Zod schema (without data) and collects all entity arrays.\n *\n * Unlike `walkDataWithSchema`, this operates on the schema structure alone.\n * For discriminated unions, it walks all branches (since there's no data to\n * pick a specific branch). Entity arrays are detected via `definitionRefRegistry`\n * entity metadata on array element schemas.\n *\n * @param schema - The root Zod schema to walk\n * @returns All entity arrays found, with their paths and metadata\n */\nexport function collectEntityArrays(schema) {\n const result = [];\n walkSchemaNode(schema, [], result, new Set());\n return result;\n}\nfunction walkSchemaNode(schema, pathParts, result, visited) {\n // Guard against circular references\n if (visited.has(schema)) {\n return;\n }\n visited.add(schema);\n const children = getSchemaChildren(schema, undefined, []);\n switch (children.kind) {\n case 'leaf':\n case 'leaf-union': {\n break;\n }\n case 'wrapper': {\n walkSchemaNode(children.innerSchema, pathParts, result, visited);\n break;\n }\n case 'object': {\n for (const [key, fieldSchema] of children.entries) {\n walkSchemaNode(fieldSchema, [...pathParts, key], result, visited);\n }\n break;\n }\n case 'array': {\n const entityMeta = getEntityMeta(children.elementSchema);\n if (entityMeta) {\n result.push({\n path: pathParts.join('.'),\n entityMeta,\n elementSchema: children.elementSchema,\n });\n }\n // Continue walking inside array elements using `*` as path segment\n walkSchemaNode(children.elementSchema, [...pathParts, '*'], result, visited);\n break;\n }\n case 'discriminated-union': {\n // Walk all branches since we don't have data to pick one\n const unwrapped = unwrapSchema(schema);\n for (const option of unwrapped.options) {\n walkSchemaNode(option, pathParts, result, visited);\n }\n break;\n }\n case 'tuple': {\n for (const [i, itemSchema] of children.items.entries()) {\n walkSchemaNode(itemSchema, [...pathParts, String(i)], result, visited);\n }\n if (children.rest) {\n walkSchemaNode(children.rest, [...pathParts, '*'], result, visited);\n }\n break;\n }\n case 'record': {\n walkSchemaNode(children.valueSchema, [...pathParts, '*'], result, visited);\n break;\n }\n case 'intersection': {\n walkSchemaNode(children.left, pathParts, result, visited);\n walkSchemaNode(children.right, pathParts, result, visited);\n break;\n }\n }\n visited.delete(schema);\n}\n//# sourceMappingURL=walk-schema.js.map","import { isEqual } from 'es-toolkit';\nimport { capitalize } from 'es-toolkit/compat';\nimport { serializeSchema } from '#src/references/serialize-schema.js';\nimport { getEntityName } from './entity-utils.js';\nimport { mergeDefinition } from './merge-definition.js';\nimport { collectEntityArrays } from './walk-schema.js';\n// ---------------------------------------------------------------------------\n// Entity array diffing\n// ---------------------------------------------------------------------------\n/**\n * Diffs an entity array by the `name` field.\n *\n * When `scopeToNames` is provided, only those entities are compared — this prevents\n * showing \"removed\" entries for entities that the partial doesn't care about.\n * When omitted, all entities in both arrays are compared.\n */\nfunction diffEntityArray(path, entityMeta, currentArray, otherArray, scopeToNames) {\n const entries = [];\n const label = capitalize(entityMeta.type.name);\n const currentByName = new Map(currentArray.map((item) => [getEntityName(entityMeta, item), item]));\n const otherByName = new Map(otherArray.map((item) => [getEntityName(entityMeta, item), item]));\n const namesToDiff = scopeToNames ?? new Set([...currentByName.keys(), ...otherByName.keys()]);\n for (const name of namesToDiff) {\n const currentItem = currentByName.get(name);\n const otherItem = otherByName.get(name);\n if (!currentItem && otherItem) {\n entries.push({\n path,\n label: `${label}: ${name}`,\n type: 'added',\n current: undefined,\n merged: otherItem,\n });\n }\n else if (currentItem && !otherItem) {\n entries.push({\n path,\n label: `${label}: ${name}`,\n type: 'removed',\n current: currentItem,\n merged: undefined,\n });\n }\n else if (currentItem && otherItem && !isEqual(currentItem, otherItem)) {\n entries.push({\n path,\n label: `${label}: ${name}`,\n type: 'updated',\n current: currentItem,\n merged: otherItem,\n });\n }\n }\n return entries;\n}\n/**\n * Compares two serialized project definitions at the entity level, producing\n * diff entries for added, updated, and removed entities/fields.\n *\n * Both definitions should be in serialized form (with entity names, not IDs).\n *\n * @param schema - The project definition Zod schema\n * @param currentDef - The current serialized definition\n * @param otherDef - The other serialized definition to compare against\n * @param options - Optional scoping options\n * @returns Entity-level diff entries\n */\nexport function diffSerializedDefinitions(schema, currentDef, otherDef, options) {\n const entityArrayInfoByKey = new Map(collectEntityArrays(schema)\n .filter((info) => !info.path.includes('.'))\n .map((info) => [info.path, info]));\n const entries = [];\n const keysToCompare = options?.scopeToKeys ??\n new Set([...Object.keys(currentDef), ...Object.keys(otherDef)]);\n for (const key of keysToCompare) {\n const currentValue = currentDef[key];\n const otherValue = otherDef[key];\n if (isEqual(currentValue, otherValue)) {\n continue;\n }\n const entityInfo = entityArrayInfoByKey.get(key);\n if (entityInfo) {\n const currentArray = (Array.isArray(currentValue) ? currentValue : []);\n const otherArray = (Array.isArray(otherValue) ? otherValue : []);\n const scopeToNames = options?.entityNamesByKey?.get(key);\n entries.push(...diffEntityArray(key, entityInfo.entityMeta, currentArray, otherArray, scopeToNames));\n }\n else {\n const label = capitalize(key);\n if (currentValue === undefined) {\n entries.push({\n path: key,\n label,\n type: 'added',\n current: undefined,\n merged: otherValue,\n });\n }\n else if (otherValue === undefined) {\n entries.push({\n path: key,\n label,\n type: 'removed',\n current: currentValue,\n merged: undefined,\n });\n }\n else {\n entries.push({\n path: key,\n label,\n type: 'updated',\n current: currentValue,\n merged: otherValue,\n });\n }\n }\n }\n return {\n hasChanges: entries.length > 0,\n entries,\n };\n}\n// ---------------------------------------------------------------------------\n// High-level diff with merge\n// ---------------------------------------------------------------------------\n/**\n * Computes a structured, entity-grouped diff between the current project definition\n * and the result of merging a partial definition into it.\n *\n * For top-level entity arrays (models, apps, enums, libraries, features), produces\n * one entry per entity that was added, updated, or removed — detected via schema\n * entity metadata (`withEnt` annotations) using `collectEntityArrays`. For other\n * top-level fields (settings, plugins, etc.), produces one entry per changed field.\n *\n * @param schema - The project definition Zod schema\n * @param definition - The current parsed project definition (with IDs)\n * @param partialDef - A partial serialized definition to merge in\n * @returns A structured diff with entity-level entries\n */\nexport function diffDefinition(schema, definition, partialDef) {\n const serializedDef = serializeSchema(schema, definition);\n const mergedDef = mergeDefinition(schema, definition, partialDef);\n const partialObj = partialDef;\n const scopeToKeys = new Set(Object.keys(partialObj));\n // Build entity name scopes from the partial definition\n const entityArrayInfoByKey = new Map(collectEntityArrays(schema)\n .filter((info) => !info.path.includes('.'))\n .map((info) => [info.path, info]));\n const entityNamesByKey = new Map();\n for (const key of scopeToKeys) {\n const entityInfo = entityArrayInfoByKey.get(key);\n if (entityInfo) {\n const partialArray = (Array.isArray(partialObj[key]) ? partialObj[key] : []);\n entityNamesByKey.set(key, new Set(partialArray.map((item) => getEntityName(entityInfo.entityMeta, item))));\n }\n }\n return diffSerializedDefinitions(schema, serializedDef, mergedDef, {\n scopeToKeys,\n entityNamesByKey,\n });\n}\n//# sourceMappingURL=diff-definition.js.map","export const SCALAR_FIELD_TYPES = [\n 'string',\n 'uuid',\n 'int',\n 'boolean',\n 'dateTime',\n 'float',\n 'decimal',\n 'json',\n 'date',\n 'enum',\n];\n//# sourceMappingURL=field-types.js.map","import { COLOR_PALETTES, FIXED_COLOR_MAPPINGS } from '#src/constants/colors.js';\nimport { convertOklchToHex } from './color-conversions.js';\n/**\n * Convert a color name to a hex color. Can be one of the following:\n * - A fixed color name (e.g. 'white', 'black').\n * - A color palette name (e.g. 'slate-500', 'gray-300').\n * - A hex color (e.g. '#ff0000').\n * - A OKLCH color (e.g. 'oklch(0.5 0.2 180 / 0.3)').\n *\n * @param color - The color name to convert.\n * @returns The OKLCH color.\n */\nexport function convertColorNameToOklch(color) {\n const fixedColorMapping = FIXED_COLOR_MAPPINGS[color];\n if (fixedColorMapping) {\n return fixedColorMapping;\n }\n const colorComponents = color.split('-');\n if (colorComponents.length === 2) {\n const paletteName = colorComponents[0];\n if (Object.prototype.hasOwnProperty.call(COLOR_PALETTES, paletteName)) {\n const palette = COLOR_PALETTES[colorComponents[0]];\n const shade = palette[colorComponents[1]];\n if (shade) {\n return shade;\n }\n }\n }\n return color;\n}\nlet reverseColorMapping = null;\nfunction getReverseColorMapping() {\n if (!reverseColorMapping) {\n reverseColorMapping = {};\n for (const [key, value] of Object.entries(FIXED_COLOR_MAPPINGS)) {\n reverseColorMapping[value] = key;\n }\n for (const [paletteName, palette] of Object.entries(COLOR_PALETTES)) {\n for (const [shade, hex] of Object.entries(palette)) {\n reverseColorMapping[hex] = `${paletteName}-${shade}`;\n }\n }\n }\n return reverseColorMapping;\n}\n/**\n * Convert an OKLCH color to a color name.\n * @param oklch - The OKLCH color to convert.\n * @returns The color name.\n */\nexport function convertOklchToColorName(oklch) {\n return getReverseColorMapping()[oklch] ?? convertOklchToHex(oklch);\n}\n//# sourceMappingURL=color-names.js.map","/**\n * Allows diffing of arbitrary JSON objects.\n */\nimport { cloneDeep, mapValues, omit, toMerged } from 'es-toolkit';\nimport { get, isMatch, set } from 'es-toolkit/compat';\nclass DefinitionDiffField {\n /**\n * The name of the field to be presented to the user.\n */\n name;\n constructor(name) {\n this.name = name;\n }\n}\n/**\n * A field that is an array of objects with a unique key.\n */\nexport class DefinitionDiffKeyedArrayField extends DefinitionDiffField {\n getKey;\n options;\n constructor(name, getKey, options = {}) {\n super(name);\n this.getKey = getKey;\n this.options = options;\n }\n diff(current, desired) {\n const currentValue = current ?? [];\n const desiredValue = desired ?? [];\n if (!Array.isArray(currentValue) || !Array.isArray(desiredValue)) {\n throw new TypeError('Current and desired must be arrays');\n }\n const ops = [];\n const { allowRemove, ignoreFields = ['id'] } = this.options;\n const currentByKey = new Map(currentValue.map((item) => [this.getKey(item), item]));\n const desiredByKey = new Map(desiredValue.map((item) => [this.getKey(item), item]));\n for (const [key, desiredItem] of desiredByKey) {\n const currentItem = currentByKey.get(key);\n if (!currentItem) {\n ops.push({ type: 'add', key, item: desiredItem });\n continue;\n }\n if (!isMatch(omit(currentItem, ignoreFields), omit(desiredItem, ignoreFields))) {\n ops.push({ type: 'update', key, item: desiredItem });\n }\n }\n if (allowRemove) {\n for (const [key, currentItem] of currentByKey) {\n if (!desiredByKey.has(key)) {\n ops.push({ type: 'remove', key, item: currentItem });\n }\n }\n }\n return ops;\n }\n apply(current, diff) {\n const patch = diff;\n const currentValue = current ?? [];\n if (!Array.isArray(currentValue)) {\n throw new TypeError('Current must be array');\n }\n const items = [...currentValue];\n for (const { type, key, item } of patch) {\n const index = items.findIndex((i) => this.getKey(i) === key);\n switch (type) {\n case 'add': {\n items.push(item);\n break;\n }\n case 'update': {\n if (index === -1) {\n throw new Error(`Cannot apply patch. Item with key \"${key}\" not found.`);\n }\n // Preserve existing id if present.\n items[index] = toMerged(items[index], item);\n break;\n }\n case 'remove': {\n if (index !== -1) {\n items.splice(index, 1);\n }\n break;\n }\n }\n }\n return items;\n }\n getActionVerb(isNew) {\n return isNew ? 'created' : 'added or updated';\n }\n}\n/**\n * A field that is a replacement for the entire object or array.\n */\nexport class DefinitionDiffReplacementField extends DefinitionDiffField {\n diff(current, desired) {\n if (desired === undefined) {\n return [];\n }\n if (!isMatch(current, desired)) {\n return [{ type: 'update', key: '*', item: desired }];\n }\n return [];\n }\n apply(current, diff) {\n if (diff.length === 0)\n return current;\n return diff[0].item;\n }\n getActionVerb(isNew) {\n return isNew ? 'set' : 'replaced';\n }\n}\n/**\n * A field that ensures an array contains certain values.\n * This field type only adds items, never removes them.\n */\nexport class DefinitionDiffArrayIncludesField extends DefinitionDiffField {\n getKey;\n constructor(name, getKey) {\n super(name);\n this.getKey = getKey;\n }\n diff(current, desired) {\n const currentValue = current ?? [];\n const desiredValue = desired ?? [];\n if (!Array.isArray(currentValue) || !Array.isArray(desiredValue)) {\n throw new TypeError('Current and desired must be arrays');\n }\n const ops = [];\n const currentSet = new Set(this.getKey ? currentValue.map(this.getKey) : currentValue);\n for (const item of desiredValue) {\n const key = this.getKey ? this.getKey(item) : String(item);\n if (!currentSet.has(key)) {\n ops.push({ type: 'add', key, item });\n }\n }\n return ops;\n }\n apply(current, diff) {\n const currentValue = (current ?? []);\n if (!Array.isArray(currentValue)) {\n throw new TypeError('Current must be array');\n }\n const items = [...currentValue];\n for (const { type, item } of diff) {\n if (type === 'add') {\n items.push(item);\n }\n }\n return items;\n }\n getActionVerb(isNew) {\n return isNew ? 'created' : 'added';\n }\n}\nexport function createDefinitionDiffConfig(config) {\n return config;\n}\n/**\n * Creates a diff between two objects.\n */\nexport function createDefinitionDiff(current, desired, configuration) {\n const ops = mapValues(configuration, (field, key) => {\n if (!field)\n return [];\n return field.diff(get(current, key), get(desired, key));\n });\n if (Object.values(ops).every((ops) => ops.length === 0)) {\n return undefined;\n }\n return ops;\n}\n/**\n * Applies a diff to an object.\n */\nexport function applyDefinitionDiff(current, diff, configuration) {\n const clonedCurrent = cloneDeep(current);\n for (const [key, ops] of Object.entries(diff)) {\n if (!ops)\n continue;\n const field = configuration[key];\n const currentValue = get(clonedCurrent, key);\n set(clonedCurrent, key, field.apply(currentValue, ops));\n }\n return clonedCurrent;\n}\n//# sourceMappingURL=definition-diff.js.map","\"use strict\";\n/*!\n * inflection\n * Copyright(c) 2011 Ben Lin <ben@dreamerslab.com>\n * MIT Licensed\n *\n * @fileoverview\n * A port of inflection-js to node.js module.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transform = exports.ordinalize = exports.foreignKey = exports.classify = exports.tableize = exports.demodulize = exports.titleize = exports.dasherize = exports.capitalize = exports.humanize = exports.underscore = exports.camelize = exports.inflect = exports.singularize = exports.pluralize = void 0;\n/**\n * @description This is a list of nouns that use the same form for both singular and plural.\n * This list should remain entirely in lower case to correctly match Strings.\n */\nconst uncountableWords = [\n // 'access',\n 'accommodation',\n 'adulthood',\n 'advertising',\n 'advice',\n 'aggression',\n 'aid',\n 'air',\n 'aircraft',\n 'alcohol',\n 'anger',\n 'applause',\n 'arithmetic',\n // 'art',\n 'assistance',\n 'athletics',\n // 'attention',\n 'bacon',\n 'baggage',\n // 'ballet',\n // 'beauty',\n 'beef',\n // 'beer',\n // 'behavior',\n 'biology',\n // 'billiards',\n 'blood',\n 'botany',\n // 'bowels',\n 'bread',\n // 'business',\n 'butter',\n 'carbon',\n 'cardboard',\n 'cash',\n 'chalk',\n 'chaos',\n 'chess',\n 'crossroads',\n 'countryside',\n // 'damage',\n 'dancing',\n // 'danger',\n 'deer',\n // 'delight',\n // 'dessert',\n 'dignity',\n 'dirt',\n // 'distribution',\n 'dust',\n 'economics',\n 'education',\n 'electricity',\n // 'employment',\n // 'energy',\n 'engineering',\n 'enjoyment',\n // 'entertainment',\n 'envy',\n 'equipment',\n 'ethics',\n 'evidence',\n 'evolution',\n // 'failure',\n // 'faith',\n 'fame',\n 'fiction',\n // 'fish',\n 'flour',\n 'flu',\n 'food',\n // 'freedom',\n // 'fruit',\n 'fuel',\n 'fun',\n // 'funeral',\n 'furniture',\n 'gallows',\n 'garbage',\n 'garlic',\n // 'gas',\n 'genetics',\n // 'glass',\n 'gold',\n 'golf',\n 'gossip',\n // 'grass',\n 'gratitude',\n 'grief',\n // 'ground',\n 'guilt',\n 'gymnastics',\n // 'hair',\n 'happiness',\n 'hardware',\n 'harm',\n 'hate',\n 'hatred',\n 'health',\n 'heat',\n // 'height',\n 'help',\n 'homework',\n 'honesty',\n 'honey',\n 'hospitality',\n 'housework',\n 'humour',\n 'hunger',\n 'hydrogen',\n 'ice',\n 'importance',\n 'inflation',\n 'information',\n // 'injustice',\n 'innocence',\n // 'intelligence',\n 'iron',\n 'irony',\n 'jam',\n // 'jealousy',\n // 'jelly',\n 'jewelry',\n // 'joy',\n 'judo',\n // 'juice',\n // 'justice',\n 'karate',\n // 'kindness',\n 'knowledge',\n // 'labour',\n 'lack',\n // 'land',\n 'laughter',\n 'lava',\n 'leather',\n 'leisure',\n 'lightning',\n 'linguine',\n 'linguini',\n 'linguistics',\n 'literature',\n 'litter',\n 'livestock',\n 'logic',\n 'loneliness',\n // 'love',\n 'luck',\n 'luggage',\n 'macaroni',\n 'machinery',\n 'magic',\n // 'mail',\n 'management',\n 'mankind',\n 'marble',\n 'mathematics',\n 'mayonnaise',\n 'measles',\n // 'meat',\n // 'metal',\n 'methane',\n 'milk',\n 'minus',\n 'money',\n // 'moose',\n 'mud',\n 'music',\n 'mumps',\n 'nature',\n 'news',\n 'nitrogen',\n 'nonsense',\n 'nurture',\n 'nutrition',\n 'obedience',\n 'obesity',\n // 'oil',\n 'oxygen',\n // 'paper',\n // 'passion',\n 'pasta',\n 'patience',\n // 'permission',\n 'physics',\n 'poetry',\n 'pollution',\n 'poverty',\n // 'power',\n 'pride',\n // 'production',\n // 'progress',\n // 'pronunciation',\n 'psychology',\n 'publicity',\n 'punctuation',\n // 'quality',\n // 'quantity',\n 'quartz',\n 'racism',\n // 'rain',\n // 'recreation',\n 'relaxation',\n 'reliability',\n 'research',\n 'respect',\n 'revenge',\n 'rice',\n 'rubbish',\n 'rum',\n 'safety',\n // 'salad',\n // 'salt',\n // 'sand',\n // 'satire',\n 'scenery',\n 'seafood',\n 'seaside',\n 'series',\n 'shame',\n 'sheep',\n 'shopping',\n // 'silence',\n 'sleep',\n // 'slang'\n 'smoke',\n 'smoking',\n 'snow',\n 'soap',\n 'software',\n 'soil',\n // 'sorrow',\n // 'soup',\n 'spaghetti',\n // 'speed',\n 'species',\n // 'spelling',\n // 'sport',\n 'steam',\n // 'strength',\n 'stuff',\n 'stupidity',\n // 'success',\n // 'sugar',\n 'sunshine',\n 'symmetry',\n // 'tea',\n 'tennis',\n 'thirst',\n 'thunder',\n 'timber',\n // 'time',\n // 'toast',\n // 'tolerance',\n // 'trade',\n 'traffic',\n 'transportation',\n // 'travel',\n 'trust',\n // 'understanding',\n 'underwear',\n 'unemployment',\n 'unity',\n // 'usage',\n 'validity',\n 'veal',\n 'vegetation',\n 'vegetarianism',\n 'vengeance',\n 'violence',\n // 'vision',\n 'vitality',\n 'warmth',\n // 'water',\n 'wealth',\n 'weather',\n // 'weight',\n 'welfare',\n 'wheat',\n // 'whiskey',\n // 'width',\n 'wildlife',\n // 'wine',\n 'wisdom',\n // 'wood',\n // 'wool',\n // 'work',\n // 'yeast',\n 'yoga',\n 'zinc',\n 'zoology',\n];\n/**\n * @description These rules translate from the singular form of a noun to its plural form.\n */\nconst regex = {\n plural: {\n men: new RegExp('^(m|wom)en$', 'gi'),\n people: new RegExp('(pe)ople$', 'gi'),\n children: new RegExp('(child)ren$', 'gi'),\n tia: new RegExp('([ti])a$', 'gi'),\n analyses: new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', 'gi'),\n databases: new RegExp('(database)s$', 'gi'),\n drives: new RegExp('(drive)s$', 'gi'),\n hives: new RegExp('(hi|ti)ves$', 'gi'),\n curves: new RegExp('(curve)s$', 'gi'),\n lrves: new RegExp('([lr])ves$', 'gi'),\n aves: new RegExp('([a])ves$', 'gi'),\n foves: new RegExp('([^fo])ves$', 'gi'),\n movies: new RegExp('(m)ovies$', 'gi'),\n aeiouyies: new RegExp('([^aeiouy]|qu)ies$', 'gi'),\n series: new RegExp('(s)eries$', 'gi'),\n xes: new RegExp('(x|ch|ss|sh)es$', 'gi'),\n mice: new RegExp('([m|l])ice$', 'gi'),\n buses: new RegExp('(bus)es$', 'gi'),\n oes: new RegExp('(o)es$', 'gi'),\n shoes: new RegExp('(shoe)s$', 'gi'),\n crises: new RegExp('(cris|ax|test)es$', 'gi'),\n octopuses: new RegExp('(octop|vir)uses$', 'gi'),\n aliases: new RegExp('(alias|canvas|status|campus)es$', 'gi'),\n summonses: new RegExp('^(summons|bonus)es$', 'gi'),\n oxen: new RegExp('^(ox)en', 'gi'),\n matrices: new RegExp('(matr)ices$', 'gi'),\n vertices: new RegExp('(vert|ind)ices$', 'gi'),\n feet: new RegExp('^feet$', 'gi'),\n teeth: new RegExp('^teeth$', 'gi'),\n geese: new RegExp('^geese$', 'gi'),\n quizzes: new RegExp('(quiz)zes$', 'gi'),\n whereases: new RegExp('^(whereas)es$', 'gi'),\n criteria: new RegExp('^(criteri)a$', 'gi'),\n genera: new RegExp('^genera$', 'gi'),\n ss: new RegExp('ss$', 'gi'),\n s: new RegExp('s$', 'gi'),\n },\n singular: {\n man: new RegExp('^(m|wom)an$', 'gi'),\n person: new RegExp('(pe)rson$', 'gi'),\n child: new RegExp('(child)$', 'gi'),\n drive: new RegExp('(drive)$', 'gi'),\n ox: new RegExp('^(ox)$', 'gi'),\n axis: new RegExp('(ax|test)is$', 'gi'),\n octopus: new RegExp('(octop|vir)us$', 'gi'),\n alias: new RegExp('(alias|status|canvas|campus)$', 'gi'),\n summons: new RegExp('^(summons|bonus)$', 'gi'),\n bus: new RegExp('(bu)s$', 'gi'),\n buffalo: new RegExp('(buffal|tomat|potat)o$', 'gi'),\n tium: new RegExp('([ti])um$', 'gi'),\n sis: new RegExp('sis$', 'gi'),\n ffe: new RegExp('(?:([^f])fe|([lr])f)$', 'gi'),\n hive: new RegExp('(hi|ti)ve$', 'gi'),\n aeiouyy: new RegExp('([^aeiouy]|qu)y$', 'gi'),\n x: new RegExp('(x|ch|ss|sh)$', 'gi'),\n matrix: new RegExp('(matr)ix$', 'gi'),\n vertex: new RegExp('(vert|ind)ex$', 'gi'),\n mouse: new RegExp('([m|l])ouse$', 'gi'),\n foot: new RegExp('^foot$', 'gi'),\n tooth: new RegExp('^tooth$', 'gi'),\n goose: new RegExp('^goose$', 'gi'),\n quiz: new RegExp('(quiz)$', 'gi'),\n whereas: new RegExp('^(whereas)$', 'gi'),\n criterion: new RegExp('^(criteri)on$', 'gi'),\n genus: new RegExp('^genus$', 'gi'),\n s: new RegExp('s$', 'gi'),\n common: new RegExp('$', 'gi'),\n },\n};\nconst pluralRules = [\n // do not replace if its already a plural word\n [regex.plural.men],\n [regex.plural.people],\n [regex.plural.children],\n [regex.plural.tia],\n [regex.plural.analyses],\n [regex.plural.databases],\n [regex.plural.drives],\n [regex.plural.hives],\n [regex.plural.curves],\n [regex.plural.lrves],\n [regex.plural.foves],\n [regex.plural.aeiouyies],\n [regex.plural.series],\n [regex.plural.movies],\n [regex.plural.xes],\n [regex.plural.mice],\n [regex.plural.buses],\n [regex.plural.oes],\n [regex.plural.shoes],\n [regex.plural.crises],\n [regex.plural.octopuses],\n [regex.plural.aliases],\n [regex.plural.summonses],\n [regex.plural.oxen],\n [regex.plural.matrices],\n [regex.plural.feet],\n [regex.plural.teeth],\n [regex.plural.geese],\n [regex.plural.quizzes],\n [regex.plural.whereases],\n [regex.plural.criteria],\n [regex.plural.genera],\n // original rule\n [regex.singular.man, '$1en'],\n [regex.singular.person, '$1ople'],\n [regex.singular.child, '$1ren'],\n [regex.singular.drive, '$1s'],\n [regex.singular.ox, '$1en'],\n [regex.singular.axis, '$1es'],\n [regex.singular.octopus, '$1uses'],\n [regex.singular.alias, '$1es'],\n [regex.singular.summons, '$1es'],\n [regex.singular.bus, '$1ses'],\n [regex.singular.buffalo, '$1oes'],\n [regex.singular.tium, '$1a'],\n [regex.singular.sis, 'ses'],\n [regex.singular.ffe, '$1$2ves'],\n [regex.singular.hive, '$1ves'],\n [regex.singular.aeiouyy, '$1ies'],\n [regex.singular.matrix, '$1ices'],\n [regex.singular.vertex, '$1ices'],\n [regex.singular.x, '$1es'],\n [regex.singular.mouse, '$1ice'],\n [regex.singular.foot, 'feet'],\n [regex.singular.tooth, 'teeth'],\n [regex.singular.goose, 'geese'],\n [regex.singular.quiz, '$1zes'],\n [regex.singular.whereas, '$1es'],\n [regex.singular.criterion, '$1a'],\n [regex.singular.genus, 'genera'],\n [regex.singular.s, 's'],\n [regex.singular.common, 's'],\n];\n/**\n * @description These rules translate from the plural form of a noun to its singular form.\n */\nconst singularRules = [\n // do not replace if its already a singular word\n [regex.singular.man],\n [regex.singular.person],\n [regex.singular.child],\n [regex.singular.drive],\n [regex.singular.ox],\n [regex.singular.axis],\n [regex.singular.octopus],\n [regex.singular.alias],\n [regex.singular.summons],\n [regex.singular.bus],\n [regex.singular.buffalo],\n [regex.singular.tium],\n [regex.singular.sis],\n [regex.singular.ffe],\n [regex.singular.hive],\n [regex.singular.aeiouyy],\n [regex.singular.x],\n [regex.singular.matrix],\n [regex.singular.mouse],\n [regex.singular.foot],\n [regex.singular.tooth],\n [regex.singular.goose],\n [regex.singular.quiz],\n [regex.singular.whereas],\n [regex.singular.criterion],\n [regex.singular.genus],\n // original rule\n [regex.plural.men, '$1an'],\n [regex.plural.people, '$1rson'],\n [regex.plural.children, '$1'],\n [regex.plural.databases, '$1'],\n [regex.plural.drives, '$1'],\n [regex.plural.genera, 'genus'],\n [regex.plural.criteria, '$1on'],\n [regex.plural.tia, '$1um'],\n [regex.plural.analyses, '$1$2sis'],\n [regex.plural.hives, '$1ve'],\n [regex.plural.curves, '$1'],\n [regex.plural.lrves, '$1f'],\n [regex.plural.aves, '$1ve'],\n [regex.plural.foves, '$1fe'],\n [regex.plural.movies, '$1ovie'],\n [regex.plural.aeiouyies, '$1y'],\n [regex.plural.series, '$1eries'],\n [regex.plural.xes, '$1'],\n [regex.plural.mice, '$1ouse'],\n [regex.plural.buses, '$1'],\n [regex.plural.oes, '$1'],\n [regex.plural.shoes, '$1'],\n [regex.plural.crises, '$1is'],\n [regex.plural.octopuses, '$1us'],\n [regex.plural.aliases, '$1'],\n [regex.plural.summonses, '$1'],\n [regex.plural.oxen, '$1'],\n [regex.plural.matrices, '$1ix'],\n [regex.plural.vertices, '$1ex'],\n [regex.plural.feet, 'foot'],\n [regex.plural.teeth, 'tooth'],\n [regex.plural.geese, 'goose'],\n [regex.plural.quizzes, '$1'],\n [regex.plural.whereases, '$1'],\n [regex.plural.ss, 'ss'],\n [regex.plural.s, ''],\n];\n/**\n * @description This is a list of words that should not be capitalized for title case.\n */\nconst nonTitlecasedWords = [\n 'and',\n 'or',\n 'nor',\n 'a',\n 'an',\n 'the',\n 'so',\n 'but',\n 'to',\n 'of',\n 'at',\n 'by',\n 'from',\n 'into',\n 'on',\n 'onto',\n 'off',\n 'out',\n 'in',\n 'over',\n 'with',\n 'for',\n];\n/**\n * @description These are regular expressions used for converting between String formats.\n */\nconst idSuffix = new RegExp('(_ids|_id)$', 'g');\nconst underbar = new RegExp('_', 'g');\nconst spaceOrUnderbar = new RegExp('[ _]', 'g');\nconst uppercase = new RegExp('([A-Z])', 'g');\nconst underbarPrefix = new RegExp('^_');\n/**\n * A helper method that applies rules based replacement to a String.\n * @param str String to modify and return based on the passed rules.\n * @param rules Regexp to match paired with String to use for replacement\n * @param skip Strings to skip if they match\n * @param override String to return as though this method succeeded (used to conform to APIs)\n * @returns Return passed String modified by passed rules.\n * @example\n *\n * applyRules( 'cows', singular_rules ); // === 'cow'\n */\nfunction applyRules(str, rules, skip, override) {\n if (override) {\n return override;\n }\n else {\n if (skip.includes(str.toLocaleLowerCase())) {\n return str;\n }\n for (const rule of rules) {\n if (str.match(rule[0])) {\n if (rule[1] !== undefined) {\n return str.replace(rule[0], rule[1]);\n }\n return str;\n }\n }\n }\n return str;\n}\n/**\n * This function adds pluralization support to every String object.\n * @param str The subject string.\n * @param plural Overrides normal output with said String.(optional)\n * @returns Singular English language nouns are returned in plural form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.pluralize( 'person' ); // === 'people'\n * inflection.pluralize( 'octopus' ); // === 'octopuses'\n * inflection.pluralize( 'Hat' ); // === 'Hats'\n * inflection.pluralize( 'person', 'guys' ); // === 'guys'\n */\nfunction pluralize(str, plural) {\n return applyRules(str, pluralRules, uncountableWords, plural);\n}\nexports.pluralize = pluralize;\n/**\n * This function adds singularization support to every String object.\n * @param str The subject string.\n * @param singular Overrides normal output with said String.(optional)\n * @returns Plural English language nouns are returned in singular form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.singularize( 'people' ); // === 'person'\n * inflection.singularize( 'octopuses' ); // === 'octopus'\n * inflection.singularize( 'Hats' ); // === 'Hat'\n * inflection.singularize( 'guys', 'person' ); // === 'person'\n */\nfunction singularize(str, singular) {\n return applyRules(str, singularRules, uncountableWords, singular);\n}\nexports.singularize = singularize;\n/**\n * This function will pluralize or singularlize a String appropriately based on a number value\n * @param str The subject string.\n * @param count The number to base pluralization off of.\n * @param singular Overrides normal output with said String.(optional)\n * @param plural Overrides normal output with said String.(optional)\n * @returns English language nouns are returned in the plural or singular form based on the count.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.inflect( 'people' 1 ); // === 'person'\n * inflection.inflect( 'octopuses' 1 ); // === 'octopus'\n * inflection.inflect( 'Hats' 1 ); // === 'Hat'\n * inflection.inflect( 'guys', 1 , 'person' ); // === 'person'\n * inflection.inflect( 'inches', 1.5 ); // === 'inches'\n * inflection.inflect( 'person', 2 ); // === 'people'\n * inflection.inflect( 'octopus', 2 ); // === 'octopuses'\n * inflection.inflect( 'Hat', 2 ); // === 'Hats'\n * inflection.inflect( 'person', 2, null, 'guys' ); // === 'guys'\n */\nfunction inflect(str, count, singular, plural) {\n if (isNaN(count))\n return str;\n if (count === 1) {\n return applyRules(str, singularRules, uncountableWords, singular);\n }\n else {\n return applyRules(str, pluralRules, uncountableWords, plural);\n }\n}\nexports.inflect = inflect;\n/**\n * This function adds camelization support to every String object.\n * @param str The subject string.\n * @param lowFirstLetter Default is to capitalize the first letter of the results.(optional)\n * Passing true will lowercase it.\n * @returns Lower case underscored words will be returned in camel case.\n * additionally '/' is translated to '::'\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.camelize( 'message_properties' ); // === 'MessageProperties'\n * inflection.camelize( 'message_properties', true ); // === 'messageProperties'\n */\nfunction camelize(str, lowFirstLetter) {\n const strPath = str.split('/');\n const j = strPath.length;\n let strArr, k, l, first;\n for (let i = 0; i < j; i++) {\n strArr = strPath[i].split('_');\n k = 0;\n l = strArr.length;\n for (; k < l; k++) {\n if (k !== 0) {\n strArr[k] = strArr[k].toLowerCase();\n }\n first = strArr[k].charAt(0);\n first =\n lowFirstLetter && i === 0 && k === 0\n ? first.toLowerCase()\n : first.toUpperCase();\n strArr[k] = first + strArr[k].substring(1);\n }\n strPath[i] = strArr.join('');\n }\n return strPath.join('::');\n}\nexports.camelize = camelize;\n/**\n * This function adds underscore support to every String object.\n * @param str The subject string.\n * @param allUpperCase Default is to lowercase and add underscore prefix.(optional)\n * Passing true will return as entered.\n * @returns Camel cased words are returned as lower cased and underscored.\n * additionally '::' is translated to '/'.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.underscore( 'MessageProperties' ); // === 'message_properties'\n * inflection.underscore( 'messageProperties' ); // === 'message_properties'\n * inflection.underscore( 'MP', true ); // === 'MP'\n */\nfunction underscore(str, allUpperCase) {\n if (allUpperCase && str === str.toUpperCase())\n return str;\n const strPath = str.split('::');\n const j = strPath.length;\n for (let i = 0; i < j; i++) {\n strPath[i] = strPath[i].replace(uppercase, '_$1');\n strPath[i] = strPath[i].replace(underbarPrefix, '');\n }\n return strPath.join('/').toLowerCase();\n}\nexports.underscore = underscore;\n/**\n * This function adds humanize support to every String object.\n * @param str The subject string.\n * @param lowFirstLetter Default is to capitalize the first letter of the results.(optional)\n * Passing true will lowercase it.\n * @returns Lower case underscored words will be returned in humanized form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.humanize( 'message_properties' ); // === 'Message properties'\n * inflection.humanize( 'message_properties', true ); // === 'message properties'\n */\nfunction humanize(str, lowFirstLetter) {\n str = str.toLowerCase();\n str = str.replace(idSuffix, '');\n str = str.replace(underbar, ' ');\n if (!lowFirstLetter) {\n str = capitalize(str);\n }\n return str;\n}\nexports.humanize = humanize;\n/**\n * This function adds capitalization support to every String object.\n * @param str The subject string.\n * @returns All characters will be lower case and the first will be upper.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.capitalize( 'message_properties' ); // === 'Message_properties'\n * inflection.capitalize( 'message properties', true ); // === 'Message properties'\n */\nfunction capitalize(str) {\n str = str.toLowerCase();\n return str.substring(0, 1).toUpperCase() + str.substring(1);\n}\nexports.capitalize = capitalize;\n/**\n * This function replaces underscores with dashes in the string.\n * @param str The subject string.\n * @returns Replaces all spaces or underscores with dashes.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.dasherize( 'message_properties' ); // === 'message-properties'\n * inflection.dasherize( 'Message Properties' ); // === 'Message-Properties'\n */\nfunction dasherize(str) {\n return str.replace(spaceOrUnderbar, '-');\n}\nexports.dasherize = dasherize;\n/**\n * This function adds titleize support to every String object.\n * @param str The subject string.\n * @returns Capitalizes words as you would for a book title.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.titleize( 'message_properties' ); // === 'Message Properties'\n * inflection.titleize( 'message properties to keep' ); // === 'Message Properties to Keep'\n */\nfunction titleize(str) {\n str = str.toLowerCase().replace(underbar, ' ');\n const strArr = str.split(' ');\n const j = strArr.length;\n let d, l;\n for (let i = 0; i < j; i++) {\n d = strArr[i].split('-');\n l = d.length;\n for (let k = 0; k < l; k++) {\n if (nonTitlecasedWords.indexOf(d[k].toLowerCase()) < 0) {\n d[k] = capitalize(d[k]);\n }\n }\n strArr[i] = d.join('-');\n }\n str = strArr.join(' ');\n str = str.substring(0, 1).toUpperCase() + str.substring(1);\n return str;\n}\nexports.titleize = titleize;\n/**\n * This function adds demodulize support to every String object.\n * @param str The subject string.\n * @returns Removes module names leaving only class names.(Ruby style)\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.demodulize( 'Message::Bus::Properties' ); // === 'Properties'\n */\nfunction demodulize(str) {\n const strArr = str.split('::');\n return strArr[strArr.length - 1];\n}\nexports.demodulize = demodulize;\n/**\n * This function adds tableize support to every String object.\n * @param str The subject string.\n * @returns Return camel cased words into their underscored plural form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.tableize( 'MessageBusProperty' ); // === 'message_bus_properties'\n */\nfunction tableize(str) {\n str = underscore(str);\n str = pluralize(str);\n return str;\n}\nexports.tableize = tableize;\n/**\n * This function adds classification support to every String object.\n * @param str The subject string.\n * @returns Underscored plural nouns become the camel cased singular form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.classify( 'message_bus_properties' ); // === 'MessageBusProperty'\n */\nfunction classify(str) {\n str = camelize(str);\n str = singularize(str);\n return str;\n}\nexports.classify = classify;\n/**\n * This function adds foreign key support to every String object.\n * @param str The subject string.\n * @param dropIdUbar Default is to seperate id with an underbar at the end of the class name,\n you can pass true to skip it.(optional)\n * @returns Underscored plural nouns become the camel cased singular form.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.foreign_key( 'MessageBusProperty' ); // === 'message_bus_property_id'\n * inflection.foreign_key( 'MessageBusProperty', true ); // === 'message_bus_propertyid'\n */\nfunction foreignKey(str, dropIdUbar) {\n str = demodulize(str);\n str = underscore(str) + (dropIdUbar ? '' : '_') + 'id';\n return str;\n}\nexports.foreignKey = foreignKey;\n/**\n * This function adds ordinalize support to every String object.\n * @param str The subject string.\n * @returns Return all found numbers their sequence like '22nd'.\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.ordinalize( 'the 1 pitch' ); // === 'the 1st pitch'\n */\nfunction ordinalize(str) {\n const strArr = str.split(' ');\n const j = strArr.length;\n for (let i = 0; i < j; i++) {\n const k = parseInt(strArr[i], 10);\n if (!isNaN(k)) {\n const ltd = strArr[i].substring(strArr[i].length - 2);\n const ld = strArr[i].substring(strArr[i].length - 1);\n let suf = 'th';\n if (ltd != '11' && ltd != '12' && ltd != '13') {\n if (ld === '1') {\n suf = 'st';\n }\n else if (ld === '2') {\n suf = 'nd';\n }\n else if (ld === '3') {\n suf = 'rd';\n }\n }\n strArr[i] += suf;\n }\n }\n return strArr.join(' ');\n}\nexports.ordinalize = ordinalize;\nconst transformFunctions = {\n pluralize,\n singularize,\n camelize,\n underscore,\n humanize,\n capitalize,\n dasherize,\n titleize,\n demodulize,\n tableize,\n classify,\n foreignKey,\n ordinalize,\n};\n/**\n * This function performs multiple inflection methods on a string\n * @param str The subject string.\n * @param arr An array of inflection methods.\n * @returns\n * @example\n *\n * const inflection = require( 'inflection' );\n *\n * inflection.transform( 'all job', [ 'pluralize', 'capitalize', 'dasherize' ]); // === 'All-jobs'\n */\nfunction transform(str, arr) {\n const j = arr.length;\n for (let i = 0; i < j; i++) {\n const method = arr[i];\n const methodFn = transformFunctions[method];\n if (methodFn) {\n str = methodFn(str);\n }\n }\n return str;\n}\nexports.transform = transform;\n","import { dasherize, underscore } from 'inflection';\nimport { COLOR_PALETTES } from '#src/constants/colors.js';\nimport { THEME_COLORS } from '#src/constants/theme-colors.js';\nimport { convertColorNameToOklch } from '#src/utils/color-names.js';\nfunction getDefaultOklch(palettes, color) {\n if ('color' in color) {\n return convertColorNameToOklch(color.color);\n }\n if ('primaryShade' in color) {\n return palettes.primary.shades[color.primaryShade];\n }\n return palettes.base.shades[color.baseShade];\n}\nexport function getDefaultThemeColorFromShade(palettes, mode, themeColorKey) {\n const defaultColorConfig = THEME_COLORS[themeColorKey][mode === 'light' ? 'lightDefault' : 'darkDefault'];\n return getDefaultOklch(palettes, defaultColorConfig);\n}\nexport function generateThemeColorsFromShade(palettes, mode, previousValues) {\n const result = {};\n for (const [key, config] of Object.entries(THEME_COLORS)) {\n const themeColorKey = key;\n const defaultColorConfig = mode === 'light' ? config.lightDefault : config.darkDefault;\n const newDefaultColor = getDefaultOklch(palettes, defaultColorConfig);\n const previousDefaultColor = previousValues?.config[themeColorKey] &&\n getDefaultOklch(previousValues.palettes, defaultColorConfig);\n const previousValue = previousValues?.config[themeColorKey];\n result[themeColorKey] =\n !newDefaultColor ||\n (previousValue && previousDefaultColor !== previousValue)\n ? previousValue\n : newDefaultColor;\n }\n return result;\n}\nexport function generateCssFromThemeConfig(config) {\n return Object.fromEntries(Object.entries(config)\n .filter((input) => input[1] !== undefined)\n .map(([key, value]) => [`--${dasherize(underscore(key))}`, value]));\n}\nexport function generateDefaultTheme() {\n const slatePalette = {\n paletteName: 'slate',\n shades: COLOR_PALETTES.slate,\n };\n const slatePalettes = {\n base: slatePalette,\n primary: slatePalette,\n };\n return {\n palettes: slatePalettes,\n colors: {\n light: generateThemeColorsFromShade(slatePalettes, 'light'),\n dark: generateThemeColorsFromShade(slatePalettes, 'dark'),\n },\n };\n}\n//# sourceMappingURL=theme.js.map"],"names":["byId","CASE_VALIDATORS","z","toString","isArray","exports","parse","groupBy","identity","cloneDeepWith","cloneDeep","capitalize","isPlainObject","get","has","set","walkNode","toposort","unwrapSchema","num","hue","definition","linearize","gamma","fn","rgb","k","e","f","parseHwb","p","d0","n","lab","lch","u_fn","v_fn","un","vn","modeHsl","modeHsv","parseOklch","α","β","transfer","modeA98","modeCubehelix","modeDlab","modeDlch","modeHsi","modeHwb","modeItp","modeJab","modeJch","modeLab","modeLab65","modeLch","modeLch65","modeLchuv","modeLrgb","modeLuv","modeOklab","modeOklch","modeP3","modeProphoto","modeRec2020","modeRgb","modeXyb","modeXyz50","modeXyz65","modeYiq","dasherize","underscore"],"mappings":"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AAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC;;AAE1oC;AACA,IAAI,0BAA0B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,E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","x_google_ignoreList":[13,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,72,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,320]}
|