velocious 1.0.455 → 1.0.457

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.
Files changed (55) hide show
  1. package/README.md +1 -1
  2. package/build/cli/commands/db/drop.js +7 -3
  3. package/build/database/datetime-storage.js +188 -0
  4. package/build/database/drivers/base.js +2 -2
  5. package/build/database/drivers/mssql/index.js +4 -0
  6. package/build/database/drivers/mysql/index.js +11 -1
  7. package/build/database/drivers/pgsql/index.js +15 -3
  8. package/build/database/migration/index.js +127 -0
  9. package/build/database/record/index.js +6 -63
  10. package/build/environment-handlers/node/cli/commands/generate/frontend-models.js +19 -3
  11. package/build/frontend-model-controller.js +4 -2
  12. package/build/frontend-models/base.js +7 -0
  13. package/build/frontend-models/websocket-publishers.js +11 -0
  14. package/build/src/cli/commands/db/drop.d.ts.map +1 -1
  15. package/build/src/cli/commands/db/drop.js +10 -4
  16. package/build/src/database/datetime-storage.d.ts +56 -0
  17. package/build/src/database/datetime-storage.d.ts.map +1 -0
  18. package/build/src/database/datetime-storage.js +174 -0
  19. package/build/src/database/drivers/base.d.ts.map +1 -1
  20. package/build/src/database/drivers/base.js +3 -3
  21. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  22. package/build/src/database/drivers/mssql/index.js +4 -1
  23. package/build/src/database/drivers/mysql/index.d.ts +5 -0
  24. package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
  25. package/build/src/database/drivers/mysql/index.js +10 -2
  26. package/build/src/database/drivers/pgsql/index.d.ts +5 -0
  27. package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
  28. package/build/src/database/drivers/pgsql/index.js +13 -3
  29. package/build/src/database/migration/index.d.ts +66 -0
  30. package/build/src/database/migration/index.d.ts.map +1 -1
  31. package/build/src/database/migration/index.js +112 -1
  32. package/build/src/database/record/index.d.ts.map +1 -1
  33. package/build/src/database/record/index.js +7 -52
  34. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
  35. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +20 -4
  36. package/build/src/frontend-model-controller.d.ts.map +1 -1
  37. package/build/src/frontend-model-controller.js +5 -3
  38. package/build/src/frontend-models/base.d.ts.map +1 -1
  39. package/build/src/frontend-models/base.js +6 -1
  40. package/build/src/frontend-models/websocket-publishers.d.ts.map +1 -1
  41. package/build/src/frontend-models/websocket-publishers.js +12 -1
  42. package/build/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/src/cli/commands/db/drop.js +7 -3
  45. package/src/database/datetime-storage.js +188 -0
  46. package/src/database/drivers/base.js +2 -2
  47. package/src/database/drivers/mssql/index.js +4 -0
  48. package/src/database/drivers/mysql/index.js +11 -1
  49. package/src/database/drivers/pgsql/index.js +15 -3
  50. package/src/database/migration/index.js +127 -0
  51. package/src/database/record/index.js +6 -63
  52. package/src/environment-handlers/node/cli/commands/generate/frontend-models.js +19 -3
  53. package/src/frontend-model-controller.js +4 -2
  54. package/src/frontend-models/base.js +7 -0
  55. package/src/frontend-models/websocket-publishers.js +11 -0
@@ -5,6 +5,7 @@ import timeout from "awaitery/build/timeout.js"
5
5
  import wait from "awaitery/build/wait.js"
6
6
  import FrontendModelQuery, {frontendModelEventOptionsPayload} from "./query.js"
7
7
  import FrontendModelPreloader from "./preloader.js"
8
+ import { normalizeDateStringForWrite } from "../database/datetime-storage.js"
8
9
  import {registerFrontendModel, resolveFrontendModelClass} from "./model-registry.js"
9
10
  import {validateFrontendModelResourceCommandName, validateFrontendModelResourcePath} from "./resource-config-validation.js"
10
11
  import {deserializeFrontendModelTransportValue, serializeFrontendModelTransportValue} from "./transport-serialization.js"
