create-jen-app 1.2.2 → 1.2.4
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/README.md +3 -1
- package/dist/colors.js +0 -17
- package/dist/create.js +5 -17
- package/dist/generator.js +14 -31
- package/package.json +2 -2
- package/templates/ssr-isr/README.md +77 -0
- package/templates/ssr-isr/build.js +118 -0
- package/templates/ssr-isr/jen.config.ts +109 -0
- package/templates/ssr-isr/jenjs.d.ts +22 -0
- package/templates/ssr-isr/lib/api/(hello).d.ts +7 -0
- package/templates/ssr-isr/lib/api/(hello).js +9 -0
- package/templates/ssr-isr/lib/auth/cookie-utils.d.ts +33 -0
- package/templates/ssr-isr/lib/auth/cookie-utils.js +79 -0
- package/templates/ssr-isr/lib/auth/index.js +2 -0
- package/templates/ssr-isr/lib/auth/jwt.d.ts +30 -0
- package/templates/ssr-isr/lib/auth/jwt.js +57 -0
- package/templates/ssr-isr/lib/auth/session.d.ts +44 -0
- package/templates/ssr-isr/lib/auth/session.js +92 -0
- package/templates/ssr-isr/lib/build/asset-hashing.d.ts +10 -0
- package/templates/ssr-isr/lib/build/asset-hashing.js +25 -0
- package/templates/ssr-isr/lib/build/asset-manifest.d.ts +11 -0
- package/templates/ssr-isr/lib/build/asset-manifest.js +21 -0
- package/templates/ssr-isr/lib/build/build.d.ts +24 -0
- package/templates/ssr-isr/lib/build/build.js +141 -0
- package/templates/{static → ssr-isr}/lib/build/island-hydration.d.ts +8 -5
- package/templates/ssr-isr/lib/build/island-hydration.js +44 -0
- package/templates/ssr-isr/lib/build/minifier.d.ts +20 -0
- package/templates/ssr-isr/lib/build/minifier.js +46 -0
- package/templates/ssr-isr/lib/build/page-renderer.d.ts +17 -0
- package/templates/ssr-isr/lib/build/page-renderer.js +28 -0
- package/templates/ssr-isr/lib/build/production-build.d.ts +10 -0
- package/templates/ssr-isr/lib/build/production-build.js +13 -0
- package/templates/ssr-isr/lib/build/ssg-pipeline.d.ts +15 -0
- package/templates/ssr-isr/lib/build/ssg-pipeline.js +113 -0
- package/templates/{static → ssr-isr}/lib/build-tools/build-site.d.ts +3 -3
- package/templates/ssr-isr/lib/build-tools/build-site.js +36 -0
- package/templates/ssr-isr/lib/cache/index.d.ts +10 -0
- package/templates/ssr-isr/lib/cache/index.js +10 -0
- package/templates/ssr-isr/lib/cache/memory.d.ts +33 -0
- package/templates/ssr-isr/lib/cache/memory.js +40 -0
- package/templates/ssr-isr/lib/cache/redis.d.ts +45 -0
- package/templates/ssr-isr/lib/cache/redis.js +61 -0
- package/templates/ssr-isr/lib/cli/banner.d.ts +5 -0
- package/templates/ssr-isr/lib/cli/banner.js +28 -0
- package/templates/ssr-isr/lib/cli/templates/ssg/jen.config.js +32 -0
- package/templates/ssr-isr/lib/cli/templates/ssg/site/index.js +9 -0
- package/templates/ssr-isr/lib/cli/templates/ssr/jen.config.js +32 -0
- package/templates/ssr-isr/lib/cli/templates/ssr/site/index.js +9 -0
- package/templates/ssr-isr/lib/compilers/esbuild-plugins.js +111 -0
- package/templates/ssr-isr/lib/compilers/svelte.d.ts +18 -0
- package/templates/ssr-isr/lib/compilers/svelte.js +44 -0
- package/templates/ssr-isr/lib/compilers/vue.d.ts +15 -0
- package/templates/ssr-isr/lib/compilers/vue.js +90 -0
- package/templates/ssr-isr/lib/core/config.d.ts +220 -0
- package/templates/ssr-isr/lib/core/http.d.ts +56 -0
- package/templates/ssr-isr/lib/core/http.js +71 -0
- package/templates/ssr-isr/lib/core/middleware-hooks.d.ts +219 -0
- package/templates/ssr-isr/lib/core/middleware-hooks.js +97 -0
- package/templates/ssr-isr/lib/core/paths.d.ts +44 -0
- package/templates/ssr-isr/lib/core/paths.js +39 -0
- package/templates/ssr-isr/lib/core/routes/match.d.ts +54 -0
- package/templates/ssr-isr/lib/core/routes/match.js +47 -0
- package/templates/ssr-isr/lib/core/routes/scan.d.ts +53 -0
- package/templates/ssr-isr/lib/core/routes/scan.js +190 -0
- package/templates/ssr-isr/lib/core/types.d.ts +153 -0
- package/templates/ssr-isr/lib/core/types.js +1 -0
- package/templates/ssr-isr/lib/css/compiler.d.ts +23 -0
- package/templates/ssr-isr/lib/css/compiler.js +74 -0
- package/templates/ssr-isr/lib/db/connector.d.ts +30 -0
- package/templates/ssr-isr/lib/db/connector.js +42 -0
- package/templates/ssr-isr/lib/db/drivers/jdb.d.ts +17 -0
- package/templates/ssr-isr/lib/db/drivers/jdb.js +44 -0
- package/templates/ssr-isr/lib/db/drivers/sql.d.ts +22 -0
- package/templates/ssr-isr/lib/db/drivers/sql.js +182 -0
- package/templates/ssr-isr/lib/db/index.d.ts +27 -0
- package/templates/ssr-isr/lib/db/index.js +48 -0
- package/templates/ssr-isr/lib/db/types.d.ts +33 -0
- package/templates/ssr-isr/lib/db/types.js +1 -0
- package/templates/ssr-isr/lib/graphql/index.d.ts +48 -0
- package/templates/ssr-isr/lib/graphql/index.js +52 -0
- package/templates/ssr-isr/lib/graphql/resolvers.d.ts +57 -0
- package/templates/ssr-isr/lib/graphql/resolvers.js +25 -0
- package/templates/ssr-isr/lib/graphql/schema.d.ts +35 -0
- package/templates/ssr-isr/lib/graphql/schema.js +35 -0
- package/templates/ssr-isr/lib/i18n/en.json +4 -0
- package/templates/ssr-isr/lib/i18n/es.json +4 -0
- package/templates/ssr-isr/lib/i18n/index.d.ts +8 -0
- package/templates/ssr-isr/lib/i18n/index.js +15 -0
- package/templates/ssr-isr/lib/import/jen-import.d.ts +56 -0
- package/templates/ssr-isr/lib/import/jen-import.js +161 -0
- package/templates/{static → ssr-isr}/lib/index.d.ts +42 -11
- package/templates/ssr-isr/lib/index.js +116 -0
- package/templates/ssr-isr/lib/jdb/engine.d.ts +38 -0
- package/templates/ssr-isr/lib/jdb/engine.js +275 -0
- package/templates/ssr-isr/lib/jdb/index.d.ts +34 -0
- package/templates/ssr-isr/lib/jdb/index.js +34 -0
- package/templates/ssr-isr/lib/jdb/types.d.ts +228 -0
- package/templates/ssr-isr/lib/jdb/types.js +1 -0
- package/templates/ssr-isr/lib/jdb/utils.d.ts +66 -0
- package/templates/ssr-isr/lib/jdb/utils.js +176 -0
- package/templates/ssr-isr/lib/middleware/builtins/body-parser.d.ts +16 -0
- package/templates/ssr-isr/lib/middleware/builtins/body-parser.js +56 -0
- package/templates/ssr-isr/lib/middleware/builtins/cors.d.ts +15 -0
- package/templates/ssr-isr/lib/middleware/builtins/cors.js +54 -0
- package/templates/ssr-isr/lib/middleware/builtins/logger.d.ts +19 -0
- package/templates/ssr-isr/lib/middleware/builtins/logger.js +34 -0
- package/templates/ssr-isr/lib/middleware/builtins/rate-limit.d.ts +22 -0
- package/templates/ssr-isr/lib/middleware/builtins/rate-limit.js +79 -0
- package/templates/ssr-isr/lib/middleware/builtins/request-id.d.ts +19 -0
- package/templates/ssr-isr/lib/middleware/builtins/request-id.js +29 -0
- package/templates/ssr-isr/lib/middleware/builtins/security-headers.d.ts +19 -0
- package/templates/ssr-isr/lib/middleware/builtins/security-headers.js +53 -0
- package/templates/ssr-isr/lib/middleware/context.d.ts +105 -0
- package/templates/ssr-isr/lib/middleware/context.js +124 -0
- package/templates/ssr-isr/lib/middleware/decorators.d.ts +19 -0
- package/templates/ssr-isr/lib/middleware/decorators.js +93 -0
- package/templates/ssr-isr/lib/middleware/errors/handler.js +46 -0
- package/templates/ssr-isr/lib/middleware/errors/http-error.d.ts +5 -0
- package/templates/ssr-isr/lib/middleware/errors/http-error.js +10 -0
- package/templates/ssr-isr/lib/middleware/kernel.d.ts +69 -0
- package/templates/ssr-isr/lib/middleware/kernel.js +85 -0
- package/templates/ssr-isr/lib/middleware/pipeline.d.ts +53 -0
- package/templates/ssr-isr/lib/middleware/pipeline.js +148 -0
- package/templates/ssr-isr/lib/middleware/registry.d.ts +69 -0
- package/templates/ssr-isr/lib/middleware/registry.js +85 -0
- package/templates/ssr-isr/lib/middleware/response.d.ts +75 -0
- package/templates/ssr-isr/lib/middleware/response.js +107 -0
- package/templates/ssr-isr/lib/middleware/types.d.ts +1 -0
- package/templates/ssr-isr/lib/middleware/types.js +1 -0
- package/templates/ssr-isr/lib/middleware/utils/matcher.js +13 -0
- package/templates/ssr-isr/lib/native/bundle.d.ts +24 -0
- package/templates/ssr-isr/lib/native/bundle.js +22 -0
- package/templates/ssr-isr/lib/native/dev-server.d.ts +13 -0
- package/templates/ssr-isr/lib/native/dev-server.js +23 -0
- package/templates/{static → ssr-isr}/lib/native/index.d.ts +20 -20
- package/templates/ssr-isr/lib/native/index.js +33 -0
- package/templates/ssr-isr/lib/native/optimizer.d.ts +21 -0
- package/templates/ssr-isr/lib/native/optimizer.js +20 -0
- package/templates/ssr-isr/lib/native/style-compiler.d.ts +19 -0
- package/templates/ssr-isr/lib/native/style-compiler.js +19 -0
- package/templates/ssr-isr/lib/plugin/loader.d.ts +10 -0
- package/templates/ssr-isr/lib/plugin/loader.js +36 -0
- package/templates/ssr-isr/lib/runtime/client-runtime.d.ts +16 -0
- package/templates/ssr-isr/lib/runtime/client-runtime.js +25 -0
- package/templates/ssr-isr/lib/runtime/hmr.d.ts +23 -0
- package/templates/ssr-isr/lib/runtime/hmr.js +59 -0
- package/templates/ssr-isr/lib/runtime/hydrate.d.ts +18 -0
- package/templates/ssr-isr/lib/runtime/hydrate.js +55 -0
- package/templates/ssr-isr/lib/runtime/island-hydration-client.d.ts +8 -0
- package/templates/ssr-isr/lib/runtime/island-hydration-client.js +146 -0
- package/templates/ssr-isr/lib/runtime/islands.d.ts +101 -0
- package/templates/ssr-isr/lib/runtime/islands.js +110 -0
- package/templates/ssr-isr/lib/runtime/render.d.ts +40 -0
- package/templates/ssr-isr/lib/runtime/render.js +244 -0
- package/templates/ssr-isr/lib/server/api-routes.d.ts +112 -0
- package/templates/ssr-isr/lib/server/api-routes.js +237 -0
- package/templates/{static → ssr-isr}/lib/server/api.d.ts +3 -3
- package/templates/ssr-isr/lib/server/api.js +108 -0
- package/templates/ssr-isr/lib/server/app.d.ts +44 -0
- package/templates/ssr-isr/lib/server/app.js +438 -0
- package/templates/ssr-isr/lib/server/runtimeServe.d.ts +60 -0
- package/templates/ssr-isr/lib/server/runtimeServe.js +169 -0
- package/templates/ssr-isr/lib/server/ssr.d.ts +161 -0
- package/templates/ssr-isr/lib/server/ssr.js +202 -0
- package/templates/ssr-isr/lib/shared/log.d.ts +49 -0
- package/templates/ssr-isr/lib/shared/log.js +64 -0
- package/templates/ssr-isr/package.json +23 -0
- package/templates/ssr-isr/server.js +128 -0
- package/templates/ssr-isr/site/pages/(index).tsx +11 -0
- package/templates/ssr-isr/site/styles/global.scss +37 -0
- package/templates/ssr-isr/tsconfig.json +39 -0
- package/templates/static/README.md +63 -67
- package/templates/static/build.js +31 -21
- package/templates/static/jen.config.ts +0 -20
- package/templates/static/jenjs.d.ts +0 -18
- package/templates/static/lib/api/(hello).js +7 -24
- package/templates/static/lib/api/examples/files/[...slug].js +22 -0
- package/templates/static/lib/api/examples/hello.js +11 -0
- package/templates/static/lib/api/examples/posts/[id].js +37 -0
- package/templates/static/lib/api/examples/posts.js +37 -0
- package/templates/static/lib/api/examples/search.js +23 -0
- package/templates/static/lib/api/index.js +41 -0
- package/templates/static/lib/api/loader.js +234 -0
- package/templates/static/lib/api/router.js +259 -0
- package/templates/static/lib/assets/types.js +1 -0
- package/templates/static/lib/auth/cookie-utils.js +69 -85
- package/templates/static/lib/auth/index.js +0 -17
- package/templates/static/lib/auth/jwt.js +48 -21
- package/templates/static/lib/auth/session.js +79 -98
- package/templates/static/lib/build/asset-hashing.js +47 -39
- package/templates/static/lib/build/asset-manifest.js +18 -35
- package/templates/static/lib/build/build.js +277 -95
- package/templates/static/lib/build/bundle-analyzer-ui.js +417 -0
- package/templates/static/lib/build/bundle-analyzer.js +945 -0
- package/templates/static/lib/build/code-splitter.js +194 -0
- package/templates/static/lib/build/feature-analyzer.js +190 -0
- package/templates/static/lib/build/feature-gate.js +257 -0
- package/templates/static/lib/build/island-hydration.js +17 -35
- package/templates/static/lib/build/lazy-loader.js +322 -0
- package/templates/static/lib/build/minifier.js +42 -61
- package/templates/static/lib/build/page-renderer.js +25 -42
- package/templates/static/lib/build/production-build.js +11 -28
- package/templates/static/lib/build/rust-hashing.js +71 -0
- package/templates/static/lib/build/script-optimizer.js +285 -0
- package/templates/static/lib/build/ssg-pipeline.js +107 -113
- package/templates/static/lib/build/vercel-output.js +298 -0
- package/templates/static/lib/build-tools/build-site.js +27 -47
- package/templates/static/lib/cache/index.js +6 -15
- package/templates/static/lib/cache/memory.js +37 -28
- package/templates/static/lib/cache/redis.js +56 -28
- package/templates/static/lib/cli/banner.js +18 -31
- package/templates/static/lib/cli/templates/ssg/jen.config.js +29 -46
- package/templates/static/lib/cli/templates/ssg/site/index.js +6 -1
- package/templates/static/lib/cli/templates/ssr/jen.config.js +29 -46
- package/templates/static/lib/cli/templates/ssr/site/index.js +6 -1
- package/templates/static/lib/client/Image.js +42 -0
- package/templates/static/lib/client/Link.js +190 -0
- package/templates/static/lib/client/PWA.js +46 -0
- package/templates/static/lib/client/Seo.js +97 -0
- package/templates/static/lib/client/index.js +9 -0
- package/templates/static/lib/client/useNavigation.js +25 -0
- package/templates/static/lib/client/useRouter.js +64 -0
- package/templates/static/lib/client-routing/Link.js +17 -0
- package/templates/static/lib/client-routing/index.js +19 -0
- package/templates/static/lib/client-routing/router.js +151 -0
- package/templates/static/lib/client-routing/signal.js +147 -0
- package/templates/static/lib/compilers/esbuild-plugins.js +96 -115
- package/templates/static/lib/compilers/svelte.js +31 -48
- package/templates/static/lib/compilers/vue.js +76 -85
- package/templates/static/lib/core/config.js +0 -17
- package/templates/static/lib/core/feature-guard.js +136 -0
- package/templates/static/lib/core/features.js +99 -0
- package/templates/static/lib/core/http.js +65 -36
- package/templates/static/lib/core/layouts/index.js +10 -0
- package/templates/static/lib/core/layouts/render.js +158 -0
- package/templates/static/lib/core/layouts/scan.js +112 -0
- package/templates/static/lib/core/layouts/types.js +1 -0
- package/templates/static/lib/core/lifecycle.js +129 -0
- package/templates/static/lib/core/loader-schema.js +81 -0
- package/templates/static/lib/core/middleware-hooks.js +86 -58
- package/templates/static/lib/core/paths.js +31 -16
- package/templates/static/lib/core/routes/advanced.js +114 -0
- package/templates/static/lib/core/routes/handlers.js +181 -0
- package/templates/static/lib/core/routes/match.js +129 -24
- package/templates/static/lib/core/routes/orchestrator.js +171 -0
- package/templates/static/lib/core/routes/rendering-config.js +131 -0
- package/templates/static/lib/core/routes/scan.js +174 -132
- package/templates/static/lib/core/types.js +0 -17
- package/templates/static/lib/css/compiler.js +63 -76
- package/templates/static/lib/data-fetching/cache.js +223 -0
- package/templates/static/lib/data-fetching/client.js +202 -0
- package/templates/static/lib/data-fetching/feature-guard.js +29 -0
- package/templates/static/lib/data-fetching/graphql.js +265 -0
- package/templates/static/lib/data-fetching/index.js +57 -0
- package/templates/static/lib/data-fetching/rest.js +256 -0
- package/templates/static/lib/data-fetching/server.js +182 -0
- package/templates/static/lib/data-fetching/types.js +5 -0
- package/templates/static/lib/db/connector.js +37 -28
- package/templates/static/lib/db/drivers/jdb.js +41 -56
- package/templates/static/lib/db/drivers/sql.js +152 -152
- package/templates/static/lib/db/index.js +42 -59
- package/templates/static/lib/db/types.js +0 -17
- package/templates/static/lib/devtools/component-tree.js +106 -0
- package/templates/static/lib/devtools/devtools.js +638 -0
- package/templates/static/lib/devtools/event-bus.js +29 -0
- package/templates/static/lib/devtools/event-logger.js +67 -0
- package/templates/static/lib/devtools/index.js +9 -0
- package/templates/static/lib/devtools/integration.js +149 -0
- package/templates/static/lib/devtools/performance.js +84 -0
- package/templates/static/lib/devtools/persistence.js +57 -0
- package/templates/static/lib/devtools/plugins.js +97 -0
- package/templates/static/lib/devtools/search.js +89 -0
- package/templates/static/lib/devtools/ui.js +769 -0
- package/templates/static/lib/features/api/handler.js +10 -0
- package/templates/static/lib/features/api/index.js +5 -0
- package/templates/static/lib/features/api/types.js +4 -0
- package/templates/static/lib/features/middleware/compiled.js +7 -0
- package/templates/static/lib/features/middleware/index.js +5 -0
- package/templates/static/lib/features/middleware/types.js +4 -0
- package/templates/static/lib/fonts/index.js +46 -0
- package/templates/static/lib/fonts/inject.js +125 -0
- package/templates/static/lib/fonts/loader.js +196 -0
- package/templates/static/lib/fonts/types.js +1 -0
- package/templates/static/lib/graphql/index.js +46 -16
- package/templates/static/lib/graphql/resolvers.js +42 -19
- package/templates/static/lib/graphql/schema.js +30 -15
- package/templates/static/lib/i18n/en.json +2 -2
- package/templates/static/lib/i18n/es.json +2 -2
- package/templates/static/lib/i18n/index.js +17 -29
- package/templates/static/lib/import/jen-import.js +130 -97
- package/templates/static/lib/index.js +82 -115
- package/templates/static/lib/jdb/engine.js +259 -160
- package/templates/static/lib/jdb/index.js +28 -13
- package/templates/static/lib/jdb/types.js +0 -17
- package/templates/static/lib/jdb/utils.js +159 -124
- package/templates/static/lib/middleware/builtins/cors.js +55 -64
- package/templates/static/lib/middleware/context.js +120 -46
- package/templates/static/lib/middleware/kernel.js +186 -31
- package/templates/static/lib/middleware/pipeline.js +140 -59
- package/templates/static/lib/middleware/registry.js +80 -36
- package/templates/static/lib/middleware/response.js +101 -54
- package/templates/static/lib/plugin/examples/analytics-plugin.js +183 -0
- package/templates/static/lib/plugin/examples/cdn-upload-plugin.js +94 -0
- package/templates/static/lib/plugin/loader.js +25 -48
- package/templates/static/lib/plugin/plugin-manager.js +177 -0
- package/templates/static/lib/plugin/types.js +28 -0
- package/templates/static/lib/runtime/client-runtime.js +19 -22
- package/templates/static/lib/runtime/hmr.js +23 -18
- package/templates/static/lib/runtime/hydrate.js +47 -37
- package/templates/static/lib/runtime/island-hydration-client.js +122 -108
- package/templates/static/lib/runtime/islands.js +92 -71
- package/templates/static/lib/runtime/render.js +385 -149
- package/templates/static/lib/security/security-config.js +60 -0
- package/templates/static/lib/security/security-middleware.js +229 -0
- package/templates/static/lib/server/api-routes.js +339 -171
- package/templates/static/lib/server/api.js +93 -109
- package/templates/static/lib/server/app.js +660 -270
- package/templates/static/lib/server/isr.js +365 -0
- package/templates/static/lib/server/runtimeServe.js +157 -89
- package/templates/static/lib/server/ssr.js +295 -0
- package/templates/static/lib/server-actions/handler.js +180 -0
- package/templates/static/lib/server-actions/index.js +19 -0
- package/templates/static/lib/server-actions/middleware.js +146 -0
- package/templates/static/lib/server-actions/scan.js +152 -0
- package/templates/static/lib/server-actions/types.js +1 -0
- package/templates/static/lib/server-actions/validators.js +156 -0
- package/templates/static/lib/shared/log.js +74 -25
- package/templates/static/lib/telemetry/api/rate-limiter.js +32 -0
- package/templates/static/lib/telemetry/api/validator.js +67 -0
- package/templates/static/lib/telemetry/client.js +121 -0
- package/templates/static/lib/telemetry/tests/rate-limiter.test.js +46 -0
- package/templates/static/lib/telemetry/tests/validator.test.js +62 -0
- package/templates/static/lib/vendor/glob/glob.js +4766 -0
- package/templates/static/lib/vendor/preact/preact.module.js +797 -0
- package/templates/static/lib/vendor/sass/sass.node.mjs +212 -0
- package/templates/static/package.json +4 -0
- package/templates/static/server.js +23 -25
- package/templates/static/site/(home).tsx +12 -12
- package/templates/static/site/styles/global.scss +89 -78
- package/templates/static/tsconfig.json +43 -39
- package/templates/static/.esbuild/jen.config.js +0 -1
- package/templates/static/lib/api/(hello).d.ts +0 -7
- package/templates/static/lib/auth/cookie-utils.d.ts +0 -24
- package/templates/static/lib/auth/jwt.d.ts +0 -2
- package/templates/static/lib/auth/session.d.ts +0 -44
- package/templates/static/lib/build/asset-hashing.d.ts +0 -10
- package/templates/static/lib/build/asset-manifest.d.ts +0 -11
- package/templates/static/lib/build/build.d.ts +0 -4
- package/templates/static/lib/build/minifier.d.ts +0 -20
- package/templates/static/lib/build/page-renderer.d.ts +0 -17
- package/templates/static/lib/build/production-build.d.ts +0 -10
- package/templates/static/lib/build/ssg-pipeline.d.ts +0 -15
- package/templates/static/lib/cache/index.d.ts +0 -2
- package/templates/static/lib/cache/memory.d.ts +0 -6
- package/templates/static/lib/cache/redis.d.ts +0 -6
- package/templates/static/lib/cli/banner.d.ts +0 -1
- package/templates/static/lib/compilers/svelte.d.ts +0 -18
- package/templates/static/lib/compilers/vue.d.ts +0 -15
- package/templates/static/lib/core/config.d.ts +0 -53
- package/templates/static/lib/core/http.d.ts +0 -3
- package/templates/static/lib/core/middleware-hooks.d.ts +0 -46
- package/templates/static/lib/core/paths.d.ts +0 -6
- package/templates/static/lib/core/routes/match.d.ts +0 -6
- package/templates/static/lib/core/routes/scan.d.ts +0 -9
- package/templates/static/lib/core/types.d.ts +0 -18
- package/templates/static/lib/css/compiler.d.ts +0 -20
- package/templates/static/lib/db/connector.d.ts +0 -4
- package/templates/static/lib/db/drivers/jdb.d.ts +0 -13
- package/templates/static/lib/db/drivers/sql.d.ts +0 -18
- package/templates/static/lib/db/index.d.ts +0 -19
- package/templates/static/lib/db/types.d.ts +0 -29
- package/templates/static/lib/graphql/index.d.ts +0 -1
- package/templates/static/lib/graphql/resolvers.d.ts +0 -17
- package/templates/static/lib/graphql/schema.d.ts +0 -1
- package/templates/static/lib/i18n/index.d.ts +0 -8
- package/templates/static/lib/import/jen-import.d.ts +0 -27
- package/templates/static/lib/jdb/engine.d.ts +0 -9
- package/templates/static/lib/jdb/index.d.ts +0 -2
- package/templates/static/lib/jdb/types.d.ts +0 -46
- package/templates/static/lib/jdb/utils.d.ts +0 -6
- package/templates/static/lib/middleware/builtins/body-parser.d.ts +0 -1
- package/templates/static/lib/middleware/builtins/body-parser.js +0 -55
- package/templates/static/lib/middleware/builtins/cors.d.ts +0 -13
- package/templates/static/lib/middleware/builtins/logger.d.ts +0 -1
- package/templates/static/lib/middleware/builtins/logger.js +0 -33
- package/templates/static/lib/middleware/builtins/rate-limit.d.ts +0 -5
- package/templates/static/lib/middleware/builtins/rate-limit.js +0 -76
- package/templates/static/lib/middleware/builtins/request-id.d.ts +0 -1
- package/templates/static/lib/middleware/builtins/request-id.js +0 -25
- package/templates/static/lib/middleware/builtins/security-headers.d.ts +0 -1
- package/templates/static/lib/middleware/builtins/security-headers.js +0 -39
- package/templates/static/lib/middleware/context.d.ts +0 -18
- package/templates/static/lib/middleware/decorators.d.ts +0 -2
- package/templates/static/lib/middleware/decorators.js +0 -61
- package/templates/static/lib/middleware/errors/handler.js +0 -65
- package/templates/static/lib/middleware/errors/http-error.d.ts +0 -5
- package/templates/static/lib/middleware/errors/http-error.js +0 -27
- package/templates/static/lib/middleware/kernel.d.ts +0 -6
- package/templates/static/lib/middleware/pipeline.d.ts +0 -4
- package/templates/static/lib/middleware/registry.d.ts +0 -10
- package/templates/static/lib/middleware/response.d.ts +0 -13
- package/templates/static/lib/middleware/types.js +0 -18
- package/templates/static/lib/middleware/utils/matcher.js +0 -31
- package/templates/static/lib/native/bundle.d.ts +0 -19
- package/templates/static/lib/native/bundle.js +0 -39
- package/templates/static/lib/native/dev-server.d.ts +0 -6
- package/templates/static/lib/native/dev-server.js +0 -38
- package/templates/static/lib/native/index.js +0 -48
- package/templates/static/lib/native/optimizer.d.ts +0 -17
- package/templates/static/lib/native/optimizer.js +0 -37
- package/templates/static/lib/native/style-compiler.d.ts +0 -10
- package/templates/static/lib/native/style-compiler.js +0 -36
- package/templates/static/lib/plugin/loader.d.ts +0 -8
- package/templates/static/lib/runtime/client-runtime.d.ts +0 -1
- package/templates/static/lib/runtime/hmr.d.ts +0 -1
- package/templates/static/lib/runtime/hydrate.d.ts +0 -1
- package/templates/static/lib/runtime/island-hydration-client.d.ts +0 -5
- package/templates/static/lib/runtime/islands.d.ts +0 -46
- package/templates/static/lib/runtime/render.d.ts +0 -13
- package/templates/static/lib/server/api-routes.d.ts +0 -44
- package/templates/static/lib/server/app.d.ts +0 -10
- package/templates/static/lib/server/runtimeServe.d.ts +0 -4
- package/templates/static/lib/shared/log.d.ts +0 -5
- package/templates/static/node_modules/.bin/esbuild +0 -16
- package/templates/static/node_modules/.bin/esbuild.cmd +0 -17
- package/templates/static/node_modules/.bin/esbuild.ps1 +0 -28
- package/templates/static/node_modules/.bin/tsc +0 -16
- package/templates/static/node_modules/.bin/tsc.cmd +0 -17
- package/templates/static/node_modules/.bin/tsc.ps1 +0 -28
- package/templates/static/node_modules/.bin/tsserver +0 -16
- package/templates/static/node_modules/.bin/tsserver.cmd +0 -17
- package/templates/static/node_modules/.bin/tsserver.ps1 +0 -28
- package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_templates_static_site_(home).tsx.mjs +0 -14
- package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_yo_site_(home).tsx.mjs +0 -11
- package/templates/static/node_modules/.package-lock.json +0 -585
- package/templates/static/node_modules/@esbuild/win32-x64/README.md +0 -3
- package/templates/static/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
- package/templates/static/node_modules/@esbuild/win32-x64/package.json +0 -20
- package/templates/static/node_modules/@jenjs/master/README.md +0 -24
- package/templates/static/node_modules/@jenjs/master/index.js +0 -3655
- package/templates/static/node_modules/@jenjs/master/package.json +0 -36
- package/templates/static/node_modules/@polka/url/build.js +0 -49
- package/templates/static/node_modules/@polka/url/build.mjs +0 -47
- package/templates/static/node_modules/@polka/url/index.d.ts +0 -11
- package/templates/static/node_modules/@polka/url/package.json +0 -30
- package/templates/static/node_modules/@polka/url/readme.md +0 -68
- package/templates/static/node_modules/@types/node/LICENSE +0 -21
- package/templates/static/node_modules/@types/node/README.md +0 -15
- package/templates/static/node_modules/@types/node/assert/strict.d.ts +0 -111
- package/templates/static/node_modules/@types/node/assert.d.ts +0 -1078
- package/templates/static/node_modules/@types/node/async_hooks.d.ts +0 -603
- package/templates/static/node_modules/@types/node/buffer.buffer.d.ts +0 -472
- package/templates/static/node_modules/@types/node/buffer.d.ts +0 -1934
- package/templates/static/node_modules/@types/node/child_process.d.ts +0 -1476
- package/templates/static/node_modules/@types/node/cluster.d.ts +0 -578
- package/templates/static/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
- package/templates/static/node_modules/@types/node/compatibility/index.d.ts +0 -9
- package/templates/static/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
- package/templates/static/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
- package/templates/static/node_modules/@types/node/console.d.ts +0 -452
- package/templates/static/node_modules/@types/node/constants.d.ts +0 -21
- package/templates/static/node_modules/@types/node/crypto.d.ts +0 -4545
- package/templates/static/node_modules/@types/node/dgram.d.ts +0 -600
- package/templates/static/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
- package/templates/static/node_modules/@types/node/dns/promises.d.ts +0 -503
- package/templates/static/node_modules/@types/node/dns.d.ts +0 -923
- package/templates/static/node_modules/@types/node/domain.d.ts +0 -170
- package/templates/static/node_modules/@types/node/events.d.ts +0 -976
- package/templates/static/node_modules/@types/node/fs/promises.d.ts +0 -1295
- package/templates/static/node_modules/@types/node/fs.d.ts +0 -4461
- package/templates/static/node_modules/@types/node/globals.d.ts +0 -172
- package/templates/static/node_modules/@types/node/globals.typedarray.d.ts +0 -38
- package/templates/static/node_modules/@types/node/http.d.ts +0 -2089
- package/templates/static/node_modules/@types/node/http2.d.ts +0 -2644
- package/templates/static/node_modules/@types/node/https.d.ts +0 -579
- package/templates/static/node_modules/@types/node/index.d.ts +0 -97
- package/templates/static/node_modules/@types/node/inspector.d.ts +0 -253
- package/templates/static/node_modules/@types/node/inspector.generated.d.ts +0 -4052
- package/templates/static/node_modules/@types/node/module.d.ts +0 -891
- package/templates/static/node_modules/@types/node/net.d.ts +0 -1057
- package/templates/static/node_modules/@types/node/os.d.ts +0 -506
- package/templates/static/node_modules/@types/node/package.json +0 -145
- package/templates/static/node_modules/@types/node/path.d.ts +0 -200
- package/templates/static/node_modules/@types/node/perf_hooks.d.ts +0 -968
- package/templates/static/node_modules/@types/node/process.d.ts +0 -2089
- package/templates/static/node_modules/@types/node/punycode.d.ts +0 -117
- package/templates/static/node_modules/@types/node/querystring.d.ts +0 -152
- package/templates/static/node_modules/@types/node/readline/promises.d.ts +0 -161
- package/templates/static/node_modules/@types/node/readline.d.ts +0 -594
- package/templates/static/node_modules/@types/node/repl.d.ts +0 -428
- package/templates/static/node_modules/@types/node/sea.d.ts +0 -153
- package/templates/static/node_modules/@types/node/sqlite.d.ts +0 -721
- package/templates/static/node_modules/@types/node/stream/consumers.d.ts +0 -38
- package/templates/static/node_modules/@types/node/stream/promises.d.ts +0 -90
- package/templates/static/node_modules/@types/node/stream/web.d.ts +0 -622
- package/templates/static/node_modules/@types/node/stream.d.ts +0 -1664
- package/templates/static/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/templates/static/node_modules/@types/node/test.d.ts +0 -2163
- package/templates/static/node_modules/@types/node/timers/promises.d.ts +0 -108
- package/templates/static/node_modules/@types/node/timers.d.ts +0 -287
- package/templates/static/node_modules/@types/node/tls.d.ts +0 -1319
- package/templates/static/node_modules/@types/node/trace_events.d.ts +0 -197
- package/templates/static/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
- package/templates/static/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
- package/templates/static/node_modules/@types/node/ts5.6/index.d.ts +0 -97
- package/templates/static/node_modules/@types/node/tty.d.ts +0 -208
- package/templates/static/node_modules/@types/node/url.d.ts +0 -984
- package/templates/static/node_modules/@types/node/util.d.ts +0 -2606
- package/templates/static/node_modules/@types/node/v8.d.ts +0 -920
- package/templates/static/node_modules/@types/node/vm.d.ts +0 -1000
- package/templates/static/node_modules/@types/node/wasi.d.ts +0 -181
- package/templates/static/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
- package/templates/static/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
- package/templates/static/node_modules/@types/node/web-globals/events.d.ts +0 -97
- package/templates/static/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
- package/templates/static/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
- package/templates/static/node_modules/@types/node/web-globals/storage.d.ts +0 -24
- package/templates/static/node_modules/@types/node/worker_threads.d.ts +0 -784
- package/templates/static/node_modules/@types/node/zlib.d.ts +0 -683
- package/templates/static/node_modules/esbuild/LICENSE.md +0 -21
- package/templates/static/node_modules/esbuild/README.md +0 -3
- package/templates/static/node_modules/esbuild/bin/esbuild +0 -223
- package/templates/static/node_modules/esbuild/install.js +0 -289
- package/templates/static/node_modules/esbuild/lib/main.d.ts +0 -716
- package/templates/static/node_modules/esbuild/lib/main.js +0 -2242
- package/templates/static/node_modules/esbuild/package.json +0 -49
- package/templates/static/node_modules/mrmime/index.d.ts +0 -2
- package/templates/static/node_modules/mrmime/index.js +0 -449
- package/templates/static/node_modules/mrmime/index.mjs +0 -448
- package/templates/static/node_modules/mrmime/license +0 -21
- package/templates/static/node_modules/mrmime/package.json +0 -44
- package/templates/static/node_modules/mrmime/readme.md +0 -130
- package/templates/static/node_modules/preact/README.md +0 -185
- package/templates/static/node_modules/preact/compat/client.d.ts +0 -13
- package/templates/static/node_modules/preact/compat/client.js +0 -21
- package/templates/static/node_modules/preact/compat/client.mjs +0 -24
- package/templates/static/node_modules/preact/compat/dist/compat.js +0 -2
- package/templates/static/node_modules/preact/compat/dist/compat.js.map +0 -1
- package/templates/static/node_modules/preact/compat/dist/compat.mjs +0 -2
- package/templates/static/node_modules/preact/compat/dist/compat.module.js +0 -2
- package/templates/static/node_modules/preact/compat/dist/compat.module.js.map +0 -1
- package/templates/static/node_modules/preact/compat/dist/compat.umd.js +0 -2
- package/templates/static/node_modules/preact/compat/dist/compat.umd.js.map +0 -1
- package/templates/static/node_modules/preact/compat/jsx-dev-runtime.js +0 -3
- package/templates/static/node_modules/preact/compat/jsx-dev-runtime.mjs +0 -3
- package/templates/static/node_modules/preact/compat/jsx-runtime.js +0 -3
- package/templates/static/node_modules/preact/compat/jsx-runtime.mjs +0 -3
- package/templates/static/node_modules/preact/compat/package.json +0 -55
- package/templates/static/node_modules/preact/compat/scheduler.js +0 -15
- package/templates/static/node_modules/preact/compat/scheduler.mjs +0 -23
- package/templates/static/node_modules/preact/compat/server.browser.js +0 -11
- package/templates/static/node_modules/preact/compat/server.js +0 -36
- package/templates/static/node_modules/preact/compat/server.mjs +0 -17
- package/templates/static/node_modules/preact/compat/src/Children.js +0 -21
- package/templates/static/node_modules/preact/compat/src/PureComponent.js +0 -16
- package/templates/static/node_modules/preact/compat/src/forwardRef.js +0 -44
- package/templates/static/node_modules/preact/compat/src/hooks.js +0 -70
- package/templates/static/node_modules/preact/compat/src/index.d.ts +0 -351
- package/templates/static/node_modules/preact/compat/src/index.js +0 -238
- package/templates/static/node_modules/preact/compat/src/internal.d.ts +0 -48
- package/templates/static/node_modules/preact/compat/src/memo.js +0 -35
- package/templates/static/node_modules/preact/compat/src/portals.js +0 -78
- package/templates/static/node_modules/preact/compat/src/render.js +0 -313
- package/templates/static/node_modules/preact/compat/src/suspense-list.d.ts +0 -16
- package/templates/static/node_modules/preact/compat/src/suspense-list.js +0 -127
- package/templates/static/node_modules/preact/compat/src/suspense.d.ts +0 -19
- package/templates/static/node_modules/preact/compat/src/suspense.js +0 -291
- package/templates/static/node_modules/preact/compat/src/util.js +0 -33
- package/templates/static/node_modules/preact/compat/test-utils.js +0 -1
- package/templates/static/node_modules/preact/compat/test-utils.mjs +0 -1
- package/templates/static/node_modules/preact/debug/dist/debug.js +0 -2
- package/templates/static/node_modules/preact/debug/dist/debug.js.map +0 -1
- package/templates/static/node_modules/preact/debug/dist/debug.mjs +0 -2
- package/templates/static/node_modules/preact/debug/dist/debug.module.js +0 -2
- package/templates/static/node_modules/preact/debug/dist/debug.module.js.map +0 -1
- package/templates/static/node_modules/preact/debug/dist/debug.umd.js +0 -2
- package/templates/static/node_modules/preact/debug/dist/debug.umd.js.map +0 -1
- package/templates/static/node_modules/preact/debug/package.json +0 -27
- package/templates/static/node_modules/preact/debug/src/check-props.js +0 -54
- package/templates/static/node_modules/preact/debug/src/component-stack.js +0 -146
- package/templates/static/node_modules/preact/debug/src/constants.js +0 -3
- package/templates/static/node_modules/preact/debug/src/debug.js +0 -593
- package/templates/static/node_modules/preact/debug/src/index.d.ts +0 -23
- package/templates/static/node_modules/preact/debug/src/index.js +0 -12
- package/templates/static/node_modules/preact/debug/src/internal.d.ts +0 -82
- package/templates/static/node_modules/preact/debug/src/util.js +0 -15
- package/templates/static/node_modules/preact/devtools/dist/devtools.js +0 -2
- package/templates/static/node_modules/preact/devtools/dist/devtools.js.map +0 -1
- package/templates/static/node_modules/preact/devtools/dist/devtools.mjs +0 -2
- package/templates/static/node_modules/preact/devtools/dist/devtools.module.js +0 -2
- package/templates/static/node_modules/preact/devtools/dist/devtools.module.js.map +0 -1
- package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js +0 -2
- package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js.map +0 -1
- package/templates/static/node_modules/preact/devtools/package.json +0 -25
- package/templates/static/node_modules/preact/devtools/src/devtools.js +0 -21
- package/templates/static/node_modules/preact/devtools/src/index.d.ts +0 -8
- package/templates/static/node_modules/preact/devtools/src/index.js +0 -15
- package/templates/static/node_modules/preact/dist/preact.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.min.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.min.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.min.module.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.min.module.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.min.umd.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.min.umd.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.mjs +0 -2
- package/templates/static/node_modules/preact/dist/preact.module.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.module.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.umd.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.umd.js.map +0 -1
- package/templates/static/node_modules/preact/hooks/dist/hooks.js +0 -2
- package/templates/static/node_modules/preact/hooks/dist/hooks.js.map +0 -1
- package/templates/static/node_modules/preact/hooks/dist/hooks.mjs +0 -2
- package/templates/static/node_modules/preact/hooks/dist/hooks.module.js +0 -2
- package/templates/static/node_modules/preact/hooks/dist/hooks.module.js.map +0 -1
- package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js +0 -2
- package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js.map +0 -1
- package/templates/static/node_modules/preact/hooks/package.json +0 -35
- package/templates/static/node_modules/preact/hooks/src/index.d.ts +0 -145
- package/templates/static/node_modules/preact/hooks/src/index.js +0 -555
- package/templates/static/node_modules/preact/hooks/src/internal.d.ts +0 -103
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +0 -2
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +0 -1
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +0 -2
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +0 -2
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +0 -1
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +0 -2
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +0 -1
- package/templates/static/node_modules/preact/jsx-runtime/package.json +0 -28
- package/templates/static/node_modules/preact/jsx-runtime/src/index.d.ts +0 -62
- package/templates/static/node_modules/preact/jsx-runtime/src/index.js +0 -206
- package/templates/static/node_modules/preact/jsx-runtime/src/utils.js +0 -36
- package/templates/static/node_modules/preact/package.json +0 -258
- package/templates/static/node_modules/preact/src/cjs.js +0 -3
- package/templates/static/node_modules/preact/src/clone-element.js +0 -48
- package/templates/static/node_modules/preact/src/component.js +0 -249
- package/templates/static/node_modules/preact/src/constants.js +0 -22
- package/templates/static/node_modules/preact/src/create-context.js +0 -60
- package/templates/static/node_modules/preact/src/create-element.js +0 -97
- package/templates/static/node_modules/preact/src/diff/catch-error.js +0 -46
- package/templates/static/node_modules/preact/src/diff/children.js +0 -451
- package/templates/static/node_modules/preact/src/diff/index.js +0 -684
- package/templates/static/node_modules/preact/src/diff/props.js +0 -173
- package/templates/static/node_modules/preact/src/dom.d.ts +0 -2476
- package/templates/static/node_modules/preact/src/index-5.d.ts +0 -399
- package/templates/static/node_modules/preact/src/index.d.ts +0 -402
- package/templates/static/node_modules/preact/src/index.js +0 -13
- package/templates/static/node_modules/preact/src/internal.d.ts +0 -190
- package/templates/static/node_modules/preact/src/jsx.d.ts +0 -2878
- package/templates/static/node_modules/preact/src/options.js +0 -16
- package/templates/static/node_modules/preact/src/render.js +0 -78
- package/templates/static/node_modules/preact/src/util.js +0 -28
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.js +0 -2
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.js.map +0 -1
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.mjs +0 -2
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js +0 -2
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js.map +0 -1
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js +0 -2
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js.map +0 -1
- package/templates/static/node_modules/preact/test-utils/package.json +0 -28
- package/templates/static/node_modules/preact/test-utils/src/index.d.ts +0 -3
- package/templates/static/node_modules/preact/test-utils/src/index.js +0 -129
- package/templates/static/node_modules/preact-render-to-string/LICENSE +0 -21
- package/templates/static/node_modules/preact-render-to-string/README.md +0 -149
- package/templates/static/node_modules/preact-render-to-string/dist/commonjs.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/index.d.ts +0 -17
- package/templates/static/node_modules/preact-render-to-string/dist/index.js +0 -6
- package/templates/static/node_modules/preact-render-to-string/dist/index.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/index.mjs +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/index.module.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/index.module.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/internal.d.ts +0 -35
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/commonjs.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js +0 -4
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.mjs +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/jsx.d.ts +0 -24
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.mjs +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js +0 -884
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.mjs +0 -884
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js +0 -884
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js +0 -888
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream-node.d.ts +0 -19
- package/templates/static/node_modules/preact-render-to-string/dist/stream.d.ts +0 -10
- package/templates/static/node_modules/preact-render-to-string/jsx.d.ts +0 -24
- package/templates/static/node_modules/preact-render-to-string/jsx.js +0 -1
- package/templates/static/node_modules/preact-render-to-string/package.json +0 -152
- package/templates/static/node_modules/preact-render-to-string/src/index.d.ts +0 -17
- package/templates/static/node_modules/preact-render-to-string/src/index.js +0 -764
- package/templates/static/node_modules/preact-render-to-string/src/internal.d.ts +0 -35
- package/templates/static/node_modules/preact-render-to-string/src/jsx.d.ts +0 -24
- package/templates/static/node_modules/preact-render-to-string/src/jsx.js +0 -102
- package/templates/static/node_modules/preact-render-to-string/src/lib/chunked.js +0 -97
- package/templates/static/node_modules/preact-render-to-string/src/lib/client.js +0 -62
- package/templates/static/node_modules/preact-render-to-string/src/lib/constants.js +0 -20
- package/templates/static/node_modules/preact-render-to-string/src/lib/polyfills.js +0 -8
- package/templates/static/node_modules/preact-render-to-string/src/lib/util.js +0 -208
- package/templates/static/node_modules/preact-render-to-string/src/pretty.js +0 -491
- package/templates/static/node_modules/preact-render-to-string/src/stream-node.d.ts +0 -19
- package/templates/static/node_modules/preact-render-to-string/src/stream-node.js +0 -84
- package/templates/static/node_modules/preact-render-to-string/src/stream.d.ts +0 -10
- package/templates/static/node_modules/preact-render-to-string/src/stream.js +0 -43
- package/templates/static/node_modules/preact-render-to-string/typings.json +0 -5
- package/templates/static/node_modules/sirv/build.js +0 -197
- package/templates/static/node_modules/sirv/build.mjs +0 -197
- package/templates/static/node_modules/sirv/index.d.mts +0 -29
- package/templates/static/node_modules/sirv/index.d.ts +0 -33
- package/templates/static/node_modules/sirv/package.json +0 -40
- package/templates/static/node_modules/sirv/readme.md +0 -238
- package/templates/static/node_modules/totalist/dist/index.js +0 -24
- package/templates/static/node_modules/totalist/dist/index.mjs +0 -22
- package/templates/static/node_modules/totalist/index.d.ts +0 -3
- package/templates/static/node_modules/totalist/license +0 -21
- package/templates/static/node_modules/totalist/package.json +0 -55
- package/templates/static/node_modules/totalist/readme.md +0 -109
- package/templates/static/node_modules/totalist/sync/index.d.ts +0 -3
- package/templates/static/node_modules/totalist/sync/index.js +0 -17
- package/templates/static/node_modules/totalist/sync/index.mjs +0 -15
- package/templates/static/node_modules/typescript/bin/tsc +0 -2
- package/templates/static/node_modules/typescript/bin/tsserver +0 -2
- package/templates/static/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/lib.d.ts +0 -22
- package/templates/static/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
- package/templates/static/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
- package/templates/static/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
- package/templates/static/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
- package/templates/static/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
- package/templates/static/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
- package/templates/static/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
- package/templates/static/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
- package/templates/static/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
- package/templates/static/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
- package/templates/static/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
- package/templates/static/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
- package/templates/static/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
- package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
- package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
- package/templates/static/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
- package/templates/static/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
- package/templates/static/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
- package/templates/static/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
- package/templates/static/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
- package/templates/static/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
- package/templates/static/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
- package/templates/static/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
- package/templates/static/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
- package/templates/static/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
- package/templates/static/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
- package/templates/static/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
- package/templates/static/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
- package/templates/static/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
- package/templates/static/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
- package/templates/static/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
- package/templates/static/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
- package/templates/static/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
- package/templates/static/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
- package/templates/static/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
- package/templates/static/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
- package/templates/static/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
- package/templates/static/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
- package/templates/static/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
- package/templates/static/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
- package/templates/static/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
- package/templates/static/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
- package/templates/static/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
- package/templates/static/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
- package/templates/static/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
- package/templates/static/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
- package/templates/static/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
- package/templates/static/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
- package/templates/static/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
- package/templates/static/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
- package/templates/static/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
- package/templates/static/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
- package/templates/static/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
- package/templates/static/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
- package/templates/static/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
- package/templates/static/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
- package/templates/static/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
- package/templates/static/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
- package/templates/static/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
- package/templates/static/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
- package/templates/static/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
- package/templates/static/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
- package/templates/static/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
- package/templates/static/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
- package/templates/static/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
- package/templates/static/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
- package/templates/static/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
- package/templates/static/node_modules/typescript/lib/lib.es6.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
- package/templates/static/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
- package/templates/static/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
- package/templates/static/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
- package/templates/static/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
- package/templates/static/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
- package/templates/static/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
- package/templates/static/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
- package/templates/static/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
- package/templates/static/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
- package/templates/static/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
- package/templates/static/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
- package/templates/static/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
- package/templates/static/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
- package/templates/static/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/tsc.js +0 -8
- package/templates/static/node_modules/typescript/lib/tsserver.js +0 -8
- package/templates/static/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
- package/templates/static/node_modules/typescript/lib/tsserverlibrary.js +0 -21
- package/templates/static/node_modules/typescript/lib/typescript.d.ts +0 -11437
- /package/templates/{static → ssr-isr}/lib/auth/index.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/cli/templates/ssg/jen.config.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/cli/templates/ssg/site/index.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/cli/templates/ssr/jen.config.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/cli/templates/ssr/site/index.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/compilers/esbuild-plugins.d.ts +0 -0
- /package/templates/{static/lib/middleware/types.d.ts → ssr-isr/lib/core/config.js} +0 -0
- /package/templates/{static → ssr-isr}/lib/middleware/errors/handler.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/middleware/utils/matcher.d.ts +0 -0
- /package/templates/static/{node_modules → lib/vendor}/preact/LICENSE +0 -0
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import {
|
|
3
|
+
ensureDir,
|
|
4
|
+
readJSON,
|
|
5
|
+
writeJSON,
|
|
6
|
+
generateId,
|
|
7
|
+
matchFilter,
|
|
8
|
+
applyUpdate,
|
|
9
|
+
} from "./utils";
|
|
10
|
+
/**
|
|
11
|
+
* In-memory representation of a single collection.
|
|
12
|
+
* Manages document storage, serialization, and basic file I/O.
|
|
13
|
+
* Supports lazy loading of data from disk and deferred save operations to batch writes.
|
|
14
|
+
*
|
|
15
|
+
* @template T Document type, must extend the Document base type.
|
|
16
|
+
*/
|
|
17
|
+
class JDBCollection {
|
|
18
|
+
name;
|
|
19
|
+
dir;
|
|
20
|
+
inMemory;
|
|
21
|
+
/** Absolute path to the .jdb file for this collection. */
|
|
22
|
+
file;
|
|
23
|
+
/** In-memory array of documents. */
|
|
24
|
+
data = [];
|
|
25
|
+
/** Flag indicating whether the data has been loaded from disk. */
|
|
26
|
+
loaded = false;
|
|
27
|
+
/** Flag indicating a save operation is currently in progress. */
|
|
28
|
+
saving = false;
|
|
29
|
+
/** Flag indicating a save was requested while another save was in progress. Triggers another save after current one completes. */
|
|
30
|
+
queueSave = false;
|
|
31
|
+
/**
|
|
32
|
+
* Create a new collection instance.
|
|
33
|
+
* Does not load data until an operation requires it (lazy loading).
|
|
34
|
+
*
|
|
35
|
+
* @param name Name of the collection.
|
|
36
|
+
* @param dir Directory where collection files are stored.
|
|
37
|
+
* @param inMemory If true, data is never persisted to disk.
|
|
38
|
+
*/
|
|
39
|
+
constructor(name, dir, inMemory) {
|
|
40
|
+
this.name = name;
|
|
41
|
+
this.dir = dir;
|
|
42
|
+
this.inMemory = inMemory;
|
|
43
|
+
this.file = path.join(dir, `${name}.jdb`);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Load collection data from disk on first access.
|
|
47
|
+
* Uses lazy loading to defer file I/O until actually needed.
|
|
48
|
+
* In-memory collections skip disk reads entirely.
|
|
49
|
+
* Idempotent: subsequent calls return immediately if already loaded.
|
|
50
|
+
*/
|
|
51
|
+
async load() {
|
|
52
|
+
if (this.loaded) return;
|
|
53
|
+
if (!this.inMemory) {
|
|
54
|
+
await ensureDir(this.dir);
|
|
55
|
+
const content = await readJSON(this.file);
|
|
56
|
+
this.data = content || [];
|
|
57
|
+
}
|
|
58
|
+
this.loaded = true;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Persist collection data to disk.
|
|
62
|
+
* Uses a queue mechanism to batch multiple rapid modifications into a single write.
|
|
63
|
+
* If a save is already in progress, queues the next save to run after current one completes.
|
|
64
|
+
* In-memory collections skip disk writes entirely.
|
|
65
|
+
*/
|
|
66
|
+
async save() {
|
|
67
|
+
if (this.inMemory) return;
|
|
68
|
+
if (this.saving) {
|
|
69
|
+
this.queueSave = true;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this.saving = true;
|
|
73
|
+
try {
|
|
74
|
+
await writeJSON(this.file, this.data);
|
|
75
|
+
} finally {
|
|
76
|
+
this.saving = false;
|
|
77
|
+
if (this.queueSave) {
|
|
78
|
+
this.queueSave = false;
|
|
79
|
+
this.save();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Insert a single document into the collection.
|
|
85
|
+
* Automatically assigns a UUID for _id (if not provided) and timestamps for _created and _updated.
|
|
86
|
+
* Queues a save operation to persist the document.
|
|
87
|
+
*
|
|
88
|
+
* @param doc The document to insert, without system fields.
|
|
89
|
+
* @returns The inserted document with _id, _created, and _updated populated.
|
|
90
|
+
*/
|
|
91
|
+
async insert(doc) {
|
|
92
|
+
await this.load();
|
|
93
|
+
const now = Date.now();
|
|
94
|
+
const newDoc = {
|
|
95
|
+
_id: doc._id || generateId(),
|
|
96
|
+
_created: now,
|
|
97
|
+
_updated: now,
|
|
98
|
+
...doc,
|
|
99
|
+
};
|
|
100
|
+
this.data.push(newDoc);
|
|
101
|
+
this.save();
|
|
102
|
+
return newDoc;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Insert multiple documents into the collection atomically.
|
|
106
|
+
* All documents are assigned the same _created timestamp.
|
|
107
|
+
* Queues a single save operation to persist all documents.
|
|
108
|
+
*
|
|
109
|
+
* @param docs Array of documents to insert.
|
|
110
|
+
* @returns Array of inserted documents with all system fields populated.
|
|
111
|
+
*/
|
|
112
|
+
async insertMany(docs) {
|
|
113
|
+
await this.load();
|
|
114
|
+
const now = Date.now();
|
|
115
|
+
const newDocs = docs.map((doc) => ({
|
|
116
|
+
_id: doc._id || generateId(),
|
|
117
|
+
_created: now,
|
|
118
|
+
_updated: now,
|
|
119
|
+
...doc,
|
|
120
|
+
}));
|
|
121
|
+
this.data.push(...newDocs);
|
|
122
|
+
this.save();
|
|
123
|
+
return newDocs;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Find the first document matching the filter.
|
|
127
|
+
*
|
|
128
|
+
* @param filter Query filter to apply.
|
|
129
|
+
* @returns The first matching document, or null if no match found.
|
|
130
|
+
*/
|
|
131
|
+
async findOne(filter) {
|
|
132
|
+
await this.load();
|
|
133
|
+
return this.data.find((doc) => matchFilter(doc, filter)) || null;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Find all documents matching the filter with optional sorting and pagination.
|
|
137
|
+
* Applies sort, skip, and limit in that order for correct pagination behavior.
|
|
138
|
+
*
|
|
139
|
+
* @param filter Query filter to apply.
|
|
140
|
+
* @param options Optional QueryOptions for sorting, skipping, and limiting results.
|
|
141
|
+
* @returns Array of matching documents (empty array if no matches).
|
|
142
|
+
*/
|
|
143
|
+
async find(filter, options) {
|
|
144
|
+
await this.load();
|
|
145
|
+
let result = this.data.filter((doc) => matchFilter(doc, filter));
|
|
146
|
+
if (options?.sort) {
|
|
147
|
+
const sortKeys = Object.keys(options.sort);
|
|
148
|
+
result.sort((a, b) => {
|
|
149
|
+
for (const key of sortKeys) {
|
|
150
|
+
const dir = options.sort[key];
|
|
151
|
+
if (a[key] < b[key]) return -1 * dir;
|
|
152
|
+
if (a[key] > b[key]) return 1 * dir;
|
|
153
|
+
}
|
|
154
|
+
return 0;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
if (options?.skip) {
|
|
158
|
+
result = result.slice(options.skip);
|
|
159
|
+
}
|
|
160
|
+
if (options?.limit) {
|
|
161
|
+
result = result.slice(0, options.limit);
|
|
162
|
+
}
|
|
163
|
+
return result;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Update document(s) matching the filter.
|
|
167
|
+
* Applies update operators atomically and updates the _updated timestamp.
|
|
168
|
+
* By default, updates only the first matching document. Set multi=true to update all.
|
|
169
|
+
*
|
|
170
|
+
* @param filter Query filter to select documents to update.
|
|
171
|
+
* @param update Update operators and values to apply.
|
|
172
|
+
* @param multi If false (default), updates only first match. If true, updates all matches.
|
|
173
|
+
* @returns Count of documents updated.
|
|
174
|
+
*/
|
|
175
|
+
async update(filter, update, multi = false) {
|
|
176
|
+
await this.load();
|
|
177
|
+
let count = 0;
|
|
178
|
+
for (const doc of this.data) {
|
|
179
|
+
if (matchFilter(doc, filter)) {
|
|
180
|
+
applyUpdate(doc, update);
|
|
181
|
+
count++;
|
|
182
|
+
if (!multi) break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (count > 0) this.save();
|
|
186
|
+
return count;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Delete document(s) matching the filter.
|
|
190
|
+
* By default, deletes only the first matching document. Set multi=true to delete all.
|
|
191
|
+
*
|
|
192
|
+
* @param filter Query filter to select documents to delete.
|
|
193
|
+
* @param multi If false (default), deletes only first match. If true, deletes all matches.
|
|
194
|
+
* @returns Count of documents deleted.
|
|
195
|
+
*/
|
|
196
|
+
async delete(filter, multi = false) {
|
|
197
|
+
await this.load();
|
|
198
|
+
const originalLen = this.data.length;
|
|
199
|
+
if (!multi) {
|
|
200
|
+
const index = this.data.findIndex((doc) => matchFilter(doc, filter));
|
|
201
|
+
if (index !== -1) {
|
|
202
|
+
this.data.splice(index, 1);
|
|
203
|
+
this.save();
|
|
204
|
+
return 1;
|
|
205
|
+
}
|
|
206
|
+
return 0;
|
|
207
|
+
} else {
|
|
208
|
+
this.data = this.data.filter((doc) => !matchFilter(doc, filter));
|
|
209
|
+
const deleted = originalLen - this.data.length;
|
|
210
|
+
if (deleted > 0) this.save();
|
|
211
|
+
return deleted;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Count documents matching the filter.
|
|
216
|
+
*
|
|
217
|
+
* @param filter Query filter to apply.
|
|
218
|
+
* @returns Number of documents matching the filter.
|
|
219
|
+
*/
|
|
220
|
+
async count(filter) {
|
|
221
|
+
await this.load();
|
|
222
|
+
return this.data.filter((doc) => matchFilter(doc, filter)).length;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* File-based database engine implementation.
|
|
227
|
+
* Stores collections as JSON files in the configured directory.
|
|
228
|
+
* Provides lazy collection initialization and in-memory option for testing.
|
|
229
|
+
*/
|
|
230
|
+
export class JDBEngine {
|
|
231
|
+
config;
|
|
232
|
+
/** Cached collection instances. Created on demand and reused for subsequent accesses. */
|
|
233
|
+
collections = new Map();
|
|
234
|
+
/**
|
|
235
|
+
* Create a new database engine instance.
|
|
236
|
+
*
|
|
237
|
+
* @param config Configuration specifying storage root directory and memory mode.
|
|
238
|
+
*/
|
|
239
|
+
constructor(config) {
|
|
240
|
+
this.config = config;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Establish database connection by ensuring the storage root directory exists.
|
|
244
|
+
* Creates the directory recursively if it doesn't exist.
|
|
245
|
+
*/
|
|
246
|
+
async connect() {
|
|
247
|
+
await ensureDir(this.config.root);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Close database connection and clean up resources.
|
|
251
|
+
* Currently a no-op for file-based storage, but provided for compatibility with IDatabaseEngine interface.
|
|
252
|
+
* Future versions may flush pending writes or close file handles here.
|
|
253
|
+
*/
|
|
254
|
+
async disconnect() {
|
|
255
|
+
// No-op for file based, maybe ensure all saves are flushed
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get or create a collection by name.
|
|
259
|
+
* Collections are cached after first access, so subsequent calls return the same instance.
|
|
260
|
+
* Uses lazy initialization: data is not loaded from disk until the collection is accessed.
|
|
261
|
+
*
|
|
262
|
+
* @template T Document type for the collection.
|
|
263
|
+
* @param name Unique name for the collection. Used to generate the .jdb filename.
|
|
264
|
+
* @returns Collection instance for CRUD operations.
|
|
265
|
+
*/
|
|
266
|
+
collection(name) {
|
|
267
|
+
if (!this.collections.has(name)) {
|
|
268
|
+
this.collections.set(
|
|
269
|
+
name,
|
|
270
|
+
new JDBCollection(name, this.config.root, !!this.config.inMemory),
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
return this.collections.get(name);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JDB (Jen Database) - A lightweight embedded JSON database for Jen.js applications.
|
|
3
|
+
*
|
|
4
|
+
* JDB provides MongoDB-like CRUD operations with file-based or in-memory storage.
|
|
5
|
+
* Perfect for small to medium applications that need data persistence without external dependencies.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - MongoDB-like query syntax with filter operators ($eq, $gt, $in, $regex, etc.)
|
|
9
|
+
* - Atomic update operations ($set, $inc, $push, etc.)
|
|
10
|
+
* - Pagination, sorting, and filtering
|
|
11
|
+
* - Lazy loading and deferred writes for performance
|
|
12
|
+
* - In-memory mode for testing
|
|
13
|
+
* - Simple JSON file format for easy inspection and migration
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { JDBEngine, type ICollection, type Document } from '@src/jdb';
|
|
17
|
+
*
|
|
18
|
+
* interface User extends Document {
|
|
19
|
+
* name: string;
|
|
20
|
+
* email: string;
|
|
21
|
+
* age: number;
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* const db = new JDBEngine({ root: './data' });
|
|
25
|
+
* await db.connect();
|
|
26
|
+
*
|
|
27
|
+
* const users = db.collection<User>('users');
|
|
28
|
+
* const user = await users.insert({ name: 'John', email: 'john@example.com', age: 30 });
|
|
29
|
+
* const found = await users.findOne({ email: 'john@example.com' });
|
|
30
|
+
* await users.update({ _id: user._id }, { $set: { age: 31 } });
|
|
31
|
+
* await users.delete({ _id: user._id });
|
|
32
|
+
*/
|
|
33
|
+
export * from "./types";
|
|
34
|
+
export { JDBEngine } from "./engine";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JDB (Jen Database) - A lightweight embedded JSON database for Jen.js applications.
|
|
3
|
+
*
|
|
4
|
+
* JDB provides MongoDB-like CRUD operations with file-based or in-memory storage.
|
|
5
|
+
* Perfect for small to medium applications that need data persistence without external dependencies.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - MongoDB-like query syntax with filter operators ($eq, $gt, $in, $regex, etc.)
|
|
9
|
+
* - Atomic update operations ($set, $inc, $push, etc.)
|
|
10
|
+
* - Pagination, sorting, and filtering
|
|
11
|
+
* - Lazy loading and deferred writes for performance
|
|
12
|
+
* - In-memory mode for testing
|
|
13
|
+
* - Simple JSON file format for easy inspection and migration
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { JDBEngine, type ICollection, type Document } from '@src/jdb';
|
|
17
|
+
*
|
|
18
|
+
* interface User extends Document {
|
|
19
|
+
* name: string;
|
|
20
|
+
* email: string;
|
|
21
|
+
* age: number;
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* const db = new JDBEngine({ root: './data' });
|
|
25
|
+
* await db.connect();
|
|
26
|
+
*
|
|
27
|
+
* const users = db.collection<User>('users');
|
|
28
|
+
* const user = await users.insert({ name: 'John', email: 'john@example.com', age: 30 });
|
|
29
|
+
* const found = await users.findOne({ email: 'john@example.com' });
|
|
30
|
+
* await users.update({ _id: user._id }, { $set: { age: 31 } });
|
|
31
|
+
* await users.delete({ _id: user._id });
|
|
32
|
+
*/
|
|
33
|
+
export * from "./types";
|
|
34
|
+
export { JDBEngine } from "./engine";
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for the JDB (Jen Database) engine.
|
|
3
|
+
* Specifies the storage location and memory mode for data persistence.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* const config: JDBConfig = {
|
|
7
|
+
* root: './data/jdb',
|
|
8
|
+
* inMemory: false
|
|
9
|
+
* };
|
|
10
|
+
*/
|
|
11
|
+
export type JDBConfig = {
|
|
12
|
+
/** Absolute or relative path to directory where .jdb collection files are stored. */
|
|
13
|
+
root: string;
|
|
14
|
+
/** If true, data is stored only in memory; files are not written to disk. Useful for testing. */
|
|
15
|
+
inMemory?: boolean;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Base document type for all collections.
|
|
19
|
+
* Every document in a JDB collection must include system metadata fields.
|
|
20
|
+
* These fields are automatically managed and should not be manually modified.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* interface User extends Document {
|
|
24
|
+
* name: string;
|
|
25
|
+
* email: string;
|
|
26
|
+
* }
|
|
27
|
+
*/
|
|
28
|
+
export type Document = Record<string, any> & {
|
|
29
|
+
/** Unique identifier automatically generated as a UUID. */
|
|
30
|
+
_id: string;
|
|
31
|
+
/** Timestamp (milliseconds) when the document was created. Set once, never changes. */
|
|
32
|
+
_created: number;
|
|
33
|
+
/** Timestamp (milliseconds) when the document was last updated. Updated on every modification. */
|
|
34
|
+
_updated: number;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Filter operators for querying documents.
|
|
38
|
+
* Support MongoDB-like query syntax for flexible filtering.
|
|
39
|
+
*/
|
|
40
|
+
export type FilterOperator =
|
|
41
|
+
| "$eq" /** Equal to the specified value. */
|
|
42
|
+
| "$ne" /** Not equal to the specified value. */
|
|
43
|
+
| "$gt" /** Greater than the specified value. */
|
|
44
|
+
| "$gte" /** Greater than or equal to the specified value. */
|
|
45
|
+
| "$lt" /** Less than the specified value. */
|
|
46
|
+
| "$lte" /** Less than or equal to the specified value. */
|
|
47
|
+
| "$in" /** Value is in the specified array. */
|
|
48
|
+
| "$nin" /** Value is not in the specified array. */
|
|
49
|
+
| "$regex"; /** Value matches the specified regular expression pattern. */
|
|
50
|
+
/**
|
|
51
|
+
* Filter object for querying documents.
|
|
52
|
+
* Supports both simple equality checks and complex operator-based conditions.
|
|
53
|
+
* Supports logical combinations via $and and $or.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* // Simple equality
|
|
57
|
+
* const filter1: Filter<User> = { name: 'John' };
|
|
58
|
+
*
|
|
59
|
+
* // Operator-based conditions
|
|
60
|
+
* const filter2: Filter<User> = { age: { $gte: 18 } };
|
|
61
|
+
*
|
|
62
|
+
* // Logical operators
|
|
63
|
+
* const filter3: Filter<User> = {
|
|
64
|
+
* $or: [{ name: 'John' }, { name: 'Jane' }]
|
|
65
|
+
* };
|
|
66
|
+
*/
|
|
67
|
+
export type Filter<T = any> = {
|
|
68
|
+
[K in keyof T]?:
|
|
69
|
+
| T[K]
|
|
70
|
+
| {
|
|
71
|
+
[op in FilterOperator]?: any;
|
|
72
|
+
};
|
|
73
|
+
} & {
|
|
74
|
+
/** Logical OR: document matches if it matches any filter in the array. */
|
|
75
|
+
$or?: Filter<T>[];
|
|
76
|
+
/** Logical AND: document matches if it matches all filters in the array. */
|
|
77
|
+
$and?: Filter<T>[];
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Update operators for modifying documents.
|
|
81
|
+
* Enable atomic field modifications without replacing the entire document.
|
|
82
|
+
*/
|
|
83
|
+
export type UpdateOperator =
|
|
84
|
+
| "$set" /** Set field value(s). Overwrites existing values. */
|
|
85
|
+
| "$unset" /** Remove field(s) from the document. */
|
|
86
|
+
| "$inc" /** Increment numeric field(s) by the specified amount. */
|
|
87
|
+
| "$push" /** Append value(s) to an array field. Creates array if it doesn't exist. */
|
|
88
|
+
| "$pull"; /** Remove all occurrences of value(s) from an array field. */
|
|
89
|
+
/**
|
|
90
|
+
* Update object for modifying documents.
|
|
91
|
+
* Specifies which fields to change and how, using update operators.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* // Set operation
|
|
95
|
+
* const update1: Update<User> = { $set: { name: 'Jane', age: 30 } };
|
|
96
|
+
*
|
|
97
|
+
* // Multiple operators
|
|
98
|
+
* const update2: Update<User> = {
|
|
99
|
+
* $set: { status: 'active' },
|
|
100
|
+
* $inc: { loginCount: 1 }
|
|
101
|
+
* };
|
|
102
|
+
*/
|
|
103
|
+
export type Update<T = any> = {
|
|
104
|
+
[op in UpdateOperator]?: Partial<T> | Record<string, any>;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Options for controlling query behavior.
|
|
108
|
+
* Supports sorting, limiting, and skipping results for pagination and ordering.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* const options: QueryOptions = {
|
|
112
|
+
* sort: { createdAt: -1 },
|
|
113
|
+
* skip: 10,
|
|
114
|
+
* limit: 20
|
|
115
|
+
* };
|
|
116
|
+
*/
|
|
117
|
+
export type QueryOptions = {
|
|
118
|
+
/** Maximum number of documents to return. */
|
|
119
|
+
limit?: number;
|
|
120
|
+
/** Number of documents to skip before returning results. Used for pagination. */
|
|
121
|
+
skip?: number;
|
|
122
|
+
/** Sort specification. Value 1 for ascending, -1 for descending. Multiple fields supported. */
|
|
123
|
+
sort?: Record<string, 1 | -1>;
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Abstract interface for a database engine.
|
|
127
|
+
* Defines the contract that database implementations must follow.
|
|
128
|
+
* Handles connection lifecycle and provides access to collections.
|
|
129
|
+
*/
|
|
130
|
+
export interface IDatabaseEngine {
|
|
131
|
+
/** Establish connection to the database and perform initialization. */
|
|
132
|
+
connect(): Promise<void>;
|
|
133
|
+
/** Close connection and clean up resources. */
|
|
134
|
+
disconnect(): Promise<void>;
|
|
135
|
+
/** Get or create a collection by name. Creates a new instance if collection doesn't exist. */
|
|
136
|
+
collection(name: string): ICollection;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Collection interface for CRUD operations on documents.
|
|
140
|
+
* Provides MongoDB-like methods for inserting, querying, updating, and deleting documents.
|
|
141
|
+
* All operations are async to support file I/O and potential distributed backends.
|
|
142
|
+
*
|
|
143
|
+
* @template T Document type, must extend Document base type with _id, _created, _updated.
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* interface BlogPost extends Document {
|
|
147
|
+
* title: string;
|
|
148
|
+
* content: string;
|
|
149
|
+
* published: boolean;
|
|
150
|
+
* }
|
|
151
|
+
*
|
|
152
|
+
* const posts: ICollection<BlogPost> = db.collection('posts');
|
|
153
|
+
* const post = await posts.insert({ title: 'Hello', content: '...' });
|
|
154
|
+
* const found = await posts.findOne({ _id: post._id });
|
|
155
|
+
*/
|
|
156
|
+
export interface ICollection<T extends Document = Document> {
|
|
157
|
+
/** Name of the collection. */
|
|
158
|
+
name: string;
|
|
159
|
+
/**
|
|
160
|
+
* Insert a single document into the collection.
|
|
161
|
+
* Automatically generates _id, _created, and _updated if not provided.
|
|
162
|
+
*
|
|
163
|
+
* @param doc The document to insert. _id, _created, _updated are optional.
|
|
164
|
+
* @returns The inserted document with all system fields populated.
|
|
165
|
+
*/
|
|
166
|
+
insert(
|
|
167
|
+
doc: Omit<T, "_id" | "_created" | "_updated"> & {
|
|
168
|
+
_id?: string;
|
|
169
|
+
},
|
|
170
|
+
): Promise<T>;
|
|
171
|
+
/**
|
|
172
|
+
* Insert multiple documents into the collection atomically.
|
|
173
|
+
* All documents are assigned the same _created timestamp.
|
|
174
|
+
*
|
|
175
|
+
* @param docs Array of documents to insert.
|
|
176
|
+
* @returns Array of inserted documents with all system fields populated.
|
|
177
|
+
*/
|
|
178
|
+
insertMany(
|
|
179
|
+
docs: (Omit<T, "_id" | "_created" | "_updated"> & {
|
|
180
|
+
_id?: string;
|
|
181
|
+
})[],
|
|
182
|
+
): Promise<T[]>;
|
|
183
|
+
/**
|
|
184
|
+
* Find the first document matching the filter.
|
|
185
|
+
* Returns null if no match found.
|
|
186
|
+
*
|
|
187
|
+
* @param filter Query filter to match documents.
|
|
188
|
+
* @returns The first matching document, or null if none found.
|
|
189
|
+
*/
|
|
190
|
+
findOne(filter: Filter<T>): Promise<T | null>;
|
|
191
|
+
/**
|
|
192
|
+
* Find all documents matching the filter with optional sorting and pagination.
|
|
193
|
+
*
|
|
194
|
+
* @param filter Query filter to match documents.
|
|
195
|
+
* @param options Optional sorting, limiting, and pagination options.
|
|
196
|
+
* @returns Array of matching documents (empty array if no matches).
|
|
197
|
+
*/
|
|
198
|
+
find(filter: Filter<T>, options?: QueryOptions): Promise<T[]>;
|
|
199
|
+
/**
|
|
200
|
+
* Update document(s) matching the filter.
|
|
201
|
+
* Updates _updated timestamp automatically.
|
|
202
|
+
*
|
|
203
|
+
* @param filter Query filter to select documents to update.
|
|
204
|
+
* @param update Update operators and values to apply.
|
|
205
|
+
* @param multi If false (default), updates only first match. If true, updates all matches.
|
|
206
|
+
* @returns Count of documents updated.
|
|
207
|
+
*/
|
|
208
|
+
update(
|
|
209
|
+
filter: Filter<T>,
|
|
210
|
+
update: Update<T>,
|
|
211
|
+
multi?: boolean,
|
|
212
|
+
): Promise<number>;
|
|
213
|
+
/**
|
|
214
|
+
* Delete document(s) matching the filter.
|
|
215
|
+
*
|
|
216
|
+
* @param filter Query filter to select documents to delete.
|
|
217
|
+
* @param multi If false (default), deletes only first match. If true, deletes all matches.
|
|
218
|
+
* @returns Count of documents deleted.
|
|
219
|
+
*/
|
|
220
|
+
delete(filter: Filter<T>, multi?: boolean): Promise<number>;
|
|
221
|
+
/**
|
|
222
|
+
* Count documents matching the filter.
|
|
223
|
+
*
|
|
224
|
+
* @param filter Query filter to match documents.
|
|
225
|
+
* @returns Number of documents matching the filter.
|
|
226
|
+
*/
|
|
227
|
+
count(filter: Filter<T>): Promise<number>;
|
|
228
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure a directory exists, creating it recursively if necessary.
|
|
3
|
+
* Idempotent: does not throw if the directory already exists.
|
|
4
|
+
*
|
|
5
|
+
* @param dir Directory path to ensure exists.
|
|
6
|
+
* @throws Error if directory creation fails.
|
|
7
|
+
*/
|
|
8
|
+
export declare function ensureDir(dir: string): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Read and parse a JSON file from disk.
|
|
11
|
+
* Returns null if the file does not exist (ENOENT).
|
|
12
|
+
* Other errors (invalid JSON, permission denied, etc.) are re-thrown.
|
|
13
|
+
*
|
|
14
|
+
* @template T The expected JSON structure type.
|
|
15
|
+
* @param file Path to the JSON file to read.
|
|
16
|
+
* @returns Parsed JSON data, or null if file does not exist.
|
|
17
|
+
* @throws Error if the file exists but cannot be read or parsed.
|
|
18
|
+
*/
|
|
19
|
+
export declare function readJSON<T>(file: string): Promise<T | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Write data as JSON to a file atomically using a temporary file.
|
|
22
|
+
* Atomic writes prevent corruption if the process crashes during writing.
|
|
23
|
+
* The temporary file is renamed to the target file only after writing completes successfully.
|
|
24
|
+
*
|
|
25
|
+
* @param file Path to the target file (will be created or overwritten).
|
|
26
|
+
* @param data Object to serialize as JSON with pretty-printing (2-space indent).
|
|
27
|
+
* @throws Error if writing or renaming fails.
|
|
28
|
+
*/
|
|
29
|
+
export declare function writeJSON(file: string, data: any): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Generate a unique identifier for a new document.
|
|
32
|
+
* Uses cryptographically secure UUID v4 generation.
|
|
33
|
+
*
|
|
34
|
+
* @returns A UUID string suitable for use as a document _id.
|
|
35
|
+
*/
|
|
36
|
+
export declare function generateId(): string;
|
|
37
|
+
/**
|
|
38
|
+
* Test whether a document matches a filter query.
|
|
39
|
+
* Supports MongoDB-like query syntax including operators ($eq, $ne, $gt, etc.) and logical operators ($or, $and).
|
|
40
|
+
* Processes each field condition and returns false if any condition fails (AND semantics).
|
|
41
|
+
* Logical operators $or and $and are processed separately with their respective semantics.
|
|
42
|
+
*
|
|
43
|
+
* @param doc The document to test.
|
|
44
|
+
* @param filter The filter query to apply.
|
|
45
|
+
* @returns True if the document matches all filter conditions, false otherwise.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* matchFilter({ name: 'John', age: 30 }, { name: 'John' }) // true
|
|
49
|
+
* matchFilter({ age: 25 }, { age: { $gte: 18 } }) // true
|
|
50
|
+
* matchFilter({ name: 'Jane' }, { $or: [{ name: 'John' }, { name: 'Jane' }] }) // true
|
|
51
|
+
*/
|
|
52
|
+
export declare function matchFilter(doc: any, filter: any): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Apply update operators to a document, modifying it in place.
|
|
55
|
+
* Automatically updates the _updated timestamp to the current time.
|
|
56
|
+
* Supports $set, $unset, $inc, $push, and $pull operators.
|
|
57
|
+
*
|
|
58
|
+
* @param doc The document to update (modified in place).
|
|
59
|
+
* @param update Update specification with operators.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* const doc = { name: 'John', age: 30, tags: ['js'] };
|
|
63
|
+
* applyUpdate(doc, { $set: { name: 'Jane' }, $inc: { age: 1 }, $push: { tags: 'ts' } });
|
|
64
|
+
* // doc is now { name: 'Jane', age: 31, tags: ['js', 'ts'], _updated: <current-timestamp> }
|
|
65
|
+
*/
|
|
66
|
+
export declare function applyUpdate(doc: any, update: any): void;
|