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