alepha 0.18.2 → 0.18.3
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/assets/devtools-ui/200.html +2 -2
- package/assets/devtools-ui/200.html.br +0 -0
- package/assets/devtools-ui/404.html +2 -2
- package/assets/devtools-ui/404.html.br +0 -0
- package/assets/devtools-ui/{asset.BfSBZ5Dd.css → asset.hG_f8HuK.css} +1 -1
- package/assets/devtools-ui/asset.hG_f8HuK.css.br +0 -0
- package/assets/devtools-ui/chunk.B3au4Lhg.js +1 -0
- package/assets/devtools-ui/chunk.B3au4Lhg.js.br +0 -0
- package/assets/devtools-ui/chunk.BLOrlnMB.js +1 -0
- package/assets/devtools-ui/chunk.BLOrlnMB.js.br +0 -0
- package/assets/devtools-ui/chunk.BLR01ljW.js +1 -0
- package/assets/devtools-ui/chunk.BLR01ljW.js.br +0 -0
- package/assets/devtools-ui/chunk.BTXaIUlA.js +1 -0
- package/assets/devtools-ui/chunk.BTXaIUlA.js.br +0 -0
- package/assets/devtools-ui/{chunk.lJL-lgnW.js → chunk.BhJaxmm8.js} +1 -1
- package/assets/devtools-ui/chunk.BhJaxmm8.js.br +0 -0
- package/assets/devtools-ui/chunk.BtoNxFuL.js +1 -0
- package/assets/devtools-ui/chunk.BtoNxFuL.js.br +0 -0
- package/assets/devtools-ui/chunk.C8YUV2Wd.js +1 -0
- package/assets/devtools-ui/chunk.C8YUV2Wd.js.br +0 -0
- package/assets/devtools-ui/{chunk.M6wyKO_3.js → chunk.CBbIgDzE.js} +2 -2
- package/assets/devtools-ui/chunk.CBbIgDzE.js.br +0 -0
- package/assets/devtools-ui/chunk.CFqIniwA.js +1 -0
- package/assets/devtools-ui/chunk.CFqIniwA.js.br +0 -0
- package/assets/devtools-ui/chunk.CLFF7f7-.js +1 -0
- package/assets/devtools-ui/chunk.CLFF7f7-.js.br +0 -0
- package/assets/devtools-ui/chunk.CRsBbA10.js +1 -0
- package/assets/devtools-ui/chunk.CRsBbA10.js.br +0 -0
- package/assets/devtools-ui/{chunk.DbEH1oOB.js → chunk.CZPo6v95.js} +1 -1
- package/assets/devtools-ui/chunk.CZPo6v95.js.br +0 -0
- package/assets/devtools-ui/chunk.D0fWgNos.js +1 -0
- package/assets/devtools-ui/chunk.D0fWgNos.js.br +1 -0
- package/assets/devtools-ui/chunk.D7-0ziQ6.js +1 -0
- package/assets/devtools-ui/chunk.D7-0ziQ6.js.br +0 -0
- package/assets/devtools-ui/chunk.DAewe0vm.js +1 -0
- package/assets/devtools-ui/chunk.DAewe0vm.js.br +0 -0
- package/assets/devtools-ui/chunk.DJRQEYqK.js +1 -0
- package/assets/devtools-ui/chunk.DJRQEYqK.js.br +0 -0
- package/assets/devtools-ui/{chunk.CZl6J9DF.js → chunk.DMAxv14p.js} +1 -1
- package/assets/devtools-ui/chunk.DMAxv14p.js.br +0 -0
- package/assets/devtools-ui/{chunk.BT2IiBkZ.js → chunk.DMImnNjU.js} +1 -1
- package/assets/devtools-ui/chunk.DMImnNjU.js.br +0 -0
- package/assets/devtools-ui/chunk.DeeQsidk.js +9 -0
- package/assets/devtools-ui/chunk.DeeQsidk.js.br +0 -0
- package/assets/devtools-ui/chunk.DqEwn9Vj.js +7 -0
- package/assets/devtools-ui/chunk.DqEwn9Vj.js.br +0 -0
- package/assets/devtools-ui/chunk.Dt8OsQey.js +1 -0
- package/assets/devtools-ui/chunk.Dt8OsQey.js.br +0 -0
- package/assets/devtools-ui/{chunk.B9pX3zit.js → chunk.Dtp8oa_f.js} +1 -1
- package/assets/devtools-ui/chunk.Dtp8oa_f.js.br +0 -0
- package/assets/devtools-ui/chunk.Dx3JzAYM.js +1 -0
- package/assets/devtools-ui/chunk.Dx3JzAYM.js.br +0 -0
- package/assets/devtools-ui/chunk.GCOj1-5E.js +1 -0
- package/assets/devtools-ui/chunk.GCOj1-5E.js.br +0 -0
- package/assets/devtools-ui/chunk.IC1LD8BH.js +1 -0
- package/assets/devtools-ui/chunk.IC1LD8BH.js.br +0 -0
- package/assets/devtools-ui/chunk.IwuB_TqW.js +1 -0
- package/assets/devtools-ui/chunk.IwuB_TqW.js.br +0 -0
- package/assets/devtools-ui/chunk.Qqapj2zq.js +1 -0
- package/assets/devtools-ui/chunk.Qqapj2zq.js.br +0 -0
- package/assets/devtools-ui/{chunk.C79YouPp.js → chunk.TKKKndOy.js} +1 -1
- package/assets/devtools-ui/chunk.TKKKndOy.js.br +0 -0
- package/assets/devtools-ui/chunk.YHTVhFQT.js +1 -0
- package/assets/devtools-ui/chunk.YHTVhFQT.js.br +0 -0
- package/assets/devtools-ui/chunk.fnod6uEi.js +1 -0
- package/assets/devtools-ui/chunk.fnod6uEi.js.br +0 -0
- package/assets/devtools-ui/chunk.mOCRmXjo.js +1 -0
- package/assets/devtools-ui/chunk.mOCRmXjo.js.br +0 -0
- package/assets/devtools-ui/chunk.qZTNEAK0.js +1 -0
- package/assets/devtools-ui/chunk.qZTNEAK0.js.br +0 -0
- package/assets/devtools-ui/chunk.rc9m0y4-.js +1 -0
- package/assets/devtools-ui/chunk.rc9m0y4-.js.br +0 -0
- package/assets/devtools-ui/entry.Cxc5QLCU.js +80 -0
- package/assets/devtools-ui/entry.Cxc5QLCU.js.br +0 -0
- package/assets/devtools-ui/index.html +2 -2
- package/assets/devtools-ui/index.html.br +0 -0
- package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
- package/assets/swagger-ui/swagger-ui.css +1 -1
- package/dist/api/audits/index.d.ts +61 -5
- package/dist/api/audits/index.d.ts.map +1 -1
- package/dist/api/files/index.d.ts +61 -5
- package/dist/api/files/index.d.ts.map +1 -1
- package/dist/api/jobs/index.d.ts +61 -5
- package/dist/api/jobs/index.d.ts.map +1 -1
- package/dist/api/jobs/index.js +4 -2
- package/dist/api/jobs/index.js.map +1 -1
- package/dist/api/keys/index.d.ts +5 -5
- package/dist/api/notifications/index.browser.js +44 -1
- package/dist/api/notifications/index.browser.js.map +1 -1
- package/dist/api/notifications/index.d.ts +187 -2
- package/dist/api/notifications/index.d.ts.map +1 -1
- package/dist/api/notifications/index.js +143 -8
- package/dist/api/notifications/index.js.map +1 -1
- package/dist/api/parameters/index.d.ts +61 -5
- package/dist/api/parameters/index.d.ts.map +1 -1
- package/dist/api/users/index.d.ts +330 -93
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +27 -36
- package/dist/api/users/index.js.map +1 -1
- package/dist/cli/config/index.d.ts +46 -0
- package/dist/cli/config/index.d.ts.map +1 -0
- package/dist/cli/config/index.js +20 -0
- package/dist/cli/config/index.js.map +1 -0
- package/dist/cli/core/index.d.ts +69 -66
- package/dist/cli/core/index.d.ts.map +1 -1
- package/dist/cli/core/index.js +329 -196
- package/dist/cli/core/index.js.map +1 -1
- package/dist/cli/platform/index.d.ts +302 -63
- package/dist/cli/platform/index.d.ts.map +1 -1
- package/dist/cli/platform/index.js +455 -25
- package/dist/cli/platform/index.js.map +1 -1
- package/dist/core/index.browser.js +125 -87
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +62 -53
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +125 -87
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +125 -87
- package/dist/core/index.native.js.map +1 -1
- package/dist/core/index.workerd.js +125 -87
- package/dist/core/index.workerd.js.map +1 -1
- package/dist/crypto/index.d.ts +18 -1
- package/dist/crypto/index.d.ts.map +1 -1
- package/dist/crypto/index.js +29 -3
- package/dist/crypto/index.js.map +1 -1
- package/dist/devtools/index.js +3 -12
- package/dist/devtools/index.js.map +1 -1
- package/dist/logger/index.d.ts +10 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +19 -9
- package/dist/logger/index.js.map +1 -1
- package/dist/orm/core/index.browser.js +57 -1
- package/dist/orm/core/index.browser.js.map +1 -1
- package/dist/orm/core/index.bun.js +378 -19
- package/dist/orm/core/index.bun.js.map +1 -1
- package/dist/orm/core/index.d.ts +328 -9
- package/dist/orm/core/index.d.ts.map +1 -1
- package/dist/orm/core/index.js +384 -21
- package/dist/orm/core/index.js.map +1 -1
- package/dist/orm/postgres/index.bun.js +49 -17
- package/dist/orm/postgres/index.bun.js.map +1 -1
- package/dist/orm/postgres/index.d.ts +47 -21
- package/dist/orm/postgres/index.d.ts.map +1 -1
- package/dist/orm/postgres/index.js +52 -17
- package/dist/orm/postgres/index.js.map +1 -1
- package/dist/react/core/index.d.ts +1 -1
- package/dist/react/core/index.d.ts.map +1 -1
- package/dist/react/core/index.js +6 -1
- package/dist/react/core/index.js.map +1 -1
- package/dist/react/form/index.d.ts +28 -18
- package/dist/react/form/index.d.ts.map +1 -1
- package/dist/react/form/index.js +92 -56
- package/dist/react/form/index.js.map +1 -1
- package/dist/react/router/index.browser.js +448 -116
- package/dist/react/router/index.browser.js.map +1 -1
- package/dist/react/router/index.d.ts +102 -40
- package/dist/react/router/index.d.ts.map +1 -1
- package/dist/react/router/index.js +453 -92
- package/dist/react/router/index.js.map +1 -1
- package/dist/security/index.d.ts +3 -11
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +6 -11
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +22 -24
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +102 -82
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/cookies/index.d.ts +7 -4
- package/dist/server/cookies/index.d.ts.map +1 -1
- package/dist/server/cookies/index.js +13 -12
- package/dist/server/cookies/index.js.map +1 -1
- package/dist/server/core/index.d.ts +288 -4
- package/dist/server/core/index.d.ts.map +1 -1
- package/dist/server/core/index.js +375 -2
- package/dist/server/core/index.js.map +1 -1
- package/dist/server/links/index.browser.js +10 -71
- package/dist/server/links/index.browser.js.map +1 -1
- package/dist/server/links/index.d.ts +32 -49
- package/dist/server/links/index.d.ts.map +1 -1
- package/dist/server/links/index.js +73 -100
- package/dist/server/links/index.js.map +1 -1
- package/dist/system/index.browser.js +221 -2
- package/dist/system/index.browser.js.map +1 -1
- package/dist/system/index.d.ts +63 -1
- package/dist/system/index.d.ts.map +1 -1
- package/dist/system/index.js +221 -1
- package/dist/system/index.js.map +1 -1
- package/dist/system/index.workerd.js +224 -4
- package/dist/system/index.workerd.js.map +1 -1
- package/package.json +10 -5
- package/src/api/jobs/providers/JobProvider.ts +6 -3
- package/src/api/notifications/controllers/AdminNotificationController.ts +83 -0
- package/src/api/notifications/index.browser.ts +3 -0
- package/src/api/notifications/index.ts +14 -2
- package/src/api/notifications/jobs/NotificationJobs.ts +11 -2
- package/src/api/notifications/schemas/notificationDetailResourceSchema.ts +20 -0
- package/src/api/notifications/schemas/notificationQuerySchema.ts +19 -0
- package/src/api/notifications/schemas/notificationResourceSchema.ts +18 -0
- package/src/api/notifications/services/NotificationSenderService.ts +15 -2
- package/src/api/users/atoms/realmAuthSettingsAtom.ts +28 -32
- package/src/api/users/buckets/UserBuckets.ts +1 -1
- package/src/api/users/jobs/UserJobs.ts +1 -1
- package/src/api/users/primitives/$realm.ts +8 -49
- package/src/api/users/providers/RealmProvider.ts +2 -3
- package/src/api/users/services/RegistrationService.spec.ts +7 -7
- package/src/api/users/services/RegistrationService.ts +3 -3
- package/src/api/users/services/SessionService.spec.ts +4 -4
- package/src/api/users/services/SessionService.ts +3 -3
- package/src/cli/{core → config}/defineConfig.ts +14 -20
- package/src/cli/config/index.ts +1 -0
- package/src/cli/core/commands/db.ts +65 -1
- package/src/cli/core/commands/dev.ts +1 -0
- package/src/cli/core/commands/init.ts +2 -192
- package/src/cli/core/index.ts +34 -11
- package/src/cli/core/providers/ViteDevServerProvider.ts +52 -13
- package/src/cli/core/services/PackageManagerUtils.ts +43 -21
- package/src/cli/core/services/ProjectScaffolder.ts +214 -2
- package/src/cli/core/services/ViteUtils.ts +57 -0
- package/src/cli/core/tasks/BuildClientTask.ts +7 -2
- package/src/cli/core/tasks/BuildCloudflareTask.ts +4 -12
- package/src/cli/core/tasks/BuildServerTask.ts +2 -0
- package/src/cli/core/tasks/BuildVercelTask.ts +165 -168
- package/src/cli/core/templates/alephaConfigTs.ts +1 -1
- package/src/cli/core/templates/apiAppSecurityTs.ts +5 -8
- package/src/cli/core/templates/tsconfigJson.ts +6 -1
- package/src/cli/platform/adapters/CloudflareAdapter.spec.ts +1 -1
- package/src/cli/platform/adapters/CloudflareAdapter.ts +30 -29
- package/src/cli/platform/atoms/platformOptions.ts +21 -0
- package/src/cli/platform/commands/SecretsCommand.spec.ts +298 -0
- package/src/cli/platform/commands/SecretsCommand.ts +283 -0
- package/src/cli/platform/commands/platform.ts +12 -0
- package/src/cli/platform/index.ts +14 -28
- package/src/cli/platform/providers/GitHubSecretStore.spec.ts +153 -0
- package/src/cli/platform/providers/GitHubSecretStore.ts +112 -0
- package/src/cli/platform/providers/MemorySecretStore.ts +114 -0
- package/src/cli/platform/providers/SecretStoreProvider.ts +39 -0
- package/src/cli/platform/schemas/cloudflare.ts +2 -0
- package/src/cli/platform/services/CloudflareApi.ts +5 -2
- package/src/cli/platform/services/DockerComposeGenerator.spec.ts +115 -0
- package/src/cli/platform/services/DockerComposeGenerator.ts +46 -1
- package/src/cli/platform/services/SecretFilterService.spec.ts +111 -0
- package/src/cli/platform/services/SecretFilterService.ts +54 -0
- package/src/core/Alepha.ts +94 -25
- package/src/core/__tests__/Alepha-parseEnv.spec.ts +20 -0
- package/src/core/primitives/$memoize.ts +38 -26
- package/src/core/providers/AlsProvider.ts +2 -0
- package/src/core/providers/EventManager.ts +4 -0
- package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +1 -4
- package/src/core/providers/KeylessJsonSchemaCodec.ts +19 -125
- package/src/core/providers/SchemaValidator.spec.ts +36 -0
- package/src/core/providers/SchemaValidator.ts +9 -0
- package/src/crypto/index.ts +6 -1
- package/src/crypto/providers/SecretProvider.ts +36 -0
- package/src/devtools/providers/DevToolsProvider.ts +3 -12
- package/src/logger/index.ts +33 -6
- package/src/logger/providers/PrettyFormatterProvider.ts +5 -3
- package/src/orm/__tests__/orm-next-tests.ts +492 -0
- package/src/orm/__tests__/orm-next.spec.ts +140 -0
- package/src/orm/core/constants/PG_SYMBOLS.ts +17 -0
- package/src/orm/core/index.bun.ts +3 -6
- package/src/orm/core/index.shared-server.ts +2 -0
- package/src/orm/core/index.shared.ts +2 -0
- package/src/orm/core/index.ts +5 -7
- package/src/orm/core/interfaces/AggregateQuery.ts +103 -0
- package/src/orm/core/interfaces/PgQueryWhere.ts +7 -0
- package/src/orm/core/primitives/$entity.ts +8 -0
- package/src/orm/core/primitives/$repository.ts +6 -3
- package/src/orm/core/primitives/$view.ts +88 -0
- package/src/orm/core/providers/DbCacheProvider.ts +66 -0
- package/src/orm/core/providers/DrizzleKitProvider.ts +42 -0
- package/src/orm/core/providers/drivers/BunSqliteProvider.ts +2 -3
- package/src/orm/core/providers/drivers/CloudflareD1Provider.ts +12 -0
- package/src/orm/core/providers/drivers/DatabaseProvider.ts +39 -0
- package/src/orm/core/providers/drivers/NodeSqliteProvider.ts +2 -3
- package/src/orm/core/schemas/databaseEnvSchema.ts +31 -0
- package/src/orm/core/schemas/insertSchema.ts +13 -3
- package/src/orm/core/schemas/updateSchema.ts +14 -3
- package/src/orm/core/services/ModelBuilder.ts +26 -14
- package/src/orm/core/services/QueryManager.ts +13 -0
- package/src/orm/core/services/Repository.ts +307 -5
- package/src/orm/core/services/SqliteModelBuilder.ts +38 -0
- package/src/orm/postgres/index.bun.ts +4 -7
- package/src/orm/postgres/index.ts +4 -7
- package/src/orm/postgres/providers/BunPostgresProvider.ts +12 -2
- package/src/orm/postgres/providers/NodePostgresProvider.ts +7 -0
- package/src/orm/postgres/providers/PglitePostgresProvider.ts +10 -17
- package/src/orm/postgres/providers/PostgresProvider.ts +7 -36
- package/src/orm/postgres/schemas/postgresEnvSchema.ts +32 -0
- package/src/orm/postgres/services/PostgresModelBuilder.ts +40 -0
- package/src/react/core/components/ErrorBoundary.tsx +5 -2
- package/src/react/form/hooks/useFieldValue.ts +34 -0
- package/src/react/form/hooks/useForm.browser.spec.tsx +94 -9
- package/src/react/form/hooks/useForm.ts +14 -2
- package/src/react/form/hooks/useFormState.ts +10 -10
- package/src/react/form/hooks/useFormValues.ts +29 -0
- package/src/react/form/index.ts +3 -1
- package/src/react/form/services/FormModel.ts +53 -122
- package/src/react/router/components/ErrorViewer.tsx +333 -34
- package/src/react/router/components/NestedView.tsx +10 -3
- package/src/react/router/primitives/$page.browser.spec.tsx +34 -0
- package/src/react/router/primitives/$page.spec.tsx +20 -0
- package/src/react/router/primitives/$page.ts +24 -0
- package/src/react/router/providers/ReactBrowserRouterProvider.ts +14 -2
- package/src/react/router/providers/ReactPageProvider.ts +156 -73
- package/src/react/router/providers/ReactServerProvider.ts +40 -2
- package/src/react/router/providers/ReactServerTemplateProvider.ts +13 -1
- package/src/security/providers/SecurityProvider.ts +5 -27
- package/src/server/auth/primitives/$auth.ts +52 -19
- package/src/server/auth/providers/ServerAuthProvider.ts +145 -139
- package/src/server/cookies/providers/ServerCookiesProvider.ts +12 -24
- package/src/server/core/index.ts +3 -1
- package/src/server/core/primitives/$sse.spec.ts +315 -0
- package/src/server/core/primitives/$sse.ts +715 -0
- package/src/server/links/index.browser.ts +1 -3
- package/src/server/links/index.ts +0 -3
- package/src/server/links/providers/LinkProvider.spec.ts +12 -21
- package/src/server/links/providers/LinkProvider.ts +20 -52
- package/src/server/links/providers/ServerLinksProvider.spec.ts +106 -0
- package/src/server/links/providers/ServerLinksProvider.ts +113 -73
- package/src/server/links/schemas/apiLinksResponseSchema.ts +4 -21
- package/src/server/links/services/BatchCollector.ts +5 -3
- package/src/system/index.browser.ts +1 -0
- package/src/system/index.ts +3 -0
- package/src/system/index.workerd.ts +39 -1
- package/src/system/providers/WorkerdFileSystemProvider.ts +365 -0
- package/assets/devtools-ui/asset.BfSBZ5Dd.css.br +0 -0
- package/assets/devtools-ui/chunk.2NYaoqWt.js +0 -1
- package/assets/devtools-ui/chunk.2NYaoqWt.js.br +0 -0
- package/assets/devtools-ui/chunk.B052Z_xQ.js +0 -1
- package/assets/devtools-ui/chunk.B052Z_xQ.js.br +0 -0
- package/assets/devtools-ui/chunk.B4kVY90C.js +0 -1
- package/assets/devtools-ui/chunk.B4kVY90C.js.br +0 -0
- package/assets/devtools-ui/chunk.B7QJXctB.js +0 -1
- package/assets/devtools-ui/chunk.B7QJXctB.js.br +0 -0
- package/assets/devtools-ui/chunk.B9pX3zit.js.br +0 -0
- package/assets/devtools-ui/chunk.BKF9JxIo.js +0 -1
- package/assets/devtools-ui/chunk.BKF9JxIo.js.br +0 -0
- package/assets/devtools-ui/chunk.BOHgdTP-.js +0 -1
- package/assets/devtools-ui/chunk.BOHgdTP-.js.br +0 -0
- package/assets/devtools-ui/chunk.BOVFxkYC.js +0 -1
- package/assets/devtools-ui/chunk.BOVFxkYC.js.br +0 -0
- package/assets/devtools-ui/chunk.BR842zj5.js +0 -1
- package/assets/devtools-ui/chunk.BR842zj5.js.br +0 -0
- package/assets/devtools-ui/chunk.BT2IiBkZ.js.br +0 -0
- package/assets/devtools-ui/chunk.C79YouPp.js.br +0 -0
- package/assets/devtools-ui/chunk.C8mlBrjW.js +0 -9
- package/assets/devtools-ui/chunk.C8mlBrjW.js.br +0 -0
- package/assets/devtools-ui/chunk.CK0ow3AZ.js +0 -1
- package/assets/devtools-ui/chunk.CK0ow3AZ.js.br +0 -0
- package/assets/devtools-ui/chunk.CZl6J9DF.js.br +0 -0
- package/assets/devtools-ui/chunk.CdNr0YzS.js +0 -1
- package/assets/devtools-ui/chunk.CdNr0YzS.js.br +0 -0
- package/assets/devtools-ui/chunk.Ce6_6iIF.js +0 -1
- package/assets/devtools-ui/chunk.Ce6_6iIF.js.br +0 -0
- package/assets/devtools-ui/chunk.CpyDMr6O.js +0 -1
- package/assets/devtools-ui/chunk.CpyDMr6O.js.br +0 -0
- package/assets/devtools-ui/chunk.CyPmvPnY.js +0 -1
- package/assets/devtools-ui/chunk.CyPmvPnY.js.br +0 -0
- package/assets/devtools-ui/chunk.DTI_geWu.js +0 -1
- package/assets/devtools-ui/chunk.DTI_geWu.js.br +0 -0
- package/assets/devtools-ui/chunk.DbEH1oOB.js.br +0 -0
- package/assets/devtools-ui/chunk.Ddeqj5gv.js +0 -1
- package/assets/devtools-ui/chunk.Ddeqj5gv.js.br +0 -0
- package/assets/devtools-ui/chunk.DpRnB4vJ.js +0 -1
- package/assets/devtools-ui/chunk.DpRnB4vJ.js.br +0 -0
- package/assets/devtools-ui/chunk.DxPGTlsg.js +0 -1
- package/assets/devtools-ui/chunk.DxPGTlsg.js.br +0 -0
- package/assets/devtools-ui/chunk.G7_MMBJS.js +0 -1
- package/assets/devtools-ui/chunk.G7_MMBJS.js.br +0 -0
- package/assets/devtools-ui/chunk.M6wyKO_3.js.br +0 -0
- package/assets/devtools-ui/chunk.OUxNGmQ6.js +0 -1
- package/assets/devtools-ui/chunk.OUxNGmQ6.js.br +0 -0
- package/assets/devtools-ui/chunk.T1kle-fF.js +0 -1
- package/assets/devtools-ui/chunk.T1kle-fF.js.br +0 -0
- package/assets/devtools-ui/chunk.WjpsbQAv.js +0 -1
- package/assets/devtools-ui/chunk.WjpsbQAv.js.br +0 -0
- package/assets/devtools-ui/chunk.c6YgVx86.js +0 -1
- package/assets/devtools-ui/chunk.c6YgVx86.js.br +0 -0
- package/assets/devtools-ui/chunk.dwU3E_MU.js +0 -1
- package/assets/devtools-ui/chunk.dwU3E_MU.js.br +0 -0
- package/assets/devtools-ui/chunk.lJL-lgnW.js.br +0 -0
- package/assets/devtools-ui/chunk.lPWRmvA-.js +0 -7
- package/assets/devtools-ui/chunk.lPWRmvA-.js.br +0 -0
- package/assets/devtools-ui/chunk.p3HJvugM.js +0 -1
- package/assets/devtools-ui/chunk.p3HJvugM.js.br +0 -0
- package/assets/devtools-ui/chunk.r_Xoa_CI.js +0 -1
- package/assets/devtools-ui/chunk.r_Xoa_CI.js.br +0 -0
- package/assets/devtools-ui/chunk.sRNuTYXb.js +0 -1
- package/assets/devtools-ui/chunk.sRNuTYXb.js.br +0 -0
- package/assets/devtools-ui/chunk.tUjcyX5C.js +0 -1
- package/assets/devtools-ui/chunk.tUjcyX5C.js.br +0 -0
- package/assets/devtools-ui/chunk.thjBxvCA.js +0 -1
- package/assets/devtools-ui/chunk.thjBxvCA.js.br +0 -0
- package/assets/devtools-ui/entry.GYhBVRpC.js +0 -78
- package/assets/devtools-ui/entry.GYhBVRpC.js.br +0 -0
- package/src/server/links/services/DefinitionsPool.spec.ts +0 -86
- package/src/server/links/services/DefinitionsPool.ts +0 -43
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
t,
|
|
9
9
|
} from "alepha";
|
|
10
10
|
import { $logger } from "alepha/logger";
|
|
11
|
-
import type {
|
|
11
|
+
import type { InputHTMLAttributes } from "react";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* FormModel is a dynamic form handler that generates form inputs based on a provided TypeBox schema.
|
|
@@ -22,6 +22,7 @@ export class FormModel<T extends TObject> {
|
|
|
22
22
|
protected readonly log = $logger();
|
|
23
23
|
protected readonly alepha = $inject(Alepha);
|
|
24
24
|
protected readonly values: Record<string, any> = {};
|
|
25
|
+
protected readonly initialValues: Record<string, any> = {};
|
|
25
26
|
protected submitInProgress = false;
|
|
26
27
|
|
|
27
28
|
public input: SchemaToInput<T>;
|
|
@@ -50,6 +51,8 @@ export class FormModel<T extends TObject> {
|
|
|
50
51
|
Object.assign(this.values, decoded);
|
|
51
52
|
}
|
|
52
53
|
|
|
54
|
+
this.initialValues = { ...this.values };
|
|
55
|
+
|
|
53
56
|
this.input = this.createProxyFromSchema(options, options.schema, {
|
|
54
57
|
store: this.values,
|
|
55
58
|
parent: "",
|
|
@@ -93,10 +96,6 @@ export class FormModel<T extends TObject> {
|
|
|
93
96
|
return defaults;
|
|
94
97
|
}
|
|
95
98
|
|
|
96
|
-
public get element(): HTMLFormElement {
|
|
97
|
-
return window.document.getElementById(this.id)! as HTMLFormElement;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
99
|
public get currentValues(): Record<string, any> {
|
|
101
100
|
return this.restructureValues(this.values);
|
|
102
101
|
}
|
|
@@ -113,24 +112,48 @@ export class FormModel<T extends TObject> {
|
|
|
113
112
|
};
|
|
114
113
|
}
|
|
115
114
|
|
|
116
|
-
public readonly
|
|
117
|
-
|
|
115
|
+
public readonly setInitialValues = (values: Record<string, any>) => {
|
|
116
|
+
const decoded = this.alepha.codec.decode(
|
|
117
|
+
this.options.schema,
|
|
118
|
+
values,
|
|
119
|
+
) as Record<string, any>;
|
|
120
|
+
|
|
121
|
+
for (const key in this.initialValues) {
|
|
122
|
+
delete (this.initialValues as Record<string, any>)[key];
|
|
123
|
+
}
|
|
124
|
+
Object.assign(this.initialValues, decoded);
|
|
125
|
+
|
|
118
126
|
for (const key in this.values) {
|
|
119
127
|
delete this.values[key];
|
|
120
128
|
}
|
|
129
|
+
Object.assign(this.values, { ...this.initialValues });
|
|
121
130
|
|
|
122
|
-
this.
|
|
131
|
+
for (const [key, value] of Object.entries(this.values)) {
|
|
132
|
+
const path = `/${key.replaceAll(".", "/")}`;
|
|
133
|
+
this.alepha.events.emit(
|
|
134
|
+
"form:change",
|
|
135
|
+
{ id: this.id, path, value },
|
|
136
|
+
{ catch: true },
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
123
140
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
141
|
+
public readonly reset = (event?: FormEventLike) => {
|
|
142
|
+
event?.preventDefault?.();
|
|
143
|
+
for (const key in this.values) {
|
|
144
|
+
delete this.values[key];
|
|
145
|
+
}
|
|
146
|
+
Object.assign(this.values, { ...this.initialValues });
|
|
147
|
+
for (const [key, value] of Object.entries(this.values)) {
|
|
148
|
+
const path = `/${key.replaceAll(".", "/")}`;
|
|
149
|
+
this.alepha.events.emit(
|
|
150
|
+
"form:change",
|
|
151
|
+
{ id: this.id, path, value },
|
|
152
|
+
{ catch: true },
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
this.alepha.events.emit("form:reset", { id: this.id }, { catch: true });
|
|
156
|
+
this.options.onReset?.();
|
|
134
157
|
};
|
|
135
158
|
|
|
136
159
|
public readonly submit = async () => {
|
|
@@ -153,10 +176,6 @@ export class FormModel<T extends TObject> {
|
|
|
153
176
|
this.submitInProgress = true;
|
|
154
177
|
|
|
155
178
|
const options = this.options;
|
|
156
|
-
const form = this.element;
|
|
157
|
-
const args = {
|
|
158
|
-
form,
|
|
159
|
-
};
|
|
160
179
|
|
|
161
180
|
try {
|
|
162
181
|
let values: Record<string, any> = this.restructureValues(this.values);
|
|
@@ -168,7 +187,7 @@ export class FormModel<T extends TObject> {
|
|
|
168
187
|
>;
|
|
169
188
|
}
|
|
170
189
|
|
|
171
|
-
await options.handler(values as any
|
|
190
|
+
await options.handler(values as any);
|
|
172
191
|
|
|
173
192
|
await this.alepha.events.emit("react:action:success", {
|
|
174
193
|
type: "form",
|
|
@@ -181,7 +200,7 @@ export class FormModel<T extends TObject> {
|
|
|
181
200
|
} catch (error) {
|
|
182
201
|
this.log.error("Form submission error:", error);
|
|
183
202
|
|
|
184
|
-
options.onError?.(error as Error
|
|
203
|
+
options.onError?.(error as Error);
|
|
185
204
|
|
|
186
205
|
await this.alepha.events.emit("react:action:error", {
|
|
187
206
|
type: "form",
|
|
@@ -308,6 +327,7 @@ export class FormModel<T extends TObject> {
|
|
|
308
327
|
return {
|
|
309
328
|
path: "",
|
|
310
329
|
required,
|
|
330
|
+
initialValue: undefined,
|
|
311
331
|
props: {} as InputHTMLAttributes<unknown>,
|
|
312
332
|
schema: schema,
|
|
313
333
|
set: () => {},
|
|
@@ -319,82 +339,23 @@ export class FormModel<T extends TObject> {
|
|
|
319
339
|
const key = parent ? `${parent}.${name}` : name;
|
|
320
340
|
const path = `/${key.replaceAll(".", "/")}`;
|
|
321
341
|
|
|
322
|
-
const set = (value: any
|
|
323
|
-
// Convert to typed value immediately based on schema
|
|
342
|
+
const set = (value: any) => {
|
|
324
343
|
const typedValue = this.getValueFromInput(value, field);
|
|
325
|
-
|
|
326
|
-
if (context.store[key] === typedValue) {
|
|
327
|
-
// no change, do not update
|
|
328
|
-
// return; <- disabled for now, as some inputs may need to sync even if value is same
|
|
329
|
-
}
|
|
330
|
-
|
|
331
344
|
context.store[key] = typedValue;
|
|
332
|
-
|
|
333
345
|
if (options.onChange) {
|
|
334
346
|
options.onChange(key, typedValue, context.store);
|
|
335
347
|
}
|
|
336
|
-
|
|
337
348
|
this.alepha.events.emit(
|
|
338
349
|
"form:change",
|
|
339
|
-
{
|
|
340
|
-
|
|
341
|
-
path: path,
|
|
342
|
-
value: typedValue,
|
|
343
|
-
},
|
|
344
|
-
{
|
|
345
|
-
catch: true,
|
|
346
|
-
},
|
|
350
|
+
{ id: this.id, path: path, value: typedValue },
|
|
351
|
+
{ catch: true },
|
|
347
352
|
);
|
|
348
|
-
|
|
349
|
-
if (sync) {
|
|
350
|
-
const inputElement = window.document.querySelector(
|
|
351
|
-
`[data-path="${path}"]`,
|
|
352
|
-
);
|
|
353
|
-
if (inputElement instanceof HTMLInputElement) {
|
|
354
|
-
if (t.schema.isBoolean(field)) {
|
|
355
|
-
inputElement.value = value;
|
|
356
|
-
inputElement.checked = Boolean(value);
|
|
357
|
-
} else {
|
|
358
|
-
inputElement.value = value;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
353
|
};
|
|
363
354
|
|
|
364
355
|
const attr: InputHTMLAttributesLike = {
|
|
365
356
|
name: key,
|
|
366
|
-
autoComplete: "off",
|
|
367
|
-
onChange: (event: ChangeEvent<HTMLInputElement> | string | number) => {
|
|
368
|
-
if (typeof event === "string") {
|
|
369
|
-
// If the event is a string, it means it's a direct value change
|
|
370
|
-
set(event, false);
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
if (typeof event === "number") {
|
|
375
|
-
// Some inputs might return number directly
|
|
376
|
-
set(event, false);
|
|
377
|
-
return;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
if (t.schema.isBoolean(field)) {
|
|
381
|
-
if (event.target.value === "true") {
|
|
382
|
-
set(true, false);
|
|
383
|
-
} else if (event.target.value === "false") {
|
|
384
|
-
set(false, false);
|
|
385
|
-
} else if (event.target.value === "") {
|
|
386
|
-
set(undefined, false);
|
|
387
|
-
} else {
|
|
388
|
-
set(event.target.checked, false);
|
|
389
|
-
}
|
|
390
|
-
} else {
|
|
391
|
-
set(event.target.value, false);
|
|
392
|
-
}
|
|
393
|
-
},
|
|
394
357
|
};
|
|
395
358
|
|
|
396
|
-
(attr as any)["data-path"] = path;
|
|
397
|
-
|
|
398
359
|
if (options.id) {
|
|
399
360
|
attr.id = `${options.id}-${key}`;
|
|
400
361
|
(attr as any)["data-testid"] = attr.id;
|
|
@@ -410,12 +371,6 @@ export class FormModel<T extends TObject> {
|
|
|
410
371
|
}
|
|
411
372
|
}
|
|
412
373
|
|
|
413
|
-
if (options.initialValues?.[name] != null) {
|
|
414
|
-
attr.defaultValue = this.valueToInputEntry(options.initialValues[name]);
|
|
415
|
-
} else if ("default" in field && field.default != null) {
|
|
416
|
-
attr.defaultValue = this.valueToInputEntry(field.default);
|
|
417
|
-
}
|
|
418
|
-
|
|
419
374
|
if (isRequired) {
|
|
420
375
|
attr.required = true;
|
|
421
376
|
}
|
|
@@ -462,6 +417,7 @@ export class FormModel<T extends TObject> {
|
|
|
462
417
|
set,
|
|
463
418
|
form: this,
|
|
464
419
|
required,
|
|
420
|
+
initialValue: context.store[key],
|
|
465
421
|
items: this.createProxyFromSchema(options, field, {
|
|
466
422
|
parent: key,
|
|
467
423
|
store: context.store,
|
|
@@ -478,6 +434,7 @@ export class FormModel<T extends TObject> {
|
|
|
478
434
|
set,
|
|
479
435
|
form: this,
|
|
480
436
|
required,
|
|
437
|
+
initialValue: context.store[key],
|
|
481
438
|
items: [], // <- will be populated dynamically in the UI
|
|
482
439
|
} as ArrayInputField<any>;
|
|
483
440
|
}
|
|
@@ -489,6 +446,7 @@ export class FormModel<T extends TObject> {
|
|
|
489
446
|
set,
|
|
490
447
|
form: this,
|
|
491
448
|
required,
|
|
449
|
+
initialValue: context.store[key],
|
|
492
450
|
};
|
|
493
451
|
}
|
|
494
452
|
|
|
@@ -536,30 +494,6 @@ export class FormModel<T extends TObject> {
|
|
|
536
494
|
|
|
537
495
|
return input; // fallback for other types
|
|
538
496
|
}
|
|
539
|
-
|
|
540
|
-
protected valueToInputEntry(value: any): string | number | boolean {
|
|
541
|
-
if (value === null || value === undefined) {
|
|
542
|
-
return "";
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
if (typeof value === "boolean") {
|
|
546
|
-
return value;
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
if (typeof value === "number") {
|
|
550
|
-
return value;
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
if (typeof value === "string") {
|
|
554
|
-
return value;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
if (value instanceof Date) {
|
|
558
|
-
return value.toISOString().slice(0, 16); // For datetime-local input
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
return value;
|
|
562
|
-
}
|
|
563
497
|
}
|
|
564
498
|
|
|
565
499
|
export type SchemaToInput<T extends TObject> = {
|
|
@@ -580,6 +514,7 @@ export type InputField<T extends TSchema> = T extends TObject
|
|
|
580
514
|
export interface BaseInputField {
|
|
581
515
|
path: string;
|
|
582
516
|
required: boolean;
|
|
517
|
+
initialValue: any;
|
|
583
518
|
props: InputHTMLAttributesLike;
|
|
584
519
|
schema: TSchema;
|
|
585
520
|
set: (value: any) => void;
|
|
@@ -601,16 +536,12 @@ export type InputHTMLAttributesLike = Pick<
|
|
|
601
536
|
| "name"
|
|
602
537
|
| "type"
|
|
603
538
|
| "value"
|
|
604
|
-
| "defaultValue"
|
|
605
539
|
| "required"
|
|
606
540
|
| "maxLength"
|
|
607
541
|
| "minLength"
|
|
608
542
|
| "aria-label"
|
|
609
|
-
| "autoComplete"
|
|
610
543
|
> & {
|
|
611
544
|
value?: any;
|
|
612
|
-
defaultValue?: any;
|
|
613
|
-
onChange?: (event: any) => void;
|
|
614
545
|
};
|
|
615
546
|
|
|
616
547
|
export type FormCtrlOptions<T extends TObject> = {
|
|
@@ -624,7 +555,7 @@ export type FormCtrlOptions<T extends TObject> = {
|
|
|
624
555
|
* Callback function to handle form submission.
|
|
625
556
|
* This function will receive the parsed and validated form values.
|
|
626
557
|
*/
|
|
627
|
-
handler: (values: Static<T
|
|
558
|
+
handler: (values: Static<T>) => unknown;
|
|
628
559
|
|
|
629
560
|
/**
|
|
630
561
|
* Optional initial values for the form fields.
|
|
@@ -650,7 +581,7 @@ export type FormCtrlOptions<T extends TObject> = {
|
|
|
650
581
|
*/
|
|
651
582
|
id?: string;
|
|
652
583
|
|
|
653
|
-
onError?: (error: Error
|
|
584
|
+
onError?: (error: Error) => void;
|
|
654
585
|
|
|
655
586
|
onChange?: (key: string, value: any, store: Record<string, any>) => void;
|
|
656
587
|
|