@loopback/repository 4.0.0-alpha.7 → 4.0.1
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/LICENSE +25 -0
- package/README.md +94 -372
- package/dist/common-types.d.ts +96 -0
- package/dist/common-types.js +24 -0
- package/dist/common-types.js.map +1 -0
- package/dist/connectors/connector.d.ts +48 -0
- package/{lib → dist/connectors}/connector.js +1 -1
- package/dist/connectors/connector.js.map +1 -0
- package/{lib/crud-connector.d.ts → dist/connectors/crud.connector.d.ts} +51 -51
- package/{lib/common-types.js → dist/connectors/crud.connector.js} +2 -2
- package/dist/connectors/crud.connector.js.map +1 -0
- package/dist/connectors/index.d.ts +3 -0
- package/dist/connectors/index.js +11 -0
- package/dist/connectors/index.js.map +1 -0
- package/{lib6/kv-connector.d.ts → dist/connectors/kv.connector.d.ts} +28 -28
- package/{lib/datasource.js → dist/connectors/kv.connector.js} +2 -2
- package/dist/connectors/kv.connector.js.map +1 -0
- package/dist/datasource.d.ts +27 -0
- package/{lib6 → dist}/datasource.js +1 -1
- package/dist/datasource.js.map +1 -0
- package/dist/decorators/index.d.ts +3 -0
- package/dist/decorators/index.js +11 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/metadata.d.ts +12 -0
- package/dist/decorators/metadata.js +51 -0
- package/dist/decorators/metadata.js.map +1 -0
- package/dist/decorators/model.decorator.d.ts +40 -0
- package/dist/decorators/model.decorator.js +112 -0
- package/dist/decorators/model.decorator.js.map +1 -0
- package/dist/decorators/repository.decorator.d.ts +106 -0
- package/dist/decorators/repository.decorator.js +114 -0
- package/dist/decorators/repository.decorator.js.map +1 -0
- package/dist/define-model-class.d.ts +55 -0
- package/dist/define-model-class.js +57 -0
- package/dist/define-model-class.js.map +1 -0
- package/dist/define-repository-class.d.ts +119 -0
- package/dist/define-repository-class.js +98 -0
- package/dist/define-repository-class.js.map +1 -0
- package/dist/errors/entity-not-found.error.d.ts +8 -0
- package/dist/errors/entity-not-found.error.js +28 -0
- package/dist/errors/entity-not-found.error.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.js +10 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/invalid-relation.error.d.ts +10 -0
- package/dist/errors/invalid-relation.error.js +28 -0
- package/dist/errors/invalid-relation.error.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/keys.d.ts +34 -0
- package/dist/keys.js +44 -0
- package/dist/keys.js.map +1 -0
- package/dist/mixins/index.d.ts +1 -0
- package/dist/mixins/index.js +9 -0
- package/dist/mixins/index.js.map +1 -0
- package/dist/mixins/repository.mixin.d.ts +377 -0
- package/dist/mixins/repository.mixin.js +405 -0
- package/dist/mixins/repository.mixin.js.map +1 -0
- package/dist/model.d.ts +232 -0
- package/dist/model.js +367 -0
- package/dist/model.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.accessor.d.ts +17 -0
- package/dist/relations/belongs-to/belongs-to.accessor.js +40 -0
- package/dist/relations/belongs-to/belongs-to.accessor.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.decorator.d.ts +11 -0
- package/dist/relations/belongs-to/belongs-to.decorator.js +64 -0
- package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.helpers.d.ts +17 -0
- package/dist/relations/belongs-to/belongs-to.helpers.js +63 -0
- package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.d.ts +14 -0
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +36 -0
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.repository.d.ts +28 -0
- package/dist/relations/belongs-to/belongs-to.repository.js +33 -0
- package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -0
- package/dist/relations/belongs-to/index.d.ts +4 -0
- package/dist/relations/belongs-to/index.js +12 -0
- package/dist/relations/belongs-to/index.js.map +1 -0
- package/dist/relations/has-many/has-many-through.helpers.d.ts +182 -0
- package/dist/relations/has-many/has-many-through.helpers.js +282 -0
- package/dist/relations/has-many/has-many-through.helpers.js.map +1 -0
- package/dist/relations/has-many/has-many-through.inclusion-resolver.d.ts +16 -0
- package/dist/relations/has-many/has-many-through.inclusion-resolver.js +78 -0
- package/dist/relations/has-many/has-many-through.inclusion-resolver.js.map +1 -0
- package/dist/relations/has-many/has-many-through.repository-factory.d.ts +17 -0
- package/dist/relations/has-many/has-many-through.repository-factory.js +37 -0
- package/dist/relations/has-many/has-many-through.repository-factory.js.map +1 -0
- package/dist/relations/has-many/has-many-through.repository.d.ts +114 -0
- package/dist/relations/has-many/has-many-through.repository.js +103 -0
- package/dist/relations/has-many/has-many-through.repository.js.map +1 -0
- package/dist/relations/has-many/has-many.decorator.d.ts +11 -0
- package/dist/relations/has-many/has-many.decorator.js +36 -0
- package/dist/relations/has-many/has-many.decorator.js.map +1 -0
- package/dist/relations/has-many/has-many.helpers.d.ts +26 -0
- package/dist/relations/has-many/has-many.helpers.js +78 -0
- package/dist/relations/has-many/has-many.helpers.js.map +1 -0
- package/dist/relations/has-many/has-many.inclusion-resolver.d.ts +14 -0
- package/dist/relations/has-many/has-many.inclusion-resolver.js +45 -0
- package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -0
- package/dist/relations/has-many/has-many.repository-factory.d.ts +28 -0
- package/dist/relations/has-many/has-many.repository-factory.js +39 -0
- package/dist/relations/has-many/has-many.repository-factory.js.map +1 -0
- package/dist/relations/has-many/has-many.repository.d.ts +54 -0
- package/dist/relations/has-many/has-many.repository.js +38 -0
- package/dist/relations/has-many/has-many.repository.js.map +1 -0
- package/dist/relations/has-many/index.d.ts +6 -0
- package/dist/relations/has-many/index.js +14 -0
- package/dist/relations/has-many/index.js.map +1 -0
- package/dist/relations/has-one/has-one.decorator.d.ts +3 -0
- package/dist/relations/has-one/has-one.decorator.js +37 -0
- package/dist/relations/has-one/has-one.decorator.js.map +1 -0
- package/dist/relations/has-one/has-one.helpers.d.ts +17 -0
- package/dist/relations/has-one/has-one.helpers.js +64 -0
- package/dist/relations/has-one/has-one.helpers.js.map +1 -0
- package/dist/relations/has-one/has-one.inclusion-resolver.d.ts +14 -0
- package/dist/relations/has-one/has-one.inclusion-resolver.js +35 -0
- package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -0
- package/dist/relations/has-one/has-one.repository-factory.d.ts +28 -0
- package/dist/relations/has-one/has-one.repository-factory.js +39 -0
- package/dist/relations/has-one/has-one.repository-factory.js.map +1 -0
- package/dist/relations/has-one/has-one.repository.d.ts +53 -0
- package/dist/relations/has-one/has-one.repository.js +45 -0
- package/dist/relations/has-one/has-one.repository.js.map +1 -0
- package/dist/relations/has-one/index.d.ts +3 -0
- package/dist/relations/has-one/index.js +11 -0
- package/dist/relations/has-one/index.js.map +1 -0
- package/dist/relations/index.d.ts +6 -0
- package/dist/relations/index.js +14 -0
- package/dist/relations/index.js.map +1 -0
- package/dist/relations/relation.decorator.d.ts +39 -0
- package/dist/relations/relation.decorator.js +88 -0
- package/dist/relations/relation.decorator.js.map +1 -0
- package/dist/relations/relation.helpers.d.ts +105 -0
- package/dist/relations/relation.helpers.js +304 -0
- package/dist/relations/relation.helpers.js.map +1 -0
- package/dist/relations/relation.types.d.ts +142 -0
- package/dist/relations/relation.types.js +21 -0
- package/dist/relations/relation.types.js.map +1 -0
- package/dist/repositories/constraint-utils.d.ts +49 -0
- package/dist/repositories/constraint-utils.js +87 -0
- package/dist/repositories/constraint-utils.js.map +1 -0
- package/dist/repositories/index.d.ts +5 -0
- package/dist/repositories/index.js +13 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/repositories/kv.repository.bridge.d.ts +30 -0
- package/dist/repositories/kv.repository.bridge.js +76 -0
- package/dist/repositories/kv.repository.bridge.js.map +1 -0
- package/dist/repositories/kv.repository.d.ts +74 -0
- package/{lib/crud-connector.js → dist/repositories/kv.repository.js} +2 -2
- package/dist/repositories/kv.repository.js.map +1 -0
- package/dist/repositories/legacy-juggler-bridge.d.ts +305 -0
- package/dist/repositories/legacy-juggler-bridge.js +452 -0
- package/dist/repositories/legacy-juggler-bridge.js.map +1 -0
- package/dist/repositories/repository.d.ts +223 -0
- package/dist/repositories/repository.js +157 -0
- package/dist/repositories/repository.js.map +1 -0
- package/dist/transaction.d.ts +30 -0
- package/dist/transaction.js +18 -0
- package/dist/transaction.js.map +1 -0
- package/dist/type-resolver.d.ts +42 -0
- package/dist/type-resolver.js +61 -0
- package/dist/type-resolver.js.map +1 -0
- package/{lib → dist}/types/any.d.ts +1 -1
- package/{lib6 → dist}/types/any.js +3 -2
- package/dist/types/any.js.map +1 -0
- package/{lib6 → dist}/types/array.d.ts +4 -4
- package/{lib6 → dist}/types/array.js +6 -4
- package/dist/types/array.js.map +1 -0
- package/{lib → dist}/types/boolean.d.ts +1 -1
- package/{lib6 → dist}/types/boolean.js +3 -2
- package/dist/types/boolean.js.map +1 -0
- package/{lib6 → dist}/types/buffer.d.ts +2 -2
- package/{lib → dist}/types/buffer.js +8 -6
- package/dist/types/buffer.js.map +1 -0
- package/{lib → dist}/types/date.d.ts +1 -1
- package/{lib → dist}/types/date.js +6 -4
- package/dist/types/date.js.map +1 -0
- package/{lib → dist}/types/index.d.ts +11 -9
- package/dist/types/index.js +49 -0
- package/dist/types/index.js.map +1 -0
- package/{lib6 → dist}/types/model.d.ts +2 -1
- package/{lib6 → dist}/types/model.js +2 -2
- package/dist/types/model.js.map +1 -0
- package/dist/types/null.d.ts +12 -0
- package/{lib/types/boolean.js → dist/types/null.js} +12 -11
- package/dist/types/null.js.map +1 -0
- package/{lib6 → dist}/types/number.d.ts +1 -1
- package/{lib → dist}/types/number.js +6 -4
- package/dist/types/number.js.map +1 -0
- package/{lib → dist}/types/object.d.ts +1 -1
- package/{lib → dist}/types/object.js +7 -6
- package/dist/types/object.js.map +1 -0
- package/{lib → dist}/types/string.d.ts +1 -1
- package/{lib → dist}/types/string.js +3 -2
- package/dist/types/string.js.map +1 -0
- package/{lib6 → dist}/types/type.d.ts +7 -7
- package/{lib6 → dist}/types/type.js +1 -1
- package/dist/types/type.js.map +1 -0
- package/{lib → dist}/types/union.d.ts +1 -1
- package/{lib → dist}/types/union.js +6 -4
- package/dist/types/union.js.map +1 -0
- package/package.json +49 -32
- package/src/common-types.ts +123 -0
- package/src/connectors/connector.ts +70 -0
- package/src/connectors/crud.connector.ts +208 -0
- package/src/connectors/index.ts +8 -0
- package/src/connectors/kv.connector.ts +113 -0
- package/src/datasource.ts +37 -0
- package/src/decorators/index.ts +8 -0
- package/src/decorators/metadata.ts +84 -0
- package/src/decorators/model.decorator.ts +166 -0
- package/src/decorators/repository.decorator.ts +223 -0
- package/src/define-model-class.ts +90 -0
- package/src/define-repository-class.ts +170 -0
- package/src/errors/entity-not-found.error.ts +40 -0
- package/src/errors/index.ts +7 -0
- package/src/errors/invalid-relation.error.ts +39 -0
- package/src/index.ts +36 -0
- package/src/keys.ts +40 -0
- package/{index.d.ts → src/mixins/index.ts} +2 -2
- package/src/mixins/repository.mixin.ts +499 -0
- package/src/model.ts +539 -0
- package/src/relations/belongs-to/belongs-to.accessor.ts +74 -0
- package/src/relations/belongs-to/belongs-to.decorator.ts +81 -0
- package/src/relations/belongs-to/belongs-to.helpers.ts +78 -0
- package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +71 -0
- package/src/relations/belongs-to/belongs-to.repository.ts +55 -0
- package/src/relations/belongs-to/index.ts +9 -0
- package/src/relations/has-many/has-many-through.helpers.ts +361 -0
- package/src/relations/has-many/has-many-through.inclusion-resolver.ts +135 -0
- package/src/relations/has-many/has-many-through.repository-factory.ts +121 -0
- package/src/relations/has-many/has-many-through.repository.ts +318 -0
- package/src/relations/has-many/has-many.decorator.ts +38 -0
- package/src/relations/has-many/has-many.helpers.ts +100 -0
- package/src/relations/has-many/has-many.inclusion-resolver.ts +88 -0
- package/src/relations/has-many/has-many.repository-factory.ts +76 -0
- package/src/relations/has-many/has-many.repository.ts +118 -0
- package/src/relations/has-many/index.ts +11 -0
- package/src/relations/has-one/has-one.decorator.ts +40 -0
- package/src/relations/has-one/has-one.helpers.ts +84 -0
- package/src/relations/has-one/has-one.inclusion-resolver.ts +65 -0
- package/src/relations/has-one/has-one.repository-factory.ts +72 -0
- package/src/relations/has-one/has-one.repository.ts +127 -0
- package/src/relations/has-one/index.ts +8 -0
- package/src/relations/index.ts +11 -0
- package/src/relations/relation.decorator.ts +90 -0
- package/src/relations/relation.helpers.ts +373 -0
- package/src/relations/relation.types.ts +180 -0
- package/src/repositories/constraint-utils.ts +98 -0
- package/src/repositories/index.ts +10 -0
- package/src/repositories/kv.repository.bridge.ts +97 -0
- package/src/repositories/kv.repository.ts +87 -0
- package/src/repositories/legacy-juggler-bridge.ts +788 -0
- package/src/repositories/repository.ts +441 -0
- package/src/transaction.ts +39 -0
- package/src/type-resolver.ts +98 -0
- package/src/types/any.ts +38 -0
- package/src/types/array.ts +53 -0
- package/src/types/boolean.ts +35 -0
- package/src/types/buffer.ts +53 -0
- package/src/types/date.ts +61 -0
- package/src/types/index.ts +52 -0
- package/src/types/model.ts +24 -0
- package/src/types/null.ts +35 -0
- package/src/types/number.ts +42 -0
- package/src/types/object.ts +53 -0
- package/src/types/string.ts +42 -0
- package/src/types/type.ts +51 -0
- package/src/types/union.ts +55 -0
- package/api-docs/apple-touch-icon-114x114-precomposed.png +0 -0
- package/api-docs/apple-touch-icon-144x144-precomposed.png +0 -0
- package/api-docs/apple-touch-icon-57x57-precomposed.png +0 -0
- package/api-docs/apple-touch-icon-72x72-precomposed.png +0 -0
- package/api-docs/apple-touch-icon-precomposed.png +0 -0
- package/api-docs/apple-touch-icon.png +0 -0
- package/api-docs/css/bootstrap.min.css +0 -9
- package/api-docs/css/code-themes/arta.css +0 -158
- package/api-docs/css/code-themes/ascetic.css +0 -50
- package/api-docs/css/code-themes/brown_paper.css +0 -104
- package/api-docs/css/code-themes/brown_papersq.png +0 -0
- package/api-docs/css/code-themes/dark.css +0 -103
- package/api-docs/css/code-themes/default.css +0 -135
- package/api-docs/css/code-themes/far.css +0 -111
- package/api-docs/css/code-themes/github.css +0 -127
- package/api-docs/css/code-themes/googlecode.css +0 -144
- package/api-docs/css/code-themes/idea.css +0 -121
- package/api-docs/css/code-themes/ir_black.css +0 -104
- package/api-docs/css/code-themes/magula.css +0 -121
- package/api-docs/css/code-themes/monokai.css +0 -114
- package/api-docs/css/code-themes/pojoaque.css +0 -104
- package/api-docs/css/code-themes/pojoaque.jpg +0 -0
- package/api-docs/css/code-themes/rainbow.css +0 -114
- package/api-docs/css/code-themes/school_book.css +0 -111
- package/api-docs/css/code-themes/school_book.png +0 -0
- package/api-docs/css/code-themes/sl-theme.css +0 -45
- package/api-docs/css/code-themes/solarized_dark.css +0 -88
- package/api-docs/css/code-themes/solarized_light.css +0 -88
- package/api-docs/css/code-themes/sunburst.css +0 -158
- package/api-docs/css/code-themes/tomorrow-night-blue.css +0 -52
- package/api-docs/css/code-themes/tomorrow-night-bright.css +0 -51
- package/api-docs/css/code-themes/tomorrow-night-eighties.css +0 -51
- package/api-docs/css/code-themes/tomorrow-night.css +0 -52
- package/api-docs/css/code-themes/tomorrow.css +0 -49
- package/api-docs/css/code-themes/vs.css +0 -86
- package/api-docs/css/code-themes/xcode.css +0 -154
- package/api-docs/css/code-themes/zenburn.css +0 -115
- package/api-docs/css/main.css +0 -139
- package/api-docs/favicon.ico +0 -0
- package/api-docs/fonts/0ihfXUL2emPh0ROJezvraLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
- package/api-docs/fonts/OsJ2DjdpjqFRVUSto6IffLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
- package/api-docs/fonts/_aijTyevf54tkVDLy-dlnLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
- package/api-docs/index.html +0 -18017
- package/api-docs/js/main.js +0 -19
- package/api-docs/js/vendor/bootstrap.min.js +0 -6
- package/api-docs/js/vendor/jquery-1.10.1.min.js +0 -6
- package/api-docs/js/vendor/jquery.scrollTo-1.4.3.1.js +0 -218
- package/api-docs/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js +0 -11
- package/index.js +0 -9
- package/lib/common-types.d.ts +0 -44
- package/lib/common-types.js.map +0 -1
- package/lib/connector.d.ts +0 -12
- package/lib/connector.js.map +0 -1
- package/lib/crud-connector.js.map +0 -1
- package/lib/datasource.d.ts +0 -11
- package/lib/datasource.js.map +0 -1
- package/lib/decorators/model.d.ts +0 -17
- package/lib/decorators/model.js +0 -55
- package/lib/decorators/model.js.map +0 -1
- package/lib/decorators/relation.d.ts +0 -65
- package/lib/decorators/relation.js +0 -126
- package/lib/decorators/relation.js.map +0 -1
- package/lib/decorators/repository.d.ts +0 -61
- package/lib/decorators/repository.js +0 -107
- package/lib/decorators/repository.js.map +0 -1
- package/lib/index.d.ts +0 -16
- package/lib/index.js +0 -20
- package/lib/index.js.map +0 -1
- package/lib/kv-connector.d.ts +0 -77
- package/lib/kv-connector.js +0 -7
- package/lib/kv-connector.js.map +0 -1
- package/lib/kv-repository.d.ts +0 -78
- package/lib/kv-repository.js +0 -7
- package/lib/kv-repository.js.map +0 -1
- package/lib/legacy-juggler-bridge.d.ts +0 -53
- package/lib/legacy-juggler-bridge.js +0 -142
- package/lib/legacy-juggler-bridge.js.map +0 -1
- package/lib/loopback-datasource-juggler.d.ts +0 -666
- package/lib/loopback-datasource-juggler.js +0 -8
- package/lib/loopback-datasource-juggler.js.map +0 -1
- package/lib/mixin.d.ts +0 -43
- package/lib/mixin.js +0 -34
- package/lib/mixin.js.map +0 -1
- package/lib/model.d.ts +0 -137
- package/lib/model.js +0 -182
- package/lib/model.js.map +0 -1
- package/lib/query.d.ts +0 -112
- package/lib/query.js +0 -25
- package/lib/query.js.map +0 -1
- package/lib/repository.d.ts +0 -172
- package/lib/repository.js +0 -127
- package/lib/repository.js.map +0 -1
- package/lib/types/any.js +0 -35
- package/lib/types/any.js.map +0 -1
- package/lib/types/array.d.ts +0 -14
- package/lib/types/array.js +0 -53
- package/lib/types/array.js.map +0 -1
- package/lib/types/boolean.js.map +0 -1
- package/lib/types/buffer.d.ts +0 -14
- package/lib/types/buffer.js.map +0 -1
- package/lib/types/date.js.map +0 -1
- package/lib/types/index.js +0 -33
- package/lib/types/index.js.map +0 -1
- package/lib/types/model.d.ts +0 -11
- package/lib/types/model.js +0 -25
- package/lib/types/model.js.map +0 -1
- package/lib/types/number.d.ts +0 -12
- package/lib/types/number.js.map +0 -1
- package/lib/types/object.js.map +0 -1
- package/lib/types/string.js.map +0 -1
- package/lib/types/type.d.ts +0 -38
- package/lib/types/type.js +0 -7
- package/lib/types/type.js.map +0 -1
- package/lib/types/union.js.map +0 -1
- package/lib6/common-types.d.ts +0 -44
- package/lib6/common-types.js +0 -7
- package/lib6/common-types.js.map +0 -1
- package/lib6/connector.d.ts +0 -12
- package/lib6/connector.js +0 -7
- package/lib6/connector.js.map +0 -1
- package/lib6/crud-connector.d.ts +0 -130
- package/lib6/crud-connector.js +0 -7
- package/lib6/crud-connector.js.map +0 -1
- package/lib6/datasource.d.ts +0 -11
- package/lib6/datasource.js.map +0 -1
- package/lib6/decorators/model.d.ts +0 -17
- package/lib6/decorators/model.js +0 -55
- package/lib6/decorators/model.js.map +0 -1
- package/lib6/decorators/relation.d.ts +0 -65
- package/lib6/decorators/relation.js +0 -126
- package/lib6/decorators/relation.js.map +0 -1
- package/lib6/decorators/repository.d.ts +0 -61
- package/lib6/decorators/repository.js +0 -117
- package/lib6/decorators/repository.js.map +0 -1
- package/lib6/index.d.ts +0 -16
- package/lib6/index.js +0 -20
- package/lib6/index.js.map +0 -1
- package/lib6/kv-connector.js +0 -7
- package/lib6/kv-connector.js.map +0 -1
- package/lib6/kv-repository.d.ts +0 -78
- package/lib6/kv-repository.js +0 -7
- package/lib6/kv-repository.js.map +0 -1
- package/lib6/legacy-juggler-bridge.d.ts +0 -53
- package/lib6/legacy-juggler-bridge.js +0 -158
- package/lib6/legacy-juggler-bridge.js.map +0 -1
- package/lib6/loopback-datasource-juggler.d.ts +0 -666
- package/lib6/loopback-datasource-juggler.js +0 -8
- package/lib6/loopback-datasource-juggler.js.map +0 -1
- package/lib6/mixin.d.ts +0 -43
- package/lib6/mixin.js +0 -34
- package/lib6/mixin.js.map +0 -1
- package/lib6/model.d.ts +0 -137
- package/lib6/model.js +0 -182
- package/lib6/model.js.map +0 -1
- package/lib6/query.d.ts +0 -112
- package/lib6/query.js +0 -25
- package/lib6/query.js.map +0 -1
- package/lib6/repository.d.ts +0 -172
- package/lib6/repository.js +0 -127
- package/lib6/repository.js.map +0 -1
- package/lib6/types/any.d.ts +0 -12
- package/lib6/types/any.js.map +0 -1
- package/lib6/types/array.js.map +0 -1
- package/lib6/types/boolean.d.ts +0 -12
- package/lib6/types/boolean.js.map +0 -1
- package/lib6/types/buffer.js +0 -57
- package/lib6/types/buffer.js.map +0 -1
- package/lib6/types/date.d.ts +0 -12
- package/lib6/types/date.js +0 -60
- package/lib6/types/date.js.map +0 -1
- package/lib6/types/index.d.ts +0 -30
- package/lib6/types/index.js +0 -33
- package/lib6/types/index.js.map +0 -1
- package/lib6/types/model.js.map +0 -1
- package/lib6/types/number.js +0 -40
- package/lib6/types/number.js.map +0 -1
- package/lib6/types/object.d.ts +0 -15
- package/lib6/types/object.js +0 -49
- package/lib6/types/object.js.map +0 -1
- package/lib6/types/string.d.ts +0 -12
- package/lib6/types/string.js +0 -40
- package/lib6/types/string.js.map +0 -1
- package/lib6/types/type.js.map +0 -1
- package/lib6/types/union.d.ts +0 -14
- package/lib6/types/union.js +0 -51
- package/lib6/types/union.js.map +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {Filter, FilterBuilder, Where, WhereBuilder} from '@loopback/filter';
|
|
7
|
+
import {cloneDeep} from 'lodash';
|
|
8
|
+
import {AnyObject, DataObject} from '../common-types';
|
|
9
|
+
import {Entity} from '../model';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A utility function which takes a filter and enforces constraint(s)
|
|
13
|
+
* on it
|
|
14
|
+
* @param originalFilter - the filter to apply the constrain(s) to
|
|
15
|
+
* @param constraint - the constraint which is to be applied on the filter
|
|
16
|
+
* @returns Filter the modified filter with the constraint, otherwise
|
|
17
|
+
* the original filter
|
|
18
|
+
*/
|
|
19
|
+
export function constrainFilter<T extends object>(
|
|
20
|
+
originalFilter: Filter<T> | undefined,
|
|
21
|
+
constraint: AnyObject,
|
|
22
|
+
): Filter<T> {
|
|
23
|
+
const filter = cloneDeep(originalFilter);
|
|
24
|
+
const builder = new FilterBuilder<T>(filter);
|
|
25
|
+
return builder.impose(constraint).build();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* A utility function which takes a where filter and enforces constraint(s)
|
|
30
|
+
* on it
|
|
31
|
+
* @param originalWhere - the where filter to apply the constrain(s) to
|
|
32
|
+
* @param constraint - the constraint which is to be applied on the filter
|
|
33
|
+
* @returns Filter the modified filter with the constraint, otherwise
|
|
34
|
+
* the original filter
|
|
35
|
+
*/
|
|
36
|
+
export function constrainWhere<T extends object>(
|
|
37
|
+
originalWhere: Where<T> | undefined,
|
|
38
|
+
constraint: Where<T>,
|
|
39
|
+
): Where<T> {
|
|
40
|
+
const where = cloneDeep(originalWhere);
|
|
41
|
+
const builder = new WhereBuilder<T>(where);
|
|
42
|
+
return builder.impose(constraint).build();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A utility function which takes a where filter and enforces constraint(s)
|
|
46
|
+
* on it with OR clause
|
|
47
|
+
* @param originalWhere - the where filter to apply the constrain(s) to
|
|
48
|
+
* @param constraint - the constraint which is to be applied on the filter with
|
|
49
|
+
* or clause
|
|
50
|
+
* @returns Filter the modified filter with the constraint, otherwise
|
|
51
|
+
* the original filter
|
|
52
|
+
*/
|
|
53
|
+
export function constrainWhereOr<T extends object>(
|
|
54
|
+
originalWhere: Where<T> | undefined,
|
|
55
|
+
constraint: Where<T>[],
|
|
56
|
+
): Where<T> {
|
|
57
|
+
const where = cloneDeep(originalWhere);
|
|
58
|
+
const builder = new WhereBuilder<T>(where);
|
|
59
|
+
return builder.or(constraint).build();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A utility function which takes a model instance data and enforces constraint(s)
|
|
63
|
+
* on it
|
|
64
|
+
* @param originalData - the model data to apply the constrain(s) to
|
|
65
|
+
* @param constraint - the constraint which is to be applied on the data object
|
|
66
|
+
* @returns the modified data with the constraint, otherwise
|
|
67
|
+
* the original instance data
|
|
68
|
+
*/
|
|
69
|
+
export function constrainDataObject<T extends Entity>(
|
|
70
|
+
originalData: DataObject<T>,
|
|
71
|
+
constraint: DataObject<T>,
|
|
72
|
+
): DataObject<T> {
|
|
73
|
+
const constrainedData = cloneDeep(originalData);
|
|
74
|
+
for (const c in constraint) {
|
|
75
|
+
if (Object.prototype.hasOwnProperty.call(constrainedData, c)) {
|
|
76
|
+
// Known limitation: === does not work for objects such as ObjectId
|
|
77
|
+
if (originalData[c] === constraint[c]) continue;
|
|
78
|
+
throw new Error(`Property "${c}" cannot be changed!`);
|
|
79
|
+
}
|
|
80
|
+
(constrainedData as AnyObject)[c] = constraint[c];
|
|
81
|
+
}
|
|
82
|
+
return constrainedData;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* A utility function which takes an array of model instance data and
|
|
87
|
+
* enforces constraint(s) on it
|
|
88
|
+
* @param originalData - the array of model data to apply the constrain(s) to
|
|
89
|
+
* @param constraint - the constraint which is to be applied on the data objects
|
|
90
|
+
* @returns an array of the modified data with the constraint, otherwise
|
|
91
|
+
* the original instance data array
|
|
92
|
+
*/
|
|
93
|
+
export function constrainDataObjects<T extends Entity>(
|
|
94
|
+
originalData: DataObject<T>[],
|
|
95
|
+
constraint: DataObject<T>,
|
|
96
|
+
): DataObject<T>[] {
|
|
97
|
+
return originalData.map(obj => constrainDataObject(obj, constraint));
|
|
98
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
export * from './kv.repository';
|
|
7
|
+
export * from './legacy-juggler-bridge';
|
|
8
|
+
export * from './kv.repository.bridge';
|
|
9
|
+
export * from './repository';
|
|
10
|
+
export * from './constraint-utils';
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import legacy from 'loopback-datasource-juggler';
|
|
7
|
+
import {DataObject, Options} from '../common-types';
|
|
8
|
+
import {Model} from '../model';
|
|
9
|
+
import {KeyValueFilter, KeyValueRepository} from './kv.repository';
|
|
10
|
+
import {ensurePromise, juggler} from './legacy-juggler-bridge';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* An implementation of KeyValueRepository based on loopback-datasource-juggler
|
|
14
|
+
*/
|
|
15
|
+
export class DefaultKeyValueRepository<T extends Model>
|
|
16
|
+
implements KeyValueRepository<T>
|
|
17
|
+
{
|
|
18
|
+
/**
|
|
19
|
+
* A legacy KeyValueModel class
|
|
20
|
+
*/
|
|
21
|
+
kvModelClass: typeof juggler.KeyValueModel;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Construct a KeyValueRepository with a legacy DataSource
|
|
25
|
+
* @param ds - Legacy DataSource
|
|
26
|
+
*/
|
|
27
|
+
constructor(
|
|
28
|
+
private entityClass: typeof Model & {prototype: T},
|
|
29
|
+
ds: juggler.DataSource,
|
|
30
|
+
) {
|
|
31
|
+
// KVModel class is placeholder to receive methods from KeyValueAccessObject
|
|
32
|
+
// through mixin
|
|
33
|
+
this.kvModelClass =
|
|
34
|
+
ds.createModel<typeof juggler.KeyValueModel>('_kvModel');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
delete(key: string, options?: Options): Promise<void> {
|
|
38
|
+
return ensurePromise(this.kvModelClass.delete(key, options));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
deleteAll(options?: Options): Promise<void> {
|
|
42
|
+
return ensurePromise(this.kvModelClass.deleteAll(options));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
protected toEntity(modelData: legacy.ModelData): T {
|
|
46
|
+
if (modelData == null) return modelData;
|
|
47
|
+
let data = modelData;
|
|
48
|
+
if (typeof modelData.toObject === 'function') {
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
data = (modelData as any).toObject();
|
|
51
|
+
}
|
|
52
|
+
return new this.entityClass(data) as T;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async get(key: string, options?: Options): Promise<T> {
|
|
56
|
+
const val = this.kvModelClass.get(
|
|
57
|
+
key,
|
|
58
|
+
options,
|
|
59
|
+
) as legacy.PromiseOrVoid<legacy.ModelData>;
|
|
60
|
+
const result = await ensurePromise(val);
|
|
61
|
+
return this.toEntity(result);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
set(key: string, value: DataObject<T>, options?: Options): Promise<void> {
|
|
65
|
+
return ensurePromise<void>(this.kvModelClass.set(key, value, options));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
expire(key: string, ttl: number, options?: Options): Promise<void> {
|
|
69
|
+
return ensurePromise<void>(this.kvModelClass.expire(key, ttl, options));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
ttl(key: string, options?: Options): Promise<number> {
|
|
73
|
+
return ensurePromise<number>(this.kvModelClass.ttl(key, options));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
keys(filter?: KeyValueFilter, options?: Options): AsyncIterable<string> {
|
|
77
|
+
const kvModelClass = this.kvModelClass;
|
|
78
|
+
const iterator = {
|
|
79
|
+
[Symbol.asyncIterator]() {
|
|
80
|
+
return new AsyncKeyIteratorImpl(
|
|
81
|
+
kvModelClass.iterateKeys(filter, options),
|
|
82
|
+
);
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
return iterator;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
class AsyncKeyIteratorImpl implements AsyncIterator<string> {
|
|
90
|
+
constructor(private keys: legacy.AsyncKeyIterator) {}
|
|
91
|
+
next() {
|
|
92
|
+
const key = ensurePromise<string | undefined>(this.keys.next());
|
|
93
|
+
return key.then(k => {
|
|
94
|
+
return {done: k === undefined, value: k ?? ''};
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {Repository} from './repository';
|
|
7
|
+
import {Options, DataObject} from '../common-types';
|
|
8
|
+
import {Model} from '../model';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Filter for keys
|
|
12
|
+
*/
|
|
13
|
+
export type KeyValueFilter = {
|
|
14
|
+
/**
|
|
15
|
+
* Glob string to use to filter returned keys (i.e. `userid.*`). All
|
|
16
|
+
* connectors are required to support `*` and `?`. They may also support
|
|
17
|
+
* additional special characters that are specific to the backing database.
|
|
18
|
+
*/
|
|
19
|
+
match: string;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Key/Value operations for connector implementations
|
|
24
|
+
*/
|
|
25
|
+
export interface KeyValueRepository<T extends Model> extends Repository<T> {
|
|
26
|
+
/**
|
|
27
|
+
* Delete an entry by key
|
|
28
|
+
*
|
|
29
|
+
* @param key - Key for the entry
|
|
30
|
+
* @param options - Options for the operation
|
|
31
|
+
*/
|
|
32
|
+
delete(key: string, options?: Options): Promise<void>;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Delete all entries
|
|
36
|
+
*
|
|
37
|
+
* @param key - Key for the entry
|
|
38
|
+
* @param options - Options for the operation
|
|
39
|
+
*/
|
|
40
|
+
deleteAll(options?: Options): Promise<void>;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Get an entry by key
|
|
44
|
+
*
|
|
45
|
+
* @param key - Key for the entry
|
|
46
|
+
* @param options - Options for the operation
|
|
47
|
+
* @returns A promise of the entry
|
|
48
|
+
*/
|
|
49
|
+
get(key: string, options?: Options): Promise<T>;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Set an entry with key/value
|
|
53
|
+
*
|
|
54
|
+
* @param key - Key for the entry
|
|
55
|
+
* @param value - Value for the entry
|
|
56
|
+
* @param options - Options for the operation
|
|
57
|
+
*/
|
|
58
|
+
set(key: string, value: DataObject<T>, options?: Options): Promise<void>;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Set up ttl for an entry by key
|
|
62
|
+
*
|
|
63
|
+
* @param key - Key for the entry
|
|
64
|
+
* @param ttl - Ttl for the entry
|
|
65
|
+
* @param options - Options for the operation
|
|
66
|
+
*/
|
|
67
|
+
expire(key: string, ttl: number, options?: Options): Promise<void>;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Get ttl for an entry by key
|
|
71
|
+
*
|
|
72
|
+
* @param key - Key for the entry
|
|
73
|
+
* @param options - Options for the operation
|
|
74
|
+
* @returns A promise of the TTL value
|
|
75
|
+
*/
|
|
76
|
+
ttl?(key: string, options?: Options): Promise<number>;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Get an Iterator for matching keys
|
|
80
|
+
*
|
|
81
|
+
* @param filter - Filter for keys
|
|
82
|
+
* @param options - Options for the operation
|
|
83
|
+
* @returns An async iteratable iterator of keys so that the return value can
|
|
84
|
+
* be used with `for-await-of`.
|
|
85
|
+
*/
|
|
86
|
+
keys?(filter?: KeyValueFilter, options?: Options): AsyncIterable<string>;
|
|
87
|
+
}
|