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
|
@@ -922,11 +922,6 @@ const t = new TypeProvider();
|
|
|
922
922
|
|
|
923
923
|
//#endregion
|
|
924
924
|
//#region ../../src/core/providers/KeylessJsonSchemaCodec.ts
|
|
925
|
-
const UNSAFE_KEYS = new Set([
|
|
926
|
-
"__proto__",
|
|
927
|
-
"constructor",
|
|
928
|
-
"prototype"
|
|
929
|
-
]);
|
|
930
925
|
/**
|
|
931
926
|
* KeylessJsonSchemaCodec provides schema-driven JSON encoding without keys.
|
|
932
927
|
*
|
|
@@ -939,9 +934,6 @@ var KeylessJsonSchemaCodec = class extends SchemaCodec {
|
|
|
939
934
|
textDecoder = new TextDecoder();
|
|
940
935
|
varCounter = 0;
|
|
941
936
|
useFunctionCompilation = true;
|
|
942
|
-
maxArrayLength = 1e4;
|
|
943
|
-
maxStringLength = 1e6;
|
|
944
|
-
maxDepth = 50;
|
|
945
937
|
/**
|
|
946
938
|
* Configure codec options.
|
|
947
939
|
*/
|
|
@@ -950,9 +942,6 @@ var KeylessJsonSchemaCodec = class extends SchemaCodec {
|
|
|
950
942
|
this.useFunctionCompilation = options.useFunctionCompilation;
|
|
951
943
|
this.cache.clear();
|
|
952
944
|
}
|
|
953
|
-
if (options.maxArrayLength !== void 0) this.maxArrayLength = options.maxArrayLength;
|
|
954
|
-
if (options.maxStringLength !== void 0) this.maxStringLength = options.maxStringLength;
|
|
955
|
-
if (options.maxDepth !== void 0) this.maxDepth = options.maxDepth;
|
|
956
945
|
return this;
|
|
957
946
|
}
|
|
958
947
|
/**
|
|
@@ -1000,37 +989,6 @@ var KeylessJsonSchemaCodec = class extends SchemaCodec {
|
|
|
1000
989
|
}
|
|
1001
990
|
}
|
|
1002
991
|
/**
|
|
1003
|
-
* Validate schema keys for prototype pollution.
|
|
1004
|
-
* Uses a visited set to avoid infinite recursion on recursive schemas.
|
|
1005
|
-
*/
|
|
1006
|
-
validateSchemaKeys(schema, depth = 0, visited = /* @__PURE__ */ new Set()) {
|
|
1007
|
-
if (visited.has(schema)) return;
|
|
1008
|
-
visited.add(schema);
|
|
1009
|
-
if (depth > this.maxDepth) throw new AlephaError(`Schema depth exceeds maximum allowed (${this.maxDepth})`);
|
|
1010
|
-
if (t.schema.isObject(schema)) {
|
|
1011
|
-
const props = schema.properties;
|
|
1012
|
-
for (const key of Object.keys(props)) {
|
|
1013
|
-
if (UNSAFE_KEYS.has(key)) throw new AlephaError(`Unsafe schema key "${key}" detected. This key is blocked to prevent prototype pollution.`);
|
|
1014
|
-
this.validateSchemaKeys(props[key], depth + 1, visited);
|
|
1015
|
-
}
|
|
1016
|
-
} else if (t.schema.isArray(schema)) {
|
|
1017
|
-
const arrSchema = schema;
|
|
1018
|
-
this.validateSchemaKeys(arrSchema.items, depth + 1, visited);
|
|
1019
|
-
} else if (t.schema.isUnion(schema) || t.schema.isOptional(schema)) this.validateSchemaKeys(this.unwrap(schema), depth, visited);
|
|
1020
|
-
}
|
|
1021
|
-
/**
|
|
1022
|
-
* Validate array length.
|
|
1023
|
-
*/
|
|
1024
|
-
validateArrayLength(arr) {
|
|
1025
|
-
if (arr.length > this.maxArrayLength) throw new AlephaError(`Array length (${arr.length}) exceeds maximum allowed (${this.maxArrayLength})`);
|
|
1026
|
-
}
|
|
1027
|
-
/**
|
|
1028
|
-
* Validate string length.
|
|
1029
|
-
*/
|
|
1030
|
-
validateStringLength(str) {
|
|
1031
|
-
if (str.length > this.maxStringLength) throw new AlephaError(`String length (${str.length}) exceeds maximum allowed (${this.maxStringLength})`);
|
|
1032
|
-
}
|
|
1033
|
-
/**
|
|
1034
992
|
* Get a compiled codec for the given schema.
|
|
1035
993
|
* Codecs are cached for reuse.
|
|
1036
994
|
*/
|
|
@@ -1171,9 +1129,10 @@ var KeylessJsonSchemaCodec = class extends SchemaCodec {
|
|
|
1171
1129
|
if (t.schema.isObject(schema)) {
|
|
1172
1130
|
const parts = [];
|
|
1173
1131
|
for (const { key, isOpt, isNullable, inner } of this.getObjectFields(schema)) {
|
|
1174
|
-
const
|
|
1175
|
-
|
|
1176
|
-
|
|
1132
|
+
const access = `${ve}[${JSON.stringify(key)}]`;
|
|
1133
|
+
const innerEnc = this.genEnc(inner, access);
|
|
1134
|
+
if (isOpt) parts.push(`${access}!==undefined?${innerEnc}:null`);
|
|
1135
|
+
else if (isNullable) parts.push(`${access}!==null?${innerEnc}:null`);
|
|
1177
1136
|
else parts.push(innerEnc);
|
|
1178
1137
|
}
|
|
1179
1138
|
return `[${parts.join(",")}]`;
|
|
@@ -1211,25 +1170,28 @@ var KeylessJsonSchemaCodec = class extends SchemaCodec {
|
|
|
1211
1170
|
const fields = this.getObjectFields(schema);
|
|
1212
1171
|
if (fields.every(({ isOpt, isNullable, inner }) => !isOpt && !isNullable && !t.schema.isObject(inner) && !t.schema.isArray(inner))) return {
|
|
1213
1172
|
code: "",
|
|
1214
|
-
result: `{${fields.map(({ key }) => `${key}:a[i++]`).join(",")}}`
|
|
1173
|
+
result: `{${fields.map(({ key }) => `${JSON.stringify(key)}:a[i++]`).join(",")}}`
|
|
1215
1174
|
};
|
|
1216
1175
|
let code = `const ${v}={};`;
|
|
1217
|
-
for (const { key, isOpt, isNullable, inner } of fields)
|
|
1218
|
-
const
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
if (t.schema.
|
|
1229
|
-
const
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1176
|
+
for (const { key, isOpt, isNullable, inner } of fields) {
|
|
1177
|
+
const sk = JSON.stringify(key);
|
|
1178
|
+
if (isOpt) {
|
|
1179
|
+
const nested = this.genDecFromValue(inner, "t");
|
|
1180
|
+
code += `{const t=a[i++];if(t!==null){${v}[${sk}]=${nested};}}`;
|
|
1181
|
+
} else if (isNullable) {
|
|
1182
|
+
const nested = this.genDecFromValue(inner, "t");
|
|
1183
|
+
code += `{const t=a[i++];if(t===null){${v}[${sk}]=null;}else{${v}[${sk}]=${nested};}}`;
|
|
1184
|
+
} else if (t.schema.isObject(inner)) {
|
|
1185
|
+
const nested = this.genDecFromValue(inner, "a[i++]");
|
|
1186
|
+
code += `${v}[${sk}]=${nested};`;
|
|
1187
|
+
} else if (t.schema.isArray(inner)) {
|
|
1188
|
+
const arrSchema = inner;
|
|
1189
|
+
if (t.schema.isObject(arrSchema.items)) {
|
|
1190
|
+
const itemTransform = this.genDecFromValue(arrSchema.items, "e");
|
|
1191
|
+
code += `${v}[${sk}]=a[i++].map(e=>${itemTransform});`;
|
|
1192
|
+
} else code += `${v}[${sk}]=a[i++];`;
|
|
1193
|
+
} else code += `${v}[${sk}]=a[i++];`;
|
|
1194
|
+
}
|
|
1233
1195
|
return {
|
|
1234
1196
|
code,
|
|
1235
1197
|
result: v
|
|
@@ -1259,9 +1221,10 @@ var KeylessJsonSchemaCodec = class extends SchemaCodec {
|
|
|
1259
1221
|
return `((${v}=${expr})=>({${keys.map((k, idx) => {
|
|
1260
1222
|
const inner = this.unwrap(props[k]);
|
|
1261
1223
|
const innerExpr = `${v}[${idx}]`;
|
|
1262
|
-
|
|
1263
|
-
if (t.schema.
|
|
1264
|
-
return `${
|
|
1224
|
+
const sk = JSON.stringify(k);
|
|
1225
|
+
if (t.schema.isObject(inner)) return `${sk}:${this.genDecFromValue(inner, innerExpr)}`;
|
|
1226
|
+
if (t.schema.isBigInt(inner)) return `${sk}:BigInt(${innerExpr}.slice(0,-1))`;
|
|
1227
|
+
return `${sk}:${innerExpr}`;
|
|
1265
1228
|
}).join(",")}}))()`;
|
|
1266
1229
|
}
|
|
1267
1230
|
return expr;
|
|
@@ -1371,6 +1334,7 @@ var SchemaValidator = class {
|
|
|
1371
1334
|
beforeParse(schema, value, options) {
|
|
1372
1335
|
if (!schema) return value;
|
|
1373
1336
|
if (value === null && !this.isSchemaNullable(schema) && options.nullToUndefined) return;
|
|
1337
|
+
if (!schema.type && schema.anyOf) schema = schema.anyOf.find((s) => s.type !== "null" && s.type !== "undefined") || schema;
|
|
1374
1338
|
if (Array.isArray(value)) return value.map((it) => this.beforeParse(schema.items, it, options));
|
|
1375
1339
|
if (typeof value === "string" && schema.type === "string") {
|
|
1376
1340
|
let str = value;
|
|
@@ -2063,9 +2027,21 @@ var Alepha = class Alepha {
|
|
|
2063
2027
|
*/
|
|
2064
2028
|
ready = false;
|
|
2065
2029
|
/**
|
|
2066
|
-
*
|
|
2030
|
+
* In-flight startup promise returned by boot().
|
|
2031
|
+
*
|
|
2032
|
+
* Concurrent callers of start() share this same promise. Cleared on
|
|
2033
|
+
* success, failure, or stale-detection.
|
|
2067
2034
|
*/
|
|
2068
|
-
|
|
2035
|
+
startPromise;
|
|
2036
|
+
/**
|
|
2037
|
+
* Timestamp (performance.now) when the current boot() began.
|
|
2038
|
+
*
|
|
2039
|
+
* In serverless environments (e.g. Cloudflare Workers), the runtime can
|
|
2040
|
+
* kill an invocation mid-startup without running cleanup. The global
|
|
2041
|
+
* Alepha instance persists, leaving startPromise as a never-settling
|
|
2042
|
+
* promise. We detect this by comparing elapsed time against STARTUP_TIMEOUT.
|
|
2043
|
+
*/
|
|
2044
|
+
startedAt = 0;
|
|
2069
2045
|
/**
|
|
2070
2046
|
* During the instantiation process, we keep a list of pending instantiations.
|
|
2071
2047
|
* > It allows us to detect circular dependencies.
|
|
@@ -2232,6 +2208,16 @@ var Alepha = class Alepha {
|
|
|
2232
2208
|
return this.env.NODE_ENV === "production";
|
|
2233
2209
|
}
|
|
2234
2210
|
/**
|
|
2211
|
+
* Max time (ms) a boot() is allowed to run before being considered stale.
|
|
2212
|
+
*
|
|
2213
|
+
* In serverless runtimes (Cloudflare Workers, etc.) an invocation can be
|
|
2214
|
+
* killed mid-startup. The global Alepha instance survives, but
|
|
2215
|
+
* `startPromise` becomes a zombie that never settles.
|
|
2216
|
+
* Any new invocation that sees an older-than-STARTUP_TIMEOUT promise
|
|
2217
|
+
* discards it and boots fresh.
|
|
2218
|
+
*/
|
|
2219
|
+
static STARTUP_TIMEOUT = 3e4;
|
|
2220
|
+
/**
|
|
2235
2221
|
* Starts the App.
|
|
2236
2222
|
*
|
|
2237
2223
|
* - Lock any further changes to the container.
|
|
@@ -2239,6 +2225,10 @@ var Alepha = class Alepha {
|
|
|
2239
2225
|
* - Run "start" hook for all services. Providers will connect/listen/...
|
|
2240
2226
|
* - Run "ready" hook for all services. This is the point where the App is ready to serve requests.
|
|
2241
2227
|
*
|
|
2228
|
+
* Concurrent callers share the same boot promise. If a previous boot was
|
|
2229
|
+
* abandoned (serverless invocation killed), the stale promise is detected
|
|
2230
|
+
* and a fresh boot is triggered.
|
|
2231
|
+
*
|
|
2242
2232
|
* @return A promise that resolves when the App has started.
|
|
2243
2233
|
*/
|
|
2244
2234
|
async start() {
|
|
@@ -2246,14 +2236,31 @@ var Alepha = class Alepha {
|
|
|
2246
2236
|
this.log?.debug("App is already started, skipping...");
|
|
2247
2237
|
return this;
|
|
2248
2238
|
}
|
|
2249
|
-
if (this.
|
|
2250
|
-
|
|
2251
|
-
|
|
2239
|
+
if (this.startPromise) {
|
|
2240
|
+
const elapsed = performance.now() - this.startedAt;
|
|
2241
|
+
if (elapsed > Alepha.STARTUP_TIMEOUT) {
|
|
2242
|
+
this.log?.warn(`Previous start attempt is stale (${Math.round(elapsed)}ms ago), resetting...`);
|
|
2243
|
+
this.resetStartup();
|
|
2244
|
+
} else {
|
|
2245
|
+
this.log?.warn("App is already starting, waiting for it to finish...");
|
|
2246
|
+
return this.startPromise;
|
|
2247
|
+
}
|
|
2252
2248
|
}
|
|
2253
|
-
this.
|
|
2249
|
+
this.startedAt = performance.now();
|
|
2250
|
+
this.startPromise = this.boot();
|
|
2251
|
+
return this.startPromise;
|
|
2252
|
+
}
|
|
2253
|
+
/**
|
|
2254
|
+
* Perform the actual startup sequence.
|
|
2255
|
+
*
|
|
2256
|
+
* Separated from start() so that start() remains a thin state-machine
|
|
2257
|
+
* and boot() owns the real work. The promise returned here is stored as
|
|
2258
|
+
* `startPromise` and shared with concurrent callers.
|
|
2259
|
+
*/
|
|
2260
|
+
async boot() {
|
|
2261
|
+
const now = performance.now();
|
|
2262
|
+
this.log?.info("Starting App...");
|
|
2254
2263
|
try {
|
|
2255
|
-
const now = performance.now();
|
|
2256
|
-
this.log?.info("Starting App...");
|
|
2257
2264
|
for (const [key] of this.substitutions.entries()) this.inject(key);
|
|
2258
2265
|
const target = this.store.get("alepha.target");
|
|
2259
2266
|
if (target) {
|
|
@@ -2275,15 +2282,26 @@ var Alepha = class Alepha {
|
|
|
2275
2282
|
await this.events.emit("ready", this, { log: true });
|
|
2276
2283
|
this.log?.info(`App is now ready [${Math.round(performance.now() - now)}ms]`);
|
|
2277
2284
|
this.ready = true;
|
|
2285
|
+
return this;
|
|
2278
2286
|
} catch (error) {
|
|
2279
|
-
this.
|
|
2280
|
-
|
|
2281
|
-
this.starting = void 0;
|
|
2282
|
-
return promise;
|
|
2287
|
+
this.resetStartup();
|
|
2288
|
+
throw error;
|
|
2283
2289
|
}
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2290
|
+
}
|
|
2291
|
+
/**
|
|
2292
|
+
* Reset startup state so that a fresh boot() can be attempted.
|
|
2293
|
+
*
|
|
2294
|
+
* Called when:
|
|
2295
|
+
* - boot() fails (error during configure/start/ready hooks)
|
|
2296
|
+
* - a stale startPromise is detected (serverless invocation was killed)
|
|
2297
|
+
*/
|
|
2298
|
+
resetStartup() {
|
|
2299
|
+
this.startPromise = void 0;
|
|
2300
|
+
this.startedAt = 0;
|
|
2301
|
+
this.locked = false;
|
|
2302
|
+
this.configured = false;
|
|
2303
|
+
this.started = false;
|
|
2304
|
+
this.ready = false;
|
|
2287
2305
|
}
|
|
2288
2306
|
/**
|
|
2289
2307
|
* Stops the App.
|
|
@@ -2304,6 +2322,8 @@ var Alepha = class Alepha {
|
|
|
2304
2322
|
this.log?.info("App is now off");
|
|
2305
2323
|
this.started = false;
|
|
2306
2324
|
this.ready = false;
|
|
2325
|
+
this.startPromise = void 0;
|
|
2326
|
+
this.startedAt = 0;
|
|
2307
2327
|
}
|
|
2308
2328
|
/**
|
|
2309
2329
|
* Destroys the App and clears all internal state.
|
|
@@ -2458,7 +2478,18 @@ var Alepha = class Alepha {
|
|
|
2458
2478
|
parseEnv(schema) {
|
|
2459
2479
|
if (this.cacheEnv.has(schema)) return this.cacheEnv.get(schema);
|
|
2460
2480
|
const config = this.codec.validate(schema, this.env);
|
|
2461
|
-
|
|
2481
|
+
let changed = true;
|
|
2482
|
+
for (let pass = 0; changed && pass < 10; pass++) {
|
|
2483
|
+
changed = false;
|
|
2484
|
+
for (const key in config) {
|
|
2485
|
+
if (typeof config[key] !== "string") continue;
|
|
2486
|
+
for (const env in config) {
|
|
2487
|
+
const before = config[key];
|
|
2488
|
+
config[key] = before.replaceAll(`$${env}`, String(config[env] ?? ""));
|
|
2489
|
+
if (config[key] !== before) changed = true;
|
|
2490
|
+
}
|
|
2491
|
+
}
|
|
2492
|
+
}
|
|
2462
2493
|
this.cacheEnv.set(schema, config);
|
|
2463
2494
|
return config;
|
|
2464
2495
|
}
|
|
@@ -2923,13 +2954,20 @@ const $memoize = (options) => {
|
|
|
2923
2954
|
return async (...args) => {
|
|
2924
2955
|
const key = keyFn(...args);
|
|
2925
2956
|
if (store.has(key)) return store.get(key);
|
|
2926
|
-
const
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2957
|
+
const promise = next(...args);
|
|
2958
|
+
store.set(key, promise);
|
|
2959
|
+
try {
|
|
2960
|
+
const result = await promise;
|
|
2961
|
+
store.set(key, result);
|
|
2962
|
+
if (store.size > maxSize) {
|
|
2963
|
+
const firstKey = store.keys().next().value;
|
|
2964
|
+
if (firstKey !== void 0) store.delete(firstKey);
|
|
2965
|
+
}
|
|
2966
|
+
return result;
|
|
2967
|
+
} catch (error) {
|
|
2968
|
+
store.delete(key);
|
|
2969
|
+
throw error;
|
|
2930
2970
|
}
|
|
2931
|
-
store.set(key, result);
|
|
2932
|
-
return result;
|
|
2933
2971
|
};
|
|
2934
2972
|
}
|
|
2935
2973
|
});
|