@@ -3775,6 +3776,12 @@ export default class FrontendModelBase {
3775
3776
  */
3776
3777
  static findByPrimitiveValuesMatch(actualValue, expectedValue) {
3777
3778
  if (actualValue instanceof Date && typeof expectedValue === "string") {
3779
+ const normalizedExpectedValue = normalizeDateStringForWrite(expectedValue)
3780
+
3781
+ if (normalizedExpectedValue instanceof Date) {
3782
+ return actualValue.toISOString() === normalizedExpectedValue.toISOString()
3783
+ }
3784
+
3778
3785
  return actualValue.toISOString() === expectedValue
3779
3786
  }
3780
3787
 
@@ -43,6 +43,12 @@ function frontendModelResourcesFromAbilityResourcesList(abilityResources) {
43
43
  }
44
44
 
45
45
  if (frontendModelResourceDefinitionIsClass(resourceClass)) {
46
+ // An abstract base resource (no static ModelClass — e.g. an app's shared
47
+ // `BaseResource` that other resources extend) backs no model, so it isn't a
48
+ // publishable frontend model. Skip it instead of letting `modelClass()`
49
+ // throw `requires a static ModelClass` during ability-resource discovery.
50
+ if (!resourceClass.ModelClass) continue
51
+
46
52
  const modelName = resourceClass.modelClass().getModelName()
47
53
 
48
54
  resources[modelName] = resourceClass
@@ -102,6 +108,11 @@ export async function ensureFrontendModelWebsocketPublishersRegistered(configura
102
108
  }
103
109
 
104
110
  for (const resourceClass of Object.values(allFrontendModels)) {
111
+ // An abstract base resource (no static ModelClass — e.g. an app's shared
112
+ // `BaseResource` that other resources extend) backs no model, so there is
113
+ // nothing to publish realtime events for. Skip it instead of throwing.
114
+ if (!resourceClass.ModelClass) continue
115
+
105
116
  const modelClass = resourceClass.modelClass()
106
117
  const modelName = modelClass.getModelName()
107
118
 
@@ -1 +1 @@
1
- {"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/db/drop.js"],"names":[],"mappings":"AAIA;IACE;;;OAGG;IACH,WAFa,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CA0CzC;IAED;;;;OAIG;IACH,yCAHW,MAAM,GACJ,MAAM,CAOlB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAOzB;CACF;0BA1EyB,mBAAmB"}
1
+ {"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/db/drop.js"],"names":[],"mappings":"AAIA;IACE;;;OAGG;IACH,WAFa,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CA8CzC;IAED;;;;OAIG;IACH,yCAHW,MAAM,GACJ,MAAM,CAOlB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAOzB;CACF;0BA9EyB,mBAAmB"}
@@ -26,9 +26,15 @@ export default class DbDrop extends DbBaseCommand {
26
26
  // driver's system default.
27
27
  const configuredFallback = newConfiguration.useDatabase;
28
28
  const useConfiguredFallback = typeof configuredFallback == "string" && configuredFallback.length > 0 && configuredFallback != targetDatabaseName;
29
- newConfiguration.database = useConfiguredFallback
30
- ? configuredFallback
31
- : this.systemFallbackDatabaseName(databaseType);
29
+ if (useConfiguredFallback) {
30
+ newConfiguration.database = configuredFallback;
31
+ }
32
+ else if (databaseType == "mysql") {
33
+ delete newConfiguration.database;
34
+ }
35
+ else {
36
+ newConfiguration.database = this.systemFallbackDatabaseName(databaseType);
37
+ }
32
38
  if (databaseType == "mssql" && newConfiguration.sqlConfig?.database) {
33
39
  delete newConfiguration.sqlConfig.database;
34
40
  }
@@ -63,4 +69,4 @@ export default class DbDrop extends DbBaseCommand {
63
69
  await this.queryOrCollectSqls(sqls, (sql) => ({ databaseName, sql }));
64
70
  }
65
71
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGkvY29tbWFuZHMvZGIvZHJvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGFBQWEsTUFBTSxtQkFBbUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFFeEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxNQUFPLFNBQVEsYUFBYTtJQUMvQzs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBRTVELElBQUksV0FBVyxJQUFJLGFBQWEsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRkFBc0YsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUN0SCxDQUFDO1FBRUQsS0FBSyxNQUFNLGtCQUFrQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztZQUNsRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtZQUVoRixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtZQUV2QyxJQUFJLFlBQVksSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUE7Z0JBQ2hGLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO2dCQUN6RSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFBO2dCQUVuSCxzRUFBc0U7Z0JBQ3RFLGdFQUFnRTtnQkFDaEUsb0VBQW9FO2dCQUNwRSxvRUFBb0U7Z0JBQ3BFLDJCQUEyQjtnQkFDM0IsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUE7Z0JBQ3ZELE1BQU0scUJBQXFCLEdBQUcsT0FBTyxrQkFBa0IsSUFBSSxRQUFRLElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQTtnQkFFaEosZ0JBQWdCLENBQUMsUUFBUSxHQUFHLHFCQUFxQjtvQkFDL0MsQ0FBQyxDQUFDLGtCQUFrQjtvQkFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFFakQsSUFBSSxZQUFZLElBQUksT0FBTyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztvQkFDcEUsT0FBTyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFBO2dCQUM1QyxDQUFDO2dCQUVELE1BQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLGdCQUFnQixFQUFFLEtBQUssSUFBSSxFQUFFO29CQUNuRSxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtnQkFDN0MsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDBCQUEwQixDQUFDLFlBQVk7UUFDckMsSUFBSSxZQUFZLElBQUksT0FBTztZQUFFLE9BQU8sVUFBVSxDQUFBO1FBQzlDLElBQUksWUFBWSxJQUFJLE9BQU87WUFBRSxPQUFPLFFBQVEsQ0FBQTtRQUU1QyxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsa0JBQWtCO1FBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQzdHLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtRQUV6RixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEYkJhc2VDb21tYW5kIGZyb20gXCIuL2Jhc2UtY29tbWFuZC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IHtpbmNvcnBvcmF0ZX0gZnJvbSBcImluY29ycG9yYXRvclwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERiRHJvcCBleHRlbmRzIERiQmFzZUNvbW1hbmQge1xuICAvKipcbiAgICogUnVucyBleGVjdXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkIHwgQXJyYXk8b2JqZWN0Pj59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RhdGVtZW50cyB3aGVuIHJ1bm5pbmcgaW4gZHJ5IG1vZGUuXG4gICAqL1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIGNvbnN0IGVudmlyb25tZW50ID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RW52aXJvbm1lbnQoKVxuXG4gICAgaWYgKGVudmlyb25tZW50ICE9IFwiZGV2ZWxvcG1lbnRcIiAmJiBlbnZpcm9ubWVudCAhPSBcInRlc3RcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGlzIGNvbW1hbmQgc2hvdWxkIG9ubHkgYmUgZXhlY3V0ZWQgb24gZGV2ZWxvcG1lbnQgYW5kIHRlc3QgZW52aXJvbm1lbnRzIGFuZCBub3Q6ICR7ZW52aXJvbm1lbnR9YClcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRhdGFiYXNlSWRlbnRpZmllciBvZiB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZUlkZW50aWZpZXJzKCkpIHtcbiAgICAgIGNvbnN0IGRhdGFiYXNlVHlwZSA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlVHlwZShkYXRhYmFzZUlkZW50aWZpZXIpXG5cbiAgICAgIGlmICh0aGlzLmFyZ3MudGVzdGluZykgdGhpcy5yZXN1bHQgPSBbXVxuXG4gICAgICBpZiAoZGF0YWJhc2VUeXBlICE9IFwic3FsaXRlXCIpIHtcbiAgICAgICAgY29uc3QgZGF0YWJhc2VQb29sID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VQb29sKGRhdGFiYXNlSWRlbnRpZmllcilcbiAgICAgICAgY29uc3QgbmV3Q29uZmlndXJhdGlvbiA9IGluY29ycG9yYXRlKHt9LCBkYXRhYmFzZVBvb2wuZ2V0Q29uZmlndXJhdGlvbigpKVxuICAgICAgICBjb25zdCB0YXJnZXREYXRhYmFzZU5hbWUgPSBkaWdnKHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlQ29uZmlndXJhdGlvbigpLCBkYXRhYmFzZUlkZW50aWZpZXIsIFwiZGF0YWJhc2VcIilcblxuICAgICAgICAvLyBDb25uZWN0IHRvIGEga25vd24tZXhpc3Rpbmcgc3lzdGVtIGRhdGFiYXNlOiB0aGUgdGFyZ2V0IGlzIGFib3V0IHRvXG4gICAgICAgIC8vIGJlIGRyb3BwZWQgKHNvIHdlIGNhbid0IGJlIGNvbm5lY3RlZCB0byBpdCksIFBvc3RncmVzIHJlamVjdHNcbiAgICAgICAgLy8gRFJPUCBEQVRBQkFTRSB3aGlsZSBjb25uZWN0ZWQgdG8gaXQsIGFuZCBjb25maWd1cmVkIGB1c2VEYXRhYmFzZWBcbiAgICAgICAgLy8gbWF5IGhhcHBlbiB0byBlcXVhbCB0aGUgdGFyZ2V0IOKAlCBpbiB0aGF0IGNhc2UgZmFsbCB0aHJvdWdoIHRvIHRoZVxuICAgICAgICAvLyBkcml2ZXIncyBzeXN0ZW0gZGVmYXVsdC5cbiAgICAgICAgY29uc3QgY29uZmlndXJlZEZhbGxiYWNrID0gbmV3Q29uZmlndXJhdGlvbi51c2VEYXRhYmFzZVxuICAgICAgICBjb25zdCB1c2VDb25maWd1cmVkRmFsbGJhY2sgPSB0eXBlb2YgY29uZmlndXJlZEZhbGxiYWNrID09IFwic3RyaW5nXCIgJiYgY29uZmlndXJlZEZhbGxiYWNrLmxlbmd0aCA+IDAgJiYgY29uZmlndXJlZEZhbGxiYWNrICE9IHRhcmdldERhdGFiYXNlTmFtZVxuXG4gICAgICAgIG5ld0NvbmZpZ3VyYXRpb24uZGF0YWJhc2UgPSB1c2VDb25maWd1cmVkRmFsbGJhY2tcbiAgICAgICAgICA/IGNvbmZpZ3VyZWRGYWxsYmFja1xuICAgICAgICAgIDogdGhpcy5zeXN0ZW1GYWxsYmFja0RhdGFiYXNlTmFtZShkYXRhYmFzZVR5cGUpXG5cbiAgICAgICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcIm1zc3FsXCIgJiYgbmV3Q29uZmlndXJhdGlvbi5zcWxDb25maWc/LmRhdGFiYXNlKSB7XG4gICAgICAgICAgZGVsZXRlIG5ld0NvbmZpZ3VyYXRpb24uc3FsQ29uZmlnLmRhdGFiYXNlXG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLndpdGhEaXJlY3REYXRhYmFzZUNvbm5lY3Rpb24obmV3Q29uZmlndXJhdGlvbiwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZHJvcERhdGFiYXNlKGRhdGFiYXNlSWRlbnRpZmllcilcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYXJncy50ZXN0aW5nKSByZXR1cm4gdGhpcy5yZXN1bHRcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBzeXN0ZW0gZmFsbGJhY2sgZGF0YWJhc2UgbmFtZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFiYXNlVHlwZSAtIERhdGFiYXNlIHR5cGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gU3lzdGVtL21haW50ZW5hbmNlIGRhdGFiYXNlIG5hbWUgZm9yIHRoYXQgZHJpdmVyLlxuICAgKi9cbiAgc3lzdGVtRmFsbGJhY2tEYXRhYmFzZU5hbWUoZGF0YWJhc2VUeXBlKSB7XG4gICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcInBnc3FsXCIpIHJldHVybiBcInBvc3RncmVzXCJcbiAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwibXNzcWxcIikgcmV0dXJuIFwibWFzdGVyXCJcblxuICAgIHJldHVybiBcIm15c3FsXCJcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGRyb3AgZGF0YWJhc2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhYmFzZUlkZW50aWZpZXIgLSBEYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgZHJvcERhdGFiYXNlKGRhdGFiYXNlSWRlbnRpZmllcikge1xuICAgIGNvbnN0IGRhdGFiYXNlTmFtZSA9IGRpZ2codGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VDb25maWd1cmF0aW9uKCksIGRhdGFiYXNlSWRlbnRpZmllciwgXCJkYXRhYmFzZVwiKVxuICAgIGNvbnN0IHNxbHMgPSB0aGlzLmdldERhdGFiYXNlQ29ubmVjdGlvbigpLmRyb3BEYXRhYmFzZVNxbChkYXRhYmFzZU5hbWUsIHtpZkV4aXN0czogdHJ1ZX0pXG5cbiAgICBhd2FpdCB0aGlzLnF1ZXJ5T3JDb2xsZWN0U3FscyhzcWxzLCAoc3FsKSA9PiAoe2RhdGFiYXNlTmFtZSwgc3FsfSkpXG4gIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGkvY29tbWFuZHMvZGIvZHJvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGFBQWEsTUFBTSxtQkFBbUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFFeEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxNQUFPLFNBQVEsYUFBYTtJQUMvQzs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBRTVELElBQUksV0FBVyxJQUFJLGFBQWEsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRkFBc0YsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUN0SCxDQUFDO1FBRUQsS0FBSyxNQUFNLGtCQUFrQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztZQUNsRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtZQUVoRixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtZQUV2QyxJQUFJLFlBQVksSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUE7Z0JBQ2hGLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO2dCQUN6RSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFBO2dCQUVuSCxzRUFBc0U7Z0JBQ3RFLGdFQUFnRTtnQkFDaEUsb0VBQW9FO2dCQUNwRSxvRUFBb0U7Z0JBQ3BFLDJCQUEyQjtnQkFDM0IsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUE7Z0JBQ3ZELE1BQU0scUJBQXFCLEdBQUcsT0FBTyxrQkFBa0IsSUFBSSxRQUFRLElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQTtnQkFFaEosSUFBSSxxQkFBcUIsRUFBRSxDQUFDO29CQUMxQixnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUE7Z0JBQ2hELENBQUM7cUJBQU0sSUFBSSxZQUFZLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ25DLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFBO2dCQUNsQyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sZ0JBQWdCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDM0UsQ0FBQztnQkFFRCxJQUFJLFlBQVksSUFBSSxPQUFPLElBQUksZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO29CQUNwRSxPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUE7Z0JBQzVDLENBQUM7Z0JBRUQsTUFBTSxJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQ25FLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO2dCQUM3QyxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsMEJBQTBCLENBQUMsWUFBWTtRQUNyQyxJQUFJLFlBQVksSUFBSSxPQUFPO1lBQUUsT0FBTyxVQUFVLENBQUE7UUFDOUMsSUFBSSxZQUFZLElBQUksT0FBTztZQUFFLE9BQU8sUUFBUSxDQUFBO1FBRTVDLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0I7UUFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDN0csTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO1FBRXpGLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERiQmFzZUNvbW1hbmQgZnJvbSBcIi4vYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGJEcm9wIGV4dGVuZHMgRGJCYXNlQ29tbWFuZCB7XG4gIC8qKlxuICAgKiBSdW5zIGV4ZWN1dGUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQgfCBBcnJheTxvYmplY3Q+Pn0gLSBSZXNvbHZlcyB3aXRoIFNRTCBzdGF0ZW1lbnRzIHdoZW4gcnVubmluZyBpbiBkcnkgbW9kZS5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgY29uc3QgZW52aXJvbm1lbnQgPSB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXRFbnZpcm9ubWVudCgpXG5cbiAgICBpZiAoZW52aXJvbm1lbnQgIT0gXCJkZXZlbG9wbWVudFwiICYmIGVudmlyb25tZW50ICE9IFwidGVzdFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoaXMgY29tbWFuZCBzaG91bGQgb25seSBiZSBleGVjdXRlZCBvbiBkZXZlbG9wbWVudCBhbmQgdGVzdCBlbnZpcm9ubWVudHMgYW5kIG5vdDogJHtlbnZpcm9ubWVudH1gKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGF0YWJhc2VJZGVudGlmaWVyIG9mIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlSWRlbnRpZmllcnMoKSkge1xuICAgICAgY29uc3QgZGF0YWJhc2VUeXBlID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VUeXBlKGRhdGFiYXNlSWRlbnRpZmllcilcblxuICAgICAgaWYgKHRoaXMuYXJncy50ZXN0aW5nKSB0aGlzLnJlc3VsdCA9IFtdXG5cbiAgICAgIGlmIChkYXRhYmFzZVR5cGUgIT0gXCJzcWxpdGVcIikge1xuICAgICAgICBjb25zdCBkYXRhYmFzZVBvb2wgPSB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZVBvb2woZGF0YWJhc2VJZGVudGlmaWVyKVxuICAgICAgICBjb25zdCBuZXdDb25maWd1cmF0aW9uID0gaW5jb3Jwb3JhdGUoe30sIGRhdGFiYXNlUG9vbC5nZXRDb25maWd1cmF0aW9uKCkpXG4gICAgICAgIGNvbnN0IHRhcmdldERhdGFiYXNlTmFtZSA9IGRpZ2codGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VDb25maWd1cmF0aW9uKCksIGRhdGFiYXNlSWRlbnRpZmllciwgXCJkYXRhYmFzZVwiKVxuXG4gICAgICAgIC8vIENvbm5lY3QgdG8gYSBrbm93bi1leGlzdGluZyBzeXN0ZW0gZGF0YWJhc2U6IHRoZSB0YXJnZXQgaXMgYWJvdXQgdG9cbiAgICAgICAgLy8gYmUgZHJvcHBlZCAoc28gd2UgY2FuJ3QgYmUgY29ubmVjdGVkIHRvIGl0KSwgUG9zdGdyZXMgcmVqZWN0c1xuICAgICAgICAvLyBEUk9QIERBVEFCQVNFIHdoaWxlIGNvbm5lY3RlZCB0byBpdCwgYW5kIGNvbmZpZ3VyZWQgYHVzZURhdGFiYXNlYFxuICAgICAgICAvLyBtYXkgaGFwcGVuIHRvIGVxdWFsIHRoZSB0YXJnZXQg4oCUIGluIHRoYXQgY2FzZSBmYWxsIHRocm91Z2ggdG8gdGhlXG4gICAgICAgIC8vIGRyaXZlcidzIHN5c3RlbSBkZWZhdWx0LlxuICAgICAgICBjb25zdCBjb25maWd1cmVkRmFsbGJhY2sgPSBuZXdDb25maWd1cmF0aW9uLnVzZURhdGFiYXNlXG4gICAgICAgIGNvbnN0IHVzZUNvbmZpZ3VyZWRGYWxsYmFjayA9IHR5cGVvZiBjb25maWd1cmVkRmFsbGJhY2sgPT0gXCJzdHJpbmdcIiAmJiBjb25maWd1cmVkRmFsbGJhY2subGVuZ3RoID4gMCAmJiBjb25maWd1cmVkRmFsbGJhY2sgIT0gdGFyZ2V0RGF0YWJhc2VOYW1lXG5cbiAgICAgICAgaWYgKHVzZUNvbmZpZ3VyZWRGYWxsYmFjaykge1xuICAgICAgICAgIG5ld0NvbmZpZ3VyYXRpb24uZGF0YWJhc2UgPSBjb25maWd1cmVkRmFsbGJhY2tcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJteXNxbFwiKSB7XG4gICAgICAgICAgZGVsZXRlIG5ld0NvbmZpZ3VyYXRpb24uZGF0YWJhc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdDb25maWd1cmF0aW9uLmRhdGFiYXNlID0gdGhpcy5zeXN0ZW1GYWxsYmFja0RhdGFiYXNlTmFtZShkYXRhYmFzZVR5cGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwibXNzcWxcIiAmJiBuZXdDb25maWd1cmF0aW9uLnNxbENvbmZpZz8uZGF0YWJhc2UpIHtcbiAgICAgICAgICBkZWxldGUgbmV3Q29uZmlndXJhdGlvbi5zcWxDb25maWcuZGF0YWJhc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMud2l0aERpcmVjdERhdGFiYXNlQ29ubmVjdGlvbihuZXdDb25maWd1cmF0aW9uLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kcm9wRGF0YWJhc2UoZGF0YWJhc2VJZGVudGlmaWVyKVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hcmdzLnRlc3RpbmcpIHJldHVybiB0aGlzLnJlc3VsdFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN5c3RlbSBmYWxsYmFjayBkYXRhYmFzZSBuYW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YWJhc2VUeXBlIC0gRGF0YWJhc2UgdHlwZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBTeXN0ZW0vbWFpbnRlbmFuY2UgZGF0YWJhc2UgbmFtZSBmb3IgdGhhdCBkcml2ZXIuXG4gICAqL1xuICBzeXN0ZW1GYWxsYmFja0RhdGFiYXNlTmFtZShkYXRhYmFzZVR5cGUpIHtcbiAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwicGdzcWxcIikgcmV0dXJuIFwicG9zdGdyZXNcIlxuICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJtc3NxbFwiKSByZXR1cm4gXCJtYXN0ZXJcIlxuXG4gICAgcmV0dXJuIFwibXlzcWxcIlxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZHJvcCBkYXRhYmFzZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFiYXNlSWRlbnRpZmllciAtIERhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBkcm9wRGF0YWJhc2UoZGF0YWJhc2VJZGVudGlmaWVyKSB7XG4gICAgY29uc3QgZGF0YWJhc2VOYW1lID0gZGlnZyh0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZUNvbmZpZ3VyYXRpb24oKSwgZGF0YWJhc2VJZGVudGlmaWVyLCBcImRhdGFiYXNlXCIpXG4gICAgY29uc3Qgc3FscyA9IHRoaXMuZ2V0RGF0YWJhc2VDb25uZWN0aW9uKCkuZHJvcERhdGFiYXNlU3FsKGRhdGFiYXNlTmFtZSwge2lmRXhpc3RzOiB0cnVlfSlcblxuICAgIGF3YWl0IHRoaXMucXVlcnlPckNvbGxlY3RTcWxzKHNxbHMsIChzcWwpID0+ICh7ZGF0YWJhc2VOYW1lLCBzcWx9KSlcbiAgfVxufVxuIl19
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Checks whether a string has a datetime timezone suffix.
3
+ * @param {string} value - Value to check.
4
+ * @returns {boolean} - Whether the string ends with `Z` or an offset.
5
+ */
6
+ export function hasDateTimeTimezone(value: string): boolean;
7
+ /**
8
+ * Formats a Date for database storage as a UTC instant.
9
+ * @param {Date} value - Date value.
10
+ * @param {object} args - Options.
11
+ * @param {string} args.databaseType - Database driver type.
12
+ * @returns {string} - Database datetime string.
13
+ */
14
+ export function formatDateForDatabase(value: Date, { databaseType }: {
15
+ databaseType: string;
16
+ }): string;
17
+ /**
18
+ * Normalizes a record write string into a Date when it is a recognized datetime string.
19
+ * Timezone-less strings are external input and are treated as UTC.
20
+ * @param {string} value - Value to normalize.
21
+ * @returns {Date | string} - Normalized value.
22
+ */
23
+ export function normalizeDateStringForWrite(value: string): Date | string;
24
+ /**
25
+ * Normalizes a record write value into a Date when it is a recognized datetime string.
26
+ * Timezone-less strings are external input and are treated as UTC.
27
+ * @param {Date | string | null | undefined} value - Value to normalize.
28
+ * @returns {Date | string | null | undefined} - Normalized value.
29
+ */
30
+ export function normalizeDateValueForWrite(value: Date | string | null | undefined): Date | string | null | undefined;
31
+ /**
32
+ * Normalizes a database value into a Date for record reads.
33
+ * SQLite timezone-less rows are legacy local wall-clock rows produced before
34
+ * UTC storage. New SQLite writes include `Z`, so they take the exact branch.
35
+ * @param {Date | string | null | undefined} value - Stored database value.
36
+ * @param {object} args - Options.
37
+ * @param {string} args.databaseType - Database driver type.
38
+ * @returns {Date | string | null | undefined} - Normalized value.
39
+ */
40
+ export function normalizeDateValueForRead(value: Date | string | null | undefined, { databaseType }: {
41
+ databaseType: string;
42
+ }): Date | string | null | undefined;
43
+ /**
44
+ * Converts a legacy timezone-less datetime value into the new UTC database storage format.
45
+ * The optional offset follows JavaScript's `Date#getTimezoneOffset()` sign convention.
46
+ * @param {Date | string | null | undefined} value - Legacy value.
47
+ * @param {object} args - Options.
48
+ * @param {string} args.databaseType - Database driver type.
49
+ * @param {number | undefined} [args.legacyLocalOffsetMinutes] - UTC-minus-local offset in minutes.
50
+ * @returns {Date | string | null | undefined} - Converted database value or the original value.
51
+ */
52
+ export function convertLegacyDateValueToUtcStorage(value: Date | string | null | undefined, { databaseType, legacyLocalOffsetMinutes }: {
53
+ databaseType: string;
54
+ legacyLocalOffsetMinutes?: number | undefined;
55
+ }): Date | string | null | undefined;
56
+ //# sourceMappingURL=datetime-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime-storage.d.ts","sourceRoot":"","sources":["../../../src/database/datetime-storage.js"],"names":[],"mappings":"AAuFA;;;;GAIG;AACH,2CAHW,MAAM,GACJ,OAAO,CAInB;AAED;;;;;;GAMG;AACH,6CALW,IAAI,oBAEZ;IAAqB,YAAY,EAAzB,MAAM;CACd,GAAU,MAAM,CAoBlB;AAED;;;;;GAKG;AACH,mDAHW,MAAM,GACJ,IAAI,GAAG,MAAM,CAMzB;AAED;;;;;GAKG;AACH,kDAHW,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAM5C;AAED;;;;;;;;GAQG;AACH,iDALW,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,oBAExC;IAAqB,YAAY,EAAzB,MAAM;CACd,GAAU,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAW5C;AAED;;;;;;;;GAQG;AACH,0DANW,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,8CAExC;IAAqB,YAAY,EAAzB,MAAM;IACoB,wBAAwB,GAAlD,MAAM,GAAG,SAAS;CAC1B,GAAU,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAa5C"}
@@ -0,0 +1,174 @@
1
+ // @ts-check
2
+ import isDate from "../utils/is-date.js";
3
+ const dateTimeWithTimezonePattern = /^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:[zZ]|[+-]\d{2}:\d{2})$/;
4
+ const dateTimeWithoutTimezonePattern = /^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?$/;
5
+ const timezoneSuffixPattern = /(?:[zZ]|[+-]\d{2}:\d{2})$/;
6
+ /**
7
+ * Pads a numeric date/time part.
8
+ * @param {number} value - Numeric part.
9
+ * @param {number} length - Target length.
10
+ * @returns {string} - Padded part.
11
+ */
12
+ function pad(value, length = 2) {
13
+ return String(value).padStart(length, "0");
14
+ }
15
+ /**
16
+ * Replaces SQL-style datetime separators with ISO separators for parsing.
17
+ * @param {string} value - Datetime string.
18
+ * @returns {string} - Datetime string with a `T` separator.
19
+ */
20
+ function normalizeDateTimeSeparator(value) {
21
+ return value.includes("T") ? value : value.replace(" ", "T");
22
+ }
23
+ /**
24
+ * Parses a datetime string with an explicit timezone.
25
+ * @param {string} value - Datetime string.
26
+ * @returns {Date | string} - Parsed date or the original string when it is not a recognized datetime.
27
+ */
28
+ function parseTimezoneQualifiedDateTimeString(value) {
29
+ if (!dateTimeWithTimezonePattern.test(value))
30
+ return value;
31
+ const timestamp = Date.parse(normalizeDateTimeSeparator(value));
32
+ if (Number.isNaN(timestamp))
33
+ return value;
34
+ return new Date(timestamp);
35
+ }
36
+ /**
37
+ * Parses a timezone-less datetime string as UTC.
38
+ * @param {string} value - Datetime string.
39
+ * @returns {Date | string} - Parsed date or the original string when it is not a recognized datetime.
40
+ */
41
+ function parseTimezoneLessDateTimeStringAsUtc(value) {
42
+ if (!dateTimeWithoutTimezonePattern.test(value))
43
+ return value;
44
+ const timestamp = Date.parse(`${normalizeDateTimeSeparator(value)}Z`);
45
+ if (Number.isNaN(timestamp))
46
+ return value;
47
+ return new Date(timestamp);
48
+ }
49
+ /**
50
+ * Parses a timezone-less datetime string as the current runtime's local wall-clock time.
51
+ * @param {string} value - Datetime string.
52
+ * @returns {Date | string} - Parsed date or the original string when it is not a recognized datetime.
53
+ */
54
+ function parseTimezoneLessDateTimeStringAsLocal(value) {
55
+ if (!dateTimeWithoutTimezonePattern.test(value))
56
+ return value;
57
+ const timestamp = Date.parse(normalizeDateTimeSeparator(value));
58
+ if (Number.isNaN(timestamp))
59
+ return value;
60
+ return new Date(timestamp);
61
+ }
62
+ /**
63
+ * Parses a timezone-less legacy datetime string with an explicit local offset.
64
+ * The offset follows JavaScript's `Date#getTimezoneOffset()` sign convention.
65
+ * @param {string} value - Datetime string.
66
+ * @param {number} legacyLocalOffsetMinutes - UTC-minus-local offset in minutes.
67
+ * @returns {Date | string} - Parsed date or the original string when it is not a recognized datetime.
68
+ */
69
+ function parseTimezoneLessDateTimeStringWithOffset(value, legacyLocalOffsetMinutes) {
70
+ const utcDate = parseTimezoneLessDateTimeStringAsUtc(value);
71
+ if (!isDate(utcDate))
72
+ return value;
73
+ return new Date(utcDate.getTime() + (legacyLocalOffsetMinutes * 60 * 1000));
74
+ }
75
+ /**
76
+ * Checks whether a string has a datetime timezone suffix.
77
+ * @param {string} value - Value to check.
78
+ * @returns {boolean} - Whether the string ends with `Z` or an offset.
79
+ */
80
+ export function hasDateTimeTimezone(value) {
81
+ return timezoneSuffixPattern.test(value);
82
+ }
83
+ /**
84
+ * Formats a Date for database storage as a UTC instant.
85
+ * @param {Date} value - Date value.
86
+ * @param {object} args - Options.
87
+ * @param {string} args.databaseType - Database driver type.
88
+ * @returns {string} - Database datetime string.
89
+ */
90
+ export function formatDateForDatabase(value, { databaseType }) {
91
+ if (databaseType == "sqlite")
92
+ return value.toISOString();
93
+ return [
94
+ value.getUTCFullYear(),
95
+ "-",
96
+ pad(value.getUTCMonth() + 1),
97
+ "-",
98
+ pad(value.getUTCDate()),
99
+ " ",
100
+ pad(value.getUTCHours()),
101
+ ":",
102
+ pad(value.getUTCMinutes()),
103
+ ":",
104
+ pad(value.getUTCSeconds()),
105
+ ".",
106
+ pad(value.getUTCMilliseconds(), 3)
107
+ ].join("");
108
+ }
109
+ /**
110
+ * Normalizes a record write string into a Date when it is a recognized datetime string.
111
+ * Timezone-less strings are external input and are treated as UTC.
112
+ * @param {string} value - Value to normalize.
113
+ * @returns {Date | string} - Normalized value.
114
+ */
115
+ export function normalizeDateStringForWrite(value) {
116
+ if (hasDateTimeTimezone(value))
117
+ return parseTimezoneQualifiedDateTimeString(value);
118
+ return parseTimezoneLessDateTimeStringAsUtc(value);
119
+ }
120
+ /**
121
+ * Normalizes a record write value into a Date when it is a recognized datetime string.
122
+ * Timezone-less strings are external input and are treated as UTC.
123
+ * @param {Date | string | null | undefined} value - Value to normalize.
124
+ * @returns {Date | string | null | undefined} - Normalized value.
125
+ */
126
+ export function normalizeDateValueForWrite(value) {
127
+ if (typeof value != "string")
128
+ return value;
129
+ return normalizeDateStringForWrite(value);
130
+ }
131
+ /**
132
+ * Normalizes a database value into a Date for record reads.
133
+ * SQLite timezone-less rows are legacy local wall-clock rows produced before
134
+ * UTC storage. New SQLite writes include `Z`, so they take the exact branch.
135
+ * @param {Date | string | null | undefined} value - Stored database value.
136
+ * @param {object} args - Options.
137
+ * @param {string} args.databaseType - Database driver type.
138
+ * @returns {Date | string | null | undefined} - Normalized value.
139
+ */
140
+ export function normalizeDateValueForRead(value, { databaseType }) {
141
+ if (value === null || value === undefined)
142
+ return value;
143
+ if (isDate(value))
144
+ return new Date(value.getTime());
145
+ if (typeof value != "string")
146
+ return value;
147
+ if (hasDateTimeTimezone(value))
148
+ return parseTimezoneQualifiedDateTimeString(value);
149
+ if (databaseType == "sqlite")
150
+ return parseTimezoneLessDateTimeStringAsLocal(value);
151
+ return parseTimezoneLessDateTimeStringAsUtc(value);
152
+ }
153
+ /**
154
+ * Converts a legacy timezone-less datetime value into the new UTC database storage format.
155
+ * The optional offset follows JavaScript's `Date#getTimezoneOffset()` sign convention.
156
+ * @param {Date | string | null | undefined} value - Legacy value.
157
+ * @param {object} args - Options.
158
+ * @param {string} args.databaseType - Database driver type.
159
+ * @param {number | undefined} [args.legacyLocalOffsetMinutes] - UTC-minus-local offset in minutes.
160
+ * @returns {Date | string | null | undefined} - Converted database value or the original value.
161
+ */
162
+ export function convertLegacyDateValueToUtcStorage(value, { databaseType, legacyLocalOffsetMinutes }) {
163
+ if (typeof value != "string")
164
+ return value;
165
+ if (hasDateTimeTimezone(value))
166
+ return value;
167
+ const parsedDate = legacyLocalOffsetMinutes === undefined
168
+ ? parseTimezoneLessDateTimeStringAsLocal(value)
169
+ : parseTimezoneLessDateTimeStringWithOffset(value, legacyLocalOffsetMinutes);
170
+ if (!isDate(parsedDate))
171
+ return value;
172
+ return formatDateForDatabase(parsedDate, { databaseType });
173
+ }
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kYXRldGltZS1zdG9yYWdlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQTtBQUV4QyxNQUFNLDJCQUEyQixHQUFHLGdGQUFnRixDQUFBO0FBQ3BILE1BQU0sOEJBQThCLEdBQUcsd0RBQXdELENBQUE7QUFDL0YsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQTtBQUV6RDs7Ozs7R0FLRztBQUNILFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQzVDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUywwQkFBMEIsQ0FBQyxLQUFLO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsb0NBQW9DLENBQUMsS0FBSztJQUNqRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBRTFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUUvRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUE7SUFFekMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUM1QixDQUFDO0FBRUQ7Ozs7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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgaXNEYXRlIGZyb20gXCIuLi91dGlscy9pcy1kYXRlLmpzXCJcblxuY29uc3QgZGF0ZVRpbWVXaXRoVGltZXpvbmVQYXR0ZXJuID0gL15cXGR7NH0tXFxkezJ9LVxcZHsyfVsgVF1cXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZHsxLDl9KT8oPzpbelpdfFsrLV1cXGR7Mn06XFxkezJ9KSQvXG5jb25zdCBkYXRlVGltZVdpdGhvdXRUaW1lem9uZVBhdHRlcm4gPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9WyBUXVxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkezEsOX0pPyQvXG5jb25zdCB0aW1lem9uZVN1ZmZpeFBhdHRlcm4gPSAvKD86W3paXXxbKy1dXFxkezJ9OlxcZHsyfSkkL1xuXG4vKipcbiAqIFBhZHMgYSBudW1lcmljIGRhdGUvdGltZSBwYXJ0LlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gTnVtZXJpYyBwYXJ0LlxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCAtIFRhcmdldCBsZW5ndGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFBhZGRlZCBwYXJ0LlxuICovXG5mdW5jdGlvbiBwYWQodmFsdWUsIGxlbmd0aCA9IDIpIHtcbiAgcmV0dXJuIFN0cmluZyh2YWx1ZSkucGFkU3RhcnQobGVuZ3RoLCBcIjBcIilcbn1cblxuLyoqXG4gKiBSZXBsYWNlcyBTUUwtc3R5bGUgZGF0ZXRpbWUgc2VwYXJhdG9ycyB3aXRoIElTTyBzZXBhcmF0b3JzIGZvciBwYXJzaW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gRGF0ZXRpbWUgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gLSBEYXRldGltZSBzdHJpbmcgd2l0aCBhIGBUYCBzZXBhcmF0b3IuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURhdGVUaW1lU2VwYXJhdG9yKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5pbmNsdWRlcyhcIlRcIikgPyB2YWx1ZSA6IHZhbHVlLnJlcGxhY2UoXCIgXCIsIFwiVFwiKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIGRhdGV0aW1lIHN0cmluZyB3aXRoIGFuIGV4cGxpY2l0IHRpbWV6b25lLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gRGF0ZXRpbWUgc3RyaW5nLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmd9IC0gUGFyc2VkIGRhdGUgb3IgdGhlIG9yaWdpbmFsIHN0cmluZyB3aGVuIGl0IGlzIG5vdCBhIHJlY29nbml6ZWQgZGF0ZXRpbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVGltZXpvbmVRdWFsaWZpZWREYXRlVGltZVN0cmluZyh2YWx1ZSkge1xuICBpZiAoIWRhdGVUaW1lV2l0aFRpbWV6b25lUGF0dGVybi50ZXN0KHZhbHVlKSkgcmV0dXJuIHZhbHVlXG5cbiAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5wYXJzZShub3JtYWxpemVEYXRlVGltZVNlcGFyYXRvcih2YWx1ZSkpXG5cbiAgaWYgKE51bWJlci5pc05hTih0aW1lc3RhbXApKSByZXR1cm4gdmFsdWVcblxuICByZXR1cm4gbmV3IERhdGUodGltZXN0YW1wKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIHRpbWV6b25lLWxlc3MgZGF0ZXRpbWUgc3RyaW5nIGFzIFVUQy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIERhdGV0aW1lIHN0cmluZy5cbiAqIEByZXR1cm5zIHtEYXRlIHwgc3RyaW5nfSAtIFBhcnNlZCBkYXRlIG9yIHRoZSBvcmlnaW5hbCBzdHJpbmcgd2hlbiBpdCBpcyBub3QgYSByZWNvZ25pemVkIGRhdGV0aW1lLlxuICovXG5mdW5jdGlvbiBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNVdGModmFsdWUpIHtcbiAgaWYgKCFkYXRlVGltZVdpdGhvdXRUaW1lem9uZVBhdHRlcm4udGVzdCh2YWx1ZSkpIHJldHVybiB2YWx1ZVxuXG4gIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUucGFyc2UoYCR7bm9ybWFsaXplRGF0ZVRpbWVTZXBhcmF0b3IodmFsdWUpfVpgKVxuXG4gIGlmIChOdW1iZXIuaXNOYU4odGltZXN0YW1wKSkgcmV0dXJuIHZhbHVlXG5cbiAgcmV0dXJuIG5ldyBEYXRlKHRpbWVzdGFtcClcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSB0aW1lem9uZS1sZXNzIGRhdGV0aW1lIHN0cmluZyBhcyB0aGUgY3VycmVudCBydW50aW1lJ3MgbG9jYWwgd2FsbC1jbG9jayB0aW1lLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gRGF0ZXRpbWUgc3RyaW5nLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmd9IC0gUGFyc2VkIGRhdGUgb3IgdGhlIG9yaWdpbmFsIHN0cmluZyB3aGVuIGl0IGlzIG5vdCBhIHJlY29nbml6ZWQgZGF0ZXRpbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdBc0xvY2FsKHZhbHVlKSB7XG4gIGlmICghZGF0ZVRpbWVXaXRob3V0VGltZXpvbmVQYXR0ZXJuLnRlc3QodmFsdWUpKSByZXR1cm4gdmFsdWVcblxuICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLnBhcnNlKG5vcm1hbGl6ZURhdGVUaW1lU2VwYXJhdG9yKHZhbHVlKSlcblxuICBpZiAoTnVtYmVyLmlzTmFOKHRpbWVzdGFtcCkpIHJldHVybiB2YWx1ZVxuXG4gIHJldHVybiBuZXcgRGF0ZSh0aW1lc3RhbXApXG59XG5cbi8qKlxuICogUGFyc2VzIGEgdGltZXpvbmUtbGVzcyBsZWdhY3kgZGF0ZXRpbWUgc3RyaW5nIHdpdGggYW4gZXhwbGljaXQgbG9jYWwgb2Zmc2V0LlxuICogVGhlIG9mZnNldCBmb2xsb3dzIEphdmFTY3JpcHQncyBgRGF0ZSNnZXRUaW1lem9uZU9mZnNldCgpYCBzaWduIGNvbnZlbnRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBEYXRldGltZSBzdHJpbmcuXG4gKiBAcGFyYW0ge251bWJlcn0gbGVnYWN5TG9jYWxPZmZzZXRNaW51dGVzIC0gVVRDLW1pbnVzLWxvY2FsIG9mZnNldCBpbiBtaW51dGVzLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmd9IC0gUGFyc2VkIGRhdGUgb3IgdGhlIG9yaWdpbmFsIHN0cmluZyB3aGVuIGl0IGlzIG5vdCBhIHJlY29nbml6ZWQgZGF0ZXRpbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdXaXRoT2Zmc2V0KHZhbHVlLCBsZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXMpIHtcbiAgY29uc3QgdXRjRGF0ZSA9IHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdBc1V0Yyh2YWx1ZSlcblxuICBpZiAoIWlzRGF0ZSh1dGNEYXRlKSkgcmV0dXJuIHZhbHVlXG5cbiAgcmV0dXJuIG5ldyBEYXRlKHV0Y0RhdGUuZ2V0VGltZSgpICsgKGxlZ2FjeUxvY2FsT2Zmc2V0TWludXRlcyAqIDYwICogMTAwMCkpXG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBzdHJpbmcgaGFzIGEgZGF0ZXRpbWUgdGltZXpvbmUgc3VmZml4LlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRoZSBzdHJpbmcgZW5kcyB3aXRoIGBaYCBvciBhbiBvZmZzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNEYXRlVGltZVRpbWV6b25lKHZhbHVlKSB7XG4gIHJldHVybiB0aW1lem9uZVN1ZmZpeFBhdHRlcm4udGVzdCh2YWx1ZSlcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgRGF0ZSBmb3IgZGF0YWJhc2Ugc3RvcmFnZSBhcyBhIFVUQyBpbnN0YW50LlxuICogQHBhcmFtIHtEYXRlfSB2YWx1ZSAtIERhdGUgdmFsdWUuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kYXRhYmFzZVR5cGUgLSBEYXRhYmFzZSBkcml2ZXIgdHlwZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gRGF0YWJhc2UgZGF0ZXRpbWUgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUZvckRhdGFiYXNlKHZhbHVlLCB7ZGF0YWJhc2VUeXBlfSkge1xuICBpZiAoZGF0YWJhc2VUeXBlID09IFwic3FsaXRlXCIpIHJldHVybiB2YWx1ZS50b0lTT1N0cmluZygpXG5cbiAgcmV0dXJuIFtcbiAgICB2YWx1ZS5nZXRVVENGdWxsWWVhcigpLFxuICAgIFwiLVwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENNb250aCgpICsgMSksXG4gICAgXCItXCIsXG4gICAgcGFkKHZhbHVlLmdldFVUQ0RhdGUoKSksXG4gICAgXCIgXCIsXG4gICAgcGFkKHZhbHVlLmdldFVUQ0hvdXJzKCkpLFxuICAgIFwiOlwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENNaW51dGVzKCkpLFxuICAgIFwiOlwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENTZWNvbmRzKCkpLFxuICAgIFwiLlwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENNaWxsaXNlY29uZHMoKSwgMylcbiAgXS5qb2luKFwiXCIpXG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHJlY29yZCB3cml0ZSBzdHJpbmcgaW50byBhIERhdGUgd2hlbiBpdCBpcyBhIHJlY29nbml6ZWQgZGF0ZXRpbWUgc3RyaW5nLlxuICogVGltZXpvbmUtbGVzcyBzdHJpbmdzIGFyZSBleHRlcm5hbCBpbnB1dCBhbmQgYXJlIHRyZWF0ZWQgYXMgVVRDLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsdWUgdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmd9IC0gTm9ybWFsaXplZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURhdGVTdHJpbmdGb3JXcml0ZSh2YWx1ZSkge1xuICBpZiAoaGFzRGF0ZVRpbWVUaW1lem9uZSh2YWx1ZSkpIHJldHVybiBwYXJzZVRpbWV6b25lUXVhbGlmaWVkRGF0ZVRpbWVTdHJpbmcodmFsdWUpXG5cbiAgcmV0dXJuIHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdBc1V0Yyh2YWx1ZSlcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcmVjb3JkIHdyaXRlIHZhbHVlIGludG8gYSBEYXRlIHdoZW4gaXQgaXMgYSByZWNvZ25pemVkIGRhdGV0aW1lIHN0cmluZy5cbiAqIFRpbWV6b25lLWxlc3Mgc3RyaW5ncyBhcmUgZXh0ZXJuYWwgaW5wdXQgYW5kIGFyZSB0cmVhdGVkIGFzIFVUQy5cbiAqIEBwYXJhbSB7RGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlIC0gVmFsdWUgdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSAtIE5vcm1hbGl6ZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEYXRlVmFsdWVGb3JXcml0ZSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9IFwic3RyaW5nXCIpIHJldHVybiB2YWx1ZVxuXG4gIHJldHVybiBub3JtYWxpemVEYXRlU3RyaW5nRm9yV3JpdGUodmFsdWUpXG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIGRhdGFiYXNlIHZhbHVlIGludG8gYSBEYXRlIGZvciByZWNvcmQgcmVhZHMuXG4gKiBTUUxpdGUgdGltZXpvbmUtbGVzcyByb3dzIGFyZSBsZWdhY3kgbG9jYWwgd2FsbC1jbG9jayByb3dzIHByb2R1Y2VkIGJlZm9yZVxuICogVVRDIHN0b3JhZ2UuIE5ldyBTUUxpdGUgd3JpdGVzIGluY2x1ZGUgYFpgLCBzbyB0aGV5IHRha2UgdGhlIGV4YWN0IGJyYW5jaC5cbiAqIEBwYXJhbSB7RGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlIC0gU3RvcmVkIGRhdGFiYXNlIHZhbHVlLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZGF0YWJhc2VUeXBlIC0gRGF0YWJhc2UgZHJpdmVyIHR5cGUuXG4gKiBAcmV0dXJucyB7RGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IC0gTm9ybWFsaXplZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURhdGVWYWx1ZUZvclJlYWQodmFsdWUsIHtkYXRhYmFzZVR5cGV9KSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdmFsdWVcblxuICBpZiAoaXNEYXRlKHZhbHVlKSkgcmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldFRpbWUoKSlcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSBcInN0cmluZ1wiKSByZXR1cm4gdmFsdWVcbiAgaWYgKGhhc0RhdGVUaW1lVGltZXpvbmUodmFsdWUpKSByZXR1cm4gcGFyc2VUaW1lem9uZVF1YWxpZmllZERhdGVUaW1lU3RyaW5nKHZhbHVlKVxuICBpZiAoZGF0YWJhc2VUeXBlID09IFwic3FsaXRlXCIpIHJldHVybiBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNMb2NhbCh2YWx1ZSlcblxuICByZXR1cm4gcGFyc2VUaW1lem9uZUxlc3NEYXRlVGltZVN0cmluZ0FzVXRjKHZhbHVlKVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbGVnYWN5IHRpbWV6b25lLWxlc3MgZGF0ZXRpbWUgdmFsdWUgaW50byB0aGUgbmV3IFVUQyBkYXRhYmFzZSBzdG9yYWdlIGZvcm1hdC5cbiAqIFRoZSBvcHRpb25hbCBvZmZzZXQgZm9sbG93cyBKYXZhU2NyaXB0J3MgYERhdGUjZ2V0VGltZXpvbmVPZmZzZXQoKWAgc2lnbiBjb252ZW50aW9uLlxuICogQHBhcmFtIHtEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gdmFsdWUgLSBMZWdhY3kgdmFsdWUuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kYXRhYmFzZVR5cGUgLSBEYXRhYmFzZSBkcml2ZXIgdHlwZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBbYXJncy5sZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXNdIC0gVVRDLW1pbnVzLWxvY2FsIG9mZnNldCBpbiBtaW51dGVzLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSAtIENvbnZlcnRlZCBkYXRhYmFzZSB2YWx1ZSBvciB0aGUgb3JpZ2luYWwgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TGVnYWN5RGF0ZVZhbHVlVG9VdGNTdG9yYWdlKHZhbHVlLCB7ZGF0YWJhc2VUeXBlLCBsZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXN9KSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gXCJzdHJpbmdcIikgcmV0dXJuIHZhbHVlXG4gIGlmIChoYXNEYXRlVGltZVRpbWV6b25lKHZhbHVlKSkgcmV0dXJuIHZhbHVlXG5cbiAgY29uc3QgcGFyc2VkRGF0ZSA9IGxlZ2FjeUxvY2FsT2Zmc2V0TWludXRlcyA9PT0gdW5kZWZpbmVkXG4gICAgPyBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNMb2NhbCh2YWx1ZSlcbiAgICA6IHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdXaXRoT2Zmc2V0KHZhbHVlLCBsZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXMpXG5cbiAgaWYgKCFpc0RhdGUocGFyc2VkRGF0ZSkpIHJldHVybiB2YWx1ZVxuXG4gIHJldHVybiBmb3JtYXREYXRlRm9yRGF0YWJhc2UocGFyc2VkRGF0ZSwge2RhdGFiYXNlVHlwZX0pXG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/database/drivers/base.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/database/drivers/base.js"],"names":[],"mappings":"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"}