@primate/core 0.4.6 → 0.6.0
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/lib/private/App.d.ts +771 -6
- package/lib/private/App.js +49 -16
- package/lib/private/Binder.d.ts +2 -2
- package/lib/private/Flags.d.ts +8 -4
- package/lib/private/Module.d.ts +4 -16
- package/lib/private/Module.js +1 -17
- package/lib/private/app/EnvSchema.d.ts +5 -0
- package/lib/private/app/EnvSchema.js +2 -0
- package/lib/private/app/Facade.browser.d.ts +11 -0
- package/lib/private/app/Facade.browser.js +19 -0
- package/lib/private/app/Facade.d.ts +811 -0
- package/lib/private/app/Facade.js +56 -0
- package/lib/private/asset/Asset.d.ts +1 -1
- package/lib/private/build/App.d.ts +2 -2
- package/lib/private/build/App.js +0 -2
- package/lib/private/build/client/index.js +19 -10
- package/lib/private/build/client/plugin/app-request.d.ts +4 -0
- package/lib/private/build/client/plugin/app-request.js +19 -0
- package/lib/private/build/client/plugin/view.d.ts +4 -0
- package/lib/private/build/client/plugin/view.js +13 -0
- package/lib/private/build/hook.d.ts +1 -2
- package/lib/private/build/hook.js +25 -19
- package/lib/private/build/index.d.ts +2 -1
- package/lib/private/build/index.js +27 -27
- package/lib/private/build/presets.d.ts +10 -0
- package/lib/private/build/presets.js +39 -0
- package/lib/private/build/server/index.js +10 -14
- package/lib/private/build/server/plugin/app-request.d.ts +4 -0
- package/lib/private/build/server/plugin/app-request.js +19 -0
- package/lib/private/build/server/plugin/assets.js +9 -7
- package/lib/private/build/server/plugin/config.js +11 -4
- package/lib/private/build/server/plugin/frontend.js +4 -2
- package/lib/private/build/server/plugin/live-reload.d.ts +4 -0
- package/lib/private/build/server/plugin/{hot-reload.js → live-reload.js} +12 -12
- package/lib/private/build/server/plugin/native-addons.js +10 -11
- package/lib/private/build/server/plugin/node-imports.js +2 -2
- package/lib/private/build/server/plugin/route.js +4 -4
- package/lib/private/build/server/plugin/store.js +11 -33
- package/lib/private/build/server/plugin/stores.js +12 -9
- package/lib/private/build/server/plugin/view.js +5 -5
- package/lib/private/build/server/plugin/views.js +4 -4
- package/lib/private/build/server/plugin/virtual-pages.js +8 -8
- package/lib/private/build/server/plugin/virtual-routes.js +8 -13
- package/lib/private/build/server/plugin/wasm.js +2 -3
- package/lib/private/build/shared/plugin/app-request.d.ts +4 -0
- package/lib/private/build/shared/plugin/app-request.js +19 -0
- package/lib/private/bye.js +2 -3
- package/lib/private/client/Data.d.ts +3 -2
- package/lib/private/client/Render.d.ts +8 -0
- package/lib/private/{frontend → client}/ServerData.d.ts +1 -1
- package/lib/private/client/ServerView.d.ts +4 -0
- package/lib/private/client/ValidateInit.d.ts +1 -3
- package/lib/private/client/ValidationError.d.ts +1 -1
- package/lib/private/{frontend → client}/View.d.ts +1 -1
- package/lib/private/{frontend → client}/ViewOptions.d.ts +1 -1
- package/lib/private/{frontend → client}/ViewResponse.d.ts +2 -2
- package/lib/private/client/app.js +3 -3
- package/lib/private/client/boot.d.ts +5 -0
- package/lib/private/client/boot.js +64 -0
- package/lib/private/client/create-form.d.ts +32 -0
- package/lib/private/client/create-form.js +123 -0
- package/lib/private/client/extract-issues.d.ts +4 -0
- package/lib/private/client/extract-issues.js +21 -0
- package/lib/private/client/http.d.ts +13 -0
- package/lib/private/client/http.js +57 -0
- package/lib/private/client/index.d.ts +23 -0
- package/lib/private/client/index.js +16 -0
- package/lib/private/client/navigate.d.ts +13 -0
- package/lib/private/client/navigate.js +67 -0
- package/lib/private/client/root.d.ts +9 -0
- package/lib/private/client/root.js +11 -0
- package/lib/private/client/submit.d.ts +2 -0
- package/lib/private/client/submit.js +41 -0
- package/lib/private/client/{toValidated.d.ts → to-validated.d.ts} +2 -4
- package/lib/private/client/{toValidated.js → to-validated.js} +1 -1
- package/lib/private/client/validate-field.d.ts +3 -0
- package/lib/private/client/validate-field.js +41 -0
- package/lib/private/config/index.d.ts +7 -21
- package/lib/private/config/index.js +4 -1
- package/lib/private/config/schema.d.ts +82 -22
- package/lib/private/config/schema.js +25 -7
- package/lib/private/cookie.d.ts +12 -6
- package/lib/private/cookie.js +10 -14
- package/lib/private/db/As.d.ts +10 -0
- package/lib/private/db/DB.d.ts +49 -0
- package/lib/private/db/DB.js +3 -0
- package/lib/private/db/DataDict.d.ts +5 -0
- package/lib/private/db/DataKey.d.ts +4 -0
- package/lib/private/db/DataValue.d.ts +17 -0
- package/lib/private/db/MemoryDB.d.ts +33 -0
- package/lib/private/db/MemoryDB.js +335 -0
- package/lib/private/db/PK.d.ts +3 -0
- package/lib/private/db/PK.js +2 -0
- package/lib/private/{database → db}/Query.d.ts +2 -2
- package/lib/private/{database → db}/QueryBuilder.d.ts +2 -3
- package/lib/private/db/ReadArgs.d.ts +9 -0
- package/lib/private/db/ReadArgs.js +2 -0
- package/lib/private/db/ReadRelationsArgs.d.ts +6 -0
- package/lib/private/db/ReadRelationsArgs.js +2 -0
- package/lib/private/{database → db}/Schema.d.ts +1 -2
- package/lib/private/db/Sort.d.ts +4 -0
- package/lib/private/{database → db}/TypeMap.d.ts +2 -3
- package/lib/private/{database → db}/Types.d.ts +1 -1
- package/lib/private/db/With.d.ts +16 -0
- package/lib/private/db/With.js +2 -0
- package/lib/private/db/common.d.ts +25 -0
- package/lib/private/db/common.js +67 -0
- package/lib/private/db/errors.d.ts +104 -0
- package/lib/private/db/errors.js +237 -0
- package/lib/private/db/migrate/apply.d.ts +2 -0
- package/lib/private/db/migrate/apply.js +32 -0
- package/lib/private/db/migrate/bundle.d.ts +3 -0
- package/lib/private/db/migrate/bundle.js +22 -0
- package/lib/private/db/migrate/create.d.ts +2 -0
- package/lib/private/db/migrate/create.js +154 -0
- package/lib/private/db/migrate/index.d.ts +10 -0
- package/lib/private/db/migrate/index.js +6 -0
- package/lib/private/db/migrate/status.d.ts +2 -0
- package/lib/private/db/migrate/status.js +38 -0
- package/lib/private/db/migrate/store.d.ts +5 -0
- package/lib/private/db/migrate/store.js +33 -0
- package/lib/private/db/sql.d.ts +28 -0
- package/lib/private/db/sql.js +177 -0
- package/lib/private/db/storage.d.ts +3 -0
- package/lib/private/db/storage.js +3 -0
- package/lib/private/db/symbol.js +2 -0
- package/lib/private/db/test.d.ts +4 -0
- package/lib/private/db/test.js +1750 -0
- package/lib/private/errors.d.ts +88 -0
- package/lib/private/errors.js +211 -0
- package/lib/private/frontend.d.ts +72 -0
- package/lib/private/frontend.js +245 -0
- package/lib/private/hash.js +0 -1
- package/lib/private/i18n/Catalog.d.ts +5 -2
- package/lib/private/i18n/Formatter.js +21 -9
- package/lib/private/i18n/errors.d.ts +16 -0
- package/lib/private/i18n/errors.js +27 -0
- package/lib/private/i18n/format.d.ts +4 -0
- package/lib/private/i18n/format.js +95 -0
- package/lib/private/i18n/index/client.d.ts +9 -0
- package/lib/private/i18n/index/client.js +152 -0
- package/lib/private/i18n/index/server.d.ts +9 -0
- package/lib/private/i18n/index/server.js +57 -0
- package/lib/private/i18n/index/types.d.ts +33 -0
- package/lib/private/i18n/index/types.js +2 -0
- package/lib/private/i18n/locale.d.ts +9 -3
- package/lib/private/i18n/module.d.ts +3 -0
- package/lib/private/i18n/module.js +115 -0
- package/lib/private/i18n/ordinals.d.ts +1 -1
- package/lib/private/i18n/resolve.d.ts +7 -0
- package/lib/private/i18n/resolve.js +30 -0
- package/lib/private/i18n/schema.d.ts +10 -5
- package/lib/private/i18n/schema.js +6 -10
- package/lib/private/i18n/storage.d.ts +3 -0
- package/lib/private/i18n/storage.js +5 -0
- package/lib/private/i18n/validate.d.ts +2 -0
- package/lib/private/i18n/validate.js +19 -0
- package/lib/private/index.d.ts +14 -0
- package/lib/private/index.js +2 -0
- package/lib/private/log.d.ts +1 -0
- package/lib/private/log.js +15 -14
- package/lib/private/module/Hook.d.ts +1 -1
- package/lib/private/module/Next.d.ts +1 -1
- package/lib/private/module/Setup.d.ts +21 -0
- package/lib/private/module/Setup.js +2 -0
- package/lib/private/module/create.d.ts +16 -0
- package/lib/private/module/create.js +28 -0
- package/lib/private/orm/ExtractSchema.d.ts +9 -0
- package/lib/private/orm/ExtractSchema.js +2 -0
- package/lib/private/orm/ForeignKey.d.ts +14 -0
- package/lib/private/orm/ForeignKey.js +25 -0
- package/lib/private/orm/PrimaryKey.d.ts +17 -0
- package/lib/private/orm/PrimaryKey.js +38 -0
- package/lib/private/orm/StoreInput.d.ts +10 -0
- package/lib/private/orm/StoreInput.js +2 -0
- package/lib/private/orm/key.d.ts +8 -0
- package/lib/private/orm/key.js +8 -0
- package/lib/private/orm/parse.d.ts +13 -0
- package/lib/private/orm/parse.js +29 -0
- package/lib/private/orm/relation.d.ts +43 -0
- package/lib/private/orm/relation.js +26 -0
- package/lib/private/orm/store.d.ts +187 -0
- package/lib/private/orm/store.js +542 -0
- package/lib/private/paths.d.ts +2 -2
- package/lib/private/paths.js +3 -3
- package/lib/private/request/RequestBag.d.ts +5 -1
- package/lib/private/request/RequestBag.js +16 -9
- package/lib/private/request/RequestBody.d.ts +6 -11
- package/lib/private/request/RequestBody.js +51 -59
- package/lib/private/request/RequestContext.d.ts +12 -0
- package/lib/private/request/RequestContext.js +31 -0
- package/lib/private/request/RequestFacade.d.ts +11 -6
- package/lib/private/request/RequestPublic.d.ts +9 -0
- package/lib/private/request/RequestPublic.js +2 -0
- package/lib/private/request/RequestView.d.ts +11 -0
- package/lib/private/request/RequestView.js +3 -0
- package/lib/private/request/handle.d.ts +4 -0
- package/lib/private/request/handle.js +18 -0
- package/lib/private/request/parse.d.ts +2 -2
- package/lib/private/request/parse.js +55 -16
- package/lib/private/request/route.js +37 -22
- package/lib/private/request/router.d.ts +1 -1
- package/lib/private/request/router.js +22 -50
- package/lib/private/{database/symbol/wrap.d.ts → request/sContext.d.ts} +1 -1
- package/lib/private/request/sContext.js +2 -0
- package/lib/private/request/storage.d.ts +4 -0
- package/lib/private/request/storage.js +5 -0
- package/lib/private/response/ResponseFunction.d.ts +2 -3
- package/lib/private/response/ResponseLike.d.ts +1 -1
- package/lib/private/response/binary.d.ts +1 -1
- package/lib/private/response/binary.js +4 -3
- package/lib/private/response/error.d.ts +1 -1
- package/lib/private/response/error.js +1 -1
- package/lib/private/response/json.d.ts +1 -1
- package/lib/private/response/json.js +2 -2
- package/lib/private/response/redirect.d.ts +5 -5
- package/lib/private/response/redirect.js +9 -10
- package/lib/private/response/respond.js +16 -17
- package/lib/private/response/sse.d.ts +1 -1
- package/lib/private/response/sse.js +2 -2
- package/lib/private/response/text.d.ts +1 -1
- package/lib/private/response/text.js +3 -3
- package/lib/private/response/view.d.ts +3 -3
- package/lib/private/response/view.js +7 -14
- package/lib/private/response/ws.d.ts +1 -1
- package/lib/private/response.d.ts +1 -1
- package/lib/private/route/Handler.d.ts +1 -1
- package/lib/private/route/hook.d.ts +6 -0
- package/lib/private/route/hook.js +5 -0
- package/lib/private/route/router.d.ts +6 -2
- package/lib/private/route/router.js +32 -18
- package/lib/private/route/wrap.js +2 -2
- package/lib/private/serve/App.d.ts +11 -25
- package/lib/private/serve/App.js +138 -120
- package/lib/private/serve/Init.d.ts +5 -5
- package/lib/private/serve/dev-module.d.ts +2 -0
- package/lib/private/serve/dev-module.js +34 -0
- package/lib/private/serve/hook.d.ts +1 -2
- package/lib/private/serve/hook.js +2 -9
- package/lib/private/serve/index.d.ts +1 -1
- package/lib/private/serve/index.js +36 -2
- package/lib/private/server/TAG.d.ts +3 -0
- package/lib/private/server/TAG.js +2 -0
- package/lib/private/server/index.d.ts +5 -0
- package/lib/private/server/index.js +6 -0
- package/lib/private/session/Data.d.ts +1 -2
- package/lib/private/session/SessionHandle.d.ts +1 -1
- package/lib/private/session/SessionHandle.js +11 -9
- package/lib/private/session/index.d.ts +3 -4
- package/lib/private/session/module.d.ts +3 -0
- package/lib/private/session/module.js +114 -0
- package/lib/private/session/schema.d.ts +17 -9
- package/lib/private/session/schema.js +11 -6
- package/lib/private/session/storage.d.ts +1 -2
- package/lib/private/session/storage.js +2 -2
- package/lib/private/tags.js +2 -2
- package/lib/private/target/Manager.js +6 -12
- package/lib/private/target/Target.d.ts +1 -1
- package/lib/public/AppFacade.d.ts +2 -0
- package/lib/public/AppFacade.js +2 -0
- package/lib/public/build/presets.d.ts +2 -0
- package/lib/public/build/presets.js +2 -0
- package/lib/public/build/transform.d.ts +2 -0
- package/lib/public/build/transform.js +2 -0
- package/lib/public/client.d.ts +3 -0
- package/lib/public/client.js +2 -0
- package/lib/public/db/MemoryDB.d.ts +2 -0
- package/lib/public/db/MemoryDB.js +2 -0
- package/lib/public/db/errors.d.ts +2 -0
- package/lib/public/db/errors.js +2 -0
- package/lib/public/db/migrate.d.ts +2 -0
- package/lib/public/db/migrate.js +2 -0
- package/lib/public/db/sql.d.ts +2 -0
- package/lib/public/db/sql.js +2 -0
- package/lib/public/db/test.d.ts +2 -0
- package/lib/public/db/test.js +2 -0
- package/lib/public/db.d.ts +12 -0
- package/lib/public/db.js +2 -0
- package/lib/public/frontend.d.ts +3 -0
- package/lib/public/frontend.js +2 -0
- package/lib/public/index.d.ts +2 -0
- package/lib/public/index.js +2 -0
- package/lib/public/orm/key.d.ts +2 -0
- package/lib/public/orm/key.js +2 -0
- package/lib/public/orm/relation.d.ts +2 -0
- package/lib/public/orm/relation.js +2 -0
- package/lib/public/orm/store.d.ts +2 -0
- package/lib/public/orm/store.js +2 -0
- package/lib/public/request/server.d.ts +5 -0
- package/lib/public/request/server.js +7 -0
- package/lib/public/response.d.ts +22 -0
- package/lib/public/response.js +19 -0
- package/lib/public/route/hook.d.ts +2 -0
- package/lib/public/route/hook.js +2 -0
- package/lib/public/server.d.ts +3 -0
- package/lib/public/server.js +2 -0
- package/package.json +40 -30
- package/lib/private/AppError.d.ts +0 -4
- package/lib/private/AppError.js +0 -8
- package/lib/private/backend/Module.d.ts +0 -18
- package/lib/private/backend/Module.js +0 -22
- package/lib/private/backend/TAG.d.ts +0 -3
- package/lib/private/backend/TAG.js +0 -2
- package/lib/private/build/client/reload.d.ts +0 -7
- package/lib/private/build/client/reload.js +0 -6
- package/lib/private/build/server/plugin/database-default.d.ts +0 -4
- package/lib/private/build/server/plugin/database-default.js +0 -48
- package/lib/private/build/server/plugin/hot-reload.d.ts +0 -4
- package/lib/private/build/server/plugin/store-wrap.d.ts +0 -4
- package/lib/private/build/server/plugin/store-wrap.js +0 -33
- package/lib/private/client/spa/index.d.ts +0 -6
- package/lib/private/client/spa/index.js +0 -201
- package/lib/private/client/validate.d.ts +0 -3
- package/lib/private/client/validate.js +0 -54
- package/lib/private/database/As.d.ts +0 -7
- package/lib/private/database/Binds.d.ts +0 -4
- package/lib/private/database/Binds.js +0 -2
- package/lib/private/database/Changes.d.ts +0 -11
- package/lib/private/database/Changes.js +0 -2
- package/lib/private/database/ColumnTypes.d.ts +0 -11
- package/lib/private/database/ColumnTypes.js +0 -2
- package/lib/private/database/DataDict.d.ts +0 -5
- package/lib/private/database/DataKey.d.ts +0 -4
- package/lib/private/database/DataValue.d.ts +0 -5
- package/lib/private/database/Database.d.ts +0 -56
- package/lib/private/database/Database.js +0 -153
- package/lib/private/database/InMemoryDatabase.d.ts +0 -37
- package/lib/private/database/InMemoryDatabase.js +0 -181
- package/lib/private/database/Sort.d.ts +0 -4
- package/lib/private/database/Store.d.ts +0 -172
- package/lib/private/database/Store.js +0 -261
- package/lib/private/database/storage.d.ts +0 -4
- package/lib/private/database/storage.js +0 -3
- package/lib/private/database/symbol/wrap.js +0 -2
- package/lib/private/database/symbol.js +0 -2
- package/lib/private/database/test.d.ts +0 -4
- package/lib/private/database/test.js +0 -678
- package/lib/private/database/wrap.d.ts +0 -5
- package/lib/private/database/wrap.js +0 -5
- package/lib/private/fail.d.ts +0 -3
- package/lib/private/fail.js +0 -5
- package/lib/private/frontend/Module.d.ts +0 -62
- package/lib/private/frontend/Module.js +0 -250
- package/lib/private/frontend/Render.d.ts +0 -9
- package/lib/private/frontend/ServerView.d.ts +0 -5
- package/lib/private/i18n/Module.d.ts +0 -16
- package/lib/private/i18n/Module.js +0 -122
- package/lib/private/i18n/index.d.ts +0 -28
- package/lib/private/i18n/index.js +0 -236
- package/lib/private/module/BuildHook.d.ts +0 -5
- package/lib/private/module/BuildHook.js +0 -2
- package/lib/private/module/NextBuild.d.ts +0 -5
- package/lib/private/module/NextBuild.js +0 -2
- package/lib/private/module/NextServe.d.ts +0 -5
- package/lib/private/module/NextServe.js +0 -2
- package/lib/private/reducer.d.ts +0 -24
- package/lib/private/reducer.js +0 -10
- package/lib/private/route/guard.d.ts +0 -4
- package/lib/private/route/guard.js +0 -22
- package/lib/private/serve/module/Dev.d.ts +0 -11
- package/lib/private/serve/module/Dev.js +0 -28
- package/lib/private/serve/module/Handle.d.ts +0 -10
- package/lib/private/serve/module/Handle.js +0 -15
- package/lib/private/session/SessionModule.d.ts +0 -14
- package/lib/private/session/SessionModule.js +0 -122
- package/lib/private/wasm/API.d.ts +0 -7
- package/lib/private/wasm/API.js +0 -2
- package/lib/private/wasm/BufferViewSource.d.ts +0 -4
- package/lib/private/wasm/BufferViewSource.js +0 -2
- package/lib/private/wasm/Exports.d.ts +0 -23
- package/lib/private/wasm/Exports.js +0 -2
- package/lib/private/wasm/I32.d.ts +0 -5
- package/lib/private/wasm/I32.js +0 -2
- package/lib/private/wasm/I32_SIZE.d.ts +0 -3
- package/lib/private/wasm/I32_SIZE.js +0 -2
- package/lib/private/wasm/Instantiation.d.ts +0 -12
- package/lib/private/wasm/Instantiation.js +0 -2
- package/lib/private/wasm/Tagged.d.ts +0 -7
- package/lib/private/wasm/Tagged.js +0 -2
- package/lib/private/wasm/buffersize.d.ts +0 -2
- package/lib/private/wasm/buffersize.js +0 -5
- package/lib/private/wasm/decode-bytes.d.ts +0 -3
- package/lib/private/wasm/decode-bytes.js +0 -5
- package/lib/private/wasm/decode-json.d.ts +0 -7
- package/lib/private/wasm/decode-json.js +0 -11
- package/lib/private/wasm/decode-option.d.ts +0 -5
- package/lib/private/wasm/decode-option.js +0 -10
- package/lib/private/wasm/decode-response.d.ts +0 -19
- package/lib/private/wasm/decode-response.js +0 -90
- package/lib/private/wasm/decode-string.d.ts +0 -3
- package/lib/private/wasm/decode-string.js +0 -5
- package/lib/private/wasm/decode-websocket-close.d.ts +0 -5
- package/lib/private/wasm/decode-websocket-close.js +0 -6
- package/lib/private/wasm/decode-websocket-send.d.ts +0 -6
- package/lib/private/wasm/decode-websocket-send.js +0 -19
- package/lib/private/wasm/encode-buffer.d.ts +0 -3
- package/lib/private/wasm/encode-buffer.js +0 -6
- package/lib/private/wasm/encode-request.d.ts +0 -9
- package/lib/private/wasm/encode-request.js +0 -195
- package/lib/private/wasm/encode-session.d.ts +0 -3
- package/lib/private/wasm/encode-session.js +0 -25
- package/lib/private/wasm/encode-string-map.d.ts +0 -5
- package/lib/private/wasm/encode-string-map.js +0 -14
- package/lib/private/wasm/encode-string.d.ts +0 -13
- package/lib/private/wasm/encode-string.js +0 -17
- package/lib/private/wasm/encode-url.d.ts +0 -11
- package/lib/private/wasm/encode-url.js +0 -14
- package/lib/private/wasm/encode-websocket-close.d.ts +0 -2
- package/lib/private/wasm/encode-websocket-close.js +0 -7
- package/lib/private/wasm/encode-websocket-message.d.ts +0 -4
- package/lib/private/wasm/encode-websocket-message.js +0 -30
- package/lib/private/wasm/encode-websocket-open.d.ts +0 -2
- package/lib/private/wasm/encode-websocket-open.js +0 -7
- package/lib/private/wasm/filesize.d.ts +0 -2
- package/lib/private/wasm/filesize.js +0 -8
- package/lib/private/wasm/instantiate.d.ts +0 -37
- package/lib/private/wasm/instantiate.js +0 -408
- package/lib/private/wasm/open-websocket.d.ts +0 -4
- package/lib/private/wasm/open-websocket.js +0 -26
- package/lib/private/wasm/stringsize.d.ts +0 -3
- package/lib/private/wasm/stringsize.js +0 -5
- package/lib/private/wasm/urlsize.d.ts +0 -2
- package/lib/private/wasm/urlsize.js +0 -5
- package/lib/public/App.d.ts +0 -2
- package/lib/public/App.js +0 -2
- package/lib/public/AppError.d.ts +0 -2
- package/lib/public/AppError.js +0 -2
- package/lib/public/BuildApp.d.ts +0 -2
- package/lib/public/BuildApp.js +0 -2
- package/lib/public/BuildHook.d.ts +0 -2
- package/lib/public/BuildHook.js +0 -2
- package/lib/public/Database.d.ts +0 -2
- package/lib/public/Database.js +0 -2
- package/lib/public/Mode.d.ts +0 -2
- package/lib/public/Mode.js +0 -2
- package/lib/public/Module.d.ts +0 -2
- package/lib/public/Module.js +0 -2
- package/lib/public/Next.d.ts +0 -2
- package/lib/public/Next.js +0 -2
- package/lib/public/NextBuild.d.ts +0 -2
- package/lib/public/NextBuild.js +0 -2
- package/lib/public/NextHandle.d.ts +0 -2
- package/lib/public/NextHandle.js +0 -2
- package/lib/public/NextRoute.d.ts +0 -3
- package/lib/public/NextRoute.js +0 -2
- package/lib/public/NextServe.d.ts +0 -2
- package/lib/public/NextServe.js +0 -2
- package/lib/public/ServeApp.d.ts +0 -2
- package/lib/public/ServeApp.js +0 -2
- package/lib/public/Target.d.ts +0 -2
- package/lib/public/Target.js +0 -2
- package/lib/public/backend/Module.d.ts +0 -2
- package/lib/public/backend/Module.js +0 -2
- package/lib/public/backend/TAG.d.ts +0 -2
- package/lib/public/backend/TAG.js +0 -2
- package/lib/public/client/Data.d.ts +0 -2
- package/lib/public/client/Data.js +0 -2
- package/lib/public/client/ValidateInit.d.ts +0 -2
- package/lib/public/client/ValidateInit.js +0 -2
- package/lib/public/client/ValidateUpdater.d.ts +0 -2
- package/lib/public/client/ValidateUpdater.js +0 -2
- package/lib/public/client/ValidationError.d.ts +0 -2
- package/lib/public/client/ValidationError.js +0 -2
- package/lib/public/client/spa.d.ts +0 -2
- package/lib/public/client/spa.js +0 -2
- package/lib/public/client/toValidated.d.ts +0 -2
- package/lib/public/client/toValidated.js +0 -2
- package/lib/public/client/validate.d.ts +0 -2
- package/lib/public/client/validate.js +0 -2
- package/lib/public/database/As.d.ts +0 -2
- package/lib/public/database/As.js +0 -2
- package/lib/public/database/DataDict.d.ts +0 -2
- package/lib/public/database/DataDict.js +0 -2
- package/lib/public/database/InMemoryDatabase.d.ts +0 -2
- package/lib/public/database/InMemoryDatabase.js +0 -2
- package/lib/public/database/Sort.d.ts +0 -2
- package/lib/public/database/Sort.js +0 -2
- package/lib/public/database/Store.d.ts +0 -2
- package/lib/public/database/Store.js +0 -2
- package/lib/public/database/TypeMap.d.ts +0 -2
- package/lib/public/database/TypeMap.js +0 -2
- package/lib/public/database/Types.d.ts +0 -2
- package/lib/public/database/Types.js +0 -2
- package/lib/public/database/test.d.ts +0 -2
- package/lib/public/database/test.js +0 -2
- package/lib/public/database/wrap.d.ts +0 -2
- package/lib/public/database/wrap.js +0 -2
- package/lib/public/fail.d.ts +0 -2
- package/lib/public/fail.js +0 -2
- package/lib/public/frontend/Module.d.ts +0 -2
- package/lib/public/frontend/Module.js +0 -2
- package/lib/public/frontend/Publish.d.ts +0 -2
- package/lib/public/frontend/Publish.js +0 -2
- package/lib/public/frontend/Render.d.ts +0 -2
- package/lib/public/frontend/Render.js +0 -2
- package/lib/public/frontend/ViewResponse.d.ts +0 -2
- package/lib/public/frontend/ViewResponse.js +0 -2
- package/lib/public/request/RequestBody.d.ts +0 -2
- package/lib/public/request/RequestBody.js +0 -2
- package/lib/public/request/RequestFacade.d.ts +0 -2
- package/lib/public/request/RequestFacade.js +0 -2
- package/lib/public/request/Verb.d.ts +0 -2
- package/lib/public/request/Verb.js +0 -2
- package/lib/public/response/ResponseFunction.d.ts +0 -2
- package/lib/public/response/ResponseFunction.js +0 -2
- package/lib/public/response/ResponseLike.d.ts +0 -2
- package/lib/public/response/ResponseLike.js +0 -2
- package/lib/public/response/binary.d.ts +0 -2
- package/lib/public/response/binary.js +0 -2
- package/lib/public/response/error.d.ts +0 -2
- package/lib/public/response/error.js +0 -2
- package/lib/public/response/json.d.ts +0 -2
- package/lib/public/response/json.js +0 -2
- package/lib/public/response/redirect.d.ts +0 -2
- package/lib/public/response/redirect.js +0 -2
- package/lib/public/response/sse.d.ts +0 -2
- package/lib/public/response/sse.js +0 -2
- package/lib/public/response/text.d.ts +0 -2
- package/lib/public/response/text.js +0 -2
- package/lib/public/response/view.d.ts +0 -2
- package/lib/public/response/view.js +0 -2
- package/lib/public/response/ws.d.ts +0 -2
- package/lib/public/response/ws.js +0 -2
- package/lib/public/wasm/decode-json.d.ts +0 -5
- package/lib/public/wasm/decode-json.js +0 -3
- package/lib/public/wasm/decode-response.d.ts +0 -3
- package/lib/public/wasm/decode-response.js +0 -3
- package/lib/public/wasm/encode-request.d.ts +0 -3
- package/lib/public/wasm/encode-request.js +0 -3
- package/lib/public/wasm/encode-session.d.ts +0 -3
- package/lib/public/wasm/encode-session.js +0 -3
- package/lib/public/wasm/instantiate.d.ts +0 -4
- package/lib/public/wasm/instantiate.js +0 -3
- /package/lib/private/{frontend → client}/Publish.d.ts +0 -0
- /package/lib/private/{frontend → client}/Publish.js +0 -0
- /package/lib/private/{frontend → client}/Render.js +0 -0
- /package/lib/private/{frontend → client}/ServerData.js +0 -0
- /package/lib/private/{frontend → client}/ServerView.js +0 -0
- /package/lib/private/{frontend → client}/View.js +0 -0
- /package/lib/private/{frontend → client}/ViewOptions.js +0 -0
- /package/lib/private/{frontend → client}/ViewResponse.js +0 -0
- /package/lib/private/client/{spa/storage.d.ts → storage.d.ts} +0 -0
- /package/lib/private/client/{spa/storage.js → storage.js} +0 -0
- /package/lib/private/{database → db}/As.js +0 -0
- /package/lib/private/{database → db}/DataDict.js +0 -0
- /package/lib/private/{database → db}/DataKey.js +0 -0
- /package/lib/private/{database → db}/DataValue.js +0 -0
- /package/lib/private/{database → db}/Query.js +0 -0
- /package/lib/private/{database → db}/QueryBuilder.js +0 -0
- /package/lib/private/{database → db}/Schema.js +0 -0
- /package/lib/private/{database → db}/Sort.js +0 -0
- /package/lib/private/{database → db}/TypeMap.js +0 -0
- /package/lib/private/{database → db}/Types.js +0 -0
- /package/lib/private/{database → db}/primary.d.ts +0 -0
- /package/lib/private/{database → db}/primary.js +0 -0
- /package/lib/private/{database → db}/symbol.d.ts +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import E from "#errors";
|
|
2
|
+
import dict from "@rcompat/dict";
|
|
3
|
+
import env from "@rcompat/env";
|
|
4
|
+
import ParseError from "pema/ParseError";
|
|
5
|
+
const s_attach = Symbol("attach");
|
|
6
|
+
const s_config = Symbol("config");
|
|
7
|
+
export { s_attach, s_config };
|
|
8
|
+
export default class AppFacade {
|
|
9
|
+
#config;
|
|
10
|
+
#app;
|
|
11
|
+
#env;
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.#config = config;
|
|
14
|
+
}
|
|
15
|
+
[s_attach](app) {
|
|
16
|
+
this.#app = app;
|
|
17
|
+
const schema = this.#config.env.schema;
|
|
18
|
+
if (schema !== undefined) {
|
|
19
|
+
try {
|
|
20
|
+
this.#env = schema.coerce(env.toJSON());
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (ParseError.is(error))
|
|
24
|
+
throw E.env_invalid_schema(error);
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
get [s_config]() {
|
|
30
|
+
return this.#config;
|
|
31
|
+
}
|
|
32
|
+
config(path) {
|
|
33
|
+
return dict.get(this.#config, path);
|
|
34
|
+
}
|
|
35
|
+
env(key) {
|
|
36
|
+
if (this.#env !== undefined) {
|
|
37
|
+
if (!(key in this.#env))
|
|
38
|
+
throw E.env_missing_key(key);
|
|
39
|
+
return this.#env[key];
|
|
40
|
+
}
|
|
41
|
+
return env.get(key);
|
|
42
|
+
}
|
|
43
|
+
get #with() {
|
|
44
|
+
if (!this.#app)
|
|
45
|
+
throw new Error("ServeApp not bound yet (used too early)");
|
|
46
|
+
return this.#app;
|
|
47
|
+
}
|
|
48
|
+
view(name) {
|
|
49
|
+
return this.#with.loadView(name);
|
|
50
|
+
}
|
|
51
|
+
;
|
|
52
|
+
get root() {
|
|
53
|
+
return this.#with.root;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=Facade.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import App from "#App";
|
|
2
2
|
import type Binder from "#Binder";
|
|
3
|
-
import type FileRef from "@rcompat/fs
|
|
4
|
-
import type Dict from "@rcompat/type
|
|
3
|
+
import type { FileRef } from "@rcompat/fs";
|
|
4
|
+
import type { Dict } from "@rcompat/type";
|
|
5
5
|
import type { Plugin } from "esbuild";
|
|
6
6
|
type PluginType = "server" | "client";
|
|
7
7
|
export default class BuildApp extends App {
|
package/lib/private/build/App.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import App from "#App";
|
|
2
2
|
import build from "#build/hook";
|
|
3
|
-
import log from "#log";
|
|
4
3
|
import resolve_paths from "#paths";
|
|
5
4
|
import s_layout_depth from "#symbol/layout-depth";
|
|
6
5
|
export default class BuildApp extends App {
|
|
@@ -19,7 +18,6 @@ export default class BuildApp extends App {
|
|
|
19
18
|
#plugins = [];
|
|
20
19
|
#entrypoint_imports = [];
|
|
21
20
|
async buildInit() {
|
|
22
|
-
log.system("starting {0} build in {1} mode", this.target.name, this.mode);
|
|
23
21
|
this.#paths = await resolve_paths(this.root, this.config("paths"));
|
|
24
22
|
await build(this);
|
|
25
23
|
}
|
|
@@ -2,7 +2,8 @@ import plugin_alias from "#build/client/plugin/alias";
|
|
|
2
2
|
import plugin_entrypoint from "#build/client/plugin/entrypoint";
|
|
3
3
|
import plugin_frontend from "#build/client/plugin/frontend";
|
|
4
4
|
import plugin_server_stamp from "#build/client/plugin/server-stamp";
|
|
5
|
-
import
|
|
5
|
+
import plugin_view from "#build/client/plugin/view";
|
|
6
|
+
import plugin_app_request from "#build/shared/plugin/app-request";
|
|
6
7
|
import location from "#location";
|
|
7
8
|
import * as esbuild from "esbuild";
|
|
8
9
|
const write_bootstrap = async (app, mode) => {
|
|
@@ -19,7 +20,7 @@ const write_bootstrap = async (app, mode) => {
|
|
|
19
20
|
` : `
|
|
20
21
|
const session_config = undefined;
|
|
21
22
|
`}
|
|
22
|
-
import
|
|
23
|
+
import facade from "$:app";
|
|
23
24
|
|
|
24
25
|
${app.i18n_active ? `
|
|
25
26
|
import i18n from "app:config:i18n";
|
|
@@ -30,13 +31,13 @@ const write_bootstrap = async (app, mode) => {
|
|
|
30
31
|
|
|
31
32
|
const app = await serve(import.meta.url, {
|
|
32
33
|
assets,
|
|
33
|
-
|
|
34
|
+
facade,
|
|
34
35
|
routes,
|
|
35
36
|
views,
|
|
36
37
|
pages,
|
|
37
38
|
mode: "${mode}",
|
|
38
|
-
session_config,
|
|
39
|
-
i18n_config,
|
|
39
|
+
session: session_config,
|
|
40
|
+
i18n: i18n_config,
|
|
40
41
|
target: "${app.target.name}",
|
|
41
42
|
});
|
|
42
43
|
|
|
@@ -47,14 +48,20 @@ const write_bootstrap = async (app, mode) => {
|
|
|
47
48
|
export default async function build_client(app) {
|
|
48
49
|
app.plugin("client", plugin_frontend(app));
|
|
49
50
|
app.plugin("client", plugin_alias(app));
|
|
51
|
+
app.plugin("client", plugin_view(app));
|
|
52
|
+
app.plugin("client", plugin_app_request(app));
|
|
50
53
|
app.plugin("client", plugin_server_stamp(app));
|
|
51
54
|
app.plugin("client", plugin_entrypoint(app));
|
|
52
|
-
const imports = await app.path.static.
|
|
55
|
+
const imports = await app.path.static.files({
|
|
56
|
+
recursive: true,
|
|
57
|
+
filter: file => /\.(?:js|ts|css)$/.test(file.path),
|
|
58
|
+
});
|
|
53
59
|
imports.forEach(file => {
|
|
54
60
|
const src = file.debase(app.path.static);
|
|
55
61
|
app.entrypoint(`import "./${location.static}${src}";`);
|
|
56
62
|
});
|
|
57
63
|
app.entrypoint("import \"primate/client/app\";");
|
|
64
|
+
const tsconfig = app.root.join("tsconfig.json");
|
|
58
65
|
const conditions = app.conditions.values();
|
|
59
66
|
const build_options = {
|
|
60
67
|
plugins: app.plugins("client"),
|
|
@@ -62,15 +69,17 @@ export default async function build_client(app) {
|
|
|
62
69
|
entryPoints: ["app:client"],
|
|
63
70
|
conditions: ["style", "browser", "default", "module", ...conditions],
|
|
64
71
|
resolveExtensions: [".ts", ".js", ...app.frontendExtensions],
|
|
65
|
-
tsconfig
|
|
72
|
+
...await tsconfig.exists() ? { tsconfig: tsconfig.path } : {},
|
|
66
73
|
bundle: true,
|
|
67
74
|
format: "esm",
|
|
68
75
|
};
|
|
76
|
+
const NO_HR = app.config("livereload.exclude") ?? [];
|
|
69
77
|
const mode_options = app.mode === "development"
|
|
70
78
|
? {
|
|
71
79
|
banner: {
|
|
72
|
-
js: `
|
|
73
|
-
|
|
80
|
+
js: `const NO_HR=${JSON.stringify(NO_HR)};
|
|
81
|
+
new EventSource("/esbuild").addEventListener("change",
|
|
82
|
+
() => !NO_HR.includes(location.pathname) && location.reload());`,
|
|
74
83
|
},
|
|
75
84
|
entryNames: "app",
|
|
76
85
|
minify: false,
|
|
@@ -86,7 +95,7 @@ export default async function build_client(app) {
|
|
|
86
95
|
const context = await esbuild.context(options);
|
|
87
96
|
await context.watch();
|
|
88
97
|
await context.rebuild();
|
|
89
|
-
await context.serve(
|
|
98
|
+
await context.serve(app.livereload);
|
|
90
99
|
}
|
|
91
100
|
else {
|
|
92
101
|
await esbuild.build(options);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default function plugin_client_request(app) {
|
|
2
|
+
return {
|
|
3
|
+
name: "primate/client/app/request",
|
|
4
|
+
setup(build) {
|
|
5
|
+
build.onResolve({ filter: /^app:request$/ }, ({ importer }) => {
|
|
6
|
+
const frontend = [...app.frontends.entries()]
|
|
7
|
+
.find(([, exts]) => exts.some(ext => importer.endsWith(ext)));
|
|
8
|
+
return frontend !== undefined
|
|
9
|
+
? { namespace: "request", path: frontend[0] }
|
|
10
|
+
: undefined;
|
|
11
|
+
});
|
|
12
|
+
build.onLoad({ filter: /.*/, namespace: "request" }, async ({ path }) => {
|
|
13
|
+
const contents = `export { default } from "@primate/${path}/request";`;
|
|
14
|
+
return { contents, resolveDir: app.root.path };
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=app-request.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import location from "#location";
|
|
2
|
+
export default function plugin_client_view(app) {
|
|
3
|
+
return {
|
|
4
|
+
name: "primate/client/view",
|
|
5
|
+
setup(build) {
|
|
6
|
+
build.onResolve({ filter: /^view:/ }, args => {
|
|
7
|
+
const name = args.path.slice("view:".length);
|
|
8
|
+
return { path: app.root.join(location.views, name).path };
|
|
9
|
+
});
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=view.js.map
|
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
import build_client from "#build/client/index";
|
|
2
2
|
import build_server from "#build/server/index";
|
|
3
|
-
import
|
|
3
|
+
import E from "#errors";
|
|
4
4
|
import location from "#location";
|
|
5
5
|
import log from "#log";
|
|
6
|
-
import reducer from "#reducer";
|
|
7
6
|
import $router from "#request/router";
|
|
8
7
|
import s_layout_depth from "#symbol/layout-depth";
|
|
9
|
-
import
|
|
10
|
-
|
|
8
|
+
import c from "@rcompat/cli/color";
|
|
9
|
+
import fs from "@rcompat/fs";
|
|
10
|
+
const core_pkg = await fs.project.package(import.meta.dirname);
|
|
11
11
|
const { version } = await core_pkg.json();
|
|
12
12
|
async function pre(app) {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
throw
|
|
13
|
+
const build_json = app.path.build.join("build.json");
|
|
14
|
+
const build_path = app.path.build;
|
|
15
|
+
if (await build_path.exists() && !await build_json.exists()) {
|
|
16
|
+
throw E.build_previous_build_exists(build_path);
|
|
17
17
|
}
|
|
18
|
-
// remove build directory if exists
|
|
19
18
|
await app.path.build.remove();
|
|
20
19
|
await app.path.build.create();
|
|
21
|
-
// touch a .primate file to indicate this is a Primate build directory
|
|
22
|
-
await dot_primate.write(version);
|
|
23
20
|
await app.runpath(location.client).create();
|
|
24
21
|
const stamp = app.runpath("client", "server-stamp.js");
|
|
25
22
|
await stamp.write("export default 0;\n");
|
|
26
|
-
// this has to occur before post, so that layout depth is available for
|
|
27
|
-
// compiling root views
|
|
28
|
-
// bindings should have been registered during `init`
|
|
29
23
|
const router = await $router(app.path.routes, app.extensions);
|
|
30
24
|
app.set(s_layout_depth, router.depth("layout"));
|
|
31
25
|
const i18n_ts = app.path.config.join("i18n.ts");
|
|
@@ -34,16 +28,28 @@ async function pre(app) {
|
|
|
34
28
|
const session_ts = app.path.config.join("session.ts");
|
|
35
29
|
const session_js = app.path.config.join("session.js");
|
|
36
30
|
app.session_active = await session_ts.exists() || await session_js.exists();
|
|
37
|
-
return app;
|
|
38
31
|
}
|
|
39
|
-
;
|
|
40
32
|
async function post(app) {
|
|
41
33
|
await build_client(app);
|
|
42
34
|
await build_server(app);
|
|
43
|
-
|
|
35
|
+
// write build.json with version and migration_version
|
|
36
|
+
const migrations_dir = app.root.join("migrations");
|
|
37
|
+
let migration_version = 0;
|
|
38
|
+
if (await migrations_dir.exists()) {
|
|
39
|
+
const files = await migrations_dir.files({ filter: /\d+-.*\.[jt]s$/ });
|
|
40
|
+
migration_version = files.length === 0 ? 0 : Math.max(...files.map(f => parseInt(f.name.split("-")[0])));
|
|
41
|
+
}
|
|
42
|
+
await app.path.build.join("build.json").writeJSON({
|
|
43
|
+
version,
|
|
44
|
+
migration_version,
|
|
45
|
+
});
|
|
46
|
+
log.print(`✓ build path ${c.dim(app.path.build.path)}\n`);
|
|
44
47
|
app.cleanup();
|
|
45
48
|
return app;
|
|
46
49
|
}
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
export default async function run_build_hooks(app) {
|
|
51
|
+
await pre(app);
|
|
52
|
+
await app.build_hooks(app);
|
|
53
|
+
return post(app);
|
|
54
|
+
}
|
|
49
55
|
//# sourceMappingURL=hook.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Flags from "#Flags";
|
|
2
|
-
|
|
2
|
+
import type { FileRef } from "@rcompat/fs";
|
|
3
|
+
declare const _default: (root: FileRef, input: typeof Flags.input) => Promise<true | undefined>;
|
|
3
4
|
export default _default;
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
+
import { s_config } from "#app/Facade";
|
|
1
2
|
import BuildApp from "#build/App";
|
|
2
3
|
import bye from "#bye";
|
|
3
4
|
import default_config from "#config/index";
|
|
4
|
-
import
|
|
5
|
-
import log from "#log";
|
|
6
|
-
import root from "@rcompat/fs/project/root";
|
|
7
|
-
import empty from "@rcompat/record/empty";
|
|
5
|
+
import E from "#errors";
|
|
8
6
|
import Flags from "#Flags";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
import log from "#log";
|
|
8
|
+
import dict from "@rcompat/dict";
|
|
9
|
+
const no_config = (config) => config === undefined || dict.empty(config);
|
|
10
|
+
async function find_config(root) {
|
|
11
|
+
const ts_config = root.join("config/app.ts");
|
|
12
12
|
if (await ts_config.exists())
|
|
13
13
|
return ts_config;
|
|
14
|
-
const js_config =
|
|
14
|
+
const js_config = root.join("config/app.js");
|
|
15
15
|
if (await js_config.exists())
|
|
16
16
|
return js_config;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
throw fail("error in config file {0}", error);
|
|
29
|
-
}
|
|
17
|
+
}
|
|
18
|
+
;
|
|
19
|
+
async function get_config(root) {
|
|
20
|
+
const config_file = await find_config(root);
|
|
21
|
+
if (config_file === undefined)
|
|
22
|
+
return default_config()[s_config];
|
|
23
|
+
try {
|
|
24
|
+
const imported = (await config_file.import("default"))[s_config];
|
|
25
|
+
if (no_config(imported))
|
|
26
|
+
throw E.config_file_empty(config_file);
|
|
27
|
+
return imported;
|
|
30
28
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
catch (error) {
|
|
30
|
+
throw E.config_file_error(config_file, error);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
;
|
|
34
|
+
export default async (root, input) => {
|
|
34
35
|
try {
|
|
35
|
-
const package_root = await root();
|
|
36
36
|
const flags = Flags.parse(input);
|
|
37
|
-
const config = await get_config(
|
|
38
|
-
const app = await new BuildApp(
|
|
37
|
+
const config = await get_config(root);
|
|
38
|
+
const app = await new BuildApp(root, config, flags).init();
|
|
39
39
|
await app.buildInit();
|
|
40
40
|
return true;
|
|
41
41
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TransformOptions } from "esbuild";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
readonly angular: TransformOptions;
|
|
4
|
+
readonly react: TransformOptions;
|
|
5
|
+
readonly solid: TransformOptions;
|
|
6
|
+
readonly typescript: TransformOptions;
|
|
7
|
+
readonly voby: TransformOptions;
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const angular = {
|
|
2
|
+
loader: "ts",
|
|
3
|
+
tsconfigRaw: {
|
|
4
|
+
compilerOptions: {
|
|
5
|
+
experimentalDecorators: true,
|
|
6
|
+
},
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
const react = {
|
|
10
|
+
jsx: "automatic",
|
|
11
|
+
loader: "tsx",
|
|
12
|
+
};
|
|
13
|
+
const solid = {
|
|
14
|
+
format: "esm",
|
|
15
|
+
jsx: "preserve",
|
|
16
|
+
loader: "tsx",
|
|
17
|
+
target: "esnext",
|
|
18
|
+
};
|
|
19
|
+
const typescript = {
|
|
20
|
+
loader: "ts",
|
|
21
|
+
};
|
|
22
|
+
const voby = {
|
|
23
|
+
jsx: "automatic",
|
|
24
|
+
loader: "tsx",
|
|
25
|
+
tsconfigRaw: {
|
|
26
|
+
compilerOptions: {
|
|
27
|
+
jsx: "react-jsx",
|
|
28
|
+
jsxImportSource: "voby",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
export default {
|
|
33
|
+
angular,
|
|
34
|
+
react,
|
|
35
|
+
solid,
|
|
36
|
+
typescript,
|
|
37
|
+
voby,
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import plugin_assets from "#build/server/plugin/assets";
|
|
2
2
|
import plugin_config from "#build/server/plugin/config";
|
|
3
|
-
import plugin_database_default from "#build/server/plugin/database-default";
|
|
4
3
|
import plugin_frontend from "#build/server/plugin/frontend";
|
|
5
|
-
import
|
|
4
|
+
import plugin_live_reload from "#build/server/plugin/live-reload";
|
|
6
5
|
import plugin_native_addons from "#build/server/plugin/native-addons";
|
|
7
6
|
import plugin_node_imports from "#build/server/plugin/node-imports";
|
|
8
7
|
import plugin_requires from "#build/server/plugin/requires";
|
|
9
8
|
import plugin_roots from "#build/server/plugin/roots";
|
|
10
9
|
import plugin_route from "#build/server/plugin/route";
|
|
11
|
-
import plugin_store from "#build/server/plugin/store";
|
|
12
|
-
import plugin_store_wrap from "#build/server/plugin/store-wrap";
|
|
13
10
|
import plugin_stores from "#build/server/plugin/stores";
|
|
14
11
|
import plugin_view from "#build/server/plugin/view";
|
|
15
12
|
import plugin_views from "#build/server/plugin/views";
|
|
16
13
|
import plugin_virtual_pages from "#build/server/plugin/virtual-pages";
|
|
17
14
|
import plugin_virtual_routes from "#build/server/plugin/virtual-routes";
|
|
18
15
|
import plugin_wasm from "#build/server/plugin/wasm";
|
|
16
|
+
import plugin_app_request from "#build/shared/plugin/app-request";
|
|
19
17
|
import runtime from "@rcompat/runtime";
|
|
20
18
|
import * as esbuild from "esbuild";
|
|
21
19
|
const externals = {
|
|
@@ -29,16 +27,11 @@ const conditions = {
|
|
|
29
27
|
deno: ["deno", "node"],
|
|
30
28
|
};
|
|
31
29
|
export default async function build_server(app) {
|
|
32
|
-
const extensions = app.frontendExtensions;
|
|
33
30
|
app.plugin("server", plugin_node_imports(app));
|
|
34
|
-
|
|
35
|
-
app.plugin("server", plugin_frontend(app));
|
|
31
|
+
app.plugin("server", plugin_frontend(app));
|
|
36
32
|
app.plugin("server", plugin_view(app));
|
|
37
|
-
app.plugin("server", plugin_store(app));
|
|
38
|
-
app.plugin("server", plugin_store_wrap(app));
|
|
39
|
-
app.plugin("server", plugin_database_default(app));
|
|
40
33
|
if (app.mode === "development")
|
|
41
|
-
app.plugin("server",
|
|
34
|
+
app.plugin("server", plugin_live_reload(app));
|
|
42
35
|
app.plugin("server", plugin_virtual_pages(app));
|
|
43
36
|
app.plugin("server", plugin_virtual_routes(app));
|
|
44
37
|
app.plugin("server", plugin_route(app));
|
|
@@ -50,6 +43,9 @@ export default async function build_server(app) {
|
|
|
50
43
|
app.plugin("server", plugin_requires(app));
|
|
51
44
|
app.plugin("server", plugin_config(app));
|
|
52
45
|
app.plugin("server", plugin_wasm(app));
|
|
46
|
+
app.plugin("server", plugin_app_request(app));
|
|
47
|
+
const runtime_name = runtime.name;
|
|
48
|
+
const tsconfig = app.root.join("tsconfig.json");
|
|
53
49
|
const options = {
|
|
54
50
|
entryPoints: [app.path.build.join("serve.js").path],
|
|
55
51
|
outfile: app.path.build.join("server.js").path,
|
|
@@ -57,7 +53,7 @@ export default async function build_server(app) {
|
|
|
57
53
|
platform: "node",
|
|
58
54
|
format: "esm",
|
|
59
55
|
packages: app.mode === "development" ? "external" : undefined,
|
|
60
|
-
external: [...externals[
|
|
56
|
+
external: [...externals[runtime_name]],
|
|
61
57
|
loader: {
|
|
62
58
|
".json": "json",
|
|
63
59
|
},
|
|
@@ -70,9 +66,9 @@ export default async function build_server(app) {
|
|
|
70
66
|
nodePaths: [app.root.join("node_modules").path],
|
|
71
67
|
resolveExtensions: app.extensions,
|
|
72
68
|
absWorkingDir: app.root.path,
|
|
73
|
-
tsconfig
|
|
69
|
+
...await tsconfig.exists() ? { tsconfig: tsconfig.path } : {},
|
|
74
70
|
conditions: [
|
|
75
|
-
...conditions[
|
|
71
|
+
...conditions[runtime_name],
|
|
76
72
|
"module", "import", "runtime", "default",
|
|
77
73
|
...app.conditions
|
|
78
74
|
],
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default function plugin_server_request(app) {
|
|
2
|
+
return {
|
|
3
|
+
name: "primate/server/app/request",
|
|
4
|
+
setup(build) {
|
|
5
|
+
build.onResolve({ filter: /^app:request$/ }, ({ importer }) => {
|
|
6
|
+
const frontend = [...app.frontends.entries()]
|
|
7
|
+
.find(([, exts]) => exts.some(ext => importer.endsWith(ext)));
|
|
8
|
+
return frontend !== undefined
|
|
9
|
+
? { namespace: "request", path: frontend[0] }
|
|
10
|
+
: undefined;
|
|
11
|
+
});
|
|
12
|
+
build.onLoad({ filter: /.*/, namespace: "request" }, async ({ path }) => {
|
|
13
|
+
const contents = `export { default } from "@primate/${path}/request";`;
|
|
14
|
+
return { contents, resolveDir: app.root.path };
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=app-request.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import location from "#location";
|
|
2
|
-
import
|
|
2
|
+
import { MIME } from "@rcompat/http";
|
|
3
3
|
function bytes2base64(bytes) {
|
|
4
4
|
const chunk_size = 0x8000;
|
|
5
5
|
let result = "";
|
|
@@ -18,28 +18,30 @@ export default function plugin_server_assets(app) {
|
|
|
18
18
|
});
|
|
19
19
|
build.onLoad({ filter: /.*/, namespace: "primate-assets" }, async () => {
|
|
20
20
|
if (app.mode === "production") {
|
|
21
|
-
const client_files = await app.runpath(location.client).
|
|
21
|
+
const client_files = await app.runpath(location.client).files({
|
|
22
|
+
recursive: true,
|
|
23
|
+
});
|
|
22
24
|
const client_assets = {};
|
|
23
25
|
for (const file of client_files) {
|
|
24
26
|
const pathname = `/${file.name}`;
|
|
25
27
|
const bytes = await file.bytes();
|
|
26
28
|
const base64 = bytes2base64(bytes);
|
|
27
29
|
client_assets[pathname] = {
|
|
28
|
-
mime: resolve(file.name),
|
|
30
|
+
mime: MIME.resolve(file.name),
|
|
29
31
|
data: base64,
|
|
30
32
|
};
|
|
31
33
|
}
|
|
32
34
|
const static_dir = app.root.join(location.static);
|
|
33
|
-
const static_files = await static_dir.
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
const static_files = await static_dir.files({
|
|
36
|
+
recursive: true,
|
|
37
|
+
});
|
|
36
38
|
const static_assets = {};
|
|
37
39
|
for (const file of static_files) {
|
|
38
40
|
const pathname = file.debase(static_dir).path;
|
|
39
41
|
const bytes = await file.bytes();
|
|
40
42
|
const base64 = bytes2base64(bytes);
|
|
41
43
|
static_assets[pathname] = {
|
|
42
|
-
mime: resolve(file.name),
|
|
44
|
+
mime: MIME.resolve(file.name),
|
|
43
45
|
data: base64,
|
|
44
46
|
};
|
|
45
47
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import fail from "#fail";
|
|
2
1
|
export default function plugin_server_config(app) {
|
|
3
2
|
return {
|
|
4
3
|
name: "primate/server/config",
|
|
5
4
|
setup(build) {
|
|
6
|
-
build.onResolve({ filter: /^app
|
|
5
|
+
build.onResolve({ filter: /^(\$:app)$/ }, async () => {
|
|
7
6
|
const ts = app.path.config.join("app.ts");
|
|
8
7
|
if (await ts.exists())
|
|
9
8
|
return { path: ts.path };
|
|
@@ -34,8 +33,16 @@ export default function plugin_server_config(app) {
|
|
|
34
33
|
const js = app.path.config.join(`${name}.js`);
|
|
35
34
|
if (await js.exists())
|
|
36
35
|
return { path: js.path };
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
return {
|
|
37
|
+
path: `app-config-${name}-default`,
|
|
38
|
+
namespace: "primate-config-default",
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
build.onLoad({ filter: /^app-config-.+-default$/, namespace: "primate-config-default" }, () => {
|
|
42
|
+
return {
|
|
43
|
+
contents: "export default null;",
|
|
44
|
+
loader: "js",
|
|
45
|
+
};
|
|
39
46
|
});
|
|
40
47
|
},
|
|
41
48
|
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "@rcompat/fs";
|
|
2
2
|
export default function plugin_server_frontend(app) {
|
|
3
3
|
const filter = new RegExp(`(${app.frontendExtensions.map(e => e.replace(".", "\\.")).join("|")})$`);
|
|
4
4
|
return {
|
|
5
5
|
name: "primate/server/frontend",
|
|
6
6
|
setup(build) {
|
|
7
|
+
if (app.frontendExtensions.length === 0)
|
|
8
|
+
return;
|
|
7
9
|
build.onLoad({ filter, namespace: "file" }, async (args) => {
|
|
8
|
-
const file =
|
|
10
|
+
const file = fs.ref(args.path);
|
|
9
11
|
const binder = app.binder(file);
|
|
10
12
|
if (!binder)
|
|
11
13
|
return null;
|