typeorm 0.3.13 → 0.3.14-dev.0194f17
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/browser/data-source/DataSource.d.ts +5 -0
- package/browser/data-source/DataSource.js +34 -16
- package/browser/data-source/DataSource.js.map +1 -1
- package/browser/driver/DriverUtils.d.ts +1 -1
- package/browser/driver/DriverUtils.js +13 -9
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/entity-manager/EntityManager.d.ts +2 -1
- package/browser/entity-manager/EntityManager.js +7 -6
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.js +1 -1
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +1 -1
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.js +11 -4
- package/browser/query-builder/JoinAttribute.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +6 -1
- package/browser/query-builder/QueryBuilder.js +57 -26
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationIdLoader.js +7 -7
- package/browser/query-builder/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +75 -46
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoader.js +4 -4
- package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +7 -7
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/util/InstanceChecker.d.ts +0 -2
- package/browser/util/InstanceChecker.js +0 -9
- package/browser/util/InstanceChecker.js.map +1 -1
- package/browser/util/ObjectUtils.d.ts +8 -0
- package/browser/util/ObjectUtils.js +8 -0
- package/browser/util/ObjectUtils.js.map +1 -1
- package/browser/util/StringUtils.js +1 -1
- package/browser/util/StringUtils.js.map +1 -1
- package/data-source/DataSource.d.ts +5 -0
- package/data-source/DataSource.js +34 -16
- package/data-source/DataSource.js.map +1 -1
- package/driver/DriverUtils.d.ts +1 -1
- package/driver/DriverUtils.js +13 -9
- package/driver/DriverUtils.js.map +1 -1
- package/entity-manager/EntityManager.d.ts +2 -1
- package/entity-manager/EntityManager.js +7 -6
- package/entity-manager/EntityManager.js.map +1 -1
- package/package.json +1 -272
- package/query-builder/DeleteQueryBuilder.js +1 -1
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +1 -1
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.js +11 -4
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +6 -1
- package/query-builder/QueryBuilder.js +57 -26
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/RelationIdLoader.js +7 -7
- package/query-builder/RelationIdLoader.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js +75 -46
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.js +1 -1
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +1 -1
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoader.js +4 -4
- package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +7 -7
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/util/InstanceChecker.d.ts +0 -2
- package/util/InstanceChecker.js +0 -9
- package/util/InstanceChecker.js.map +1 -1
- package/util/ObjectUtils.d.ts +8 -0
- package/util/ObjectUtils.js +8 -0
- package/util/ObjectUtils.js.map +1 -1
- package/util/StringUtils.js +1 -1
- package/util/StringUtils.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,272 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "typeorm",
|
|
3
|
-
"private": false,
|
|
4
|
-
"version": "0.3.13",
|
|
5
|
-
"description": "Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"readmeFilename": "README.md",
|
|
8
|
-
"author": {
|
|
9
|
-
"name": "Umed Khudoiberdiev",
|
|
10
|
-
"email": "pleerock.me@gmail.com"
|
|
11
|
-
},
|
|
12
|
-
"engines": {
|
|
13
|
-
"node": ">= 12.9.0"
|
|
14
|
-
},
|
|
15
|
-
"exports": {
|
|
16
|
-
".": {
|
|
17
|
-
"types": "./index.d.ts",
|
|
18
|
-
"node": {
|
|
19
|
-
"import": "./index.mjs",
|
|
20
|
-
"require": "./index.js",
|
|
21
|
-
"types": "./index.d.ts"
|
|
22
|
-
},
|
|
23
|
-
"browser": {
|
|
24
|
-
"require": "./index.js",
|
|
25
|
-
"import": "./browser/index.js",
|
|
26
|
-
"default": "./index.js"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"./browser": {
|
|
30
|
-
"types": "./index.d.ts",
|
|
31
|
-
"default": "./browser/index.js"
|
|
32
|
-
},
|
|
33
|
-
"./*.js": "./*.js",
|
|
34
|
-
"./*": {
|
|
35
|
-
"require": "./*.js",
|
|
36
|
-
"import": "./*"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
"main": "./index.js",
|
|
40
|
-
"module": "./index.mjs",
|
|
41
|
-
"types": "./index.d.ts",
|
|
42
|
-
"browser": {
|
|
43
|
-
"./browser/connection/ConnectionOptionsReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
|
|
44
|
-
"./browser/connection/options-reader/ConnectionOptionsXmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
|
|
45
|
-
"./browser/connection/options-reader/ConnectionOptionsYmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
|
|
46
|
-
"./browser/driver/aurora-data-api/AuroraDataApiDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
47
|
-
"./browser/driver/better-sqlite3/BetterSqlite3Driver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
48
|
-
"./browser/driver/cockroachdb/CockroachDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
49
|
-
"./browser/driver/mongodb/MongoDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
50
|
-
"./browser/driver/mongodb/MongoQueryRunner.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
51
|
-
"./browser/driver/mysql/MysqlDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
52
|
-
"./browser/driver/oracle/OracleDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
53
|
-
"./browser/driver/postgres/PostgresDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
54
|
-
"./browser/driver/sap/SapDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
55
|
-
"./browser/driver/sqlite/SqliteDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
56
|
-
"./browser/driver/sqlserver/SqlServerDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
57
|
-
"./browser/entity-manager/MongoEntityManager.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
58
|
-
"./browser/logger/FileLogger.js": "./browser/platform/BrowserFileLoggerDummy.js",
|
|
59
|
-
"./browser/platform/PlatformTools.js": "./browser/platform/BrowserPlatformTools.js",
|
|
60
|
-
"./browser/repository/MongoRepository.js": "./browser/platform/BrowserDisabledDriversDummy.js",
|
|
61
|
-
"./browser/util/DirectoryExportedClassesLoader.js": "./browser/platform/BrowserDirectoryExportedClassesLoader.js",
|
|
62
|
-
"./index.js": "./browser/index.js",
|
|
63
|
-
"./index.mjs": "./browser/index.js"
|
|
64
|
-
},
|
|
65
|
-
"repository": {
|
|
66
|
-
"type": "git",
|
|
67
|
-
"url": "https://github.com/typeorm/typeorm.git"
|
|
68
|
-
},
|
|
69
|
-
"bugs": {
|
|
70
|
-
"url": "https://github.com/typeorm/typeorm/issues"
|
|
71
|
-
},
|
|
72
|
-
"homepage": "https://typeorm.io",
|
|
73
|
-
"tags": [
|
|
74
|
-
"orm",
|
|
75
|
-
"typescript",
|
|
76
|
-
"typescript-orm",
|
|
77
|
-
"mysql",
|
|
78
|
-
"mysql-orm",
|
|
79
|
-
"postgresql",
|
|
80
|
-
"postgresql-orm",
|
|
81
|
-
"mariadb",
|
|
82
|
-
"mariadb-orm",
|
|
83
|
-
"spanner",
|
|
84
|
-
"sqlite",
|
|
85
|
-
"sqlite-orm",
|
|
86
|
-
"sql-server",
|
|
87
|
-
"sql-server-orm",
|
|
88
|
-
"oracle",
|
|
89
|
-
"oracle-orm",
|
|
90
|
-
"cloud-spanner",
|
|
91
|
-
"cloud-spanner-orm"
|
|
92
|
-
],
|
|
93
|
-
"devDependencies": {
|
|
94
|
-
"@types/app-root-path": "^1.2.4",
|
|
95
|
-
"@types/chai": "^4.3.4",
|
|
96
|
-
"@types/chai-as-promised": "^7.1.5",
|
|
97
|
-
"@types/debug": "^4.1.7",
|
|
98
|
-
"@types/js-yaml": "^4.0.5",
|
|
99
|
-
"@types/mkdirp": "^1.0.2",
|
|
100
|
-
"@types/mocha": "^10.0.1",
|
|
101
|
-
"@types/node": "^18.13.0",
|
|
102
|
-
"@types/sha.js": "^2.4.0",
|
|
103
|
-
"@types/sinon": "^10.0.13",
|
|
104
|
-
"@types/source-map-support": "^0.5.6",
|
|
105
|
-
"@types/uuid": "^9.0.0",
|
|
106
|
-
"@types/xml2js": "^0.4.11",
|
|
107
|
-
"@types/yargs": "^17.0.22",
|
|
108
|
-
"better-sqlite3": "^8.1.0",
|
|
109
|
-
"chai": "^4.3.7",
|
|
110
|
-
"chai-as-promised": "^7.1.1",
|
|
111
|
-
"class-transformer": "^0.5.1",
|
|
112
|
-
"conventional-changelog-angular": "^5.0.13",
|
|
113
|
-
"conventional-changelog-cli": "^2.2.2",
|
|
114
|
-
"del": "6.1.1",
|
|
115
|
-
"gulp": "^4.0.2",
|
|
116
|
-
"gulp-istanbul": "^1.1.3",
|
|
117
|
-
"gulp-mocha": "^8.0.0",
|
|
118
|
-
"gulp-rename": "^2.0.0",
|
|
119
|
-
"gulp-replace": "^1.1.4",
|
|
120
|
-
"gulp-shell": "^0.8.0",
|
|
121
|
-
"gulp-sourcemaps": "^3.0.0",
|
|
122
|
-
"gulp-typescript": "^6.0.0-alpha.1",
|
|
123
|
-
"gulpclass": "^0.2.0",
|
|
124
|
-
"husky": "^8.0.3",
|
|
125
|
-
"mocha": "^10.2.0",
|
|
126
|
-
"mongodb": "^3.7.3",
|
|
127
|
-
"mssql": "^9.1.1",
|
|
128
|
-
"mysql": "^2.18.1",
|
|
129
|
-
"mysql2": "^3.1.1",
|
|
130
|
-
"pg": "^8.9.0",
|
|
131
|
-
"pg-query-stream": "^4.3.0",
|
|
132
|
-
"prettier": "^2.8.3",
|
|
133
|
-
"redis": "^4.6.4",
|
|
134
|
-
"remap-istanbul": "^0.13.0",
|
|
135
|
-
"rimraf": "^4.1.2",
|
|
136
|
-
"sinon": "^15.0.1",
|
|
137
|
-
"sinon-chai": "^3.7.0",
|
|
138
|
-
"source-map-support": "^0.5.21",
|
|
139
|
-
"sql.js": "^1.8.0",
|
|
140
|
-
"sqlite3": "^5.1.4",
|
|
141
|
-
"ts-node": "^10.9.1",
|
|
142
|
-
"typeorm-aurora-data-api-driver": "^2.4.4",
|
|
143
|
-
"typescript": "^4.9.5"
|
|
144
|
-
},
|
|
145
|
-
"peerDependencies": {
|
|
146
|
-
"@google-cloud/spanner": "^5.18.0",
|
|
147
|
-
"@sap/hana-client": "^2.12.25",
|
|
148
|
-
"better-sqlite3": "^7.1.2 || ^8.0.0",
|
|
149
|
-
"hdb-pool": "^0.1.6",
|
|
150
|
-
"ioredis": "^5.0.4",
|
|
151
|
-
"mongodb": "^3.6.0",
|
|
152
|
-
"mssql": "^9.1.1",
|
|
153
|
-
"mysql2": "^2.2.5 || ^3.0.1",
|
|
154
|
-
"oracledb": "^5.1.0",
|
|
155
|
-
"pg": "^8.5.1",
|
|
156
|
-
"pg-native": "^3.0.0",
|
|
157
|
-
"pg-query-stream": "^4.0.0",
|
|
158
|
-
"redis": "^3.1.1 || ^4.0.0",
|
|
159
|
-
"sql.js": "^1.4.0",
|
|
160
|
-
"sqlite3": "^5.0.3",
|
|
161
|
-
"ts-node": "^10.7.0",
|
|
162
|
-
"typeorm-aurora-data-api-driver": "^2.0.0"
|
|
163
|
-
},
|
|
164
|
-
"peerDependenciesMeta": {
|
|
165
|
-
"@google-cloud/spanner": {
|
|
166
|
-
"optional": true
|
|
167
|
-
},
|
|
168
|
-
"@sap/hana-client": {
|
|
169
|
-
"optional": true
|
|
170
|
-
},
|
|
171
|
-
"better-sqlite3": {
|
|
172
|
-
"optional": true
|
|
173
|
-
},
|
|
174
|
-
"hdb-pool": {
|
|
175
|
-
"optional": true
|
|
176
|
-
},
|
|
177
|
-
"ioredis": {
|
|
178
|
-
"optional": true
|
|
179
|
-
},
|
|
180
|
-
"mongodb": {
|
|
181
|
-
"optional": true
|
|
182
|
-
},
|
|
183
|
-
"mssql": {
|
|
184
|
-
"optional": true
|
|
185
|
-
},
|
|
186
|
-
"mysql2": {
|
|
187
|
-
"optional": true
|
|
188
|
-
},
|
|
189
|
-
"oracledb": {
|
|
190
|
-
"optional": true
|
|
191
|
-
},
|
|
192
|
-
"pg": {
|
|
193
|
-
"optional": true
|
|
194
|
-
},
|
|
195
|
-
"pg-native": {
|
|
196
|
-
"optional": true
|
|
197
|
-
},
|
|
198
|
-
"pg-query-stream": {
|
|
199
|
-
"optional": true
|
|
200
|
-
},
|
|
201
|
-
"redis": {
|
|
202
|
-
"optional": true
|
|
203
|
-
},
|
|
204
|
-
"sql.js": {
|
|
205
|
-
"optional": true
|
|
206
|
-
},
|
|
207
|
-
"sqlite3": {
|
|
208
|
-
"optional": true
|
|
209
|
-
},
|
|
210
|
-
"ts-node": {
|
|
211
|
-
"optional": true
|
|
212
|
-
},
|
|
213
|
-
"typeorm-aurora-data-api-driver": {
|
|
214
|
-
"optional": true
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
"dependencies": {
|
|
218
|
-
"@sqltools/formatter": "^1.2.5",
|
|
219
|
-
"app-root-path": "^3.1.0",
|
|
220
|
-
"buffer": "^6.0.3",
|
|
221
|
-
"chalk": "^4.1.2",
|
|
222
|
-
"cli-highlight": "^2.1.11",
|
|
223
|
-
"debug": "^4.3.4",
|
|
224
|
-
"dotenv": "^16.0.3",
|
|
225
|
-
"glob": "^8.1.0",
|
|
226
|
-
"js-yaml": "^4.1.0",
|
|
227
|
-
"mkdirp": "^2.1.3",
|
|
228
|
-
"reflect-metadata": "^0.1.13",
|
|
229
|
-
"sha.js": "^2.4.11",
|
|
230
|
-
"tslib": "^2.5.0",
|
|
231
|
-
"uuid": "^9.0.0",
|
|
232
|
-
"xml2js": "^0.4.23",
|
|
233
|
-
"yargs": "^17.6.2"
|
|
234
|
-
},
|
|
235
|
-
"scripts": {
|
|
236
|
-
"test": "rimraf ./build && tsc && mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test",
|
|
237
|
-
"test-fast": "mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test",
|
|
238
|
-
"compile": "rimraf ./build && tsc",
|
|
239
|
-
"watch": "./node_modules/.bin/tsc -w",
|
|
240
|
-
"package": "gulp package",
|
|
241
|
-
"pack": "gulp pack",
|
|
242
|
-
"lint": "prettier --check \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"",
|
|
243
|
-
"format": "prettier --write \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"",
|
|
244
|
-
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 2"
|
|
245
|
-
},
|
|
246
|
-
"bin": {
|
|
247
|
-
"typeorm": "./cli.js",
|
|
248
|
-
"typeorm-ts-node-commonjs": "./cli-ts-node-commonjs.js",
|
|
249
|
-
"typeorm-ts-node-esm": "./cli-ts-node-esm.js"
|
|
250
|
-
},
|
|
251
|
-
"funding": "https://opencollective.com/typeorm",
|
|
252
|
-
"collective": {
|
|
253
|
-
"type": "opencollective",
|
|
254
|
-
"url": "https://opencollective.com/typeorm",
|
|
255
|
-
"logo": "https://opencollective.com/opencollective/logo.txt"
|
|
256
|
-
},
|
|
257
|
-
"nyc": {
|
|
258
|
-
"all": true,
|
|
259
|
-
"cache": false,
|
|
260
|
-
"exclude": [
|
|
261
|
-
"**/*.d.ts"
|
|
262
|
-
],
|
|
263
|
-
"extension": [
|
|
264
|
-
".ts"
|
|
265
|
-
],
|
|
266
|
-
"include": [
|
|
267
|
-
"build/compiled/src/**",
|
|
268
|
-
"src/**"
|
|
269
|
-
],
|
|
270
|
-
"reporter": "json"
|
|
271
|
-
}
|
|
272
|
-
}
|
|
1
|
+
{ "name": "typeorm", "private": false, "version": "0.3.14-dev.0194f17", "description": "Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.", "license": "MIT", "readmeFilename": "README.md", "author": { "name": "Umed Khudoiberdiev", "email": "pleerock.me@gmail.com" }, "engines": { "node": ">= 12.9.0" }, "exports": { ".": { "types": "./index.d.ts", "node": { "import": "./index.mjs", "require": "./index.js", "types": "./index.d.ts" }, "browser": { "require": "./index.js", "import": "./browser/index.js", "default": "./index.js" } }, "./browser": { "types": "./index.d.ts", "default": "./browser/index.js" }, "./*.js": "./*.js", "./*": { "require": "./*.js", "import": "./*" } }, "main": "./index.js", "module": "./index.mjs", "types": "./index.d.ts", "browser": { "./browser/connection/ConnectionOptionsReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js", "./browser/connection/options-reader/ConnectionOptionsXmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js", "./browser/connection/options-reader/ConnectionOptionsYmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js", "./browser/driver/aurora-data-api/AuroraDataApiDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/better-sqlite3/BetterSqlite3Driver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/cockroachdb/CockroachDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/mongodb/MongoDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/mongodb/MongoQueryRunner.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/mysql/MysqlDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/oracle/OracleDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/postgres/PostgresDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/sap/SapDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/sqlite/SqliteDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/driver/sqlserver/SqlServerDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/entity-manager/MongoEntityManager.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/logger/FileLogger.js": "./browser/platform/BrowserFileLoggerDummy.js", "./browser/platform/PlatformTools.js": "./browser/platform/BrowserPlatformTools.js", "./browser/repository/MongoRepository.js": "./browser/platform/BrowserDisabledDriversDummy.js", "./browser/util/DirectoryExportedClassesLoader.js": "./browser/platform/BrowserDirectoryExportedClassesLoader.js", "./index.js": "./browser/index.js", "./index.mjs": "./browser/index.js" }, "repository": { "type": "git", "url": "https://github.com/typeorm/typeorm.git" }, "bugs": { "url": "https://github.com/typeorm/typeorm/issues" }, "homepage": "https://typeorm.io", "tags": [ "orm", "typescript", "typescript-orm", "mysql", "mysql-orm", "postgresql", "postgresql-orm", "mariadb", "mariadb-orm", "spanner", "sqlite", "sqlite-orm", "sql-server", "sql-server-orm", "oracle", "oracle-orm", "cloud-spanner", "cloud-spanner-orm" ], "devDependencies": { "@types/app-root-path": "^1.2.4", "@types/chai": "^4.3.4", "@types/chai-as-promised": "^7.1.5", "@types/debug": "^4.1.7", "@types/js-yaml": "^4.0.5", "@types/mkdirp": "^1.0.2", "@types/mocha": "^10.0.1", "@types/node": "^18.13.0", "@types/sha.js": "^2.4.0", "@types/sinon": "^10.0.13", "@types/source-map-support": "^0.5.6", "@types/uuid": "^9.0.0", "@types/xml2js": "^0.4.11", "@types/yargs": "^17.0.22", "better-sqlite3": "^8.1.0", "chai": "^4.3.7", "chai-as-promised": "^7.1.1", "class-transformer": "^0.5.1", "conventional-changelog-angular": "^5.0.13", "conventional-changelog-cli": "^2.2.2", "del": "6.1.1", "gulp": "^4.0.2", "gulp-istanbul": "^1.1.3", "gulp-mocha": "^8.0.0", "gulp-rename": "^2.0.0", "gulp-replace": "^1.1.4", "gulp-shell": "^0.8.0", "gulp-sourcemaps": "^3.0.0", "gulp-typescript": "^6.0.0-alpha.1", "gulpclass": "^0.2.0", "husky": "^8.0.3", "mocha": "^10.2.0", "mongodb": "^3.7.3", "mssql": "^9.1.1", "mysql": "^2.18.1", "mysql2": "^3.1.1", "pg": "^8.9.0", "pg-query-stream": "^4.3.0", "prettier": "^2.8.3", "redis": "^4.6.4", "remap-istanbul": "^0.13.0", "rimraf": "^4.1.2", "sinon": "^15.0.1", "sinon-chai": "^3.7.0", "source-map-support": "^0.5.21", "sql.js": "^1.8.0", "sqlite3": "^5.1.4", "ts-node": "^10.9.1", "typeorm-aurora-data-api-driver": "^2.4.4", "typescript": "^4.9.5" }, "peerDependencies": { "@google-cloud/spanner": "^5.18.0", "@sap/hana-client": "^2.12.25", "better-sqlite3": "^7.1.2 || ^8.0.0", "hdb-pool": "^0.1.6", "ioredis": "^5.0.4", "mongodb": "^3.6.0", "mssql": "^9.1.1", "mysql2": "^2.2.5 || ^3.0.1", "oracledb": "^5.1.0", "pg": "^8.5.1", "pg-native": "^3.0.0", "pg-query-stream": "^4.0.0", "redis": "^3.1.1 || ^4.0.0", "sql.js": "^1.4.0", "sqlite3": "^5.0.3", "ts-node": "^10.7.0", "typeorm-aurora-data-api-driver": "^2.0.0" }, "peerDependenciesMeta": { "@google-cloud/spanner": { "optional": true }, "@sap/hana-client": { "optional": true }, "better-sqlite3": { "optional": true }, "hdb-pool": { "optional": true }, "ioredis": { "optional": true }, "mongodb": { "optional": true }, "mssql": { "optional": true }, "mysql2": { "optional": true }, "oracledb": { "optional": true }, "pg": { "optional": true }, "pg-native": { "optional": true }, "pg-query-stream": { "optional": true }, "redis": { "optional": true }, "sql.js": { "optional": true }, "sqlite3": { "optional": true }, "ts-node": { "optional": true }, "typeorm-aurora-data-api-driver": { "optional": true } }, "dependencies": { "@sqltools/formatter": "^1.2.5", "app-root-path": "^3.1.0", "buffer": "^6.0.3", "chalk": "^4.1.2", "cli-highlight": "^2.1.11", "debug": "^4.3.4", "dotenv": "^16.0.3", "glob": "^8.1.0", "js-yaml": "^4.1.0", "mkdirp": "^2.1.3", "reflect-metadata": "^0.1.13", "sha.js": "^2.4.11", "tslib": "^2.5.0", "uuid": "^9.0.0", "xml2js": "^0.4.23", "yargs": "^17.6.2" }, "scripts": { "test": "rimraf ./build && tsc && mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test", "test-fast": "mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test", "compile": "rimraf ./build && tsc", "watch": "./node_modules/.bin/tsc -w", "package": "gulp package", "pack": "gulp pack", "lint": "prettier --check \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"", "format": "prettier --write \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 2" }, "bin": { "typeorm": "./cli.js", "typeorm-ts-node-commonjs": "./cli-ts-node-commonjs.js", "typeorm-ts-node-esm": "./cli-ts-node-esm.js" }, "funding": "https://opencollective.com/typeorm", "collective": { "type": "opencollective", "url": "https://opencollective.com/typeorm", "logo": "https://opencollective.com/opencollective/logo.txt" }, "nyc": { "all": true, "cache": false, "exclude": [ "**/*.d.ts" ], "extension": [ ".ts" ], "include": [ "build/compiled/src/**", "src/**" ], "reporter": "json" } }
|
|
@@ -27,7 +27,7 @@ class DeleteQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
27
27
|
let sql = this.createComment();
|
|
28
28
|
sql += this.createCteExpression();
|
|
29
29
|
sql += this.createDeleteExpression();
|
|
30
|
-
return sql.trim();
|
|
30
|
+
return this.replacePropertyNamesForTheWholeQuery(sql.trim());
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Executes sql generated by query builder and returns raw database results.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/query-builder/DeleteQueryBuilder.ts"],"names":[],"mappings":"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","file":"DeleteQueryBuilder.js","sourcesContent":["import { QueryBuilder } from \"./QueryBuilder\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { EntityTarget } from \"../common/EntityTarget\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { WhereExpressionBuilder } from \"./WhereExpressionBuilder\"\nimport { Brackets } from \"./Brackets\"\nimport { DeleteResult } from \"./result/DeleteResult\"\nimport { ReturningStatementNotSupportedError } from \"../error/ReturningStatementNotSupportedError\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class DeleteQueryBuilder<Entity extends ObjectLiteral>\n extends QueryBuilder<Entity>\n implements WhereExpressionBuilder\n{\n readonly \"@instanceof\" = Symbol.for(\"DeleteQueryBuilder\")\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n connectionOrQueryBuilder: DataSource | QueryBuilder<any>,\n queryRunner?: QueryRunner,\n ) {\n super(connectionOrQueryBuilder as any, queryRunner)\n this.expressionMap.aliasNamePrefixingEnabled = false\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated SQL query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createComment()\n sql += this.createCteExpression()\n sql += this.createDeleteExpression()\n return sql.trim()\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<DeleteResult> {\n const [sql, parameters] = this.getQueryAndParameters()\n const queryRunner = this.obtainQueryRunner()\n let transactionStartedByUs: boolean = false\n\n try {\n // start transaction if it was enabled\n if (\n this.expressionMap.useTransaction === true &&\n queryRunner.isTransactionActive === false\n ) {\n await queryRunner.startTransaction()\n transactionStartedByUs = true\n }\n\n // call before deletion methods in listeners and subscribers\n if (\n this.expressionMap.callListeners === true &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n await queryRunner.broadcaster.broadcast(\n \"BeforeRemove\",\n this.expressionMap.mainAlias!.metadata,\n )\n }\n\n // execute query\n const queryResult = await queryRunner.query(sql, parameters, true)\n const deleteResult = DeleteResult.from(queryResult)\n\n // call after deletion methods in listeners and subscribers\n if (\n this.expressionMap.callListeners === true &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n await queryRunner.broadcaster.broadcast(\n \"AfterRemove\",\n this.expressionMap.mainAlias!.metadata,\n )\n }\n\n // close transaction if we started it\n if (transactionStartedByUs) await queryRunner.commitTransaction()\n\n return deleteResult\n } catch (error) {\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction()\n } catch (rollbackError) {}\n }\n throw error\n } finally {\n if (queryRunner !== this.queryRunner) {\n // means we created our own query runner\n await queryRunner.release()\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n from<T extends ObjectLiteral>(\n entityTarget: EntityTarget<T>,\n aliasName?: string,\n ): DeleteQueryBuilder<T> {\n entityTarget = InstanceChecker.isEntitySchema(entityTarget)\n ? entityTarget.options.name\n : entityTarget\n const mainAlias = this.createFromAlias(entityTarget, aliasName)\n this.expressionMap.setMainAlias(mainAlias)\n return this as any as DeleteQueryBuilder<T>\n }\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(\n where:\n | Brackets\n | string\n | ((qb: this) => string)\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres = [] // don't move this block below since computeWhereParameter can add where expressions\n const condition = this.getWhereCondition(where)\n if (condition)\n this.expressionMap.wheres = [\n { type: \"simple\", condition: condition },\n ]\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(\n where:\n | Brackets\n | string\n | ((qb: this) => string)\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres.push({\n type: \"and\",\n condition: this.getWhereCondition(where),\n })\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(\n where:\n | Brackets\n | string\n | ((qb: this) => string)\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres.push({\n type: \"or\",\n condition: this.getWhereCondition(where),\n })\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Sets WHERE condition in the query builder with a condition for the given ids.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n */\n whereInIds(ids: any | any[]): this {\n return this.where(this.getWhereInIdsCondition(ids))\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n andWhereInIds(ids: any | any[]): this {\n return this.andWhere(this.getWhereInIdsCondition(ids))\n }\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n orWhereInIds(ids: any | any[]): this {\n return this.orWhere(this.getWhereInIdsCondition(ids))\n }\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this\n\n /**\n * Optional returning/output clause.\n */\n output(output: string | string[]): this\n\n /**\n * Optional returning/output clause.\n */\n output(output: string | string[]): this {\n return this.returning(output)\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string | string[]): this\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string | string[]): this {\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported(\"delete\")) {\n throw new ReturningStatementNotSupportedError()\n }\n\n this.expressionMap.returning = returning\n return this\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates DELETE express used to perform query.\n */\n protected createDeleteExpression() {\n const tableName = this.getTableName(this.getMainTableName())\n const whereExpression = this.createWhereExpression()\n const returningExpression = this.createReturningExpression(\"delete\")\n\n if (returningExpression === \"\") {\n return `DELETE FROM ${tableName}${whereExpression}`\n }\n if (this.connection.driver.options.type === \"mssql\") {\n return `DELETE FROM ${tableName} OUTPUT ${returningExpression}${whereExpression}`\n }\n return `DELETE FROM ${tableName}${whereExpression} RETURNING ${returningExpression}`\n }\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../src/query-builder/DeleteQueryBuilder.ts"],"names":[],"mappings":"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","file":"DeleteQueryBuilder.js","sourcesContent":["import { QueryBuilder } from \"./QueryBuilder\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { EntityTarget } from \"../common/EntityTarget\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { WhereExpressionBuilder } from \"./WhereExpressionBuilder\"\nimport { Brackets } from \"./Brackets\"\nimport { DeleteResult } from \"./result/DeleteResult\"\nimport { ReturningStatementNotSupportedError } from \"../error/ReturningStatementNotSupportedError\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class DeleteQueryBuilder<Entity extends ObjectLiteral>\n extends QueryBuilder<Entity>\n implements WhereExpressionBuilder\n{\n readonly \"@instanceof\" = Symbol.for(\"DeleteQueryBuilder\")\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n connectionOrQueryBuilder: DataSource | QueryBuilder<any>,\n queryRunner?: QueryRunner,\n ) {\n super(connectionOrQueryBuilder as any, queryRunner)\n this.expressionMap.aliasNamePrefixingEnabled = false\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated SQL query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createComment()\n sql += this.createCteExpression()\n sql += this.createDeleteExpression()\n return this.replacePropertyNamesForTheWholeQuery(sql.trim())\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<DeleteResult> {\n const [sql, parameters] = this.getQueryAndParameters()\n const queryRunner = this.obtainQueryRunner()\n let transactionStartedByUs: boolean = false\n\n try {\n // start transaction if it was enabled\n if (\n this.expressionMap.useTransaction === true &&\n queryRunner.isTransactionActive === false\n ) {\n await queryRunner.startTransaction()\n transactionStartedByUs = true\n }\n\n // call before deletion methods in listeners and subscribers\n if (\n this.expressionMap.callListeners === true &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n await queryRunner.broadcaster.broadcast(\n \"BeforeRemove\",\n this.expressionMap.mainAlias!.metadata,\n )\n }\n\n // execute query\n const queryResult = await queryRunner.query(sql, parameters, true)\n const deleteResult = DeleteResult.from(queryResult)\n\n // call after deletion methods in listeners and subscribers\n if (\n this.expressionMap.callListeners === true &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n await queryRunner.broadcaster.broadcast(\n \"AfterRemove\",\n this.expressionMap.mainAlias!.metadata,\n )\n }\n\n // close transaction if we started it\n if (transactionStartedByUs) await queryRunner.commitTransaction()\n\n return deleteResult\n } catch (error) {\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction()\n } catch (rollbackError) {}\n }\n throw error\n } finally {\n if (queryRunner !== this.queryRunner) {\n // means we created our own query runner\n await queryRunner.release()\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n from<T extends ObjectLiteral>(\n entityTarget: EntityTarget<T>,\n aliasName?: string,\n ): DeleteQueryBuilder<T> {\n entityTarget = InstanceChecker.isEntitySchema(entityTarget)\n ? entityTarget.options.name\n : entityTarget\n const mainAlias = this.createFromAlias(entityTarget, aliasName)\n this.expressionMap.setMainAlias(mainAlias)\n return this as any as DeleteQueryBuilder<T>\n }\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(\n where:\n | Brackets\n | string\n | ((qb: this) => string)\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres = [] // don't move this block below since computeWhereParameter can add where expressions\n const condition = this.getWhereCondition(where)\n if (condition)\n this.expressionMap.wheres = [\n { type: \"simple\", condition: condition },\n ]\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(\n where:\n | Brackets\n | string\n | ((qb: this) => string)\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres.push({\n type: \"and\",\n condition: this.getWhereCondition(where),\n })\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(\n where:\n | Brackets\n | string\n | ((qb: this) => string)\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres.push({\n type: \"or\",\n condition: this.getWhereCondition(where),\n })\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Sets WHERE condition in the query builder with a condition for the given ids.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n */\n whereInIds(ids: any | any[]): this {\n return this.where(this.getWhereInIdsCondition(ids))\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n andWhereInIds(ids: any | any[]): this {\n return this.andWhere(this.getWhereInIdsCondition(ids))\n }\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n orWhereInIds(ids: any | any[]): this {\n return this.orWhere(this.getWhereInIdsCondition(ids))\n }\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this\n\n /**\n * Optional returning/output clause.\n */\n output(output: string | string[]): this\n\n /**\n * Optional returning/output clause.\n */\n output(output: string | string[]): this {\n return this.returning(output)\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string | string[]): this\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string | string[]): this {\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported(\"delete\")) {\n throw new ReturningStatementNotSupportedError()\n }\n\n this.expressionMap.returning = returning\n return this\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates DELETE express used to perform query.\n */\n protected createDeleteExpression() {\n const tableName = this.getTableName(this.getMainTableName())\n const whereExpression = this.createWhereExpression()\n const returningExpression = this.createReturningExpression(\"delete\")\n\n if (returningExpression === \"\") {\n return `DELETE FROM ${tableName}${whereExpression}`\n }\n if (this.connection.driver.options.type === \"mssql\") {\n return `DELETE FROM ${tableName} OUTPUT ${returningExpression}${whereExpression}`\n }\n return `DELETE FROM ${tableName}${whereExpression} RETURNING ${returningExpression}`\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -30,7 +30,7 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
30
30
|
let sql = this.createComment();
|
|
31
31
|
sql += this.createCteExpression();
|
|
32
32
|
sql += this.createInsertExpression();
|
|
33
|
-
return sql.trim();
|
|
33
|
+
return this.replacePropertyNamesForTheWholeQuery(sql.trim());
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Executes sql generated by query builder and returns raw database results.
|