xansql 1.0.20 → 1.1.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/core/Migration.cjs +114 -0
- package/core/Migration.cjs.map +1 -0
- package/core/Migration.d.ts +47 -0
- package/core/Migration.js +112 -0
- package/core/Migration.js.map +1 -0
- package/core/Xansql.cjs +122 -0
- package/core/Xansql.cjs.map +1 -0
- package/core/Xansql.d.ts +10 -22
- package/core/Xansql.js +93 -69
- package/core/Xansql.js.map +1 -1
- package/core/XansqlError.cjs +58 -0
- package/core/XansqlError.cjs.map +1 -0
- package/core/XansqlError.d.ts +32 -0
- package/core/XansqlError.js +50 -10
- package/core/XansqlError.js.map +1 -1
- package/core/classes/{XansqlConfig.mjs → XansqlConfig.cjs} +11 -11
- package/core/classes/XansqlConfig.cjs.map +1 -0
- package/core/classes/XansqlConfig.js +8 -12
- package/core/classes/XansqlConfig.js.map +1 -1
- package/core/classes/XansqlTransaction.cjs +35 -0
- package/core/classes/XansqlTransaction.cjs.map +1 -0
- package/core/classes/XansqlTransaction.d.ts +4 -4
- package/core/classes/XansqlTransaction.js +18 -36
- package/core/classes/XansqlTransaction.js.map +1 -1
- package/core/types.d.ts +33 -54
- package/dialects/Bridge/base.cjs +128 -0
- package/dialects/Bridge/base.cjs.map +1 -0
- package/dialects/Bridge/base.js +124 -0
- package/dialects/Bridge/base.js.map +1 -0
- package/{dialect/XansqlBridge/index.js → dialects/Bridge/dialect.cjs} +39 -32
- package/dialects/Bridge/dialect.cjs.map +1 -0
- package/dialects/Bridge/dialect.d.ts +15 -0
- package/{dialect/XansqlBridge/index.mjs → dialects/Bridge/dialect.js} +39 -32
- package/dialects/Bridge/dialect.js.map +1 -0
- package/dialects/Bridge/index.cjs +10 -0
- package/dialects/Bridge/index.cjs.map +1 -0
- package/dialects/Bridge/index.d.ts +3 -0
- package/dialects/Bridge/index.js +3 -0
- package/dialects/Bridge/index.js.map +1 -0
- package/{dialect/XansqlBridge/XansqlBridgeServer.js → dialects/Bridge/server.cjs} +22 -13
- package/dialects/Bridge/server.cjs.map +1 -0
- package/{dialect/XansqlBridge/XansqlBridgeServer.d.ts → dialects/Bridge/server.d.ts} +2 -2
- package/{dialect/XansqlBridge/XansqlBridgeServer.mjs → dialects/Bridge/server.js} +22 -13
- package/dialects/Bridge/server.js.map +1 -0
- package/{dialect/XansqlBridge → dialects/Bridge}/types.d.ts +12 -3
- package/dialects/Mysql/index.cjs +30 -0
- package/dialects/Mysql/index.cjs.map +1 -0
- package/dialects/Mysql/index.d.ts +9 -0
- package/dialects/Mysql/index.js +28 -0
- package/dialects/Mysql/index.js.map +1 -0
- package/dialects/Postgres/index.cjs +31 -0
- package/dialects/Postgres/index.cjs.map +1 -0
- package/dialects/Postgres/index.d.ts +9 -0
- package/dialects/Postgres/index.js +29 -0
- package/dialects/Postgres/index.js.map +1 -0
- package/dialects/Sqlite/index.cjs +30 -0
- package/dialects/Sqlite/index.cjs.map +1 -0
- package/dialects/Sqlite/index.d.ts +8 -0
- package/dialects/Sqlite/index.js +28 -0
- package/dialects/Sqlite/index.js.map +1 -0
- package/index.cjs +14 -0
- package/index.cjs.map +1 -0
- package/index.d.ts +4 -4
- package/index.js +4 -13
- package/index.js.map +1 -1
- package/model/Build/AggregateArgs/index.cjs +70 -0
- package/model/Build/AggregateArgs/index.cjs.map +1 -0
- package/model/Build/AggregateArgs/index.js +68 -0
- package/model/Build/AggregateArgs/index.js.map +1 -0
- package/model/{Executer/Aggregate/SelectArgs.js → Build/AggregateSelectArgs/index.cjs} +20 -20
- package/model/Build/AggregateSelectArgs/index.cjs.map +1 -0
- package/model/{Executer/Aggregate/SelectArgs.mjs → Build/AggregateSelectArgs/index.js} +20 -20
- package/model/Build/AggregateSelectArgs/index.js.map +1 -0
- package/model/Build/CreateArgs/index.cjs +257 -0
- package/model/Build/CreateArgs/index.cjs.map +1 -0
- package/model/Build/CreateArgs/index.js +255 -0
- package/model/Build/CreateArgs/index.js.map +1 -0
- package/model/Build/DeleteArgs/index.cjs +149 -0
- package/model/Build/DeleteArgs/index.cjs.map +1 -0
- package/model/Build/DeleteArgs/index.js +147 -0
- package/model/Build/DeleteArgs/index.js.map +1 -0
- package/model/Build/FindArgs/index.cjs +180 -0
- package/model/Build/FindArgs/index.cjs.map +1 -0
- package/model/Build/FindArgs/index.js +178 -0
- package/model/Build/FindArgs/index.js.map +1 -0
- package/model/Build/LimitArgs/index.cjs +33 -0
- package/model/Build/LimitArgs/index.cjs.map +1 -0
- package/model/Build/LimitArgs/index.js +31 -0
- package/model/Build/LimitArgs/index.js.map +1 -0
- package/model/{Executer/Find/OrderByArgs.js → Build/OrderByArgs/index.cjs} +14 -14
- package/model/Build/OrderByArgs/index.cjs.map +1 -0
- package/model/{Executer/Find/OrderByArgs.mjs → Build/OrderByArgs/index.js} +14 -14
- package/model/Build/OrderByArgs/index.js.map +1 -0
- package/model/Build/SelectArgs/index.cjs +70 -0
- package/model/Build/SelectArgs/index.cjs.map +1 -0
- package/model/Build/SelectArgs/index.js +68 -0
- package/model/Build/SelectArgs/index.js.map +1 -0
- package/model/Build/UpdateArgs/index.cjs +215 -0
- package/model/Build/UpdateArgs/index.cjs.map +1 -0
- package/model/Build/UpdateArgs/index.js +213 -0
- package/model/Build/UpdateArgs/index.js.map +1 -0
- package/model/Build/UpsertArgs/index.cjs +30 -0
- package/model/Build/UpsertArgs/index.cjs.map +1 -0
- package/model/Build/UpsertArgs/index.js +28 -0
- package/model/Build/UpsertArgs/index.js.map +1 -0
- package/model/Build/WhereArgs/index.cjs +354 -0
- package/model/Build/WhereArgs/index.cjs.map +1 -0
- package/model/Build/WhereArgs/index.js +352 -0
- package/model/Build/WhereArgs/index.js.map +1 -0
- package/model/ModelWhere.cjs +12 -0
- package/model/ModelWhere.cjs.map +1 -0
- package/model/ModelWhere.d.ts +11 -0
- package/model/ModelWhere.js +10 -0
- package/model/ModelWhere.js.map +1 -0
- package/model/ReserveKeywords.cjs +22 -0
- package/model/ReserveKeywords.cjs.map +1 -0
- package/model/ReserveKeywords.js +20 -0
- package/model/ReserveKeywords.js.map +1 -0
- package/model/index.cjs +371 -0
- package/model/index.cjs.map +1 -0
- package/model/index.d.ts +29 -31
- package/model/index.js +254 -200
- package/model/index.js.map +1 -1
- package/model/types.d.ts +212 -106
- package/package.json +21 -14
- package/readme.md +1 -0
- package/utils/{chunker.mjs → chunker.cjs} +4 -16
- package/utils/{chunker.mjs.map → chunker.cjs.map} +1 -1
- package/utils/chunker.js +1 -18
- package/utils/chunker.js.map +1 -1
- package/utils/file.cjs +89 -0
- package/utils/file.cjs.map +1 -0
- package/utils/file.js +83 -0
- package/utils/file.js.map +1 -0
- package/utils/fileScaner.cjs +79 -0
- package/utils/fileScaner.cjs.map +1 -0
- package/utils/fileScaner.js +77 -0
- package/utils/fileScaner.js.map +1 -0
- package/utils/index.cjs +66 -0
- package/utils/index.cjs.map +1 -0
- package/utils/index.js +48 -17
- package/utils/index.js.map +1 -1
- package/utils/{sha256.mjs → sha256.cjs} +4 -2
- package/utils/sha256.cjs.map +1 -0
- package/utils/sha256.js +1 -3
- package/utils/sha256.js.map +1 -1
- package/xt/XqlFieldInfo.cjs +172 -0
- package/xt/XqlFieldInfo.cjs.map +1 -0
- package/xt/XqlFieldInfo.d.ts +24 -0
- package/xt/XqlFieldInfo.js +170 -0
- package/xt/XqlFieldInfo.js.map +1 -0
- package/xt/additional/{IP.mjs → IP.cjs} +6 -4
- package/xt/additional/{IP.mjs.map → IP.cjs.map} +1 -1
- package/xt/additional/IP.js +3 -5
- package/xt/additional/IP.js.map +1 -1
- package/xt/additional/{Name.mjs → Name.cjs} +6 -4
- package/xt/additional/Name.cjs.map +1 -0
- package/xt/additional/Name.js +3 -5
- package/xt/additional/Name.js.map +1 -1
- package/xt/additional/{Password.mjs → Password.cjs} +7 -5
- package/xt/additional/{Password.mjs.map → Password.cjs.map} +1 -1
- package/xt/additional/Password.js +4 -6
- package/xt/additional/Password.js.map +1 -1
- package/xt/additional/{Phone.mjs → Phone.cjs} +6 -4
- package/xt/additional/Phone.cjs.map +1 -0
- package/xt/additional/Phone.js +3 -5
- package/xt/additional/Phone.js.map +1 -1
- package/xt/additional/{Photo.mjs → Photo.cjs} +6 -4
- package/xt/additional/{Photo.mjs.map → Photo.cjs.map} +1 -1
- package/xt/additional/Photo.js +3 -5
- package/xt/additional/Photo.js.map +1 -1
- package/xt/additional/{Slug.mjs → Slug.cjs} +6 -4
- package/xt/additional/Slug.cjs.map +1 -0
- package/xt/additional/Slug.js +3 -5
- package/xt/additional/Slug.js.map +1 -1
- package/xt/additional/{Url.mjs → Url.cjs} +6 -4
- package/xt/additional/Url.cjs.map +1 -0
- package/xt/additional/Url.js +3 -5
- package/xt/additional/Url.js.map +1 -1
- package/xt/additional/{Username.mjs → Username.cjs} +6 -4
- package/xt/additional/Username.cjs.map +1 -0
- package/xt/additional/Username.js +3 -5
- package/xt/additional/Username.js.map +1 -1
- package/xt/fields/Array.cjs +41 -0
- package/xt/fields/Array.cjs.map +1 -0
- package/xt/fields/Array.d.ts +15 -4
- package/xt/fields/Array.js +26 -7
- package/xt/fields/Array.js.map +1 -1
- package/xt/fields/Boolean.cjs +38 -0
- package/xt/fields/Boolean.cjs.map +1 -0
- package/xt/fields/Boolean.d.ts +12 -3
- package/xt/fields/Boolean.js +25 -12
- package/xt/fields/Boolean.js.map +1 -1
- package/xt/fields/Date.cjs +61 -0
- package/xt/fields/Date.cjs.map +1 -0
- package/xt/fields/Date.d.ts +24 -5
- package/xt/fields/Date.js +41 -11
- package/xt/fields/Date.js.map +1 -1
- package/xt/fields/Enum.cjs +43 -0
- package/xt/fields/Enum.cjs.map +1 -0
- package/xt/fields/Enum.d.ts +14 -3
- package/xt/fields/Enum.js +25 -7
- package/xt/fields/Enum.js.map +1 -1
- package/xt/fields/File.cjs +40 -0
- package/xt/fields/File.cjs.map +1 -0
- package/xt/fields/File.d.ts +13 -2
- package/xt/fields/File.js +25 -7
- package/xt/fields/File.js.map +1 -1
- package/xt/fields/IDField.cjs +36 -0
- package/xt/fields/IDField.cjs.map +1 -0
- package/xt/fields/IDField.d.ts +13 -2
- package/xt/fields/IDField.js +26 -9
- package/xt/fields/IDField.js.map +1 -1
- package/xt/fields/Number.cjs +51 -0
- package/xt/fields/Number.cjs.map +1 -0
- package/xt/fields/Number.d.ts +16 -2
- package/xt/fields/Number.js +33 -7
- package/xt/fields/Number.js.map +1 -1
- package/xt/fields/Object.cjs +44 -0
- package/xt/fields/Object.cjs.map +1 -0
- package/xt/fields/Object.d.ts +15 -3
- package/xt/fields/Object.js +26 -7
- package/xt/fields/Object.js.map +1 -1
- package/xt/fields/Record.cjs +44 -0
- package/xt/fields/Record.cjs.map +1 -0
- package/xt/fields/Record.d.ts +15 -4
- package/xt/fields/Record.js +26 -7
- package/xt/fields/Record.js.map +1 -1
- package/xt/fields/RelationMany.cjs +40 -0
- package/xt/fields/RelationMany.cjs.map +1 -0
- package/xt/fields/RelationMany.d.ts +38 -0
- package/xt/fields/RelationMany.js +38 -0
- package/xt/fields/RelationMany.js.map +1 -0
- package/xt/fields/RelationOne.cjs +58 -0
- package/xt/fields/RelationOne.cjs.map +1 -0
- package/xt/fields/RelationOne.d.ts +44 -0
- package/xt/fields/RelationOne.js +56 -0
- package/xt/fields/RelationOne.js.map +1 -0
- package/xt/fields/String.cjs +50 -0
- package/xt/fields/String.cjs.map +1 -0
- package/xt/fields/String.d.ts +13 -2
- package/xt/fields/String.js +25 -7
- package/xt/fields/String.js.map +1 -1
- package/xt/fields/Tuple.cjs +44 -0
- package/xt/fields/Tuple.cjs.map +1 -0
- package/xt/fields/Tuple.d.ts +15 -4
- package/xt/fields/Tuple.js +26 -7
- package/xt/fields/Tuple.js.map +1 -1
- package/xt/fields/Union.cjs +44 -0
- package/xt/fields/Union.cjs.map +1 -0
- package/xt/fields/Union.d.ts +15 -4
- package/xt/fields/Union.js +26 -7
- package/xt/fields/Union.js.map +1 -1
- package/xt/index.cjs +71 -0
- package/xt/index.cjs.map +1 -0
- package/xt/index.d.ts +35 -17
- package/xt/index.js +56 -52
- package/xt/index.js.map +1 -1
- package/xt/types.d.ts +4 -6
- package/core/Xansql.mjs +0 -94
- package/core/Xansql.mjs.map +0 -1
- package/core/XansqlError.mjs +0 -14
- package/core/XansqlError.mjs.map +0 -1
- package/core/classes/EventManager.d.ts +0 -62
- package/core/classes/EventManager.js +0 -26
- package/core/classes/EventManager.js.map +0 -1
- package/core/classes/EventManager.mjs +0 -24
- package/core/classes/EventManager.mjs.map +0 -1
- package/core/classes/ForeignInfo.js +0 -61
- package/core/classes/ForeignInfo.js.map +0 -1
- package/core/classes/ForeignInfo.mjs +0 -59
- package/core/classes/ForeignInfo.mjs.map +0 -1
- package/core/classes/ModelFactory.js +0 -158
- package/core/classes/ModelFactory.js.map +0 -1
- package/core/classes/ModelFactory.mjs +0 -156
- package/core/classes/ModelFactory.mjs.map +0 -1
- package/core/classes/XansqlConfig.mjs.map +0 -1
- package/core/classes/XansqlMigrartion.d.ts +0 -11
- package/core/classes/XansqlMigrartion.js +0 -120
- package/core/classes/XansqlMigrartion.js.map +0 -1
- package/core/classes/XansqlMigrartion.mjs +0 -118
- package/core/classes/XansqlMigrartion.mjs.map +0 -1
- package/core/classes/XansqlTransaction.mjs +0 -49
- package/core/classes/XansqlTransaction.mjs.map +0 -1
- package/dialect/MysqlDialect.d.ts +0 -13
- package/dialect/MysqlDialect.js +0 -77
- package/dialect/MysqlDialect.js.map +0 -1
- package/dialect/MysqlDialect.mjs +0 -75
- package/dialect/MysqlDialect.mjs.map +0 -1
- package/dialect/PostgresDialect.d.ts +0 -13
- package/dialect/PostgresDialect.js +0 -117
- package/dialect/PostgresDialect.js.map +0 -1
- package/dialect/PostgresDialect.mjs +0 -115
- package/dialect/PostgresDialect.mjs.map +0 -1
- package/dialect/SqliteDialect.d.ts +0 -10
- package/dialect/SqliteDialect.js +0 -58
- package/dialect/SqliteDialect.js.map +0 -1
- package/dialect/SqliteDialect.mjs +0 -56
- package/dialect/SqliteDialect.mjs.map +0 -1
- package/dialect/XansqlBridge/FileInDirectory.d.ts +0 -18
- package/dialect/XansqlBridge/FileInDirectory.js +0 -26
- package/dialect/XansqlBridge/FileInDirectory.js.map +0 -1
- package/dialect/XansqlBridge/FileInDirectory.mjs +0 -24
- package/dialect/XansqlBridge/FileInDirectory.mjs.map +0 -1
- package/dialect/XansqlBridge/XansqlBridgeServer.js.map +0 -1
- package/dialect/XansqlBridge/XansqlBridgeServer.mjs.map +0 -1
- package/dialect/XansqlBridge/base.js +0 -40
- package/dialect/XansqlBridge/base.js.map +0 -1
- package/dialect/XansqlBridge/base.mjs +0 -37
- package/dialect/XansqlBridge/base.mjs.map +0 -1
- package/dialect/XansqlBridge/index.d.ts +0 -14
- package/dialect/XansqlBridge/index.js.map +0 -1
- package/dialect/XansqlBridge/index.mjs.map +0 -1
- package/index.mjs +0 -5
- package/index.mjs.map +0 -1
- package/model/Args/RelationExcuteArgs.js +0 -10
- package/model/Args/RelationExcuteArgs.js.map +0 -1
- package/model/Args/RelationExcuteArgs.mjs +0 -8
- package/model/Args/RelationExcuteArgs.mjs.map +0 -1
- package/model/Args/WhereArgs.js +0 -237
- package/model/Args/WhereArgs.js.map +0 -1
- package/model/Args/WhereArgs.mjs +0 -235
- package/model/Args/WhereArgs.mjs.map +0 -1
- package/model/Base.d.ts +0 -26
- package/model/Base.js +0 -77
- package/model/Base.js.map +0 -1
- package/model/Base.mjs +0 -75
- package/model/Base.mjs.map +0 -1
- package/model/Executer/Aggregate/SelectArgs.js.map +0 -1
- package/model/Executer/Aggregate/SelectArgs.mjs.map +0 -1
- package/model/Executer/Aggregate/index.js +0 -62
- package/model/Executer/Aggregate/index.js.map +0 -1
- package/model/Executer/Aggregate/index.mjs +0 -60
- package/model/Executer/Aggregate/index.mjs.map +0 -1
- package/model/Executer/Create/CreateDataArgs.js +0 -160
- package/model/Executer/Create/CreateDataArgs.js.map +0 -1
- package/model/Executer/Create/CreateDataArgs.mjs +0 -158
- package/model/Executer/Create/CreateDataArgs.mjs.map +0 -1
- package/model/Executer/Create/index.js +0 -81
- package/model/Executer/Create/index.js.map +0 -1
- package/model/Executer/Create/index.mjs +0 -79
- package/model/Executer/Create/index.mjs.map +0 -1
- package/model/Executer/Delete/index.js +0 -106
- package/model/Executer/Delete/index.js.map +0 -1
- package/model/Executer/Delete/index.mjs +0 -104
- package/model/Executer/Delete/index.mjs.map +0 -1
- package/model/Executer/Find/DistinctArgs.js +0 -39
- package/model/Executer/Find/DistinctArgs.js.map +0 -1
- package/model/Executer/Find/DistinctArgs.mjs +0 -37
- package/model/Executer/Find/DistinctArgs.mjs.map +0 -1
- package/model/Executer/Find/LimitArgs.js +0 -38
- package/model/Executer/Find/LimitArgs.js.map +0 -1
- package/model/Executer/Find/LimitArgs.mjs +0 -36
- package/model/Executer/Find/LimitArgs.mjs.map +0 -1
- package/model/Executer/Find/OrderByArgs.js.map +0 -1
- package/model/Executer/Find/OrderByArgs.mjs.map +0 -1
- package/model/Executer/Find/SelectArgs.js +0 -139
- package/model/Executer/Find/SelectArgs.js.map +0 -1
- package/model/Executer/Find/SelectArgs.mjs +0 -137
- package/model/Executer/Find/SelectArgs.mjs.map +0 -1
- package/model/Executer/Find/index.js +0 -330
- package/model/Executer/Find/index.js.map +0 -1
- package/model/Executer/Find/index.mjs +0 -328
- package/model/Executer/Find/index.mjs.map +0 -1
- package/model/Executer/Update/UpdateDataArgs.js +0 -135
- package/model/Executer/Update/UpdateDataArgs.js.map +0 -1
- package/model/Executer/Update/UpdateDataArgs.mjs +0 -133
- package/model/Executer/Update/UpdateDataArgs.mjs.map +0 -1
- package/model/Executer/Update/index.js +0 -181
- package/model/Executer/Update/index.js.map +0 -1
- package/model/Executer/Update/index.mjs +0 -179
- package/model/Executer/Update/index.mjs.map +0 -1
- package/model/Migrations.d.ts +0 -38
- package/model/Migrations.js +0 -283
- package/model/Migrations.js.map +0 -1
- package/model/Migrations.mjs +0 -281
- package/model/Migrations.mjs.map +0 -1
- package/model/Schema.d.ts +0 -12
- package/model/Schema.js +0 -15
- package/model/Schema.js.map +0 -1
- package/model/Schema.mjs +0 -13
- package/model/Schema.mjs.map +0 -1
- package/model/include/ValueFormatter.js +0 -170
- package/model/include/ValueFormatter.js.map +0 -1
- package/model/include/ValueFormatter.mjs +0 -168
- package/model/include/ValueFormatter.mjs.map +0 -1
- package/model/index.mjs +0 -313
- package/model/index.mjs.map +0 -1
- package/utils/index.mjs +0 -21
- package/utils/index.mjs.map +0 -1
- package/utils/sha256.mjs.map +0 -1
- package/xt/additional/Name.mjs.map +0 -1
- package/xt/additional/Phone.mjs.map +0 -1
- package/xt/additional/Slug.mjs.map +0 -1
- package/xt/additional/Url.mjs.map +0 -1
- package/xt/additional/Username.mjs.map +0 -1
- package/xt/fields/Array.mjs +0 -18
- package/xt/fields/Array.mjs.map +0 -1
- package/xt/fields/Boolean.mjs +0 -21
- package/xt/fields/Boolean.mjs.map +0 -1
- package/xt/fields/Date.mjs +0 -27
- package/xt/fields/Date.mjs.map +0 -1
- package/xt/fields/Enum.mjs +0 -21
- package/xt/fields/Enum.mjs.map +0 -1
- package/xt/fields/File.mjs +0 -18
- package/xt/fields/File.mjs.map +0 -1
- package/xt/fields/IDField.mjs +0 -15
- package/xt/fields/IDField.mjs.map +0 -1
- package/xt/fields/Number.mjs +0 -21
- package/xt/fields/Number.mjs.map +0 -1
- package/xt/fields/Object.mjs +0 -21
- package/xt/fields/Object.mjs.map +0 -1
- package/xt/fields/Record.mjs +0 -21
- package/xt/fields/Record.mjs.map +0 -1
- package/xt/fields/Schema.d.ts +0 -19
- package/xt/fields/Schema.js +0 -53
- package/xt/fields/Schema.js.map +0 -1
- package/xt/fields/Schema.mjs +0 -51
- package/xt/fields/Schema.mjs.map +0 -1
- package/xt/fields/String.mjs +0 -28
- package/xt/fields/String.mjs.map +0 -1
- package/xt/fields/Tuple.mjs +0 -21
- package/xt/fields/Tuple.mjs.map +0 -1
- package/xt/fields/Union.mjs +0 -21
- package/xt/fields/Union.mjs.map +0 -1
- package/xt/index.mjs +0 -63
- package/xt/index.mjs.map +0 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var xanv = require('xanv');
|
|
4
|
+
var index$1 = require('../model/index.cjs');
|
|
5
|
+
var index$2 = require('../xt/index.cjs');
|
|
6
|
+
var RelationMany = require('../xt/fields/RelationMany.cjs');
|
|
7
|
+
var index = require('../utils/index.cjs');
|
|
8
|
+
|
|
9
|
+
class MigrationModel extends index$1 {
|
|
10
|
+
get table() {
|
|
11
|
+
return "_xansql_migration";
|
|
12
|
+
}
|
|
13
|
+
schema() {
|
|
14
|
+
return {
|
|
15
|
+
id: index$2.id(),
|
|
16
|
+
model: index$2.string(),
|
|
17
|
+
schema: index$2.record(index$2.string(), index$2.object({
|
|
18
|
+
type: index$2.string(),
|
|
19
|
+
length: index$2.number().nullable(),
|
|
20
|
+
default: xanv.xv.any(),
|
|
21
|
+
unique: index$2.boolean(),
|
|
22
|
+
nullable: index$2.boolean(),
|
|
23
|
+
index: index$2.string()
|
|
24
|
+
})),
|
|
25
|
+
created_at: index$2.date().createdAt(),
|
|
26
|
+
updated_at: index$2.date().updatedAt(),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
class Migration {
|
|
31
|
+
constructor(xansql) {
|
|
32
|
+
this.xansql = xansql;
|
|
33
|
+
this.model = xansql.model(MigrationModel);
|
|
34
|
+
this.migrate(this.model);
|
|
35
|
+
}
|
|
36
|
+
async migrate(model) {
|
|
37
|
+
if (typeof window !== "undefined")
|
|
38
|
+
return;
|
|
39
|
+
const schema = model.schema();
|
|
40
|
+
let column_sqls = [];
|
|
41
|
+
let index_sqls = [];
|
|
42
|
+
let migrate_schema = {};
|
|
43
|
+
for (let column in schema) {
|
|
44
|
+
const field = schema[column];
|
|
45
|
+
if (!index.iof(field, RelationMany)) {
|
|
46
|
+
const info = field.info;
|
|
47
|
+
column_sqls.push(info.sql.column);
|
|
48
|
+
if (info.sql.create_index) {
|
|
49
|
+
index_sqls.push(info.sql.create_index);
|
|
50
|
+
}
|
|
51
|
+
migrate_schema[column] = field.info.schema;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const sql = `CREATE TABLE IF NOT EXISTS ${model.table}(${column_sqls.join(",")})`;
|
|
55
|
+
await model.execute(sql);
|
|
56
|
+
for (let idxql of index_sqls) {
|
|
57
|
+
try {
|
|
58
|
+
await model.execute(idxql);
|
|
59
|
+
}
|
|
60
|
+
catch (error) { }
|
|
61
|
+
}
|
|
62
|
+
if (model.table === this.model.table) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const prev_migration = await this.migrateSchema(model);
|
|
66
|
+
if (prev_migration) {
|
|
67
|
+
for (let column in schema) {
|
|
68
|
+
const field = schema[column];
|
|
69
|
+
if (!index.iof(field, RelationMany)) {
|
|
70
|
+
const info = field.info;
|
|
71
|
+
if (column in prev_migration) ;
|
|
72
|
+
else {
|
|
73
|
+
// Add column
|
|
74
|
+
await model.execute(info.sql.alter_column);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return await this.model.upsert({
|
|
80
|
+
create: {
|
|
81
|
+
model: model.table,
|
|
82
|
+
schema: migrate_schema
|
|
83
|
+
},
|
|
84
|
+
update: {
|
|
85
|
+
schema: migrate_schema
|
|
86
|
+
},
|
|
87
|
+
where: {
|
|
88
|
+
model: model.table
|
|
89
|
+
},
|
|
90
|
+
useTransection: false
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
async get(model) {
|
|
94
|
+
return await this.model.findOne({
|
|
95
|
+
where: {
|
|
96
|
+
model: model.table
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
async migrateSchema(model) {
|
|
101
|
+
const get = await this.get(model);
|
|
102
|
+
if (get) {
|
|
103
|
+
return get.schema;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async has(model) {
|
|
107
|
+
return await this.model.count({
|
|
108
|
+
model: model.table
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
module.exports = Migration;
|
|
114
|
+
//# sourceMappingURL=Migration.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Migration.cjs","sources":["../../src/core/Migration.ts"],"sourcesContent":["import { xv } from \"xanv\";\nimport Model from \"../model\";\nimport xt from \"../xt\";\nimport Xansql from \"./Xansql\";\nimport { XqlFieldInfoSchema } from \"../xt/XqlFieldInfo\";\nimport XqlRelationMany from \"../xt/fields/RelationMany\";\nimport { iof } from \"../utils\";\nimport XansqlError from \"./XansqlError\";\n\nclass MigrationModel extends Model {\n get table() {\n return \"_xansql_migration\"\n }\n\n schema() {\n return {\n id: xt.id(),\n model: xt.string(),\n schema: xt.record(xt.string(), xt.object({\n type: xt.string(),\n length: xt.number().nullable(),\n default: xv.any(),\n unique: xt.boolean(),\n nullable: xt.boolean(),\n index: xt.string()\n })),\n created_at: xt.date().createdAt(),\n updated_at: xt.date().updatedAt(),\n }\n }\n}\n\n\nclass Migration {\n model\n constructor(private xansql: Xansql) {\n this.model = xansql.model(MigrationModel)\n this.migrate(this.model)\n }\n\n async migrate<M extends Model<any>>(model: M) {\n if (typeof window !== \"undefined\") return\n\n const schema = model.schema()\n let column_sqls = []\n let index_sqls = []\n let migrate_schema: { [column: string]: XqlFieldInfoSchema } = {}\n\n for (let column in schema) {\n const field = schema[column]\n if (!iof(field, XqlRelationMany)) {\n const info = field.info\n column_sqls.push(info.sql.column)\n if (info.sql.create_index) {\n index_sqls.push(info.sql.create_index)\n }\n migrate_schema[column] = field.info.schema\n }\n }\n\n const sql = `CREATE TABLE IF NOT EXISTS ${model.table}(${column_sqls.join(\",\")})`\n await model.execute(sql)\n for (let idxql of index_sqls) {\n try {\n await model.execute(idxql)\n } catch (error) { }\n }\n\n if (model.table === this.model.table) {\n return\n }\n\n const prev_migration = await this.migrateSchema(model)\n if (prev_migration) {\n for (let column in schema) {\n const field = schema[column]\n if (!iof(field, XqlRelationMany)) {\n const info = field.info\n if (column in prev_migration) {\n\n } else {\n // Add column\n await model.execute(info.sql.alter_column)\n }\n }\n }\n }\n\n return await this.model.upsert({\n create: {\n model: model.table,\n schema: migrate_schema\n },\n update: {\n schema: migrate_schema\n },\n where: {\n model: model.table\n },\n useTransection: false\n })\n }\n\n async get(model: Model) {\n return await this.model.findOne({\n where: {\n model: model.table\n }\n })\n }\n\n async migrateSchema(model: Model) {\n const get = await this.get(model)\n if (get) {\n return get.schema\n }\n }\n\n async has(model: Model) {\n return await this.model.count({\n model: model.table\n })\n }\n}\n\nexport default Migration"],"names":["Model","xt","xv","iof","XqlRelationMany"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ResultData } from './types.js';
|
|
2
|
+
import XqlDate from '../xt/fields/Date.js';
|
|
3
|
+
import XqlRecord from '../xt/fields/Record.js';
|
|
4
|
+
import XqlString from '../xt/fields/String.js';
|
|
5
|
+
import XqlIDField from '../xt/fields/IDField.js';
|
|
6
|
+
import Model from '../model/index.js';
|
|
7
|
+
import Xansql from './Xansql.js';
|
|
8
|
+
|
|
9
|
+
declare class Migration {
|
|
10
|
+
private xansql;
|
|
11
|
+
model: Model<{
|
|
12
|
+
id: XqlIDField;
|
|
13
|
+
model: XqlString;
|
|
14
|
+
schema: XqlRecord<any, any>;
|
|
15
|
+
created_at: XqlDate & {
|
|
16
|
+
meta: {
|
|
17
|
+
optional: true;
|
|
18
|
+
};
|
|
19
|
+
} & {
|
|
20
|
+
meta: {
|
|
21
|
+
createdAt: true;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
updated_at: XqlDate & {
|
|
25
|
+
meta: {
|
|
26
|
+
optional: true;
|
|
27
|
+
};
|
|
28
|
+
} & {
|
|
29
|
+
meta: {
|
|
30
|
+
updatedAt: true;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}>;
|
|
34
|
+
constructor(xansql: Xansql);
|
|
35
|
+
migrate<M extends Model<any>>(model: M): Promise<ResultData | undefined>;
|
|
36
|
+
get(model: Model): Promise<{
|
|
37
|
+
id: number;
|
|
38
|
+
model: string;
|
|
39
|
+
schema: Record<unknown, unknown>;
|
|
40
|
+
created_at: Date;
|
|
41
|
+
updated_at: Date;
|
|
42
|
+
} | null>;
|
|
43
|
+
migrateSchema(model: Model): Promise<Record<unknown, unknown> | undefined>;
|
|
44
|
+
has(model: Model): Promise<number>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { Migration as default };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { xv } from 'xanv';
|
|
2
|
+
import Model from '../model/index.js';
|
|
3
|
+
import xt from '../xt/index.js';
|
|
4
|
+
import XqlRelationMany from '../xt/fields/RelationMany.js';
|
|
5
|
+
import { iof } from '../utils/index.js';
|
|
6
|
+
|
|
7
|
+
class MigrationModel extends Model {
|
|
8
|
+
get table() {
|
|
9
|
+
return "_xansql_migration";
|
|
10
|
+
}
|
|
11
|
+
schema() {
|
|
12
|
+
return {
|
|
13
|
+
id: xt.id(),
|
|
14
|
+
model: xt.string(),
|
|
15
|
+
schema: xt.record(xt.string(), xt.object({
|
|
16
|
+
type: xt.string(),
|
|
17
|
+
length: xt.number().nullable(),
|
|
18
|
+
default: xv.any(),
|
|
19
|
+
unique: xt.boolean(),
|
|
20
|
+
nullable: xt.boolean(),
|
|
21
|
+
index: xt.string()
|
|
22
|
+
})),
|
|
23
|
+
created_at: xt.date().createdAt(),
|
|
24
|
+
updated_at: xt.date().updatedAt(),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
class Migration {
|
|
29
|
+
constructor(xansql) {
|
|
30
|
+
this.xansql = xansql;
|
|
31
|
+
this.model = xansql.model(MigrationModel);
|
|
32
|
+
this.migrate(this.model);
|
|
33
|
+
}
|
|
34
|
+
async migrate(model) {
|
|
35
|
+
if (typeof window !== "undefined")
|
|
36
|
+
return;
|
|
37
|
+
const schema = model.schema();
|
|
38
|
+
let column_sqls = [];
|
|
39
|
+
let index_sqls = [];
|
|
40
|
+
let migrate_schema = {};
|
|
41
|
+
for (let column in schema) {
|
|
42
|
+
const field = schema[column];
|
|
43
|
+
if (!iof(field, XqlRelationMany)) {
|
|
44
|
+
const info = field.info;
|
|
45
|
+
column_sqls.push(info.sql.column);
|
|
46
|
+
if (info.sql.create_index) {
|
|
47
|
+
index_sqls.push(info.sql.create_index);
|
|
48
|
+
}
|
|
49
|
+
migrate_schema[column] = field.info.schema;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const sql = `CREATE TABLE IF NOT EXISTS ${model.table}(${column_sqls.join(",")})`;
|
|
53
|
+
await model.execute(sql);
|
|
54
|
+
for (let idxql of index_sqls) {
|
|
55
|
+
try {
|
|
56
|
+
await model.execute(idxql);
|
|
57
|
+
}
|
|
58
|
+
catch (error) { }
|
|
59
|
+
}
|
|
60
|
+
if (model.table === this.model.table) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const prev_migration = await this.migrateSchema(model);
|
|
64
|
+
if (prev_migration) {
|
|
65
|
+
for (let column in schema) {
|
|
66
|
+
const field = schema[column];
|
|
67
|
+
if (!iof(field, XqlRelationMany)) {
|
|
68
|
+
const info = field.info;
|
|
69
|
+
if (column in prev_migration) ;
|
|
70
|
+
else {
|
|
71
|
+
// Add column
|
|
72
|
+
await model.execute(info.sql.alter_column);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return await this.model.upsert({
|
|
78
|
+
create: {
|
|
79
|
+
model: model.table,
|
|
80
|
+
schema: migrate_schema
|
|
81
|
+
},
|
|
82
|
+
update: {
|
|
83
|
+
schema: migrate_schema
|
|
84
|
+
},
|
|
85
|
+
where: {
|
|
86
|
+
model: model.table
|
|
87
|
+
},
|
|
88
|
+
useTransection: false
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
async get(model) {
|
|
92
|
+
return await this.model.findOne({
|
|
93
|
+
where: {
|
|
94
|
+
model: model.table
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
async migrateSchema(model) {
|
|
99
|
+
const get = await this.get(model);
|
|
100
|
+
if (get) {
|
|
101
|
+
return get.schema;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async has(model) {
|
|
105
|
+
return await this.model.count({
|
|
106
|
+
model: model.table
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export { Migration as default };
|
|
112
|
+
//# sourceMappingURL=Migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Migration.js","sources":["../../src/core/Migration.ts"],"sourcesContent":["import { xv } from \"xanv\";\nimport Model from \"../model\";\nimport xt from \"../xt\";\nimport Xansql from \"./Xansql\";\nimport { XqlFieldInfoSchema } from \"../xt/XqlFieldInfo\";\nimport XqlRelationMany from \"../xt/fields/RelationMany\";\nimport { iof } from \"../utils\";\nimport XansqlError from \"./XansqlError\";\n\nclass MigrationModel extends Model {\n get table() {\n return \"_xansql_migration\"\n }\n\n schema() {\n return {\n id: xt.id(),\n model: xt.string(),\n schema: xt.record(xt.string(), xt.object({\n type: xt.string(),\n length: xt.number().nullable(),\n default: xv.any(),\n unique: xt.boolean(),\n nullable: xt.boolean(),\n index: xt.string()\n })),\n created_at: xt.date().createdAt(),\n updated_at: xt.date().updatedAt(),\n }\n }\n}\n\n\nclass Migration {\n model\n constructor(private xansql: Xansql) {\n this.model = xansql.model(MigrationModel)\n this.migrate(this.model)\n }\n\n async migrate<M extends Model<any>>(model: M) {\n if (typeof window !== \"undefined\") return\n\n const schema = model.schema()\n let column_sqls = []\n let index_sqls = []\n let migrate_schema: { [column: string]: XqlFieldInfoSchema } = {}\n\n for (let column in schema) {\n const field = schema[column]\n if (!iof(field, XqlRelationMany)) {\n const info = field.info\n column_sqls.push(info.sql.column)\n if (info.sql.create_index) {\n index_sqls.push(info.sql.create_index)\n }\n migrate_schema[column] = field.info.schema\n }\n }\n\n const sql = `CREATE TABLE IF NOT EXISTS ${model.table}(${column_sqls.join(\",\")})`\n await model.execute(sql)\n for (let idxql of index_sqls) {\n try {\n await model.execute(idxql)\n } catch (error) { }\n }\n\n if (model.table === this.model.table) {\n return\n }\n\n const prev_migration = await this.migrateSchema(model)\n if (prev_migration) {\n for (let column in schema) {\n const field = schema[column]\n if (!iof(field, XqlRelationMany)) {\n const info = field.info\n if (column in prev_migration) {\n\n } else {\n // Add column\n await model.execute(info.sql.alter_column)\n }\n }\n }\n }\n\n return await this.model.upsert({\n create: {\n model: model.table,\n schema: migrate_schema\n },\n update: {\n schema: migrate_schema\n },\n where: {\n model: model.table\n },\n useTransection: false\n })\n }\n\n async get(model: Model) {\n return await this.model.findOne({\n where: {\n model: model.table\n }\n })\n }\n\n async migrateSchema(model: Model) {\n const get = await this.get(model)\n if (get) {\n return get.schema\n }\n }\n\n async has(model: Model) {\n return await this.model.count({\n model: model.table\n })\n }\n}\n\nexport default Migration"],"names":[],"mappings":"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"}
|
package/core/Xansql.cjs
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var XansqlTransaction = require('./classes/XansqlTransaction.cjs');
|
|
5
|
+
var XansqlConfig = require('./classes/XansqlConfig.cjs');
|
|
6
|
+
var XansqlError = require('./XansqlError.cjs');
|
|
7
|
+
var file = require('../utils/file.cjs');
|
|
8
|
+
var Migration = require('./Migration.cjs');
|
|
9
|
+
var fileScaner = require('../utils/fileScaner.cjs');
|
|
10
|
+
|
|
11
|
+
class Xansql {
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.models = new Map();
|
|
14
|
+
this.XansqlConfig = new XansqlConfig(this, config);
|
|
15
|
+
this.config = this.XansqlConfig.parse();
|
|
16
|
+
this.XansqlTransaction = new XansqlTransaction(this);
|
|
17
|
+
this.Migration = new Migration(this);
|
|
18
|
+
}
|
|
19
|
+
get dialect() {
|
|
20
|
+
return this.config.dialect;
|
|
21
|
+
}
|
|
22
|
+
model(model, hooks) {
|
|
23
|
+
if (this.models.has(model)) {
|
|
24
|
+
return this.models.get(model);
|
|
25
|
+
}
|
|
26
|
+
const _model = new model(this);
|
|
27
|
+
this.models.set(model, _model);
|
|
28
|
+
return _model;
|
|
29
|
+
}
|
|
30
|
+
async execute(sql) {
|
|
31
|
+
const query = sql.trim().replace(/\s+/g, ' ');
|
|
32
|
+
if (this.config.debug) {
|
|
33
|
+
console.log(`[DB] Executing → ${query}`);
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const result = await this.dialect.execute(query, this);
|
|
37
|
+
if (this.config.debug) {
|
|
38
|
+
console.log(`[DB] Executed ✓`);
|
|
39
|
+
console.dir(result, { depth: null });
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (this.config.debug) {
|
|
45
|
+
console.error(`[DB] Execution failed ✗`);
|
|
46
|
+
console.error(query);
|
|
47
|
+
}
|
|
48
|
+
throw error; // never swallow DB errors
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async uploadFile(file$1) {
|
|
52
|
+
var _a, e_1, _b, _c;
|
|
53
|
+
const fileConfig = this.config.file;
|
|
54
|
+
if (!(fileConfig === null || fileConfig === void 0 ? void 0 : fileConfig.upload)) {
|
|
55
|
+
throw new XansqlError({
|
|
56
|
+
code: "NOT_FOUND",
|
|
57
|
+
message: `File upload is not supported by the current dialect.`
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (file$1 instanceof File) {
|
|
61
|
+
// make chunk
|
|
62
|
+
const fileId = await file.getFileId(file$1);
|
|
63
|
+
const maxFileSize = fileConfig === null || fileConfig === void 0 ? void 0 : fileConfig.maxFilesize;
|
|
64
|
+
if (maxFileSize && file$1.size > maxFileSize * 1024) {
|
|
65
|
+
throw new Error(`File size exceeds the limit of ${maxFileSize / 1024} MB`);
|
|
66
|
+
}
|
|
67
|
+
const chunkSize = fileConfig === null || fileConfig === void 0 ? void 0 : fileConfig.chunkSize;
|
|
68
|
+
// send metadata
|
|
69
|
+
const filemeta = {
|
|
70
|
+
fileId: fileId,
|
|
71
|
+
name: file$1.name,
|
|
72
|
+
size: file$1.size,
|
|
73
|
+
type: file$1.type,
|
|
74
|
+
totalChunks: file.totalChunks(file$1, chunkSize),
|
|
75
|
+
chunkIndex: 0,
|
|
76
|
+
isFinish: false
|
|
77
|
+
};
|
|
78
|
+
try {
|
|
79
|
+
for (var _d = true, _e = tslib.__asyncValues(file.chunkFile(file$1, chunkSize)), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
|
|
80
|
+
_c = _f.value;
|
|
81
|
+
_d = false;
|
|
82
|
+
let { chunk, chunkIndex } = _c;
|
|
83
|
+
filemeta.chunkIndex = chunkIndex;
|
|
84
|
+
filemeta.isFinish = chunkIndex + 1 === filemeta.totalChunks;
|
|
85
|
+
filemeta.chunkIndex = chunkIndex;
|
|
86
|
+
await this.uploadFile({
|
|
87
|
+
chunk,
|
|
88
|
+
meta: filemeta
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
93
|
+
finally {
|
|
94
|
+
try {
|
|
95
|
+
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
96
|
+
}
|
|
97
|
+
finally { if (e_1) throw e_1.error; }
|
|
98
|
+
}
|
|
99
|
+
return filemeta;
|
|
100
|
+
}
|
|
101
|
+
if (file$1.meta.chunkIndex === 0 && !fileScaner(file$1.chunk).valid) {
|
|
102
|
+
throw new XansqlError({
|
|
103
|
+
code: "FILE_ERROR",
|
|
104
|
+
message: `Failed to process file "${file$1.meta.name}".`
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return await this.config.file.upload(file$1.chunk, file$1.meta, this);
|
|
108
|
+
}
|
|
109
|
+
async deleteFile(fileId) {
|
|
110
|
+
var _a;
|
|
111
|
+
if (!((_a = this.config.file) === null || _a === void 0 ? void 0 : _a.delete)) {
|
|
112
|
+
throw new XansqlError({
|
|
113
|
+
code: "INTERNAL_ERROR",
|
|
114
|
+
message: `File delete is not supported by the current dialect.`
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return await this.config.file.delete(fileId, this);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
module.exports = Xansql;
|
|
122
|
+
//# sourceMappingURL=Xansql.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Xansql.cjs","sources":["../../src/core/Xansql.ts"],"sourcesContent":["import Model from \"../model\";\nimport { ExecuterResult, XansqlConfigType, XansqlConfigTypeRequired, XansqlFileMeta, XansqlFileUploadArgs } from \"./types\";\nimport XansqlTransaction from \"./classes/XansqlTransaction\";\nimport XansqlConfig from \"./classes/XansqlConfig\";\nimport XansqlError from \"./XansqlError\";\nimport { ModelClass } from \"../model/types\";\nimport { chunkFile, getFileId, totalChunks } from \"../utils/file\";\nimport Migration from \"./Migration\";\nimport fileScaner from \"../utils/fileScaner\";\n\n\nclass Xansql {\n private XansqlConfig: XansqlConfig;\n readonly config: XansqlConfigTypeRequired;\n readonly XansqlTransaction: XansqlTransaction;\n readonly models = new Map<ModelClass<any>, Model>()\n readonly Migration: Migration\n\n constructor(config: XansqlConfigType) {\n this.XansqlConfig = new XansqlConfig(this, config);\n this.config = this.XansqlConfig.parse()\n this.XansqlTransaction = new XansqlTransaction(this);\n this.Migration = new Migration(this)\n }\n\n get dialect() {\n return this.config.dialect;\n }\n\n model<M extends Model<any>>(model: ModelClass<M>, hooks?: any) {\n if (this.models.has(model)) {\n return this.models.get(model) as Model<ReturnType<M['schema']>>\n }\n const _model = new model(this)\n this.models.set(model, _model)\n return _model as Model<ReturnType<M['schema']>>\n }\n\n async execute(sql: string): Promise<ExecuterResult> {\n const query = sql.trim().replace(/\\s+/g, ' ');\n\n if (this.config.debug) {\n console.log(`[DB] Executing → ${query}`);\n }\n\n try {\n const result = await this.dialect.execute(query, this) as ExecuterResult;\n\n if (this.config.debug) {\n console.log(`[DB] Executed ✓`);\n console.dir(result, { depth: null });\n }\n\n return result;\n } catch (error) {\n if (this.config.debug) {\n console.error(`[DB] Execution failed ✗`);\n console.error(query);\n }\n\n throw error; // never swallow DB errors\n }\n }\n\n async uploadFile(file: XansqlFileUploadArgs) {\n const fileConfig = this.config.file\n if (!fileConfig?.upload) {\n throw new XansqlError({\n code: \"NOT_FOUND\",\n message: `File upload is not supported by the current dialect.`\n });\n }\n if (file instanceof File) {\n // make chunk\n const fileId = await getFileId(file);\n\n const maxFileSize = fileConfig?.maxFilesize\n if (maxFileSize && file.size > maxFileSize * 1024) {\n throw new Error(`File size exceeds the limit of ${maxFileSize / 1024} MB`)\n }\n\n const chunkSize = fileConfig?.chunkSize\n\n // send metadata\n const filemeta: XansqlFileMeta = {\n fileId: fileId,\n name: file.name,\n size: file.size,\n type: file.type,\n totalChunks: totalChunks(file, chunkSize),\n chunkIndex: 0,\n isFinish: false\n }\n for await (let { chunk, chunkIndex } of chunkFile(file, chunkSize)) {\n filemeta.chunkIndex = chunkIndex;\n filemeta.isFinish = chunkIndex + 1 === filemeta.totalChunks;\n filemeta.chunkIndex = chunkIndex\n await this.uploadFile({\n chunk,\n meta: filemeta\n })\n }\n return filemeta\n }\n\n if (file.meta.chunkIndex === 0 && !fileScaner(file.chunk).valid) {\n throw new XansqlError({\n code: \"FILE_ERROR\",\n message: `Failed to process file \"${file.meta.name}\".`\n });\n }\n return await this.config.file.upload(file.chunk, file.meta, this);\n }\n\n async deleteFile(fileId: string) {\n if (!this.config.file?.delete) {\n throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `File delete is not supported by the current dialect.`\n });\n }\n return await this.config.file.delete(fileId, this);\n }\n}\n\nclass XansqlClone extends Xansql { }\n\n\nexport default Xansql"],"names":["file","getFileId","totalChunks","__asyncValues","chunkFile"],"mappings":"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"}
|
package/core/Xansql.d.ts
CHANGED
|
@@ -1,33 +1,21 @@
|
|
|
1
|
-
import { XansqlConfigTypeRequired, XansqlConfigType, XansqlDialect, ExecuterResult,
|
|
1
|
+
import { XansqlConfigTypeRequired, XansqlConfigType, XansqlDialect, ExecuterResult, XansqlFileUploadArgs, XansqlFileMeta } from './types.js';
|
|
2
|
+
import { ModelClass, SchemaShape } from '../model/types.js';
|
|
2
3
|
import Model from '../model/index.js';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import EventManager, { EventPayloads, EventHandler } from './classes/EventManager.js';
|
|
6
|
-
import Schema from '../model/Schema.js';
|
|
4
|
+
import XansqlTransaction from './classes/XansqlTransaction.js';
|
|
5
|
+
import Migration from './Migration.js';
|
|
7
6
|
|
|
8
7
|
declare class Xansql {
|
|
9
|
-
private ModelFactory;
|
|
10
8
|
private XansqlConfig;
|
|
11
9
|
readonly config: XansqlConfigTypeRequired;
|
|
12
|
-
readonly XansqlTransaction:
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
10
|
+
readonly XansqlTransaction: XansqlTransaction;
|
|
11
|
+
readonly models: Map<ModelClass<any>, Model<SchemaShape>>;
|
|
12
|
+
readonly Migration: Migration;
|
|
15
13
|
constructor(config: XansqlConfigType);
|
|
16
14
|
get dialect(): XansqlDialect;
|
|
17
|
-
|
|
18
|
-
get aliases(): Map<string, string>;
|
|
19
|
-
clone(config?: Partial<XansqlConfigType>): XansqlClone;
|
|
20
|
-
model(schema: Schema): Model;
|
|
21
|
-
getModel(table: string): Model;
|
|
15
|
+
model<M extends Model<any>>(model: ModelClass<M>, hooks?: any): Model<ReturnType<M["schema"]>>;
|
|
22
16
|
execute(sql: string): Promise<ExecuterResult>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
deleteFile(filename: string): Promise<void>;
|
|
26
|
-
transaction(callback: () => Promise<any>): Promise<any>;
|
|
27
|
-
migrate(force?: boolean): Promise<void>;
|
|
28
|
-
on<K extends keyof EventPayloads>(event: K, handler: EventHandler<K>): void;
|
|
29
|
-
}
|
|
30
|
-
declare class XansqlClone extends Xansql {
|
|
17
|
+
uploadFile(file: XansqlFileUploadArgs): Promise<XansqlFileMeta>;
|
|
18
|
+
deleteFile(fileId: string): Promise<void>;
|
|
31
19
|
}
|
|
32
20
|
|
|
33
21
|
export { Xansql as default };
|