@baseplate-dev/plugin-auth 0.6.4 → 0.6.6
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 +46 -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 +7 -4
- package/dist/local-auth/core/components/local-auth-definition-editor.js.map +1 -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 +12 -1
- package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.d.ts.map +1 -1
- package/dist/local-auth/core/generators/auth-routes/generated/index.d.ts +72 -6
- 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 +108 -9
- package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.d.ts.map +1 -1
- 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 +6 -3
- 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 +1 -2
- package/dist/local-auth/core/schema/plugin-definition.d.ts.map +1 -1
- package/dist/local-auth/core/schema/plugin-definition.js +1 -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-BSv8GVI2.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-IuYupUXE.js → __federation_expose_local-authAdminCommon-Bp8fb_BT.js} +2 -2
- package/dist/web/assets/{__federation_expose_local-authAdminCommon-IuYupUXE.js.map → __federation_expose_local-authAdminCommon-Bp8fb_BT.js.map} +1 -1
- package/dist/web/assets/{__federation_expose_local-authAdminWeb-BzhksqwO.js → __federation_expose_local-authAdminWeb-BDyZDL1a.js} +2 -2
- package/dist/web/assets/{__federation_expose_local-authAdminWeb-BzhksqwO.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-hGIPuBy3.js → __federation_expose_placeholder-authCoreCommon-Bq0ln8n5.js} +3 -3
- package/dist/web/assets/{__federation_expose_placeholder-authCoreCommon-hGIPuBy3.js.map → __federation_expose_placeholder-authCoreCommon-Bq0ln8n5.js.map} +1 -1
- package/dist/web/assets/{__federation_expose_placeholder-authCoreWeb-P4Qq8Zf6.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-CzLgVaFb.js → __federation_fn_import-DybuDj1g.js} +2 -2
- package/dist/web/assets/{__federation_fn_import-CzLgVaFb.js.map → __federation_fn_import-DybuDj1g.js.map} +1 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/{web-DA-fkeD5.js → web-CAuxM6sN.js} +11 -11
- 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-zJirGIS1.js → project-builder-lib-DkaXS95C.js} +11304 -10250
- 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-Ds8y9Suz.js → ui-components-DX4jbl4M.js} +217 -51
- package/dist/web/assets/__federation_shared_@baseplate-dev/ui-components-DX4jbl4M.js.map +1 -0
- package/dist/web/assets/__federation_shared_@baseplate-dev/{utils-DnBM79-7.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-BoEohCHh.js → react-router-DyqK0P1G.js} +2 -2
- package/dist/web/assets/__federation_shared_@tanstack/{react-router-BoEohCHh.js.map → react-router-DyqK0P1G.js.map} +1 -1
- package/dist/web/assets/{get-auth-plugin-definition-DM6kosCC.js → get-auth-plugin-definition-BigT75An.js} +2 -2
- package/dist/web/assets/{get-auth-plugin-definition-DM6kosCC.js.map → get-auth-plugin-definition-BigT75An.js.map} +1 -1
- package/dist/web/assets/{index-EshpyU4T.js → index-BwviOVwi.js} +3 -5
- package/dist/web/assets/{index-EshpyU4T.js.map → index-BwviOVwi.js.map} +1 -1
- package/dist/web/assets/{index.esm-CYY7gyrG.js → index.esm-Db6zPKK9.js} +2 -2
- package/dist/web/assets/{index.esm-CYY7gyrG.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-WWo9T1Zx.js → model-utils-D0sDtkf1.js} +138 -20
- 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-CqP9VmOQ.js → plugin-definition-Cg8Gij5x.js} +2 -2
- package/dist/web/assets/{plugin-definition-CqP9VmOQ.js.map → plugin-definition-Cg8Gij5x.js.map} +1 -1
- package/dist/web/assets/{plugin-definition-y6VVQ5_O.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-2kA00dBg.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-B6Fz4KB7.js → react-CcDhDxl8.js} +2 -2
- package/dist/web/assets/{react-B6Fz4KB7.js.map → react-CcDhDxl8.js.map} +1 -1
- package/dist/web/assets/remoteEntry.js +20 -14
- package/dist/web/assets/remoteEntry.js.map +1 -1
- package/dist/web/assets/{styles-0yxEwdyo.js → styles-Otn_yxD1.js} +3 -3
- package/dist/web/assets/{styles-0yxEwdyo.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-D8SAyij-.js +0 -30
- package/dist/web/assets/__federation_expose_authCoreCommon-D8SAyij-.js.map +0 -1
- package/dist/web/assets/__federation_expose_authCoreWeb-BSv8GVI2.js.map +0 -1
- package/dist/web/assets/__federation_expose_better-authCoreCommon-BJhkN6zV.js +0 -20
- package/dist/web/assets/__federation_expose_better-authCoreCommon-BJhkN6zV.js.map +0 -1
- package/dist/web/assets/__federation_expose_better-authCoreWeb-2kA00dBg.js.map +0 -1
- package/dist/web/assets/__federation_expose_local-authCoreCommon-DO5xRAoM.js +0 -21
- package/dist/web/assets/__federation_expose_local-authCoreCommon-DO5xRAoM.js.map +0 -1
- package/dist/web/assets/__federation_expose_local-authCoreWeb-QdXa2aao.js +0 -448
- package/dist/web/assets/__federation_expose_local-authCoreWeb-QdXa2aao.js.map +0 -1
- package/dist/web/assets/__federation_expose_placeholder-authCoreWeb-P4Qq8Zf6.js.map +0 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-DA-fkeD5.js.map +0 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib-zJirGIS1.js.map +0 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/ui-components-Ds8y9Suz.js.map +0 -1
- package/dist/web/assets/__federation_shared_@baseplate-dev/utils-DnBM79-7.js.map +0 -1
- package/dist/web/assets/model-utils-WWo9T1Zx.js.map +0 -1
- package/dist/web/assets/plugin-definition-BCrs3YSY.js +0 -20
- package/dist/web/assets/plugin-definition-BCrs3YSY.js.map +0 -1
- package/dist/web/assets/plugin-definition-BwAJGzRn.js +0 -32
- package/dist/web/assets/plugin-definition-BwAJGzRn.js.map +0 -1
- package/dist/web/assets/plugin-definition-y6VVQ5_O.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-DnBM79-7.js","sources":["../../../../../../packages/utils/dist/arrays/assert-no-duplicates.js","../../../../../../packages/utils/dist/crypto/hash.js","../../../../../../packages/utils/dist/errors/enhance-error-with-context.js","../../../../../../packages/utils/dist/events/typed-event-emitter.js","../../../../../../packages/utils/dist/field-map/field-map.js","../../../../../../packages/utils/dist/json/json-deep-clone.js","../../../../../../packages/utils/dist/json/stringify-pretty-compact.js","../../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","../../../../../../node_modules/.pnpm/sort-keys@5.1.0/node_modules/sort-keys/index.js","../../../../../../packages/utils/dist/json/stringify-pretty-stable.js","../../../../../../packages/utils/dist/maps/group-by.js","../../../../../../packages/utils/dist/maps/key-by.js","../../../../../../packages/utils/dist/maps/map-values-of-map.js","../../../../../../packages/utils/dist/maps/safe-merge-map.js","../../../../../../packages/utils/dist/objects/immutable-set.js","../../../../../../packages/utils/dist/objects/safe-merge.js","../../../../../../packages/utils/dist/string/compare-strings.js","../../../../../../packages/utils/dist/objects/sort-keys-recursive.js","../../../../../../packages/utils/dist/objects/sort-object-keys.js","../../../../../../packages/utils/dist/sets/difference.js","../../../../../../packages/utils/dist/string/case.js","../../../../../../packages/utils/dist/string/convert-case-with-prefix.js","../../../../../../node_modules/.pnpm/fastest-levenshtein@1.0.16/node_modules/fastest-levenshtein/esm/mod.js","../../../../../../packages/utils/dist/string/find-closest-match.js","../../../../../../packages/utils/dist/string/quot.js","../../../../../../node_modules/.pnpm/nanoid@5.0.9/node_modules/nanoid/index.browser.js","../../../../../../packages/utils/dist/string/random-key.js","../../../../../../packages/utils/dist/toposort/errors.js","../../../../../../packages/utils/dist/toposort/toposort-local.js","../../../../../../node_modules/.pnpm/tinyqueue@3.0.0/node_modules/tinyqueue/index.js","../../../../../../packages/utils/dist/toposort/toposort.js","../../../../../../packages/utils/dist/type-guards/not-empty.js","../../../../../../packages/utils/dist/validators/case-validators.js","../../../../../../packages/utils/dist/validators/number-validators.js"],"sourcesContent":["/**\n * Asserts that an array has no duplicate values based on an optional key function.\n * Throws an error if duplicates are found, listing all duplicate keys.\n *\n * @template T The type of elements in the array.\n * @param items The array to check for duplicates.\n * @param context A string describing the context for the error message (e.g., \"route loader fields\").\n * @param keyFn A function that extracts the comparison key from each element. Defaults to identity.\n * @throws Error if duplicate keys are found.\n */\nexport function assertNoDuplicates(items, context, keyFn) {\n const getKey = keyFn ?? ((item) => item);\n const seen = new Map();\n const duplicates = [];\n for (const item of items) {\n const key = getKey(item);\n const count = seen.get(key) ?? 0;\n seen.set(key, count + 1);\n if (count === 1) {\n // First time we see a duplicate\n duplicates.push(key);\n }\n }\n if (duplicates.length > 0) {\n const duplicateList = duplicates\n .map((key) => JSON.stringify(key))\n .join(', ');\n throw new Error(`Duplicate ${context} found: ${duplicateList}`);\n }\n}\n//# sourceMappingURL=assert-no-duplicates.js.map","function normalizeContent(content) {\n if (typeof content === 'string') {\n const encoder = new TextEncoder();\n const { buffer } = encoder.encode(content);\n if (!(buffer instanceof ArrayBuffer)) {\n throw new TypeError('Buffer is not an ArrayBuffer');\n }\n return buffer;\n }\n return content;\n}\nexport async function hashWithSHA256(content) {\n const data = normalizeContent(content);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = [...new Uint8Array(hashBuffer)];\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\n}\n//# sourceMappingURL=hash.js.map","/**\n * Enhances an error with additional context while preserving the original stack trace\n * @param {Error} originalError - The original error that was caught\n * @param {string} contextMessage - Additional context to prepend to the error message\n * @param {Object} [additionalProps] - Optional object with additional properties to add to the error\n * @returns {Error} - Enhanced error with preserved stack trace\n */\nexport function enhanceErrorWithContext(originalError, contextMessage) {\n // Create a new error with combined message\n const enhancedError = new Error(`${contextMessage}:\\n${originalError instanceof Error\n ? originalError.message\n : String(originalError)}`);\n // Preserve the original stack if possible\n if (originalError instanceof Error) {\n enhancedError.stack = originalError.stack;\n }\n return enhancedError;\n}\n//# sourceMappingURL=enhance-error-with-context.js.map","/**\n * Class providing typed event emitter functionality.\n *\n * @template T - Mapping of event names to payload types.\n */\nexport class TypedEventEmitter {\n listenerMap = new Map();\n /**\n * Abort controller for the event emitter to terminate all async generator listeners.\n */\n eventEmitterAbortController = new AbortController();\n /**\n * Registers a listener for an event.\n *\n * @template K - The event name.\n * @param eventName - Name of the event.\n * @param listener - Callback invoked with the event payload.\n * @param options - Options for the listener.\n * @returns Function to unregister the listener.\n */\n on(eventName, listener, options) {\n const { signal } = options ?? {};\n const existingListeners = this.listenerMap.get(eventName) ?? [];\n this.listenerMap.set(eventName, [\n ...existingListeners,\n listener,\n ]);\n // Returns a function that unregisters this listener.\n const unregister = () => {\n const updatedListeners = (this.listenerMap.get(eventName) ?? []).filter((l) => l !== listener);\n if (updatedListeners.length > 0) {\n this.listenerMap.set(eventName, updatedListeners);\n }\n else {\n this.listenerMap.delete(eventName);\n }\n };\n signal?.addEventListener('abort', unregister, {\n once: true,\n });\n return unregister;\n }\n /**\n * Creates an async generator for an event.\n *\n * @template K - The event name.\n * @param eventName - Name of the event.\n * @param options - Additional options.\n * @returns An async generator yielding event payloads.\n */\n async *onAsync(eventName, options) {\n // Create a queue to store events when consumer isn't ready\n const queue = [];\n let pendingNext;\n let isDone = false;\n // Return early if the signal is aborted\n const eventEmitterAbortSignal = this.eventEmitterAbortController.signal;\n if (options.signal?.aborted || eventEmitterAbortSignal.aborted)\n return;\n function abortHandler() {\n isDone = true;\n // trigger dummy event to unblock the consumer\n pendingNext?.(undefined);\n }\n options.signal?.addEventListener('abort', abortHandler, { once: true });\n eventEmitterAbortSignal.addEventListener('abort', abortHandler, {\n once: true,\n });\n this.on(eventName, (payload) => {\n if (pendingNext) {\n pendingNext(payload);\n pendingNext = undefined;\n }\n else {\n queue.push(payload);\n }\n }, { signal: options.signal });\n // Keep yielding events until done\n // oxlint-disable-next-line no-unmodified-loop-condition -- false positive since isDone is set to true in the abort handler\n while (!isDone) {\n const payload = queue.shift() ??\n (await new Promise((resolve) => {\n pendingNext = resolve;\n }));\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- false positive since isDone is set to true in the abort handler\n if (isDone)\n break;\n yield payload;\n }\n }\n /**\n * Emits an event with the given payload.\n *\n * @template K - The event name.\n * @param eventName - Name of the event.\n * @param payload - Payload for the event.\n */\n emit(eventName, payload) {\n const listeners = this.listenerMap.get(eventName) ?? [];\n for (const listener of listeners) {\n listener(payload);\n }\n }\n /**\n * Removes all registered event listeners.\n *\n * Note: This is dangerous and should only be used in testing.\n */\n clearListeners() {\n this.listenerMap.clear();\n this.eventEmitterAbortController.abort();\n }\n /**\n * Aborts the event emitter to terminate all async generator listeners.\n */\n abortEventEmitter() {\n this.eventEmitterAbortController.abort();\n }\n}\n/**\n * Creates a typed event emitter that supports event listening and emitting.\n *\n * @template T - Mapping of event names to payload types.\n * @returns An emitter with `on`, `emit`, and `clear` methods.\n */\nexport function createTypedEventEmitter() {\n return new TypedEventEmitter();\n}\n//# sourceMappingURL=typed-event-emitter.js.map","import { sortBy } from 'es-toolkit';\n/**\n * Field container for a single value that cannot be overridden once set\n */\nexport class ScalarContainer {\n _value;\n defaultValue;\n isSet = false;\n setBySource;\n getDynamicSource;\n constructor(defaultValue, options) {\n this.defaultValue = defaultValue;\n this.getDynamicSource = options?.getDynamicSource;\n }\n getValue() {\n return this._value === undefined ? this.defaultValue : this._value;\n }\n set(value, source) {\n const setBySource = source ?? this.getDynamicSource?.() ?? 'unknown';\n if (this.isSet) {\n throw new Error(`Value has already been set by ${this.setBySource} and cannot be overwritten by ${setBySource}`);\n }\n this._value = value;\n this.isSet = true;\n this.setBySource = setBySource;\n }\n}\n// Array field container\nexport class ArrayContainer {\n _stripDuplicates;\n _value;\n constructor(initialValue, options) {\n this._stripDuplicates = options?.stripDuplicates ?? false;\n this._value = initialValue ?? [];\n }\n push(...items) {\n let currentValue = this._value;\n if (this._stripDuplicates) {\n // Add items without duplicates\n const set = new Set([...currentValue, ...items]);\n currentValue = [...set];\n }\n else {\n // Add all items\n currentValue = [...currentValue, ...items];\n }\n this._value = currentValue;\n }\n getValue() {\n return this._value;\n }\n}\nexport class ObjectContainer {\n map;\n getDynamicSource;\n constructor(initialValue, options) {\n this.getDynamicSource = options?.getDynamicSource;\n this.map = new Map(Object.entries(initialValue).map(([key, value]) => [\n key,\n { value, setBySource: this.getDynamicSource?.() },\n ]));\n }\n set(key, value, source) {\n const existingValue = this.map.get(key);\n const setBySource = source ?? this.getDynamicSource?.() ?? 'unknown';\n if (existingValue?.setBySource) {\n throw new Error(`Value for key ${key} has already been set by ${existingValue.setBySource} and cannot be overwritten by ${setBySource}`);\n }\n this.map.set(key, {\n value,\n setBySource,\n });\n }\n merge(value, source) {\n const mergeSource = source ?? this.getDynamicSource?.();\n for (const [key, val] of Object.entries(value)) {\n this.set(key, val, mergeSource);\n }\n }\n getValue() {\n return Object.fromEntries([...this.map.entries()].map(([key, value]) => [key, value.value]));\n }\n}\n// Map field container\nexport class MapContainer {\n _value;\n getDynamicSource;\n constructor(initialValue, options) {\n this.getDynamicSource = options?.getDynamicSource;\n const initialMap = initialValue ?? new Map();\n this._value = new Map([...initialMap.entries()].map(([key, value]) => [\n key,\n { value, setBySource: this.getDynamicSource?.() },\n ]));\n }\n set(key, value, source) {\n const existingValue = this._value.get(key);\n const setBySource = source ?? this.getDynamicSource?.() ?? 'unknown';\n if (existingValue?.setBySource) {\n throw new Error(`Value for key ${key} has already been set by ${existingValue.setBySource} and cannot be overwritten by ${setBySource}`);\n }\n this._value.set(key, {\n value,\n setBySource,\n });\n }\n merge(value, source) {\n const mergeSource = source ?? this.getDynamicSource?.();\n for (const [key, val] of value.entries()) {\n this.set(key, val, mergeSource);\n }\n }\n mergeObj(value, source) {\n const mergeSource = source ?? this.getDynamicSource?.();\n for (const [key, val] of Object.entries(value)) {\n this.set(key, val, mergeSource);\n }\n }\n getValue() {\n return new Map([...this._value.entries()].map(([key, value]) => [key, value.value]));\n }\n}\n/**\n * Named field container\n *\n * This container stores objects that contains a name field that can be used for\n * detecting duplicate names.\n */\nexport class NamedArrayFieldContainer {\n _value;\n getDynamicSource;\n constructor(initialValue, options) {\n this.getDynamicSource = options?.getDynamicSource;\n const value = initialValue ?? [];\n this._value = new Map(value.map((val) => [\n val.name,\n { value: val, setBySource: this.getDynamicSource?.() },\n ]));\n }\n add(value, source) {\n const existingValue = this._value.get(value.name);\n const setBySource = source ?? this.getDynamicSource?.() ?? 'unknown';\n if (existingValue?.setBySource) {\n throw new Error(`Value for name ${value.name} has already been set by ${existingValue.setBySource} and cannot be overwritten by ${setBySource}`);\n }\n this._value.set(value.name, {\n value,\n setBySource,\n });\n }\n addMany(values, source) {\n for (const value of values) {\n this.add(value, source);\n }\n }\n getValue() {\n return sortBy([...this._value.values()].map((value) => value.value), [(v) => v.name]);\n }\n}\n/**\n * Named array field container that returns a map of names to values\n */\nexport class NamedArrayToMapFieldContainer {\n _namedFieldContainer;\n constructor(initialValue, options) {\n this._namedFieldContainer = new NamedArrayFieldContainer(initialValue, options);\n }\n add(value, source) {\n this._namedFieldContainer.add(value, source);\n }\n addMany(values, source) {\n this._namedFieldContainer.addMany(values, source);\n }\n getValue() {\n return new Map(this._namedFieldContainer.getValue().map((value) => [value.name, value]));\n }\n}\n// Map of maps field container\nexport class MapOfMapsContainer {\n _value;\n getDynamicSource;\n constructor(initialValue, options) {\n this.getDynamicSource = options?.getDynamicSource;\n const initialMap = initialValue ?? new Map();\n this._value = new Map([...initialMap.entries()].map(([key1, innerMap]) => [\n key1,\n {\n value: new Map([...innerMap.entries()].map(([key2, value]) => [\n key2,\n { value, setBySource: this.getDynamicSource?.() },\n ])),\n setBySource: this.getDynamicSource?.(),\n },\n ]));\n }\n set(key1, key2, value, source) {\n const existingOuterValue = this._value.get(key1);\n const setBySource = source ?? this.getDynamicSource?.() ?? 'unknown';\n // If the outer key doesn't exist yet, create a new map for it\n if (!existingOuterValue) {\n const newInnerMap = new Map([[key2, { value, setBySource }]]);\n this._value.set(key1, {\n value: newInnerMap,\n setBySource,\n });\n return;\n }\n // Check if this specific key1+key2 combination has already been set\n const existingInnerValue = existingOuterValue.value.get(key2);\n if (existingInnerValue?.setBySource) {\n throw new Error(`Value for keys ${key1}+${key2} has already been set by ${existingInnerValue.setBySource} and cannot be overwritten by ${setBySource}`);\n }\n // Add the new value to the existing inner map\n existingOuterValue.value.set(key2, {\n value,\n setBySource,\n });\n }\n merge(key1, value, source) {\n const mergeSource = source ?? this.getDynamicSource?.() ?? 'unknown';\n for (const [key2, val] of value.entries()) {\n this.set(key1, key2, val, mergeSource);\n }\n }\n mergeObj(key1, value, source) {\n const mergeSource = source ?? this.getDynamicSource?.() ?? 'unknown';\n for (const [key2, val] of Object.entries(value)) {\n this.set(key1, key2, val, mergeSource);\n }\n }\n getValue() {\n return new Map([...this._value.entries()].map(([key1, outerValue]) => [\n key1,\n new Map([...outerValue.value.entries()].map(([key2, innerValue]) => [\n key2,\n innerValue.value,\n ])),\n ]));\n }\n}\n// Schema builder class\nexport class FieldMapSchemaBuilder {\n options;\n constructor(options) {\n this.options = options;\n }\n scalar(defaultValue) {\n return new ScalarContainer(defaultValue, this.options);\n }\n string(defaultValue) {\n return new ScalarContainer(defaultValue, this.options);\n }\n number(defaultValue) {\n return new ScalarContainer(defaultValue, this.options);\n }\n boolean(defaultValue) {\n return new ScalarContainer(defaultValue, this.options);\n }\n array(initialValue, options) {\n return new ArrayContainer(initialValue, options);\n }\n object(defaultValue) {\n return new ObjectContainer(defaultValue, this.options);\n }\n map(initialValue) {\n return new MapContainer(initialValue ?? new Map(), this.options);\n }\n mapFromObj(initialValue) {\n return new MapContainer(new Map(Object.entries(initialValue ?? {})), this.options);\n }\n namedArray(initialValue) {\n return new NamedArrayFieldContainer(initialValue, this.options);\n }\n namedArrayToMap(initialValue) {\n return new NamedArrayToMapFieldContainer(initialValue, this.options);\n }\n mapOfMaps(initialValue) {\n return new MapOfMapsContainer(initialValue ?? new Map(), this.options);\n }\n mapOfMapsFromObj(initialValue) {\n const map = new Map();\n if (initialValue) {\n for (const [key1, innerObj] of Object.entries(initialValue)) {\n map.set(key1, new Map(Object.entries(innerObj)));\n }\n }\n return new MapOfMapsContainer(map, this.options);\n }\n}\nexport function createFieldMapSchemaBuilder(schemaBuilder) {\n return schemaBuilder;\n}\n/**\n * Creates a field map with type-safe field definitions\n */\nexport function createFieldMap(schemaBuilder, options) {\n const schema = schemaBuilder(new FieldMapSchemaBuilder(options));\n // Add getValues method\n return {\n ...schema,\n getValues: () => {\n const values = {};\n for (const key of Object.keys(schema)) {\n const container = schema[key];\n values[key] = container.getValue();\n }\n return values;\n },\n };\n}\n//# sourceMappingURL=field-map.js.map","/**\n * Recursively deep clones JSON-compatible values.\n * Throws if the value is not JSON-serializable.\n *\n * @param value - The value to clone\n * @returns A deep-cloned copy of the value\n * @throws Error if a non-JSON value is encountered\n */\nexport function jsonDeepClone(value) {\n if (value === undefined ||\n value === null ||\n typeof value === 'boolean' ||\n typeof value === 'string') {\n return value;\n }\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'object') {\n if (value instanceof Date || value instanceof RegExp) {\n throw new TypeError(`Cannot clone value of unsupported type: ${value.constructor.name}`);\n }\n if (Array.isArray(value)) {\n // Clone array elements\n const copy = [];\n for (const [i, element] of value.entries()) {\n copy[i] = jsonDeepClone(element);\n }\n return copy;\n }\n // Clone plain object properties\n const copy = {};\n for (const key in value) {\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n const prop = value[key];\n copy[key] = jsonDeepClone(prop);\n }\n }\n return copy;\n }\n // Reject functions, symbols, BigInt, etc.\n throw new Error(`Cannot clone value of unsupported type: ${typeof value}`);\n}\n//# sourceMappingURL=json-deep-clone.js.map","// adapted from https://github.com/AitoDotAI/json-stringify-pretty-compact\n// allows { } to be presented as {} to better mirror prettier formatting\nfunction isObject(obj) {\n return typeof obj === 'object' && obj !== null;\n}\nfunction forEach(obj, cb) {\n if (Array.isArray(obj)) {\n // eslint-disable-next-line unicorn/no-array-for-each\n obj.forEach(cb);\n }\n else if (isObject(obj)) {\n for (const key of Object.keys(obj)) {\n const val = obj[key];\n cb(val, key);\n }\n }\n}\nfunction getTreeDepth(obj) {\n let depth = 0;\n if (Array.isArray(obj) || isObject(obj)) {\n forEach(obj, (val) => {\n if (Array.isArray(val) || isObject(val)) {\n const tmpDepth = getTreeDepth(val);\n if (tmpDepth > depth) {\n depth = tmpDepth;\n }\n }\n });\n return depth + 1;\n }\n return depth;\n}\nfunction get(options, name, defaultValue) {\n return (name in options ? options[name] : defaultValue);\n}\n// Note: This regex matches even invalid JSON strings, but since we’re\n// working on the output of `JSON.stringify` we know that only valid strings\n// are present (unless the user supplied a weird `options.indent` but in\n// that case we don’t care since the output would be invalid anyway).\n// This regex has been adjusted to allow replacement of { } and [ ] with {} and []\n// to better mirror prettier formatting.\nconst stringOrChar = /(\"(?:[^\\\\\"]|\\\\.)*\")|[:,]|\\{(?!})|(?<!\\{)}|\\[(?!])|(?<!\\[)]/g;\nfunction prettify(str, options = {}) {\n const tokens = {\n '{': '{',\n '}': '}',\n '[': '[',\n ']': ']',\n ',': ', ',\n ':': ': ',\n };\n if (!!options.addMargin || !!options.addObjectMargin) {\n tokens['{'] = '{ ';\n tokens['}'] = ' }';\n }\n if (!!options.addMargin || !!options.addArrayMargin) {\n tokens['['] = '[ ';\n tokens[']'] = ' ]';\n }\n return str.replaceAll(stringOrChar, (match, string) => string ? match : tokens[match]);\n}\nexport function stringifyPrettyCompact(rootObj, options = {}) {\n const indent = JSON.stringify([1], null, get(options, 'indent', 2)).slice(2, -3);\n const addMargin = get(options, 'margins', false);\n const addArrayMargin = get(options, 'arrayMargins', false);\n const addObjectMargin = get(options, 'objectMargins', true);\n const maxLength = indent === '' ? Infinity : get(options, 'maxLength', 80);\n const maxNesting = get(options, 'maxNesting', Infinity);\n return (function stringifyRecursive(obj, currentIndent, reserved) {\n if (obj &&\n typeof obj === 'object' &&\n typeof obj.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n obj = obj.toJSON();\n }\n const string = JSON.stringify(obj);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (string === undefined) {\n return string;\n }\n const length = maxLength - currentIndent.length - reserved;\n const treeDepth = getTreeDepth(obj);\n if (treeDepth <= maxNesting && string.length <= length) {\n const prettified = prettify(string, {\n addMargin,\n addArrayMargin,\n addObjectMargin,\n });\n if (prettified.length <= length) {\n return prettified;\n }\n }\n if (isObject(obj)) {\n const nextIndent = currentIndent + indent;\n const items = [];\n let delimiters;\n const atEndOfArray = (array, index) => index === array.length - 1 ? 0 : 1;\n if (Array.isArray(obj)) {\n for (let index = 0; index < obj.length; index += 1) {\n items.push(stringifyRecursive(obj[index], nextIndent, atEndOfArray(obj, index)) || 'null');\n }\n delimiters = '[]';\n }\n else {\n // eslint-disable-next-line unicorn/no-array-for-each\n Object.keys(obj).forEach((key, index, array) => {\n const keyPart = `${JSON.stringify(key)}: `;\n const value = stringifyRecursive(obj[key], nextIndent, keyPart.length + atEndOfArray(array, index));\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (value !== undefined) {\n items.push(keyPart + value);\n }\n });\n delimiters = '{}';\n }\n if (items.length > 0) {\n return [\n delimiters[0],\n indent + items.join(`,\\n${nextIndent}`),\n delimiters[1],\n ].join(`\\n${currentIndent}`);\n }\n }\n return string;\n })(rootObj, '', 0);\n}\n//# sourceMappingURL=stringify-pretty-compact.js.map","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","import isPlainObject from 'is-plain-obj';\n\nexport default function sortKeys(object, options = {}) {\n\tif (!isPlainObject(object) && !Array.isArray(object)) {\n\t\tthrow new TypeError('Expected a plain object or array');\n\t}\n\n\tconst {deep, compare} = options;\n\tconst cache = new WeakMap();\n\n\tconst deepSortArray = array => {\n\t\tconst resultFromCache = cache.get(array);\n\t\tif (resultFromCache !== undefined) {\n\t\t\treturn resultFromCache;\n\t\t}\n\n\t\tconst result = [];\n\t\tcache.set(array, result);\n\n\t\tresult.push(...array.map(item => {\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\treturn deepSortArray(item);\n\t\t\t}\n\n\t\t\tif (isPlainObject(item)) {\n\t\t\t\treturn _sortKeys(item);\n\t\t\t}\n\n\t\t\treturn item;\n\t\t}));\n\n\t\treturn result;\n\t};\n\n\tconst _sortKeys = object => {\n\t\tconst resultFromCache = cache.get(object);\n\t\tif (resultFromCache !== undefined) {\n\t\t\treturn resultFromCache;\n\t\t}\n\n\t\tconst result = {};\n\t\tconst keys = Object.keys(object).sort(compare);\n\n\t\tcache.set(object, result);\n\n\t\tfor (const key of keys) {\n\t\t\tconst value = object[key];\n\t\t\tlet newValue;\n\n\t\t\tif (deep && Array.isArray(value)) {\n\t\t\t\tnewValue = deepSortArray(value);\n\t\t\t} else {\n\t\t\t\tnewValue = deep && isPlainObject(value) ? _sortKeys(value) : value;\n\t\t\t}\n\n\t\t\tObject.defineProperty(result, key, {\n\t\t\t\t...Object.getOwnPropertyDescriptor(object, key),\n\t\t\t\tvalue: newValue,\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tif (Array.isArray(object)) {\n\t\treturn deep ? deepSortArray(object) : [...object];\n\t}\n\n\treturn _sortKeys(object);\n}\n","import sortKeys from 'sort-keys';\nimport { stringifyPrettyCompact } from './stringify-pretty-compact.js';\n/**\n * Stringifies a value with stable pretty printing.\n *\n * That means the keys are sorted and the value is pretty printed.\n *\n * @param value - The value to stringify.\n * @returns The stringified value.\n */\nexport function stringifyPrettyStable(value) {\n const sortedValue = sortKeys(value, {\n deep: true,\n });\n return `${stringifyPrettyCompact(sortedValue)}\\n`;\n}\n//# sourceMappingURL=stringify-pretty-stable.js.map","/**\n * Groups values of an iterable using a key-generating function and returns a Map.\n *\n * Mimics the behavior of ES2025 `Map.groupBy`.\n *\n * @template T The type of elements in the iterable.\n * @template K The key type returned by the key function.\n * @param iterable The iterable to group.\n * @param keyFn A function that returns a grouping key for each element.\n * @returns A Map where each key maps to an array of elements with that key.\n */\nexport function mapGroupBy(iterable, keyFn) {\n const result = new Map();\n for (const item of iterable) {\n const key = keyFn(item);\n const group = result.get(key);\n if (group) {\n group.push(item);\n }\n else {\n result.set(key, [item]);\n }\n }\n return result;\n}\n//# sourceMappingURL=group-by.js.map","/**\n * Creates a Map from an iterable, using a key-generating function.\n * If multiple elements generate the same key, later elements override earlier ones.\n *\n * Analogous to lodash's keyBy function, but returns a Map instead of an object.\n *\n * @template T The type of elements in the iterable.\n * @template K The key type returned by the key function.\n * @param iterable The iterable to transform.\n * @param keyFn A function that returns a unique key for each element.\n * @returns A Map where each key maps to a single element.\n */\nexport function mapKeyBy(iterable, keyFn) {\n const result = new Map();\n for (const item of iterable) {\n const key = keyFn(item);\n result.set(key, item);\n }\n return result;\n}\n//# sourceMappingURL=key-by.js.map","/**\n * Maps the values of a Map to a new Map with the same keys.\n *\n * @template K - Type of keys in the map.\n * @template V - Original value type.\n * @template R - Resulting value type.\n * @param map - The input Map to transform.\n * @param fn - A function to transform each value, receiving the value, key, and original map.\n * @returns A new Map with the same keys and transformed values.\n */\nexport function mapValuesOfMap(map, fn) {\n const result = new Map();\n for (const [key, value] of map.entries()) {\n result.set(key, fn(value, key, map));\n }\n return result;\n}\n//# sourceMappingURL=map-values-of-map.js.map","import { isEqual } from 'es-toolkit';\n/**\n * Merges an array of maps, throwing an error if any keys overlap (unless the values are deeply equal and allowed).\n *\n * @param maps - The array of maps to merge.\n * @param options - Options to control merge behavior.\n * @returns The merged map.\n */\nexport function safeMergeMapsWithOptions(maps, options = {}) {\n const result = new Map();\n for (const map of maps) {\n for (const [key, value] of map) {\n if (result.has(key)) {\n const existing = result.get(key);\n if (!options.allowEqualValues || !isEqual(existing, value)) {\n throw new Error(`Cannot merge key ${String(key)} because it already exists.`);\n }\n }\n result.set(key, value);\n }\n }\n return result;\n}\n/**\n * Merges two maps, throwing an error if any keys overlap.\n *\n * @param mapOne - The first map to merge.\n * @param mapTwo - The second map to merge.\n * @param options - Options to control merge behavior\n * @returns The merged map.\n */\nexport function safeMergeMap(mapOne, mapTwo, options = {}) {\n return safeMergeMapsWithOptions([mapOne, mapTwo], options);\n}\n/**\n * Merges an array of maps, throwing an error if any keys overlap (unless the values are deeply equal and allowed).\n * This function delegates to safeMergeMapsWithOptions.\n *\n * @param maps - The array of maps to merge.\n * @returns The merged map.\n */\nexport function safeMergeMaps(...maps) {\n return safeMergeMapsWithOptions(maps);\n}\n//# sourceMappingURL=safe-merge-map.js.map","import { isPlainObject } from 'es-toolkit';\n/**\n * Sets a value at a given path in an object or array immutably.\n *\n * Mimics lodash set but returns a new object/array and throws on invalid paths.\n * Only operates on JSON-stringifyable data (objects and arrays).\n *\n * It navigates the path and recursively copies objects/arrays along the path.\n *\n * @param obj - The object or array to modify\n * @param path - The path to set the value at\n * @param value - The value to set\n * @returns A new object or array with the value set\n * @throws Error if the path is invalid (e.g., trying to set a property on a non-object)\n */\nexport function immutableSet(obj, path, value) {\n if (path.length === 0) {\n return value;\n }\n const [head, ...tail] = path;\n if (Array.isArray(obj)) {\n if (typeof head !== 'number') {\n throw new TypeError(`Invalid path: expected number index for array, got \"${head}\"`);\n }\n const newArr = [...obj];\n newArr[head] =\n tail.length === 0\n ? value\n : immutableSet(obj[head], tail, value);\n return newArr;\n }\n if (isPlainObject(obj)) {\n const newObj = { ...obj };\n const key = String(head);\n newObj[key] =\n tail.length === 0\n ? value\n : immutableSet(obj[key], tail, value);\n return newObj;\n }\n throw new Error(`Invalid path: cannot set property \"${head}\" on non-object value`);\n}\n//# sourceMappingURL=immutable-set.js.map","import { isEqual, mergeWith } from 'es-toolkit';\n/**\n * Merges two objects, throwing an error if any keys overlap.\n *\n * @param itemOne - The first object to merge.\n * @param itemTwo - The second object to merge.\n * @param options - Options to control merge behavior\n * @returns The merged object.\n */\nexport function safeMerge(itemOne, itemTwo, options = {}) {\n return mergeWith(itemOne, itemTwo, (targetValue, sourceValue, key) => {\n if (key in itemOne && key in itemTwo) {\n if (options.allowEqualValues && isEqual(targetValue, sourceValue)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- we're just using the sourceValue\n return sourceValue;\n }\n throw new Error(`Cannot merge key ${key} because it already exists.`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- we're just using the sourceValue\n return sourceValue;\n });\n}\n/**\n * Merges an array of objects, throwing an error if any keys overlap.\n *\n * @param items - The array of objects to merge.\n * @param options - Options to control merge behavior\n * @returns The merged object.\n */\nexport function safeMergeAllWithOptions(items, options = {}) {\n const targetValue = {};\n for (const item of items.flat()) {\n safeMerge(targetValue, item, options);\n }\n return targetValue;\n}\n/**\n * Merges an array of objects, throwing an error if any keys overlap.\n *\n * @param items - The array of objects to merge.\n * @returns The merged object.\n */\nexport function safeMergeAll(...items) {\n return safeMergeAllWithOptions(items);\n}\n//# sourceMappingURL=safe-merge.js.map","/**\n * Stable string comparison function that uses case-insensitive lexicographic ordering\n * with a case-sensitive tiebreaker for determinism.\n *\n * This matches the default behavior of `localeCompare` (case-insensitive) while\n * providing consistent results across different operating systems and locales.\n * Use this for deterministic sorting where locale-aware comparison is not required.\n *\n * @param a - First string to compare\n * @param b - Second string to compare\n * @returns Negative if a < b, positive if a > b, zero if equal\n *\n * @example\n * ```ts\n * const items = ['Banana', 'apple', 'Cherry', 'cherry'];\n * items.sort(compareStrings); // ['apple', 'Banana', 'Cherry', 'cherry']\n * ```\n */\nexport function compareStrings(a, b) {\n const aLower = a.toLowerCase();\n const bLower = b.toLowerCase();\n if (aLower < bLower)\n return -1;\n if (aLower > bLower)\n return 1;\n // Tiebreaker: case-sensitive comparison for determinism\n if (a < b)\n return -1;\n if (a > b)\n return 1;\n return 0;\n}\n//# sourceMappingURL=compare-strings.js.map","import { compareStrings } from '../string/compare-strings.js';\n/**\n * Recursively sorts all keys in an object, including nested objects and arrays.\n *\n * @param obj - The object to sort recursively.\n * @returns A new object with all keys sorted recursively.\n */\nexport function sortKeysRecursive(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(sortKeysRecursive);\n }\n return Object.fromEntries(Object.entries(obj)\n .toSorted(([a], [b]) => compareStrings(a, b))\n .map(([key, value]) => [key, sortKeysRecursive(value)]));\n}\n//# sourceMappingURL=sort-keys-recursive.js.map","import { compareStrings } from '../string/compare-strings.js';\n/**\n * Sorts the keys of an object.\n *\n * @param obj - The object to sort.\n * @returns The sorted object.\n */\nexport function sortObjectKeys(obj) {\n return Object.fromEntries(Object.entries(obj).toSorted(([a], [b]) => compareStrings(a, b)));\n}\n//# sourceMappingURL=sort-object-keys.js.map","/**\n * Returns a new Set containing values in `setA` that are not in `setB`.\n *\n * @param setA - The original set\n * @param setB - The set of values to exclude\n * @returns A new Set with the difference\n */\nexport function differenceSet(setA, setB) {\n const result = new Set();\n for (const value of setA) {\n if (!setB.has(value)) {\n result.add(value);\n }\n }\n return result;\n}\n//# sourceMappingURL=difference.js.map","/**\n * Lowercase the first character of a string, leaving the remainder unchanged.\n *\n * - Returns the input unchanged when it's an empty string\n * - Non-alphabetic first characters are returned as-is\n *\n * @param str - The input string\n * @returns The string with the first character lowercased\n * @example\n * lowercaseFirstChar('Hello') // 'hello'\n * lowercaseFirstChar('hello') // 'hello'\n * lowercaseFirstChar('1World') // '1World'\n */\nexport function lowercaseFirstChar(str) {\n if (str.length === 0) {\n return str;\n }\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\n/**\n * Uppercase the first character of a string, leaving the remainder unchanged.\n *\n * - Returns the input unchanged when it's an empty string\n * - Non-alphabetic first characters are returned as-is\n *\n * @param str - The input string\n * @returns The string with the first character uppercased\n * @example\n * uppercaseFirstChar('hello') // 'Hello'\n * uppercaseFirstChar('Hello') // 'Hello'\n * uppercaseFirstChar('#tag') // '#tag'\n */\nexport function uppercaseFirstChar(str) {\n if (str.length === 0) {\n return str;\n }\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n//# sourceMappingURL=case.js.map","/**\n * Converts a string to the specified case while preserving non-alphanumeric prefixes and suffixes.\n *\n * @param input - The string to convert\n * @param caseConverter - The case conversion function to apply\n * @returns The converted string with preserved prefix and suffix\n *\n * @example\n * ```typescript\n * convertCaseWithPrefix('_layoutTest', kebabCase)\n * // Returns: '_layout-test'\n *\n * convertCaseWithPrefix('__privateHelper', kebabCase)\n * // Returns: '__private-helper'\n *\n * convertCaseWithPrefix('[id]', kebabCase)\n * // Returns: '[id]'\n * ```\n */\nexport function convertCaseWithPrefix(input, caseConverter) {\n // Handle special pattern where the entire string is non-alphanumeric (like \"[id]\")\n if (!/[a-zA-Z0-9]/.test(input)) {\n return input;\n }\n // Extract non-alphanumeric prefix\n const prefixMatch = /^([^a-zA-Z0-9]*)/.exec(input);\n const prefix = prefixMatch?.[1] ?? '';\n // Extract non-alphanumeric suffix\n const suffixMatch = /([^a-zA-Z0-9]*)$/.exec(input);\n const suffix = suffixMatch?.[1] ?? '';\n // Get the middle part (everything between prefix and suffix)\n const startIndex = prefix.length;\n const endIndex = input.length - suffix.length;\n const middlePart = input.slice(startIndex, endIndex);\n // Only apply case conversion to the middle part if it contains alphanumeric characters\n const convertedMiddlePart = middlePart && /[a-zA-Z0-9]/.test(middlePart)\n ? caseConverter(middlePart)\n : middlePart;\n return prefix + convertedMiddlePart + suffix;\n}\n//# sourceMappingURL=convert-case-with-prefix.js.map","const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import { distance } from 'fastest-levenshtein';\n/**\n * Finds the n closest matches to a target string from an array of strings using Levenshtein distance.\n *\n * @param target - The string to find matches for\n * @param candidates - Array of candidate strings to search through\n * @param n - Number of closest matches to return (defaults to 1)\n * @returns Array of the n closest matches, sorted by distance (closest first)\n *\n * @example\n * ```typescript\n * const candidates = ['apple', 'banana', 'orange', 'grape'];\n * const matches = findClosestMatch('aple', candidates, 2);\n * // Returns: ['apple', 'grape'] (assuming these are the 2 closest matches)\n * ```\n */\nexport function findClosestMatch(target, candidates, n = 1) {\n if (candidates.length === 0) {\n return [];\n }\n if (n <= 0) {\n return [];\n }\n // Calculate distances for all candidates\n const distances = candidates.map((candidate, index) => ({\n candidate,\n distance: distance(target, candidate),\n index,\n }));\n // Sort by distance (ascending) and then by original index for stable sorting\n distances.sort((a, b) => {\n if (a.distance !== b.distance) {\n return a.distance - b.distance;\n }\n return a.index - b.index;\n });\n // Return the n closest matches\n return distances.slice(0, n).map((item) => item.candidate);\n}\n//# sourceMappingURL=find-closest-match.js.map","/**\n * Quotes a string with single quotes and escapes single quotes.\n * @param value - The string to quote.\n * @returns The quoted string.\n */\nexport function quot(value) {\n return `'${value.replaceAll(\"'\", String.raw `\\'`)}'`;\n}\n/**\n * Quotes a string with double quotes and escapes double quotes.\n * @param value - The string to quote.\n * @returns The quoted string.\n */\nexport function doubleQuot(value) {\n return `\"${value.replaceAll('\"', String.raw `\\\"`)}\"`;\n}\n//# sourceMappingURL=quot.js.map","import { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","import { customAlphabet } from 'nanoid';\nconst NUMBERS = '0123456789';\nconst LOWERCASE = 'abcdefghijklmnopqrstuvwxyz';\nconst UPPERCASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n/**\n * Use custom ID generator for characters that be easily selected\n */\nconst customNanoid = customAlphabet(`${NUMBERS}${LOWERCASE}${UPPERCASE}_`, 12);\n/**\n * Generate a random key string made up of numbers, lowercase, and uppercase letters\n * @returns A random key string\n */\nexport function randomKey(length = 12) {\n return customNanoid(length);\n}\n//# sourceMappingURL=random-key.js.map","export class ToposortCyclicalDependencyError extends Error {\n cyclePath;\n constructor(nodes) {\n super(`Cyclical dependency detected: ${nodes.map((n) => JSON.stringify(n)).join(' -> ')}`);\n this.name = 'ToposortCyclicalDependencyError';\n this.cyclePath = nodes; // Store the path for potential inspection\n }\n}\nexport class ToposortUnknownNodeError extends Error {\n unknownNode;\n constructor(node) {\n super(`Unknown node referenced in edges: ${JSON.stringify(node)}`);\n this.name = 'ToposortUnknownNodeError';\n this.unknownNode = node; // Store the node for potential inspection\n }\n}\n//# sourceMappingURL=errors.js.map","import { compareStrings } from '../string/compare-strings.js';\nimport { ToposortCyclicalDependencyError, ToposortUnknownNodeError, } from './errors.js';\n/**\n * Creates a map of inbound edges from node indices to their source indices\n */\nfunction makeInboundEdges(nodes, edgeArr) {\n const inboundEdgesMap = new Map();\n for (const edge of edgeArr) {\n const [source, target] = edge;\n const sourceIndex = nodes.get(source);\n const targetIndex = nodes.get(target);\n // Check both source and target exist in the provided nodes set\n if (sourceIndex === undefined)\n throw new ToposortUnknownNodeError(source);\n if (targetIndex === undefined)\n throw new ToposortUnknownNodeError(target);\n const targetEdges = inboundEdgesMap.get(targetIndex);\n if (targetEdges) {\n targetEdges.add(sourceIndex);\n }\n else {\n inboundEdgesMap.set(targetIndex, new Set([sourceIndex]));\n }\n }\n return inboundEdgesMap;\n}\n/**\n * Creates a map of node indices to their out-degree\n */\nfunction makeNodeOutDegrees(inboundEdgesMap, nodeLength) {\n const nodeOutDegrees = Array.from({ length: nodeLength }, () => 0);\n for (const [, sources] of inboundEdgesMap.entries()) {\n for (const source of sources) {\n nodeOutDegrees[source]++;\n }\n }\n return nodeOutDegrees;\n}\n/**\n * Detects a cycle in a graph and returns the path of the first cycle found.\n */\nfunction detectCycle(nodes, \n// Set of nodes already processed by a prior algorithm (e.g., a topological sort).\n// This function will only search for cycles among the remaining nodes.\ninitialVisited, edges) {\n // Tracks nodes visited by ANY DFS traversal within this function.\n const cycleCheckVisited = new Set();\n for (let i = 0; i < nodes.length; i++) {\n if (!initialVisited.has(i) && !cycleCheckVisited.has(i)) {\n const path = [];\n const recursionStack = new Set();\n const cyclePath = dfs(i, path, recursionStack);\n if (cyclePath) {\n // A cycle was found, convert indices to nodes and return immediately.\n return cyclePath.map((idx) => nodes[idx]);\n }\n }\n }\n // No cycles were found in any of the graph's components.\n return [];\n /**\n * Performs a DFS from a starting node to find a cycle.\n * @returns The cycle path as an array of indices if found, otherwise null.\n */\n function dfs(node, path, recursionStack) {\n path.push(node);\n recursionStack.add(node);\n cycleCheckVisited.add(node);\n const neighbors = edges.get(node) ?? new Set();\n for (const neighbor of neighbors) {\n if (recursionStack.has(neighbor)) {\n const cycleStartIndex = path.indexOf(neighbor);\n const cycle = path.slice(cycleStartIndex);\n cycle.push(neighbor);\n return cycle;\n }\n // If the neighbor hasn't been visited by any DFS run yet, recurse.\n if (!cycleCheckVisited.has(neighbor)) {\n const result = dfs(neighbor, path, recursionStack);\n if (result) {\n // A cycle was found deeper in the traversal; propagate the result up.\n return result;\n }\n }\n }\n // Backtrack: No cycle found from this node.\n recursionStack.delete(node);\n path.pop();\n return null;\n }\n}\n/**\n * Default comparison function for stable topological sort\n */\nfunction defaultCompareFunc(a, b) {\n if (typeof a === 'string' && typeof b === 'string') {\n return compareStrings(a, b);\n }\n if (a === b)\n return 0;\n return a < b ? -1 : 1;\n}\n/**\n * Performs a locality-based topological sort on a directed acyclic graph.\n *\n * This is a variant of Kahn's algorithm that starts from nodes with no outbound edges first,\n * and then works its way back.\n *\n * This is useful for tasks where we want to process nodes in a way that is consistent with their locality in the graph\n * such as sorting fragments of a generated code file that depend on each other.\n *\n * @param nodes - The nodes to sort\n * @param edges - The edges of the graph\n * @param options - Optional options for the topological sort\n * @returns The sorted nodes\n */\nexport function toposortLocal(nodes, edges, options = {}) {\n const { compareFunc = defaultCompareFunc } = options;\n const compareIdx = (a, b) => compareFunc(nodes[a], nodes[b]);\n // Map each node to its index\n const nodeIndexMap = new Map(nodes.map((node, index) => [node, index]));\n // Create a map of outgoing edges from each node\n const inboundEdgesMap = makeInboundEdges(nodeIndexMap, edges);\n const nodeOutDegrees = makeNodeOutDegrees(inboundEdgesMap, nodes.length);\n // Create a stack of nodes with no incoming edges (in-degree == 0)\n // We use a stack so that the most recently added nodes are processed first\n const zeroOutDegreeStack = [];\n for (const [i, nodeOutDegree] of nodeOutDegrees.entries()) {\n if (nodeOutDegree === 0) {\n zeroOutDegreeStack.push(i);\n }\n }\n zeroOutDegreeStack.sort(compareIdx);\n const reverseResult = [];\n const visited = new Set();\n // Process nodes in BFS order\n while (zeroOutDegreeStack.length > 0) {\n const current = zeroOutDegreeStack.pop();\n if (current === undefined)\n break;\n visited.add(current);\n reverseResult.push(nodes[current]);\n // Process all outgoing edges from the current node\n const incomingEdges = inboundEdgesMap.get(current);\n const newZeroOutDegreeNodes = [];\n if (incomingEdges) {\n for (const source of incomingEdges) {\n nodeOutDegrees[source]--;\n // If the target node now has no incoming edges, add it to the queue\n if (nodeOutDegrees[source] === 0) {\n newZeroOutDegreeNodes.push(source);\n }\n }\n }\n newZeroOutDegreeNodes.sort(compareIdx);\n zeroOutDegreeStack.push(...newZeroOutDegreeNodes);\n }\n // Check for cycles\n if (reverseResult.length !== nodes.length) {\n const cyclePath = detectCycle(nodes, visited, inboundEdgesMap);\n throw new ToposortCyclicalDependencyError(cyclePath.toReversed());\n }\n return reverseResult.toReversed();\n}\n//# sourceMappingURL=toposort-local.js.map","\nexport default class TinyQueue {\n constructor(data = [], compare = (a, b) => (a < b ? -1 : a > b ? 1 : 0)) {\n this.data = data;\n this.length = this.data.length;\n this.compare = compare;\n\n if (this.length > 0) {\n for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n }\n }\n\n push(item) {\n this.data.push(item);\n this._up(this.length++);\n }\n\n pop() {\n if (this.length === 0) return undefined;\n\n const top = this.data[0];\n const bottom = this.data.pop();\n\n if (--this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n\n return top;\n }\n\n peek() {\n return this.data[0];\n }\n\n _up(pos) {\n const {data, compare} = this;\n const item = data[pos];\n\n while (pos > 0) {\n const parent = (pos - 1) >> 1;\n const current = data[parent];\n if (compare(item, current) >= 0) break;\n data[pos] = current;\n pos = parent;\n }\n\n data[pos] = item;\n }\n\n _down(pos) {\n const {data, compare} = this;\n const halfLength = this.length >> 1;\n const item = data[pos];\n\n while (pos < halfLength) {\n let bestChild = (pos << 1) + 1; // initially it is the left child\n const right = bestChild + 1;\n\n if (right < this.length && compare(data[right], data[bestChild]) < 0) {\n bestChild = right;\n }\n if (compare(data[bestChild], item) >= 0) break;\n\n data[pos] = data[bestChild];\n pos = bestChild;\n }\n\n data[pos] = item;\n }\n}\n","import TinyQueue from 'tinyqueue';\nimport { compareStrings } from '../string/compare-strings.js';\nimport { ToposortCyclicalDependencyError, ToposortUnknownNodeError, } from './errors.js';\n/**\n * Creates a map of outgoing edges from node indices to their target indices\n */\nfunction makeOutgoingEdges(nodes, edgeArr) {\n const outgoingEdgesMap = new Map();\n for (const edge of edgeArr) {\n const [source, target] = edge;\n const sourceIndex = nodes.get(source);\n const targetIndex = nodes.get(target);\n // Check both source and target exist in the provided nodes set\n if (sourceIndex === undefined)\n throw new ToposortUnknownNodeError(source);\n if (targetIndex === undefined)\n throw new ToposortUnknownNodeError(target);\n const sourceEdges = outgoingEdgesMap.get(sourceIndex);\n if (sourceEdges) {\n sourceEdges.add(targetIndex);\n }\n else {\n outgoingEdgesMap.set(sourceIndex, new Set([targetIndex]));\n }\n }\n return outgoingEdgesMap;\n}\n/**\n * Creates a map of node indices to their in-degree\n */\nfunction makeNodeInDegrees(outgoingEdgesMap, nodeLength) {\n const nodeInDegrees = Array.from({ length: nodeLength }, () => 0);\n for (const [, targets] of outgoingEdgesMap.entries()) {\n for (const target of targets) {\n nodeInDegrees[target]++;\n }\n }\n return nodeInDegrees;\n}\n/**\n * Detects cycles in a graph by checking if all nodes are included in the topological sort\n */\nfunction detectCycle(nodes, visited, edges) {\n // If all nodes were visited, no cycle exists\n if (visited.size === nodes.length) {\n return [];\n }\n // Run DFS from any unvisited node to find a cycle\n const path = [];\n const visitSet = new Set();\n function dfs(node) {\n if (visitSet.has(node)) {\n path.push(node);\n return true;\n }\n if (visited.has(node)) {\n return false;\n }\n visitSet.add(node);\n path.push(node);\n const neighbors = edges.get(node) ?? new Set();\n for (const neighbor of neighbors) {\n if (dfs(neighbor)) {\n return true;\n }\n }\n path.pop();\n visitSet.delete(node);\n return false;\n }\n // For cycle detection, we need to try all unvisited nodes\n for (let i = 0; i < nodes.length; i++) {\n if (!visited.has(i)) {\n // Reset path and visitSet for each starting node\n path.length = 0;\n visitSet.clear();\n const cycleFound = dfs(i);\n if (cycleFound) {\n // Convert path indices to actual nodes\n return path.map((idx) => nodes[idx]);\n }\n }\n }\n return [];\n}\n/**\n * Default comparison function for stable topological sort\n */\nfunction defaultCompareFunc(a, b) {\n if (typeof a === 'string' && typeof b === 'string') {\n return compareStrings(a, b);\n }\n if (a === b)\n return 0;\n return a < b ? -1 : 1;\n}\n/**\n * Performs a topological sort on a directed acyclic graph.\n *\n * @param nodes - The nodes to sort\n * @param edges - The edges of the graph\n * @param options - Optional options for the topological sort\n * @returns The sorted nodes\n */\nexport function toposort(nodes, edges, options = {}) {\n const { compareFunc } = options;\n // Map each node to its index\n const nodeIndexMap = new Map(nodes.map((node, index) => [node, index]));\n // Create a map of outgoing edges from each node\n const outgoingEdgesMap = makeOutgoingEdges(nodeIndexMap, edges);\n const nodeInDegrees = makeNodeInDegrees(outgoingEdgesMap, nodes.length);\n // Create a queue of nodes with no incoming edges (in-degree == 0)\n const zeroInDegreeQueue = compareFunc\n ? new TinyQueue([], (a, b) => compareFunc(nodes[a], nodes[b]))\n : [];\n for (const [i, nodeInDegree] of nodeInDegrees.entries()) {\n if (nodeInDegree === 0) {\n zeroInDegreeQueue.push(i);\n }\n }\n const result = [];\n const visited = new Set();\n // Process nodes in BFS order\n while (zeroInDegreeQueue.length > 0) {\n const current = zeroInDegreeQueue.pop();\n if (current === undefined)\n break;\n visited.add(current);\n result.push(nodes[current]);\n // Process all outgoing edges from the current node\n const outgoingEdges = outgoingEdgesMap.get(current);\n if (outgoingEdges) {\n for (const target of outgoingEdges) {\n nodeInDegrees[target]--;\n // If the target node now has no incoming edges, add it to the queue\n if (nodeInDegrees[target] === 0) {\n zeroInDegreeQueue.push(target);\n }\n }\n }\n }\n // Check for cycles\n if (result.length !== nodes.length) {\n const cyclePath = detectCycle(nodes, visited, outgoingEdgesMap);\n throw new ToposortCyclicalDependencyError(cyclePath);\n }\n return result;\n}\n/**\n * Performs a topological sort on a directed acyclic graph, always selecting\n * the smallest available node according to the provided comparison function,\n * yielding the lexicographically minimal ordering.\n *\n * @param nodes - The nodes to sort\n * @param edges - The edges of the graph\n * @param compareFunc - Optional custom comparison function to break ties between nodes with the same topological level (default is string comparison)\n * @returns The sorted nodes\n */\nexport function toposortOrdered(nodes, edges, compareFunc = defaultCompareFunc) {\n return toposort(nodes, edges, { compareFunc });\n}\n//# sourceMappingURL=toposort.js.map","/**\n * Type guard to check if a value is not null or undefined.\n */\nexport function notEmpty(value) {\n return value !== null && value !== undefined;\n}\n//# sourceMappingURL=not-empty.js.map","import { z } from 'zod';\n/**\n * Regex for validating kebab case, e.g. \"my-project\".\n */\nexport const KEBAB_CASE_REGEX = /^[a-z0-9-]+$/;\n/**\n * Regex for validating pascal case, e.g. \"MyProject\".\n */\nexport const PASCAL_CASE_REGEX = /^[A-Z][a-zA-Z0-9]*$/;\n/**\n * Regex for validating camel case, e.g. \"myProject\".\n */\nexport const CAMEL_CASE_REGEX = /^[a-z][a-zA-Z0-9]*$/;\n/**\n * Regex for validating constant case, e.g. \"MY_PROJECT\".\n */\nexport const CONSTANT_CASE_REGEX = /^[A-Z][A-Z0-9_]*$/;\nexport const CASE_VALIDATORS = {\n /**\n * Zod validator for validating kebab case, e.g. \"my-project\".\n */\n KEBAB_CASE: z.string().regex(KEBAB_CASE_REGEX, {\n message: 'Must be kebab case (e.g. \"my-project\")',\n }),\n /**\n * Zod validator for validating pascal case, e.g. \"MyProject\".\n */\n PASCAL_CASE: z.string().regex(PASCAL_CASE_REGEX, {\n message: 'Must be pascal case (e.g. \"MyProject\")',\n }),\n /**\n * Zod validator for validating camel case, e.g. \"myProject\".\n */\n CAMEL_CASE: z.string().regex(CAMEL_CASE_REGEX, {\n message: 'Must be camel case (e.g. \"myProject\")',\n }),\n /**\n * Zod validator for validating constant case, e.g. \"MY_PROJECT\".\n */\n CONSTANT_CASE: z.string().regex(CONSTANT_CASE_REGEX, {\n message: 'Must be constant case (e.g. \"MY_PROJECT\")',\n }),\n};\n//# sourceMappingURL=case-validators.js.map","import { z } from 'zod';\n/**\n * Zod validator for a positive integer.\n */\nconst POSITIVE_INT = z.int().positive();\n/**\n * Zod number validators.\n */\nexport const NUMBER_VALIDATORS = {\n POSITIVE_INT,\n};\n//# sourceMappingURL=number-validators.js.map"],"names":["isPlainObject","detectCycle","defaultCompareFunc","z"],"mappings":"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","x_google_ignoreList":[7,8,22,25,29]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-utils-WWo9T1Zx.js","sources":["../../../../../packages/project-builder-lib/dist/plugins/spec/types.js","../../../../../packages/project-builder-lib/dist/plugins/context/plugin-context.js","../../../../../packages/project-builder-lib/dist/plugins/utils/create-plugin-field-map.js","../../../../../packages/project-builder-lib/dist/plugins/utils/create-field-map-spec.js","../../../../../packages/project-builder-lib/dist/references/definition-ref-registry.js","../../../../../packages/project-builder-lib/dist/references/ref-context-slot.js","../../../../../packages/project-builder-lib/dist/references/extend-parser-context-with-refs.js","../../../../../packages/project-builder-lib/dist/schema/creator/definition-default-registry.js","../../../../../packages/project-builder-lib/dist/schema/creator/extend-parser-context-with-defaults.js","../../../../../packages/project-builder-lib/dist/schema/creator/schema-creator.js","../../../../../packages/project-builder-lib/dist/references/types.js","../../../../../packages/project-builder-lib/dist/schema/features/feature.js","../../../../../packages/project-builder-lib/dist/definition/feature/feature-utils.js","../../../../../packages/project-builder-lib/dist/definition/model/model-utils.js"],"sourcesContent":["/**\n * Creates a plugin spec with init and use phases.\n *\n * @example\n * ```typescript\n * const mySpec = createPluginSpec('core/my-spec', {\n * initializer: () => {\n * const items = new Map<string, Item>();\n * return {\n * init: {\n * register: (item: Item) => items.set(item.name, item),\n * },\n * use: () => ({\n * get: (name: string) => items.get(name),\n * getAll: () => [...items.values()],\n * }),\n * };\n * },\n * });\n * ```\n *\n * @param name - Unique identifier for the spec (e.g., 'core/my-spec')\n * @param options - Options including the initializer function\n * @returns A plugin spec that can be used with SpecStore\n */\nexport function createPluginSpec(name, options) {\n const { initializer } = options;\n return {\n type: 'plugin-spec',\n name,\n initializer,\n };\n}\n//# sourceMappingURL=types.js.map","/**\n * Plugin context module for tracking the current plugin being initialized.\n *\n * Uses a simple synchronous context that works on both Node and browser platforms.\n * This is safe because plugin initialization is synchronous and single-threaded.\n */\n// Simple synchronous context - works on both Node and browser\n// Safe because plugin initialization is synchronous and single-threaded\nlet currentPluginContext;\n/**\n * Runs a function within a plugin context.\n *\n * This sets the current plugin context for the duration of the function execution,\n * allowing nested functions to access the plugin key via `getPluginContext()`.\n *\n * @param context - The plugin context to set\n * @param fn - The function to run within the context\n * @returns The result of the function\n */\nexport function runInPluginContext(context, fn) {\n const prev = currentPluginContext;\n currentPluginContext = context;\n try {\n return fn();\n }\n finally {\n currentPluginContext = prev;\n }\n}\n/**\n * Gets the current plugin context if one exists.\n *\n * @returns The current plugin context, or undefined if not in a plugin context\n */\nexport function getPluginContext() {\n return currentPluginContext;\n}\n//# sourceMappingURL=plugin-context.js.map","import { createFieldMap } from '@baseplate-dev/utils';\nimport { getPluginContext } from '../context/plugin-context.js';\n/**\n * Creates a field map that automatically tracks which plugin registered each value.\n *\n * Similar to `createConfigFieldMap` in the sync package, this utility uses the\n * current plugin context to track the source of registrations. This enables\n * clear error messages when registration conflicts occur.\n *\n * @example\n * ```typescript\n * const fieldMap = createPluginFieldMap((t) => ({\n * transformers: t.map<string, Transformer>(),\n * }));\n *\n * // When a plugin tries to overwrite a value:\n * // Error: Value for key 'myTransformer' has already been set by plugin-auth\n * // and cannot be overwritten by plugin-storage\n * ```\n *\n * @param schemaBuilder - A function that builds the field map schema\n * @returns A field map with automatic source tracking\n */\nexport function createPluginFieldMap(schemaBuilder) {\n return createFieldMap(schemaBuilder, {\n getDynamicSource: () => getPluginContext()?.pluginKey,\n });\n}\n//# sourceMappingURL=create-plugin-field-map.js.map","import { createPluginSpec } from '../spec/types.js';\nimport { createPluginFieldMap } from './create-plugin-field-map.js';\n/**\n * Creates a plugin spec backed by a FieldMap for automatic source tracking.\n *\n * @param name - Unique identifier for the spec\n * @param schemaBuilder - Function that builds the field map schema\n * @param options - Optional configuration including custom use interface\n */\nexport function createFieldMapSpec(name, schemaBuilder, options) {\n return createPluginSpec(name, {\n initializer: () => {\n const fieldMap = createPluginFieldMap(schemaBuilder);\n return {\n init: fieldMap,\n use: () => {\n const values = fieldMap.getValues();\n if (options?.use) {\n return options.use(values);\n }\n return values;\n },\n };\n },\n });\n}\n//# sourceMappingURL=create-field-map-spec.js.map","/**\n * Global registry that stores Baseplate metadata on Zod schema instances.\n *\n * Uses a plain WeakMap to avoid Zod's `$replace<Meta, S>` type substitution\n * which causes \"type instantiation excessively deep\" errors with complex unions.\n *\n * Stores an array of metadata per schema to support schemas that carry multiple\n * annotations (e.g. a schema that is both an `entity` and a `ref-context`).\n *\n * Used by `withEnt`, `withRef`, `withExpression`, and `refContext` to attach\n * metadata to schema nodes. The parallel schema+data walker reads this registry\n * to extract entity/reference/expression information after validation.\n */\nexport const definitionRefRegistry = (() => {\n const map = new WeakMap();\n return {\n add(schema, meta) {\n const existing = map.get(schema);\n if (existing) {\n if ((meta.kind === 'entity' || meta.kind === 'reference') &&\n existing.some((e) => e.kind === meta.kind && e.type === meta.type)) {\n throw new Error(`Duplicate definition ref metadata kind \"${meta.kind}\" for type \"${meta.type.name}\" on the same schema instance. ` +\n `This usually means a shared/module-level schema was passed to withEnt/withRef multiple times. ` +\n `Create a fresh schema instance instead.`);\n }\n existing.push(meta);\n }\n else {\n map.set(schema, [meta]);\n }\n },\n getAll(schema) {\n return map.get(schema) ?? [];\n },\n has(schema) {\n return map.has(schema);\n },\n };\n})();\n//# sourceMappingURL=definition-ref-registry.js.map","/**\n * Creates a new ref context slot for the given entity type.\n * Each call creates a unique slot, even for the same entity type.\n *\n * @param name - A descriptive name for debugging (shows in Symbol description)\n * @param entityType - The entity type this slot will be associated with\n * @returns A new unique RefContextSlot instance\n *\n * @example\n * ```typescript\n * const modelSlot = createRefContextSlot('modelSlot', modelEntityType);\n * const anotherModelSlot = createRefContextSlot('anotherModelSlot', modelEntityType);\n *\n * // These are different slots despite same entity type\n * modelSlot.id !== anotherModelSlot.id\n * // modelSlot.id.toString() === 'Symbol(modelSlot)'\n * ```\n */\nexport function createRefContextSlot(name, entityType) {\n return {\n entityType,\n id: Symbol(name),\n };\n}\n/**\n * Creates a RefContextSlotMap from a slot definition.\n * Used internally by ctx.refContext().\n *\n * @param slotDefinition - Map of slot names to entity types\n * @returns Map of slot names to RefContextSlot instances\n */\nexport function createRefContextSlotMap(slotDefinition) {\n return Object.fromEntries(Object.entries(slotDefinition).map(([key, entityType]) => [\n key,\n createRefContextSlot(key, entityType),\n ]));\n}\n//# sourceMappingURL=ref-context-slot.js.map","import { z } from 'zod';\nimport { definitionRefRegistry } from './definition-ref-registry.js';\nimport { createRefContextSlotMap } from './ref-context-slot.js';\n/**\n * Creates a string schema annotated as a reference to another entity.\n *\n * Can be used standalone:\n * ```typescript\n * withRef({ type: modelEnumEntityType, onDelete: 'RESTRICT' })\n * ```\n *\n * Or on the parser context:\n * ```typescript\n * ctx.withRef({ type: modelEnumEntityType, onDelete: 'RESTRICT' })\n * ```\n */\nexport function withRef(reference) {\n const schema = z.string().min(1);\n definitionRefRegistry.add(schema, {\n kind: 'reference',\n type: reference.type,\n onDelete: reference.onDelete,\n parentSlot: reference.parentSlot,\n provides: reference.provides,\n });\n return schema;\n}\n/**\n * Creates a schema decorator that marks a schema as defining an entity.\n *\n * Can be used with `.apply()`:\n * ```typescript\n * schema.apply(withEnt({ type: modelEntityType, provides: modelSlot }))\n * ```\n *\n * Or via the parser context (2-arg legacy form):\n * ```typescript\n * ctx.withEnt(schema, { type: modelEntityType, provides: modelSlot })\n * ```\n *\n * @param entity - The entity definition input\n * @returns A function that decorates a schema with entity metadata\n */\nexport function withEnt(entity) {\n return (schema) => {\n const idPath = entity.idPath ?? ['id'];\n definitionRefRegistry.add(schema, {\n kind: 'entity',\n type: entity.type,\n idPath,\n getNameResolver: entity.getNameResolver,\n parentSlot: entity.parentSlot,\n provides: entity.provides,\n });\n return schema;\n };\n}\n/**\n * Creates ref context slots for use within a schema definition.\n * Slots provide type-safe context for parent-child entity relationships.\n *\n * @example\n * ```typescript\n * ctx.refContext(\n * { modelSlot: modelEntityType },\n * ({ modelSlot }) =>\n * ctx.withEnt(schema, {\n * type: modelEntityType,\n * provides: modelSlot,\n * }),\n * );\n * ```\n */\nfunction refContext(slotDefinition, schemaBuilder) {\n const slots = createRefContextSlotMap(slotDefinition);\n const schema = schemaBuilder(slots);\n definitionRefRegistry.add(schema, {\n kind: 'ref-context',\n slots: Object.values(slots),\n });\n return schema;\n}\n/**\n * Wraps a value with a ref expression parser for deferred validation.\n * The parser handles all parsing, validation, and rename handling.\n *\n * If the parser declares required slots (via TRequiredSlots), they must be\n * provided as the second argument. TypeScript enforces this at compile time.\n *\n * The parser's `createSchema()` method is called to get a fresh schema\n * instance per call site, allowing per-call metadata to be registered\n * independently in the Baseplate registry.\n *\n * @example\n * ```typescript\n * // Parser without required slots\n * const expressionSchema = ctx.withExpression(simpleParser);\n *\n * // Parser with required slots (TypeScript enforces the second argument)\n * ctx.refContext(\n * { modelSlot: modelEntityType },\n * ({ modelSlot }) =>\n * z.object({\n * condition: ctx.withExpression(authorizerParser, { model: modelSlot }),\n * })\n * );\n * ```\n */\nfunction withExpression(parser, slots) {\n // createSchema() returns a fresh instance per call, allowing per-call\n // metadata to be registered without conflicting across call sites.\n const schema = parser.createSchema();\n definitionRefRegistry.add(schema, {\n kind: 'expression',\n parser,\n slots,\n });\n return schema;\n}\nexport function extendParserContextWithRefs() {\n return {\n withRef,\n // Legacy 2-arg API that delegates to the standalone withEnt decorator.\n // Uses a cast because the standalone accepts DefinitionEntityInput<unknown, ...>\n // while this 2-arg form infers the full z.output<TType> for type-safe idPath.\n withEnt(schema, entity) {\n return schema.apply(withEnt(entity));\n },\n refContext,\n withExpression,\n };\n}\n//# sourceMappingURL=extend-parser-context-with-refs.js.map","/**\n * Registry that stores default-value metadata on Zod schema instances.\n *\n * Uses a WeakMap to avoid interfering with Zod's type system.\n * Annotated by `withDefault()`; read by `cleanDefaultValues()`.\n */\nexport const definitionDefaultRegistry = (() => {\n const map = new WeakMap();\n return {\n set(schema, meta) {\n map.set(schema, meta);\n },\n get(schema) {\n return map.get(schema);\n },\n };\n})();\n//# sourceMappingURL=definition-default-registry.js.map","import { definitionDefaultRegistry } from './definition-default-registry.js';\n/**\n * Creates a schema decorator that applies a default value.\n *\n * Uses `prefault` to ensure defaults are populated during Zod parse, and\n * registers the default value in the registry so `cleanDefaultValues()` can\n * strip matching values during serialization.\n *\n * Can be used standalone with `.apply()`:\n * ```typescript\n * z.boolean().apply(withDefault(false))\n * ```\n *\n * @param defaultValue - The default value to apply\n * @returns A function that decorates a schema with the default value\n */\nexport function withDefault(defaultValue) {\n return (schema) => {\n const result = schema.prefault(defaultValue);\n definitionDefaultRegistry.set(result, { defaultValue });\n return result;\n };\n}\n/**\n * Extends the parser context with default value handling functionality.\n *\n * @returns An object containing the withDefault method\n */\nexport function extendParserContextWithDefaults() {\n return {\n withDefault: (schema, defaultValue) => withDefault(defaultValue)(schema),\n };\n}\n//# sourceMappingURL=extend-parser-context-with-defaults.js.map","import { extendParserContextWithRefs } from '#src/references/extend-parser-context-with-refs.js';\nimport { createRefContextSlotMap } from '#src/references/ref-context-slot.js';\nimport { extendParserContextWithDefaults } from './extend-parser-context-with-defaults.js';\nconst contextCache = new WeakMap();\nexport function createDefinitionSchemaParserContext(options) {\n const cached = contextCache.get(options.plugins);\n if (cached)\n return cached;\n const context = {\n ...options,\n ...extendParserContextWithRefs(),\n ...extendParserContextWithDefaults(),\n };\n contextCache.set(options.plugins, context);\n return context;\n}\nexport function definitionSchema(creator) {\n const cache = new WeakMap();\n return (context) => {\n const cached = cache.get(context);\n if (cached)\n return cached;\n const result = creator(context);\n cache.set(context, result);\n return result;\n };\n}\n/**\n * Creates a schema that requires slots to be passed from parent schemas.\n * Used when a schema needs to reference entities from a parent context.\n *\n * @example\n * ```typescript\n * // Child schema requiring modelSlot from parent\n * export const createModelScalarFieldSchema = definitionSchemaWithSlots(\n * { modelSlot: modelEntityType },\n * (ctx, { modelSlot }) =>\n * ctx.withEnt(schema, {\n * type: modelScalarFieldEntityType,\n * parentSlot: modelSlot,\n * }),\n * );\n *\n * // Called from parent:\n * createModelScalarFieldSchema(ctx, { modelSlot: parentModelSlot })\n * ```\n */\nexport function definitionSchemaWithSlots(slotDefinition, creator) {\n const creatorWithSlots = (context, slots) => creator(context, slots);\n creatorWithSlots.slotDefinition = slotDefinition;\n return creatorWithSlots;\n}\n/**\n * Wraps a schema creator that requires slots with placeholder slots,\n * producing a simple schema creator that can be used for validation-only\n * contexts (e.g., React Hook Form).\n *\n * The placeholder slots allow the schema to parse without actual parent context,\n * which is useful when you only need schema validation without ref extraction.\n *\n * @example\n * ```typescript\n * // Schema that normally requires modelSlot from parent\n * const createModelScalarFieldSchema = definitionSchemaWithSlots(\n * { modelSlot: modelEntityType },\n * (ctx, { modelSlot }) => ctx.withEnt(schema, { parentSlot: modelSlot }),\n * );\n *\n * // For React Hook Form validation, wrap with placeholder slots\n * const fieldSchema = withPlaceholderSlots(createModelScalarFieldSchema);\n * const zodSchema = fieldSchema(ctx); // No slots needed\n * ```\n */\nexport function withPlaceholderSlots(schemaCreator) {\n return (ctx) => {\n const placeholderSlots = createRefContextSlotMap(schemaCreator.slotDefinition);\n return schemaCreator(ctx, placeholderSlots);\n };\n}\n//# sourceMappingURL=schema-creator.js.map","import { randomKey } from '@baseplate-dev/utils';\n/**\n * Definition of an entity type.\n */\nexport class DefinitionEntityType {\n prefix;\n name;\n parentType;\n /**\n * Creates a new entity type.\n *\n * @param name - The name of the entity type.\n * @param prefix - The prefix of the entity type to use in the ID, defaults to the name.\n * @param parentType - The type of the parent entity if any\n */\n constructor(name, prefix, parentType) {\n this.name = name;\n this.parentType = parentType;\n this.prefix = prefix ?? name.split('/').pop() ?? name;\n }\n /**\n * Generates a new ID for the entity type.\n *\n * @returns The new ID.\n */\n generateNewId() {\n return `${this.prefix}:${randomKey()}`;\n }\n idFromKey(key) {\n if (!key) {\n return undefined;\n }\n return `${this.prefix}:${key}`;\n }\n keyFromId(id) {\n return id.split(':')[1];\n }\n isId(id) {\n return id.startsWith(`${this.prefix}:`);\n }\n}\nexport function createEntityType(name, options) {\n const { parentType, prefix } = options ?? {};\n return new DefinitionEntityType(name, prefix, parentType);\n}\n//# sourceMappingURL=types.js.map","import { CASE_VALIDATORS } from '@baseplate-dev/utils';\nimport { z } from 'zod';\nimport { createEntityType } from '#src/references/types.js';\nimport { definitionSchema } from '#src/schema/creator/schema-creator.js';\nexport const featureEntityType = createEntityType('feature');\nexport const featureNameSchema = CASE_VALIDATORS.KEBAB_CASE;\nexport const createFeatureSchema = definitionSchema((ctx) => ctx.withEnt(z.object({\n id: z.string(),\n name: z\n .string()\n .min(1)\n .refine((name) => name\n .split('/')\n .every((part) => featureNameSchema.safeParse(part).success), {\n message: 'Feature name must be lowercase and contain only letters, numbers, and dashes',\n }),\n parentRef: ctx\n .withRef({\n type: featureEntityType,\n onDelete: 'DELETE_PARENT',\n })\n .optional(),\n}), { type: featureEntityType }));\nexport const createFeaturesSchema = definitionSchema((ctx) => z.array(createFeatureSchema(ctx)).default([]));\n//# sourceMappingURL=feature.js.map","import { featureEntityType, featureNameSchema } from '#src/schema/index.js';\nfunction getRootFeatures(projectDefinition) {\n return projectDefinition.features.filter((f) => !f.parentRef);\n}\nfunction getFeatureById(projectDefinition, featureId) {\n return projectDefinition.features.find((f) => f.id === featureId);\n}\nfunction getFeatureByIdOrThrow(projectDefinition, featureId) {\n const feature = getFeatureById(projectDefinition, featureId);\n if (!feature) {\n throw new Error(`Could not find feature with ID ${featureId}`);\n }\n return feature;\n}\nfunction getFeatureChildren(projectDefinition, featureId) {\n return projectDefinition.features.filter((f) => f.parentRef === featureId);\n}\nfunction getFeatureName(featureConfig) {\n return featureConfig.name.split('/').pop() ?? '';\n}\nfunction getFeatureNameById(projectDefinition, featureId) {\n const feature = getFeatureByIdOrThrow(projectDefinition, featureId);\n return getFeatureName(feature);\n}\nfunction getFeaturePathById(projectDefinition, featureId) {\n const feature = getFeatureByIdOrThrow(projectDefinition, featureId);\n return feature.name;\n}\nfunction validateFeatureName(name) {\n const nameParts = name.split('/');\n return nameParts.every((part) => featureNameSchema.safeParse(part).success);\n}\nfunction ensureFeatureByNameRecursively(projectDefinition, nameOrId) {\n if (featureEntityType.isId(nameOrId)) {\n return nameOrId;\n }\n const nameParts = nameOrId.split('/');\n let lastName = '';\n let parentRef = undefined;\n for (const part of nameParts) {\n const feature = projectDefinition.features.find((f) => f.name === part && f.parentRef === parentRef);\n const name = [lastName, part].filter(Boolean).join('/');\n if (feature) {\n parentRef = feature.id;\n }\n else {\n const newFeature = {\n id: featureEntityType.generateNewId(),\n name,\n parentRef,\n };\n projectDefinition.features.push(newFeature);\n parentRef = newFeature.id;\n }\n lastName = name;\n }\n if (!parentRef) {\n throw new Error('Failed to create feature');\n }\n return parentRef;\n}\nfunction createPartialFeatures(nameOrPath) {\n if (!nameOrPath)\n return [];\n const parts = nameOrPath.split('/');\n return parts.map((_, i) => {\n const name = parts.slice(0, i + 1).join('/');\n const parentRef = i > 0 ? parts.slice(0, i).join('/') : undefined;\n return { name, parentRef };\n });\n}\nfunction getFeatureByName(projectDefinition, name) {\n return projectDefinition.features.find((f) => f.name === name);\n}\nfunction getFeatureIdByNameOrThrow(projectDefinition, name) {\n const feature = getFeatureByName(projectDefinition, name);\n if (!feature) {\n throw new Error(`Could not find feature with name ${name}`);\n }\n return feature.id;\n}\nfunction getFeatureIdByNameOrDefault(projectDefinition, name) {\n return getFeatureByName(projectDefinition, name)?.id ?? name;\n}\nfunction resolveFeatureName(projectDefinition, featureRef) {\n if (!featureRef)\n return '';\n if (featureEntityType.isId(featureRef)) {\n return getFeaturePathById(projectDefinition, featureRef);\n }\n return featureRef;\n}\nexport const FeatureUtils = {\n getRootFeatures,\n getFeatureById,\n getFeatureByIdOrThrow,\n getFeatureChildren,\n getFeatureName,\n getFeatureNameById,\n getFeaturePathById,\n validateFeatureName,\n ensureFeatureByNameRecursively,\n createPartialFeatures,\n getFeatureByName,\n getFeatureIdByNameOrThrow,\n getFeatureIdByNameOrDefault,\n resolveFeatureName,\n};\n//# sourceMappingURL=feature-utils.js.map","import { PASCAL_CASE_REGEX } from '@baseplate-dev/utils';\nfunction byId(projectDefinition, id) {\n return projectDefinition.models.find((m) => m.id === id);\n}\nfunction byIdOrThrow(projectDefinition, id) {\n const model = byId(projectDefinition, id);\n if (!model) {\n throw new Error(`Could not find model with ID ${id}`);\n }\n return model;\n}\nfunction byName(projectDefinition, name) {\n return projectDefinition.models.find((m) => m.name === name);\n}\nfunction byNameOrThrow(projectDefinition, name) {\n const model = byName(projectDefinition, name);\n if (!model) {\n throw new Error(`Could not find model with name ${name}`);\n }\n return model;\n}\nfunction getScalarFieldById(model, id) {\n const field = model.model.fields.find((f) => f.id === id);\n if (!field) {\n throw new Error(`Could not find field with ID ${id}`);\n }\n return field;\n}\nfunction getRelationsToModel(projectDefinition, modelId) {\n return projectDefinition.models.flatMap((m) => m.model.relations\n .filter((r) => r.modelRef === modelId)\n .map((r) => ({ model: m, relation: r })));\n}\nfunction getModelsForFeature(projectDefinition, featureId) {\n return projectDefinition.models.filter((m) => m.featureRef === featureId);\n}\nfunction getModelIdFields(model) {\n return model.model.primaryKeyFieldRefs;\n}\nfunction hasService(model) {\n return (model.service.create.enabled ||\n model.service.update.enabled ||\n model.service.delete.enabled ||\n model.service.transformers.length > 0);\n}\nfunction validateModelName(name) {\n return PASCAL_CASE_REGEX.test(name);\n}\n/**\n * Returns the ID of a model by name, or the name if no model is found.\n * @param projectDefinition - The project definition.\n * @param name - The name of the model.\n * @returns The ID of the model, or the name if no model is found.\n */\nfunction getModelIdByNameOrDefault(projectDefinition, name) {\n return projectDefinition.models.find((m) => m.name === name)?.id ?? name;\n}\nfunction getPrimaryKeyFields(model) {\n const primaryKeyFields = model.model.primaryKeyFieldRefs;\n return primaryKeyFields.map((id) => getScalarFieldById(model, id));\n}\nexport const ModelUtils = {\n byId,\n byIdOrThrow,\n byName,\n byNameOrThrow,\n getScalarFieldById,\n getRelationsToModel,\n getModelsForFeature,\n getModelIdFields,\n hasService,\n validateModelName,\n getModelIdByNameOrDefault,\n getPrimaryKeyFields,\n};\n//# sourceMappingURL=model-utils.js.map"],"names":["z"],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { importShared } from './__federation_fn_import-CzLgVaFb.js';
|
|
2
|
-
|
|
3
|
-
const BETTER_AUTH_MODELS = {
|
|
4
|
-
user: "User",
|
|
5
|
-
session: "Session",
|
|
6
|
-
account: "Account",
|
|
7
|
-
verification: "Verification",
|
|
8
|
-
userRole: "UserRole"
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const {definitionSchema} = await importShared('@baseplate-dev/project-builder-lib');
|
|
12
|
-
|
|
13
|
-
const {z} = await importShared('zod');
|
|
14
|
-
|
|
15
|
-
const createBetterAuthPluginDefinitionSchema = definitionSchema(
|
|
16
|
-
() => z.object({})
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
export { BETTER_AUTH_MODELS as B, createBetterAuthPluginDefinitionSchema as c };
|
|
20
|
-
//# sourceMappingURL=plugin-definition-BCrs3YSY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-definition-BCrs3YSY.js","sources":["../../../src/better-auth/constants/model-names.ts","../../../src/better-auth/core/schema/plugin-definition.ts"],"sourcesContent":["export const BETTER_AUTH_MODELS = {\n user: 'User',\n session: 'Session',\n account: 'Account',\n verification: 'Verification',\n userRole: 'UserRole',\n} as const;\n","import type { def } from '@baseplate-dev/project-builder-lib';\n\nimport { definitionSchema } from '@baseplate-dev/project-builder-lib';\nimport { z } from 'zod';\n\nexport const createBetterAuthPluginDefinitionSchema = definitionSchema(() =>\n z.object({}),\n);\n\nexport type BetterAuthPluginDefinitionInput = def.InferInput<\n typeof createBetterAuthPluginDefinitionSchema\n>;\n"],"names":[],"mappings":";;AAAO,MAAM,kBAAA,GAAqB;AAAA,EAChC,IAAA,EAAM,MAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,YAAA,EAAc,cAAA;AAAA,EACd,QAAA,EAAU;AACZ;;ACJA,MAAA,CAAA,gBAAA,CAAA,GAAA,MAAA,YAAA,CAAA,oCAAA,CAAA;;AACA,MAAA,CAAA,CAAA,CAAA,GAAA,MAAA,YAAA,CAAA,KAAA,CAAA;;AAEO,MAAM,sCAAA,GAAyC,gBAAA;AAAA,EAAiB,MACrE,CAAA,CAAE,MAAA,CAAO,EAAE;AACb;;;;"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { importShared } from './__federation_fn_import-CzLgVaFb.js';
|
|
2
|
-
|
|
3
|
-
const {authRoleEntityType,definitionSchema} = await importShared('@baseplate-dev/project-builder-lib');
|
|
4
|
-
|
|
5
|
-
const {z} = await importShared('zod');
|
|
6
|
-
|
|
7
|
-
const createLocalAuthPluginDefinitionSchema = definitionSchema(
|
|
8
|
-
(ctx) => z.object({
|
|
9
|
-
initialUserRoles: ctx.withDefault(
|
|
10
|
-
z.array(
|
|
11
|
-
ctx.withRef({
|
|
12
|
-
type: authRoleEntityType,
|
|
13
|
-
onDelete: "DELETE"
|
|
14
|
-
})
|
|
15
|
-
),
|
|
16
|
-
[]
|
|
17
|
-
),
|
|
18
|
-
userAdminRoles: ctx.withDefault(
|
|
19
|
-
z.array(
|
|
20
|
-
ctx.withRef({
|
|
21
|
-
type: authRoleEntityType,
|
|
22
|
-
onDelete: "DELETE"
|
|
23
|
-
})
|
|
24
|
-
),
|
|
25
|
-
[]
|
|
26
|
-
),
|
|
27
|
-
requireNameOnRegistration: z.boolean().default(false)
|
|
28
|
-
})
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
export { createLocalAuthPluginDefinitionSchema as c };
|
|
32
|
-
//# sourceMappingURL=plugin-definition-BwAJGzRn.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-definition-BwAJGzRn.js","sources":["../../../src/local-auth/core/schema/plugin-definition.ts"],"sourcesContent":["import type { def } from '@baseplate-dev/project-builder-lib';\n\nimport {\n authRoleEntityType,\n definitionSchema,\n} from '@baseplate-dev/project-builder-lib';\nimport { z } from 'zod';\n\nexport const createLocalAuthPluginDefinitionSchema = definitionSchema((ctx) =>\n z.object({\n initialUserRoles: ctx.withDefault(\n z.array(\n ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n }),\n ),\n [],\n ),\n userAdminRoles: ctx.withDefault(\n z.array(\n ctx.withRef({\n type: authRoleEntityType,\n onDelete: 'DELETE',\n }),\n ),\n [],\n ),\n requireNameOnRegistration: z.boolean().default(false),\n }),\n);\n\nexport type LocalAuthPluginDefinition = def.InferOutput<\n typeof createLocalAuthPluginDefinitionSchema\n>;\n\nexport type LocalAuthPluginDefinitionInput = def.InferInput<\n typeof createLocalAuthPluginDefinitionSchema\n>;\n"],"names":[],"mappings":";;AAEA,MAAA,CAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,MAAA,YAAA,CAAA,oCAAA,CAAA;;AAIA,MAAA,CAAA,CAAA,CAAA,GAAA,MAAA,YAAA,CAAA,KAAA,CAAA;;AAEO,MAAM,qCAAA,GAAwC,gBAAA;AAAA,EAAiB,CAAC,GAAA,KACrE,CAAA,CAAE,MAAA,CAAO;AAAA,IACP,kBAAkB,GAAA,CAAI,WAAA;AAAA,MACpB,CAAA,CAAE,KAAA;AAAA,QACA,IAAI,OAAA,CAAQ;AAAA,UACV,IAAA,EAAM,kBAAA;AAAA,UACN,QAAA,EAAU;AAAA,SACX;AAAA,OACH;AAAA,MACA;AAAC,KACH;AAAA,IACA,gBAAgB,GAAA,CAAI,WAAA;AAAA,MAClB,CAAA,CAAE,KAAA;AAAA,QACA,IAAI,OAAA,CAAQ;AAAA,UACV,IAAA,EAAM,kBAAA;AAAA,UACN,QAAA,EAAU;AAAA,SACX;AAAA,OACH;AAAA,MACA;AAAC,KACH;AAAA,IACA,yBAAA,EAA2B,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK;AAAA,GACrD;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-definition-y6VVQ5_O.js","sources":["../../../src/auth/core/schema/roles/constants.ts","../../../src/auth/core/schema/roles/schema.ts","../../../src/auth/core/schema/plugin-definition.ts"],"sourcesContent":["import { authRoleEntityType } from '@baseplate-dev/project-builder-lib';\n\nimport type { AuthRoleDefinition } from './schema.js';\n\nexport const AUTH_DEFAULT_ROLES: Omit<AuthRoleDefinition, 'id'>[] = [\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];\n\nexport function createDefaultAuthRoles(): AuthRoleDefinition[] {\n return AUTH_DEFAULT_ROLES.map((role) => ({\n ...role,\n id: authRoleEntityType.generateNewId(),\n }));\n}\n","import type { def } from '@baseplate-dev/project-builder-lib';\n\nimport {\n authRoleEntityType,\n definitionSchema,\n} from '@baseplate-dev/project-builder-lib';\nimport { z } from 'zod';\n\nimport { AUTH_DEFAULT_ROLES } from './constants.js';\n\nexport const createAuthRoleSchema = definitionSchema((ctx) =>\n ctx.withEnt(\n z.object({\n id: z.string(),\n name: z.string().min(1),\n comment: z.string().min(1),\n builtIn: z.boolean().default(false),\n }),\n { type: authRoleEntityType },\n ),\n);\n\n/**\n * Defines the schema for a role.\n */\nexport type AuthRoleDefinition = def.InferOutput<typeof createAuthRoleSchema>;\n\nexport type AuthRoleInput = def.InferInput<typeof createAuthRoleSchema>;\n\n/**\n * Defines the schema for an array of roles ensuring that there are no duplicate\n * role names and that the built-in roles are included.\n */\nexport const createAuthRolesSchema = definitionSchema((ctx) =>\n z\n .array(createAuthRoleSchema(ctx))\n .superRefine((roles, ctx) => {\n const dup = roles\n .map((r) => r.name)\n .filter((v, i, a) => a.indexOf(v) !== i);\n if (dup.length > 0) {\n ctx.addIssue({\n code: 'custom',\n message: `Duplicate role name(s): ${dup.join(', ')}`,\n });\n }\n })\n .superRefine((roles, ctx) => {\n for (const defaultRole of AUTH_DEFAULT_ROLES) {\n if (!roles.some((r) => r.name === defaultRole.name && r.builtIn)) {\n ctx.addIssue({\n code: 'custom',\n message: `Missing built-in role: ${defaultRole.name}`,\n });\n }\n }\n }),\n);\n","import type { def } from '@baseplate-dev/project-builder-lib';\n\nimport {\n definitionSchema,\n featureEntityType,\n} from '@baseplate-dev/project-builder-lib';\nimport { z } from 'zod';\n\nimport { createAuthRolesSchema } from './roles/index.js';\n\nexport const createAuthPluginDefinitionSchema = definitionSchema((ctx) =>\n z.object({\n implementationPluginKey: z\n .string()\n .min(1, 'Auth implementation plugin must be selected'),\n authFeatureRef: ctx.withRef({\n type: featureEntityType,\n onDelete: 'RESTRICT',\n }),\n roles: createAuthRolesSchema(ctx),\n }),\n);\n\nexport type AuthPluginDefinition = def.InferOutput<\n typeof createAuthPluginDefinitionSchema\n>;\n\nexport type AuthPluginDefinitionInput = def.InferInput<\n typeof createAuthPluginDefinitionSchema\n>;\n"],"names":["authRoleEntityType","definitionSchema","z","ctx"],"mappings":";;AAAA,MAAA,qBAAAA,oBAAA,CAAA,GAAA,MAAA,YAAA,CAAA,oCAAA,CAAA;;AAIO,MAAM,kBAAA,GAAuD;AAAA,EAClE;AAAA,IACE,IAAA,EAAM,QAAA;AAAA,IACN,OAAA,EAAS,+DAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,yBAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,IAAA,EAAM,QAAA;AAAA,IACN,OAAA,EAAS,+DAAA;AAAA,IACT,OAAA,EAAS;AAAA;AAEb,CAAA;AAEO,SAAS,sBAAA,GAA+C;AAC7D,EAAA,OAAO,kBAAA,CAAmB,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,IACvC,GAAG,IAAA;AAAA,IACH,EAAA,EAAIA,qBAAmB,aAAA;AAAc,GACvC,CAAE,CAAA;AACJ;;ACzBA,MAAA,CAAA,kBAAA,mBAAAC,kBAAA,CAAA,GAAA,MAAA,YAAA,CAAA,oCAAA,CAAA;;AAIA,MAAA,IAAAC,GAAA,CAAA,GAAA,MAAA,YAAA,CAAA,KAAA,CAAA;AAIO,MAAM,oBAAA,GAAuBD,kBAAA;AAAA,EAAiB,CAAC,QACpD,GAAA,CAAI,OAAA;AAAA,IACFC,IAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAIA,IAAE,MAAA,EAAO;AAAA,MACb,IAAA,EAAMA,GAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,MACtB,OAAA,EAASA,GAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,MACzB,OAAA,EAASA,GAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK;AAAA,KACnC,CAAA;AAAA,IACD,EAAE,MAAM,kBAAA;AAAmB;AAE/B;AAaO,MAAM,qBAAA,GAAwBD,kBAAA;AAAA,EAAiB,CAAC,GAAA,KACrDC,GAAA,CACG,KAAA,CAAM,oBAAA,CAAqB,GAAG,CAAC,CAAA,CAC/B,WAAA,CAAY,CAAC,KAAA,EAAOC,IAAAA,KAAQ;AAC3B,IAAA,MAAM,MAAM,KAAA,CACT,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA,CACjB,MAAA,CAAO,CAAC,GAAG,CAAA,EAAG,CAAA,KAAM,EAAE,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAA;AACzC,IAAA,IAAI,GAAA,CAAI,SAAS,CAAA,EAAG;AAClB,MAAAA,KAAI,QAAA,CAAS;AAAA,QACX,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,CAAA,wBAAA,EAA2B,GAAA,CAAI,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,OACnD,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,OAAOA,IAAAA,KAAQ;AAC3B,IAAA,KAAA,MAAW,eAAe,kBAAA,EAAoB;AAC5C,MAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,WAAA,CAAY,IAAA,IAAQ,CAAA,CAAE,OAAO,CAAA,EAAG;AAChE,QAAAA,KAAI,QAAA,CAAS;AAAA,UACX,IAAA,EAAM,QAAA;AAAA,UACN,OAAA,EAAS,CAAA,uBAAA,EAA0B,WAAA,CAAY,IAAI,CAAA;AAAA,SACpD,CAAA;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AACL,CAAA;;ACvDA,MAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,MAAA,YAAA,CAAA,oCAAA,CAAA;;AAIA,MAAA,CAAA,CAAA,CAAA,GAAA,MAAA,YAAA,CAAA,KAAA,CAAA;AAIO,MAAM,gCAAA,GAAmC,gBAAA;AAAA,EAAiB,CAAC,GAAA,KAChE,CAAA,CAAE,MAAA,CAAO;AAAA,IACP,yBAAyB,CAAA,CACtB,MAAA,EAAO,CACP,GAAA,CAAI,GAAG,6CAA6C,CAAA;AAAA,IACvD,cAAA,EAAgB,IAAI,OAAA,CAAQ;AAAA,MAC1B,IAAA,EAAM,iBAAA;AAAA,MACN,QAAA,EAAU;AAAA,KACX,CAAA;AAAA,IACD,KAAA,EAAO,sBAAsB,GAAG;AAAA,GACjC;AACH;;;;"}
|