remult 0.17.0-exp.8 → 0.17.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/esm/index.d.ts +1 -2
- package/esm/postgres/schema-builder.js +4 -4
- package/esm/remult-express.d.ts +0 -24
- package/esm/remult-express.js +1 -113
- package/esm/remult-fastify.js +1 -1
- package/esm/remult-fresh.js +2 -2
- package/esm/remult-knex/index.js +11 -4
- package/{core → esm}/server/core.d.ts +0 -0
- package/esm/{core/server → server}/core.js +0 -0
- package/esm/server/expressBridge.d.ts +11 -45
- package/esm/server/expressBridge.js +22 -29
- package/esm/server/index.d.ts +3 -1
- package/esm/server/index.js +6 -1
- package/esm/src/column.d.ts +3 -3
- package/esm/src/context.d.ts +0 -17
- package/esm/src/context.js +0 -76
- package/esm/src/data-api.js +11 -44
- package/esm/src/data-providers/array-entity-data-provider.js +16 -1
- package/esm/src/data-providers/rest-data-provider.d.ts +0 -4
- package/esm/src/data-providers/rest-data-provider.js +7 -11
- package/esm/src/data-providers/sql-database.js +1 -1
- package/esm/src/data-providers/web-sql-data-provider.js +1 -1
- package/esm/src/remult-proxy.d.ts +1 -1
- package/esm/src/remult-proxy.js +9 -11
- package/esm/src/remult3/RepositoryImplementation.d.ts +3 -6
- package/esm/src/remult3/RepositoryImplementation.js +22 -38
- package/esm/src/remult3/remult3.d.ts +6 -10
- package/esm/src/server-action.d.ts +0 -4
- package/esm/src/server-action.js +12 -10
- package/esm/src/shared-tests/db-tests-setup.d.ts +1 -1
- package/esm/src/shared-tests/db-tests-setup.js +3 -1
- package/esm/src/sort.d.ts +0 -1
- package/esm/src/sort.js +0 -18
- package/esm/src/tests/testHelper.spec.d.ts +0 -2
- package/esm/src/tests/testHelper.spec.js +57 -60
- package/esm/src/valueConverters.js +3 -1
- package/package.json +9 -1
- package/remult-express.js +2 -4
- package/remult-fastify.js +2 -4
- package/remult-fresh.js +1 -1
- package/{esm/core/server → server}/core.d.ts +0 -0
- package/{core/server → server}/core.js +0 -0
- package/server/expressBridge.d.ts +1 -1
- package/server/expressBridge.js +3 -3
- package/server/index.d.ts +3 -1
- package/server/index.js +7 -2
- package/src/shared-tests/db-tests-setup.js +2 -1
- package/core/assign.d.ts +0 -1
- package/core/assign.js +0 -9
- package/core/classType.d.ts +0 -3
- package/core/classType.js +0 -2
- package/core/graphql.d.ts +0 -5
- package/core/graphql.js +0 -164
- package/core/index.d.ts +0 -25
- package/core/index.js +0 -64
- package/core/inputTypes.d.ts +0 -9
- package/core/inputTypes.js +0 -16
- package/core/postgres/index.d.ts +0 -2
- package/core/postgres/index.js +0 -5
- package/core/postgres/postgres-data-provider.d.ts +0 -28
- package/core/postgres/postgres-data-provider.js +0 -159
- package/core/postgres/schema-builder.d.ts +0 -15
- package/core/postgres/schema-builder.js +0 -270
- package/core/remult-express.d.ts +0 -6
- package/core/remult-express.js +0 -34
- package/core/remult-fastify.d.ts +0 -3
- package/core/remult-fastify.js +0 -62
- package/core/remult-fresh.d.ts +0 -22
- package/core/remult-fresh.js +0 -59
- package/core/remult-knex/index.d.ts +0 -51
- package/core/remult-knex/index.js +0 -813
- package/core/remult-mongo.d.ts +0 -9
- package/core/remult-mongo.js +0 -455
- package/core/server/JsonEntityFileStorage.d.ts +0 -10
- package/core/server/JsonEntityFileStorage.js +0 -35
- package/core/server/expressBridge.d.ts +0 -102
- package/core/server/expressBridge.js +0 -1077
- package/core/server/index.d.ts +0 -4
- package/core/server/index.js +0 -13
- package/core/server/initAsyncHooks.d.ts +0 -1
- package/core/server/initAsyncHooks.js +0 -13
- package/core/src/__EntityValueProvider.d.ts +0 -10
- package/core/src/__EntityValueProvider.js +0 -2
- package/core/src/__RowsOfDataForTesting.d.ts +0 -3
- package/core/src/__RowsOfDataForTesting.js +0 -2
- package/core/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -6
- package/core/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -241
- package/core/src/backend-tests/my-test.backend-spec.d.ts +0 -1
- package/core/src/backend-tests/my-test.backend-spec.js +0 -217
- package/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
- package/core/src/backend-tests/test-http-server.backend-spec.js +0 -351
- package/core/src/column-interfaces.d.ts +0 -95
- package/core/src/column-interfaces.js +0 -11
- package/core/src/column.d.ts +0 -49
- package/core/src/column.js +0 -175
- package/core/src/context.d.ts +0 -115
- package/core/src/context.js +0 -403
- package/core/src/data-api.d.ts +0 -33
- package/core/src/data-api.js +0 -368
- package/core/src/data-interfaces.d.ts +0 -37
- package/core/src/data-interfaces.js +0 -16
- package/core/src/data-providers/array-entity-data-provider.d.ts +0 -22
- package/core/src/data-providers/array-entity-data-provider.js +0 -379
- package/core/src/data-providers/in-memory-database.d.ts +0 -9
- package/core/src/data-providers/in-memory-database.js +0 -31
- package/core/src/data-providers/json-data-provider.d.ts +0 -12
- package/core/src/data-providers/json-data-provider.js +0 -88
- package/core/src/data-providers/rest-data-provider.d.ts +0 -38
- package/core/src/data-providers/rest-data-provider.js +0 -301
- package/core/src/data-providers/sql-database.d.ts +0 -16
- package/core/src/data-providers/sql-database.js +0 -444
- package/core/src/data-providers/web-sql-data-provider.d.ts +0 -18
- package/core/src/data-providers/web-sql-data-provider.js +0 -182
- package/core/src/entity.d.ts +0 -82
- package/core/src/entity.js +0 -2
- package/core/src/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -50
- package/core/src/filter/filter-consumer-bridge-to-sql-request.js +0 -281
- package/core/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
- package/core/src/filter/filter-consumer-bridge-to-url-builder.js +0 -2
- package/core/src/filter/filter-interfaces.d.ts +0 -85
- package/core/src/filter/filter-interfaces.js +0 -630
- package/core/src/id-entity.d.ts +0 -4
- package/core/src/id-entity.js +0 -17
- package/core/src/remult-proxy.d.ts +0 -2
- package/core/src/remult-proxy.js +0 -91
- package/core/src/remult3/DecoratorReplacer.d.ts +0 -10
- package/core/src/remult3/DecoratorReplacer.js +0 -24
- package/core/src/remult3/RepositoryImplementation.d.ts +0 -323
- package/core/src/remult3/RepositoryImplementation.js +0 -2970
- package/core/src/remult3/index.d.ts +0 -2
- package/core/src/remult3/index.js +0 -5
- package/core/src/remult3/remult3.d.ts +0 -312
- package/core/src/remult3/remult3.js +0 -2
- package/core/src/server-action.d.ts +0 -72
- package/core/src/server-action.js +0 -612
- package/core/src/shared-tests/db-tests-setup.d.ts +0 -23
- package/core/src/shared-tests/db-tests-setup.js +0 -172
- package/core/src/shared-tests/db-tests.db-tests.d.ts +0 -26
- package/core/src/shared-tests/db-tests.db-tests.js +0 -1629
- package/core/src/shared-tests/deleteAll.d.ts +0 -2
- package/core/src/shared-tests/deleteAll.js +0 -21
- package/core/src/shared-tests/entityWithValidations.d.ts +0 -14
- package/core/src/shared-tests/entityWithValidations.js +0 -80
- package/core/src/shared-tests/index.d.ts +0 -4
- package/core/src/shared-tests/index.js +0 -6
- package/core/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
- package/core/src/shared-tests/test-custom-id-column.spec.js +0 -111
- package/core/src/shared-tests/test-special-value.spec.d.ts +0 -10
- package/core/src/shared-tests/test-special-value.spec.js +0 -128
- package/core/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
- package/core/src/shared-tests/test-update-with-null.spec.js +0 -87
- package/core/src/sort.d.ts +0 -15
- package/core/src/sort.js +0 -139
- package/core/src/sql-command.d.ts +0 -15
- package/core/src/sql-command.js +0 -2
- package/core/src/tests/Done.d.ts +0 -5
- package/core/src/tests/Done.js +0 -17
- package/core/src/tests/TestDataApiResponse.d.ts +0 -10
- package/core/src/tests/TestDataApiResponse.js +0 -29
- package/core/src/tests/c.d.ts +0 -8
- package/core/src/tests/c.js +0 -28
- package/core/src/tests/createData.d.ts +0 -7
- package/core/src/tests/createData.js +0 -50
- package/core/src/tests/d.d.ts +0 -6
- package/core/src/tests/d.js +0 -27
- package/core/src/tests/dWithPrefilter.d.ts +0 -7
- package/core/src/tests/dWithPrefilter.js +0 -45
- package/core/src/tests/entityForCustomFilter.d.ts +0 -16
- package/core/src/tests/entityForCustomFilter.js +0 -68
- package/core/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
- package/core/src/tests/entityWithValidationsOnColumn.js +0 -29
- package/core/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
- package/core/src/tests/frontend-database-tests-setup.spec.js +0 -101
- package/core/src/tests/h.d.ts +0 -6
- package/core/src/tests/h.js +0 -44
- package/core/src/tests/remult-3-entities.d.ts +0 -23
- package/core/src/tests/remult-3-entities.js +0 -81
- package/core/src/tests/tasks.d.ts +0 -6
- package/core/src/tests/tasks.js +0 -30
- package/core/src/tests/testHelper.spec.d.ts +0 -34
- package/core/src/tests/testHelper.spec.js +0 -374
- package/core/src/tests/testModel/models.d.ts +0 -16
- package/core/src/tests/testModel/models.js +0 -39
- package/core/src/validators.d.ts +0 -14
- package/core/src/validators.js +0 -60
- package/core/src/valueConverters.d.ts +0 -12
- package/core/src/valueConverters.js +0 -170
- package/core/urlBuilder.d.ts +0 -6
- package/core/urlBuilder.js +0 -25
- package/esm/core/assign.d.ts +0 -1
- package/esm/core/assign.js +0 -5
- package/esm/core/classType.d.ts +0 -3
- package/esm/core/classType.js +0 -1
- package/esm/core/graphql.d.ts +0 -5
- package/esm/core/graphql.js +0 -102
- package/esm/core/index.d.ts +0 -25
- package/esm/core/index.js +0 -24
- package/esm/core/inputTypes.d.ts +0 -9
- package/esm/core/inputTypes.js +0 -9
- package/esm/core/postgres/index.d.ts +0 -2
- package/esm/core/postgres/index.js +0 -2
- package/esm/core/postgres/postgres-data-provider.d.ts +0 -28
- package/esm/core/postgres/postgres-data-provider.js +0 -97
- package/esm/core/postgres/schema-builder.d.ts +0 -15
- package/esm/core/postgres/schema-builder.js +0 -128
- package/esm/core/remult-express.d.ts +0 -6
- package/esm/core/remult-express.js +0 -23
- package/esm/core/remult-fastify.d.ts +0 -3
- package/esm/core/remult-fastify.js +0 -53
- package/esm/core/remult-fresh.d.ts +0 -22
- package/esm/core/remult-fresh.js +0 -37
- package/esm/core/remult-knex/index.d.ts +0 -51
- package/esm/core/remult-knex/index.js +0 -392
- package/esm/core/remult-mongo.d.ts +0 -9
- package/esm/core/remult-mongo.js +0 -221
- package/esm/core/server/JsonEntityFileStorage.d.ts +0 -10
- package/esm/core/server/JsonEntityFileStorage.js +0 -24
- package/esm/core/server/expressBridge.d.ts +0 -102
- package/esm/core/server/expressBridge.js +0 -834
- package/esm/core/server/index.d.ts +0 -4
- package/esm/core/server/index.js +0 -7
- package/esm/core/server/initAsyncHooks.d.ts +0 -1
- package/esm/core/server/initAsyncHooks.js +0 -9
- package/esm/core/src/__EntityValueProvider.d.ts +0 -10
- package/esm/core/src/__EntityValueProvider.js +0 -1
- package/esm/core/src/__RowsOfDataForTesting.d.ts +0 -3
- package/esm/core/src/__RowsOfDataForTesting.js +0 -1
- package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -6
- package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -123
- package/esm/core/src/backend-tests/my-test.backend-spec.d.ts +0 -1
- package/esm/core/src/backend-tests/my-test.backend-spec.js +0 -107
- package/esm/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
- package/esm/core/src/backend-tests/test-http-server.backend-spec.js +0 -155
- package/esm/core/src/column-interfaces.d.ts +0 -95
- package/esm/core/src/column-interfaces.js +0 -7
- package/esm/core/src/column.d.ts +0 -49
- package/esm/core/src/column.js +0 -133
- package/esm/core/src/context.d.ts +0 -115
- package/esm/core/src/context.js +0 -271
- package/esm/core/src/data-api.d.ts +0 -33
- package/esm/core/src/data-api.js +0 -204
- package/esm/core/src/data-interfaces.d.ts +0 -37
- package/esm/core/src/data-interfaces.js +0 -12
- package/esm/core/src/data-providers/array-entity-data-provider.d.ts +0 -22
- package/esm/core/src/data-providers/array-entity-data-provider.js +0 -264
- package/esm/core/src/data-providers/in-memory-database.d.ts +0 -9
- package/esm/core/src/data-providers/in-memory-database.js +0 -16
- package/esm/core/src/data-providers/json-data-provider.d.ts +0 -12
- package/esm/core/src/data-providers/json-data-provider.js +0 -52
- package/esm/core/src/data-providers/rest-data-provider.d.ts +0 -38
- package/esm/core/src/data-providers/rest-data-provider.js +0 -201
- package/esm/core/src/data-providers/sql-database.d.ts +0 -16
- package/esm/core/src/data-providers/sql-database.js +0 -264
- package/esm/core/src/data-providers/web-sql-data-provider.d.ts +0 -18
- package/esm/core/src/data-providers/web-sql-data-provider.js +0 -121
- package/esm/core/src/entity.d.ts +0 -82
- package/esm/core/src/entity.js +0 -1
- package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -50
- package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.js +0 -139
- package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
- package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.js +0 -1
- package/esm/core/src/filter/filter-interfaces.d.ts +0 -85
- package/esm/core/src/filter/filter-interfaces.js +0 -467
- package/esm/core/src/id-entity.d.ts +0 -4
- package/esm/core/src/id-entity.js +0 -8
- package/esm/core/src/remult-proxy.d.ts +0 -2
- package/esm/core/src/remult-proxy.js +0 -52
- package/esm/core/src/remult3/DecoratorReplacer.d.ts +0 -10
- package/esm/core/src/remult3/DecoratorReplacer.js +0 -20
- package/esm/core/src/remult3/RepositoryImplementation.d.ts +0 -323
- package/esm/core/src/remult3/RepositoryImplementation.js +0 -1799
- package/esm/core/src/remult3/index.d.ts +0 -2
- package/esm/core/src/remult3/index.js +0 -2
- package/esm/core/src/remult3/remult3.d.ts +0 -312
- package/esm/core/src/remult3/remult3.js +0 -1
- package/esm/core/src/server-action.d.ts +0 -72
- package/esm/core/src/server-action.js +0 -372
- package/esm/core/src/shared-tests/db-tests-setup.d.ts +0 -23
- package/esm/core/src/shared-tests/db-tests-setup.js +0 -68
- package/esm/core/src/shared-tests/db-tests.db-tests.d.ts +0 -26
- package/esm/core/src/shared-tests/db-tests.db-tests.js +0 -723
- package/esm/core/src/shared-tests/deleteAll.d.ts +0 -2
- package/esm/core/src/shared-tests/deleteAll.js +0 -4
- package/esm/core/src/shared-tests/entityWithValidations.d.ts +0 -14
- package/esm/core/src/shared-tests/entityWithValidations.js +0 -53
- package/esm/core/src/shared-tests/index.d.ts +0 -4
- package/esm/core/src/shared-tests/index.js +0 -4
- package/esm/core/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
- package/esm/core/src/shared-tests/test-custom-id-column.spec.js +0 -63
- package/esm/core/src/shared-tests/test-special-value.spec.d.ts +0 -10
- package/esm/core/src/shared-tests/test-special-value.spec.js +0 -88
- package/esm/core/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
- package/esm/core/src/shared-tests/test-update-with-null.spec.js +0 -45
- package/esm/core/src/sort.d.ts +0 -15
- package/esm/core/src/sort.js +0 -82
- package/esm/core/src/sql-command.d.ts +0 -15
- package/esm/core/src/sql-command.js +0 -1
- package/esm/core/src/tests/Done.d.ts +0 -5
- package/esm/core/src/tests/Done.js +0 -11
- package/esm/core/src/tests/TestDataApiResponse.d.ts +0 -10
- package/esm/core/src/tests/TestDataApiResponse.js +0 -22
- package/esm/core/src/tests/c.d.ts +0 -8
- package/esm/core/src/tests/c.js +0 -22
- package/esm/core/src/tests/createData.d.ts +0 -7
- package/esm/core/src/tests/createData.js +0 -22
- package/esm/core/src/tests/d.d.ts +0 -6
- package/esm/core/src/tests/d.js +0 -19
- package/esm/core/src/tests/dWithPrefilter.d.ts +0 -7
- package/esm/core/src/tests/dWithPrefilter.js +0 -32
- package/esm/core/src/tests/entityForCustomFilter.d.ts +0 -16
- package/esm/core/src/tests/entityForCustomFilter.js +0 -44
- package/esm/core/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
- package/esm/core/src/tests/entityWithValidationsOnColumn.js +0 -21
- package/esm/core/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
- package/esm/core/src/tests/frontend-database-tests-setup.spec.js +0 -38
- package/esm/core/src/tests/h.d.ts +0 -6
- package/esm/core/src/tests/h.js +0 -35
- package/esm/core/src/tests/remult-3-entities.d.ts +0 -23
- package/esm/core/src/tests/remult-3-entities.js +0 -72
- package/esm/core/src/tests/tasks.d.ts +0 -6
- package/esm/core/src/tests/tasks.js +0 -24
- package/esm/core/src/tests/testHelper.spec.d.ts +0 -34
- package/esm/core/src/tests/testHelper.spec.js +0 -222
- package/esm/core/src/tests/testModel/models.d.ts +0 -16
- package/esm/core/src/tests/testModel/models.js +0 -31
- package/esm/core/src/validators.d.ts +0 -14
- package/esm/core/src/validators.js +0 -33
- package/esm/core/src/valueConverters.d.ts +0 -12
- package/esm/core/src/valueConverters.js +0 -171
- package/esm/core/urlBuilder.d.ts +0 -6
- package/esm/core/urlBuilder.js +0 -19
- package/esm/live-query/ably.d.ts +0 -13
- package/esm/live-query/ably.js +0 -25
- package/esm/live-query/ablyLiveQuery.d.ts +0 -13
- package/esm/live-query/ablyLiveQuery.js +0 -25
- package/esm/live-query/index.d.ts +0 -2
- package/esm/live-query/index.js +0 -2
- package/esm/live-query/live-query.d.ts +0 -3
- package/esm/live-query/live-query.js +0 -2
- package/esm/live-query.d.ts +0 -3
- package/esm/live-query.js +0 -2
- package/esm/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -5
- package/esm/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -113
- package/esm/src/backend-tests/my-test.backend-spec.d.ts +0 -1
- package/esm/src/backend-tests/my-test.backend-spec.js +0 -59
- package/esm/src/backend-tests/test-http-server.backend-spec.d.ts +0 -6
- package/esm/src/backend-tests/test-http-server.backend-spec.js +0 -171
- package/esm/src/live-query/EventSourceLiveQuery.d.ts +0 -5
- package/esm/src/live-query/EventSourceLiveQuery.js +0 -48
- package/esm/src/live-query/EventSourceLiveQueryProvider.d.ts +0 -4
- package/esm/src/live-query/EventSourceLiveQueryProvider.js +0 -55
- package/esm/src/live-query/LiveQuery.d.ts +0 -67
- package/esm/src/live-query/LiveQuery.js +0 -225
- package/esm/src/live-query/LiveQueryManager.d.ts +0 -32
- package/esm/src/live-query/LiveQueryManager.js +0 -99
- package/esm/src/live-query/LiveQueryPublisher.d.ts +0 -21
- package/esm/src/live-query/LiveQueryPublisher.js +0 -71
- package/esm/src/live-query/LiveQuerySubscriber.d.ts +0 -62
- package/esm/src/live-query/LiveQuerySubscriber.js +0 -215
- package/esm/src/live-query/ablyLiveQuery.d.ts +0 -13
- package/esm/src/live-query/ablyLiveQuery.js +0 -25
- package/esm/src/live-query/index.d.ts +0 -2
- package/esm/src/live-query/index.js +0 -1
- package/esm/src/remult3/getId.d.ts +0 -2
- package/esm/src/remult3/getId.js +0 -7
- package/esm/test-servers/shared/Task.d.ts +0 -9
- package/esm/test-servers/shared/Task.js +0 -62
- package/live-query/ably.d.ts +0 -13
- package/live-query/ably.js +0 -38
- package/live-query/ablyLiveQuery.d.ts +0 -13
- package/live-query/ablyLiveQuery.js +0 -38
- package/live-query/index.d.ts +0 -2
- package/live-query/index.js +0 -7
- package/live-query/live-query.d.ts +0 -3
- package/live-query/live-query.js +0 -10
- package/live-query.d.ts +0 -3
- package/live-query.js +0 -7
- package/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -6
- package/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -241
- package/src/backend-tests/my-test.backend-spec.d.ts +0 -1
- package/src/backend-tests/my-test.backend-spec.js +0 -217
- package/src/backend-tests/test-http-server.backend-spec.d.ts +0 -6
- package/src/backend-tests/test-http-server.backend-spec.js +0 -342
- package/src/live-query/EventSourceLiveQuery.d.ts +0 -5
- package/src/live-query/EventSourceLiveQuery.js +0 -62
- package/src/live-query/EventSourceLiveQueryProvider.d.ts +0 -4
- package/src/live-query/EventSourceLiveQueryProvider.js +0 -62
- package/src/live-query/LiveQuery.d.ts +0 -67
- package/src/live-query/LiveQuery.js +0 -308
- package/src/live-query/LiveQueryManager.d.ts +0 -32
- package/src/live-query/LiveQueryManager.js +0 -198
- package/src/live-query/LiveQueryPublisher.d.ts +0 -21
- package/src/live-query/LiveQueryPublisher.js +0 -121
- package/src/live-query/LiveQuerySubscriber.d.ts +0 -62
- package/src/live-query/LiveQuerySubscriber.js +0 -335
- package/src/live-query/ablyLiveQuery.d.ts +0 -13
- package/src/live-query/ablyLiveQuery.js +0 -38
- package/src/remult3/getId.d.ts +0 -2
- package/src/remult3/getId.js +0 -11
- package/test-servers/shared/Task.d.ts +0 -9
- package/test-servers/shared/Task.js +0 -81
package/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export { Field, Fields, FieldsMetadata, Entity, EntityBase, ControllerBase, FieldRef, IdFieldRef, FieldsRef, EntityMetadata, EntityOrderBy, EntityFilter, FindOptions, QueryResult, QueryOptions, Repository, FieldType, FindFirstOptions, ComparisonValueFilter, ValueFilter, IdFilter, ContainsStringValueFilter, getFields, EntityRef, getEntityRef, SortSegments, ValueListFieldType, getValueList, ValueListFieldOptions, ValueListInfo, OmitEB, Paginator, CaptionTransformer } from './src/remult3';
|
|
2
|
-
export { StringFieldOptions } from './src/remult3/RepositoryImplementation';
|
|
1
|
+
export { Field, Fields, StringFieldOptions, FieldsMetadata, Entity, EntityBase, ControllerBase, FieldRef, IdFieldRef, FieldsRef, EntityMetadata, EntityOrderBy, EntityFilter, FindOptions, QueryResult, QueryOptions, Repository, FieldType, FindFirstOptions, ComparisonValueFilter, ValueFilter, IdFilter, ContainsStringValueFilter, getFields, EntityRef, getEntityRef, SortSegments, ValueListFieldType, getValueList, ValueListFieldOptions, ValueListInfo, OmitEB, Paginator, CaptionTransformer } from './src/remult3';
|
|
3
2
|
export { describeClass } from './src/remult3/DecoratorReplacer';
|
|
4
3
|
export { EntityOptions } from './src/entity';
|
|
5
4
|
export { DataProvider, EntityDataProvider, EntityDataProviderFindOptions, ErrorInfo, RestDataProviderHttpProvider } from './src/data-interfaces';
|
|
@@ -43,7 +43,7 @@ export class PostgresSchemaBuilder {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
async verifyStructureOfAllEntities(remult) {
|
|
46
|
-
console.log("start verify structure");
|
|
46
|
+
console.log("start verify structure");
|
|
47
47
|
for (const entityClass of allEntities) {
|
|
48
48
|
let entity = remult.repo(entityClass).metadata;
|
|
49
49
|
let e = await getDbNameProvider(entity);
|
|
@@ -56,7 +56,7 @@ export class PostgresSchemaBuilder {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
catch (err) {
|
|
59
|
-
|
|
59
|
+
console.log("failed verify structure of " + e.entityName + " ", err);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -102,7 +102,7 @@ export class PostgresSchemaBuilder {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
catch (err) {
|
|
105
|
-
console.
|
|
105
|
+
console.log(err);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
async verifyAllColumns(entity) {
|
|
@@ -122,7 +122,7 @@ export class PostgresSchemaBuilder {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
catch (err) {
|
|
125
|
-
console.
|
|
125
|
+
console.log(err);
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
}
|
package/esm/remult-express.d.ts
CHANGED
|
@@ -1,30 +1,6 @@
|
|
|
1
1
|
import * as express from 'express';
|
|
2
2
|
import { RemultServer, RemultServerOptions } from './server/expressBridge';
|
|
3
|
-
import { Remult } from './src/context';
|
|
4
|
-
import { ServerEventChannelSubscribeDTO } from './src/live-query/LiveQuerySubscriber';
|
|
5
|
-
import { ServerEventDispatcher } from './src/live-query/LiveQueryPublisher';
|
|
6
3
|
export declare function remultExpress(options?: RemultServerOptions<express.Request> & {
|
|
7
4
|
bodyParser?: boolean;
|
|
8
5
|
bodySizeLimit?: string;
|
|
9
|
-
serverEventDispatcher?: (router: express.Router, server: RemultServer) => ServerEventDispatcher;
|
|
10
6
|
}): express.RequestHandler & RemultServer;
|
|
11
|
-
export declare class ServerEventsController implements ServerEventDispatcher {
|
|
12
|
-
private canUserConnectToChannel?;
|
|
13
|
-
subscribeToChannel({ channel, clientId }: ServerEventChannelSubscribeDTO, res: import('express').Response, remult: Remult, remove?: boolean): void;
|
|
14
|
-
consoleInfo(): void;
|
|
15
|
-
connections: clientConnection[];
|
|
16
|
-
constructor(canUserConnectToChannel?: (channel: string, remult: Remult) => boolean);
|
|
17
|
-
sendChannelMessage<T>(channel: string, message: any): void;
|
|
18
|
-
openHttpServerStream(req: import('express').Request, res: import('express').Response): clientConnection;
|
|
19
|
-
}
|
|
20
|
-
declare class clientConnection {
|
|
21
|
-
response: import('express').Response;
|
|
22
|
-
channels: Record<string, boolean>;
|
|
23
|
-
close(): void;
|
|
24
|
-
closed: boolean;
|
|
25
|
-
write(eventData: string, eventType?: string): void;
|
|
26
|
-
connectionId: any;
|
|
27
|
-
constructor(response: import('express').Response);
|
|
28
|
-
sendLiveMessage(): void;
|
|
29
|
-
}
|
|
30
|
-
export {};
|
package/esm/remult-express.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import * as express from 'express';
|
|
2
|
-
import { createRemultServer } from './server/
|
|
3
|
-
import { streamUrl } from './src/live-query/LiveQuerySubscriber';
|
|
4
|
-
import { LiveQueryPublisher } from './src/live-query/LiveQueryPublisher';
|
|
5
|
-
import { v4 as uuid } from 'uuid';
|
|
6
|
-
import { remult } from './src/remult-proxy';
|
|
2
|
+
import { createRemultServer } from './server/index';
|
|
7
3
|
export function remultExpress(options) {
|
|
8
4
|
let app = express.Router();
|
|
9
5
|
if (!options) {
|
|
@@ -18,12 +14,6 @@ export function remultExpress(options) {
|
|
|
18
14
|
}
|
|
19
15
|
const server = createRemultServer(options);
|
|
20
16
|
server.registerRouter(app);
|
|
21
|
-
if (!options.serverEventDispatcher) {
|
|
22
|
-
options.serverEventDispatcher = (router, server) => {
|
|
23
|
-
return buildHttpServerEventDispatcher(router, options.rootPath, server);
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
server.liveQueryManager = new LiveQueryPublisher(options.serverEventDispatcher(app, server));
|
|
27
17
|
return Object.assign(app, {
|
|
28
18
|
getRemult: (req) => server.getRemult(req),
|
|
29
19
|
openApiDoc: (options) => server.openApiDoc(options),
|
|
@@ -31,105 +21,3 @@ export function remultExpress(options) {
|
|
|
31
21
|
withRemult: (...args) => server.withRemult(...args)
|
|
32
22
|
});
|
|
33
23
|
}
|
|
34
|
-
export class ServerEventsController {
|
|
35
|
-
constructor(canUserConnectToChannel) {
|
|
36
|
-
this.canUserConnectToChannel = canUserConnectToChannel;
|
|
37
|
-
this.connections = [];
|
|
38
|
-
if (!this.canUserConnectToChannel) {
|
|
39
|
-
this.canUserConnectToChannel = () => true;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
subscribeToChannel({ channel, clientId }, res, remult, remove = false) {
|
|
43
|
-
for (const c of this.connections) {
|
|
44
|
-
if (c.connectionId === clientId) {
|
|
45
|
-
if (this.canUserConnectToChannel(channel, remult)) {
|
|
46
|
-
c.channels[channel] = !remove;
|
|
47
|
-
res.json("ok");
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
res.sendStatus(403);
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
res.sendStatus(404);
|
|
57
|
-
}
|
|
58
|
-
consoleInfo() {
|
|
59
|
-
console.info(this.connections.map(x => ({
|
|
60
|
-
client: x.connectionId,
|
|
61
|
-
channels: x.channels
|
|
62
|
-
})));
|
|
63
|
-
}
|
|
64
|
-
sendChannelMessage(channel, message) {
|
|
65
|
-
const data = JSON.stringify({ channel, data: message });
|
|
66
|
-
for (const sc of this.connections) {
|
|
67
|
-
if (sc.channels[channel]) {
|
|
68
|
-
sc.write(data);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
openHttpServerStream(req, res) {
|
|
73
|
-
res.writeHead(200, {
|
|
74
|
-
'Content-Type': 'text/event-stream',
|
|
75
|
-
'Cache-Control': 'no-cache',
|
|
76
|
-
'Connection': 'keep-alive'
|
|
77
|
-
});
|
|
78
|
-
const cc = new clientConnection(res);
|
|
79
|
-
//const lastEventId = req.headers['last-event-id'];
|
|
80
|
-
this.connections.push(cc);
|
|
81
|
-
req.on("close", () => {
|
|
82
|
-
cc.close();
|
|
83
|
-
this.connections = this.connections.filter(s => s !== cc);
|
|
84
|
-
});
|
|
85
|
-
return cc;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
class clientConnection {
|
|
89
|
-
constructor(response) {
|
|
90
|
-
this.response = response;
|
|
91
|
-
this.channels = {};
|
|
92
|
-
this.closed = false;
|
|
93
|
-
this.connectionId = uuid();
|
|
94
|
-
this.write(this.connectionId, "connectionId");
|
|
95
|
-
this.sendLiveMessage();
|
|
96
|
-
}
|
|
97
|
-
close() {
|
|
98
|
-
this.closed = true;
|
|
99
|
-
}
|
|
100
|
-
write(eventData, eventType = "message") {
|
|
101
|
-
let event = "event:" + eventType;
|
|
102
|
-
// if (id != undefined)
|
|
103
|
-
// event += "\nid:" + id;
|
|
104
|
-
this.response.write(event + "\ndata:" + eventData + "\n\n");
|
|
105
|
-
let r = this.response;
|
|
106
|
-
if (r.flush)
|
|
107
|
-
r.flush();
|
|
108
|
-
}
|
|
109
|
-
sendLiveMessage() {
|
|
110
|
-
if (this.closed)
|
|
111
|
-
return;
|
|
112
|
-
this.write("", "keep-alive");
|
|
113
|
-
setTimeout(() => {
|
|
114
|
-
this.sendLiveMessage();
|
|
115
|
-
}, 45000);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
function buildHttpServerEventDispatcher(router, apiPath, server) {
|
|
119
|
-
const streamPath = apiPath + '/' + streamUrl;
|
|
120
|
-
let httpServerEvents = new ServerEventsController();
|
|
121
|
-
router.get(streamPath, (r, res, next) => server.withRemult(r, res, next), (req, res) => {
|
|
122
|
-
remult.liveQueryPublisher.dispatcher.openHttpServerStream(req, res);
|
|
123
|
-
});
|
|
124
|
-
router.post(streamPath + '/subscribe', (r, res, next) => server.withRemult(r, res, next), (req, res) => {
|
|
125
|
-
remult.liveQueryPublisher.dispatcher.subscribeToChannel(req.body, res, remult);
|
|
126
|
-
});
|
|
127
|
-
router.post(streamPath + '/unsubscribe', (r, res, next) => server.withRemult(r, res, next), (req, res) => {
|
|
128
|
-
remult.liveQueryPublisher.dispatcher.subscribeToChannel(req.body, res, remult, true);
|
|
129
|
-
});
|
|
130
|
-
router.get(streamPath + '/stats', (r, res, next) => server.withRemult(r, res, next), (req, res) => {
|
|
131
|
-
remult.liveQueryPublisher.dispatcher.consoleInfo();
|
|
132
|
-
res.json("ok");
|
|
133
|
-
});
|
|
134
|
-
return httpServerEvents;
|
|
135
|
-
}
|
package/esm/remult-fastify.js
CHANGED
package/esm/remult-fresh.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRemultServerCore } from "./server/expressBridge";
|
|
2
2
|
export function remultFresh(options, response) {
|
|
3
|
-
const server =
|
|
3
|
+
const server = createRemultServerCore(options);
|
|
4
4
|
return {
|
|
5
5
|
getRemult: r => server.getRemult(r),
|
|
6
6
|
openApiDoc: x => server.openApiDoc(x),
|
package/esm/remult-knex/index.js
CHANGED
|
@@ -153,8 +153,15 @@ class KnexEntityDataProvider {
|
|
|
153
153
|
}
|
|
154
154
|
let insert = this.knex(e.entityName).insert(insertObject);
|
|
155
155
|
if (isAutoIncrement(this.entity.idMetadata.field)) {
|
|
156
|
-
let
|
|
157
|
-
|
|
156
|
+
let newId;
|
|
157
|
+
if (this.knex.client.config.client === 'mysql2') {
|
|
158
|
+
let result = await insert;
|
|
159
|
+
newId = result[0];
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
let result = await insert.returning(this.entity.idMetadata.field.key);
|
|
163
|
+
newId = result[0].id;
|
|
164
|
+
}
|
|
158
165
|
resultFilter = new Filter(x => x.isEqualTo(this.entity.idMetadata.field, newId));
|
|
159
166
|
}
|
|
160
167
|
else
|
|
@@ -256,7 +263,7 @@ export class KnexSchemaBuilder {
|
|
|
256
263
|
this.additionalWhere = '';
|
|
257
264
|
}
|
|
258
265
|
async verifyStructureOfAllEntities(remult) {
|
|
259
|
-
console.
|
|
266
|
+
console.log("start verify structure");
|
|
260
267
|
for (const entity of allEntities) {
|
|
261
268
|
let metadata = remult.repo(entity).metadata;
|
|
262
269
|
try {
|
|
@@ -319,7 +326,7 @@ export class KnexSchemaBuilder {
|
|
|
319
326
|
}
|
|
320
327
|
}
|
|
321
328
|
catch (err) {
|
|
322
|
-
console.
|
|
329
|
+
console.log(err);
|
|
323
330
|
}
|
|
324
331
|
}
|
|
325
332
|
}
|
|
File without changes
|
|
File without changes
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { queuedJobInfoResponse } from '../src/server-action';
|
|
2
2
|
import { DataProvider } from '../src/data-interfaces';
|
|
3
|
-
import {
|
|
4
|
-
import { AllowedForInstance, Remult, UserInfo } from '../src/context';
|
|
3
|
+
import { Remult, UserInfo } from '../src/context';
|
|
5
4
|
import { ClassType } from '../classType';
|
|
6
5
|
import { Repository } from '../src/remult3';
|
|
7
6
|
import { IdEntity } from '../src/id-entity';
|
|
8
|
-
import { LiveQueryPublisher } from '../src/live-query/LiveQueryPublisher';
|
|
9
7
|
export interface RemultServerOptions<RequestType extends GenericRequest> {
|
|
10
8
|
/** Sets a database connection for Remult.
|
|
11
9
|
*
|
|
@@ -22,7 +20,7 @@ export interface RemultServerOptions<RequestType extends GenericRequest> {
|
|
|
22
20
|
controllers?: ClassType<any>[];
|
|
23
21
|
rootPath?: string;
|
|
24
22
|
}
|
|
25
|
-
export declare function
|
|
23
|
+
export declare function createRemultServerCore<RequestType extends GenericRequest = GenericRequest>(options?: RemultServerOptions<RequestType>): RemultServer;
|
|
26
24
|
export declare type GenericRequestHandler = (req: GenericRequest, res: GenericResponse, next: VoidFunction) => void;
|
|
27
25
|
export interface ServerHandleResponse {
|
|
28
26
|
data?: any;
|
|
@@ -59,39 +57,14 @@ export interface GenericResponse {
|
|
|
59
57
|
status(statusCode: number): GenericResponse;
|
|
60
58
|
end(): any;
|
|
61
59
|
}
|
|
62
|
-
export declare class
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
constructor(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
handle(req: GenericRequest, gRes?: GenericResponse): Promise<ServerHandleResponse>;
|
|
71
|
-
registeredRouter: boolean;
|
|
72
|
-
registerRouter(r: GenericRouter): void;
|
|
73
|
-
add(key: string, dataApiFactory: ((req: Remult) => DataApi), r: GenericRouter): void;
|
|
74
|
-
process(what: (remult: Remult, myReq: DataApiRequest, myRes: DataApiResponse, origReq: GenericRequest) => Promise<void>): (req: GenericRequest, res: GenericResponse) => Promise<void>;
|
|
75
|
-
getRemult(req: GenericRequest): Promise<Remult>;
|
|
76
|
-
hasQueue: boolean;
|
|
77
|
-
addAction(action: ActionInterface, r: GenericRouter): void;
|
|
78
|
-
openApiDoc(options: {
|
|
79
|
-
title: string;
|
|
80
|
-
version?: string;
|
|
81
|
-
}): any;
|
|
82
|
-
backendMethodsOpenApi: {
|
|
83
|
-
path: string;
|
|
84
|
-
allowed: AllowedForInstance<any>;
|
|
85
|
-
tag: string;
|
|
86
|
-
}[];
|
|
87
|
-
}
|
|
88
|
-
declare class inProcessQueueHandler {
|
|
89
|
-
private storage;
|
|
90
|
-
constructor(storage: QueueStorage);
|
|
91
|
-
submitJob(url: string, req: Remult, body: any): Promise<string>;
|
|
92
|
-
mapQueuedAction(url: string, what: (data: any, r: Remult, res: ApiActionResponse) => void): void;
|
|
93
|
-
actions: Map<string, (data: any, r: Remult, res: ApiActionResponse) => void>;
|
|
94
|
-
getJobInfo(queuedJobId: string): Promise<queuedJobInfo>;
|
|
60
|
+
export declare class RemultAsyncLocalStorage {
|
|
61
|
+
private readonly remultObjectStorage;
|
|
62
|
+
static enable(): void;
|
|
63
|
+
static disable(): void;
|
|
64
|
+
constructor(remultObjectStorage: import('async_hooks').AsyncLocalStorage<Remult>);
|
|
65
|
+
run(remult: Remult, callback: VoidFunction): void;
|
|
66
|
+
getRemult(): Remult;
|
|
67
|
+
static instance: RemultAsyncLocalStorage;
|
|
95
68
|
}
|
|
96
69
|
export interface queuedJobInfo {
|
|
97
70
|
info: queuedJobInfoResponse;
|
|
@@ -117,12 +90,6 @@ export declare class EntityQueueStorage implements QueueStorage {
|
|
|
117
90
|
getJobInfo(queuedJobId: string): Promise<queuedJobInfo>;
|
|
118
91
|
createJob(url: string, userId: string): Promise<string>;
|
|
119
92
|
}
|
|
120
|
-
declare class RouteImplementation {
|
|
121
|
-
map: Map<string, Map<string, GenericRequestHandler>>;
|
|
122
|
-
route(path: string): SpecificRoute;
|
|
123
|
-
handle(req: GenericRequest, gRes?: GenericResponse): Promise<ServerHandleResponse | undefined>;
|
|
124
|
-
middleware(req: GenericRequest, res: GenericResponse, next: VoidFunction): void;
|
|
125
|
-
}
|
|
126
93
|
export declare class JobsInQueueEntity extends IdEntity {
|
|
127
94
|
userId: string;
|
|
128
95
|
url: string;
|
|
@@ -133,4 +100,3 @@ export declare class JobsInQueueEntity extends IdEntity {
|
|
|
133
100
|
error: boolean;
|
|
134
101
|
progress: number;
|
|
135
102
|
}
|
|
136
|
-
export {};
|
|
@@ -6,7 +6,7 @@ import { Entity, Fields, getEntityKey } from '../src/remult3';
|
|
|
6
6
|
import { IdEntity } from '../src/id-entity';
|
|
7
7
|
import { remult } from '../src/remult-proxy';
|
|
8
8
|
;
|
|
9
|
-
export function
|
|
9
|
+
export function createRemultServerCore(options) {
|
|
10
10
|
if (!options) {
|
|
11
11
|
options = {};
|
|
12
12
|
}
|
|
@@ -30,30 +30,12 @@ export function createRemultServer(options) {
|
|
|
30
30
|
return dp;
|
|
31
31
|
return new (await import('./JsonEntityFileStorage')).JsonFileDataProvider('./db');
|
|
32
32
|
});
|
|
33
|
-
|
|
34
|
-
dataProvider = dataProvider.then(async (dp) => {
|
|
35
|
-
try {
|
|
36
|
-
const asyncHooks = await import('async_hooks');
|
|
37
|
-
remultObjectStorage = new RemultAsyncLocalStorage(new asyncHooks.AsyncLocalStorage());
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
remultObjectStorage = new RemultAsyncLocalStorage(undefined);
|
|
41
|
-
}
|
|
42
|
-
remult.remultFactory = () => {
|
|
43
|
-
const r = remultObjectStorage.getRemult();
|
|
44
|
-
if (r)
|
|
45
|
-
return r;
|
|
46
|
-
else
|
|
47
|
-
throw new Error("remult object was requested outside of a valid context, try running it within initApi or a remult request cycle");
|
|
48
|
-
};
|
|
49
|
-
return dp;
|
|
50
|
-
});
|
|
51
|
-
}
|
|
33
|
+
RemultAsyncLocalStorage.enable();
|
|
52
34
|
if (options.initApi) {
|
|
53
35
|
dataProvider = dataProvider.then(async (dp) => {
|
|
54
36
|
var remult = new Remult(dp);
|
|
55
37
|
await new Promise((res) => {
|
|
56
|
-
|
|
38
|
+
RemultAsyncLocalStorage.instance.run(remult, async () => {
|
|
57
39
|
await options.initApi(remult);
|
|
58
40
|
res({});
|
|
59
41
|
});
|
|
@@ -78,10 +60,22 @@ export function createRemultServer(options) {
|
|
|
78
60
|
return bridge;
|
|
79
61
|
}
|
|
80
62
|
;
|
|
81
|
-
class RemultAsyncLocalStorage {
|
|
63
|
+
export class RemultAsyncLocalStorage {
|
|
82
64
|
constructor(remultObjectStorage) {
|
|
83
65
|
this.remultObjectStorage = remultObjectStorage;
|
|
84
66
|
}
|
|
67
|
+
static enable() {
|
|
68
|
+
remult.remultFactory = () => {
|
|
69
|
+
const r = RemultAsyncLocalStorage.instance.getRemult();
|
|
70
|
+
if (r)
|
|
71
|
+
return r;
|
|
72
|
+
else
|
|
73
|
+
throw new Error("remult object was requested outside of a valid context, try running it within initApi or a remult request cycle");
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
static disable() {
|
|
77
|
+
remult.resetFactory();
|
|
78
|
+
}
|
|
85
79
|
run(remult, callback) {
|
|
86
80
|
if (this.remultObjectStorage)
|
|
87
81
|
this.remultObjectStorage.run(remult, callback);
|
|
@@ -90,13 +84,13 @@ class RemultAsyncLocalStorage {
|
|
|
90
84
|
}
|
|
91
85
|
getRemult() {
|
|
92
86
|
if (!this.remultObjectStorage) {
|
|
93
|
-
throw "can't use static remult in this environment, `async_hooks` were not
|
|
87
|
+
throw new Error("can't use static remult in this environment, `async_hooks` were not initialized");
|
|
94
88
|
}
|
|
95
89
|
return this.remultObjectStorage.getStore();
|
|
96
90
|
}
|
|
97
91
|
}
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
RemultAsyncLocalStorage.instance = new RemultAsyncLocalStorage(undefined);
|
|
93
|
+
class RemultServerImplementation {
|
|
100
94
|
constructor(queue, options, dataProvider) {
|
|
101
95
|
this.queue = queue;
|
|
102
96
|
this.options = options;
|
|
@@ -162,7 +156,7 @@ export class RemultServerImplementation {
|
|
|
162
156
|
add(key, dataApiFactory, r) {
|
|
163
157
|
let myRoute = this.options.rootPath + '/' + key;
|
|
164
158
|
if (this.options.logApiEndPoints)
|
|
165
|
-
console.
|
|
159
|
+
console.log("[remult] " + myRoute);
|
|
166
160
|
r.route(myRoute)
|
|
167
161
|
.get(this.process((c, req, res) => dataApiFactory(c).httpGet(res, req))).put(this.process(async (c, req, res, orig) => dataApiFactory(c).put(res, '', orig.body)))
|
|
168
162
|
.delete(this.process(async (c, req, res, orig) => dataApiFactory(c).delete(res, '')))
|
|
@@ -180,10 +174,9 @@ export class RemultServerImplementation {
|
|
|
180
174
|
let myReq = new ExpressRequestBridgeToDataApiRequest(req);
|
|
181
175
|
let myRes = new ExpressResponseBridgeToDataApiResponse(res, req);
|
|
182
176
|
let remult = new Remult();
|
|
183
|
-
remult.liveQueryPublisher = this.liveQueryManager;
|
|
184
177
|
remult.dataProvider = (await this.dataProvider);
|
|
185
178
|
await new Promise(res => {
|
|
186
|
-
|
|
179
|
+
RemultAsyncLocalStorage.instance.run(remult, async () => {
|
|
187
180
|
if (req) {
|
|
188
181
|
let user;
|
|
189
182
|
if (this.options.getUser)
|
|
@@ -225,7 +218,7 @@ export class RemultServerImplementation {
|
|
|
225
218
|
})();
|
|
226
219
|
this.backendMethodsOpenApi.push({ path: myUrl, allowed, tag });
|
|
227
220
|
if (this.options.logApiEndPoints)
|
|
228
|
-
console.
|
|
221
|
+
console.log("[remult] " + myUrl);
|
|
229
222
|
if (queue) {
|
|
230
223
|
this.hasQueue = true;
|
|
231
224
|
this.queue.mapQueuedAction(myUrl, what);
|
package/esm/server/index.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { GenericRequest, RemultServer, RemultServerOptions } from './expressBridge';
|
|
2
|
+
export { queuedJobInfo, QueueStorage, GenericRequest, GenericRequestHandler, GenericResponse, GenericRouter, RemultServerOptions, SpecificRoute, RemultServer } from './expressBridge';
|
|
2
3
|
export { JsonEntityFileStorage, JsonFileDataProvider } from './JsonEntityFileStorage';
|
|
4
|
+
export declare function createRemultServer<RequestType extends GenericRequest = GenericRequest>(options?: RemultServerOptions<RequestType>): RemultServer;
|
package/esm/server/index.js
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { createRemultServerCore } from './expressBridge';
|
|
2
|
+
import { initAsyncHooks } from './initAsyncHooks';
|
|
2
3
|
export { JsonEntityFileStorage, JsonFileDataProvider } from './JsonEntityFileStorage';
|
|
4
|
+
export function createRemultServer(options) {
|
|
5
|
+
initAsyncHooks();
|
|
6
|
+
return createRemultServerCore(options);
|
|
7
|
+
}
|
package/esm/src/column.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ClassType } from '../classType';
|
|
2
2
|
import { FieldMetadata, FieldOptions, ValueConverter } from './column-interfaces';
|
|
3
3
|
import { Filter } from './filter/filter-interfaces';
|
|
4
|
-
import { EntityFilter, FindOptions,
|
|
4
|
+
import { EntityFilter, FindOptions, Repository, RepositoryImplementation } from './remult3';
|
|
5
5
|
export declare function makeTitle(name: string): string;
|
|
6
6
|
export declare class CompoundIdField implements FieldMetadata<string> {
|
|
7
7
|
fields: FieldMetadata[];
|
|
@@ -25,12 +25,12 @@ export declare class CompoundIdField implements FieldMetadata<string> {
|
|
|
25
25
|
}
|
|
26
26
|
export declare class LookupColumn<T> {
|
|
27
27
|
private repository;
|
|
28
|
-
id:
|
|
28
|
+
id: string;
|
|
29
29
|
setId(val: any): void;
|
|
30
30
|
waitLoadOf(id: any): Promise<T>;
|
|
31
31
|
get(id: any): any;
|
|
32
32
|
set(item: T): void;
|
|
33
|
-
constructor(repository: RepositoryImplementation<T>, id:
|
|
33
|
+
constructor(repository: RepositoryImplementation<T>, id: string);
|
|
34
34
|
get item(): T;
|
|
35
35
|
waitLoad(): Promise<T>;
|
|
36
36
|
}
|
package/esm/src/context.d.ts
CHANGED
|
@@ -2,8 +2,6 @@ import { DataProvider, RestDataProviderHttpProvider } from "./data-interfaces";
|
|
|
2
2
|
import { RestDataProviderHttpProviderUsingFetch } from './data-providers/rest-data-provider';
|
|
3
3
|
import { EntityMetadata, EntityRef, FindOptions, Repository } from "./remult3";
|
|
4
4
|
import { ClassType } from "../classType";
|
|
5
|
-
import { LiveQueryClient } from "./live-query/LiveQuerySubscriber";
|
|
6
|
-
import type { ServerEventDispatcher } from "../live-query";
|
|
7
5
|
export interface ExternalHttpProvider {
|
|
8
6
|
post(url: string, data: any): Promise<any> | {
|
|
9
7
|
toPromise(): Promise<any>;
|
|
@@ -64,11 +62,9 @@ export declare class Remult {
|
|
|
64
62
|
constructor(http: ExternalHttpProvider | typeof fetch | ApiClient);
|
|
65
63
|
constructor(p: DataProvider);
|
|
66
64
|
constructor();
|
|
67
|
-
liveQueryPublisher: LiveQueryPublisherInterface;
|
|
68
65
|
call<T extends ((...args: any[]) => Promise<any>)>(backendMethod: T, classInstance?: any, ...args: GetArguments<T>): ReturnType<T>;
|
|
69
66
|
/** The current data provider */
|
|
70
67
|
dataProvider: DataProvider;
|
|
71
|
-
liveQuerySubscriber: LiveQueryClient;
|
|
72
68
|
/** A helper callback that can be used to debug and trace all find operations. Useful in debugging scenarios */
|
|
73
69
|
static onFind: (metadata: EntityMetadata, options: FindOptions<any>) => void;
|
|
74
70
|
clearAllCache(): any;
|
|
@@ -117,16 +113,3 @@ export declare class EventSource {
|
|
|
117
113
|
fire(): Promise<void>;
|
|
118
114
|
dispatcher: EventDispatcher;
|
|
119
115
|
}
|
|
120
|
-
export interface LiveQueryPublisherInterface {
|
|
121
|
-
stopLiveQuery(id: any): void;
|
|
122
|
-
sendChannelMessage<messageType>(channel: string, message: messageType): void;
|
|
123
|
-
defineLiveQueryChannel(repo: Repository<any>, options: FindOptions<any>, remult: Remult, ids: any[]): string;
|
|
124
|
-
itemChanged(entityKey: string, changes: itemChange[]): void;
|
|
125
|
-
dispatcher: ServerEventDispatcher;
|
|
126
|
-
}
|
|
127
|
-
export interface itemChange {
|
|
128
|
-
id: any;
|
|
129
|
-
oldId: any;
|
|
130
|
-
deleted: boolean;
|
|
131
|
-
}
|
|
132
|
-
export declare function doTransaction(remult: Remult, what: () => Promise<void>): Promise<void>;
|
package/esm/src/context.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { actionInfo, serverActionField } from './server-action';
|
|
2
2
|
import { RestDataProvider, RestDataProviderHttpProviderUsingFetch } from './data-providers/rest-data-provider';
|
|
3
3
|
import { RepositoryImplementation } from "./remult3/RepositoryImplementation";
|
|
4
|
-
import { LiveQueryClient } from "./live-query/LiveQuerySubscriber";
|
|
5
|
-
import { EventSourceLiveQueryProvider } from "./live-query/EventSourceLiveQueryProvider";
|
|
6
|
-
import { RemultProxy } from "./remult-proxy";
|
|
7
4
|
export class HttpProviderBridgeToRestDataProviderHttpProvider {
|
|
8
5
|
constructor(http) {
|
|
9
6
|
this.http = http;
|
|
@@ -98,20 +95,8 @@ export class Remult {
|
|
|
98
95
|
constructor(provider) {
|
|
99
96
|
/* @internal */
|
|
100
97
|
this.repCache = new Map();
|
|
101
|
-
this.liveQueryPublisher = {
|
|
102
|
-
itemChanged: () => { },
|
|
103
|
-
defineLiveQueryChannel: () => "",
|
|
104
|
-
dispatcher: undefined,
|
|
105
|
-
sendChannelMessage: function (arg0, what) {
|
|
106
|
-
throw new Error("invalid publisher.");
|
|
107
|
-
},
|
|
108
|
-
stopLiveQuery: function (id) {
|
|
109
|
-
throw new Error("Function not implemented.");
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
98
|
/** The current data provider */
|
|
113
99
|
this.dataProvider = new RestDataProvider(() => this.apiClient);
|
|
114
|
-
this.liveQuerySubscriber = new LiveQueryClient(new EventSourceLiveQueryProvider());
|
|
115
100
|
this.context = {};
|
|
116
101
|
this.apiClient = {
|
|
117
102
|
url: '/api'
|
|
@@ -202,7 +187,6 @@ export class Remult {
|
|
|
202
187
|
else
|
|
203
188
|
return this.isAllowed(allowed);
|
|
204
189
|
}
|
|
205
|
-
//@ts-ignore // type error of typescript regarding args that doesn't appear in my normal development
|
|
206
190
|
call(backendMethod, classInstance, ...args) {
|
|
207
191
|
const z = (backendMethod[serverActionField]);
|
|
208
192
|
if (!z.doWork)
|
|
@@ -216,7 +200,6 @@ export class Remult {
|
|
|
216
200
|
}
|
|
217
201
|
/** A helper callback that can be used to debug and trace all find operations. Useful in debugging scenarios */
|
|
218
202
|
Remult.onFind = (metadata, options) => { };
|
|
219
|
-
RemultProxy.defaultRemult = new Remult();
|
|
220
203
|
;
|
|
221
204
|
export const allEntities = [];
|
|
222
205
|
export const classHelpers = new Map();
|
|
@@ -286,62 +269,3 @@ export class EventSource {
|
|
|
286
269
|
}
|
|
287
270
|
}
|
|
288
271
|
}
|
|
289
|
-
export async function doTransaction(remult, what) {
|
|
290
|
-
return await remult.dataProvider.transaction(async (ds) => {
|
|
291
|
-
remult.dataProvider = (ds);
|
|
292
|
-
const trans = new transactionLiveQueryPublisher(remult.liveQueryPublisher);
|
|
293
|
-
remult.liveQueryPublisher = trans;
|
|
294
|
-
await what();
|
|
295
|
-
trans.flush();
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
class transactionLiveQueryPublisher {
|
|
299
|
-
constructor(orig) {
|
|
300
|
-
this.orig = orig;
|
|
301
|
-
this.transactionItems = new Map();
|
|
302
|
-
}
|
|
303
|
-
stopLiveQuery(id) {
|
|
304
|
-
this.orig.stopLiveQuery(id);
|
|
305
|
-
}
|
|
306
|
-
itemChanged(entityKey, changes) {
|
|
307
|
-
let items = this.transactionItems.get(entityKey);
|
|
308
|
-
if (!items) {
|
|
309
|
-
this.transactionItems.set(entityKey, items = []);
|
|
310
|
-
}
|
|
311
|
-
for (const c of changes) {
|
|
312
|
-
if (c.oldId !== undefined) {
|
|
313
|
-
const item = items.find(y => y.id === c.oldId);
|
|
314
|
-
if (item !== undefined) {
|
|
315
|
-
if (c.deleted)
|
|
316
|
-
item.deleted = true;
|
|
317
|
-
if (c.id != item.id)
|
|
318
|
-
item.id = c.id;
|
|
319
|
-
}
|
|
320
|
-
else
|
|
321
|
-
items.push(c);
|
|
322
|
-
}
|
|
323
|
-
else
|
|
324
|
-
items.push(c);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
flush() {
|
|
328
|
-
//TODO - figure out and resolve
|
|
329
|
-
setTimeout(() => {
|
|
330
|
-
for (const key of this.transactionItems.keys()) {
|
|
331
|
-
this.orig.itemChanged(key, this.transactionItems.get(key));
|
|
332
|
-
}
|
|
333
|
-
}, 100);
|
|
334
|
-
}
|
|
335
|
-
sendChannelMessage(channel, message) {
|
|
336
|
-
this.orig.sendChannelMessage(channel, message);
|
|
337
|
-
}
|
|
338
|
-
defineLiveQueryChannel(repo, options, remult, ids) {
|
|
339
|
-
return this.orig.defineLiveQueryChannel(repo, options, remult, ids);
|
|
340
|
-
}
|
|
341
|
-
get dispatcher() {
|
|
342
|
-
return this.orig.dispatcher;
|
|
343
|
-
}
|
|
344
|
-
set dispatcher(value) {
|
|
345
|
-
this.orig.dispatcher = value;
|
|
346
|
-
}
|
|
347
|
-
}
|